Mercurial > dwindows
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; |