123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- /* $Id: create.c,v 1.5 2001/04/25 14:31:48 kilobug Exp $ */
- #include "gtkutil.h"
- /*
- ** Create and show items
- */
- GtkWidget *create_frame(const char *label)
- {
- GtkWidget *widget;
-
- widget = gtk_frame_new(label);
- gtk_frame_set_shadow_type(GTK_FRAME(widget), GTK_SHADOW_ETCHED_IN);
- gtk_frame_set_label_align(GTK_FRAME(widget), 0.5, 0);
- gtk_widget_show(widget);
- return widget;
- }
- GtkWidget *create_label(const char *label)
- {
- GtkWidget *widget;
-
- widget = gtk_label_new(label);
- gtk_widget_show(widget);
- return widget;
- }
- GtkWidget *create_hscale(int min, int max, int *value)
- {
- GtkObject *adj;
- GtkWidget *wid;
- adj = gtk_adjustment_new(*value, min, max, 1, 10, 20);
- wid = gtk_hscale_new(GTK_ADJUSTMENT(adj));
- gtk_signal_connect(GTK_OBJECT(adj), "value_changed",
- set_data_from_adjustment, value);
- gtk_scale_set_digits(GTK_SCALE(wid), 0);
- gtk_widget_show(wid);
- return wid;
- }
- GtkWidget *create_hscale_float(float min, float max, float *value)
- {
- GtkObject *adj;
- GtkWidget *wid;
- adj = gtk_adjustment_new(*value, min, max, 1, 2, 0);
- wid = gtk_hscale_new(GTK_ADJUSTMENT(adj));
- gtk_signal_connect(GTK_OBJECT(adj), "value_changed",
- set_data_from_adjustment_float, value);
- gtk_scale_set_digits(GTK_SCALE(wid), 2);
- gtk_widget_show(wid);
- return wid;
- }
- GtkWidget *create_dialog(const char *title, GtkWidget *main_area,
- const char *msg1, const char *msg2,
- GtkSignalFunc callback, void *data,
- GtkSignalFunc destroy)
- {
- GtkWidget *dialog, *hbox, *widget;
- GtkAccelGroup *accel_group;
- /* Main box */
- dialog = gtk_dialog_new();
- gtk_widget_hide(dialog);
- gtk_signal_connect(GTK_OBJECT(dialog), "destroy",
- GTK_SIGNAL_FUNC(destroy), dialog);
- gtk_window_set_title(GTK_WINDOW(dialog), title);
- gtk_container_set_border_width(GTK_CONTAINER(&(GTK_DIALOG(dialog)->window)),
- 7);
- accel_group = gtk_accel_group_new();
- gtk_window_add_accel_group(GTK_WINDOW(&(GTK_DIALOG(dialog)->window)),
- accel_group);
-
- /* Buttons */
- hbox = gtk_hbox_new(FALSE, 3);
- gtk_widget_show(hbox);
- if (msg1 != NULL)
- {
- widget = gtk_button_new_with_label(msg1);
- gtk_widget_add_accelerator(widget, "clicked", accel_group, GDK_Return, 0,
- GTK_ACCEL_VISIBLE);
- gtk_widget_show(widget);
- gtk_signal_connect(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(callback), data);
- gtk_signal_connect_after(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(destroy), dialog);
- gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 9);
- }
- widget = gtk_button_new_with_label(msg2);
- gtk_widget_add_accelerator(widget, "clicked", accel_group, GDK_Escape, 0,
- GTK_ACCEL_VISIBLE);
- if (callback == NULL)
- gtk_widget_add_accelerator(widget, "clicked", accel_group, GDK_Return, 0,
- GTK_ACCEL_VISIBLE);
- gtk_widget_show(widget);
- gtk_signal_connect(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(destroy), dialog);
- gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 9);
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area), hbox, TRUE,
- TRUE, 9);
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), main_area, TRUE,
- TRUE, 9);
- return dialog;
- }
- GtkWidget *create_spin(int min, int max, int def)
- {
- GtkAdjustment *adj;
- GtkWidget *result;
- adj = (GtkAdjustment *)gtk_adjustment_new(def, min, max, 1, 10, 0);
- result = gtk_spin_button_new(adj, 0.4, 0);
- gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(result), TRUE);
- gtk_widget_show(result);
- return result;
- }
- GtkWidget *create_entry(const char *def, int len)
- {
- GtkWidget *result;
- if (len > 0)
- result = gtk_entry_new_with_max_length(len);
- else
- result = gtk_entry_new();
- if (def != NULL)
- gtk_entry_set_text(GTK_ENTRY(result), def);
- gtk_widget_show(result);
- return result;
- }
- GtkWidget *create_check(gboolean def)
- {
- GtkWidget *result;
- result = gtk_check_button_new();
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(result), def);
- gtk_widget_show(result);
- return result;
- }
|