예제 #1
0
void ResourceConverterDialog::build_button(GtkWidget * &image_ok, GtkWidget * &label_ok, GtkWidget * &label_short, GtkWidget * &button, const gchar * button_text, Shortcuts & shortcuts, GCallback handler, GtkWidget * &label_long)
{
    GtkWidget *hseparator;
    hseparator = gtk_hseparator_new();
    gtk_widget_show(hseparator);
    gtk_table_attach(GTK_TABLE(table1), hseparator, 0, 4, table_attachment_offset, table_attachment_offset + 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
    table_attachment_offset++;

    image_ok = gtk_image_new_from_icon_name("gtk-apply", GTK_ICON_SIZE_BUTTON);
    gtk_widget_show(image_ok);
    gtk_table_attach(GTK_TABLE(table1), image_ok, 0, 1, table_attachment_offset, table_attachment_offset + 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0);

    label_ok = gtk_label_new("");
    gtk_widget_show(label_ok);
    gtk_table_attach(GTK_TABLE(table1), label_ok, 1, 2, table_attachment_offset, table_attachment_offset + 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
    gtk_misc_set_alignment(GTK_MISC(label_ok), 0, 0.5);

    label_short = gtk_label_new("");
    gtk_widget_show(label_short);
    gtk_table_attach(GTK_TABLE(table1), label_short, 2, 3, table_attachment_offset, table_attachment_offset + 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
    gtk_misc_set_alignment(GTK_MISC(label_short), 0, 0.5);

    button = gtk_button_new();
    gtk_widget_show(button);
    gtk_table_attach(GTK_TABLE(table1), button, 3, 4, table_attachment_offset, table_attachment_offset + 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
    table_attachment_offset++;

    GtkWidget *alignment;
    alignment = gtk_alignment_new(0.5, 0.5, 0, 0);
    gtk_widget_show(alignment);
    gtk_container_add(GTK_CONTAINER(button), alignment);

    GtkWidget *hbox;
    hbox = gtk_hbox_new(FALSE, 2);
    gtk_widget_show(hbox);
    gtk_container_add(GTK_CONTAINER(alignment), hbox);

    GtkWidget *image_button_surface;
    image_button_surface = gtk_image_new_from_stock("gtk-index", GTK_ICON_SIZE_BUTTON);
    gtk_widget_show(image_button_surface);
    gtk_box_pack_start(GTK_BOX(hbox), image_button_surface, FALSE, FALSE, 0);

    GtkWidget *label_button_surface;
    label_button_surface = gtk_label_new_with_mnemonic(button_text);
    gtk_widget_show(label_button_surface);
    gtk_box_pack_start(GTK_BOX(hbox), label_button_surface, FALSE, FALSE, 0);

    shortcuts.label(label_button_surface);

    label_long = gtk_label_new("");
    gtk_widget_show(label_long);
    gtk_table_attach(GTK_TABLE(table1), label_long, 0, 4, table_attachment_offset, table_attachment_offset + 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
    gtk_misc_set_alignment(GTK_MISC(label_long), 0, 0.5);
    table_attachment_offset++;

    g_signal_connect((gpointer) button, "clicked", handler, gpointer(this));
}
예제 #2
0
// Entry, combo, entry.
void ResourceConverterDialog::build_entry_combo_entry(GtkWidget * &image_ok, GtkWidget * &label_ok, GtkWidget * &label, GtkWidget * &label_entry_1, GtkWidget * &entry_1, GtkWidget * &label_combo, GtkWidget * &combo, GtkWidget * &label_entry_2, GtkWidget * &entry_2, GCallback entry_handler, Shortcuts & shortcuts)
{
    GtkWidget *hseparator;
    hseparator = gtk_hseparator_new();
    gtk_widget_show(hseparator);
    gtk_table_attach(GTK_TABLE(table1), hseparator, 0, 4, table_attachment_offset, table_attachment_offset + 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);

    table_attachment_offset++;

    image_ok = gtk_image_new_from_icon_name("gtk-apply", GTK_ICON_SIZE_BUTTON);
    gtk_widget_show(image_ok);
    gtk_table_attach(GTK_TABLE(table1), image_ok, 0, 1, table_attachment_offset, table_attachment_offset + 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);

    label_ok = gtk_label_new(_("Done"));
    gtk_widget_show(label_ok);
    gtk_table_attach(GTK_TABLE(table1), label_ok, 1, 2, table_attachment_offset, table_attachment_offset + 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
    gtk_misc_set_alignment(GTK_MISC(label_ok), 0, 0.5);

    label = gtk_label_new("");
    gtk_widget_show(label);
    gtk_table_attach(GTK_TABLE(table1), label, 2, 4, table_attachment_offset, table_attachment_offset + 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);

    table_attachment_offset++;

    GtkWidget *hbox;
    hbox = gtk_hbox_new(FALSE, 5);
    gtk_widget_show(hbox);
    gtk_table_attach(GTK_TABLE(table1), hbox, 0, 4, table_attachment_offset, table_attachment_offset + 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);

    table_attachment_offset++;

    label_entry_1 = gtk_label_new("");
    gtk_widget_show(label_entry_1);
    gtk_box_pack_start(GTK_BOX(hbox), label_entry_1, FALSE, FALSE, 0);

    entry_1 = gtk_entry_new();
    gtk_widget_show(entry_1);
    gtk_box_pack_start(GTK_BOX(hbox), entry_1, TRUE, TRUE, 0);

    shortcuts.label(label_entry_1);
    gtk_label_set_mnemonic_widget(GTK_LABEL(label_entry_1), entry_1);

    label_combo = gtk_label_new("");
    gtk_widget_show(label_combo);
    gtk_box_pack_start(GTK_BOX(hbox), label_combo, FALSE, FALSE, 0);

    combo = gtk_combo_box_new_text();
    gtk_widget_show(combo);
    gtk_box_pack_start(GTK_BOX(hbox), combo, TRUE, TRUE, 0);

    shortcuts.label(label_combo);
    gtk_label_set_mnemonic_widget(GTK_LABEL(label_combo), combo);

    label_entry_2 = gtk_label_new("");
    gtk_widget_show(label_entry_2);
    gtk_box_pack_start(GTK_BOX(hbox), label_entry_2, FALSE, FALSE, 0);

    entry_2 = gtk_entry_new();
    gtk_widget_show(entry_2);
    gtk_box_pack_start(GTK_BOX(hbox), entry_2, TRUE, TRUE, 0);

    shortcuts.label(label_entry_2);
    gtk_label_set_mnemonic_widget(GTK_LABEL(label_entry_2), entry_2);

    g_signal_connect((gpointer) entry_1, "changed", entry_handler, gpointer(this));
    g_signal_connect((gpointer) entry_2, "changed", entry_handler, gpointer(this));
}