Mercurial > dwindows
changeset 521:e3d6f2aac90c
Implemented dw_window_set_pos/get_pos/etc.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Tue, 16 Mar 2004 07:25:35 +0000 |
parents | 2fe16658d18b |
children | 29547598b909 |
files | dwtest.c gtk/dw.c |
diffstat | 2 files changed, 95 insertions(+), 40 deletions(-) [+] |
line wrap: on
line diff
--- a/dwtest.c Tue Mar 16 06:58:18 2004 +0000 +++ b/dwtest.c Tue Mar 16 07:25:35 2004 +0000 @@ -837,6 +837,7 @@ dw_box_pack_start(mdi2box, bb, 60, 30, FALSE, FALSE, 0); dw_window_set_size(mdi2w, 200, 100); dw_window_show(mdi2w); + dw_window_set_pos(mdi2w, 200, 200); } /*
--- a/gtk/dw.c Tue Mar 16 06:58:18 2004 +0000 +++ b/gtk/dw.c Tue Mar 16 07:25:35 2004 +0000 @@ -501,6 +501,20 @@ gtk_widget_queue_resize (GTK_WIDGET (widget)); } +static void gtk_mdi_get_pos(GtkMdi *mdi, GtkWidget *widget, gint *x, gint *y) +{ + GtkMdiChild *child; + + g_return_if_fail (GTK_IS_MDI (mdi)); + g_return_if_fail (GTK_IS_WIDGET (widget)); + + child = get_child (mdi, widget); + g_return_if_fail (child); + + *x = child->x; + *y = child->y; +} + static void gtk_mdi_tile(GtkMdi *mdi) { int i, n; @@ -7626,10 +7640,22 @@ void dw_window_set_pos(HWND handle, unsigned long x, unsigned long y) { int _locked_by_me = FALSE; - - DW_MUTEX_LOCK; - if(handle && handle->window) - gdk_window_move(handle->window, x, y); +#if GTK_MAJOR_VERSION > 1 + GtkWidget *mdi; +#endif + + DW_MUTEX_LOCK; +#if GTK_MAJOR_VERSION > 1 + if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) + { + gtk_mdi_move(GTK_MDI(mdi), handle, x, y); + } + else +#endif + { + if(handle && handle->window) + gdk_window_move(handle->window, x, y); + } DW_MUTEX_UNLOCK; } @@ -7645,20 +7671,32 @@ void dw_window_set_pos_size(HWND handle, unsigned long x, unsigned long y, unsigned long width, unsigned long height) { int _locked_by_me = FALSE; +#if GTK_MAJOR_VERSION > 1 + GtkWidget *mdi; +#endif if(!handle) return; DW_MUTEX_LOCK; - if(GTK_IS_WINDOW(handle)) - { - dw_window_set_size(handle, width, height); - gtk_widget_set_uposition(handle, x, y); - } - else if(handle->window) - { - gdk_window_resize(handle->window, width, height); - gdk_window_move(handle->window, x, y); +#if GTK_MAJOR_VERSION > 1 + if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) + { + gtk_mdi_move(GTK_MDI(mdi), handle, x, y); + } + else +#endif + { + if(GTK_IS_WINDOW(handle)) + { + dw_window_set_size(handle, width, height); + gtk_widget_set_uposition(handle, x, y); + } + else if(handle->window) + { + gdk_window_resize(handle->window, width, height); + gdk_window_move(handle->window, x, y); + } } DW_MUTEX_UNLOCK; } @@ -7676,33 +7714,49 @@ { int _locked_by_me = FALSE; gint gx, gy, gwidth, gheight, gdepth; - - if(handle && handle->window) - { - DW_MUTEX_LOCK; - - gdk_window_get_geometry(handle->window, &gx, &gy, &gwidth, &gheight, &gdepth); - gdk_window_get_root_origin(handle->window, &gx, &gy); - if(x) - *x = gx; - if(y) - *y = gy; - if(GTK_IS_WINDOW(handle)) - { - if(width) - *width = gwidth + _dw_border_width; - if(height) - *height = gheight + _dw_border_height; - } - else - { - if(width) - *width = gwidth; - if(height) - *height = gheight; - } - DW_MUTEX_UNLOCK; - } +#if GTK_MAJOR_VERSION > 1 + GtkWidget *mdi; +#endif + + DW_MUTEX_LOCK; +#if GTK_MAJOR_VERSION > 1 + if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) + { + gint myx, myy; + + gtk_mdi_get_pos(GTK_MDI(mdi), handle, &myx, &myy); + *x = myx; + *y = myy; + } + else +#endif + { + if(handle && handle->window) + { + + gdk_window_get_geometry(handle->window, &gx, &gy, &gwidth, &gheight, &gdepth); + gdk_window_get_root_origin(handle->window, &gx, &gy); + if(x) + *x = gx; + if(y) + *y = gy; + if(GTK_IS_WINDOW(handle)) + { + if(width) + *width = gwidth + _dw_border_width; + if(height) + *height = gheight + _dw_border_height; + } + else + { + if(width) + *width = gwidth; + if(height) + *height = gheight; + } + } + } + DW_MUTEX_UNLOCK; } /*