void PrintWidgetPath(Gtk::Widget& searched_wdg) { io::cout << "Focus Widget Reverse Path: " << searched_wdg.get_name() << io::endl; for( Gtk::Widget* wdg = &searched_wdg; wdg = wdg->get_parent(), wdg; ) io::cout << " -> " << wdg->get_name(); io::cout << io::endl; }
//------------------------------------------------------------------------------ std::string mforms::gtk::ToolBarImpl::get_item_text(mforms::ToolBarItem *item) { std::string text; switch (item->get_type()) { case mforms::FlatSelectorItem: case mforms::SelectorItem: { Gtk::ComboBoxText *ct = cast<Gtk::ComboBoxText *>(item->get_data_ptr()); if (ct) text = ct->get_active_text(); break; } case mforms::ColorSelectorItem: { const Gtk::ComboBox *combo = cast<Gtk::ComboBox *>(item->get_data_ptr()); if (combo) { const Gtk::TreeIter iter = combo->get_active(); const Gtk::TreeRow row = *iter; text = row.get_value(color_combo_columns->color); } break; } case mforms::SearchFieldItem: { Gtk::Entry *e = cast<Gtk::Entry *>(item->get_data_ptr()); if (e) text = e->get_text(); break; } default: { Gtk::Widget *btn = cast<Gtk::Widget *>(item->get_data_ptr()); if (btn) text = btn->get_name(); } } return text; }
Gtk::Button* get_tree_view_column_header_button(Gtk::TreeViewColumn& column) { Gtk::Widget* widget; if( !( widget = column.get_widget() ) ) { // Если для заголовка не установлен никакой виджет, устанавливаем свой Gtk::Label, // чтобы по нему можно было выйти на остальные виджеты заголовка. Gtk::Label* header_label = Gtk::manage(new Gtk::Label(column.get_title())); column.set_widget(*header_label); header_label->show(); widget = header_label->get_parent(); } // Поднимаемся вверх по дереву контейнеров, // пока не наткнемся на Gtk::Button. while(widget && widget->get_name() != "GtkButton") widget = widget->get_parent(); return dynamic_cast<Gtk::Button*>(widget); }
static void copy_accessibility_name(Gtk::Widget& w) { Glib::RefPtr<Atk::Object> acc = w.get_accessible(); if (acc) acc->set_name(w.get_name()); }