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