int main (int argc, char *argv[]) { gchar *ok_label = NULL; gchar *cancel_label = NULL; gint c,cont; /*-------------*/ #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif setlocale(LC_ALL,"es_ES"); /*-------------*/ gtk_init (&argc, &argv); win = gtk_dialog_new (); if (!win) quit (RETURN_ERROR_NOMEM); gtk_signal_connect ((GtkObject *)win, "delete_event", // quit if window GTK_SIGNAL_FUNC (cancel_cb), NULL);// gets closed msgbox = gtk_vbox_new (FALSE, 0); if (!msgbox) quit (RETURN_ERROR_NOMEM); gtk_container_set_border_width((GtkContainer *)msgbox, 5); //gtk_box_pack_start_defaults ((GtkBox*)(((GtkDialog*)win)->vbox), msgbox); // para que no haya límite al minimizar gtk_window_set_policy (GTK_WINDOW(win), TRUE,TRUE,FALSE); // gtk_box_pack_start ((GtkBox*)(((GtkDialog*)win)->vbox), msgbox,TRUE,TRUE,0); cont=0; while ((c = getopt (argc, argv, "h?m:t:p:E::e::d:B::b::r:X::x::z:Z:c:C:a::o:N::n::")) != -1) { extern char *optarg; extern int optind; switch (c) { case 't': Debug("set window title: %s\n", optarg); gtk_window_set_title ((GtkWindow *)win, (gchar *)optarg); break; case 'c': case 'C': create_check_button(optarg, c=='C'); Debug("checkbox: %s\n",optarg); break; case 'p': create_text_prompt(optarg); break; case 'e': case 'E': create_entry_field(optarg, c=='E'); Debug("text entry field: %s\n", optarg); break; case 'd': last_entry_default(optarg); Debug("defaults to: %s\n", optarg); break; case 'b': case 'B': create_combo_field(optarg,c=='B'); Debug("defaults to: %s\n", optarg); break; case 'r': last_combo_default(optarg); Debug("defaults to: %s\n", optarg); break; case 'x': case 'X': create_text_field(optarg, c=='X'); Debug("text field: %s\n", optarg); break; case 'n': case 'N': create_text_paned(optarg, c=='N'); Debug("text paned: %s\n", optarg); break; case 'z': case 'Z': last_text_default(optarg,c=='Z',++cont); Debug("defaults to: %s\n", optarg); break; case 'm': optind = create_option_menu(optind, optarg, argv); break; case 'o': ok_label = (gchar *)optarg; break; case 'a': if(optarg) { cancel_label = (gchar *)optarg; } else { /* set to an impossible value, so that we know later on, that * we don't want to create the cancel button. */ cancel_label = (gchar *)win; } break; case '?': case 'h': fputs(GREQ_VERSION, stderr); fprintf(stderr,"Usage: %s [-t<window-title>] [-p<text-prompt>] [[-(e | E)[<entry-label>] [-d<default-value>]] [-(c | C)<checkbox-label>] [-m<menu-label> <menu-item> ...] [-o<ok-label>] [-a[<abort-label>]]\n", argv[0]); quit(RETURN_ERROR_ARG); } } if ( optind < argc ) { fprintf(stderr, "%s: Unknown argument", argv[0]); if (optind < argc - 1) fputc ('s', stderr); fputc(':',stderr); do { fputc(' ', stderr); fputs(argv[optind++], stderr); } while (optind < argc); fputc('\n', stderr); quit(RETURN_ERROR_ARG); } create_ok_button(ok_label); if(cancel_label != (gchar *)win) create_cancel_button(cancel_label); #if GTK_MAJOR_VERSION < 2 if(widgets) { Debug ("Setting focus\n"); gtk_widget_grab_focus((GtkWidget *) widgets->data); }; #endif gtk_widget_show_all (win); gtk_main(); // we should never get here, but just to make gcc happy return (RETURN_OK); }
GtkWidget* ctk_xvideo_new(NvCtrlAttributeHandle *handle, CtkConfig *ctk_config, CtkEvent *ctk_event) { GObject *object; CtkXVideo *ctk_xvideo; GtkWidget *banner; GtkWidget *frame; GtkWidget *alignment; GtkWidget *hbox; GtkWidget *label; GtkWidget *vbox; GtkWidget *button; int sync_mask; int xv_overlay_present, xv_texture_present, xv_blitter_present; ReturnStatus ret; /* * before we do anything else, determine if any of the Xv adapters * are present */ ret = NvCtrlGetAttribute(handle, NV_CTRL_ATTR_EXT_XV_OVERLAY_PRESENT, &xv_overlay_present); if (ret != NvCtrlSuccess) xv_overlay_present = FALSE; ret = NvCtrlGetAttribute(handle, NV_CTRL_ATTR_EXT_XV_TEXTURE_PRESENT, &xv_texture_present); if (ret != NvCtrlSuccess) xv_texture_present = FALSE; ret = NvCtrlGetAttribute(handle, NV_CTRL_ATTR_EXT_XV_BLITTER_PRESENT, &xv_blitter_present); if (ret != NvCtrlSuccess) xv_blitter_present = FALSE; if (!xv_overlay_present && !xv_texture_present && !xv_blitter_present) { return NULL; } /* create the XVideo widget */ object = g_object_new(CTK_TYPE_XVIDEO, NULL); ctk_xvideo = CTK_XVIDEO(object); ctk_xvideo->handle = handle; ctk_xvideo->ctk_config = ctk_config; ctk_xvideo->active_attributes = 0; gtk_box_set_spacing(GTK_BOX(ctk_xvideo), 10); /* Create button, but don't pack it, yet */ label = gtk_label_new("Reset Hardware Defaults"); hbox = gtk_hbox_new(FALSE, 0); button = gtk_button_new(); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 15); gtk_container_add(GTK_CONTAINER(button), hbox); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_defaults), (gpointer) ctk_xvideo); ctk_config_set_tooltip(ctk_config, button, __reset_button_help); /* Video film banner */ banner = ctk_banner_image_new(BANNER_ARTWORK_XVIDEO); gtk_box_pack_start(GTK_BOX(object), banner, FALSE, FALSE, 0); /* XVideo Overlay sliders */ if (xv_overlay_present) { frame = gtk_frame_new("Video Overlay Adaptor"); gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0); vbox = gtk_vbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(vbox), FRAME_PADDING); gtk_container_add(GTK_CONTAINER(frame), vbox); ctk_xvideo->overlay_saturation = create_slider(ctk_xvideo, vbox, button, "Saturation", __xv_overlay_saturation_help, NV_CTRL_ATTR_XV_OVERLAY_SATURATION, __XV_OVERLAY_SATURATION); ctk_xvideo->overlay_contrast = create_slider(ctk_xvideo, vbox, button, "Contrast", __xv_overlay_contrast_help, NV_CTRL_ATTR_XV_OVERLAY_CONTRAST, __XV_OVERLAY_CONTRAST); ctk_xvideo->overlay_brightness = create_slider(ctk_xvideo, vbox, button, "Brightness", __xv_overlay_brightness_help, NV_CTRL_ATTR_XV_OVERLAY_BRIGHTNESS, __XV_OVERLAY_BRIGHTNESS); ctk_xvideo->overlay_hue = create_slider(ctk_xvideo, vbox, button, "Hue", __xv_overlay_hue_help, NV_CTRL_ATTR_XV_OVERLAY_HUE, __XV_OVERLAY_HUE); } /* XVideo Texture */ if (xv_texture_present) { frame = gtk_frame_new("Video Texture Adaptor"); gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0); vbox = gtk_vbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(vbox), FRAME_PADDING); gtk_container_add(GTK_CONTAINER(frame), vbox); ctk_xvideo->texture_sync_to_blank = create_check_button(ctk_xvideo, vbox, button, "Sync to VBlank", __xv_texture_sync_to_vblank_help, NV_CTRL_ATTR_XV_TEXTURE_SYNC_TO_VBLANK, __XV_TEXTURE_SYNC_TO_VBLANK); ctk_xvideo->texture_brightness = create_slider(ctk_xvideo, vbox, button, "Brightness", __xv_texture_brightness_help, NV_CTRL_ATTR_XV_TEXTURE_BRIGHTNESS, __XV_TEXTURE_BRIGHTNESS); ctk_xvideo->texture_contrast = create_slider(ctk_xvideo, vbox, button, "Contrast", __xv_texture_contrast_help, NV_CTRL_ATTR_XV_TEXTURE_CONTRAST, __XV_TEXTURE_CONTRAST); ctk_xvideo->texture_hue = create_slider(ctk_xvideo, vbox, button, "Hue", __xv_texture_hue_help, NV_CTRL_ATTR_XV_TEXTURE_HUE, __XV_TEXTURE_HUE); ctk_xvideo->texture_saturation = create_slider(ctk_xvideo, vbox, button, "Saturation", __xv_texture_saturation_help, NV_CTRL_ATTR_XV_TEXTURE_SATURATION, __XV_TEXTURE_SATURATION); } /* XVideo Blitter */ if (xv_blitter_present) { frame = gtk_frame_new("Video Blitter Adaptor Settings"); gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0); vbox = gtk_vbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(vbox), FRAME_PADDING); gtk_container_add(GTK_CONTAINER(frame), vbox); ctk_xvideo->blitter_sync_to_blank = create_check_button(ctk_xvideo, vbox, button, "Sync to VBlank", __xv_blitter_sync_to_vblank_help, NV_CTRL_ATTR_XV_BLITTER_SYNC_TO_VBLANK, __XV_BLITTER_SYNC_TO_VBLANK); } /* Sync to display selection */ if (xv_texture_present || xv_blitter_present) { ret = NvCtrlGetAttribute(handle, NV_CTRL_XV_SYNC_TO_DISPLAY, &sync_mask); if (ret == NvCtrlSuccess) { int enabled; ret = NvCtrlGetAttribute(handle, NV_CTRL_ENABLED_DISPLAYS, &enabled); if (ret == NvCtrlSuccess) { GtkWidget *radio[24], *prev_radio; int i, n, current = -1, mask; char *name, *type; gchar *name_str; frame = gtk_frame_new("Sync to this display device"); gtk_box_pack_start(GTK_BOX(object), frame, FALSE, FALSE, 0); vbox = gtk_vbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(vbox), FRAME_PADDING); gtk_container_add(GTK_CONTAINER(frame), vbox); ctk_xvideo->xv_sync_to_display_button_box = vbox; for (n=0, i = 0; i < 24; i++) { mask = 1 << i; if (!(enabled & mask)) continue; /* get the name of the display device */ ret = NvCtrlGetStringDisplayAttribute(handle, mask, NV_CTRL_STRING_DISPLAY_DEVICE_NAME, &name); if ((ret != NvCtrlSuccess) || (!name)) { name = g_strdup("Unknown"); } /* get the display device type */ type = display_device_mask_to_display_device_name(mask); name_str = g_strdup_printf("%s (%s)", name, type); XFree(name); free(type); if (n==0) { prev_radio = NULL; } else { prev_radio = radio[n-1]; } radio[n] = xv_sync_to_display_radio_button_add(ctk_xvideo, prev_radio, name_str, mask, n); g_free(name_str); ctk_config_set_tooltip(ctk_config, radio[n], __xv_sync_to_display_help); if (mask == sync_mask) { current = n; } n++; ctk_xvideo->active_attributes |= __XV_SYNC_TO_DISPLAY; } g_signal_connect(G_OBJECT(ctk_event), CTK_EVENT_NAME(NV_CTRL_XV_SYNC_TO_DISPLAY), G_CALLBACK(xv_sync_to_display_update_received), (gpointer) ctk_xvideo); g_signal_connect(G_OBJECT(ctk_event), CTK_EVENT_NAME(NV_CTRL_ENABLED_DISPLAYS), G_CALLBACK(nv_ctrl_enabled_displays), (gpointer) ctk_xvideo); sensitize_radio_buttons(ctk_xvideo); if (current != -1) xv_sync_to_display_update_radio_buttons(ctk_xvideo, current); } } } /* Reset button */ sensitize_radio_buttons(ctk_xvideo); alignment = gtk_alignment_new(1, 1, 0, 0); gtk_container_add(GTK_CONTAINER(alignment), button); gtk_box_pack_start(GTK_BOX(object), alignment, TRUE, TRUE, 0); /* finally, show the widget */ gtk_widget_show_all(GTK_WIDGET(ctk_xvideo)); return GTK_WIDGET(ctk_xvideo); } /* ctk_xvideo_new() */
GtkWidget * romaji_page_create_ui (void) { GtkWidget *vbox, *hbox, *table, *widget, *label; vbox = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER(vbox), 8); gtk_widget_show (vbox); table = gtk_table_new (8, 2, FALSE); gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0); gtk_widget_show (table); /* romaji splitting */ create_check_button (SCIM_ANTHY_CONFIG_ROMAJI_ALLOW_SPLIT, GTK_TABLE (table), 0); /* symbol */ create_check_button (SCIM_ANTHY_CONFIG_ROMAJI_HALF_SYMBOL, GTK_TABLE (table), 1); /* number */ create_check_button (SCIM_ANTHY_CONFIG_ROMAJI_HALF_NUMBER, GTK_TABLE (table), 2); /* pseudo ascii mode */ widget = create_check_button (SCIM_ANTHY_CONFIG_ROMAJI_PSEUDO_ASCII_MODE, GTK_TABLE (table), 3); g_signal_connect ((gpointer) widget, "toggled", G_CALLBACK (on_romaji_pseudo_ascii_mode_toggled), NULL); /* pseudo ascii: blank behavior */ widget = create_check_button (SCIM_ANTHY_CONFIG_ROMAJI_PSEUDO_ASCII_BLANK_BEHAVIOR, GTK_TABLE (table), 4); set_left_padding (widget, 20); // set initial state on_romaji_pseudo_ascii_mode_toggled (GTK_TOGGLE_BUTTON (widget), NULL); /* romaji table */ hbox = gtk_hbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); gtk_table_attach (GTK_TABLE (table), hbox, 0, 4, 5, 6, (GtkAttachOptions) GTK_FILL, (GtkAttachOptions) GTK_FILL, 4, 4); gtk_widget_show(hbox); label = gtk_label_new_with_mnemonic (_("Romaji _table:")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2); gtk_widget_show (label); GtkWidget *omenu = gtk_option_menu_new (); __widget_romaji_theme_menu = omenu; g_signal_connect (G_OBJECT (omenu), "changed", G_CALLBACK (on_romaji_theme_menu_changed), NULL); gtk_box_pack_start (GTK_BOX (hbox), omenu, TRUE, TRUE, 2); gtk_widget_show (omenu); gtk_label_set_mnemonic_widget (GTK_LABEL(label), omenu); GtkWidget *button = gtk_button_new_with_mnemonic (_("_Customize...")); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_romaji_customize_button_clicked), NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 2); gtk_widget_show (button); setup_romaji_page (); return vbox; }