GtkAdjustment* cast_GtkAdjustment(GObject* obj) { return GTK_ADJUSTMENT(obj); }
void gnibbles_preferences_cb (GtkWidget * widget, gpointer data) { GtkWidget *notebook; GtkWidget *label; GtkWidget *frame; GtkWidget *button; GtkWidget *levelspinner; GtkWidget *vbox, *vbox2; GtkObject *adjustment; GtkWidget *label2; GtkWidget *table, *table2; GtkWidget *omenu; GtkWidget *controls; gchar *buffer; gint i; gint running = 0; if (pref_dialog) { gtk_window_present (GTK_WINDOW (pref_dialog)); return; } if (!paused) { unpause = 1; pause_game_cb (NULL, 0); } if (game_running ()) running = 1; pref_dialog = gtk_dialog_new_with_buttons (_("Nibbles Preferences"), GTK_WINDOW (window), 0, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); gtk_dialog_set_has_separator (GTK_DIALOG (pref_dialog), FALSE); gtk_container_set_border_width (GTK_CONTAINER (pref_dialog), 5); gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (pref_dialog)->vbox), 2); notebook = gtk_notebook_new (); gtk_container_set_border_width (GTK_CONTAINER (notebook), 5); gtk_container_add (GTK_CONTAINER (GTK_DIALOG (pref_dialog)->vbox), notebook); label = gtk_label_new (_("Game")); table = gtk_table_new (1, 2, FALSE); gtk_table_set_col_spacings (GTK_TABLE (table), 18); gtk_container_set_border_width (GTK_CONTAINER (table), 12); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), table, label); frame = games_frame_new (_("Speed")); if (running) gtk_widget_set_sensitive (frame, FALSE); gtk_table_attach (GTK_TABLE (table), frame, 0, 1, 0, 1, 0, GTK_FILL | GTK_EXPAND, 0, 0); vbox = gtk_vbox_new (FALSE, 6); gtk_container_add (GTK_CONTAINER (frame), vbox); button = gtk_radio_button_new_with_label (NULL, _("Nibbles newbie")); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); if (properties->gamespeed == 4) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); g_signal_connect (GTK_OBJECT (button), "toggled", G_CALLBACK (game_speed_cb), (gpointer) 4); button = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (button)), _("My second day")); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); if (properties->gamespeed == 3) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); g_signal_connect (GTK_OBJECT (button), "toggled", G_CALLBACK (game_speed_cb), (gpointer) 3); button = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (button)), _("Not too shabby")); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); if (properties->gamespeed == 2) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); g_signal_connect (GTK_OBJECT (button), "toggled", G_CALLBACK (game_speed_cb), (gpointer) 2); button = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (button)), _("Finger-twitching good")); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); if (properties->gamespeed == 1) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); g_signal_connect (GTK_OBJECT (button), "toggled", G_CALLBACK (game_speed_cb), (gpointer) 1); /* Options */ frame = games_frame_new (_("Options")); gtk_table_attach_defaults (GTK_TABLE (table), frame, 1, 2, 0, 1); vbox = gtk_vbox_new (FALSE, 6); gtk_container_add (GTK_CONTAINER (frame), vbox); button = gtk_check_button_new_with_mnemonic (_("_Play levels in random order")); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); if (running || ggz_network_mode) gtk_widget_set_sensitive (button, FALSE); if (properties->random) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); g_signal_connect (GTK_OBJECT (button), "toggled", G_CALLBACK (random_order_cb), NULL); button = gtk_check_button_new_with_mnemonic (_("_Enable fake bonuses")); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); if (running) gtk_widget_set_sensitive (button, FALSE); if (properties->fakes) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); g_signal_connect (GTK_OBJECT (button), "toggled", G_CALLBACK (fake_bonus_cb), NULL); button = gtk_check_button_new_with_mnemonic (_("E_nable sounds")); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); if (properties->sound) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); g_signal_connect (GTK_OBJECT (button), "toggled", G_CALLBACK (sound_cb), NULL); table2 = gtk_table_new (3, 2, FALSE); gtk_box_pack_start (GTK_BOX (vbox), table2, FALSE, FALSE, 0); gtk_table_set_row_spacings (GTK_TABLE (table2), 6); gtk_table_set_col_spacings (GTK_TABLE (table2), 12); gtk_container_set_border_width (GTK_CONTAINER (table2), 0); label2 = gtk_label_new_with_mnemonic (_("_Starting level:")); start_level_label = label2; gtk_widget_set_name (label2, "StartLevelLabel"); gtk_misc_set_alignment (GTK_MISC (label2), 0, 0.5); if (properties->random) gtk_widget_set_sensitive (GTK_WIDGET (label2), FALSE); if (running) gtk_widget_set_sensitive (GTK_WIDGET (label2), FALSE); gtk_table_attach (GTK_TABLE (table2), label2, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); adjustment = gtk_adjustment_new ((gfloat) properties->startlevel, 1.0, MAXLEVEL, 1.0, 5.0, 0.0); levelspinner = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 0, 0); start_level_spin_button = levelspinner; gtk_widget_set_name (levelspinner, "StartLevelSpinButton"); gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (levelspinner), FALSE); gtk_label_set_mnemonic_widget (GTK_LABEL (label2), levelspinner); if (properties->random) gtk_widget_set_sensitive (GTK_WIDGET (levelspinner), FALSE); if (running) gtk_widget_set_sensitive (GTK_WIDGET (levelspinner), FALSE); gtk_table_attach_defaults (GTK_TABLE (table2), levelspinner, 1, 2, 0, 1); g_signal_connect (GTK_OBJECT (adjustment), "value_changed", G_CALLBACK (start_level_cb), levelspinner); label2 = gtk_label_new_with_mnemonic (_("Number of _human players:")); gtk_misc_set_alignment (GTK_MISC (label2), 0, 0.5); gtk_table_attach (GTK_TABLE (table2), label2, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); if (running || ggz_network_mode) gtk_widget_set_sensitive (label2, FALSE); adjustment = gtk_adjustment_new ((gfloat) properties->human, 0.0, NUMWORMS, 1.0, 1.0, 0.0); num_human = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 0, 0); gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (num_human), FALSE); gtk_label_set_mnemonic_widget (GTK_LABEL (label2), num_human); gtk_table_attach_defaults (GTK_TABLE (table2), num_human, 1, 2, 1, 2); if (running || ggz_network_mode) gtk_widget_set_sensitive (num_human, FALSE); g_signal_connect (GTK_OBJECT (adjustment), "value_changed", G_CALLBACK (num_worms_cb), num_human); label2 = gtk_label_new_with_mnemonic (_("Number of _AI players:")); gtk_misc_set_alignment (GTK_MISC (label2), 0, 0.5); gtk_table_attach (GTK_TABLE (table2), label2, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); if (running || ggz_network_mode) gtk_widget_set_sensitive (label2, FALSE); adjustment = gtk_adjustment_new ((gfloat) properties->ai, 0.0, NUMWORMS, 1.0, 1.0, 0.0); num_ai = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 0, 0); gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (num_ai), FALSE); gtk_label_set_mnemonic_widget (GTK_LABEL (label2), num_ai); gtk_table_attach_defaults (GTK_TABLE (table2), num_ai, 1, 2, 2, 3); if (running || ggz_network_mode) gtk_widget_set_sensitive (num_ai, FALSE); g_signal_connect (GTK_OBJECT (adjustment), "value_changed", G_CALLBACK (num_worms_cb), num_ai); for (i = 0; i < NUMWORMS; i++) { char up_key[64]; char down_key[64]; char left_key[64]; char right_key[64]; buffer = g_strdup_printf ("%s %d", _("Worm"), i + 1); label = gtk_label_new (buffer); g_free (buffer); vbox = gtk_vbox_new (FALSE, 18); gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox, label); frame = games_frame_new (_("Keyboard Controls")); controls = games_controls_list_new (KEY_PREFERENCES_GROUP); g_snprintf (left_key, sizeof (left_key), KEY_WORM_LEFT, i); g_snprintf (right_key, sizeof (right_key), KEY_WORM_RIGHT, i); g_snprintf (up_key, sizeof (up_key), KEY_WORM_UP, i); g_snprintf (down_key, sizeof (down_key), KEY_WORM_DOWN, i); games_controls_list_add_controls (GAMES_CONTROLS_LIST (controls), left_key, _("Move left"), GDK_Left, right_key, _("Move right"), GDK_Right, up_key, _("Move up"), GDK_Up, down_key, _("Move down"), GDK_Down, NULL); gtk_container_add (GTK_CONTAINER (frame), controls); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); frame = games_frame_new (_("Options")); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); vbox2 = gtk_vbox_new (FALSE, 6); gtk_container_add (GTK_CONTAINER (frame), vbox2); button = gtk_check_button_new_with_mnemonic (_("_Use relative movement")); gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0); table2 = gtk_table_new (1, 2, FALSE); gtk_table_set_col_spacings (GTK_TABLE (table2), 12); gtk_box_pack_start (GTK_BOX (vbox2), table2, FALSE, FALSE, 0); label2 = gtk_label_new_with_mnemonic (_("_Worm color:")); gtk_misc_set_alignment (GTK_MISC (label2), 0, 0.5); gtk_table_attach (GTK_TABLE (table2), label2, 0, 1, 0, 1, 0, 0, 0, 0); omenu = gtk_combo_box_new_text (); gtk_label_set_mnemonic_widget (GTK_LABEL (label2), omenu); gtk_combo_box_append_text (GTK_COMBO_BOX (omenu), _("Red")); gtk_combo_box_append_text (GTK_COMBO_BOX (omenu), _("Green")); gtk_combo_box_append_text (GTK_COMBO_BOX (omenu), _("Blue")); gtk_combo_box_append_text (GTK_COMBO_BOX (omenu), _("Yellow")); gtk_combo_box_append_text (GTK_COMBO_BOX (omenu), _("Cyan")); gtk_combo_box_append_text (GTK_COMBO_BOX (omenu), _("Purple")); gtk_combo_box_append_text (GTK_COMBO_BOX (omenu), _("Gray")); g_signal_connect (GTK_OBJECT (omenu), "changed", G_CALLBACK (set_worm_color_cb), GINT_TO_POINTER (i)); gtk_combo_box_set_active (GTK_COMBO_BOX (omenu), properties->wormprops[i]->color - WORMRED); gtk_table_attach_defaults (GTK_TABLE (table2), omenu, 1, 2, 0, 1); set_worm_controls_sensitivity (i, properties->wormprops[i]->relmove); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), properties->wormprops[i]->relmove); g_signal_connect (G_OBJECT (button), "toggled", G_CALLBACK (worm_relative_movement_cb), GINT_TO_POINTER (i)); } g_signal_connect (G_OBJECT (pref_dialog), "response", G_CALLBACK (apply_cb), NULL); g_signal_connect (G_OBJECT (pref_dialog), "destroy", G_CALLBACK (destroy_cb), NULL); g_signal_connect (G_OBJECT (pref_dialog), "close", G_CALLBACK (destroy_cb), NULL); gtk_widget_show_all (pref_dialog); }
int main (int argc, char **argv) { GtkWidget *window, *hbox, *vbox, *play_button, *pause_button, *stop_button; GstBus *bus; GOptionEntry options[] = { {"verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, "Verbose properties", NULL}, {NULL} }; gint type; GOptionContext *ctx; GError *err = NULL; ctx = g_option_context_new ("seek"); g_option_context_add_main_entries (ctx, options, NULL); g_option_context_add_group (ctx, gst_init_get_option_group ()); if (!g_option_context_parse (ctx, &argc, &argv, &err)) { g_print ("Error initializing: %s\n", err->message); exit (1); } GST_DEBUG_CATEGORY_INIT (scrubby_debug, "scrubby", 0, "scrubby example"); gtk_init (&argc, &argv); if (argc != 3) { print_usage (argc, argv); exit (-1); } type = atoi (argv[1]); if (type < 0 || type >= NUM_TYPES) { print_usage (argc, argv); exit (-1); } pipeline = pipelines[type].func (argv[2]); g_assert (pipeline); /* initialize gui elements ... */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); hbox = gtk_hbox_new (FALSE, 0); vbox = gtk_vbox_new (FALSE, 0); play_button = gtk_button_new_with_label ("play"); pause_button = gtk_button_new_with_label ("pause"); stop_button = gtk_button_new_with_label ("stop"); adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, (gdouble) RANGE_PREC, 0.1, 1.0, 1.0)); hscale = gtk_hscale_new (adjustment); gtk_scale_set_digits (GTK_SCALE (hscale), 2); sadjustment = GTK_ADJUSTMENT (gtk_adjustment_new (1.0, 0.0, 5.0, 0.1, 1.0, 0.0)); shscale = gtk_hscale_new (sadjustment); gtk_scale_set_digits (GTK_SCALE (shscale), 2); schanged_id = g_signal_connect (shscale, "value_changed", G_CALLBACK (speed_cb), pipeline); g_signal_connect (hscale, "button_press_event", G_CALLBACK (start_seek), pipeline); g_signal_connect (hscale, "button_release_event", G_CALLBACK (stop_seek), pipeline); g_signal_connect (hscale, "format_value", G_CALLBACK (format_value), pipeline); /* do the packing stuff ... */ gtk_window_set_default_size (GTK_WINDOW (window), 96, 96); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_add (GTK_CONTAINER (vbox), hbox); gtk_box_pack_start (GTK_BOX (hbox), play_button, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX (hbox), pause_button, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX (hbox), stop_button, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX (vbox), hscale, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (vbox), shscale, TRUE, TRUE, 2); /* connect things ... */ g_signal_connect (G_OBJECT (play_button), "clicked", G_CALLBACK (play_cb), pipeline); g_signal_connect (G_OBJECT (pause_button), "clicked", G_CALLBACK (pause_cb), pipeline); g_signal_connect (G_OBJECT (stop_button), "clicked", G_CALLBACK (stop_cb), pipeline); g_signal_connect (G_OBJECT (window), "delete_event", gtk_main_quit, NULL); /* show the gui. */ gtk_widget_show_all (window); if (verbose) { g_signal_connect (pipeline, "deep_notify", G_CALLBACK (gst_object_default_deep_notify), NULL); } bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline)); g_assert (bus); bus_watch = gst_bus_add_watch_full (bus, G_PRIORITY_HIGH, bus_message, pipeline, NULL); gtk_main (); g_print ("NULL pipeline\n"); gst_element_set_state (pipeline, GST_STATE_NULL); g_print ("free pipeline\n"); gst_object_unref (pipeline); return 0; }
GtkWidget* create_dialog1 (void) { GtkWidget *dialog1; GtkWidget *dialog_vbox1; GtkWidget *vbox1; GtkWidget *frame1; GtkWidget *table1; GtkWidget *buttonSelect; GtkWidget *labelVobsub; GtkWidget *label4; GtkWidget *optionmenu1; GtkWidget *label2; GtkWidget *frame2; GtkWidget *table2; GtkWidget *label6; GtkObject *spinbutton1_adj; GtkWidget *spinbutton1; GtkWidget *label7; GtkWidget *entryShift; GtkWidget *label5; GtkWidget *dialog_action_area1; GtkWidget *cancelbutton1; GtkWidget *okbutton1; dialog1 = gtk_dialog_new (); gtk_window_set_title (GTK_WINDOW (dialog1), QT_TR_NOOP("VobSub Settings")); dialog_vbox1 = GTK_DIALOG (dialog1)->vbox; gtk_widget_show (dialog_vbox1); vbox1 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox1); gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox1, TRUE, TRUE, 0); frame1 = gtk_frame_new (NULL); gtk_widget_show (frame1); gtk_box_pack_start (GTK_BOX (vbox1), frame1, TRUE, TRUE, 0); table1 = gtk_table_new (2, 2, FALSE); gtk_widget_show (table1); gtk_container_add (GTK_CONTAINER (frame1), table1); buttonSelect = gtk_button_new_with_mnemonic (QT_TR_NOOP("Select .idx")); gtk_widget_show (buttonSelect); gtk_table_attach (GTK_TABLE (table1), buttonSelect, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); labelVobsub = gtk_label_new (QT_TR_NOOP("None")); gtk_widget_show (labelVobsub); gtk_table_attach (GTK_TABLE (table1), labelVobsub, 0, 1, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify (GTK_LABEL (labelVobsub), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (labelVobsub), 0, 0.5); label4 = gtk_label_new (QT_TR_NOOP("Select Language :")); gtk_widget_show (label4); gtk_table_attach (GTK_TABLE (table1), label4, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify (GTK_LABEL (label4), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label4), 0, 0.5); optionmenu1 = gtk_option_menu_new (); gtk_widget_show (optionmenu1); gtk_table_attach (GTK_TABLE (table1), optionmenu1, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label2 = gtk_label_new (QT_TR_NOOP("Select Sub")); gtk_widget_show (label2); gtk_frame_set_label_widget (GTK_FRAME (frame1), label2); gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT); frame2 = gtk_frame_new (NULL); gtk_widget_show (frame2); gtk_box_pack_start (GTK_BOX (vbox1), frame2, TRUE, TRUE, 0); table2 = gtk_table_new (2, 2, FALSE); gtk_widget_show (table2); gtk_container_add (GTK_CONTAINER (frame2), table2); label6 = gtk_label_new (QT_TR_NOOP("Extra Shrink Factor :")); gtk_widget_show (label6); gtk_table_attach (GTK_TABLE (table2), label6, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify (GTK_LABEL (label6), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5); spinbutton1_adj = gtk_adjustment_new (1, 1, 2, 0.1, 0.2, 0.2); spinbutton1 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton1_adj), 1, 0); gtk_widget_show (spinbutton1); gtk_table_attach (GTK_TABLE (table2), spinbutton1, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); label7 = gtk_label_new (QT_TR_NOOP("Shift (ms) :")); gtk_widget_show (label7); gtk_table_attach (GTK_TABLE (table2), label7, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify (GTK_LABEL (label7), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label7), 0, 0.5); entryShift = gtk_entry_new (); gtk_widget_show (entryShift); gtk_table_attach (GTK_TABLE (table2), entryShift, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); label5 = gtk_label_new (QT_TR_NOOP("Extra Settings")); gtk_widget_show (label5); gtk_frame_set_label_widget (GTK_FRAME (frame2), label5); gtk_label_set_justify (GTK_LABEL (label5), GTK_JUSTIFY_LEFT); dialog_action_area1 = GTK_DIALOG (dialog1)->action_area; gtk_widget_show (dialog_action_area1); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END); cancelbutton1 = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (cancelbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), cancelbutton1, GTK_RESPONSE_CANCEL); GTK_WIDGET_SET_FLAGS (cancelbutton1, GTK_CAN_DEFAULT); okbutton1 = gtk_button_new_from_stock ("gtk-ok"); gtk_widget_show (okbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), okbutton1, GTK_RESPONSE_OK); GTK_WIDGET_SET_FLAGS (okbutton1, GTK_CAN_DEFAULT); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog1, "dialog1"); GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog_vbox1, "dialog_vbox1"); GLADE_HOOKUP_OBJECT (dialog1, vbox1, "vbox1"); GLADE_HOOKUP_OBJECT (dialog1, frame1, "frame1"); GLADE_HOOKUP_OBJECT (dialog1, table1, "table1"); GLADE_HOOKUP_OBJECT (dialog1, buttonSelect, "buttonSelect"); GLADE_HOOKUP_OBJECT (dialog1, labelVobsub, "labelVobsub"); GLADE_HOOKUP_OBJECT (dialog1, label4, "label4"); GLADE_HOOKUP_OBJECT (dialog1, optionmenu1, "optionmenu1"); GLADE_HOOKUP_OBJECT (dialog1, label2, "label2"); GLADE_HOOKUP_OBJECT (dialog1, frame2, "frame2"); GLADE_HOOKUP_OBJECT (dialog1, table2, "table2"); GLADE_HOOKUP_OBJECT (dialog1, label6, "label6"); GLADE_HOOKUP_OBJECT (dialog1, spinbutton1, "spinbutton1"); GLADE_HOOKUP_OBJECT (dialog1, label7, "label7"); GLADE_HOOKUP_OBJECT (dialog1, entryShift, "entryShift"); GLADE_HOOKUP_OBJECT (dialog1, label5, "label5"); GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog_action_area1, "dialog_action_area1"); GLADE_HOOKUP_OBJECT (dialog1, cancelbutton1, "cancelbutton1"); GLADE_HOOKUP_OBJECT (dialog1, okbutton1, "okbutton1"); return dialog1; }
int main(int argc,char *argv[]) { GtkWidget *window; GtkWidget *vbox;// 和ios相比,是多出来的,ios没有这种界面布局控件。 GtkWidget *label1; GtkWidget *label2; GtkWidget *label3; GtkObject *adjustment; GtkWidget *bar; GtkWidget *spinbutton; GList *glist; GtkWidget *combo; gtk_init(&argc,&argv);// 初始化图形显示环境。 // 窗口 window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), g_locale_to_utf8("控制元件",-1,NULL,NULL,NULL) ); // g_locale_to_utf8()支持中文字符显示。 gtk_container_border_width(GTK_CONTAINER(window),40); vbox = gtk_vbox_new(FALSE,0); gtk_container_add(GTK_CONTAINER(window),vbox); /* 和ios相比,可以省掉设置x,y,width,height这么恶心的事 */ // 标签 label1 = gtk_label_new( g_locale_to_utf8("进度条:",-1,NULL,NULL,NULL)); gtk_box_pack_start(GTK_BOX(vbox),label1,TRUE,TRUE,0); // 进度条 adjustment=gtk_adjustment_new(70.0,0.0,100.0,1.0,0.0,0.0); bar = gtk_progress_bar_new_with_adjustment(GTK_ADJUSTMENT(adjustment)); gtk_progress_bar_set_bar_style(GTK_PROGRESS_BAR(bar), GTK_PROGRESS_CONTINUOUS); gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(bar), GTK_PROGRESS_LEFT_TO_RIGHT); gtk_box_pack_start(GTK_BOX(vbox),bar,TRUE,TRUE,15); /* void gtk_progress_bar_set_orientation (GtkProgressBar *pbar, GtkProgressBarOrientation orientation); void gtk_progress_bar_set_bar_style (GtkProgressBar *pbar, GtkProgressBarStyle style); simple interface void gtk_combo_set_popdown_strings (GtkCombo* combo, GList *strings); */ label2 = gtk_label_new( g_locale_to_utf8("微调按钮:",-1,NULL,NULL,NULL)); gtk_box_pack_start(GTK_BOX(vbox),label2,TRUE,TRUE,0); // 微调按钮 adjustment = gtk_adjustment_new(80.0,0.0,100.0,1.0,0.0,0.0); spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT(adjustment),1.0,1 ); gtk_box_pack_start(GTK_BOX(vbox),spinbutton,TRUE,TRUE,0); //组合框 label3 = gtk_label_new( g_locale_to_utf8("下拉列表:",-1,NULL,NULL,NULL)); gtk_box_pack_start(GTK_BOX(vbox),label3,TRUE,TRUE,0); glist=NULL; glist = g_list_append(glist,"banana"); glist = g_list_append(glist,"apple"); glist = g_list_append(glist,"orange"); glist = g_list_append(glist,"pear");//梨 glist = g_list_append(glist,"strawberry"); combo=gtk_combo_new(); gtk_combo_set_popdown_strings(GTK_COMBO(combo),glist); gtk_box_pack_start(GTK_BOX(vbox),combo,TRUE,TRUE,15); // 显示窗口中的所有元件 gtk_widget_show_all(window); //退出-->信号事件处理必须放在主循环之前。 g_signal_connect(G_OBJECT(window),"delete_event" ,G_CALLBACK(gtk_main_quit),NULL); // 消息主循环 gtk_main(); return 0; }
void videoplay_create (void) { videoplay = g_new0 (VideoPlay, 1); videoplay->is_fullscreen = FALSE; videoplay->is_hide = TRUE; videoplay->seek_lock = FALSE; videoplay->status = VIDEOPLAY_STATUS_NULL; videoplay->video_name = NULL; videoplay->container = gtk_frame_new (NULL); gtk_widget_show (videoplay->container); videoplay->vbox = gtk_vbox_new (FALSE, 0); gtk_widget_show (videoplay->vbox); gtk_container_add (GTK_CONTAINER (videoplay->container), videoplay->vbox); videoplay->frame = gtk_aspect_frame_new (NULL, 0.5, 0.5, 1.33333, FALSE); gtk_box_pack_start (GTK_BOX (videoplay->vbox), videoplay->frame, TRUE, TRUE, 0); gtk_widget_show (videoplay->frame); videoplay->mplayer = gtk_mplayer_new (); gtk_container_add (GTK_CONTAINER (videoplay->frame), videoplay->mplayer); gtk_widget_show (videoplay->mplayer); gtk_signal_connect (GTK_OBJECT (videoplay->mplayer), "play", GTK_SIGNAL_FUNC (cb_mplayer_play), videoplay); gtk_signal_connect (GTK_OBJECT (videoplay->mplayer), "stop", GTK_SIGNAL_FUNC (cb_mplayer_stop), videoplay); gtk_signal_connect (GTK_OBJECT (videoplay->mplayer), "pause", GTK_SIGNAL_FUNC (cb_mplayer_pause), videoplay); gtk_signal_connect (GTK_OBJECT (videoplay->mplayer), "position_changed", GTK_SIGNAL_FUNC (cb_mplayer_pos_changed), videoplay); GTK_WIDGET_SET_FLAGS (GTK_WIDGET (videoplay->frame), GTK_CAN_FOCUS); videoplay->hbox = gtk_hbox_new (FALSE, 0); gtk_widget_show (videoplay->hbox); gtk_box_pack_start (GTK_BOX (videoplay->vbox), videoplay->hbox, FALSE, FALSE, 10); videoplay->button_tooltips = gtk_tooltips_new (); videoplay->button_vbox = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (videoplay->hbox), videoplay->button_vbox, FALSE, FALSE, 10); gtk_widget_show (videoplay->button_vbox); videoplay->button_hbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (videoplay->button_vbox), videoplay->button_hbox, FALSE, FALSE, 10); gtk_widget_show (videoplay->button_hbox); videoplay->play_btn = button_create (videoplay->button_hbox, (gchar **) play_xpm, FALSE, videoplay->button_tooltips, _("Play"), GTK_SIGNAL_FUNC (cb_videoplay_play), videoplay); gtk_widget_set_usize (videoplay->play_btn, 30, 30); videoplay->pause_btn = button_create (videoplay->button_hbox, (gchar **) pause_xpm, FALSE, videoplay->button_tooltips, _("Pause"), GTK_SIGNAL_FUNC (cb_videoplay_pause), videoplay); gtk_widget_set_usize (videoplay->pause_btn, 30, 30); videoplay->stop_btn = button_create (videoplay->button_hbox, (gchar **) stop_xpm, FALSE, videoplay->button_tooltips, _("Stop"), GTK_SIGNAL_FUNC (cb_videoplay_stop), videoplay); gtk_widget_set_usize (videoplay->stop_btn, 30, 30); videoplay->previous_btn = button_create (videoplay->button_hbox, (gchar **) prev_xpm, FALSE, videoplay->button_tooltips, _("Previous"), GTK_SIGNAL_FUNC (cb_videoplay_prev), videoplay); gtk_widget_set_usize (videoplay->previous_btn, 30, 30); videoplay->next_btn = button_create (videoplay->button_hbox, (gchar **) next_xpm, FALSE, videoplay->button_tooltips, _("Next"), GTK_SIGNAL_FUNC (cb_videoplay_next), videoplay); gtk_widget_set_usize (videoplay->next_btn, 30, 30); videoplay->seek_vbox = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (videoplay->hbox), videoplay->seek_vbox, TRUE, TRUE, 0); gtk_widget_show (videoplay->seek_vbox); videoplay->seek_adj = gtk_adjustment_new (0.0, 0.0, 100.0, 0.01, 1.0, 1.0); GTK_ADJUSTMENT (videoplay->seek_adj)->value = 0; videoplay->seek = gtk_hscale_new (GTK_ADJUSTMENT (videoplay->seek_adj)); gtk_widget_show (videoplay->seek); gtk_box_pack_start (GTK_BOX (videoplay->seek_vbox), videoplay->seek, TRUE, TRUE, 10); gtk_scale_set_draw_value (GTK_SCALE (videoplay->seek), FALSE); gtk_range_set_update_policy (GTK_RANGE (videoplay->seek), GTK_UPDATE_CONTINUOUS); videoplay->seek_label = gtk_label_new ("00:00:00"); gtk_box_pack_start (GTK_BOX (videoplay->seek_vbox), videoplay->seek_label, TRUE, TRUE, 0); gtk_widget_show (videoplay->seek_label); gtk_signal_connect (GTK_OBJECT (videoplay->seek_adj), "value_changed", GTK_SIGNAL_FUNC (cb_seekbar_value_changed), videoplay); }
static void script_fu_console_interface (void) { GtkWidget *dlg; GtkWidget *button; GtkWidget *label; GtkWidget *vsb; GtkWidget *table; GtkWidget *hbox; GIOChannel *input_channel; INIT_I18N_UI(); textdomain("cinepaint-script-fu"); gimp_ui_init ("script-fu", FALSE); dlg = gtk_dialog_new (); gtk_window_set_title (GTK_WINDOW (dlg), _("Script-Fu Console")); gimp_help_connect_help_accel (dlg, gimp_standard_help_func, "filters/script-fu.html"); gtk_signal_connect (GTK_OBJECT (dlg), "destroy", (GtkSignalFunc) script_fu_close_callback, NULL); gtk_signal_connect (GTK_OBJECT (dlg), "destroy", GTK_SIGNAL_FUNC (gtk_widget_destroyed), &dlg); gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dlg)->vbox), 2); gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dlg)->action_area), 0); /* Action area */ button = gtk_button_new_with_label (_("Close")); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", (GtkSignalFunc) gtk_widget_destroy, (gpointer)dlg); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->action_area), button, TRUE, TRUE, 0); gtk_widget_show (button); /* The info vbox */ label = gtk_label_new (_("SIOD Output")); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), label, FALSE, TRUE, 0); gtk_widget_show (label); /* The output text widget */ cint.vadj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); vsb = gtk_vscrollbar_new (cint.vadj); cint.console = gtk_text_new (NULL, cint.vadj); gtk_text_set_editable (GTK_TEXT (cint.console), FALSE); gtk_widget_set_usize (cint.console, TEXT_WIDTH, TEXT_HEIGHT); table = gtk_table_new (1, 2, FALSE); gtk_table_set_col_spacing (GTK_TABLE (table), 0, 2); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), table, TRUE, TRUE, 0); gtk_table_attach (GTK_TABLE (table), vsb, 1, 2, 0, 1, 0, GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0); gtk_table_attach (GTK_TABLE (table), cint.console, 0, 1, 0, 1, GTK_EXPAND | GTK_SHRINK | GTK_FILL, GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 2); cint.font_strong = gdk_font_load ("-*-helvetica-bold-r-normal-*-*-120-*-*-*-*-*-*"); cint.font_emphasis = gdk_font_load ("-*-helvetica-medium-o-normal-*-*-100-*-*-*-*-*-*"); cint.font_weak = gdk_font_load ("-*-helvetica-medium-r-normal-*-*-100-*-*-*-*-*-*"); cint.font = gdk_fontset_load ("-*-*-medium-r-normal-*-*-100-*-*-c-*-iso8859-1,*"); /* Realize the widget before allowing new text to be inserted */ gtk_widget_realize (cint.console); gtk_text_insert (GTK_TEXT (cint.console), cint.font_strong, NULL, NULL, "The GIMP - GNU Image Manipulation Program\n\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_emphasis, NULL, NULL, "Copyright (C) 1995-2001\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_emphasis, NULL, NULL, "Spencer Kimball, Peter Mattis and the GIMP Development Team\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "This program is free software; you can redistribute it and/or modify\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "it under the terms of the GNU General Public License as published by\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "the Free Software Foundation; either version 2 of the License, or\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "(at your option) any later version.\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "This program is distributed in the hope that it will be useful,\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "but WITHOUT ANY WARRANTY; without even the implied warranty of\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "See the GNU General Public License for more details.\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "You should have received a copy of the GNU General Public License\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "along with this program; if not, write to the Free Software\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_strong, NULL, NULL, "Welcome to SIOD, Scheme In One Defun\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "(C) Copyright 1988-1994 Paradigm Associates Inc.\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL, "\n\n", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_strong, NULL, NULL, "Script-Fu Console - ", -1); gtk_text_insert (GTK_TEXT (cint.console), cint.font_emphasis, NULL, NULL, "Interactive Scheme Development\n\n", -1); gtk_widget_show (vsb); gtk_widget_show (cint.console); gtk_widget_show (table); /* The current command */ label = gtk_label_new (_("Current Command")); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), label, FALSE, TRUE, 0); gtk_widget_show (label); hbox = gtk_hbox_new ( FALSE, 0 ); gtk_widget_set_usize (hbox, ENTRY_WIDTH, 0); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), hbox, FALSE, TRUE, 0); gtk_widget_show (hbox); cint.cc = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), cint.cc, TRUE, TRUE, 0); /* gtk_widget_set_usize (cint.cc, (ENTRY_WIDTH*5)/6, 0); */ GTK_WIDGET_SET_FLAGS (cint.cc, GTK_CAN_DEFAULT); gtk_widget_grab_default (cint.cc); gtk_signal_connect (GTK_OBJECT (cint.cc), "key_press_event", (GtkSignalFunc) script_fu_cc_key_function, NULL); button = gtk_button_new_with_label (_("Browse...")); /* gtk_widget_set_usize (button, (ENTRY_WIDTH)/6, 0); */ gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) script_fu_browse_callback, NULL); gtk_widget_show (button); gtk_widget_show (cint.cc); input_channel = g_io_channel_unix_new (siod_output_pipe[0]); cint.input_id = g_io_add_watch (input_channel, G_IO_IN, script_fu_siod_read, NULL); /* Initialize the history */ history = g_list_append (history, NULL); history_len = 1; gtk_widget_show (dlg); gtk_main (); g_source_remove (cint.input_id); if (dlg) gtk_widget_destroy (dlg); gdk_flush (); }