ZLGtkSelectionDialog::ZLGtkSelectionDialog(const char *caption, ZLTreeHandler &handler) : ZLSelectionDialog(handler) { myExitFlag = false; myNodeSelected = false; myDialog = createGtkDialog(caption); std::string okString = gtkButtonName(ZLDialogManager::OK_BUTTON); std::string cancelString = gtkButtonName(ZLDialogManager::CANCEL_BUTTON); gtk_dialog_add_button(myDialog, okString.c_str(), GTK_RESPONSE_ACCEPT); gtk_dialog_add_button(myDialog, cancelString.c_str(), GTK_RESPONSE_REJECT); myStateLine = GTK_ENTRY(gtk_entry_new()); gtk_editable_set_editable(GTK_EDITABLE(myStateLine), !this->handler().isOpenHandler()); gtk_widget_set_sensitive(GTK_WIDGET(myStateLine), !this->handler().isOpenHandler()); gtk_box_pack_start(GTK_BOX(myDialog->vbox), GTK_WIDGET(myStateLine), false, false, 2); gtk_widget_show(GTK_WIDGET(myStateLine)); myStore = gtk_list_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); myView = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(myStore))); gtk_object_set_user_data(GTK_OBJECT(myView), this); gtk_tree_view_set_headers_visible(myView, false); GtkTreeSelection *selection = gtk_tree_view_get_selection(myView); gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE); // MSS: in case we do not want single click navigation, comment out the line below g_signal_connect(myView, "button-press-event", G_CALLBACK(clickHandler), this); GtkCellRenderer *renderer; GtkTreeViewColumn *column; column = gtk_tree_view_column_new(); gtk_tree_view_insert_column(myView, column, -1); gtk_tree_view_column_set_resizable(column, true); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(column, renderer, false); gtk_tree_view_column_add_attribute(column, renderer, "pixbuf", 0); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, renderer, true); gtk_tree_view_column_add_attribute(column, renderer, "text", 1); g_signal_connect(myView, "row-activated", G_CALLBACK(activatedHandler), 0); GtkWidget *scrolledWindow = gtk_scrolled_window_new(0, 0); gtk_container_add(GTK_CONTAINER(scrolledWindow), GTK_WIDGET(myView)); gtk_box_pack_start(GTK_BOX(myDialog->vbox), scrolledWindow, true, true, 2); gtk_widget_show_all(scrolledWindow); gtk_widget_grab_focus(GTK_WIDGET(myView)); gtk_window_resize(GTK_WINDOW(myDialog), 1000, 1000); update(); }
ZLGtkOptionsDialog::ZLGtkOptionsDialog(const ZLResource &resource, shared_ptr<ZLRunnable> applyAction) : ZLOptionsDialog(resource, applyAction) { myDialog = createGtkDialog(caption()); std::string okString = gtkButtonName(ZLDialogManager::OK_BUTTON); std::string cancelString = gtkButtonName(ZLDialogManager::CANCEL_BUTTON); gtk_dialog_add_button(myDialog, okString.c_str(), GTK_RESPONSE_ACCEPT); gtk_dialog_add_button(myDialog, cancelString.c_str(), GTK_RESPONSE_REJECT); myNotebook = GTK_NOTEBOOK(gtk_notebook_new()); gtk_notebook_set_scrollable(myNotebook, true); gtk_container_set_border_width(GTK_CONTAINER(myNotebook), 8); gtk_box_pack_start(GTK_BOX(myDialog->vbox), GTK_WIDGET(myNotebook), true, true, 0); gtk_widget_show(GTK_WIDGET(myNotebook)); gtk_window_resize(GTK_WINDOW(myDialog), 1000, 1000); }
int ZLGtkDialogManager::questionBox(const ZLResourceKey&, const std::string &message, const ZLResourceKey &button0, const ZLResourceKey &button1, const ZLResourceKey &button2) const { GtkDialog *dialog = GTK_DIALOG(hildon_note_new_confirmation_add_buttons(myWindow, message.c_str(), 0)); if (!button0.Name.empty()) { gtk_dialog_add_button(dialog, gtkButtonName(button0).c_str(), 0); } if (!button1.Name.empty()) { gtk_dialog_add_button(dialog, gtkButtonName(button1).c_str(), 1); } if (!button2.Name.empty()) { gtk_dialog_add_button(dialog, gtkButtonName(button2).c_str(), 2); } gint response = gtk_dialog_run(dialog); gtk_widget_destroy(GTK_WIDGET(dialog)); return response == GTK_RESPONSE_REJECT ? -1 : response; }
ZLGtkOptionsDialog::ZLGtkOptionsDialog(const ZLResource &resource, shared_ptr<ZLRunnable> applyAction) : ZLOptionsDialog(resource, applyAction) { myDialog = createGtkDialog(caption()); gtk_widget_set_size_request(GTK_WIDGET(myDialog), 800, 800); std::string okString = gtkButtonName(ZLDialogManager::OK_BUTTON); std::string cancelString = gtkButtonName(ZLDialogManager::CANCEL_BUTTON); gtk_dialog_add_button(myDialog, okString.c_str(), GTK_RESPONSE_ACCEPT); gtk_dialog_add_button(myDialog, cancelString.c_str(), GTK_RESPONSE_REJECT); /* myNotebook = GTK_NOTEBOOK(gtk_notebook_new()); gtk_container_set_border_width(GTK_CONTAINER(myNotebook), 8); gtk_box_pack_start(GTK_BOX(myDialog->vbox), GTK_WIDGET(myNotebook), TRUE, TRUE, 0); */ GtkWidget *area = hildon_pannable_area_new(); myNotebook = gtk_vbox_new(false, 0); hildon_pannable_area_add_with_viewport(HILDON_PANNABLE_AREA(area), myNotebook); gtk_container_add(GTK_CONTAINER(myDialog->vbox), area); gtk_widget_show_all(GTK_WIDGET(area)); }
void ZLGtkDialog::addButton(const ZLResourceKey &key, bool accept) { std::string buttonText = gtkButtonName(key); gtk_dialog_add_button(myDialog, buttonText.c_str(), accept ? GTK_RESPONSE_ACCEPT : GTK_RESPONSE_REJECT); }