LINUX.ORG.RU

#include <gtk/gtk.h>
#include <stdio.h>

/* XPM */
static char *tree_minus[] = {
/* width height num_colors chars_per_pixel */
"     9     9        2            1",
/* colors */
". c #c5c5c5",
"# c #f8fcf8",
/* pixels */
"#########",
"#########",
"## ### ##",
"#########",
"#########",
"## ### ##",
"##     ##",
"#########",
"#########"
};

int main( int    argc,
           gchar *argv[] )
{                                  
    GtkWidget *window;
    GtkWidget *vbox;
    GtkWidget *scrolled_window;
    GtkWidget *gtklist;
    GtkWidget *button;
    GtkWidget *list_item;
    guint i;
    gchar buffer[64];

    GdkPixmap *pixmap;
    GdkBitmap *mask;
    
    gtk_init (&argc, &argv);
    
    
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (window), "GtkList Example");
    g_signal_connect (G_OBJECT (window), "destroy",
		      G_CALLBACK (gtk_main_quit),
		      NULL);
    
    
    vbox=gtk_vbox_new (FALSE, 5);
    gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
    gtk_container_add (GTK_CONTAINER (window), vbox);
    
    scrolled_window = gtk_scrolled_window_new (NULL, NULL);
    gtk_widget_set_size_request (scrolled_window, 250, 150);
    gtk_container_add (GTK_CONTAINER (vbox), scrolled_window);
    
    gtklist=gtk_list_new ();

    gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),
                                           gtklist);          
    
    button=gtk_button_new_with_label ("Close");
    gtk_container_add (GTK_CONTAINER (vbox), button);
    gtk_widget_show (button);
    g_signal_connect_swapped (G_OBJECT (button), "clicked",
                              G_CALLBACK (gtk_widget_destroy),
                              window);
    
    
    for (i = 0; i < 25; i++) {
	GtkWidget       *label;
	gchar           *string;
	
	sprintf(buffer, "ListItemContainer with Label #%d", i);
	label=gtk_label_new (buffer);
	list_item=gtk_list_item_new ();
	gtk_container_add (GTK_CONTAINER (list_item), label);
	gtk_container_add (GTK_CONTAINER (gtklist), list_item);
    }

    gtk_widget_show_all (window);    

    /* The actual code */
    
    pixmap = gdk_pixmap_colormap_create_from_xpm_d (gtklist->window,
						    gtk_widget_get_colormap (gtklist),
						    &mask, NULL, tree_minus);
    gdk_window_set_back_pixmap (gtklist->window, pixmap, FALSE);
    g_object_unref (pixmap);


    /* Job done */

    gtk_main ();
    
    return 0;
}

anonymous
()
Ответ на: комментарий от anonymous

Хотя, по-настоящему, нужно было бы написать свой rc_style с низким приоритетом, чтобы пользователь мог бы его определять. Потом применить его к виджету, установив его имя при помощи gtk_widget_set_name.

anonymous
()
Ответ на: комментарий от anonymous

Прикол - пример выше пашет (уже за это огромное спасибо - и чего я не смотрел на gdk_ные функции? ), но в проге эти вещи не прокатывают - сейчас пытаюсь разобрать из-за чего этот глюк: (posgui:2717): Gdk-CRITICAL **: file gdkwindow-x11.c: line 2333 (gdk_window_set_back_pixmap): assertion `window != NULL' failed

anonymous
()
Ответ на: комментарий от anonymous

Во дурак!!!! -Все разобрался ! все ок Вопрос - нет нигде русскоязчного форума по ГТК? (именно по ГТК - не гном ничего другого кроме ГТК)

anonymous
()
Ответ на: комментарий от anonymous

ага щаззз - форум такой =)) Я сам пытался такой форум поднять - как то неполучилось.

Тут разбирался с GtkTreeView и писаниной своих композитных виджетов - так вот доки да мейл листы в помощь - английских форум по gtk тоже нету - или Я не нашел просто.

alphex_kaanoken ★★★
()
Ответ на: комментарий от alphex_kaanoken

есть ненашенские форумы - только на них почти всегда спрашивают довольно очевидные (как для меня) вещи или вещи вообще не относящиеся к ГТК (типа почему itoa() не работает и т.д. и т.п.) - а я в линуксе и в ГТК всего 1,5 недели - весело - словами не передать. А все доки по ГТК в основном копируют туториал с GTK.org. Поэтому будем решать проблемы вместе :) . Ведь решил же я самую для меня за эту неделю сложную проблему - установка текста кнопки (GTK 1.2)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.