Floating toolbar
This commit is contained in:
@@ -219,7 +219,7 @@ function base_h(): i32 {
|
||||
res -= math_floor(ui_header_default_h * 2 * config_raw.window_scale) + statush;
|
||||
|
||||
if (config_raw.layout[layout_size_t.HEADER] == 0) {
|
||||
res += ui_header_h;
|
||||
res += ui_header_h * 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -280,9 +280,9 @@ function base_resize() {
|
||||
|
||||
if (ui_base_show) {
|
||||
base_appx = ui_toolbar_w;
|
||||
base_appy = ui_header_h * 2;
|
||||
if (config_raw.layout[layout_size_t.HEADER] == 0) {
|
||||
base_appy -= ui_header_h;
|
||||
base_appy = 0;
|
||||
if (config_raw.layout[layout_size_t.HEADER] == 1) {
|
||||
base_appy = ui_header_h * 2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -147,6 +147,7 @@ function box_preferences_show() {
|
||||
box_preferences_files_keymap = null;
|
||||
make_material_parse_mesh_material();
|
||||
make_material_parse_paint_material();
|
||||
ui_base_set_viewport_col(ui.ops.theme.VIEWPORT_COL);
|
||||
}, ui);
|
||||
}
|
||||
if (ui_menu_button(ui, tr("Import..."))) {
|
||||
|
||||
@@ -15,14 +15,16 @@ function ui_menubar_init() {
|
||||
function ui_menubar_render_ui() {
|
||||
let ui: ui_t = ui_base_ui;
|
||||
|
||||
let item_w: i32 = ui_toolbar_get_w();
|
||||
let panel_x: i32 = app_x();
|
||||
|
||||
///if (is_paint || is_sculpt)
|
||||
let panelx: i32 = app_x() - ui_toolbar_w;
|
||||
///end
|
||||
///if is_lab
|
||||
let panelx: i32 = app_x();
|
||||
if (config_raw.layout[layout_size_t.HEADER] == 1) {
|
||||
panel_x = app_x() - item_w;
|
||||
}
|
||||
///end
|
||||
|
||||
if (ui_window(ui_menubar_menu_handle, panelx, 0, ui_menubar_w, ui_header_h)) {
|
||||
if (ui_window(ui_menubar_menu_handle, panel_x, 0, ui_menubar_w, ui_header_h)) {
|
||||
ui._x += 1; // Prevent "File" button highlight on startup
|
||||
|
||||
ui_begin_menu();
|
||||
@@ -30,7 +32,7 @@ function ui_menubar_render_ui() {
|
||||
if (config_raw.touch_ui) {
|
||||
|
||||
///if (is_paint || is_sculpt)
|
||||
ui._w = ui_toolbar_w;
|
||||
ui._w = item_w;
|
||||
///end
|
||||
///if is_lab
|
||||
ui._w = 36;
|
||||
@@ -109,16 +111,28 @@ function ui_menubar_render_ui() {
|
||||
ui_end_menu();
|
||||
}
|
||||
|
||||
if (config_raw.layout[layout_size_t.HEADER] == 1) {
|
||||
// Non-floating header
|
||||
ui_menubar_draw_tab_header();
|
||||
}
|
||||
}
|
||||
|
||||
function ui_menubar_draw_tab_header() {
|
||||
let ui: ui_t = ui_base_ui;
|
||||
|
||||
let item_w: i32 = ui_toolbar_get_w();
|
||||
let panel_x: i32 = app_x();
|
||||
|
||||
let nodesw: i32 = (ui_nodes_show || ui_view2d_show) ? config_raw.layout[layout_size_t.NODES_W] : 0;
|
||||
///if (is_paint || is_sculpt)
|
||||
let ww: i32 = sys_width() - config_raw.layout[layout_size_t.SIDEBAR_W] - ui_menubar_w - nodesw;
|
||||
panelx = (app_x() - ui_toolbar_w) + ui_menubar_w;
|
||||
panel_x = (app_x() - item_w) + ui_menubar_w;
|
||||
///else
|
||||
let ww: i32 = sys_width() - ui_menubar_w - nodesw;
|
||||
panelx = (app_x()) + ui_menubar_w;
|
||||
panel_x = (app_x()) + ui_menubar_w;
|
||||
///end
|
||||
|
||||
if (ui_window(ui_menubar_workspace_handle, panelx, 0, ww, ui_header_h)) {
|
||||
if (ui_window(ui_menubar_workspace_handle, panel_x, 0, ww, ui_header_h)) {
|
||||
|
||||
if (!config_raw.touch_ui) {
|
||||
ui_tab(ui_header_worktab, tr("3D View"));
|
||||
|
||||
@@ -68,18 +68,39 @@ function ui_toolbar_draw_tool(i: i32, ui: ui_t, img: image_t, icon_accent: i32,
|
||||
ui._y += 2;
|
||||
}
|
||||
|
||||
function ui_toolbar_get_w(): i32 {
|
||||
let ui: ui_t = ui_base_ui;
|
||||
|
||||
let w: i32 = 0;
|
||||
if (config_raw.touch_ui) {
|
||||
w = ui_toolbar_default_w + 6;
|
||||
}
|
||||
else {
|
||||
w = ui_toolbar_default_w;
|
||||
}
|
||||
w = math_floor(w * ui_SCALE(ui));
|
||||
return w;
|
||||
}
|
||||
|
||||
function ui_toolbar_render_ui() {
|
||||
let ui: ui_t = ui_base_ui;
|
||||
|
||||
if (config_raw.touch_ui) {
|
||||
ui_toolbar_w = ui_toolbar_default_w + 6;
|
||||
}
|
||||
else {
|
||||
ui_toolbar_w = ui_toolbar_default_w;
|
||||
}
|
||||
ui_toolbar_w = math_floor(ui_toolbar_w * ui_SCALE(ui));
|
||||
ui_toolbar_w = ui_toolbar_get_w();
|
||||
|
||||
if (ui_window(ui_toolbar_handle, 0, ui_header_h, ui_toolbar_w, sys_height() - ui_header_h)) {
|
||||
let x: i32 = 0;
|
||||
let y: i32 = ui_header_h;
|
||||
let h: i32 = sys_height() - ui_header_h;
|
||||
let _WINDOW_BG_COL: i32 = ui.ops.theme.WINDOW_BG_COL;
|
||||
|
||||
if (config_raw.layout[layout_size_t.HEADER] == 0) {
|
||||
// Header is off -> floating toolbar
|
||||
x += 5 * ui_SCALE(ui);
|
||||
y += 5 * ui_SCALE(ui);
|
||||
h = ui_toolbar_tool_names.length * (ui_toolbar_w + 2);
|
||||
ui.ops.theme.WINDOW_BG_COL = ui.ops.theme.SEPARATOR_COL;
|
||||
}
|
||||
|
||||
if (ui_window(ui_toolbar_handle, x, y, ui_toolbar_w, h)) {
|
||||
ui._y -= 4 * ui_SCALE(ui);
|
||||
|
||||
ui.image_scroll_align = false;
|
||||
@@ -187,6 +208,12 @@ function ui_toolbar_render_ui() {
|
||||
ui.image_scroll_align = true;
|
||||
}
|
||||
|
||||
if (config_raw.layout[layout_size_t.HEADER] == 0) {
|
||||
// Header is off -> floating toolbar
|
||||
ui_toolbar_w = 0;
|
||||
ui.ops.theme.WINDOW_BG_COL = _WINDOW_BG_COL;
|
||||
}
|
||||
|
||||
if (config_raw.touch_ui) {
|
||||
// Hide scrollbar
|
||||
let _SCROLL_W: i32 = ui.ops.theme.SCROLL_W;
|
||||
|
||||
Reference in New Issue
Block a user