comparison gtk/dw.c @ 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 55c9fa60af78
comparison
equal deleted inserted replaced
520:2fe16658d18b 521:e3d6f2aac90c
497 497
498 child->x = x; 498 child->x = x;
499 child->y = y; 499 child->y = y;
500 if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (mdi)) 500 if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (mdi))
501 gtk_widget_queue_resize (GTK_WIDGET (widget)); 501 gtk_widget_queue_resize (GTK_WIDGET (widget));
502 }
503
504 static void gtk_mdi_get_pos(GtkMdi *mdi, GtkWidget *widget, gint *x, gint *y)
505 {
506 GtkMdiChild *child;
507
508 g_return_if_fail (GTK_IS_MDI (mdi));
509 g_return_if_fail (GTK_IS_WIDGET (widget));
510
511 child = get_child (mdi, widget);
512 g_return_if_fail (child);
513
514 *x = child->x;
515 *y = child->y;
502 } 516 }
503 517
504 static void gtk_mdi_tile(GtkMdi *mdi) 518 static void gtk_mdi_tile(GtkMdi *mdi)
505 { 519 {
506 int i, n; 520 int i, n;
7624 * y: Y location from the bottom left. 7638 * y: Y location from the bottom left.
7625 */ 7639 */
7626 void dw_window_set_pos(HWND handle, unsigned long x, unsigned long y) 7640 void dw_window_set_pos(HWND handle, unsigned long x, unsigned long y)
7627 { 7641 {
7628 int _locked_by_me = FALSE; 7642 int _locked_by_me = FALSE;
7629 7643 #if GTK_MAJOR_VERSION > 1
7630 DW_MUTEX_LOCK; 7644 GtkWidget *mdi;
7631 if(handle && handle->window) 7645 #endif
7632 gdk_window_move(handle->window, x, y); 7646
7647 DW_MUTEX_LOCK;
7648 #if GTK_MAJOR_VERSION > 1
7649 if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi))
7650 {
7651 gtk_mdi_move(GTK_MDI(mdi), handle, x, y);
7652 }
7653 else
7654 #endif
7655 {
7656 if(handle && handle->window)
7657 gdk_window_move(handle->window, x, y);
7658 }
7633 DW_MUTEX_UNLOCK; 7659 DW_MUTEX_UNLOCK;
7634 } 7660 }
7635 7661
7636 /* 7662 /*
7637 * Sets the position and size of a given window (widget). 7663 * Sets the position and size of a given window (widget).
7643 * height: Height of the widget. 7669 * height: Height of the widget.
7644 */ 7670 */
7645 void dw_window_set_pos_size(HWND handle, unsigned long x, unsigned long y, unsigned long width, unsigned long height) 7671 void dw_window_set_pos_size(HWND handle, unsigned long x, unsigned long y, unsigned long width, unsigned long height)
7646 { 7672 {
7647 int _locked_by_me = FALSE; 7673 int _locked_by_me = FALSE;
7674 #if GTK_MAJOR_VERSION > 1
7675 GtkWidget *mdi;
7676 #endif
7648 7677
7649 if(!handle) 7678 if(!handle)
7650 return; 7679 return;
7651 7680
7652 DW_MUTEX_LOCK; 7681 DW_MUTEX_LOCK;
7653 if(GTK_IS_WINDOW(handle)) 7682 #if GTK_MAJOR_VERSION > 1
7654 { 7683 if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi))
7655 dw_window_set_size(handle, width, height); 7684 {
7656 gtk_widget_set_uposition(handle, x, y); 7685 gtk_mdi_move(GTK_MDI(mdi), handle, x, y);
7657 } 7686 }
7658 else if(handle->window) 7687 else
7659 { 7688 #endif
7660 gdk_window_resize(handle->window, width, height); 7689 {
7661 gdk_window_move(handle->window, x, y); 7690 if(GTK_IS_WINDOW(handle))
7691 {
7692 dw_window_set_size(handle, width, height);
7693 gtk_widget_set_uposition(handle, x, y);
7694 }
7695 else if(handle->window)
7696 {
7697 gdk_window_resize(handle->window, width, height);
7698 gdk_window_move(handle->window, x, y);
7699 }
7662 } 7700 }
7663 DW_MUTEX_UNLOCK; 7701 DW_MUTEX_UNLOCK;
7664 } 7702 }
7665 7703
7666 /* 7704 /*
7674 */ 7712 */
7675 void dw_window_get_pos_size(HWND handle, ULONG *x, ULONG *y, ULONG *width, ULONG *height) 7713 void dw_window_get_pos_size(HWND handle, ULONG *x, ULONG *y, ULONG *width, ULONG *height)
7676 { 7714 {
7677 int _locked_by_me = FALSE; 7715 int _locked_by_me = FALSE;
7678 gint gx, gy, gwidth, gheight, gdepth; 7716 gint gx, gy, gwidth, gheight, gdepth;
7679 7717 #if GTK_MAJOR_VERSION > 1
7680 if(handle && handle->window) 7718 GtkWidget *mdi;
7681 { 7719 #endif
7682 DW_MUTEX_LOCK; 7720
7683 7721 DW_MUTEX_LOCK;
7684 gdk_window_get_geometry(handle->window, &gx, &gy, &gwidth, &gheight, &gdepth); 7722 #if GTK_MAJOR_VERSION > 1
7685 gdk_window_get_root_origin(handle->window, &gx, &gy); 7723 if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi))
7686 if(x) 7724 {
7687 *x = gx; 7725 gint myx, myy;
7688 if(y) 7726
7689 *y = gy; 7727 gtk_mdi_get_pos(GTK_MDI(mdi), handle, &myx, &myy);
7690 if(GTK_IS_WINDOW(handle)) 7728 *x = myx;
7691 { 7729 *y = myy;
7692 if(width) 7730 }
7693 *width = gwidth + _dw_border_width; 7731 else
7694 if(height) 7732 #endif
7695 *height = gheight + _dw_border_height; 7733 {
7696 } 7734 if(handle && handle->window)
7697 else 7735 {
7698 { 7736
7699 if(width) 7737 gdk_window_get_geometry(handle->window, &gx, &gy, &gwidth, &gheight, &gdepth);
7700 *width = gwidth; 7738 gdk_window_get_root_origin(handle->window, &gx, &gy);
7701 if(height) 7739 if(x)
7702 *height = gheight; 7740 *x = gx;
7703 } 7741 if(y)
7704 DW_MUTEX_UNLOCK; 7742 *y = gy;
7705 } 7743 if(GTK_IS_WINDOW(handle))
7744 {
7745 if(width)
7746 *width = gwidth + _dw_border_width;
7747 if(height)
7748 *height = gheight + _dw_border_height;
7749 }
7750 else
7751 {
7752 if(width)
7753 *width = gwidth;
7754 if(height)
7755 *height = gheight;
7756 }
7757 }
7758 }
7759 DW_MUTEX_UNLOCK;
7706 } 7760 }
7707 7761
7708 /* 7762 /*
7709 * Sets the style of a given window (widget). 7763 * Sets the style of a given window (widget).
7710 * Parameters: 7764 * Parameters: