diff --git a/paint/sources/camera.c b/paint/sources/camera.c index a02dc94d..9c1baa57 100644 --- a/paint/sources/camera.c +++ b/paint/sources/camera.c @@ -43,7 +43,7 @@ static void camera_orbit_action(bool modif, bool default_keymap, bool ruler) { static bool pivot_valid = false; bool rotate_started = - operator_shortcut(any_map_get(g_keymap, "action_rotate"), SHORTCUT_TYPE_STARTED) || (mouse_started("right") && !modif && default_keymap); + keymap_shortcut(any_map_get(g_keymap, "action_rotate"), SHORTCUT_TYPE_STARTED) || (mouse_started("right") && !modif && default_keymap); if (rotate_started) { util_render_pick_pos_nor_tex(); pivot_valid = math_abs(g_context->posx_picked) < 50 && math_abs(g_context->posy_picked) < 50 && math_abs(g_context->posz_picked) < 50; @@ -106,7 +106,7 @@ static void camera_rotate_action(bool modif, bool default_keymap, bool ruler) { static bool pivot_valid = false; bool rotate_started = - operator_shortcut(any_map_get(g_keymap, "action_rotate"), SHORTCUT_TYPE_STARTED) || (mouse_started("right") && !modif && default_keymap); + keymap_shortcut(any_map_get(g_keymap, "action_rotate"), SHORTCUT_TYPE_STARTED) || (mouse_started("right") && !modif && default_keymap); if (rotate_started) { util_render_pick_pos_nor_tex(); pivot_valid = math_abs(g_context->posx_picked) < 50 && math_abs(g_context->posy_picked) < 50 && math_abs(g_context->posz_picked) < 50; @@ -175,7 +175,7 @@ f32 camera_get_zoom_delta() { static void camera_zoom_action(bool modif_key) { camera_object_t *camera = scene_camera; - if (operator_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_DOWN)) { + if (keymap_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_DOWN)) { camera_redraws = 2; f32 f = camera_get_zoom_delta() / (float)(150.0 * (1.0 / (camera_distance() / 2.0))); f *= camera_get_zoom_speed(); @@ -261,7 +261,7 @@ i32 camera_index() { void camera_pan_action(bool modif, bool default_keymap) { camera_object_t *camera = scene_camera; - if (operator_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_DOWN) || (mouse_down("middle") && !modif && default_keymap)) { + if (keymap_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_DOWN) || (mouse_down("middle") && !modif && default_keymap)) { camera_redraws = 2; f32 f = 150 * (1.0 / (float)(camera_distance() / 4.0)); vec4_t look = vec4_mult(transform_look(camera->base->transform), mouse_movement_y / (float)f * g_config->camera_pan_speed); @@ -306,17 +306,17 @@ void camera_update(void *_) { // Restrict the rotation to the horizontal axis bool ruler = keyboard_down(any_map_get(g_keymap, "brush_ruler")); - if (operator_shortcut(any_map_get(g_keymap, "action_rotate"), SHORTCUT_TYPE_STARTED) || - operator_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_STARTED) || - operator_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_STARTED) || - operator_shortcut(any_map_get(g_keymap, "rotate_envmap"), SHORTCUT_TYPE_STARTED) || (mouse_started("right") && (!modif || ruler)) || + if (keymap_shortcut(any_map_get(g_keymap, "action_rotate"), SHORTCUT_TYPE_STARTED) || + keymap_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_STARTED) || + keymap_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_STARTED) || + keymap_shortcut(any_map_get(g_keymap, "rotate_envmap"), SHORTCUT_TYPE_STARTED) || (mouse_started("right") && (!modif || ruler)) || (mouse_started("middle") && !modif) || (mouse_wheel_delta != 0 && !modif_key)) { camera_controls_down = true; } - else if (!operator_shortcut(any_map_get(g_keymap, "action_rotate"), SHORTCUT_TYPE_DOWN) && - !operator_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_DOWN) && - !operator_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_DOWN) && - !operator_shortcut(any_map_get(g_keymap, "rotate_envmap"), SHORTCUT_TYPE_DOWN) && !(mouse_down("right") && !modif) && + else if (!keymap_shortcut(any_map_get(g_keymap, "action_rotate"), SHORTCUT_TYPE_DOWN) && + !keymap_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_DOWN) && + !keymap_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_DOWN) && + !keymap_shortcut(any_map_get(g_keymap, "rotate_envmap"), SHORTCUT_TYPE_DOWN) && !(mouse_down("right") && !modif) && !(mouse_down("middle") && !modif) && (mouse_wheel_delta == 0 && !modif_key)) { camera_controls_down = false; } @@ -328,7 +328,7 @@ void camera_update(void *_) { camera_controls_t controls = g_context->camera_controls; bool rotate_down = - operator_shortcut(any_map_get(g_keymap, "action_rotate"), SHORTCUT_TYPE_DOWN) || (mouse_down("right") && (!modif || ruler) && default_keymap); + keymap_shortcut(any_map_get(g_keymap, "action_rotate"), SHORTCUT_TYPE_DOWN) || (mouse_down("right") && (!modif || ruler) && default_keymap); if (controls == CAMERA_CONTROLS_ORBIT && rotate_down) { camera_orbit_action(modif, default_keymap, ruler); @@ -345,11 +345,11 @@ void camera_update(void *_) { camera_fly_action(modif_key); } - if (operator_shortcut(any_map_get(g_keymap, "view_pivot_center"), SHORTCUT_TYPE_STARTED)) { + if (keymap_shortcut(any_map_get(g_keymap, "view_pivot_center"), SHORTCUT_TYPE_STARTED)) { camera_set_pivot_center_to_mouse(); } - if (operator_shortcut(any_map_get(g_keymap, "rotate_envmap"), SHORTCUT_TYPE_DOWN)) { + if (keymap_shortcut(any_map_get(g_keymap, "rotate_envmap"), SHORTCUT_TYPE_DOWN)) { camera_redraws = 2; g_context->envmap_angle -= mouse_movement_x / 100.0; } diff --git a/paint/sources/context.c b/paint/sources/context.c index 13d4a15d..23a142c8 100644 --- a/paint/sources/context.c +++ b/paint/sources/context.c @@ -418,18 +418,18 @@ bool context_is_decal() { } bool context_is_decal_mask() { - return context_is_decal() && operator_shortcut(any_map_get(g_keymap, "decal_mask"), SHORTCUT_TYPE_DOWN); + return context_is_decal() && keymap_shortcut(any_map_get(g_keymap, "decal_mask"), SHORTCUT_TYPE_DOWN); } bool context_is_brush_camera_align() { bool brush = g_context->tool == TOOL_TYPE_BRUSH || g_context->tool == TOOL_TYPE_ERASER; return (context_is_decal() || brush) && - (g_context->brush_camera_align || operator_shortcut(any_map_get(g_keymap, "brush_camera_align"), SHORTCUT_TYPE_DOWN)); + (g_context->brush_camera_align || keymap_shortcut(any_map_get(g_keymap, "brush_camera_align"), SHORTCUT_TYPE_DOWN)); } bool context_is_decal_mask_paint() { return context_is_decal() && - operator_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN); + keymap_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN); } bool context_is_decal_mask_paint_pass() { diff --git a/paint/sources/functions.h b/paint/sources/functions.h index 30688650..065423a1 100644 --- a/paint/sources/functions.h +++ b/paint/sources/functions.h @@ -91,10 +91,7 @@ slot_sound_t *slot_sound_create(char *name, sound_t *sound, char *fi scene_t *startup_get_scene(void); buffer_t *util_encode_scene(scene_t *raw); buffer_t *util_encode_project(project_t *raw); -void operator_register(char *name, void (*call)(void)); -void operator_run(char *name); -void operator_update(); -bool operator_shortcut(char *s, shortcut_type_t type); +bool keymap_shortcut(char *s, shortcut_type_t type); void render_compass(); void render_compass_update(); void render_envsphere(); @@ -194,7 +191,6 @@ void base_redraw_ui(); string_array_t *base_get_viewport_modes(); string_array_t *base_get_viewport_mode_shortcuts(); void ui_base_init_on_next_frame(void *_); -void ui_base_view_top(); void ui_base_on_border_hover(ui_handle_t *handle, i32 side); void ui_base_on_tab_drop(ui_handle_t *to, i32 to_position, ui_handle_t *from, i32 from_position); bool ui_base_picker_button(); diff --git a/paint/sources/globals.h b/paint/sources/globals.h index f038452f..e9b899b4 100644 --- a/paint/sources/globals.h +++ b/paint/sources/globals.h @@ -21,7 +21,6 @@ ui_t *g_ui; draw_font_t *g_font; ui_theme_t *g_theme; any_map_t *g_plugins; -any_map_t *g_operators; any_map_t *ui_children; any_map_t *ui_nodes_custom_buttons; diff --git a/paint/sources/keymap.c b/paint/sources/keymap.c index b31d10f3..89825a5a 100644 --- a/paint/sources/keymap.c +++ b/paint/sources/keymap.c @@ -110,3 +110,47 @@ any_map_t *keymap_get_default() { any_map_set(keymap, "swap_brush_eraser", ""); return keymap; } + +bool keymap_shortcut(char *s, shortcut_type_t type) { + if (string_equals(s, "") || g_config->workspace == WORKSPACE_PLAYER) { + return false; + } + bool shift = string_index_of(s, "shift") >= 0; + bool ctrl = string_index_of(s, "ctrl") >= 0; + bool alt = string_index_of(s, "alt") >= 0; + bool flag = shift == keyboard_down("shift") && ctrl == keyboard_down("control") && alt == keyboard_down("alt"); + + if (string_index_of(s, "+") > 0) { + s = s + string_last_index_of(s, "+") + 1; + if (string_equals(s, "number")) { + return flag; + } + } + else if (shift || ctrl || alt) { + return flag; + } + + bool key = false; + if (string_equals(s, "left") || string_equals(s, "right") || string_equals(s, "middle")) { + if (type == SHORTCUT_TYPE_DOWN) { + key = mouse_down(s); + } + else { + key = mouse_started(s); + } + } + else if (type == SHORTCUT_TYPE_REPEAT) { + key = keyboard_repeat(s); + } + else if (type == SHORTCUT_TYPE_DOWN) { + key = keyboard_down(s); + } + else if (type == SHORTCUT_TYPE_RELEASED) { + key = keyboard_released(s); + } + else { + key = keyboard_started(s); + } + + return flag && key; +} diff --git a/paint/sources/main.c b/paint/sources/main.c index 80f6156d..0233b150 100644 --- a/paint/sources/main.c +++ b/paint/sources/main.c @@ -213,7 +213,6 @@ #include "node_shader.c" #include "nodes_brush.c" #include "nodes_material.c" -#include "operator.c" #include "parser_logic.c" #include "parser_material.c" #include "pipes.c" @@ -241,7 +240,6 @@ void _kickstart() { _render_path_cached_shader_contexts = any_map_create(); ui_children = any_map_create(); ui_nodes_custom_buttons = any_map_create(); - g_operators = any_map_create(); box_export_htab = ui_handle_create(); box_export_mesh_handle = ui_handle_create(); box_export_hpreset = ui_handle_create(); diff --git a/paint/sources/nodes_brush/input_node.c b/paint/sources/nodes_brush/input_node.c index 6753c55e..0c51e44d 100644 --- a/paint/sources/nodes_brush/input_node.c +++ b/paint/sources/nodes_brush/input_node.c @@ -17,7 +17,7 @@ bool input_node_registered = false; vec4_t input_node_coords = (vec4_t){0.0, 0.0, 0.0, 1.0}; static void input_node_grid_snap() { - bool snap_shortcut = operator_shortcut(any_map_get(g_keymap, "grid_snap"), SHORTCUT_TYPE_DOWN); + bool snap_shortcut = keymap_shortcut(any_map_get(g_keymap, "grid_snap"), SHORTCUT_TYPE_DOWN); bool in_2d = context_in_2d_view(VIEW_2D_TYPE_LAYER); bool in_3d = context_in_3d_view(); @@ -92,8 +92,8 @@ void input_node_update(float_node_t *self) { bool decal_mask = context_is_decal_mask_paint(); char *ruler_paint = string_tmp("%s+%s", any_map_get(g_keymap, "brush_ruler"), any_map_get(g_keymap, "action_paint")); - bool lazy_paint = g_context->brush_lazy_radius > 0 && (operator_shortcut(any_map_get(g_keymap, "action_paint"), SHORTCUT_TYPE_DOWN) || - operator_shortcut(ruler_paint, SHORTCUT_TYPE_DOWN) || decal_mask); + bool lazy_paint = g_context->brush_lazy_radius > 0 && (keymap_shortcut(any_map_get(g_keymap, "action_paint"), SHORTCUT_TYPE_DOWN) || + keymap_shortcut(ruler_paint, SHORTCUT_TYPE_DOWN) || decal_mask); f32 paint_x = mouse_view_x() / (float)sys_w(); f32 paint_y = mouse_view_y() / (float)sys_h(); @@ -112,7 +112,7 @@ void input_node_update(float_node_t *self) { input_node_start_y = pen_view_y() / (float)sys_h(); } - if (operator_shortcut(ruler_paint, SHORTCUT_TYPE_DOWN)) { + if (keymap_shortcut(ruler_paint, SHORTCUT_TYPE_DOWN)) { if (input_node_lock_x) { paint_x = input_node_start_x; } diff --git a/paint/sources/operator.c b/paint/sources/operator.c deleted file mode 100644 index e3bca3b1..00000000 --- a/paint/sources/operator.c +++ /dev/null @@ -1,71 +0,0 @@ - -#include "global.h" - -void operator_register(char *name, void (*call)(void)) { - any_map_set(g_operators, name, call); -} - -void operator_run(char *name) { - if (any_map_get(g_operators, name) != NULL) { - void (*cb)(void) = any_map_get(g_operators, name); - cb(); - } -} - -void operator_update() { - if (mouse_started_any() || keyboard_started_any()) { - string_array_t *keys = map_keys(g_keymap); - for (i32 i = 0; i < keys->length; ++i) { - char *op = keys->buffer[i]; - if (operator_shortcut(any_map_get(g_keymap, op), SHORTCUT_TYPE_STARTED)) { - operator_run(op); - } - } - array_free(keys); - free(keys); - } -} - -bool operator_shortcut(char *s, shortcut_type_t type) { - if (string_equals(s, "") || g_config->workspace == WORKSPACE_PLAYER) { - return false; - } - bool shift = string_index_of(s, "shift") >= 0; - bool ctrl = string_index_of(s, "ctrl") >= 0; - bool alt = string_index_of(s, "alt") >= 0; - bool flag = shift == keyboard_down("shift") && ctrl == keyboard_down("control") && alt == keyboard_down("alt"); - - if (string_index_of(s, "+") > 0) { - s = s + string_last_index_of(s, "+") + 1; - if (string_equals(s, "number")) { - return flag; - } - } - else if (shift || ctrl || alt) { - return flag; - } - - bool key = false; - if (string_equals(s, "left") || string_equals(s, "right") || string_equals(s, "middle")) { - if (type == SHORTCUT_TYPE_DOWN) { - key = mouse_down(s); - } - else { - key = mouse_started(s); - } - } - else if (type == SHORTCUT_TYPE_REPEAT) { - key = keyboard_repeat(s); - } - else if (type == SHORTCUT_TYPE_DOWN) { - key = keyboard_down(s); - } - else if (type == SHORTCUT_TYPE_RELEASED) { - key = keyboard_released(s); - } - else { - key = keyboard_started(s); - } - - return flag && key; -} diff --git a/paint/sources/render/render_gizmo.c b/paint/sources/render/render_gizmo.c index bbafc0da..f74f97f5 100644 --- a/paint/sources/render/render_gizmo.c +++ b/paint/sources/render/render_gizmo.c @@ -12,7 +12,7 @@ void render_gizmo_update() { bool is_decal = base_is_decal_layer(); object_t *gizmo = g_context->gizmo; - bool hide = operator_shortcut(any_map_get(g_keymap, "stencil_hide"), SHORTCUT_TYPE_DOWN); + bool hide = keymap_shortcut(any_map_get(g_keymap, "stencil_hide"), SHORTCUT_TYPE_DOWN); gizmo->visible = (is_object || is_decal) && !hide && g_config->workspace != WORKSPACE_PLAYER; if (!gizmo->visible) { return; @@ -347,7 +347,7 @@ void render_gizmo_update() { } gizmo_drag_raw = g_context->gizmo_drag; - if (operator_shortcut(any_map_get(g_keymap, "grid_snap"), SHORTCUT_TYPE_DOWN) || g_config->grid_snap) { + if (keymap_shortcut(any_map_get(g_keymap, "grid_snap"), SHORTCUT_TYPE_DOWN) || g_config->grid_snap) { bool is_rotate = g_context->rotate_x || g_context->rotate_y || g_context->rotate_z; f32 step = is_rotate ? IRON_PI / 4.0 : 0.5; // 45 degrees / 0.5 units g_context->gizmo_drag = math_round(g_context->gizmo_drag / step) * step; diff --git a/paint/sources/render/render_path_base.c b/paint/sources/render/render_path_base.c index 09fbb9ee..4af19247 100644 --- a/paint/sources/render/render_path_base.c +++ b/paint/sources/render/render_path_base.c @@ -453,7 +453,7 @@ void render_path_base_draw_gbuffer() { render_path_draw_meshes("depth"); } - bool hide = operator_shortcut(any_map_get(g_keymap, "stencil_hide"), SHORTCUT_TYPE_DOWN) || keyboard_down("control"); + bool hide = keymap_shortcut(any_map_get(g_keymap, "stencil_hide"), SHORTCUT_TYPE_DOWN) || keyboard_down("control"); bool is_decal = base_is_decal_layer(); if (is_decal && !hide) { line_draw_color = 0xff000000; diff --git a/paint/sources/render/render_path_paint.c b/paint/sources/render/render_path_paint.c index 8df26109..3461c8ef 100644 --- a/paint/sources/render/render_path_paint.c +++ b/paint/sources/render/render_path_paint.c @@ -625,7 +625,7 @@ void render_path_paint_commands_live_brush() { i32 _pdirty = g_context->pdirty; g_context->last_paint_vec_x = g_context->paint_vec.x; g_context->last_paint_vec_y = g_context->paint_vec.y; - if (operator_shortcut(any_map_get(g_keymap, "brush_ruler"), SHORTCUT_TYPE_STARTED)) { + if (keymap_shortcut(any_map_get(g_keymap, "brush_ruler"), SHORTCUT_TYPE_STARTED)) { g_context->last_paint_vec_x = g_context->last_paint_x; g_context->last_paint_vec_y = g_context->last_paint_y; } diff --git a/paint/sources/ui/tab_layers.c b/paint/sources/ui/tab_layers.c index 2d68a8f4..86007e0a 100644 --- a/paint/sources/ui/tab_layers.c +++ b/paint/sources/ui/tab_layers.c @@ -135,7 +135,7 @@ ui_state_t tab_layers_draw_layer_icon(slot_layer_t *l, i32 i, f32 uix, f32 uiy, // Draw layer numbers when selecting a layer via keyboard shortcut bool is_typing = g_ui->is_typing; if (!is_typing) { - if (i < 9 && operator_shortcut(any_map_get(g_keymap, "select_layer"), SHORTCUT_TYPE_DOWN)) { + if (i < 9 && keymap_shortcut(any_map_get(g_keymap, "select_layer"), SHORTCUT_TYPE_DOWN)) { char *number = i32_to_string(i + 1); i32 width = draw_string_width(g_font, g_ui->font_size, number) + 10; i32 height = draw_font_height(g_font, g_ui->font_size); diff --git a/paint/sources/ui/tab_materials.c b/paint/sources/ui/tab_materials.c index 1fd9ecf4..d11234db 100644 --- a/paint/sources/ui/tab_materials.c +++ b/paint/sources/ui/tab_materials.c @@ -250,7 +250,7 @@ void tab_materials_draw_slots(bool mini) { // Draw material numbers when selecting a material via keyboard shortcut bool is_typing = g_ui->is_typing; if (!is_typing) { - if (i < 9 && operator_shortcut(any_map_get(g_keymap, "select_material"), SHORTCUT_TYPE_DOWN)) { + if (i < 9 && keymap_shortcut(any_map_get(g_keymap, "select_material"), SHORTCUT_TYPE_DOWN)) { char *number = i32_to_string(i + 1); i32 width = draw_string_width(g_font, g_ui->font_size, number) + 10; i32 height = draw_font_height(g_font, g_ui->font_size); diff --git a/paint/sources/ui/ui_base.c b/paint/sources/ui/ui_base.c index 612b5a66..63537433 100644 --- a/paint/sources/ui/ui_base.c +++ b/paint/sources/ui/ui_base.c @@ -8,16 +8,6 @@ void ui_base_init_on_next_frame(void *_) { layers_init(); } -void ui_base_view_top() { - bool is_typing = g_ui->is_typing; - - if (context_in_paint_area() && !is_typing) { - if (mouse_view_x() < sys_w()) { - viewport_set_view(0, 0, 1, 0, 0, 0); - } - } -} - void ui_base_on_border_hover(ui_handle_t *handle, i32 side) { if (!base_ui_enabled) { return; @@ -162,8 +152,6 @@ void ui_base_init() { if (string_equals(g_project->_->filepath, "")) { sys_notify_on_next_frame(&ui_base_init_on_next_frame, NULL); } - - operator_register("view_top", ui_base_view_top); } void ui_base_menu_draw_viewport_mode() { @@ -228,7 +216,6 @@ void ui_base_update(void *_) { util_shortcut_viewport(); util_resize_borders(); util_particle_update(); - operator_update(); } string_array_t *keys = map_keys(g_plugins); diff --git a/paint/sources/ui/ui_nodes.c b/paint/sources/ui/ui_nodes.c index 02b4d3b3..d66037c0 100644 --- a/paint/sources/ui/ui_nodes.c +++ b/paint/sources/ui/ui_nodes.c @@ -436,12 +436,12 @@ ui_canvas_control_t *ui_nodes_get_canvas_control(bool controls_down, bool is_nod iron_mouse_set_position(math_floor(g_ui->input_x), math_floor(g_ui->input_y)); } } - if (operator_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_STARTED) || - operator_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_STARTED) || g_ui->input_started_r || g_ui->input_wheel_delta != 0.0) { + if (keymap_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_STARTED) || + keymap_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_STARTED) || g_ui->input_started_r || g_ui->input_wheel_delta != 0.0) { controls_down = true; } - else if (!operator_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_DOWN) && - !operator_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_DOWN) && !g_ui->input_down_r && g_ui->input_wheel_delta == 0.0) { + else if (!keymap_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_DOWN) && + !keymap_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_DOWN) && !g_ui->input_down_r && g_ui->input_wheel_delta == 0.0) { controls_down = false; } @@ -450,8 +450,8 @@ ui_canvas_control_t *ui_nodes_get_canvas_control(bool controls_down, bool is_nod return cc; } - bool pan = g_ui->input_down_r || operator_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_DOWN); - f32 zoom_delta = operator_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_DOWN) ? ui_nodes_get_zoom_delta() / 100.0 : 0.0; + bool pan = g_ui->input_down_r || keymap_shortcut(any_map_get(g_keymap, "action_pan"), SHORTCUT_TYPE_DOWN); + f32 zoom_delta = keymap_shortcut(any_map_get(g_keymap, "action_zoom"), SHORTCUT_TYPE_DOWN) ? ui_nodes_get_zoom_delta() / 100.0 : 0.0; ui_canvas_control_t *control = ALLOC_INIT(ui_canvas_control_t, {.pan_x = pan ? g_ui->input_dx : 0.0, .pan_y = pan ? g_ui->input_dy : 0.0, .zoom = g_ui->input_wheel_delta != 0.0 ? -g_ui->input_wheel_delta / 10 : zoom_delta, @@ -757,7 +757,7 @@ void ui_nodes_update(void *_) { } // Node search popup - if (operator_shortcut(any_map_get(g_keymap, "node_search"), SHORTCUT_TYPE_STARTED)) { + if (keymap_shortcut(any_map_get(g_keymap, "node_search"), SHORTCUT_TYPE_STARTED)) { ui_nodes_node_search(-1, -1, NULL); } if (ui_nodes_node_search_spawn != NULL) { @@ -766,13 +766,13 @@ void ui_nodes_update(void *_) { ui_nodes_node_search_spawn = NULL; } - if (operator_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) { + if (keymap_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) { nodes->pan_x = 0.0; nodes->pan_y = 0.0; nodes->zoom = 1.0; } - if (operator_shortcut(any_map_get(g_keymap, "node_overview"), SHORTCUT_TYPE_STARTED)) { + if (keymap_shortcut(any_map_get(g_keymap, "node_overview"), SHORTCUT_TYPE_STARTED)) { nodes->zoom = nodes->zoom == 1.0 ? 0.2 : 1.0; nodes->uiw = ui_nodes_ww; nodes->uih = ui_nodes_wh; diff --git a/paint/sources/ui/ui_search.c b/paint/sources/ui/ui_search.c index 9ffc4599..cd40fd91 100644 --- a/paint/sources/ui/ui_search.c +++ b/paint/sources/ui/ui_search.c @@ -41,7 +41,7 @@ void ui_base_operator_search_menu_draw() { g_ui->changed = true; count = 6; // Trigger break } - operator_run(n); + // operator_run(n); } if (++count > 6) { break; diff --git a/paint/sources/ui/ui_view2d.c b/paint/sources/ui/ui_view2d.c index 839b141e..5f19a4d1 100644 --- a/paint/sources/ui/ui_view2d.c +++ b/paint/sources/ui/ui_view2d.c @@ -219,15 +219,15 @@ void ui_view2d_update(void *_) { bool decal_mask = context_is_decal_mask_paint(); bool set_clone_source = g_context->tool == TOOL_TYPE_CLONE && - operator_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "set_clone_source"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN); + keymap_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "set_clone_source"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN); if (!g_ui->input_down) { ui_view2d_layer_touched = false; } if (ui_view2d_type == VIEW_2D_TYPE_LAYER && !ui_view2d_text_input_hover && - (operator_shortcut(any_map_get(g_keymap, "action_paint"), SHORTCUT_TYPE_DOWN) || - operator_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "brush_ruler"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN) || + (keymap_shortcut(any_map_get(g_keymap, "action_paint"), SHORTCUT_TYPE_DOWN) || + keymap_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "brush_ruler"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN) || decal_mask || set_clone_source || g_config->brush_live)) { if (g_config->touch_ui) { @@ -296,7 +296,7 @@ void ui_view2d_update(void *_) { ui_view2d_pan_y = -tw / 2.0 - hh / 2.0 + border; } - if (operator_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) { + if (keymap_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) { ui_view2d_pan_x = 0.0; ui_view2d_pan_y = 0.0; ui_view2d_pan_scale = 1.0; diff --git a/paint/sources/util/util_brush.c b/paint/sources/util/util_brush.c index dfded5cf..bf8cc2ee 100644 --- a/paint/sources/util/util_brush.c +++ b/paint/sources/util/util_brush.c @@ -4,17 +4,17 @@ static bool util_brush_clone_source_down = false; void util_brush_update() { - bool paint_down = operator_shortcut(any_map_get(g_keymap, "action_paint"), SHORTCUT_TYPE_DOWN); + bool paint_down = keymap_shortcut(any_map_get(g_keymap, "action_paint"), SHORTCUT_TYPE_DOWN); bool set_clone_source = g_context->tool == TOOL_TYPE_CLONE && - (operator_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "set_clone_source"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN) || + (keymap_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "set_clone_source"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN) || (g_context->clone_set_source && (paint_down || pen_down("tip")))); bool decal_mask = context_is_decal_mask_paint(); bool down = paint_down || decal_mask || set_clone_source || - operator_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "brush_ruler"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN) || + keymap_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "brush_ruler"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN) || (pen_down("tip") && !keyboard_down("alt")); if (g_config->touch_ui) { @@ -55,7 +55,7 @@ void util_brush_update() { if (g_context->brush_time == 0 && !base_is_dragging && !base_is_resizing && g_ui->combo_selected_handle == NULL) { // Paint started // Draw line - if (operator_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "brush_ruler"), any_map_get(g_keymap, "action_paint")), + if (keymap_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "brush_ruler"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN)) { g_context->last_paint_vec_x = g_context->last_paint_x; g_context->last_paint_vec_y = g_context->last_paint_y; diff --git a/paint/sources/util/util_cursor.c b/paint/sources/util/util_cursor.c index 9d2987cc..43ddc891 100644 --- a/paint/sources/util/util_cursor.c +++ b/paint/sources/util/util_cursor.c @@ -20,7 +20,7 @@ void util_cursor_render(void *_) { if (g_context->brush_stencil_image != NULL && g_context->tool != TOOL_TYPE_PICKER && g_context->tool != TOOL_TYPE_COLORID) { rect_t *r = ui_base_get_brush_stencil_rect(); - if (!operator_shortcut(any_map_get(g_keymap, "stencil_hide"), SHORTCUT_TYPE_DOWN)) { + if (!keymap_shortcut(any_map_get(g_keymap, "stencil_hide"), SHORTCUT_TYPE_DOWN)) { draw_set_color(0x88ffffff); f32 angle = g_context->brush_stencil_angle; draw_set_transform(mat3_multmat(mat3_multmat(mat3_translation(0.5, 0.5), mat3_rotation(-angle)), mat3_translation(-0.5, -0.5))); @@ -28,7 +28,7 @@ void util_cursor_render(void *_) { draw_set_transform(mat3_nan()); draw_set_color(0xffffffff); } - bool transform = operator_shortcut(any_map_get(g_keymap, "stencil_transform"), SHORTCUT_TYPE_DOWN); + bool transform = keymap_shortcut(any_map_get(g_keymap, "stencil_transform"), SHORTCUT_TYPE_DOWN); if (transform) { // Outline draw_rect(r->x, r->y, r->w, r->h, 1.0); diff --git a/paint/sources/util/util_shortcut.c b/paint/sources/util/util_shortcut.c index 5c196dcc..1d6b4316 100644 --- a/paint/sources/util/util_shortcut.c +++ b/paint/sources/util/util_shortcut.c @@ -5,8 +5,8 @@ static f32 util_shortcut_undo_tap_time = 0.0; static f32 util_shortcut_redo_tap_time = 0.0; void util_shortcut_undo_redo() { - bool undo_pressed = operator_shortcut(any_map_get(g_keymap, "edit_undo"), SHORTCUT_TYPE_STARTED); - bool redo_pressed = operator_shortcut(any_map_get(g_keymap, "edit_redo"), SHORTCUT_TYPE_STARTED) || (keyboard_down("control") && keyboard_started("y")); + bool undo_pressed = keymap_shortcut(any_map_get(g_keymap, "edit_undo"), SHORTCUT_TYPE_STARTED); + bool redo_pressed = keymap_shortcut(any_map_get(g_keymap, "edit_redo"), SHORTCUT_TYPE_STARTED) || (keyboard_down("control") && keyboard_started("y")); // Two-finger tap to undo, three-finger tap to redo if (context_in_3d_view() && g_config->touch_ui) { @@ -36,39 +36,39 @@ void util_shortcut_undo_redo() { void util_shortcut_global() { if (!g_ui->is_typing) { - if (operator_shortcut(any_map_get(g_keymap, "toggle_node_editor"), SHORTCUT_TYPE_STARTED)) { + if (keymap_shortcut(any_map_get(g_keymap, "toggle_node_editor"), SHORTCUT_TYPE_STARTED)) { ui_nodes_canvas_type == CANVAS_TYPE_MATERIAL ? ui_base_show_material_nodes() : ui_base_show_brush_nodes(); } - else if (operator_shortcut(any_map_get(g_keymap, "toggle_browser"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "toggle_browser"), SHORTCUT_TYPE_STARTED)) { ui_base_toggle_browser(); } - else if (operator_shortcut(any_map_get(g_keymap, "toggle_2d_view"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "toggle_2d_view"), SHORTCUT_TYPE_STARTED)) { ui_base_show_2d_view(VIEW_2D_TYPE_LAYER); } } - if (operator_shortcut(any_map_get(g_keymap, "file_save_as"), SHORTCUT_TYPE_STARTED)) { + if (keymap_shortcut(any_map_get(g_keymap, "file_save_as"), SHORTCUT_TYPE_STARTED)) { project_save_as(false); } - else if (operator_shortcut(any_map_get(g_keymap, "file_save"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "file_save"), SHORTCUT_TYPE_STARTED)) { project_save(false); } - else if (operator_shortcut(any_map_get(g_keymap, "file_open"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "file_open"), SHORTCUT_TYPE_STARTED)) { project_open(); } - else if (operator_shortcut(any_map_get(g_keymap, "file_open_recent"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "file_open_recent"), SHORTCUT_TYPE_STARTED)) { box_projects_show(); } - else if (operator_shortcut(any_map_get(g_keymap, "file_reimport_mesh"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "file_reimport_mesh"), SHORTCUT_TYPE_STARTED)) { project_reimport_mesh(); } - else if (operator_shortcut(any_map_get(g_keymap, "file_reimport_textures"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "file_reimport_textures"), SHORTCUT_TYPE_STARTED)) { project_reimport_textures(); } - else if (operator_shortcut(any_map_get(g_keymap, "file_new"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "file_new"), SHORTCUT_TYPE_STARTED)) { project_new_box(); } - else if (operator_shortcut(any_map_get(g_keymap, "file_export_textures"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "file_export_textures"), SHORTCUT_TYPE_STARTED)) { if (string_equals(g_context->texture_export_path, "")) { // First export, ask for path g_context->layers_export = EXPORT_MODE_VISIBLE; box_export_show_textures(); @@ -77,14 +77,14 @@ void util_shortcut_global() { sys_notify_on_next_frame(&ui_base_update_next_frame, NULL); } } - else if (operator_shortcut(any_map_get(g_keymap, "file_export_textures_as"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "file_export_textures_as"), SHORTCUT_TYPE_STARTED)) { g_context->layers_export = EXPORT_MODE_VISIBLE; box_export_show_textures(); } - else if (operator_shortcut(any_map_get(g_keymap, "file_import_assets"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "file_import_assets"), SHORTCUT_TYPE_STARTED)) { project_import_asset(NULL, true); } - else if (operator_shortcut(any_map_get(g_keymap, "edit_prefs"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "edit_prefs"), SHORTCUT_TYPE_STARTED)) { box_preferences_show(); } if (keyboard_started(any_map_get(g_keymap, "view_distract_free")) || (keyboard_started("escape") && !ui_base_show && !ui_box_show)) { @@ -117,10 +117,10 @@ void util_shortcut_brush() { bool decal_mask = context_is_decal_mask(); bool adjusting = - operator_shortcut(any_map_get(g_keymap, "brush_radius"), SHORTCUT_TYPE_DOWN) || - operator_shortcut(any_map_get(g_keymap, "brush_opacity"), SHORTCUT_TYPE_DOWN) || - operator_shortcut(any_map_get(g_keymap, "brush_angle"), SHORTCUT_TYPE_DOWN) || - (decal_mask && operator_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "brush_radius")), SHORTCUT_TYPE_DOWN)); + keymap_shortcut(any_map_get(g_keymap, "brush_radius"), SHORTCUT_TYPE_DOWN) || + keymap_shortcut(any_map_get(g_keymap, "brush_opacity"), SHORTCUT_TYPE_DOWN) || + keymap_shortcut(any_map_get(g_keymap, "brush_angle"), SHORTCUT_TYPE_DOWN) || + (decal_mask && keymap_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "brush_radius")), SHORTCUT_TYPE_DOWN)); if (!adjusting) { iron_mouse_unlock(); @@ -134,12 +134,12 @@ void util_shortcut_brush() { return; } - if (operator_shortcut(any_map_get(g_keymap, "brush_opacity"), SHORTCUT_TYPE_DOWN)) { + if (keymap_shortcut(any_map_get(g_keymap, "brush_opacity"), SHORTCUT_TYPE_DOWN)) { g_context->brush_opacity += mouse_movement_x / 500.0; g_context->brush_opacity = math_max(0.0, math_min(1.0, g_context->brush_opacity)); g_context->brush_opacity = math_round(g_context->brush_opacity * 100) / 100.0; } - else if (operator_shortcut(any_map_get(g_keymap, "brush_angle"), SHORTCUT_TYPE_DOWN)) { + else if (keymap_shortcut(any_map_get(g_keymap, "brush_angle"), SHORTCUT_TYPE_DOWN)) { g_context->brush_angle += mouse_movement_x / 5.0; i32 i = math_floor(g_context->brush_angle); g_context->brush_angle = i % 360; @@ -148,7 +148,7 @@ void util_shortcut_brush() { make_material_parse_paint_material(true); } else if (decal_mask && - operator_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "brush_radius")), SHORTCUT_TYPE_DOWN)) { + keymap_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "brush_radius")), SHORTCUT_TYPE_DOWN)) { g_context->brush_decal_mask_radius += mouse_movement_x / 150.0; g_context->brush_decal_mask_radius = math_max(0.01, math_min(4.0, g_context->brush_decal_mask_radius)); g_context->brush_decal_mask_radius = math_round(g_context->brush_decal_mask_radius * 100) / 100.0; @@ -166,7 +166,7 @@ void util_shortcut_viewport() { bool is_typing = g_ui->is_typing; if (!is_typing) { - if (operator_shortcut(any_map_get(g_keymap, "select_material"), SHORTCUT_TYPE_DOWN)) { + if (keymap_shortcut(any_map_get(g_keymap, "select_material"), SHORTCUT_TYPE_DOWN)) { ui_base_hwnds->buffer[TAB_AREA_SIDEBAR1]->redraws = 2; for (i32 i = 1; i < 10; ++i) { if (keyboard_started(i32_to_string(i))) { @@ -174,7 +174,7 @@ void util_shortcut_viewport() { } } } - else if (operator_shortcut(any_map_get(g_keymap, "select_layer"), SHORTCUT_TYPE_DOWN)) { + else if (keymap_shortcut(any_map_get(g_keymap, "select_layer"), SHORTCUT_TYPE_DOWN)) { ui_base_hwnds->buffer[TAB_AREA_SIDEBAR0]->redraws = 2; for (i32 i = 1; i < 10; ++i) { if (keyboard_started(i32_to_string(i))) { @@ -188,46 +188,46 @@ void util_shortcut_viewport() { if (context_in_paint_area() && !is_typing) { if (!mouse_down("right")) { // Fly mode off - if (operator_shortcut(any_map_get(g_keymap, "tool_brush"), SHORTCUT_TYPE_STARTED)) { + if (keymap_shortcut(any_map_get(g_keymap, "tool_brush"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_BRUSH); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_eraser"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_eraser"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_ERASER); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_fill"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_fill"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_FILL); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_colorid"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_colorid"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_COLORID); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_decal"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_decal"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_DECAL); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_text"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_text"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_TEXT); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_clone"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_clone"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_CLONE); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_blur"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_blur"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_BLUR); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_particle"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_particle"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_PARTICLE); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_picker"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_picker"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_PICKER); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_material"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_material"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_MATERIAL); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_cursor"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_cursor"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_CURSOR); } - else if (operator_shortcut(any_map_get(g_keymap, "tool_select"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "tool_select"), SHORTCUT_TYPE_STARTED)) { context_select_tool(TOOL_TYPE_SELECT); } - else if (operator_shortcut(any_map_get(g_keymap, "swap_brush_eraser"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "swap_brush_eraser"), SHORTCUT_TYPE_STARTED)) { context_select_tool(g_context->tool == TOOL_TYPE_BRUSH ? TOOL_TYPE_ERASER : TOOL_TYPE_BRUSH); } } @@ -236,34 +236,34 @@ void util_shortcut_viewport() { if (g_context->tool == TOOL_TYPE_BRUSH || g_context->tool == TOOL_TYPE_ERASER || g_context->tool == TOOL_TYPE_DECAL || g_context->tool == TOOL_TYPE_TEXT || g_context->tool == TOOL_TYPE_CLONE || g_context->tool == TOOL_TYPE_BLUR || g_context->tool == TOOL_TYPE_PARTICLE) { - if (operator_shortcut(any_map_get(g_keymap, "brush_radius"), SHORTCUT_TYPE_STARTED) || - operator_shortcut(any_map_get(g_keymap, "brush_opacity"), SHORTCUT_TYPE_STARTED) || - operator_shortcut(any_map_get(g_keymap, "brush_angle"), SHORTCUT_TYPE_STARTED) || + if (keymap_shortcut(any_map_get(g_keymap, "brush_radius"), SHORTCUT_TYPE_STARTED) || + keymap_shortcut(any_map_get(g_keymap, "brush_opacity"), SHORTCUT_TYPE_STARTED) || + keymap_shortcut(any_map_get(g_keymap, "brush_angle"), SHORTCUT_TYPE_STARTED) || (decal_mask && - operator_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "brush_radius")), SHORTCUT_TYPE_STARTED))) { + keymap_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "brush_radius")), SHORTCUT_TYPE_STARTED))) { g_context->brush_locked = true; if (!pen_connected) { iron_mouse_lock(); } } - else if (operator_shortcut(any_map_get(g_keymap, "brush_radius_decrease"), SHORTCUT_TYPE_REPEAT)) { + else if (keymap_shortcut(any_map_get(g_keymap, "brush_radius_decrease"), SHORTCUT_TYPE_REPEAT)) { g_context->brush_radius -= ui_base_get_radius_increment(); g_context->brush_radius = math_max(math_round(g_context->brush_radius * 100) / 100.0, 0.01); ui_header_handle->redraws = 2; } - else if (operator_shortcut(any_map_get(g_keymap, "brush_radius_increase"), SHORTCUT_TYPE_REPEAT)) { + else if (keymap_shortcut(any_map_get(g_keymap, "brush_radius_increase"), SHORTCUT_TYPE_REPEAT)) { g_context->brush_radius += ui_base_get_radius_increment(); g_context->brush_radius = math_round(g_context->brush_radius * 100) / 100.0; ui_header_handle->redraws = 2; } else if (decal_mask) { - if (operator_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "brush_radius_decrease")), + if (keymap_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "brush_radius_decrease")), SHORTCUT_TYPE_REPEAT)) { g_context->brush_decal_mask_radius -= ui_base_get_radius_increment(); g_context->brush_decal_mask_radius = math_max(math_round(g_context->brush_decal_mask_radius * 100) / 100.0, 0.01); ui_header_handle->redraws = 2; } - else if (operator_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "brush_radius_increase")), + else if (keymap_shortcut(string_tmp("%s+%s", any_map_get(g_keymap, "decal_mask"), any_map_get(g_keymap, "brush_radius_increase")), SHORTCUT_TYPE_REPEAT)) { g_context->brush_decal_mask_radius += ui_base_get_radius_increment(); g_context->brush_decal_mask_radius = math_round(g_context->brush_decal_mask_radius * 100) / 100.0; @@ -271,63 +271,66 @@ void util_shortcut_viewport() { } } } - if (decal_mask && (operator_shortcut(any_map_get(g_keymap, "decal_mask"), SHORTCUT_TYPE_STARTED) || - operator_shortcut(any_map_get(g_keymap, "decal_mask"), SHORTCUT_TYPE_RELEASED))) { + if (decal_mask && (keymap_shortcut(any_map_get(g_keymap, "decal_mask"), SHORTCUT_TYPE_STARTED) || + keymap_shortcut(any_map_get(g_keymap, "decal_mask"), SHORTCUT_TYPE_RELEASED))) { ui_header_handle->redraws = 2; } // Viewpoint if (mouse_view_x() < sys_w()) { - if (operator_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) { + if (keymap_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) { viewport_reset(); viewport_scale_to_bounds(2.0); } - else if (operator_shortcut(any_map_get(g_keymap, "view_back"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_back"), SHORTCUT_TYPE_STARTED)) { viewport_set_view(0, 1, 0, math_pi() / 2.0, 0, math_pi()); } - else if (operator_shortcut(any_map_get(g_keymap, "view_front"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_front"), SHORTCUT_TYPE_STARTED)) { viewport_set_view(0, -1, 0, math_pi() / 2.0, 0, 0); } - else if (operator_shortcut(any_map_get(g_keymap, "view_left"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_left"), SHORTCUT_TYPE_STARTED)) { viewport_set_view(-1, 0, 0, math_pi() / 2.0, 0, -math_pi() / 2.0); } - else if (operator_shortcut(any_map_get(g_keymap, "view_right"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_right"), SHORTCUT_TYPE_STARTED)) { viewport_set_view(1, 0, 0, math_pi() / 2.0, 0, math_pi() / 2.0); } - else if (operator_shortcut(any_map_get(g_keymap, "view_bottom"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_top"), SHORTCUT_TYPE_STARTED)) { + viewport_set_view(0, 0, 1, 0, 0, 0); + } + else if (keymap_shortcut(any_map_get(g_keymap, "view_bottom"), SHORTCUT_TYPE_STARTED)) { viewport_set_view(0, 0, -1, math_pi(), 0, math_pi()); } - else if (operator_shortcut(any_map_get(g_keymap, "view_camera_type"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_camera_type"), SHORTCUT_TYPE_STARTED)) { g_context->camera_type = g_context->camera_type == CAMERA_TYPE_PERSPECTIVE ? CAMERA_TYPE_ORTHOGRAPHIC : CAMERA_TYPE_PERSPECTIVE; viewport_update_camera_type(g_context->camera_type); } - else if (operator_shortcut(any_map_get(g_keymap, "view_orbit_left"), SHORTCUT_TYPE_REPEAT)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_orbit_left"), SHORTCUT_TYPE_REPEAT)) { viewport_orbit(-math_pi() / 12.0, 0); } - else if (operator_shortcut(any_map_get(g_keymap, "view_orbit_right"), SHORTCUT_TYPE_REPEAT)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_orbit_right"), SHORTCUT_TYPE_REPEAT)) { viewport_orbit(math_pi() / 12.0, 0); } - else if (operator_shortcut(any_map_get(g_keymap, "view_orbit_up"), SHORTCUT_TYPE_REPEAT)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_orbit_up"), SHORTCUT_TYPE_REPEAT)) { viewport_orbit(0, -math_pi() / 12.0); } - else if (operator_shortcut(any_map_get(g_keymap, "view_orbit_down"), SHORTCUT_TYPE_REPEAT)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_orbit_down"), SHORTCUT_TYPE_REPEAT)) { viewport_orbit(0, math_pi() / 12.0); } - else if (operator_shortcut(any_map_get(g_keymap, "view_orbit_opposite"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_orbit_opposite"), SHORTCUT_TYPE_STARTED)) { viewport_orbit_opposite(); } - else if (operator_shortcut(any_map_get(g_keymap, "view_zoom_in"), SHORTCUT_TYPE_REPEAT)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_zoom_in"), SHORTCUT_TYPE_REPEAT)) { viewport_zoom(0.2); } - else if (operator_shortcut(any_map_get(g_keymap, "view_zoom_out"), SHORTCUT_TYPE_REPEAT)) { + else if (keymap_shortcut(any_map_get(g_keymap, "view_zoom_out"), SHORTCUT_TYPE_REPEAT)) { viewport_zoom(-0.2); } - else if (operator_shortcut(any_map_get(g_keymap, "viewport_mode"), SHORTCUT_TYPE_STARTED)) { + else if (keymap_shortcut(any_map_get(g_keymap, "viewport_mode"), SHORTCUT_TYPE_STARTED)) { g_ui->is_key_pressed = false; ui_menu_draw(&ui_base_menu_draw_viewport_mode, -1, -1); } } - if (operator_shortcut(any_map_get(g_keymap, "operator_search"), SHORTCUT_TYPE_STARTED)) { + if (keymap_shortcut(any_map_get(g_keymap, "operator_search"), SHORTCUT_TYPE_STARTED)) { ui_base_operator_search(); } } diff --git a/paint/sources/util/util_stencil.c b/paint/sources/util/util_stencil.c index 0f77bc04..328b81ca 100644 --- a/paint/sources/util/util_stencil.c +++ b/paint/sources/util/util_stencil.c @@ -2,7 +2,7 @@ #include "../global.h" void util_stencil_transform() { - if (g_context->brush_stencil_image != NULL && operator_shortcut(any_map_get(g_keymap, "stencil_transform"), SHORTCUT_TYPE_DOWN)) { + if (g_context->brush_stencil_image != NULL && keymap_shortcut(any_map_get(g_keymap, "stencil_transform"), SHORTCUT_TYPE_DOWN)) { rect_t *r = ui_base_get_brush_stencil_rect(); if (mouse_started("left")) { g_context->brush_stencil_scaling = ui_base_hit_rect(mouse_x, mouse_y, r->x - 8, r->y - 8, 16, 16) ||