int GtkDialogManager::questionBox(const std::string &title, const std::string &message, const std::string &button0, const std::string &button1, const std::string &button2) const { GtkDialog *dialog = createGtkDialog(title.c_str()); if (!button0.empty()) { gtk_dialog_add_button(dialog, button0.c_str(), 0); } if (!button1.empty()) { gtk_dialog_add_button(dialog, button1.c_str(), 1); } if (!button2.empty()) { gtk_dialog_add_button(dialog, button2.c_str(), 2); } GtkWidget *contents = gtk_hbox_new(FALSE, 10); gtk_container_set_border_width(GTK_CONTAINER(contents), 10); GtkWidget *image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); gtk_misc_set_alignment(GTK_MISC(image), 0.5, 0.0); GtkWidget *label = gtk_label_new(message.c_str()); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_box_pack_start(GTK_BOX(contents), image, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(contents), label, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(dialog->vbox), contents, TRUE, TRUE, 0); gtk_widget_show_all(GTK_WIDGET(dialog)); gint response = gtk_dialog_run(dialog); gtk_widget_destroy(GTK_WIDGET(dialog)); return response == GTK_RESPONSE_REJECT ? -1 : response; }
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(); }
int ZLGtkDialogManager::internalBox(const gchar *icon, const std::string &title, const std::string &message, const ZLResourceKey &button0, const ZLResourceKey &button1, const ZLResourceKey &button2) const { GtkDialog *dialog = createGtkDialog(title); if (!button0.Name.empty()) { gtk_dialog_add_button(dialog, gtkString(buttonName(button0)).c_str(), 0); } if (!button1.Name.empty()) { gtk_dialog_add_button(dialog, gtkString(buttonName(button1)).c_str(), 1); } if (!button2.Name.empty()) { gtk_dialog_add_button(dialog, gtkString(buttonName(button2)).c_str(), 2); } GtkWidget *contents = gtk_hbox_new(false, 10); gtk_container_set_border_width(GTK_CONTAINER(contents), 10); GtkWidget *image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_DIALOG); gtk_misc_set_alignment(GTK_MISC(image), 0.5, 0.0); GtkWidget *label = gtk_label_new(message.c_str()); gtk_label_set_line_wrap(GTK_LABEL(label), true); gtk_box_pack_start(GTK_BOX(contents), image, false, false, 0); gtk_box_pack_start(GTK_BOX(contents), label, true, true, 0); gtk_box_pack_start(GTK_BOX(dialog->vbox), contents, true, true, 0); gtk_widget_show_all(GTK_WIDGET(dialog)); gint response = gtk_dialog_run(dialog); destroyGtkDialog(dialog); return (response < 0) ? -1 : response; }
GtkOptionsDialog::GtkOptionsDialog(const std::string &id, const std::string &caption) : ZLDesktopOptionsDialog(id) { myDialog = createGtkDialog(caption); std::string okString = gtkString("&Ok"); std::string cancelString = gtkString("&Cancel"); 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); gtk_widget_show(GTK_WIDGET(myNotebook)); }
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); }
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)); }
GtkCommonDialog::GtkCommonDialog(const std::string &name) { myTab = new GtkOptionsDialogTab(); myDialog = createGtkDialog(name); }
ZLGtkDialog::ZLGtkDialog(const ZLResource &resource) { myTab = new ZLGtkDialogContent(resource); myDialog = createGtkDialog(resource[ZLDialogManager::DIALOG_TITLE].value()); myIsPacked = false; }