<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>i3: include/floating.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.2-20100208 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <h1>include/floating.h</h1><a href="a00039.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> <a name="l00002"></a>00002 <span class="comment"> * vim:ts=8:expandtab</span> <a name="l00003"></a>00003 <span class="comment"> *</span> <a name="l00004"></a>00004 <span class="comment"> * i3 - an improved dynamic tiling window manager</span> <a name="l00005"></a>00005 <span class="comment"> *</span> <a name="l00006"></a>00006 <span class="comment"> * © 2009-2010 Michael Stapelberg and contributors</span> <a name="l00007"></a>00007 <span class="comment"> *</span> <a name="l00008"></a>00008 <span class="comment"> * See file LICENSE for license information.</span> <a name="l00009"></a>00009 <span class="comment"> *</span> <a name="l00010"></a>00010 <span class="comment"> */</span> <a name="l00011"></a>00011 <span class="preprocessor">#ifndef _FLOATING_H</span> <a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor">#define _FLOATING_H</span> <a name="l00013"></a>00013 <span class="preprocessor"></span> <a name="l00015"></a><a class="code" href="a00039.html#abc0e74d417ed2037efb335d66e644454">00015</a> <span class="keyword">typedef</span> void(*<a class="code" href="a00039.html#abc0e74d417ed2037efb335d66e644454" title="Callback for dragging.">callback_t</a>)(xcb_connection_t*, <a class="code" href="a00007.html" title="A client is X11-speak for a window.">Client</a>*, <a class="code" href="a00020.html" title="Stores a rectangle, for example the size of a window, the child window etc.">Rect</a>*, uint32_t, uint32_t, <span class="keywordtype">void</span>*); <a name="l00016"></a>00016 <a name="l00018"></a><a class="code" href="a00039.html#a1b6cf5fbd1cee4e32a102b1da9b7a0a7">00018</a> <span class="preprocessor">#define DRAGGING_CB(name) \</span> <a name="l00019"></a>00019 <span class="preprocessor"> static void name(xcb_connection_t *conn, Client *client, \</span> <a name="l00020"></a>00020 <span class="preprocessor"> Rect *old_rect, uint32_t new_x, uint32_t new_y, \</span> <a name="l00021"></a>00021 <span class="preprocessor"> void *extra)</span> <a name="l00022"></a>00022 <span class="preprocessor"></span> <a name="l00024"></a><a class="code" href="a00039.html#aacfe70f93afb3b5a074ff4d6f726769a">00024</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> { <a class="code" href="a00039.html#aacfe70f93afb3b5a074ff4d6f726769aafc0aeaa77f9200b57bb411a7cdaaee94">BORDER_LEFT</a> = (1 << 0), <a name="l00025"></a><a class="code" href="a00039.html#aacfe70f93afb3b5a074ff4d6f726769aaf0e1382b7cab91ba9c3124607719c841">00025</a> <a class="code" href="a00039.html#aacfe70f93afb3b5a074ff4d6f726769aaf0e1382b7cab91ba9c3124607719c841">BORDER_RIGHT</a> = (1 << 1), <a name="l00026"></a><a class="code" href="a00039.html#aacfe70f93afb3b5a074ff4d6f726769aa74fabb36cb5f0a09955bb37ced6fd0da">00026</a> <a class="code" href="a00039.html#aacfe70f93afb3b5a074ff4d6f726769aa74fabb36cb5f0a09955bb37ced6fd0da">BORDER_TOP</a> = (1 << 2), <a name="l00027"></a><a class="code" href="a00039.html#aacfe70f93afb3b5a074ff4d6f726769aa4f7b6a135ac7332d7b666aa49f72b970">00027</a> <a class="code" href="a00039.html#aacfe70f93afb3b5a074ff4d6f726769aa4f7b6a135ac7332d7b666aa49f72b970">BORDER_BOTTOM</a> = (1 << 3)} <a class="code" href="a00039.html#aacfe70f93afb3b5a074ff4d6f726769a" title="On which border was the dragging initiated?">border_t</a>; <a name="l00028"></a>00028 <a name="l00039"></a>00039 <span class="keywordtype">void</span> <a class="code" href="a00066.html#aa8af48aadcf7753f5efc97b65a4cfd91" title="Enters floating mode for the given client.">toggle_floating_mode</a>(xcb_connection_t *conn, <a class="code" href="a00007.html" title="A client is X11-speak for a window.">Client</a> *client, <a name="l00040"></a>00040 <span class="keywordtype">bool</span> automatic); <a name="l00041"></a>00041 <a name="l00048"></a>00048 <span class="keywordtype">void</span> <a class="code" href="a00066.html#a551a7fd238fea8026df7a07b503f1bef" title="Removes the floating client from its workspace and attaches it to the new workspace...">floating_assign_to_workspace</a>(<a class="code" href="a00007.html" title="A client is X11-speak for a window.">Client</a> *client, <a class="code" href="a00025.html" title="The concept of Workspaces is known from various other window managers.">Workspace</a> *new_workspace); <a name="l00049"></a>00049 <a name="l00056"></a>00056 <span class="keywordtype">int</span> <a class="code" href="a00066.html#a45f1fa09855e7264dba2e040b1a7eb7a" title="Called whenever the user clicks on a border (not the titlebar!) of a floating window...">floating_border_click</a>(xcb_connection_t *conn, <a class="code" href="a00007.html" title="A client is X11-speak for a window.">Client</a> *client, <a name="l00057"></a>00057 xcb_button_press_event_t *event); <a name="l00058"></a>00058 <a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="a00066.html#ade1139a34e35e87474ee701231d57945" title="Called when the user clicked on the titlebar of a floating window.">floating_drag_window</a>(xcb_connection_t *conn, <a class="code" href="a00007.html" title="A client is X11-speak for a window.">Client</a> *client, <a name="l00065"></a>00065 xcb_button_press_event_t *event); <a name="l00066"></a>00066 <a name="l00073"></a>00073 <span class="keywordtype">void</span> <a class="code" href="a00066.html#a7ad8b1f1b348648ed8d56facc5a1ccdb" title="Called when the user clicked on a floating window while holding the floating_modifier...">floating_resize_window</a>(xcb_connection_t *conn, <a class="code" href="a00007.html" title="A client is X11-speak for a window.">Client</a> *client, <a name="l00074"></a>00074 <span class="keywordtype">bool</span> proportional, xcb_button_press_event_t *event); <a name="l00075"></a>00075 <a name="l00083"></a>00083 <span class="keywordtype">void</span> <a class="code" href="a00066.html#a8f14283efc52e767d701f71e58c2d8df" title="Changes focus in the given direction for floating clients.">floating_focus_direction</a>(xcb_connection_t *conn, <a class="code" href="a00007.html" title="A client is X11-speak for a window.">Client</a> *currently_focused, <a name="l00084"></a>00084 <a class="code" href="a00036.html#ae9ae980041e438eed7a3af43ce4e9f6b">direction_t</a> direction); <a name="l00085"></a>00085 <a name="l00090"></a>00090 <span class="keywordtype">void</span> <a class="code" href="a00066.html#aa4826c9c64505152ecccceec17ceabf2" title="Moves the client 10px to the specified direction.">floating_move</a>(xcb_connection_t *conn, <a class="code" href="a00007.html" title="A client is X11-speak for a window.">Client</a> *currently_focused, <a name="l00091"></a>00091 <a class="code" href="a00036.html#ae9ae980041e438eed7a3af43ce4e9f6b">direction_t</a> direction); <a name="l00092"></a>00092 <a name="l00098"></a>00098 <span class="keywordtype">void</span> <a class="code" href="a00066.html#a4616d049f3145ecee455c2d697864596" title="Hides all floating clients (or show them if they are currently hidden) on the specified...">floating_toggle_hide</a>(xcb_connection_t *conn, <a class="code" href="a00025.html" title="The concept of Workspaces is known from various other window managers.">Workspace</a> *workspace); <a name="l00099"></a>00099 <a name="l00108"></a>00108 <span class="keywordtype">void</span> <a class="code" href="a00066.html#a74161272ece36a35ab930bf32fb5027e" title="This function grabs your pointer and lets you drag stuff around (borders).">drag_pointer</a>(xcb_connection_t *conn, <a class="code" href="a00007.html" title="A client is X11-speak for a window.">Client</a> *client, xcb_button_press_event_t *event, <a name="l00109"></a>00109 xcb_window_t confine_to, <a class="code" href="a00039.html#aacfe70f93afb3b5a074ff4d6f726769a" title="On which border was the dragging initiated?">border_t</a> border, <a class="code" href="a00039.html#abc0e74d417ed2037efb335d66e644454" title="Callback for dragging.">callback_t</a> callback, <a name="l00110"></a>00110 <span class="keywordtype">void</span> *extra); <a name="l00111"></a>00111 <a name="l00112"></a>00112 <span class="preprocessor">#endif</span> </pre></div></div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>