X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fresize.h;h=72dffc0f55a5d66c68d376938945832dea936d9e;hb=db0add0f11995d4273c76c3c1ad3ab131cea6a99;hp=5c8ea5d5d072ab92eb7f6f0a2089cbb23e8557b3;hpb=0f276fdefa5428a9137996bd2d36ae24d86b80df;p=i3%2Fi3 diff --git a/include/resize.h b/include/resize.h index 5c8ea5d5..72dffc0f 100644 --- a/include/resize.h +++ b/include/resize.h @@ -1,6 +1,39 @@ -#ifndef _RESIZE_H -#define _RESIZE_H +/* + * vim:ts=4:sw=4:expandtab + * + * i3 - an improved dynamic tiling window manager + * © 2009 Michael Stapelberg and contributors (see also: LICENSE) + * + * resize.c: Interactive resizing. + * + */ +#pragma once -int resize_graphical_handler(Con *first, Con *second, orientation_t orientation, xcb_button_press_event_t *event); +#include -#endif +bool resize_find_tiling_participants(Con **current, Con **other, direction_t direction, bool both_sides); + +void resize_graphical_handler(Con *first, Con *second, orientation_t orientation, const xcb_button_press_event_t *event); + +/** + * 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); + +/** + * Calculate the minimum percent needed for the given container to be at least 1 + * pixel. + * + */ +double percent_for_1px(Con *con); + +/** + * Calculate the given container's new percent given a change in pixels. + * + */ +double px_resize_to_percent(Con *con, int px_diff);