i3
include/floating.h
Go to the documentation of this file.
00001 /*
00002  * vim:ts=8:expandtab
00003  *
00004  * i3 - an improved dynamic tiling window manager
00005  *
00006  * © 2009-2010 Michael Stapelberg and contributors
00007  *
00008  * See file LICENSE for license information.
00009  *
00010  */
00011 #ifndef _FLOATING_H
00012 #define _FLOATING_H
00013 
00014 #include "tree.h"
00015 
00017 typedef void(*callback_t)(Con*, Rect*, uint32_t, uint32_t, void*);
00018 
00020 #define DRAGGING_CB(name) \
00021         static void name(Con *con, Rect *old_rect, uint32_t new_x, \
00022                          uint32_t new_y, void *extra)
00023 
00025 typedef enum { BORDER_LEFT   = (1 << 0),
00026                BORDER_RIGHT  = (1 << 1),
00027                BORDER_TOP    = (1 << 2),
00028                BORDER_BOTTOM = (1 << 3)} border_t;
00029 
00036 void floating_enable(Con *con, bool automatic);
00037 
00043 void floating_disable(Con *con, bool automatic);
00044 
00054 void toggle_floating_mode(Con *con, bool automatic);
00055 
00060 void floating_raise_con(Con *con);
00061 
00067 bool floating_maybe_reassign_ws(Con *con);
00068 
00069 #if 0
00070 
00076 void floating_assign_to_workspace(Client *client, Workspace *new_workspace);
00077 
00084 int floating_border_click(xcb_connection_t *conn, Client *client,
00085                           xcb_button_press_event_t *event);
00086 
00087 #endif
00088 
00093 void floating_drag_window(Con *con, xcb_button_press_event_t *event);
00094 
00101 void floating_resize_window(Con *con, bool proportional, xcb_button_press_event_t *event);
00102 
00103 #if 0
00104 
00111 void floating_focus_direction(xcb_connection_t *conn, Client *currently_focused,
00112                               direction_t direction);
00113 
00118 void floating_move(xcb_connection_t *conn, Client *currently_focused,
00119                    direction_t direction);
00120 
00126 void floating_toggle_hide(xcb_connection_t *conn, Workspace *workspace);
00127 
00128 #endif
00129 
00137 void drag_pointer(Con *con, xcb_button_press_event_t *event,
00138                   xcb_window_t confine_to, border_t border, callback_t callback,
00139                   void *extra);
00140 
00141 #endif