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 /*