32 Gtk::MessageDialog dialog(
33 msg,
false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE,
true);
34 dialog.set_title(
"gx_head");
35 dialog.set_keep_above();
39 void child_set_property(Gtk::Container& container, Gtk::Widget& child,
const char *property_name,
bool value) {
41 g_value_init(&v, G_TYPE_BOOLEAN);
42 g_value_set_boolean(&v, value);
43 gtk_container_child_set_property(container.gobj(), child.gobj(), property_name, &v);
48 return Glib::ustring::format(std::setprecision(prec+1), pow(10.0,v));
50 return Glib::ustring::format(std::fixed, std::setprecision(prec-floor(v)), pow(10.0,v));
56 GtkEntry *entry = GTK_ENTRY(obj);
57 double *new_val =
static_cast<double*
>(nv);
59 *new_val = g_strtod(gtk_entry_get_text(entry), &err);
61 return GTK_INPUT_ERROR;
63 *new_val = log10(*new_val);
72 static void on_gx_nchoice_map(GtkWidget *w, gpointer data) {
79 gtk_window_set_modal(GTK_WINDOW(w), FALSE);
84 const char* window_title,
89 const gint default_response,
90 Glib::RefPtr<Gdk::Pixbuf> gw_ib) {
91 GtkWidget* dialog = gtk_dialog_new();
92 GtkWidget* text_label = gtk_label_new(
"");
93 GdkPixbuf *pb = gdk_pixbuf_scale_simple(gw_ib->gobj(), 64, 64, GDK_INTERP_BILINEAR);
94 GtkWidget* image = gtk_image_new_from_pixbuf(pb);
96 gtk_label_set_markup(GTK_LABEL(text_label), msg);
97 GtkWidget * al = gtk_alignment_new(0.0, 0.0, 1.0, 1.0);
98 gtk_container_add(GTK_CONTAINER(al), text_label);
99 gtk_alignment_set_padding(GTK_ALIGNMENT(al), 10, 10, 10, 10);
100 gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), al);
102 GtkWidget * ial = gtk_alignment_new(1.0, 0.5, 0.0, 0.0);
103 gtk_container_add(GTK_CONTAINER(ial), image);
104 gtk_container_add(GTK_CONTAINER(gtk_dialog_get_action_area(GTK_DIALOG(dialog))), ial);
105 for (guint i = 0; i < nchoice; i++)
106 gtk_dialog_add_button(GTK_DIALOG(dialog), label[i], resp[i]);
109 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
110 gtk_dialog_set_default_response(GTK_DIALOG(dialog), default_response);
111 gtk_window_set_title(GTK_WINDOW(dialog), window_title);
112 gtk_window_set_keep_above(GTK_WINDOW(dialog), TRUE);
114 gtk_widget_show(text_label);
115 gtk_widget_show(image);
117 gtk_widget_show(ial);
118 g_signal_connect(dialog,
"map", G_CALLBACK(on_gx_nchoice_map), NULL);
121 gint response = gtk_dialog_run(GTK_DIALOG(dialog));
122 gtk_widget_destroy(dialog);
131 string(_(
"warning message does not exist")));
138 GtkWidget *ok_button;
139 about = gtk_dialog_new();
140 ok_button = gtk_button_new_from_stock(GTK_STOCK_OK);
141 label = gtk_label_new(
"");
142 gtk_label_set_markup(GTK_LABEL(label), msg);
143 gtk_label_set_selectable(GTK_LABEL(label), TRUE);
144 GtkWidget * al = gtk_alignment_new(0.0, 0.0, 1.0, 1.0);
145 gtk_container_add(GTK_CONTAINER(al), label);
146 gtk_alignment_set_padding(GTK_ALIGNMENT(al), 10, 10, 10, 10);
147 gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(about))), al);
148 gtk_container_add(GTK_CONTAINER(gtk_dialog_get_action_area(GTK_DIALOG(about))),
150 g_signal_connect_swapped(ok_button,
"clicked",
151 G_CALLBACK(gtk_widget_destroy), about);
154 gtk_widget_show(ok_button);
155 gtk_widget_show(label);
157 return gtk_dialog_run (GTK_DIALOG(about));