Blame synfig-studio/src/gui/docks/dock_toolbox.h

Nikita Kitaev 254e11
/* === S Y N F I G ========================================================= */
839371
/*!	\file dock_toolbox.h
Nikita Kitaev 254e11
**	\brief Header File
Nikita Kitaev 254e11
**
Nikita Kitaev 254e11
**	$Id$
Nikita Kitaev 254e11
**
Nikita Kitaev 254e11
**	\legal
Nikita Kitaev 254e11
**	Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
Nikita Kitaev 254e11
**
Nikita Kitaev 254e11
**	This package is free software; you can redistribute it and/or
Nikita Kitaev 254e11
**	modify it under the terms of the GNU General Public License as
Nikita Kitaev 254e11
**	published by the Free Software Foundation; either version 2 of
Nikita Kitaev 254e11
**	the License, or (at your option) any later version.
Nikita Kitaev 254e11
**
Nikita Kitaev 254e11
**	This package is distributed in the hope that it will be useful,
Nikita Kitaev 254e11
**	but WITHOUT ANY WARRANTY; without even the implied warranty of
Nikita Kitaev 254e11
**	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Nikita Kitaev 254e11
**	General Public License for more details.
Nikita Kitaev 254e11
**	\endlegal
Nikita Kitaev 254e11
**
Nikita Kitaev 254e11
** === N O T E S ===========================================================
Nikita Kitaev 254e11
**
Nikita Kitaev 254e11
** ========================================================================= */
Nikita Kitaev 254e11
Nikita Kitaev 254e11
/* === S T A R T =========================================================== */
Nikita Kitaev 254e11
839371
#ifndef __SYNFIG_GTKMM_DOCK_TOOLBOX_H
839371
#define __SYNFIG_GTKMM_DOCK_TOOLBOX_H
Nikita Kitaev 254e11
Nikita Kitaev 254e11
/* === H E A D E R S ======================================================= */
Nikita Kitaev 254e11
839371
#include "docks/dockable.h"
839371
ca7825
#include <gtkmm toolbar.h=""></gtkmm>
Carlos Lopez 4493e1
#include <gtkmm tooltip.h=""></gtkmm>
Nikita Kitaev 254e11
#include <gtkmm togglebutton.h=""></gtkmm>
ca7825
#include <gtkmm toggletoolbutton.h=""></gtkmm>
ca7825
#include <gtkmm toolpalette.h=""></gtkmm>
ca7825
#include <gtkmm toolitemgroup.h=""></gtkmm>
Yu Chen 137cc9
#include <gtkmm alignment.h=""></gtkmm>
Nikita Kitaev 254e11
#include <gtkmm table.h=""></gtkmm>
Yu Chen 137cc9
#include <gtkmm box.h=""></gtkmm>
Nikita Kitaev 254e11
#include <synfig string.h=""></synfig>
Nikita Kitaev 254e11
#include "smach.h"
Nikita Kitaev 254e11
#include <map></map>
Nikita Kitaev 254e11
#include "dialogsettings.h"
Nikita Kitaev 254e11
Nikita Kitaev 254e11
/* === M A C R O S ========================================================= */
Nikita Kitaev 254e11
Nikita Kitaev 254e11
/* === T Y P E D E F S ===================================================== */
Nikita Kitaev 254e11
Nikita Kitaev 254e11
/* === C L A S S E S & S T R U C T S ======================================= */
Nikita Kitaev 254e11
Rodolfo Ribeiro Gomes 9277d9
namespace Gtk {
Rodolfo Ribeiro Gomes 9277d9
class Paned;
Rodolfo Ribeiro Gomes 9277d9
}
Rodolfo Ribeiro Gomes 9277d9
Nikita Kitaev 254e11
namespace studio {
Nikita Kitaev 254e11
Nikita Kitaev 254e11
class StateManager;
Nikita Kitaev 254e11
839371
class Dock_Toolbox : public Dockable
Nikita Kitaev 254e11
{
Nikita Kitaev 254e11
	friend class studio::StateManager;
Nikita Kitaev 254e11
ca7825
	Gtk::ToolItemGroup *tool_item_group;
Yu Chen 137cc9
	Gtk::VBox *tool_box;
Rodolfo Ribeiro Gomes 9277d9
	Gtk::Paned *tool_box_paned;
Nikita Kitaev 254e11
ca7825
	std::map<synfig::string,gtk::toggletoolbutton *=""> state_button_map;</synfig::string,gtk::toggletoolbutton>
Nikita Kitaev 254e11
Nikita Kitaev 254e11
	bool changing_state_;
Nikita Kitaev 254e11
Nikita Kitaev 254e11
	void on_drop_drag_data_received(const Glib::RefPtr<gdk::dragcontext>& context, int x, int y, const Gtk::SelectionData& selection_data, guint info, guint time);</gdk::dragcontext>
Nikita Kitaev 254e11
Nikita Kitaev 254e11
	void change_state_(const Smach::state_base *state);
Nikita Kitaev 254e11
478b0d
	void update_tools();
Nikita Kitaev 254e11
478b0d
	void set_active_state(const synfig::String& statename);
Nikita Kitaev 254e11
478b0d
public:
Nikita Kitaev 254e11
478b0d
	void change_state(const synfig::String& statename, bool force = false);
Nikita Kitaev 254e11
478b0d
	void refresh();
Nikita Kitaev 254e11
Nikita Kitaev 254e11
	void add_state(const Smach::state_base *state);
Nikita Kitaev 254e11
839371
	Dock_Toolbox();
839371
	virtual ~Dock_Toolbox();
Nikita Kitaev 254e11
Rodolfo Ribeiro Gomes 9277d9
	virtual void write_layout_string(std::string ¶ms) const;
Rodolfo Ribeiro Gomes 9277d9
	virtual void read_layout_string(const std::string ¶ms) const;
Nikita Kitaev 254e11
};
Nikita Kitaev 254e11
Nikita Kitaev 254e11
}; // END of namespace studio
Nikita Kitaev 254e11
Nikita Kitaev 254e11
/* === E N D =============================================================== */
Nikita Kitaev 254e11
Nikita Kitaev 254e11
#endif