/* Sticky Window Callback : Resize the window. */ gboolean stickynote_resize_cb(GtkWidget *widget, GdkEventButton *event, StickyNote *note) { if (event->type == GDK_BUTTON_PRESS && event->button == 1) { if (widget == note->w_resize_se) gtk_window_begin_resize_drag(GTK_WINDOW(note->w_window), GDK_WINDOW_EDGE_SOUTH_EAST, event->button, event->x_root, event->y_root, event->time); else /* if (widget == note->w_resize_sw) */ gtk_window_begin_resize_drag(GTK_WINDOW(note->w_window), GDK_WINDOW_EDGE_SOUTH_WEST, event->button, event->x_root, event->y_root, event->time); } else return FALSE; return TRUE; }
static void hippo_window_gtk_begin_resize_drag(HippoWindow *window, HippoSide side, HippoEvent *event) { HippoWindowGtk *window_gtk = HIPPO_WINDOW_GTK(window); GdkWindowEdge edge; switch (side) { case HIPPO_SIDE_TOP: edge = GDK_WINDOW_EDGE_NORTH; break; case HIPPO_SIDE_BOTTOM: edge = GDK_WINDOW_EDGE_SOUTH; break; case HIPPO_SIDE_LEFT: edge = GDK_WINDOW_EDGE_WEST; break; case HIPPO_SIDE_RIGHT: edge = GDK_WINDOW_EDGE_EAST; break; default: g_warning("Unknown window side"); return; } gtk_window_begin_resize_drag(GTK_WINDOW(window_gtk), edge, event->u.button.button, event->u.button.x11_x_root, event->u.button.x11_y_root, event->u.button.x11_time); }
void wxStatusBarGeneric::OnLeftDown(wxMouseEvent& event) { #ifdef __WXGTK20__ int width, height; GetClientSize(&width, &height); if (HasFlag( wxST_SIZEGRIP ) && (event.GetX() > width-height)) { GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget ); if (!GTK_IS_WINDOW (ancestor)) return; GdkWindow *source = GTK_PIZZA(m_wxwindow)->bin_window; int org_x = 0; int org_y = 0; gdk_window_get_origin( source, &org_x, &org_y ); gtk_window_begin_resize_drag (GTK_WINDOW (ancestor), GDK_WINDOW_EDGE_SOUTH_EAST, 1, org_x + event.GetX(), org_y + event.GetY(), 0); } else { event.Skip( true ); } #else event.Skip( true ); #endif }
static void ol_scroll_window_begin_move_resize (GtkWidget *widget, GdkEventButton *event) { gint width, height; GtkWindow *window = GTK_WINDOW (widget); OlScrollWindowPrivate *priv = OL_SCROLL_WINDOW_GET_PRIVATE (widget); GdkWindowEdge edge; gtk_window_get_size (window, &width, &height); if (!_get_pointer_edge (event->x, event->y, width, height, priv->frame_width, priv->frame_width, priv->frame_width, priv->frame_width, &edge)) gtk_window_begin_move_drag (window, event->button, (gint)event->x_root, (gint)event->y_root, event->time); else gtk_window_begin_resize_drag (window, edge, event->button, (gint)event->x_root, (gint)event->y_root, event->time); }
void wxStatusBarGeneric::OnLeftDown(wxMouseEvent& event) { int width, height; GetClientSize(&width, &height); GtkWidget* ancestor = gtk_widget_get_toplevel(m_widget); #ifdef __WXGTK3__ GdkRectangle rect; if (ancestor && gtk_window_get_resize_grip_area(GTK_WINDOW(ancestor), &rect) && rect.width && rect.height) { ancestor = NULL; } #endif if (ancestor && ShowsSizeGrip() && event.GetX() > width - height) { GdkWindow *source = GTKGetDrawingWindow(); int org_x = 0; int org_y = 0; gdk_window_get_origin( source, &org_x, &org_y ); if (GetLayoutDirection() == wxLayout_RightToLeft) { gtk_window_begin_resize_drag (GTK_WINDOW (ancestor), GDK_WINDOW_EDGE_SOUTH_WEST, 1, org_x - event.GetX() + GetSize().x , org_y + event.GetY(), 0); } else { gtk_window_begin_resize_drag (GTK_WINDOW (ancestor), GDK_WINDOW_EDGE_SOUTH_EAST, 1, org_x + event.GetX(), org_y + event.GetY(), 0); } } else { event.Skip( true ); } }
void wxStatusBarGeneric::OnLeftDown(wxMouseEvent& event) { #ifdef __WXGTK20__ int width, height; GetClientSize(&width, &height); if ( ShowsSizeGrip() && (event.GetX() > width-height) ) { GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget ); if (!GTK_IS_WINDOW (ancestor)) return; GdkWindow *source = GTKGetDrawingWindow(); int org_x = 0; int org_y = 0; gdk_window_get_origin( source, &org_x, &org_y ); if (GetLayoutDirection() == wxLayout_RightToLeft) { gtk_window_begin_resize_drag (GTK_WINDOW (ancestor), GDK_WINDOW_EDGE_SOUTH_WEST, 1, org_x - event.GetX() + GetSize().x , org_y + event.GetY(), 0); } else { gtk_window_begin_resize_drag (GTK_WINDOW (ancestor), GDK_WINDOW_EDGE_SOUTH_EAST, 1, org_x + event.GetX(), org_y + event.GetY(), 0); } } else { event.Skip( true ); } #else event.Skip( true ); #endif }
void GuiPlatformGripResize(TopWindow *q) { if(q->top) { Point p = GetMousePos(); gtk_window_begin_resize_drag(q->gtk(), GDK_WINDOW_EDGE_SOUTH_EAST, 1, p.x, p.y, Ctrl::CurrentTime); } }
JNIEXPORT void JNICALL Java_org_gnome_gtk_GtkWindow_gtk_1window_1begin_1resize_1drag ( JNIEnv* env, jclass cls, jlong _self, jint _edge, jint _button, jint _rootX, jint _rootY, jint _timestamp ) { GtkWindow* self; GdkWindowEdge edge; gint button; gint rootX; gint rootY; guint32 timestamp; // convert parameter self self = (GtkWindow*) _self; // convert parameter edge edge = (GdkWindowEdge) _edge; // convert parameter button button = (gint) _button; // convert parameter rootX rootX = (gint) _rootX; // convert parameter rootY rootY = (gint) _rootY; // convert parameter timestamp timestamp = (guint32) _timestamp; // call function gtk_window_begin_resize_drag(self, edge, button, rootX, rootY, timestamp); // cleanup parameter self // cleanup parameter edge // cleanup parameter button // cleanup parameter rootX // cleanup parameter rootY // cleanup parameter timestamp }
gboolean on_button_press (GtkWidget* pWidget, GdkEventButton* pButton, GdkWindowEdge edge) { if (pButton->type == GDK_BUTTON_PRESS) { if (pButton->button == 1) gtk_window_begin_move_drag (GTK_WINDOW (gtk_widget_get_toplevel (pWidget)), pButton->button, pButton->x_root, pButton->y_root, pButton->time); if (pButton->button == 2) gtk_window_begin_resize_drag (GTK_WINDOW (gtk_widget_get_toplevel (pWidget)), edge, pButton->button, pButton->x_root, pButton->y_root, pButton->time); } return FALSE; }
static gboolean gtk_window_button_press_callback(GtkWidget* widget, GdkEventButton* gdk_event, wxMiniFrame* win) { if (gdk_event->window != gtk_widget_get_window(widget)) return false; if (g_blockEventsOnDrag) return TRUE; if (g_blockEventsOnScroll) return TRUE; if (win->m_isDragging) return TRUE; int style = win->GetWindowStyle(); int y = (int)gdk_event->y; int x = (int)gdk_event->x; if ((style & wxRESIZE_BORDER) && (x > win->m_width-14) && (y > win->m_height-14)) { GtkWidget *ancestor = gtk_widget_get_toplevel( widget ); GdkWindow *source = gtk_widget_get_window(widget); int org_x = 0; int org_y = 0; gdk_window_get_origin( source, &org_x, &org_y ); gtk_window_begin_resize_drag (GTK_WINDOW (ancestor), GDK_WINDOW_EDGE_SOUTH_EAST, 1, org_x + x, org_y + y, 0); return TRUE; } if (win->m_miniTitle && (style & wxCLOSE_BOX)) { if ((y > 3) && (y < 19) && (x > win->m_width-19) && (x < win->m_width-3)) { win->Close(); return TRUE; } } if (y >= win->m_miniEdge + win->m_miniTitle) return true; gdk_window_raise(gtk_widget_get_window(win->m_widget)); const GdkEventMask mask = GdkEventMask( GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK); #ifdef __WXGTK3__ gdk_device_grab( gdk_event->device, gdk_event->window, GDK_OWNERSHIP_NONE, false, mask, NULL, gdk_event->time); #else gdk_pointer_grab(gdk_event->window, false, mask, NULL, NULL, gdk_event->time); #endif win->m_diffX = x; win->m_diffY = y; win->m_oldX = 0; win->m_oldY = 0; win->m_isDragging = true; return TRUE; }
static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win ) { // don't need to install idle handler, its done from "event" signal if (!win->m_hasVMT) return FALSE; if (g_blockEventsOnDrag) return TRUE; if (g_blockEventsOnScroll) return TRUE; if (win->m_isDragging) return TRUE; GtkPizza *pizza = GTK_PIZZA(widget); if (gdk_event->window != pizza->bin_window) return TRUE; int style = win->GetWindowStyle(); int y = (int)gdk_event->y; int x = (int)gdk_event->x; if ((style & wxRESIZE_BORDER) && (x > win->m_width-14) && (y > win->m_height-14)) { GtkWidget *ancestor = gtk_widget_get_toplevel( widget ); GdkWindow *source = GTK_PIZZA(widget)->bin_window; int org_x = 0; int org_y = 0; gdk_window_get_origin( source, &org_x, &org_y ); gtk_window_begin_resize_drag (GTK_WINDOW (ancestor), GDK_WINDOW_EDGE_SOUTH_EAST, 1, org_x + x, org_y + y, 0); return TRUE; } if ((style & wxCLOSE_BOX) && ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT))) { if ((y > 3) && (y < 19) && (x > win->m_width-19) && (x < win->m_width-3)) { win->Close(); return TRUE; } } wxClientDC dc(win); dc.SetFont( *wxSMALL_FONT ); int height = dc.GetCharHeight() + 1; if (y > height) return TRUE; gdk_window_raise( win->m_widget->window ); gdk_pointer_grab( widget->window, FALSE, (GdkEventMask) (GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK), (GdkWindow *) NULL, (GdkCursor *) NULL, (unsigned int) GDK_CURRENT_TIME ); win->m_diffX = x; win->m_diffY = y; win->m_oldX = 0; win->m_oldY = 0; win->m_isDragging = true; return TRUE; }
static gboolean gtk_window_button_press_callback(GtkWidget* widget, GdkEventButton* gdk_event, wxMiniFrame* win) { if (!win->m_hasVMT || gdk_event->window != widget->window) return false; if (g_blockEventsOnDrag) return TRUE; if (g_blockEventsOnScroll) return TRUE; if (win->m_isDragging) return TRUE; int style = win->GetWindowStyle(); int y = (int)gdk_event->y; int x = (int)gdk_event->x; if ((style & wxRESIZE_BORDER) && (x > win->m_width-14) && (y > win->m_height-14)) { GtkWidget *ancestor = gtk_widget_get_toplevel( widget ); GdkWindow *source = widget->window; int org_x = 0; int org_y = 0; gdk_window_get_origin( source, &org_x, &org_y ); gtk_window_begin_resize_drag (GTK_WINDOW (ancestor), GDK_WINDOW_EDGE_SOUTH_EAST, 1, org_x + x, org_y + y, 0); return TRUE; } if (win->m_miniTitle && (style & wxCLOSE_BOX)) { if ((y > 3) && (y < 19) && (x > win->m_width-19) && (x < win->m_width-3)) { win->Close(); return TRUE; } } if (y >= win->m_miniEdge + win->m_miniTitle) return true; gdk_window_raise( win->m_widget->window ); gdk_pointer_grab( widget->window, FALSE, (GdkEventMask) (GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK), NULL, NULL, (unsigned int) GDK_CURRENT_TIME ); win->m_diffX = x; win->m_diffY = y; win->m_oldX = 0; win->m_oldY = 0; win->m_isDragging = true; return TRUE; }
void resize_button_pressed(GtkWidget *widget, GdkEventButton *event, Note *note) { gtk_window_begin_resize_drag(GTK_WINDOW(note->window), GDK_WINDOW_EDGE_SOUTH_EAST, event->button, event->x_root, event->y_root, event->time); }