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); }
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); }
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 (); }
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; }