本文整理汇总了C++中gtk::TreeView类的典型用法代码示例。如果您正苦于以下问题:C++ TreeView类的具体用法?C++ TreeView怎么用?C++ TreeView使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TreeView类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: saveImageAs
void saveImageAs() {
///Download the image of the currently selected post, with a file save dialog and everything
Gtk::TreeView *treeview = 0;
builder->get_widget("treeview4", treeview);
Glib::RefPtr<Gtk::TreeSelection> tree_selection = treeview->get_selection();
Glib::RefPtr<Gtk::TreeModel> model = treeview->get_model();
Gtk::TreeModel::iterator iter = tree_selection->get_selected(model);
Gtk::TreeModel::Row row = *iter;
string tim = row[m_post_list.tim];
string ext = row[m_thread_list.ext];
int file = row[m_post_list.file];
string url = "about:blank";
if(file) {
url = "https://images.4channel.org"+BOARD+"src/"+tim+ext;
cout << "\n\n\n\n\n\n" << url << "\n\n\n\n\n\n" << endl;
Gtk::FileChooserDialog dialog("Save image as...", Gtk::FILE_CHOOSER_ACTION_SAVE);
dialog.set_current_name(tim+ext);
dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
dialog.add_button(Gtk::Stock::SAVE, Gtk::RESPONSE_OK);
int result = dialog.run();
switch(result) {
case(Gtk::RESPONSE_OK):
{
string fn = dialog.get_filename();
getRemoteFile(url, fn);
}
}
}
}
开发者ID:Klendathu,项目名称:minichan,代码行数:38,代码来源:main.cpp
示例2: set_topic
void GscHelpWindow::set_topic(const Glib::ustring& topic)
{
this->selection_callback_enabled = false; // temporarily disable it
// scroll to it
Gtk::TextView* content = this->lookup_widget<Gtk::TextView*>("content_textview");
if (content) {
Glib::RefPtr<Gtk::TextBuffer> buffer = content->get_buffer();
Glib::RefPtr<Gtk::TextMark> mark = buffer->get_mark(topic);
if (mark)
content->scroll_to(mark, 0., 0., 0.);
}
// select it in tree view
Gtk::TreeView* treeview = this->lookup_widget<Gtk::TreeView*>("topics_treeview");
if (treeview && !list_store->children().empty()) {
for (Gtk::TreeIter iter = list_store->children().begin(); iter != list_store->children().end(); ++iter) {
if (iter->get_value(col_topic) == topic) {
selection->select(*iter);
treeview->scroll_to_cell(list_store->get_path(iter), *(treeview->get_column(0)), 0.3, 0.); // about 30% from top
break;
}
}
}
this->selection_callback_enabled = true; // enable it back
}
开发者ID:BackupTheBerlios,项目名称:gsmartcontrol-svn,代码行数:30,代码来源:gsc_help_window.cpp
示例3:
EntityChooser::EntityChooser() :
gtkutil::DialogElement(), // create an Element without label
_entityStore(Gtk::ListStore::create(_listColumns))
{
Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 6));
_widgets[WIDGET_TOPLEVEL] = vbox;
// Initialise the base class
DialogElement::setValueWidget(_widgets[WIDGET_TOPLEVEL]);
Gtk::TreeView* treeView = Gtk::manage(new Gtk::TreeView(_entityStore));
_widgets[WIDGET_TREEVIEW] = treeView;
treeView->set_headers_visible(false);
// Use the TreeModel's full string search function
treeView->set_search_equal_func(sigc::ptr_fun(>kutil::TreeModel::equalFuncStringContains));
// Head Name column
treeView->append_column("", _listColumns.name);
// Set the tree store to sort on this column
_entityStore->set_sort_column_id(_listColumns.name, Gtk::SORT_ASCENDING);
_selection = treeView->get_selection();
_selection->signal_changed().connect(sigc::mem_fun(*this, &EntityChooser::onSelectionChanged));
// Scrolled Frame
vbox->pack_start(*Gtk::manage(new gtkutil::ScrolledFrame(*treeView)), true, true, 0);
populateEntityList();
}
开发者ID:OpenTechEngine,项目名称:DarkRadiant,代码行数:32,代码来源:EntityChooser.cpp
示例4: switch_be
//------------------------------------------------------------------------------
void DbMySQLTableEditorIndexPage::switch_be(MySQLTableEditorBE *be) {
if (!_editing_sig.empty())
_editing_sig.disconnect();
_index_node = bec::NodeId();
_indexes_columns_model.clear();
Gtk::TreeView *tv = 0;
_xml->get_widget("index_columns", tv);
tv->remove_all_columns();
tv->unset_model();
_be = be;
_be->get_indexes()->select_index(_index_node);
// refresh is done from TableEd
_indexes_tv->remove_all_columns();
_indexes_model = ListModelWrapper::create(_be->get_indexes(), _indexes_tv, "DbMySQLTableEditorIndexPage");
_indexes_model->model().append_string_column(0, "Index Name", EDITABLE, NO_ICON);
_indexes_model->model().append_combo_column(1, "Type", model_from_string_list(_be->get_index_types()), EDITABLE,
true);
_indexes_tv->set_model(_indexes_model);
Gtk::CellRenderer *rend = _indexes_tv->get_column_cell_renderer(0);
_editing_sig =
rend->signal_editing_started().connect(sigc::mem_fun(this, &DbMySQLTableEditorIndexPage::cell_editing_started));
}
开发者ID:pk-codebox-evo,项目名称:mysql-workbench,代码行数:33,代码来源:mysql_table_editor_index_page.cpp
示例5: _onEntitySelectionChanged
// Callback for objective entity selection changed in list box
void ObjectivesEditor::_onEntitySelectionChanged()
{
// Clear the objectives list
_objectiveList->clear();
Gtk::Button* delEntityButton = gladeWidget<Gtk::Button>(
"deleteEntityButton"
);
Gtk::Widget* objButtonPanel = gladeWidget<Gtk::Widget>(
"objButtonPanel"
);
// Get the selection
Gtk::TreeView* entityList = gladeWidget<Gtk::TreeView>(
"entitiesTreeView"
);
Gtk::TreeModel::iterator iter = entityList->get_selection()->get_selected();
if (iter)
{
// Get name of the entity and find the corresponding ObjectiveEntity in
// the map
std::string name = Glib::ustring((*iter)[_objEntityColumns.entityName]);
// Save the current selection and refresh the objectives list
_curEntity = _entities.find(name);
refreshObjectivesList();
// Enable the delete button and objectives panel
delEntityButton->set_sensitive(true);
objButtonPanel->set_sensitive(true);
// Enable mission logic button
gladeWidget<Gtk::Widget>(
"editSuccessLogicButton"
)->set_sensitive(true);
// Enable obj condition button
gladeWidget<Gtk::Widget>(
"editObjectiveConditionsButton"
)->set_sensitive(true);
}
else
{
// No selection, disable the delete button and clear the objective
// panel
delEntityButton->set_sensitive(false);
objButtonPanel->set_sensitive(false);
// Disable mission logic button
gladeWidget<Gtk::Widget>(
"editSuccessLogicButton"
)->set_sensitive(false);
// Disable obj condition button
gladeWidget<Gtk::Widget>(
"editObjectiveConditionsButton"
)->set_sensitive(false);
}
}
开发者ID:DerSaidin,项目名称:DarkRadiant,代码行数:60,代码来源:ObjectivesEditor.cpp
示例6: show_last
void GscExecutorLogWindow::show_last()
{
Gtk::TreeView* treeview = this->lookup_widget<Gtk::TreeView*>("command_list_treeview");
if (treeview && !list_store->children().empty()) {
// Gtk::TreeRow row = *(list_store->children().rbegin()); // this causes invalid read error in valgrind
Gtk::TreeRow row = *(--(list_store->children().end()));
selection->select(row);
// you would think that scroll_to_row would accept a TreeRow for a change (shock!)
treeview->scroll_to_row(list_store->get_path(row));
}
show();
}
开发者ID:BackupTheBerlios,项目名称:gsmartcontrol-svn,代码行数:14,代码来源:gsc_executor_log_window.cpp
示例7: process_event
//------------------------------------------------------------------------------
bool DbMySQLRoutineGroupEditor::process_event(GdkEvent* event)
{
if ( event->type == GDK_BUTTON_PRESS && event->button.button == 3 )
{
Gtk::TreeModel::Path path;
Gtk::TreeView::Column *column(0);
int cell_x(-1);
int cell_y(-1);
if ( _rg_list->get_path_at_pos((int)event->button.x, (int)event->button.y, path, column, cell_x, cell_y) )
{
bec::MenuItemList menuitems;
bec::MenuItem item;
item.caption = "Remove routine from the group";
item.name = "remove_routine_from_the_group";
menuitems.push_back(item);
run_popup_menu(menuitems
,event->button.time
,sigc::bind(sigc::mem_fun(this, &DbMySQLRoutineGroupEditor::menu_action_on_node), path)
,&_context_menu);
}
}
return false;
}
开发者ID:abibell,项目名称:mysql-workbench,代码行数:26,代码来源:mysql_routinegroup_editor_fe.cpp
示例8: getThreadData
void getThreadData(Glib::RefPtr<Gtk::ListStore> m_threads_tree_model) {
///Get the thread data as JSON, and then push it onto the ListStore given in m_threads_tree_model
Gtk::Spinner *spin = 0;
builder->get_widget("spinner1", spin);
spin->set_visible(true);
spin->show();
Gtk::TreeView *tree = 0;
builder->get_widget("treeview2", tree);
tree->hide();
tree->set_visible(false);
Json::Value json = getThreads(BOARD);
for(int j=0;j<json.size();++j) {
Json::Value threads = json[j]["threads"];
for(int i=0;i<threads.size();++i) {
Gtk::TreeModel::Row row = *(m_threads_tree_model->append());
ostringstream convert3;
convert3 << threads[i]["replies"].asUInt();
row[m_thread_list.text] = standardPostFormatting(threads[i])+"\n\n"+convert3.str()+" replies";
row[m_thread_list.tim] = threads[i]["tim"].asString();
row[m_thread_list.ext] = trim(threads[i]["ext"].asString());
if(threads[i].isMember("filename")) {
row[m_thread_list.fn] = threads[i]["filename"].asString();
}
ostringstream convert2;
convert2 << threads[i]["no"].asInt();
row[m_thread_list.no] = convert2.str();
}
}
spin->hide();
spin->set_visible(false);
tree->show();
tree->set_visible(true);
}
开发者ID:Klendathu,项目名称:minichan,代码行数:41,代码来源:main.cpp
示例9: on_command_output_received
void GscExecutorLogWindow::on_command_output_received(const CmdexSyncCommandInfo& info)
{
CmdexSyncCommandInfoRefPtr entry = info.copy();
entries.push_back(entry);
// update tree model
Gtk::TreeRow row = *(list_store->append());
row[col_num] = entries.size();
row[col_command] = entry->command + " " + entry->parameters;
row[col_entry] = entry;
// if visible, set the selection to it
if (this->is_visible()) {
Gtk::TreeView* treeview = this->lookup_widget<Gtk::TreeView*>("command_list_treeview");
if (treeview) {
selection->select(row);
treeview->scroll_to_row(list_store->get_path(row));
}
}
}
开发者ID:BackupTheBerlios,项目名称:gsmartcontrol-svn,代码行数:21,代码来源:gsc_executor_log_window.cpp
示例10: updateSelectionStatus
void GraphTreeModel::updateSelectionStatus(const Glib::RefPtr<Gtk::TreeSelection>& selection, const scene::INodePtr& node)
{
NodeMap::const_iterator found = _nodemap.find(scene::INodeWeakPtr(node));
GraphTreeNodePtr foundNode;
if (found == _nodemap.end())
{
// The node is not in our map, it might have been previously hidden
if (node->visible())
{
foundNode = insert(node);
}
}
else
{
foundNode = found->second;
}
if (foundNode)
{
if (Node_isSelected(node))
{
// Select the row in the TreeView
selection->select(foundNode->getIter());
// Scroll to the row
Gtk::TreeView* tv = selection->get_tree_view();
Gtk::TreeModel::Path selectedPath(foundNode->getIter());
tv->expand_to_path(selectedPath);
tv->scroll_to_row(selectedPath, 0.3f);
}
else
{
selection->unselect(foundNode->getIter());
}
}
}
开发者ID:DerSaidin,项目名称:DarkRadiant,代码行数:40,代码来源:GraphTreeModel.cpp
示例11: _onDeleteEntity
// Delete entity button
void ObjectivesEditor::_onDeleteEntity()
{
// Get the selection
Gtk::TreeView* entityList = gladeWidget<Gtk::TreeView>(
"entitiesTreeView"
);
Gtk::TreeModel::iterator iter = entityList->get_selection()->get_selected();
if (iter)
{
// Get the name of the selected entity
std::string name = Glib::ustring((*iter)[_objEntityColumns.entityName]);
// Instruct the ObjectiveEntity to delete its world node, and then
// remove it from the map
_entities[name]->deleteWorldNode();
_entities.erase(name);
// Update the widgets to remove the selection from the list
populateWidgets();
}
}
开发者ID:DerSaidin,项目名称:DarkRadiant,代码行数:23,代码来源:ObjectivesEditor.cpp
示例12: real_refresh
bool DbMySQLTableEditorIndexPage::real_refresh()
{
if (!_editing_sig.empty())
_editing_sig.disconnect();
Gtk::TreeView *tv = 0;
_xml->get_widget("index_columns", tv);
tv->unset_model();
tv->remove_all_columns();
_index_node = bec::NodeId();
_be->get_indexes()->select_index(_index_node);
fill_combo_from_string_list(_index_storage_combo, _be->get_index_storage_types());
_indexes_tv->remove_all_columns();
_indexes_model = ListModelWrapper::create(_be->get_indexes(), _indexes_tv, "DbMySQLTableEditorIndexPage");
_indexes_model->model().append_string_column(0, "Index Name", EDITABLE, NO_ICON);
_indexes_model->model().append_combo_column(1, "Type", model_from_string_list(_be->get_index_types()), EDITABLE, true);
_indexes_tv->set_model(_indexes_model);
Gtk::CellRenderer* rend = _indexes_tv->get_column_cell_renderer(0);
_editing_sig = rend->signal_editing_started().
connect(sigc::mem_fun(this, &DbMySQLTableEditorIndexPage::cell_editing_started));
const bool has_columns = _be->get_columns()->count() > 1;
tv->set_sensitive(has_columns);
_indexes_tv->set_sensitive(has_columns);
index_cursor_changed();
return false;
}
开发者ID:abibell,项目名称:mysql-workbench,代码行数:39,代码来源:mysql_table_editor_index_page.cpp
示例13: on_delete_clicked
void ukwd_wiring_dialog::on_delete_clicked()
{
Glib::RefPtr<Gtk::ListStore> m;
Gtk::TreeView *t = NULL;
ref_xml->get_widget("stecker_treeview" + name_post_fix, t);
Glib::RefPtr<Gtk::TreeSelection> selection = t->get_selection();
if (selection->count_selected_rows() != 0)
{
// A connection is selected
m = m.cast_dynamic(t->get_model());
Gtk::TreeModel::iterator iter = selection->get_selected();
// Test is fixed connection is selected for removal
if ( (((*iter)[plugboard_cols.first]) != "J") and (((*iter)[plugboard_cols.second]) != "Y") )
{
// No! -> delete the selected connection
remove_plug((*iter)[plugboard_cols.first], (*iter)[plugboard_cols.second]);
num_plugs--;
update_plug_counter();
m->erase(iter);
}
else
{
// Yes! -> error message
Gtk::MessageDialog msg(*dialog, "The connection J, Y is fixed and cannot be removed.", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
msg.set_title("Enigma");
msg.run();
}
}
else
{
// No connection is selected
Gtk::MessageDialog msg(*dialog, "Nothing selected to delete.", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
msg.set_title("Enigma");
msg.run();
}
}
开发者ID:rmsk2,项目名称:rmsk2,代码行数:38,代码来源:ukwd_wiring_dialog.cpp
示例14: on_thread_back_clicked
void on_thread_back_clicked() {
///To be run when the back button is clicked while viewing a thread
boardView();
Gtk::TreeView *threadlist = 0;
pWebKitView = WEBKIT_WEB_VIEW (webkit_web_view_new ());
Gtk::ScrolledWindow *imgview = 0;
builder->get_widget("scrolledwindow3", imgview);
imgview->set_visible(true);
imgview->show();
gtk_container_add (GTK_CONTAINER (imgview->gobj()), GTK_WIDGET (pWebKitView));
webkit_web_view_load_uri(pWebKitView, "about:blank");
webkit_web_view_set_zoom_level(pWebKitView, true);
gtk_widget_set_can_focus(GTK_WIDGET(pWebKitView), true);
gtk_widget_show(GTK_WIDGET(pWebKitView));
builder->get_widget("treeview2", threadlist);
Glib::RefPtr<Gtk::TreeSelection> thread_selection = threadlist->get_selection();
thread_selection->signal_changed().connect(sigc::bind<Glib::RefPtr<Gtk::TreeSelection>, WebKitWebView*>(sigc::ptr_fun(&on_selection_changed), thread_selection, pWebKitView));
POST_CLICK_CONNECT.disconnect();
POST_REFRESH_CONNECT.disconnect();
}
开发者ID:Klendathu,项目名称:minichan,代码行数:23,代码来源:main.cpp
示例15: on_refresh_posts_clicked
void on_refresh_posts_clicked(Glib::RefPtr<Gtk::ListStore> m_threads_tree_model) {
///To be executed when the refresh button is clicked while viewing a thread
Gtk::Spinner *spin = 0;
builder->get_widget("spinner1", spin);
spin->show();
spin->set_visible(true);
Gtk::TreeView *tree = 0;
builder->get_widget("treeview4", tree);
tree->hide();
tree->set_visible(false);
m_threads_tree_model->clear();
getPostData(m_threads_tree_model);
webkit_web_view_load_uri(pWebKitView, "about:blank");
spin->hide();
spin->set_visible(false);
tree->show();
tree->set_visible(true);
}
开发者ID:Klendathu,项目名称:minichan,代码行数:23,代码来源:main.cpp
示例16: setupEntitiesPanel
// Create the objects panel (for manipulating the target_addobjectives objects)
void ObjectivesEditor::setupEntitiesPanel()
{
// Tree view listing the target_addobjectives entities
Gtk::TreeView* entityList = gladeWidget<Gtk::TreeView>(
"entitiesTreeView"
);
entityList->set_model(_objectiveEntityList);
entityList->set_headers_visible(false);
entityList->get_selection()->signal_changed().connect(
sigc::mem_fun(*this, &ObjectivesEditor::_onEntitySelectionChanged)
);
// Active-at-start column (checkbox)
Gtk::CellRendererToggle* startToggle = Gtk::manage(new Gtk::CellRendererToggle);
startToggle->signal_toggled().connect(
sigc::mem_fun(*this, &ObjectivesEditor::_onStartActiveCellToggled)
);
Gtk::TreeViewColumn* startCol = Gtk::manage(new Gtk::TreeViewColumn(_("Start")));
startCol->add_attribute(startToggle->property_active(), _objEntityColumns.startActive);
entityList->append_column(*startCol);
// Name column
entityList->append_column(*Gtk::manage(new gtkutil::TextColumn("", _objEntityColumns.displayName)));
// Connect button signals
Gtk::Button* addButton = gladeWidget<Gtk::Button>("createEntityButton");
addButton->signal_clicked().connect(
sigc::mem_fun(*this, &ObjectivesEditor::_onAddEntity)
);
Gtk::Button* delButton = gladeWidget<Gtk::Button>("deleteEntityButton");
delButton->set_sensitive(false); // disabled at start
delButton->signal_clicked().connect(
sigc::mem_fun(*this, &ObjectivesEditor::_onDeleteEntity)
);
}
开发者ID:DerSaidin,项目名称:DarkRadiant,代码行数:40,代码来源:ObjectivesEditor.cpp
示例17: setTreeviewSelectCallback
void setTreeviewSelectCallback(string treeview, sigc::slot<void> sig) {
Gtk::TreeView* tv;
VRGuiBuilder()->get_widget(treeview, tv);
tv->signal_cursor_changed().connect(sig);
}
开发者ID:AntonChalakov,项目名称:polyvr,代码行数:5,代码来源:VRGuiUtils.cpp
示例18: update_index_details
//------------------------------------------------------------------------------
void DbMySQLTableEditorIndexPage::update_index_details() {
MySQLTableIndexListBE *indices_be = _be->get_indexes();
if (indices_be) {
std::string index_name;
indices_be->refresh();
Gtk::TreeView *tv = 0;
_xml->get_widget("index_columns", tv);
tv->remove_all_columns();
tv->unset_model();
const bool got_indices = indices_be->count() > 1;
if (_index_node.is_valid() && got_indices && _index_node.back() < indices_be->real_count()) {
indices_be->get_field(_index_node, 0, index_name);
if (!index_name.empty()) {
indices_be->select_index(_index_node);
indices_be->refresh();
}
_indexes_columns_model = ListModelWrapper::create(indices_be->get_columns(), tv, "IndexesColumnsModel");
// negative column means value getting/setting is delegated back to us
_indexes_columns_model->model().append_check_column(-8, "", EDITABLE);
_indexes_columns_model->model().append_string_column(::bec::IndexColumnsListBE::Name, "Column", RO, NO_ICON);
_indexes_columns_model->model().append_combo_column(::bec::IndexColumnsListBE::OrderIndex, "#",
recreate_order_model(), EDITABLE);
_indexes_columns_model->model().append_combo_column(-2, "Order", _sort_order_model, EDITABLE, true);
_indexes_columns_model->model().append_int_column(::bec::IndexColumnsListBE::Length, "Length", EDITABLE);
_indexes_columns_model->set_fake_column_value_getter(
sigc::mem_fun(this, &DbMySQLTableEditorIndexPage::get_value));
_indexes_columns_model->set_fake_column_value_setter(
sigc::mem_fun(this, &DbMySQLTableEditorIndexPage::set_value));
tv->set_model(_indexes_columns_model);
std::string text;
indices_be->get_field(_index_node, ::MySQLTableIndexListBE::StorageType, text);
_index_storage_combo_conn.block();
set_selected_combo_item(_index_storage_combo, text);
_index_storage_combo_conn.unblock();
} else {
set_selected_combo_item(_index_storage_combo, "");
}
Gtk::Entry *entry(0);
std::string text;
// Update row block size
_xml->get_widget("index_key_block_size", entry);
indices_be->get_field(_index_node, ::MySQLTableIndexListBE::RowBlockSize, text);
entry->set_text(text);
// Update index parser
_xml->get_widget("index_parser", entry);
indices_be->get_field(_index_node, ::MySQLTableIndexListBE::Parser, text);
entry->set_text(text);
Gtk::TextView *textview(0);
// update index comment
_xml->get_widget("index_comment", textview);
indices_be->get_field(_index_node, ::MySQLTableIndexListBE::Comment, text);
textview->get_buffer()->set_text(text);
_xml->get_widget("index_key_block_size", entry);
entry->set_sensitive(got_indices && _index_node.is_valid() && _index_node.back() < indices_be->real_count());
_xml->get_widget("index_parser", entry);
entry->set_sensitive(got_indices && _index_node.is_valid() && _index_node.back() < indices_be->real_count());
_xml->get_widget("index_comment", textview);
textview->set_sensitive(got_indices && _index_node.is_valid() && _index_node.back() < indices_be->real_count());
this->update_gui_for_server();
_index_storage_combo->set_sensitive(got_indices && _index_node.is_valid() &&
_index_node.back() < indices_be->real_count());
}
}
开发者ID:pk-codebox-evo,项目名称:mysql-workbench,代码行数:78,代码来源:mysql_table_editor_index_page.cpp
示例19:
//.........这里部分代码省略.........
catch(const Glib::Error& ex)
{
std::cerr << "building menus failed: " << ex.what();
}
//Get the menubar and toolbar widgets, and add them to a container widget:
Gtk::Widget* pMenubar = m_refUIManager->get_widget("/MenuBar");
if(pMenubar)
m_Box.pack_start(*pMenubar, Gtk::PACK_SHRINK);
Gtk::Widget* pToolbar = m_refUIManager->get_widget("/ToolBar") ;
if(pToolbar)
m_Box.pack_start(*pToolbar, Gtk::PACK_SHRINK);
show_all_children();
//add the grid for the treeview and button
//Add the Notebook, with the button underneath:
m_Notebook.set_border_width(10);
m_Box.pack_start(m_Notebook);
m_Box.pack_start(m_ButtonBox, Gtk::PACK_SHRINK);
//m_ButtonBox.pack_start(m_Button_Quit, Gtk::PACK_SHRINK);
//m_Button_Quit.signal_clicked().connect(sigc::mem_fun(*this, &ExampleWindow::on_quit_click) );
//Add the Notebook pages:
m_Notebook.append_page(m_grid, "Regex");
m_Notebook.append_page(m_grid2, "Log File");
m_Notebook.append_page(m_grid3, "Output");
m_Notebook.signal_switch_page().connect(sigc::mem_fun(*this, &ExampleWindow::on_notebook_switch_page) );
add(m_grid);
m_grid.set_border_width(20);
m_grid.set_row_spacing(5);
m_Box.add(m_grid);
Gtk::TreeView *treeview = Gtk::manage(new Gtk::TreeView);
treeview->set_hexpand(true);
treeview->set_vexpand(true);
//treeview->get_selection()->set_mode(Gtk::SELECTION_MULTIPLE) ;
treeview->set_search_column(columns.col_cnt) ;
treeview_ScrolledWindow.add(*treeview) ;
//Only show the scrollbars when they are necessary:
treeview_ScrolledWindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
m_grid.attach(treeview_ScrolledWindow, 0, 0, 3, 1);
refTreeModel = Gtk::ListStore::create(columns);
treeview->set_model(refTreeModel);
treeview->append_column("S.N", columns.col_cnt);
treeview->append_column("Datatype", columns.col_text);
treeview->append_column("Regex Data", columns.col_text2);
label = Gtk::manage(new Gtk::Label);
label2 = Gtk::manage(new Gtk::Label);
label->set_markup("<b><span color='black'>Enter Datatype: </span></b>");
label2->set_markup("<b><span color='black'>Enter Regex Data: </span></b>");
m_grid.attach(*label, 0, 1, 1, 1);
m_grid.attach(*label2, 0, 2, 1, 1);
text = Gtk::manage(new Gtk::Entry);
m_grid.attach(*text, 1, 1, 2, 1);
text2 = Gtk::manage(new Gtk::Entry);
m_grid.attach(*text2, 1, 2, 2, 3);
Gtk::Button *b_add = Gtk::manage(new Gtk::Button("Click to add"));
b_add->signal_clicked().connect(sigc::mem_fun(*this, &ExampleWindow::on_button_add_data_click));
m_grid.attach(*b_add, 2, 8, 1, 1);
开发者ID:thenav56,项目名称:LogExtraction,代码行数:66,代码来源:examplewindow.cpp
示例20:
GscExecutorLogWindow::GscExecutorLogWindow(BaseObjectType* gtkcobj, const app_ui_res_ref_t& ref_ui)
: AppUIResWidget<GscExecutorLogWindow, false>(gtkcobj, ref_ui)
{
// Connect callbacks
APP_GTKMM_CONNECT_VIRTUAL(delete_event); // make sure the event handler is called
Gtk::Button* window_close_button = 0;
APP_UI_RES_AUTO_CONNECT(window_close_button, clicked);
Gtk::Button* window_save_current_button = 0;
APP_UI_RES_AUTO_CONNECT(window_save_current_button, clicked);
Gtk::Button* window_save_all_button = 0;
APP_UI_RES_AUTO_CONNECT(window_save_all_button, clicked);
Gtk::Button* clear_command_list_button = 0;
APP_UI_RES_AUTO_CONNECT(clear_command_list_button, clicked);
// Accelerators
Glib::RefPtr<Gtk::AccelGroup> accel_group = this->get_accel_group();
if (window_close_button) {
window_close_button->add_accelerator("clicked", accel_group, GDK_Escape,
Gdk::ModifierType(0), Gtk::AccelFlags(0));
}
// --------------- Make a treeview
Gtk::TreeView* treeview = this->lookup_widget<Gtk::TreeView*>("command_list_treeview");
if (treeview) {
Gtk::TreeModelColumnRecord model_columns;
// #, Command + parameters, [EntryPtr]
model_columns.add(col_num);
app_gtkmm_create_tree_view_column(col_num, *treeview,
"#", "# of executed command", true); // sortable
model_columns.add(col_command);
app_gtkmm_create_tree_view_column(col_command, *treeview,
"Command", "Command with parameters", true); // sortable
model_columns.add(col_entry);
// create a TreeModel (ListStore)
list_store = Gtk::ListStore::create(model_columns);
// list_store->set_sort_column(col_num, Gtk::SORT_DESCENDING); // default sort
treeview->set_model(list_store);
selection = treeview->get_selection();
selection->signal_changed().connect(sigc::mem_fun(*this,
&self_type::on_tree_selection_changed) );
}
// Hide command text entry in win32.
// Setting text on this entry segfaults under win32, (utf8 conversion doesn't
// help, not that it should). Seems to be connected to non-english locale.
// Surprisingly, the treeview column text still works.
// The problem seems to have disappeared (new compiler/runtime?)
// #ifdef _WIN32
// Gtk::HBox* command_hbox = this->lookup_widget<Gtk::HBox*>("command_hbox");
// if (command_hbox)
// command_hbox->hide();
// #endif
// ---------------
// Connect to CmdexSync signal
cmdex_sync_signal_execute_finish()->connect(sigc::mem_fun(*this, &self_type::on_command_output_received));
// show();
}
开发者ID:BackupTheBerlios,项目名称:gsmartcontrol-svn,代码行数:84,代码来源:gsc_executor_log_window.cpp
注:本文中的gtk::TreeView类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论