]> git.sur5r.net Git - i3/i3/blobdiff - include/con.h
Implement 'swap' command.
[i3/i3] / include / con.h
index 655fde7f7f62242c5d29412a1d9ccde1e3f836e8..0fa660a10ccd1cad7c55b5d77f3c39f731234036 100644 (file)
@@ -11,6 +11,8 @@
  */
 #pragma once
 
+#include <config.h>
+
 /**
  * Create a new container (and attach it to the given parent, if not NULL).
  * This function only initializes the data structures.
@@ -30,6 +32,12 @@ Con *con_new(Con *parent, i3Window *window);
  */
 void con_focus(Con *con);
 
+/**
+ * Closes the given container.
+ *
+ */
+void con_close(Con *con, kill_window_t kill_window);
+
 /**
  * Returns true when this node is a leaf node (has no children)
  *
@@ -131,6 +139,12 @@ Con *con_inside_floating(Con *con);
  */
 bool con_inside_focused(Con *con);
 
+/**
+ * Checks if the container has the given parent as an actual parent.
+ *
+ */
+bool con_has_parent(Con *con, Con *parent);
+
 /**
  * Returns the container with the given client window ID or NULL if no such
  * container exists.
@@ -194,6 +208,19 @@ Con *con_for_window(Con *con, i3Window *window, Match **store_match);
  */
 int con_num_children(Con *con);
 
+/**
+ * Returns the number of visible non-floating children of this container.
+ * For example, if the container contains a hsplit which has two children,
+ * this will return 2 instead of 1.
+ */
+int con_num_visible_children(Con *con);
+
+/**
+ * Count the number of windows (i.e., leaf containers).
+ *
+ */
+int con_num_windows(Con *con);
+
 /**
  * Attaches the given container to the given parent. This happens when moving
  * a container or when inserting a new container at a specific place in the
@@ -262,6 +289,13 @@ void con_disable_fullscreen(Con *con);
 void con_move_to_workspace(Con *con, Con *workspace, bool fix_coordinates,
                            bool dont_warp, bool ignore_focus);
 
+/**
+ * Moves the given container to the currently focused container on the
+ * visible workspace on the given output.
+ *
+ */
+void con_move_to_output(Con *con, Output *output);
+
 /**
  * Moves the given container to the given mark.
  *
@@ -427,3 +461,15 @@ char *con_get_tree_representation(Con *con);
  *
  */
 void con_force_split_parents_redraw(Con *con);
+
+/**
+ * Returns the window title considering the current title format.
+ *
+ */
+i3String *con_parse_title_format(Con *con);
+
+/**
+ * Swaps the two containers.
+ *
+ */
+bool con_swap(Con *first, Con *second);