Files
armorpaint/paint/sources/ui/ui_statusbar.c
T
2026-06-08 15:35:04 +02:00

50 lines
1.8 KiB
C

#include "../global.h"
i32 ui_statusbar_last_tab = 0;
void ui_statusbar_init() {}
i32 ui_statusbar_width() {
return iron_window_width() - g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W];
}
void ui_statusbar_render_ui() {
i32 statush = g_config->layout->buffer[LAYOUT_SIZE_STATUS_H];
if (ui_window(ui_base_hwnds->buffer[TAB_AREA_STATUS], 0, iron_window_height() - statush, ui_statusbar_width(), statush, false)) {
g_ui->_y += 2;
draw_set_color(g_theme->SEPARATOR_COL);
draw_filled_rect(0, 0, 1, g_ui->_window_h);
draw_filled_rect(g_ui->_window_w - 1, 0, 1, g_ui->_window_h);
tab_draw_t_array_t *hwnd_draws = ui_base_hwnd_tabs->buffer[TAB_AREA_STATUS];
ui_handle_t *htab = ui_base_htabs->buffer[TAB_AREA_STATUS];
for (i32 i = 0; i < hwnd_draws->length; ++i) {
tab_draw_t *draw = hwnd_draws->buffer[i];
draw->f(htab);
}
if (ui_base_htabs->buffer[TAB_AREA_STATUS]->i < hwnd_draws->length) {
ui_statusbar_last_tab = ui_base_htabs->buffer[TAB_AREA_STATUS]->i;
}
if (!g_config->touch_ui) {
bool minimized = g_config->layout->buffer[LAYOUT_SIZE_STATUS_H] <= (ui_statusbar_default_h * g_config->window_scale);
if (ui_tab(ui_base_htabs->buffer[TAB_AREA_STATUS], minimized ? "<" : ">", false, -2, false)) {
ui_base_htabs->buffer[TAB_AREA_STATUS]->i = ui_statusbar_last_tab;
g_config->layout_tabs->buffer[TAB_AREA_STATUS] = ui_statusbar_last_tab;
}
}
bool minimized = statush <= ui_statusbar_default_h * g_config->window_scale;
if (htab->changed && (htab->i == g_context->last_status_position || minimized)) {
ui_base_toggle_browser();
}
g_context->last_status_position = htab->i;
}
}
void ui_statusbar_draw_version_tab(ui_handle_t *htab) {
if (!g_config->touch_ui) {
g_ui->enabled = false;
ui_tab(ui_base_htabs->buffer[TAB_AREA_STATUS], manifest_version, false, -1, false);
g_ui->enabled = true;
}
}