static VALUE gdkwin_begin_resize_drag(VALUE self, VALUE edge, VALUE button, VALUE root_x, VALUE root_y, VALUE timestamp) { gdk_window_begin_resize_drag(_SELF(self), RVAL2GENUM(edge, GDK_TYPE_WINDOW_EDGE), NUM2INT(button), NUM2INT(root_x), NUM2INT(root_y), NUM2UINT(timestamp)); return self; }
static VALUE rg_begin_resize_drag(VALUE self, VALUE edge, VALUE button, VALUE root_x, VALUE root_y, VALUE timestamp) { gdk_window_begin_resize_drag(_SELF(self), RVAL2GDKWINDOWEDGE(edge), NUM2INT(button), NUM2INT(root_x), NUM2INT(root_y), NUM2UINT(timestamp)); return self; }
JNIEXPORT void JNICALL Java_org_gnome_gdk_GdkWindow_gdk_1window_1begin_1resize_1drag ( JNIEnv* env, jclass cls, jlong _self, jint _edge, jint _button, jint _rootX, jint _rootY, jint _timestamp ) { GdkWindow* self; GdkWindowEdge edge; gint button; gint rootX; gint rootY; guint32 timestamp; // convert parameter self self = (GdkWindow*) _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 gdk_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 }
NS_IMETHODIMP sbNativeWindowManager::BeginResizeDrag(nsISupports *aWindow, nsIDOMMouseEvent* aEvent, PRInt32 aDirection) { nsresult rv; PRInt32 screenX; PRInt32 screenY; PRUint16 button; PRUint32 server_time; GdkWindow* window = NULL; GdkWindowEdge window_edge; NS_ENSURE_ARG_POINTER(aWindow); NS_ENSURE_ARG_POINTER(aEvent); /* find the window that was passed in */ rv = GetToplevelGdkWindow(aWindow, &window); NS_ENSURE_SUCCESS(rv, rv); /* get the currently pressed mouse button from the event */ rv = aEvent->GetButton(&button); NS_ENSURE_SUCCESS(rv, rv); /* mozilla and gtk disagree about button numbering... */ button++; /* to work around an old, buggy metacity we need to move ourselves */ /* where are we? */ gdk_window_get_position(window, &screenX, &screenY); /* let's move to there */ gdk_window_move(window, screenX, screenY); #ifdef MOUSE_POSITION_FROM_EVENT /* pull the mouse position out of the mozilla event */ rv = aEvent->GetScreenX(&screenX); NS_ENSURE_SUCCESS(rv, rv); rv = aEvent->GetScreenY(&screenY); NS_ENSURE_SUCCESS(rv, rv); #else { /* ask X where the mouse is */ GdkDisplay* display = NULL; GdkScreen* screen = NULL; GdkModifierType mask; /* get the current (default) display */ display = gdk_display_get_default(); if (display == NULL) { return NS_ERROR_FAILURE; } /* get the current pointer position */ gdk_display_get_pointer(display, &screen, &screenX, &screenY, &mask); } #endif /* convert interface directions to GDK_WINDOW_EDGE* */ switch(aDirection) { case sbINativeWindowManager::DIRECTION_NORTH_WEST: window_edge = GDK_WINDOW_EDGE_NORTH_WEST; break; case sbINativeWindowManager::DIRECTION_NORTH: window_edge = GDK_WINDOW_EDGE_NORTH; break; case sbINativeWindowManager::DIRECTION_NORTH_EAST: window_edge = GDK_WINDOW_EDGE_NORTH_EAST; break; case sbINativeWindowManager::DIRECTION_WEST: window_edge = GDK_WINDOW_EDGE_WEST; break; case sbINativeWindowManager::DIRECTION_EAST: window_edge = GDK_WINDOW_EDGE_EAST; break; case sbINativeWindowManager::DIRECTION_SOUTH_WEST: window_edge = GDK_WINDOW_EDGE_SOUTH_WEST; break; case sbINativeWindowManager::DIRECTION_SOUTH: window_edge = GDK_WINDOW_EDGE_SOUTH; break; case sbINativeWindowManager::DIRECTION_SOUTH_EAST: window_edge = GDK_WINDOW_EDGE_SOUTH_EAST; break; default: return NS_ERROR_FAILURE; } /* if I were an event, when would I happen? */ server_time = gdk_x11_get_server_time(window); /* tell the window manager to start the resize */ gdk_window_begin_resize_drag(window, window_edge, button, screenX, screenY, server_time); return NS_OK; }