/*! \fn Dock_Toolbox::add_state(const Smach::state_base *state) * \brief Add and connect a toogle button to the toolbox defined by a state * \param state a const pointer to Smach::state_base */ void Dock_Toolbox::add_state(const Smach::state_base *state) { Gtk::Image *icon; assert(state); String name=state->get_name(); Gtk::StockItem stock_item; Gtk::Stock::lookup(Gtk::StockID("synfig-"+name),stock_item); _tool_button = manage(new class Gtk::ToggleButton()); Gtk::AccelKey key; //Have a look to global fonction init_ui_manager() from app.cpp for "accel_path" definition Gtk::AccelMap::lookup_entry ("<Actions>/action_group_state_manager/state-"+name, key); //Gets the, is exist, accelerator representation for labels Glib::ustring accel_path = !key.is_null() ? key.get_abbrev () :""; Gtk::IconSize iconsize = Gtk::IconSize::from_name("synfig-small_icon_16x16"); icon=manage(new Gtk::Image(stock_item.get_stock_id(), iconsize)); _tool_button->add(*icon); _tool_button->set_tooltip_text(stock_item.get_label()+" "+accel_path); _tool_button->set_relief(Gtk::RELIEF_NONE); // use Gtk::Alignment widget to have fixed size (width and height) of tool button tool_button = manage(new class Gtk::Alignment(Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER, 0.0, 0.0)); tool_button->add(*_tool_button); tool_button->show_all(); int row=state_button_map.size()/5; int col=state_button_map.size()%5; tool_table->attach(*tool_button, col, col+1, row, row+1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND, 0, 0); state_button_map[name] = _tool_button; _tool_button->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this,&studio::Dock_Toolbox::change_state_), state ) ); refresh(); }
/*! \fn Toolbox::add_state(const Smach::state_base *state) * \brief Add and connect a toogle button to the toolbox defined by a state * \param state a const pointer to Smach::state_base */ void Toolbox::add_state(const Smach::state_base *state) { Gtk::Image *icon; assert(state); String name=state->get_name(); Gtk::StockItem stock_item; Gtk::Stock::lookup(Gtk::StockID("synfig-"+name),stock_item); Gtk::ToggleButton* button; button=manage(new class Gtk::ToggleButton()); Gtk::AccelKey key; //Have a look to global fonction init_ui_manager() from app.cpp for "accel_path" definition Gtk::AccelMap::lookup_entry ("<Actions>/action_group_state_manager/state-"+name, key); //Gets the accelerator representation for labels Glib::ustring accel_path = key.get_abbrev (); icon=manage(new Gtk::Image(stock_item.get_stock_id(),Gtk::IconSize(4))); button->add(*icon); button->set_tooltip_text(stock_item.get_label()+" "+accel_path); icon->show(); button->show(); int row=state_button_map.size()/5; int col=state_button_map.size()%5; tool_table->attach(*button,col,col+1,row,row+1, Gtk::EXPAND, Gtk::EXPAND, 0, 0); state_button_map[name]=button; button->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this,&studio::Toolbox::change_state_), state ) ); refresh(); }
/*! \fn Dock_Toolbox::add_state(const Smach::state_base *state) * \brief Add and connect a toogle button to the toolbox defined by a state * \param state a const pointer to Smach::state_base */ void Dock_Toolbox::add_state(const Smach::state_base *state) { Gtk::Image *icon; assert(state); String name=state->get_name(); Gtk::StockItem stock_item; Gtk::Stock::lookup(Gtk::StockID("synfig-"+name),stock_item); Gtk::ToggleToolButton *tool_button = manage(new class Gtk::ToggleToolButton( *manage(new Gtk::Image( stock_item.get_stock_id(), Gtk::IconSize::from_name("synfig-small_icon_16x16") )), stock_item.get_label() )); Gtk::AccelKey key; //Have a look to global fonction init_ui_manager() from app.cpp for "accel_path" definition Gtk::AccelMap::lookup_entry ("<Actions>/action_group_state_manager/state-"+name, key); //Gets the, is exist, accelerator representation for labels Glib::ustring accel_path = !key.is_null() ? key.get_abbrev () :""; tool_button->set_tooltip_text(stock_item.get_label()+" "+accel_path); tool_button->show(); tool_item_group->insert(*tool_button); tool_item_group->show_all(); state_button_map[name] = tool_button; tool_button->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this,&studio::Dock_Toolbox::change_state_), state ) ); refresh(); }