comparison gtk/dw.c @ 148:830f591c87f1

dw_window_set_usize fixes and fallback to "fixed" on GTK 1.2 if pango font doesn't load.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 23 Oct 2002 16:23:06 +0000
parents b479002e013f
children 6028f787f7c8
comparison
equal deleted inserted replaced
147:b479002e013f 148:830f591c87f1
4714 } 4714 }
4715 pango_font_description_free(font); 4715 pango_font_description_free(font);
4716 } 4716 }
4717 #else 4717 #else
4718 font = gdk_font_load(fontname); 4718 font = gdk_font_load(fontname);
4719 if(!font)
4720 font = gdk_font_load("fixed");
4719 if(font) 4721 if(font)
4720 { 4722 {
4721 gint ascent; 4723 gint ascent;
4722 4724
4723 gdk_text_extents(font, text, strlen(text), NULL, NULL, NULL, &ascent, NULL); 4725 gdk_text_extents(font, text, strlen(text), NULL, NULL, NULL, &ascent, NULL);
4787 pango_font_description_free(font); 4789 pango_font_description_free(font);
4788 } 4790 }
4789 #else 4791 #else
4790 4792
4791 font = gdk_font_load(fontname ? fontname : "fixed"); 4793 font = gdk_font_load(fontname ? fontname : "fixed");
4794 if(!font)
4795 font = gdk_font_load("fixed");
4792 if(font) 4796 if(font)
4793 { 4797 {
4794 if(width) 4798 if(width)
4795 *width = gdk_string_width(font, text); 4799 *width = gdk_string_width(font, text);
4796 if(height) 4800 if(height)
5288 */ 5292 */
5289 void dw_window_set_usize(HWND handle, unsigned long width, unsigned long height) 5293 void dw_window_set_usize(HWND handle, unsigned long width, unsigned long height)
5290 { 5294 {
5291 int _locked_by_me = FALSE; 5295 int _locked_by_me = FALSE;
5292 5296
5297 if(!handle)
5298 return;
5299
5293 DW_MUTEX_LOCK; 5300 DW_MUTEX_LOCK;
5294 if(GTK_IS_WINDOW(handle)) 5301 if(GTK_IS_WINDOW(handle))
5302 {
5295 _size_allocate(GTK_WINDOW(handle)); 5303 _size_allocate(GTK_WINDOW(handle));
5296 #if 0 5304 if(handle->window)
5297 gtk_window_set_default_size(GTK_WINDOW(handle), width, height); 5305 gdk_window_resize(handle->window, width - _dw_border_width, height - _dw_border_height);
5306 gtk_window_set_default_size(GTK_WINDOW(handle), width - _dw_border_width, height - _dw_border_height);
5307 }
5298 else 5308 else
5299 #endif
5300 gtk_widget_set_usize(handle, width, height); 5309 gtk_widget_set_usize(handle, width, height);
5301 DW_MUTEX_UNLOCK; 5310 DW_MUTEX_UNLOCK;
5302 } 5311 }
5303 5312
5304 /* 5313 /*
5369 */ 5378 */
5370 void dw_window_set_pos_size(HWND handle, unsigned long x, unsigned long y, unsigned long width, unsigned long height) 5379 void dw_window_set_pos_size(HWND handle, unsigned long x, unsigned long y, unsigned long width, unsigned long height)
5371 { 5380 {
5372 int _locked_by_me = FALSE; 5381 int _locked_by_me = FALSE;
5373 5382
5374 DW_MUTEX_LOCK; 5383 if(!handle)
5375 if(handle && GTK_IS_WINDOW(handle)) 5384 return;
5385
5386 DW_MUTEX_LOCK;
5387 if(GTK_IS_WINDOW(handle))
5376 { 5388 {
5377 _size_allocate(GTK_WINDOW(handle)); 5389 _size_allocate(GTK_WINDOW(handle));
5378 5390
5379 gtk_widget_set_uposition(handle, x, y); 5391 gtk_widget_set_uposition(handle, x, y);
5380 if(handle->window) 5392 if(handle->window)
5381 gdk_window_resize(handle->window, width - _dw_border_width, height - _dw_border_height); 5393 gdk_window_resize(handle->window, width - _dw_border_width, height - _dw_border_height);
5382 gtk_window_set_default_size(GTK_WINDOW(handle), width - _dw_border_width, height - _dw_border_height); 5394 gtk_window_set_default_size(GTK_WINDOW(handle), width - _dw_border_width, height - _dw_border_height);
5383 } 5395 }
5384 else if(handle && handle->window) 5396 else if(handle->window)
5385 { 5397 {
5386 gdk_window_resize(handle->window, width, height); 5398 gdk_window_resize(handle->window, width, height);
5387 gdk_window_move(handle->window, x, y); 5399 gdk_window_move(handle->window, x, y);
5388 } 5400 }
5389 DW_MUTEX_UNLOCK; 5401 DW_MUTEX_UNLOCK;