Example #1
0
static GtkWidget * init_FGR_col()
{
    GtkCList *cl;
    int i;
    char *txt[2];
    char txt_regnum[6];
    
    txt[0] = txt_regnum;
    txt[1] = "MMMMMMMMMM";
    
    cl = (GtkCList *) gtk_clist_new(2);
    gtk_widget_modify_font(GTK_WIDGET(cl), debugger_font_desc);
    gtk_clist_set_column_resizeable(cl, 0, FALSE);
    gtk_clist_set_column_resizeable(cl, 1, FALSE);
    for (i=0; i<32; i++) {
        sprintf(txt_regnum, "%d", i);
        gtk_clist_append(cl, txt);
    }
    gtk_clist_set_column_width(cl, 0, gtk_clist_optimal_column_width(cl, 0));
    gtk_clist_set_column_width(cl, 1, gtk_clist_optimal_column_width(cl, 1));
    
    return GTK_WIDGET(cl);
}
Example #2
0
static void
gnc_query_list_init_clist (GNCQueryList *list)
{
    GtkCList *clist = GTK_CLIST (list);
    GtkStyle *style;
    GList *node;
    gchar **titles;
    gint i;

    /* compute the number of columns and fill in the rest of the list */
    list->num_columns = g_list_length(list->column_params);
    list->title_arrows = g_new0(GtkWidget*, list->num_columns);
    list->title_widths = g_new0(gint, list->num_columns);

    /* build an array of titles */
    titles = g_new0(gchar*, list->num_columns);
    for (i = 0, node = list->column_params; node; node = node->next, i++)
    {
        GNCSearchParam *param = node->data;
        titles[i] = (gchar *)param->title;
    }

    gtk_clist_column_titles_show (clist);
    gtk_clist_set_shadow_type (clist, GTK_SHADOW_IN);

    /* build all the column titles */
    for (i = 0; i < list->num_columns; i++)
        gnc_query_list_column_title(list, i, titles[i]);

    /* set the column justification */
    for (i = 0, node = list->column_params; node; node = node->next, i++)
    {
        GNCSearchParam *param = node->data;
        gtk_clist_set_column_justification (clist, i, param->justify);

        if (param->passive)
            gtk_clist_column_title_passive (clist, i);

        if (param->non_resizeable)
            gtk_clist_set_column_resizeable (clist, i, FALSE);
    }

    g_signal_connect (clist, "click_column",
                      G_CALLBACK(gnc_query_list_click_column_cb),
                      NULL);
    g_signal_connect (clist, "size_allocate",
                      G_CALLBACK(gnc_query_list_size_allocate_cb),
                      NULL);

    style = gtk_widget_get_style (GTK_WIDGET(list));

#if 0
    {
        GdkFont *font = NULL;
        gint width;

        font = style->font;
        if (font != NULL)
        {
            for (i = 0, node = list->column_params; node; node = node->next, i++)
            {
                GNCSearchParam *param = node->data;
                width = gdk_string_width (font, titles[i]) + 5;
                if (!param->passive)
                    width += ARROW_SIZE;
                gtk_clist_set_column_min_width (clist, i, width);
                list->title_widths[i] = width;
            }
        }
    }
#endif
    g_free(titles);
}
Example #3
0
void player_filter_page (GtkWidget *notebook) {
  GtkWidget *page_hbox;
  GtkWidget *scrollwin;
  GtkWidget *label;
  GtkWidget *vbox;
  GtkWidget *vbox2;
  GtkWidget *alignment;
  GtkWidget *pixmap;
  GtkWidget *button;
  GtkWidget *peditor;
  char *titles[5] = { "", "", "", _("Mode"), _("Pattern") };
  int i;

  page_hbox = gtk_hbox_new (FALSE, 8);
  gtk_container_set_border_width (GTK_CONTAINER (page_hbox), 8);

  label = gtk_label_new (_("Player Filter"));
  gtk_widget_show (label);

  gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page_hbox, label);

  /* Pattern CList */

  scrollwin = gtk_scrolled_window_new (NULL, NULL);
  gtk_box_pack_start (GTK_BOX (page_hbox), scrollwin, FALSE, FALSE, 0);

  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin), 
				  GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

  pattern_clist = gtk_clist_new_with_titles (5, titles);
  gtk_widget_set_usize (pattern_clist, 260, 200);
  gtk_clist_set_selection_mode (GTK_CLIST (pattern_clist),
                                                        GTK_SELECTION_BROWSE);
  gtk_clist_set_reorderable (GTK_CLIST (pattern_clist), TRUE);

  gtk_signal_connect (GTK_OBJECT (pattern_clist), "event",
                        GTK_SIGNAL_FUNC (pattern_clist_event_callback), NULL);
  gtk_signal_connect (GTK_OBJECT (pattern_clist), "select_row",
                   GTK_SIGNAL_FUNC (pattern_clist_select_row_callback), NULL);
  gtk_signal_connect (GTK_OBJECT (pattern_clist), "row_move",
                     GTK_SIGNAL_FUNC (pattern_clist_row_move_callback), NULL);

  for (i = 0; i < 3; i++) {
    pixmap = aligned_pixmap (group_pix[i].pix, group_pix[i].mask);
    gtk_clist_set_column_width (GTK_CLIST (pattern_clist), i, 
                                             pixmap_width (group_pix[i].pix));
    gtk_clist_set_column_widget (GTK_CLIST (pattern_clist), i, pixmap);
    gtk_widget_show (pixmap);

    gtk_clist_set_column_resizeable (GTK_CLIST (pattern_clist), i, FALSE);
  }

  gtk_clist_set_column_width (GTK_CLIST (pattern_clist), 3, 45);

  gtk_container_add (GTK_CONTAINER (scrollwin), pattern_clist); 
  gtk_clist_column_titles_passive (GTK_CLIST (pattern_clist));

  gtk_widget_show (pattern_clist);

  gtk_widget_show (scrollwin);

  gtk_widget_ensure_style (pattern_clist);

