static GtkWidget * image_get_properties(Image *image) { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *color; GtkWidget *checkbox; GtkWidget *linestyle; GtkWidget *file; GtkWidget *border_width; GtkAdjustment *adj; if (image_properties_dialog == NULL) { image_properties_dialog = g_new(ImagePropertiesDialog, 1); vbox = gtk_vbox_new(FALSE, 5); image_properties_dialog->vbox = vbox; hbox = gtk_hbox_new(FALSE, 5); label = gtk_label_new(_("Image file:")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); gtk_widget_show (label); file = dia_file_selector_new(); image_properties_dialog->file = DIAFILESELECTOR(file); gtk_box_pack_start (GTK_BOX (hbox), file, TRUE, TRUE, 0); gtk_widget_show (file); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 5); checkbox = gtk_check_button_new_with_label(_("Keep aspect ratio")); image_properties_dialog->keep_aspect = GTK_TOGGLE_BUTTON( checkbox ); gtk_widget_show(checkbox); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX (hbox), checkbox, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 5); checkbox = gtk_check_button_new_with_label(_("Show border")); image_properties_dialog->draw_border = GTK_TOGGLE_BUTTON( checkbox ); gtk_widget_show(checkbox); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX (hbox), checkbox, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 5); label = gtk_label_new(_("Border width:")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); gtk_widget_show (label); adj = (GtkAdjustment *) gtk_adjustment_new(0.1, 0.00, 10.0, 0.01, 0.0, 0.0); border_width = gtk_spin_button_new(adj, 1.0, 2); gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(border_width), TRUE); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(border_width), TRUE); image_properties_dialog->border_width = GTK_SPIN_BUTTON(border_width); gtk_box_pack_start(GTK_BOX (hbox), border_width, TRUE, TRUE, 0); gtk_widget_show (border_width); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 5); label = gtk_label_new(_("Foreground color:")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); gtk_widget_show (label); color = dia_color_selector_new(); image_properties_dialog->fg_color = DIACOLORSELECTOR(color); gtk_box_pack_start (GTK_BOX (hbox), color, TRUE, TRUE, 0); gtk_widget_show (color); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 5); label = gtk_label_new(_("Line style:")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); gtk_widget_show (label); linestyle = dia_line_style_selector_new(); image_properties_dialog->line_style = DIALINESTYLESELECTOR(linestyle); gtk_box_pack_start (GTK_BOX (hbox), linestyle, TRUE, TRUE, 0); gtk_widget_show (linestyle); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0); gtk_widget_show (vbox); } image_properties_dialog->image = image; gtk_spin_button_set_value(image_properties_dialog->border_width, image->border_width); dia_color_selector_set_color(image_properties_dialog->fg_color, &image->border_color); dia_file_selector_set_file(image_properties_dialog->file, image->file); dia_line_style_selector_set_linestyle(image_properties_dialog->line_style, image->line_style, 1.0); gtk_toggle_button_set_active(image_properties_dialog->draw_border, image->draw_border); gtk_toggle_button_set_active(image_properties_dialog->keep_aspect, image->keep_aspect); return image_properties_dialog->vbox; }
static GtkWidget * prefs_get_property_widget(DiaPrefData *data) { GtkWidget *widget = NULL; GtkAdjustment *adj; switch(data->type) { case PREF_BOOLEAN: widget = gtk_toggle_button_new_with_label (_("No")); g_signal_connect (GTK_OBJECT (widget), "toggled", G_CALLBACK (prefs_boolean_toggle), NULL); break; case PREF_INT: adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, G_MININT, G_MAXINT, 1.0, 10.0, 0)); widget = gtk_spin_button_new (adj, 1.0, 0); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(widget), TRUE); gtk_widget_set_size_request (widget, 80, -1); break; case PREF_UINT: adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, G_MAXINT, 1.0, 10.0, 0)); widget = gtk_spin_button_new (adj, 1.0, 0); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(widget), TRUE); gtk_widget_set_size_request (widget, 80, -1); break; case PREF_REAL: adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, G_MINFLOAT, G_MAXFLOAT, 1.0, 10.0, 0)); widget = gtk_spin_button_new (adj, 1.0, 3); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(widget), TRUE); gtk_widget_set_size_request (widget, 80, -1); break; case PREF_UREAL: adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, G_MAXFLOAT, 1.0, 10.0, 0 )); widget = gtk_spin_button_new (adj, 1.0, 3); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(widget), TRUE); gtk_widget_set_size_request (widget, 80, -1); break; case PREF_COLOUR: widget = dia_color_selector_new(); break; case PREF_STRING: widget = gtk_entry_new(); break; case PREF_CHOICE: { GList *names; widget = gtk_combo_box_new_text (); for (names = (data->choice_list_function)(data); names != NULL; names = g_list_next(names)) { gtk_combo_box_append_text (GTK_COMBO_BOX (widget), (gchar *)names->data); } break; } case PREF_NONE: case PREF_END_GROUP: widget = NULL; break; } if (widget != NULL) gtk_widget_show(widget); return widget; }
static GtkWidget * arc_get_properties(Arc *arc) { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *color; GtkWidget *linestyle; GtkWidget *arrow; GtkWidget *line_width; GtkWidget *align; GtkAdjustment *adj; if (arc_properties_dialog == NULL) { arc_properties_dialog = g_new(ArcPropertiesDialog, 1); vbox = gtk_vbox_new(FALSE, 5); arc_properties_dialog->vbox = vbox; hbox = gtk_hbox_new(FALSE, 5); label = gtk_label_new(_("Line width:")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); gtk_widget_show (label); adj = (GtkAdjustment *) gtk_adjustment_new(0.1, 0.00, 10.0, 0.01, 0.0, 0.0); line_width = gtk_spin_button_new(adj, 1.0, 2); gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(line_width), TRUE); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(line_width), TRUE); arc_properties_dialog->line_width = GTK_SPIN_BUTTON(line_width); gtk_box_pack_start(GTK_BOX (hbox), line_width, TRUE, TRUE, 0); gtk_widget_show (line_width); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 5); label = gtk_label_new(_("Color:")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); gtk_widget_show (label); color = dia_color_selector_new(); arc_properties_dialog->color = DIACOLORSELECTOR(color); gtk_box_pack_start (GTK_BOX (hbox), color, TRUE, TRUE, 0); gtk_widget_show (color); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 5); label = gtk_label_new(_("Line style:")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); gtk_widget_show (label); linestyle = dia_line_style_selector_new(); arc_properties_dialog->line_style = DIALINESTYLESELECTOR(linestyle); gtk_box_pack_start (GTK_BOX (hbox), linestyle, TRUE, TRUE, 0); gtk_widget_show (linestyle); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 5); label = gtk_label_new(_("Start arrow:")); align = gtk_alignment_new(0.0,0.0,0.0,0.0); gtk_container_add(GTK_CONTAINER(align), label); gtk_box_pack_start (GTK_BOX (hbox), align, FALSE, TRUE, 0); gtk_widget_show (label); gtk_widget_show(align); arrow = dia_arrow_selector_new(); arc_properties_dialog->start_arrow = DIAARROWSELECTOR(arrow); gtk_box_pack_start (GTK_BOX (hbox), arrow, TRUE, TRUE, 0); gtk_widget_show (arrow); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 5); label = gtk_label_new(_("End arrow:")); align = gtk_alignment_new(0.0,0.0,0.0,0.0); gtk_container_add(GTK_CONTAINER(align), label); gtk_box_pack_start (GTK_BOX (hbox), align, FALSE, TRUE, 0); gtk_widget_show (label); gtk_widget_show(align); arrow = dia_arrow_selector_new(); arc_properties_dialog->end_arrow = DIAARROWSELECTOR(arrow); gtk_box_pack_start (GTK_BOX (hbox), arrow, TRUE, TRUE, 0); gtk_widget_show (arrow); gtk_widget_show(hbox); gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0); gtk_widget_show (vbox); } gtk_spin_button_set_value(arc_properties_dialog->line_width, arc->line_width); dia_color_selector_set_color(arc_properties_dialog->color, &arc->arc_color); dia_line_style_selector_set_linestyle(arc_properties_dialog->line_style, arc->line_style, arc->dashlength); dia_arrow_selector_set_arrow(arc_properties_dialog->start_arrow, arc->start_arrow); dia_arrow_selector_set_arrow(arc_properties_dialog->end_arrow, arc->end_arrow); return arc_properties_dialog->vbox; }
static void create_diagram_properties_dialog(Diagram *dia) { GtkWidget *dialog_vbox; GtkWidget *notebook; GtkWidget *table; GtkWidget *label; GtkAdjustment *adj; dialog = gtk_dialog_new_with_buttons( _("Diagram Properties"), GTK_WINDOW(ddisplay_active()->shell), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL, GTK_STOCK_APPLY, GTK_RESPONSE_APPLY, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_OK); dialog_vbox = GTK_DIALOG(dialog)->vbox; gtk_window_set_role(GTK_WINDOW(dialog), "diagram_properties"); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(diagram_properties_respond), NULL); g_signal_connect(G_OBJECT(dialog), "delete_event", G_CALLBACK(gtk_widget_hide), NULL); g_signal_connect(G_OBJECT(dialog), "destroy", G_CALLBACK(gtk_widget_destroyed), &dialog); notebook = gtk_notebook_new(); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP); gtk_box_pack_start(GTK_BOX(dialog_vbox), notebook, TRUE, TRUE, 0); gtk_container_set_border_width(GTK_CONTAINER(notebook), 2); gtk_widget_show(notebook); /* the grid page */ table = gtk_table_new(3,3,FALSE); gtk_container_set_border_width(GTK_CONTAINER(table), 2); gtk_table_set_row_spacings(GTK_TABLE(table), 1); gtk_table_set_col_spacings(GTK_TABLE(table), 2); dynamic_check = gtk_check_button_new_with_label(_("Dynamic grid")); gtk_table_attach(GTK_TABLE(table), dynamic_check, 1,2, 0,1, GTK_FILL, GTK_FILL, 0, 0); g_signal_connect(G_OBJECT(dynamic_check), "toggled", G_CALLBACK(diagram_properties_update_sensitivity), NULL); gtk_widget_show(dynamic_check); label = gtk_label_new(_("x")); gtk_table_attach(GTK_TABLE(table), label, 1,2, 1,2, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show(label); label = gtk_label_new(_("y")); gtk_table_attach(GTK_TABLE(table), label, 2,3, 1,2, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show(label); label = gtk_label_new(_("Spacing")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_table_attach(GTK_TABLE(table), label, 0,1, 2,3, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show(label); adj = GTK_ADJUSTMENT(gtk_adjustment_new(1.0, 0.0, 10.0, 0.1, 10.0, 0)); width_x_entry = gtk_spin_button_new(adj, 1.0, 3); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(width_x_entry), TRUE); gtk_table_attach(GTK_TABLE(table), width_x_entry, 1,2, 2,3, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); gtk_widget_show(width_x_entry); adj = GTK_ADJUSTMENT(gtk_adjustment_new(1.0, 0.0, 10.0, 0.1, 10.0, 0)); width_y_entry = gtk_spin_button_new(adj, 1.0, 3); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(width_y_entry), TRUE); gtk_table_attach(GTK_TABLE(table), width_y_entry, 2,3, 2,3, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); gtk_widget_show(width_y_entry); label = gtk_label_new(_("Visible spacing")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_table_attach(GTK_TABLE(table), label, 0,1, 3,4, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show(label); adj = GTK_ADJUSTMENT(gtk_adjustment_new(1.0, 0.0, 100.0, 1.0, 10.0, 0)); visible_x_entry = gtk_spin_button_new(adj, 1.0, 0); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(visible_x_entry), TRUE); gtk_table_attach(GTK_TABLE(table), visible_x_entry, 1,2, 3,4, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); gtk_widget_show(visible_x_entry); adj = GTK_ADJUSTMENT(gtk_adjustment_new(1.0, 0.0, 100.0, 1.0, 10.0, 0)); visible_y_entry = gtk_spin_button_new(adj, 1.0, 0); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(visible_y_entry), TRUE); gtk_table_attach(GTK_TABLE(table), visible_y_entry, 2,3, 3,4, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); gtk_widget_show(visible_y_entry); /* Hexes! */ hex_check = gtk_check_button_new_with_label(_("Hex grid")); gtk_table_attach(GTK_TABLE(table), hex_check, 1,2, 4,5, GTK_FILL, GTK_FILL, 0, 0); g_signal_connect(G_OBJECT(hex_check), "toggled", G_CALLBACK(diagram_properties_update_sensitivity), NULL); gtk_widget_show(hex_check); label = gtk_label_new(_("Hex grid size")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_table_attach(GTK_TABLE(table), label, 0,1, 5,6, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show(label); adj = GTK_ADJUSTMENT(gtk_adjustment_new(1.0, 0.0, 100.0, 1.0, 10.0, 0)); hex_size_entry = gtk_spin_button_new(adj, 1.0, 0); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(hex_size_entry), TRUE); gtk_table_attach(GTK_TABLE(table), hex_size_entry, 1,2, 5,6, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); gtk_widget_show(hex_size_entry); label = gtk_label_new(_("Grid")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table, label); gtk_widget_show(table); gtk_widget_show(label); /* The background page */ table = gtk_table_new(1,2, FALSE); gtk_container_set_border_width(GTK_CONTAINER(table), 2); gtk_table_set_row_spacings(GTK_TABLE(table), 1); gtk_table_set_col_spacings(GTK_TABLE(table), 2); label = gtk_label_new(_("Background")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_table_attach(GTK_TABLE(table), label, 0,1, 0,1, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show(label); bg_colour = dia_color_selector_new(); gtk_table_attach(GTK_TABLE(table), bg_colour, 1,2, 0,1, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); gtk_widget_show(bg_colour); label = gtk_label_new(_("Grid Lines")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_table_attach(GTK_TABLE(table), label, 0,1, 1,2, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show(label); grid_colour = dia_color_selector_new(); gtk_table_attach(GTK_TABLE(table), grid_colour, 1,2, 1,2, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); gtk_widget_show(grid_colour); label = gtk_label_new(_("Page Breaks")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_table_attach(GTK_TABLE(table), label, 0,1, 2,3, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show(label); pagebreak_colour = dia_color_selector_new(); gtk_table_attach(GTK_TABLE(table), pagebreak_colour, 1,2, 2,3, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); gtk_widget_show(pagebreak_colour); label = gtk_label_new(_("Colors")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table, label); gtk_widget_show(table); gtk_widget_show(label); }