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);
}
Exemple #2
0
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
}
Exemple #3
0
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;
}
Exemple #4
0
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;
}
Exemple #5
0
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;
}
Exemple #10
0
// 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;
}
Exemple #11
0
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;
}
Exemple #12
0
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;
}
Exemple #13
0
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;
}
Exemple #14
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;
}
Exemple #16
0
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;
    }
}
Exemple #17
0
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;
}
Exemple #19
0
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);
}