Example #1
0
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);
}
Example #2
0
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;
}