Files
armorpaint/paint/sources/util/util_resize.c
T

65 lines
2.8 KiB
C
Raw Normal View History

2026-06-08 11:31:49 +02:00
#include "../global.h"
void util_resize_borders() {
if (ui_base_border_handle != NULL) {
if (ui_base_border_handle == ui_nodes_hwnd || ui_base_border_handle == ui_view2d_hwnd) {
if (ui_base_border_started == BORDER_SIDE_LEFT) {
g_config->layout->buffer[LAYOUT_SIZE_NODES_W] -= math_floor(mouse_movement_x);
if (g_config->layout->buffer[LAYOUT_SIZE_NODES_W] < 32) {
g_config->layout->buffer[LAYOUT_SIZE_NODES_W] = 32;
}
else if (g_config->layout->buffer[LAYOUT_SIZE_NODES_W] > iron_window_width() * 0.7) {
g_config->layout->buffer[LAYOUT_SIZE_NODES_W] = math_floor(iron_window_width() * 0.7);
}
}
else { // UINodes / UIView2D ratio
g_config->layout->buffer[LAYOUT_SIZE_NODES_H] -= math_floor(mouse_movement_y);
if (g_config->layout->buffer[LAYOUT_SIZE_NODES_H] < 32) {
g_config->layout->buffer[LAYOUT_SIZE_NODES_H] = 32;
}
else if (g_config->layout->buffer[LAYOUT_SIZE_NODES_H] > sys_h() * 0.95) {
g_config->layout->buffer[LAYOUT_SIZE_NODES_H] = math_floor(sys_h() * 0.95);
}
}
}
else if (ui_base_border_handle == ui_base_hwnds->buffer[TAB_AREA_STATUS]) {
i32 my = math_floor(mouse_movement_y);
if (g_config->layout->buffer[LAYOUT_SIZE_STATUS_H] - my >= ui_statusbar_default_h * g_config->window_scale &&
g_config->layout->buffer[LAYOUT_SIZE_STATUS_H] - my < iron_window_height() * 0.7) {
g_config->layout->buffer[LAYOUT_SIZE_STATUS_H] -= my;
}
}
else { // Sidebar
if (ui_base_border_started == BORDER_SIDE_LEFT) {
g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] -= math_floor(mouse_movement_x);
if (g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] < ui_sidebar_w_mini) {
g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] = ui_sidebar_w_mini;
}
else if (g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] > iron_window_width() - ui_sidebar_w_mini * 2) {
g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] = iron_window_width() - ui_sidebar_w_mini * 2;
}
if (ui_nodes_show || ui_base_show) {
// Scale down node view if viewport is already at minimal size
if (g_config->layout->buffer[LAYOUT_SIZE_NODES_W] + g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] + ui_sidebar_w_mini >
iron_window_width()) {
g_config->layout->buffer[LAYOUT_SIZE_NODES_W] =
iron_window_width() - g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] - ui_sidebar_w_mini;
}
}
}
else {
i32 my = math_floor(mouse_movement_y);
if (ui_base_border_handle == ui_base_hwnds->buffer[TAB_AREA_SIDEBAR1] && ui_base_border_started == BORDER_SIDE_TOP) {
if (g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_H0] + my > 32 && g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_H1] - my > 32) {
g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_H0] += my;
g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_H1] -= my;
}
}
}
}
base_resize();
}
}