]> git.sur5r.net Git - i3/i3/blobdiff - include/resize.h
Merge branch 'release-4.16.1'
[i3/i3] / include / resize.h
index 4a206c0e2643275e654644348b188e225c672a74..72dffc0f55a5d66c68d376938945832dea936d9e 100644 (file)
@@ -1,28 +1,39 @@
 /*
- * vim:ts=8:expandtab
+ * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
+ * © 2009 Michael Stapelberg and contributors (see also: LICENSE)
  *
- * (c) 2009 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
+ * resize.c: Interactive resizing.
  *
  */
+#pragma once
+
+#include <config.h>
 
-#ifndef _RESIZE_H
-#define _RESIZE_H
+bool resize_find_tiling_participants(Con **current, Con **other, direction_t direction, bool both_sides);
 
-#include <xcb/xcb.h>
+void resize_graphical_handler(Con *first, Con *second, orientation_t orientation, const xcb_button_press_event_t *event);
 
-typedef enum { O_HORIZONTAL, O_VERTICAL } resize_orientation_t;
+/**
+ * Resize the two given containers using the given amount of pixels or
+ * percentage points. One of the two needs to be 0. A positive amount means
+ * growing the first container while a negative means shrinking it.
+ * Returns false when the resize would result in one of the two containers
+ * having less than 1 pixel of size.
+ *
+ */
+bool resize_neighboring_cons(Con *first, Con *second, int px, int ppt);
 
 /**
- * Renders the resize window between the first/second container and resizes
- * the table column/row.
+ * Calculate the minimum percent needed for the given container to be at least 1
+ * pixel.
  *
  */
-int resize_graphical_handler(xcb_connection_t *conn, Workspace *ws, int first,
-                             int second, resize_orientation_t orientation,
-                             xcb_button_press_event_t *event);
+double percent_for_1px(Con *con);
 
-#endif
+/**
+ * Calculate the given container's new percent given a change in pixels.
+ *
+ */
+double px_resize_to_percent(Con *con, int px_diff);