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::OnRightDown(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_move_drag (GTK_WINDOW (ancestor), 2, org_x + event.GetX(), org_y + event.GetY(), 0); } else { event.Skip( true ); } #else event.Skip( true ); #endif }
static gboolean on_mainwnd_button_press (GtkWidget * window, GdkEventButton * event ,CReciteWord * parent) { if (event->button == 1 && event->type == GDK_BUTTON_PRESS && event->window == parent->window->window && event->y < Skin->reciteword.titlebar_height) gtk_window_begin_move_drag(GTK_WINDOW(window),event->button,(gint)event->x_root,(gint)event->y_root,event->time); return true; }
gboolean mouse_window(GtkWidget *widget, GdkEventButton *event, GtkWindow *window) { static gboolean compact_mode = FALSE; if(event->type == GDK_BUTTON_PRESS && event->button == 1 && event->state & GDK_SHIFT_MASK) { gtk_window_begin_move_drag(window, event->button, event->x_root, event->y_root, event->time); return TRUE; } else if(event->type == GDK_3BUTTON_PRESS && event->button == 1) { if(compact_mode) { gtk_widget_hide(ui.box_left_settings1); gtk_widget_hide(ui.box_left_settings2); } else { gtk_widget_show(ui.box_left_settings1); gtk_widget_show(ui.box_left_settings2); } compact_mode = !compact_mode; } return FALSE; }
void wxStatusBarGeneric::OnRightDown(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 ); gtk_window_begin_move_drag (GTK_WINDOW (ancestor), 2, org_x + event.GetX(), org_y + event.GetY(), 0); } else { event.Skip( true ); } }
/* Sticky Window Callback : Move the window or edit the title. */ gboolean stickynote_move_cb(GtkWidget *widget, GdkEventButton *event, StickyNote *note) { if (event->type == GDK_BUTTON_PRESS && event->button == 1) gtk_window_begin_move_drag(GTK_WINDOW(note->w_window), event->button, event->x_root, event->y_root, event->time); else if (event->type == GDK_2BUTTON_PRESS && event->button == 1) stickynote_change_properties(note); else return FALSE; return TRUE; }
static void hippo_window_gtk_begin_move_drag(HippoWindow *window, HippoEvent *event) { HippoWindowGtk *window_gtk = HIPPO_WINDOW_GTK(window); gtk_window_begin_move_drag(GTK_WINDOW(window_gtk), event->u.button.button, event->u.button.x11_x_root, event->u.button.x11_y_root, event->u.button.x11_time); }
static void hippo_window_wrapper_begin_move_drag(HippoWindow *window, HippoEvent *event) { HippoWindowWrapper *wrapper = HIPPO_WINDOW_WRAPPER(window); gtk_window_begin_move_drag(GTK_WINDOW(wrapper->window), event->u.button.button, event->u.button.x11_x_root, event->u.button.x11_y_root, event->u.button.x11_time); }
static gboolean egg_panel_ebox_button_press (GtkWidget *ebox, GdkEventButton *event, EggPanel *panel) { GtkAllocation alloc; GtkWidget *arrow; GtkArrowType type; if (event->button == 1) { gtk_widget_get_allocation(panel->priv->arrow, &alloc); if (event->x >= alloc.x && event->x <= (alloc.x + alloc.width)) { if (event->y >= alloc.y && event->y <= (alloc.y + alloc.height)) { GtkWidget *child; gtk_widget_get_allocation(panel->priv->ebox, &alloc); /* * Handle clicks within the arrow area. */ arrow = panel->priv->arrow; g_object_get(arrow, "arrow-type", &type, NULL); type = (type == GTK_ARROW_DOWN) ? GTK_ARROW_RIGHT : GTK_ARROW_DOWN; g_object_set(arrow, "arrow-type", type, NULL); /* * TODO: Animate Expanding/Collapsing. */ child = panel->priv->child; gtk_widget_set_visible(child, (type == GTK_ARROW_DOWN)); /* * TODO: Determine minimum size. */ gtk_window_resize(GTK_WINDOW(panel->priv->toplevel), alloc.width, alloc.height); return FALSE; } } egg_panel_transition(panel, STATE_DRAGGING); gtk_window_begin_move_drag(GTK_WINDOW(panel->priv->toplevel), event->button, event->x_root, event->y_root, event->time); } return FALSE; }
// use the top bar to drag the window (dragbar) extern "C" G_MODULE_EXPORT gboolean on_drag (GtkWidget* widget, GdkEventButton * event, GdkWindowEdge edge) { if (event->type == GDK_BUTTON_PRESS) { if (event->button == 1) { gtk_window_begin_move_drag(GTK_WINDOW(gtk_widget_get_toplevel(widget)), event->button, event->x_root, event->y_root, event->time); } else { // open the preferences window gtk_widget_show(preferences); } } return FALSE; }
gboolean on_button_press(GtkWidget *widget, GdkEventButton *event, GdkWindowEdge edge) { if (event->type == GDK_BUTTON_PRESS) { if (event->button == 1) { gtk_window_begin_move_drag(GTK_WINDOW(gtk_widget_get_toplevel(widget)), event->button, event->x_root, event->y_root, event->time); } } return FALSE; }
static gboolean on_mouse_press_event (GtkWidget* widget, GdkEventButton * event, gpointer data) { if (event->type == GDK_BUTTON_PRESS) { if (event->button == 1) { gtk_window_begin_move_drag(GTK_WINDOW(gtk_widget_get_toplevel(widget)), event->button, event->x_root, event->y_root, event->time); } } return FALSE; }
int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *vbox; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(window), 400, 200); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_MOUSE); gtk_window_set_decorated(GTK_WINDOW(window), FALSE); gtk_window_set_title(GTK_WINDOW(window), "Main Window"); gtk_window_begin_move_drag(GTK_WINDOW(window), 1, 398, 198, 10); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(main), NULL); vbox = gtk_vbox_new(TRUE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); GtkWidget *button_popup = gtk_button_new_with_label("Popup?"); gtk_box_pack_start(GTK_BOX(vbox), button_popup, TRUE, TRUE, 0); g_signal_connect(G_OBJECT(button_popup), "clicked", G_CALLBACK(new_popup), NULL); GtkWidget *button_main = gtk_button_new_from_stock(GTK_STOCK_NEW); gtk_box_pack_start(GTK_BOX(vbox), button_main, TRUE, TRUE, 0); g_signal_connect(G_OBJECT(button_main), "clicked", G_CALLBACK(main), NULL); GtkWidget *button_quit = gtk_button_new_from_stock(GTK_STOCK_QUIT); gtk_box_pack_start(GTK_BOX(vbox), button_quit, TRUE, TRUE, 0); g_signal_connect_swapped(G_OBJECT(button_quit), "clicked", G_CALLBACK(exit), GINT_TO_POINTER(0)); GtkWidget *button_iconify = gtk_button_new_with_label("Iconify (Minimize)"); gtk_box_pack_start(GTK_BOX(vbox), button_iconify, FALSE, FALSE, 0); g_signal_connect_swapped(G_OBJECT(button_iconify), "clicked", G_CALLBACK(gtk_window_iconify), window); gtk_widget_show_all(window); gtk_main(); return 0; }
JNIEXPORT void JNICALL Java_org_gnome_gtk_GtkWindow_gtk_1window_1begin_1move_1drag ( JNIEnv* env, jclass cls, jlong _self, jint _button, jint _rootX, jint _rootY, jint _timestamp ) { GtkWindow* self; gint button; gint rootX; gint rootY; guint32 timestamp; // convert parameter self self = (GtkWindow*) _self; // 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_move_drag(self, button, rootX, rootY, timestamp); // cleanup parameter self // cleanup parameter button // cleanup parameter rootX // cleanup parameter rootY // cleanup parameter timestamp }
static gboolean move_window (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { g_debug ("installer:move window"); if (event->y > 50 || (event->x > 740) && (event->y < 50)) { return TRUE; } if (event->button == 1) { g_debug ("move window:in drag x_root->%g, y_root->%g", event->x_root, event->y_root); gtk_widget_set_can_focus (widget, TRUE); gtk_widget_grab_focus (widget); gtk_window_begin_move_drag (GTK_WINDOW (widget), event->button, event->x_root, event->y_root, event->time); } return FALSE; }
static gboolean move_window (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { // Window is only moveable at the top and ignores top right corner, which // contains a close button if (event->y > 50 || event->x + 50 > INSTALLER_WIN_WIDTH || event->button != 1) { return TRUE; } else { g_debug ("move window: in drag x_root->%g, y_root->%g", event->x_root, event->y_root); gtk_widget_set_can_focus (widget, TRUE); gtk_widget_grab_focus (widget); gtk_window_begin_move_drag (GTK_WINDOW (widget), event->button, event->x_root, event->y_root, event->time); return FALSE; } }
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 on_motion_notify_desklet (GtkWidget *pWidget, GdkEventMotion* pMotion, CairoDesklet *pDesklet) { /*if (pMotion->state & GDK_BUTTON1_MASK && cairo_dock_desklet_is_free (pDesklet)) { cd_debug ("root : %d;%d", (int) pMotion->x_root, (int) pMotion->y_root); } else*/ // le 'press-button' est local au sous-widget clique, alors que le 'motion-notify' est global a la fenetre; c'est donc par lui qu'on peut avoir a coup sur les coordonnees du curseur (juste avant le clic). { pDesklet->container.iMouseX = pMotion->x; pDesklet->container.iMouseY = pMotion->y; gboolean bStartAnimation = FALSE; gldi_object_notify (pDesklet, NOTIFICATION_MOUSE_MOVED, pDesklet, &bStartAnimation); if (bStartAnimation) cairo_dock_launch_animation (CAIRO_CONTAINER (pDesklet)); } if (pDesklet->rotating && cairo_dock_desklet_is_free (pDesklet)) { double alpha = atan2 (pDesklet->container.iHeight, - pDesklet->container.iWidth); pDesklet->fRotation = alpha - atan2 (.5*pDesklet->container.iHeight - pMotion->y, pMotion->x - .5*pDesklet->container.iWidth); while (pDesklet->fRotation > G_PI) pDesklet->fRotation -= 2 * G_PI; while (pDesklet->fRotation <= - G_PI) pDesklet->fRotation += 2 * G_PI; gtk_widget_queue_draw(pDesklet->container.pWidget); } else if (pDesklet->rotatingY && cairo_dock_desklet_is_free (pDesklet)) { pDesklet->fDepthRotationY = G_PI * (pMotion->x - .5*pDesklet->container.iWidth) / pDesklet->container.iWidth; gtk_widget_queue_draw(pDesklet->container.pWidget); } else if (pDesklet->rotatingX && cairo_dock_desklet_is_free (pDesklet)) { pDesklet->fDepthRotationX = G_PI * (pMotion->y - .5*pDesklet->container.iHeight) / pDesklet->container.iHeight; gtk_widget_queue_draw(pDesklet->container.pWidget); } else if (pMotion->state & GDK_BUTTON1_MASK && cairo_dock_desklet_is_free (pDesklet) && ! pDesklet->moving) { gtk_window_begin_move_drag (GTK_WINDOW (gtk_widget_get_toplevel (pWidget)), 1/*pButton->button*/, pMotion->x_root/*pButton->x_root*/, pMotion->y_root/*pButton->y_root*/, pDesklet->time/*pButton->time*/); pDesklet->moving = TRUE; } else { gboolean bStartAnimation = FALSE; Icon *pIcon = gldi_desklet_find_clicked_icon (pDesklet); if (pIcon != NULL) { if (! pIcon->bPointed) { Icon *pPointedIcon = cairo_dock_get_pointed_icon (pDesklet->icons); if (pPointedIcon != NULL) pPointedIcon->bPointed = FALSE; pIcon->bPointed = TRUE; //g_print ("on survole %s\n", pIcon->cName); gldi_object_notify (pDesklet, NOTIFICATION_ENTER_ICON, pIcon, pDesklet, &bStartAnimation); } } else { Icon *pPointedIcon = cairo_dock_get_pointed_icon (pDesklet->icons); if (pPointedIcon != NULL) { pPointedIcon->bPointed = FALSE; //g_print ("kedal\n"); //gldi_object_notify (pDesklet, NOTIFICATION_ENTER_ICON, pPointedIcon, pDesklet, &bStartAnimation); } } if (bStartAnimation) { cairo_dock_launch_animation (CAIRO_CONTAINER (pDesklet)); } } gdk_device_get_state (pMotion->device, pMotion->window, NULL, NULL); // pour recevoir d'autres MotionNotify. return FALSE; }
void bar_pressed(GtkWidget *widget, GdkEventButton *event, Note *note) { gtk_window_begin_move_drag(GTK_WINDOW(note->window), event->button, event->x_root, event->y_root, event->time); }