/*FIXME_GTK2: style->font not working with gtk2*/
#ifndef USE_GTK2
  i = MAX (pixmap_height (group_pix[0].pix), 
	      pattern_clist->style->font->ascent + 
	      pattern_clist->style->font->descent + 1);

  gtk_clist_set_row_height (GTK_CLIST (pattern_clist), i);
#endif

  /* Buttons */

  vbox = gtk_vbox_new (FALSE, 4);
  gtk_box_pack_start (GTK_BOX (page_hbox), vbox, FALSE, FALSE, 0);

  button = gtk_button_new_with_label (_("New"));
  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
  gtk_signal_connect (GTK_OBJECT (button), "clicked",
                                GTK_SIGNAL_FUNC (new_pattern_callback), NULL);
  gtk_widget_show (button);

  delete_button = gtk_button_new_with_label (_("Delete"));
  gtk_box_pack_start (GTK_BOX (vbox), delete_button, FALSE, FALSE, 0);
  gtk_signal_connect (GTK_OBJECT (delete_button), "clicked",
                             GTK_SIGNAL_FUNC (delete_pattern_callback), NULL);
  gtk_widget_show (delete_button);

  alignment = gtk_alignment_new (0, 0.5, 1, 0);
  gtk_box_pack_end (GTK_BOX (vbox), alignment, TRUE, TRUE, 0);

  vbox2 = gtk_vbox_new (FALSE, 4);
  gtk_container_add (GTK_CONTAINER (alignment), vbox2);

  up_button = gtk_button_new_with_label (_("Up"));
  gtk_box_pack_start (GTK_BOX (vbox2), up_button, FALSE, FALSE, 0);
  gtk_signal_connect (GTK_OBJECT (up_button), "clicked",
                GTK_SIGNAL_FUNC (move_up_down_pattern_callback), (void *) -1);
  gtk_widget_show (up_button);

  down_button = gtk_button_new_with_label (_("Down"));
  gtk_box_pack_start (GTK_BOX (vbox2), down_button, FALSE, FALSE, 0);
  gtk_signal_connect (GTK_OBJECT (down_button), "clicked",
                 GTK_SIGNAL_FUNC (move_up_down_pattern_callback), (void *) 1);
  gtk_widget_show (down_button);

  gtk_widget_show (vbox2);
  gtk_widget_show (alignment);
  gtk_widget_show (vbox);

  /* Pattern Editor */

  peditor = player_filter_pattern_editor ();
  gtk_box_pack_end (GTK_BOX (page_hbox), peditor, TRUE, TRUE, 0);

  gtk_widget_show (page_hbox);

  player_filter_page_init ();
}
Example #4
0
extern GtkWidget* GL_Create(void)
{
    GtkStyle *ps;
    gint nMaxWidth; 
    char *asz[] = {NULL, NULL, NULL};
	PangoRectangle logical_rect;
	PangoLayout *layout;

	asz[0] = _("#");
    pwGameList = gtk_clist_new_with_titles(3, asz);
    gtk_widget_set_can_focus (pwGameList, FALSE);

    gtk_clist_set_selection_mode( GTK_CLIST( pwGameList ),
				  GTK_SELECTION_BROWSE );
    gtk_clist_column_titles_passive( GTK_CLIST( pwGameList ) );

    GL_SetNames();

    gtk_clist_set_column_justification( GTK_CLIST( pwGameList ), 0,
					GTK_JUSTIFY_RIGHT );
    gtk_clist_set_column_resizeable( GTK_CLIST( pwGameList ), 0, FALSE );
    gtk_clist_set_column_resizeable( GTK_CLIST( pwGameList ), 1, FALSE );
    gtk_clist_set_column_resizeable( GTK_CLIST( pwGameList ), 2, FALSE );
    gtk_widget_ensure_style( pwGameList );
    GetStyleFromRCFile(&ps, "gnubg", gtk_widget_get_style( pwGameList ) );
    ps->base[ GTK_STATE_SELECTED ] =
    	ps->base[ GTK_STATE_ACTIVE ] =
    	ps->base[ GTK_STATE_NORMAL ] =
    	gtk_widget_get_style( pwGameList )->base[ GTK_STATE_NORMAL ];
    ps->fg[ GTK_STATE_SELECTED ] =
    	ps->fg[ GTK_STATE_ACTIVE ] =
    	ps->fg[ GTK_STATE_NORMAL ] =
    	gtk_widget_get_style( pwGameList )->fg[ GTK_STATE_NORMAL ];
    gtk_widget_set_style( pwGameList, ps );
    
    psGameList = gtk_style_copy( ps );
    psGameList->bg[ GTK_STATE_SELECTED ] = psGameList->bg[ GTK_STATE_NORMAL ] =
    	ps->base[ GTK_STATE_NORMAL ];

    psCurrent = gtk_style_copy( psGameList );
    psCurrent->bg[ GTK_STATE_SELECTED ] = psCurrent->bg[ GTK_STATE_NORMAL ] =
    	psCurrent->base[ GTK_STATE_SELECTED ] =
    	psCurrent->base[ GTK_STATE_NORMAL ] =
    	psGameList->fg[ GTK_STATE_NORMAL ];
    psCurrent->fg[ GTK_STATE_SELECTED ] = psCurrent->fg[ GTK_STATE_NORMAL ] =
    	psGameList->bg[ GTK_STATE_NORMAL ];

    GetStyleFromRCFile(&psCubeErrors[SKILL_VERYBAD], "gamelist-cube-blunder", psGameList);
    GetStyleFromRCFile(&psCubeErrors[SKILL_BAD], "gamelist-cube-error", psGameList);
    GetStyleFromRCFile(&psCubeErrors[SKILL_DOUBTFUL], "gamelist-cube-doubtful", psGameList);

    GetStyleFromRCFile(&psChequerErrors[SKILL_VERYBAD], "gamelist-chequer-blunder", psGameList);
    GetStyleFromRCFile(&psChequerErrors[SKILL_BAD], "gamelist-chequer-error", psGameList);
    GetStyleFromRCFile(&psChequerErrors[SKILL_DOUBTFUL], "gamelist-chequer-doubtful", psGameList);

    GetStyleFromRCFile(&psLucky[LUCK_VERYBAD], "gamelist-luck-bad", psGameList);
    GetStyleFromRCFile(&psLucky[LUCK_VERYGOOD], "gamelist-luck-good", psGameList);

	layout = gtk_widget_create_pango_layout(pwGameList, "99");
	pango_layout_get_pixel_extents (layout, NULL, &logical_rect);
	g_object_unref (layout);
	nMaxWidth = logical_rect.width;
    gtk_clist_set_column_width( GTK_CLIST( pwGameList ), 0, nMaxWidth );

	layout = gtk_widget_create_pango_layout(pwGameList, " (set board AAAAAAAAAAAAAA)");
	pango_layout_get_pixel_extents (layout, NULL, &logical_rect);
	g_object_unref (layout);
	nMaxWidth = logical_rect.width;
    gtk_clist_set_column_width( GTK_CLIST( pwGameList ), 1, nMaxWidth - 30);
    gtk_clist_set_column_width( GTK_CLIST( pwGameList ), 2, nMaxWidth - 30);
    
    g_signal_connect( G_OBJECT( pwGameList ), "select-row",
			G_CALLBACK( GameListSelectRow ), NULL );

    return pwGameList;
}