Mercurial > dwindows
comparison gtk3/dw.c @ 1823:9c77567c5b2d
Fixed broken support in dw_window_set_bitmap() on GTK2/3...
GTK3 tested... GTK2 untested.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 26 Oct 2012 05:25:54 +0000 |
parents | 7f549994b633 |
children | 6b90c7e9e520 |
comparison
equal
deleted
inserted
replaced
1822:8d231cab845d | 1823:9c77567c5b2d |
---|---|
3916 */ | 3916 */ |
3917 HWND dw_bitmapbutton_new_from_file(char *text, unsigned long id, char *filename) | 3917 HWND dw_bitmapbutton_new_from_file(char *text, unsigned long id, char *filename) |
3918 { | 3918 { |
3919 GtkWidget *bitmap; | 3919 GtkWidget *bitmap; |
3920 GtkWidget *box; | 3920 GtkWidget *box; |
3921 GtkWidget *label; | |
3922 GtkWidget *button; | 3921 GtkWidget *button; |
3923 char *label_text=NULL; | |
3924 int _locked_by_me = FALSE; | 3922 int _locked_by_me = FALSE; |
3925 | 3923 |
3926 DW_MUTEX_LOCK; | 3924 DW_MUTEX_LOCK; |
3927 | 3925 |
3928 /* Create box for image and label */ | 3926 /* Create box for image and label */ |
3938 dw_window_set_bitmap( bitmap, 0, filename ); | 3936 dw_window_set_bitmap( bitmap, 0, filename ); |
3939 /* Pack the image into the box */ | 3937 /* Pack the image into the box */ |
3940 gtk_box_pack_start( GTK_BOX(box), bitmap, TRUE, FALSE, 3 ); | 3938 gtk_box_pack_start( GTK_BOX(box), bitmap, TRUE, FALSE, 3 ); |
3941 gtk_widget_show( bitmap ); | 3939 gtk_widget_show( bitmap ); |
3942 g_object_set_data(G_OBJECT(button), "_dw_bitmap", bitmap); | 3940 g_object_set_data(G_OBJECT(button), "_dw_bitmap", bitmap); |
3943 } | |
3944 if(label_text) | |
3945 { | |
3946 /* Create a label for the button */ | |
3947 label = gtk_label_new( label_text ); | |
3948 /* Pack the label into the box */ | |
3949 gtk_box_pack_start( GTK_BOX(box), label, TRUE, FALSE, 3 ); | |
3950 gtk_widget_show( label ); | |
3951 } | 3941 } |
3952 | 3942 |
3953 /* Pack and show all our widgets */ | 3943 /* Pack and show all our widgets */ |
3954 gtk_widget_show( box ); | 3944 gtk_widget_show( box ); |
3955 gtk_container_add( GTK_CONTAINER(button), box ); | 3945 gtk_container_add( GTK_CONTAINER(button), box ); |
4287 | 4277 |
4288 if (tmp) | 4278 if (tmp) |
4289 { | 4279 { |
4290 if ( GTK_IS_BUTTON(handle) ) | 4280 if ( GTK_IS_BUTTON(handle) ) |
4291 { | 4281 { |
4292 GtkWidget *image = gtk_button_get_image( GTK_BUTTON(handle) ); | 4282 GtkWidget *pixmap = (GtkWidget *)g_object_get_data( G_OBJECT(handle), "_dw_bitmap" ); |
4293 gtk_image_set_from_pixbuf(GTK_IMAGE(image), tmp); | 4283 if(pixmap) |
4284 { | |
4285 gtk_image_set_from_pixbuf(GTK_IMAGE(pixmap), tmp); | |
4286 } | |
4294 } | 4287 } |
4295 else | 4288 else |
4296 { | 4289 { |
4297 gtk_image_set_from_pixbuf(GTK_IMAGE(handle), tmp); | 4290 gtk_image_set_from_pixbuf(GTK_IMAGE(handle), tmp); |
4298 } | 4291 } |
4347 else if (id) | 4340 else if (id) |
4348 tmp = _find_pixbuf((HICN)id, NULL, NULL); | 4341 tmp = _find_pixbuf((HICN)id, NULL, NULL); |
4349 | 4342 |
4350 if(tmp) | 4343 if(tmp) |
4351 { | 4344 { |
4352 gtk_image_set_from_pixbuf(GTK_IMAGE(handle), tmp); | 4345 if ( GTK_IS_BUTTON(handle) ) |
4346 { | |
4347 GtkWidget *pixmap = (GtkWidget *)g_object_get_data( G_OBJECT(handle), "_dw_bitmap" ); | |
4348 if(pixmap) | |
4349 { | |
4350 gtk_image_set_from_pixbuf(GTK_IMAGE(pixmap), tmp); | |
4351 } | |
4352 } | |
4353 else | |
4354 { | |
4355 gtk_image_set_from_pixbuf(GTK_IMAGE(handle), tmp); | |
4356 } | |
4353 } | 4357 } |
4354 DW_MUTEX_UNLOCK; | 4358 DW_MUTEX_UNLOCK; |
4355 } | 4359 } |
4356 | 4360 |
4357 /* | 4361 /* |