Fixed a bug in the panel split; setup for tutorial
This commit is contained in:
parent
6e97a504a9
commit
cbb707fc27
|
@ -1289,11 +1289,9 @@ panel_split(Application_Links *app, Panel_ID panel_id, Dimension split_dim){
|
|||
Panel *panel = imp_get_panel(models, panel_id);
|
||||
if (api_check_panel(panel)){
|
||||
Panel *new_panel = 0;
|
||||
if (layout_split_panel(layout, panel, (split_dim == Dimension_X),
|
||||
&new_panel)){
|
||||
if (layout_split_panel(layout, panel, (split_dim == Dimension_X), &new_panel)){
|
||||
Live_Views *view_set = &models->view_set;
|
||||
View *new_view = live_set_alloc_view(&models->lifetime_allocator,
|
||||
view_set, new_panel);
|
||||
View *new_view = live_set_alloc_view(&models->lifetime_allocator, view_set, new_panel);
|
||||
view_init(app->tctx, models, new_view, models->scratch_buffer,
|
||||
models->view_event_handler);
|
||||
result = true;
|
||||
|
@ -1338,7 +1336,7 @@ panel_set_split(Application_Links *app, Panel_ID panel_id, Panel_Split_Kind kind
|
|||
}
|
||||
|
||||
api(custom) function b32
|
||||
panel_swap_children(Application_Links *app, Panel_ID panel_id, Panel_Split_Kind kind, float t){
|
||||
panel_swap_children(Application_Links *app, Panel_ID panel_id){
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
Layout *layout = &models->layout;
|
||||
b32 result = false;
|
||||
|
@ -1352,6 +1350,14 @@ panel_swap_children(Application_Links *app, Panel_ID panel_id, Panel_Split_Kind
|
|||
return(result);
|
||||
}
|
||||
|
||||
api(custom) function Panel_ID
|
||||
panel_get_root(Application_Links *app){
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
Layout *layout = &models->layout;
|
||||
Panel *panel = layout->root;
|
||||
return(panel_get_id(layout, panel));
|
||||
}
|
||||
|
||||
api(custom) function Panel_ID
|
||||
panel_get_parent(Application_Links *app, Panel_ID panel_id){
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
|
|
|
@ -155,19 +155,34 @@ layout_split_panel(Layout *layout, Panel *panel, b32 vertical_split, Panel **new
|
|||
Panel *min_panel = layout__alloc_panel(layout);
|
||||
Panel *max_panel = layout__alloc_panel(layout);
|
||||
|
||||
dll_remove(&panel->node);
|
||||
dll_insert(&layout->intermediate_panels, &panel->node);
|
||||
if (panel->kind == PanelKind_Final){
|
||||
dll_remove(&panel->node);
|
||||
dll_insert(&layout->intermediate_panels, &panel->node);
|
||||
|
||||
dll_insert(&layout->open_panels, &min_panel->node);
|
||||
dll_insert(&layout->open_panels, &max_panel->node);
|
||||
// init min_panel
|
||||
dll_insert(&layout->open_panels, &min_panel->node);
|
||||
|
||||
// init min_panel
|
||||
panel->view->panel = min_panel;
|
||||
min_panel->parent = panel;
|
||||
min_panel->kind = PanelKind_Final;
|
||||
min_panel->view = panel->view;
|
||||
panel->view->panel = min_panel;
|
||||
min_panel->parent = panel;
|
||||
min_panel->kind = PanelKind_Final;
|
||||
min_panel->view = panel->view;
|
||||
}
|
||||
else{
|
||||
// init min_panel
|
||||
dll_insert(&layout->intermediate_panels, &min_panel->node);
|
||||
|
||||
min_panel->parent = panel;
|
||||
min_panel->kind = PanelKind_Intermediate;
|
||||
min_panel->view = panel->view;
|
||||
min_panel->tl_panel = panel->tl_panel;
|
||||
min_panel->br_panel = panel->br_panel;
|
||||
min_panel->vertical_split = panel->vertical_split;
|
||||
min_panel->split = panel->split;
|
||||
}
|
||||
|
||||
// init max_panel
|
||||
dll_insert(&layout->open_panels, &max_panel->node);
|
||||
|
||||
*new_panel_out = max_panel;
|
||||
max_panel->parent = panel;
|
||||
max_panel->kind = PanelKind_Final;
|
||||
|
|
|
@ -1545,35 +1545,25 @@ CUSTOM_DOC("Set the other non-active panel to view the buffer that the active pa
|
|||
view_set_cursor_and_preferred_x(app, view, seek_pos(pos));
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(swap_buffers_between_panels)
|
||||
CUSTOM_DOC("Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.")
|
||||
CUSTOM_COMMAND_SIG(swap_panels)
|
||||
CUSTOM_DOC("Swaps the active panel with it's sibling.")
|
||||
{
|
||||
View_ID view1 = get_active_view(app, Access_ReadVisible);
|
||||
change_active_panel(app);
|
||||
View_ID view2 = get_active_view(app, Access_ReadVisible);
|
||||
View_ID view = get_active_view(app, Access_Always);
|
||||
Panel_ID panel = view_get_panel(app, view);
|
||||
Panel_ID parent = panel_get_parent(app, panel);
|
||||
for (;parent != 0;){
|
||||
Panel_ID child_1 = panel_get_child(app, parent, Side_Min);
|
||||
Panel_ID child_2 = panel_get_child(app, parent, Side_Max);
|
||||
|
||||
if (view1 != view2){
|
||||
Buffer_ID buffer1 = view_get_buffer(app, view1, Access_Always);
|
||||
Buffer_ID buffer2 = view_get_buffer(app, view2, Access_Always);
|
||||
if (buffer1 != buffer2){
|
||||
view_set_buffer(app, view1, buffer2, 0);
|
||||
view_set_buffer(app, view2, buffer1, 0);
|
||||
}
|
||||
else{
|
||||
i64 p1 = view_get_cursor_pos(app, view1);
|
||||
i64 m1 = view_get_mark_pos(app, view1);
|
||||
Buffer_Scroll sc1 = view_get_buffer_scroll(app, view1);
|
||||
i64 p2 = view_get_cursor_pos(app, view2);
|
||||
i64 m2 = view_get_mark_pos(app, view2);
|
||||
Buffer_Scroll sc2 = view_get_buffer_scroll(app, view2);
|
||||
View_ID view_1 = panel_get_view(app, child_1, Access_Always);
|
||||
View_ID view_2 = panel_get_view(app, child_2, Access_Always);
|
||||
|
||||
view_set_cursor_and_preferred_x(app, view1, seek_pos(p2));
|
||||
view_set_mark(app, view1, seek_pos(m2));
|
||||
view_set_buffer_scroll(app, view1, sc2, SetBufferScroll_SnapCursorIntoView);
|
||||
view_set_cursor_and_preferred_x(app, view2, seek_pos(p1));
|
||||
view_set_mark(app, view2, seek_pos(m1));
|
||||
view_set_buffer_scroll(app, view2, sc1, SetBufferScroll_SnapCursorIntoView);
|
||||
if (!view_get_is_passive(app, view_1) && !view_get_is_passive(app, view_2)){
|
||||
panel_swap_children(app, parent);
|
||||
break;
|
||||
}
|
||||
|
||||
parent = panel_get_parent(app, parent);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +1,15 @@
|
|||
/*
|
||||
4coder_default_framework.cpp - Sets up the basics of the framework that is used for default
|
||||
4coder behaviour.
|
||||
4coder_default_framework.cpp - Sets up the basics of the framework that is used for default 4coder behaviour.
|
||||
*/
|
||||
|
||||
// TOP
|
||||
|
||||
static void
|
||||
function void
|
||||
unlock_jump_buffer(void){
|
||||
locked_buffer.size = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
lock_jump_buffer(Application_Links *app, String_Const_u8 name){
|
||||
if (name.size < sizeof(locked_buffer_space)){
|
||||
block_copy(locked_buffer_space, name.str, name.size);
|
||||
|
@ -22,12 +21,12 @@ lock_jump_buffer(Application_Links *app, String_Const_u8 name){
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
lock_jump_buffer(Application_Links *app, char *name, i32 size){
|
||||
lock_jump_buffer(app, SCu8(name, size));
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
lock_jump_buffer(Application_Links *app, Buffer_ID buffer_id){
|
||||
Scratch_Block scratch(app);
|
||||
String_Const_u8 buffer_name = push_buffer_unique_name(app, scratch, buffer_id);
|
||||
|
@ -46,7 +45,7 @@ get_locked_jump_buffer(Application_Links *app){
|
|||
return(result);
|
||||
}
|
||||
|
||||
static View_ID
|
||||
function View_ID
|
||||
get_view_for_locked_jump_buffer(Application_Links *app){
|
||||
View_ID result = 0;
|
||||
Buffer_ID buffer = get_locked_jump_buffer(app);
|
||||
|
@ -58,7 +57,7 @@ get_view_for_locked_jump_buffer(Application_Links *app){
|
|||
|
||||
////////////////////////////////
|
||||
|
||||
static void
|
||||
function void
|
||||
new_view_settings(Application_Links *app, View_ID view){
|
||||
if (!global_config.use_scroll_bars){
|
||||
view_set_setting(app, view, ViewSetting_ShowScrollbar, false);
|
||||
|
@ -70,21 +69,27 @@ new_view_settings(Application_Links *app, View_ID view){
|
|||
|
||||
////////////////////////////////
|
||||
|
||||
static void
|
||||
function void
|
||||
view_set_passive(Application_Links *app, View_ID view_id, b32 value){
|
||||
Managed_Scope scope = view_get_managed_scope(app, view_id);
|
||||
b32 *is_passive = scope_attachment(app, scope, view_is_passive_loc, b32);
|
||||
*is_passive = value;
|
||||
if (is_passive != 0){
|
||||
*is_passive = value;
|
||||
}
|
||||
}
|
||||
|
||||
static b32
|
||||
function b32
|
||||
view_get_is_passive(Application_Links *app, View_ID view_id){
|
||||
Managed_Scope scope = view_get_managed_scope(app, view_id);
|
||||
b32 *is_passive = scope_attachment(app, scope, view_is_passive_loc, b32);
|
||||
return(*is_passive);
|
||||
b32 result = false;
|
||||
if (is_passive != 0){
|
||||
result = *is_passive;
|
||||
}
|
||||
return(result);
|
||||
}
|
||||
|
||||
static View_ID
|
||||
function View_ID
|
||||
open_footer_panel(Application_Links *app, View_ID view){
|
||||
View_ID special_view = open_view(app, view, ViewSplit_Bottom);
|
||||
new_view_settings(app, special_view);
|
||||
|
@ -96,7 +101,7 @@ open_footer_panel(Application_Links *app, View_ID view){
|
|||
return(special_view);
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
close_build_footer_panel(Application_Links *app){
|
||||
if (build_footer_panel_view_id != 0){
|
||||
view_close(app, build_footer_panel_view_id);
|
||||
|
@ -104,7 +109,7 @@ close_build_footer_panel(Application_Links *app){
|
|||
}
|
||||
}
|
||||
|
||||
static View_ID
|
||||
function View_ID
|
||||
open_build_footer_panel(Application_Links *app){
|
||||
if (build_footer_panel_view_id == 0){
|
||||
View_ID view = get_active_view(app, Access_Always);
|
||||
|
@ -114,7 +119,7 @@ open_build_footer_panel(Application_Links *app){
|
|||
return(build_footer_panel_view_id);
|
||||
}
|
||||
|
||||
static View_ID
|
||||
function View_ID
|
||||
get_next_view_looped_primary_panels(Application_Links *app, View_ID start_view_id, Access_Flag access){
|
||||
View_ID view_id = start_view_id;
|
||||
do{
|
||||
|
@ -126,7 +131,7 @@ get_next_view_looped_primary_panels(Application_Links *app, View_ID start_view_i
|
|||
return(view_id);
|
||||
}
|
||||
|
||||
static View_ID
|
||||
function View_ID
|
||||
get_prev_view_looped_primary_panels(Application_Links *app, View_ID start_view_id, Access_Flag access){
|
||||
View_ID view_id = start_view_id;
|
||||
do{
|
||||
|
@ -138,7 +143,7 @@ get_prev_view_looped_primary_panels(Application_Links *app, View_ID start_view_i
|
|||
return(view_id);
|
||||
}
|
||||
|
||||
static View_ID
|
||||
function View_ID
|
||||
get_next_view_after_active(Application_Links *app, Access_Flag access){
|
||||
View_ID view = get_active_view(app, access);
|
||||
if (view != 0){
|
||||
|
@ -149,7 +154,7 @@ get_next_view_after_active(Application_Links *app, Access_Flag access){
|
|||
|
||||
////////////////////////////////
|
||||
|
||||
static void
|
||||
function void
|
||||
call_after_ctx_shutdown(Application_Links *app, View_ID view, Custom_Command_Function *func){
|
||||
view_enqueue_command_function(app, view, func);
|
||||
}
|
||||
|
@ -213,7 +218,7 @@ ui_fallback_command_dispatch(Application_Links *app, View_ID view, User_Input *i
|
|||
|
||||
////////////////////////////////
|
||||
|
||||
static void
|
||||
function void
|
||||
view_buffer_set(Application_Links *app, Buffer_ID *buffers, i32 *positions, i32 count){
|
||||
if (count > 0){
|
||||
Scratch_Block scratch(app, Scratch_Share);
|
||||
|
@ -316,7 +321,7 @@ CUSTOM_DOC("Create a new panel by horizontally splitting the active panel.")
|
|||
|
||||
// NOTE(allen): Credits to nj/FlyingSolomon for authoring the original version of this helper.
|
||||
|
||||
static Buffer_ID
|
||||
function Buffer_ID
|
||||
create_or_switch_to_buffer_and_clear_by_name(Application_Links *app, String_Const_u8 name_string, View_ID default_target_view){
|
||||
Buffer_ID search_buffer = get_buffer_by_name(app, name_string, Access_Always);
|
||||
if (search_buffer != 0){
|
||||
|
@ -423,7 +428,7 @@ CUSTOM_DOC("Toggle fullscreen mode on or off. The change(s) do not take effect
|
|||
|
||||
////////////////////////////////
|
||||
|
||||
static void
|
||||
function void
|
||||
default_4coder_initialize(Application_Links *app, String_Const_u8_Array file_names,
|
||||
i32 override_font_size, b32 override_hinting){
|
||||
Thread_Context *tctx = get_thread_context(app);
|
||||
|
@ -431,12 +436,12 @@ default_4coder_initialize(Application_Links *app, String_Const_u8_Array file_nam
|
|||
|
||||
#define M \
|
||||
"Welcome to " VERSION "\n" \
|
||||
"If you're new to 4coder there are some tutorials at http://4coder.net/tutorials.html\n" \
|
||||
"Direct bug reports and feature requests to https://github.com/4coder-editor/4coder/issues\n" \
|
||||
"Other questions and discussion can be directed to editor@4coder.net or 4coder.handmade.network\n" \
|
||||
"The change log can be found in CHANGES.txt\n" \
|
||||
"\n"
|
||||
print_message(app, string_u8_litexpr(M));
|
||||
"If you're new to 4coder there are some tutorials at http://4coder.net/tutorials.html\n" \
|
||||
"Direct bug reports and feature requests to https://github.com/4coder-editor/4coder/issues\n" \
|
||||
"Other questions and discussion can be directed to editor@4coder.net or 4coder.handmade.network\n" \
|
||||
"The change log can be found in CHANGES.txt\n" \
|
||||
"\n"
|
||||
print_message(app, string_u8_litexpr(M));
|
||||
#undef M
|
||||
|
||||
#if 0
|
||||
|
@ -479,14 +484,14 @@ default_4coder_initialize(Application_Links *app, String_Const_u8_Array file_nam
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
default_4coder_initialize(Application_Links *app,
|
||||
i32 override_font_size, b32 override_hinting){
|
||||
String_Const_u8_Array file_names = {};
|
||||
default_4coder_initialize(app, file_names, override_font_size, override_hinting);
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
default_4coder_initialize(Application_Links *app, String_Const_u8_Array file_names){
|
||||
Face_Description description = get_face_description(app, 0);
|
||||
default_4coder_initialize(app, file_names,
|
||||
|
@ -494,14 +499,14 @@ default_4coder_initialize(Application_Links *app, String_Const_u8_Array file_nam
|
|||
description.parameters.hinting);
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
default_4coder_initialize(Application_Links *app){
|
||||
Face_Description command_line_description = get_face_description(app, 0);
|
||||
String_Const_u8_Array file_names = {};
|
||||
default_4coder_initialize(app, file_names, command_line_description.parameters.pt_size, command_line_description.parameters.hinting);
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
default_4coder_side_by_side_panels(Application_Links *app,
|
||||
Buffer_Identifier left, Buffer_Identifier right){
|
||||
Buffer_ID left_id = buffer_identifier_to_id(app, left);
|
||||
|
@ -521,7 +526,7 @@ default_4coder_side_by_side_panels(Application_Links *app,
|
|||
view_set_active(app, view);
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
default_4coder_side_by_side_panels(Application_Links *app,
|
||||
Buffer_Identifier left, Buffer_Identifier right,
|
||||
String_Const_u8_Array file_names){
|
||||
|
@ -534,20 +539,20 @@ default_4coder_side_by_side_panels(Application_Links *app,
|
|||
default_4coder_side_by_side_panels(app, left, right);
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
default_4coder_side_by_side_panels(Application_Links *app, String_Const_u8_Array file_names){
|
||||
Buffer_Identifier left = buffer_identifier(string_u8_litexpr("*scratch*"));
|
||||
Buffer_Identifier right = buffer_identifier(string_u8_litexpr("*messages*"));
|
||||
default_4coder_side_by_side_panels(app, left, right, file_names);
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
default_4coder_side_by_side_panels(Application_Links *app){
|
||||
String_Const_u8_Array file_names = {};
|
||||
default_4coder_side_by_side_panels(app, file_names);
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
default_4coder_one_panel(Application_Links *app, Buffer_Identifier buffer){
|
||||
Buffer_ID id = buffer_identifier_to_id(app, buffer);
|
||||
View_ID view = get_active_view(app, Access_Always);
|
||||
|
@ -555,7 +560,7 @@ default_4coder_one_panel(Application_Links *app, Buffer_Identifier buffer){
|
|||
view_set_buffer(app, view, id, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
default_4coder_one_panel(Application_Links *app, String_Const_u8_Array file_names){
|
||||
Buffer_Identifier buffer = buffer_identifier(string_u8_litexpr("*messages*"));
|
||||
if (file_names.count > 0){
|
||||
|
@ -564,7 +569,7 @@ default_4coder_one_panel(Application_Links *app, String_Const_u8_Array file_name
|
|||
default_4coder_one_panel(app, buffer);
|
||||
}
|
||||
|
||||
static void
|
||||
function void
|
||||
default_4coder_one_panel(Application_Links *app){
|
||||
String_Const_u8_Array file_names = {};
|
||||
default_4coder_one_panel(app, file_names);
|
||||
|
|
|
@ -91,8 +91,7 @@ CUSTOM_DOC("Input consumption loop for default view behavior")
|
|||
|
||||
Buffer_ID buffer = view_get_buffer(app, view, Access_Always);
|
||||
Managed_Scope buffer_scope = buffer_get_managed_scope(app, buffer);
|
||||
Command_Map_ID *map_id_ptr =
|
||||
scope_attachment(app, buffer_scope, buffer_map_id, Command_Map_ID);
|
||||
Command_Map_ID *map_id_ptr = scope_attachment(app, buffer_scope, buffer_map_id, Command_Map_ID);
|
||||
if (*map_id_ptr == 0){
|
||||
*map_id_ptr = mapid_file;
|
||||
}
|
||||
|
@ -133,8 +132,7 @@ CUSTOM_DOC("Input consumption loop for default view behavior")
|
|||
// NOTE(allen): after the command is called do some book keeping
|
||||
ProfileScope(app, "after view input");
|
||||
|
||||
next_rewrite = scope_attachment(app, scope, view_next_rewrite_loc,
|
||||
Rewrite_Type);
|
||||
next_rewrite = scope_attachment(app, scope, view_next_rewrite_loc, Rewrite_Type);
|
||||
if (next_rewrite != 0){
|
||||
Rewrite_Type *rewrite =
|
||||
scope_attachment(app, scope, view_rewrite_loc, Rewrite_Type);
|
||||
|
@ -145,8 +143,7 @@ CUSTOM_DOC("Input consumption loop for default view behavior")
|
|||
view_it = get_view_next(app, view_it, Access_Always)){
|
||||
Managed_Scope scope_it = view_get_managed_scope(app, view_it);
|
||||
b32 *snap_mark_to_cursor =
|
||||
scope_attachment(app, scope_it, view_snap_mark_to_cursor,
|
||||
b32);
|
||||
scope_attachment(app, scope_it, view_snap_mark_to_cursor, b32);
|
||||
if (*snap_mark_to_cursor){
|
||||
i64 pos = view_get_cursor_pos(app, view_it);
|
||||
view_set_mark(app, view_it, seek_pos(pos));
|
||||
|
|
|
@ -105,6 +105,7 @@
|
|||
#include "4coder_combined_write_commands.cpp"
|
||||
#include "4coder_miblo_numbers.cpp"
|
||||
#include "4coder_profile_inspect.cpp"
|
||||
#include "4coder_tutorial.cpp"
|
||||
|
||||
#include "4coder_default_hooks.cpp"
|
||||
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
4coder_tutorial.cpp - Guided graphical tutorial system.
|
||||
*/
|
||||
|
||||
// TOP
|
||||
|
||||
global b32 in_tutorial = false;
|
||||
|
||||
function void
|
||||
kill_tutorial(Application_Links *app){
|
||||
if (in_tutorial){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function void
|
||||
tutorial_default_4coder_render(Application_Links *app, Frame_Info frame_info, View_ID view_id){
|
||||
View_ID active_view = get_active_view(app, Access_Always);
|
||||
b32 is_active_view = (active_view == view_id);
|
||||
|
||||
Rect_f32 region = draw_background_and_margin(app, view_id, is_active_view);
|
||||
Rect_f32 prev_clip = draw_set_clip(app, region);
|
||||
|
||||
draw_rectangle(app, rect_inner(region, 10.f), 20.f, fcolor_id(Stag_Margin));
|
||||
|
||||
draw_set_clip(app, prev_clip);
|
||||
}
|
||||
|
||||
function void
|
||||
tutorial_default_4coder_run(Application_Links *app)
|
||||
{
|
||||
View_ID view = get_this_ctx_view(app, Access_Always);
|
||||
View_Context ctx = view_current_context(app, view);
|
||||
ctx.render_caller = tutorial_default_4coder_render;
|
||||
ctx.hides_buffer = true;
|
||||
View_Context_Block ctx_block(app, view, &ctx);
|
||||
|
||||
for (;;){
|
||||
User_Input input = get_next_input(app, EventPropertyGroup_Any, 0);
|
||||
if (input.abort){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(tutorial_default_4coder)
|
||||
CUSTOM_DOC("Tutorial for built in 4coder bindings and features.")
|
||||
{
|
||||
kill_tutorial(app);
|
||||
|
||||
Panel_ID root_panel = panel_get_root(app);
|
||||
if (panel_split(app, root_panel, Dimension_Y)){
|
||||
panel_swap_children(app, root_panel);
|
||||
panel_set_split(app, root_panel, PanelSplitKind_Ratio_Min, 0.5f);
|
||||
Panel_ID tutorial_panel = panel_get_child(app, root_panel, Side_Min);
|
||||
View_ID tutorial_view = panel_get_view(app, tutorial_panel, Access_Always);
|
||||
view_set_passive(app, tutorial_view, true);
|
||||
view_enqueue_command_function(app, tutorial_view, tutorial_default_4coder_run);
|
||||
}
|
||||
}
|
||||
|
||||
// BOTTOM
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
#define command_id(c) (fcoder_metacmd_ID_##c)
|
||||
#define command_metadata(c) (&fcoder_metacmd_table[command_id(c)])
|
||||
#define command_metadata_by_id(id) (&fcoder_metacmd_table[id])
|
||||
#define command_one_past_last_id 214
|
||||
#define command_one_past_last_id 215
|
||||
#if defined(CUSTOM_COMMAND_SIG)
|
||||
#define PROC_LINKS(x,y) x
|
||||
#else
|
||||
|
@ -118,7 +118,7 @@ CUSTOM_COMMAND_SIG(delete_line);
|
|||
CUSTOM_COMMAND_SIG(open_file_in_quotes);
|
||||
CUSTOM_COMMAND_SIG(open_matching_file_cpp);
|
||||
CUSTOM_COMMAND_SIG(view_buffer_other_panel);
|
||||
CUSTOM_COMMAND_SIG(swap_buffers_between_panels);
|
||||
CUSTOM_COMMAND_SIG(swap_panels);
|
||||
CUSTOM_COMMAND_SIG(kill_buffer);
|
||||
CUSTOM_COMMAND_SIG(save);
|
||||
CUSTOM_COMMAND_SIG(reopen);
|
||||
|
@ -221,6 +221,7 @@ CUSTOM_COMMAND_SIG(miblo_decrement_time_stamp);
|
|||
CUSTOM_COMMAND_SIG(miblo_increment_time_stamp_minute);
|
||||
CUSTOM_COMMAND_SIG(miblo_decrement_time_stamp_minute);
|
||||
CUSTOM_COMMAND_SIG(profile_inspect);
|
||||
CUSTOM_COMMAND_SIG(tutorial_default_4coder);
|
||||
CUSTOM_COMMAND_SIG(default_startup);
|
||||
CUSTOM_COMMAND_SIG(default_try_exit);
|
||||
#endif
|
||||
|
@ -235,7 +236,7 @@ char *source_name;
|
|||
i32 source_name_len;
|
||||
i32 line_number;
|
||||
};
|
||||
static Command_Metadata fcoder_metacmd_table[214] = {
|
||||
static Command_Metadata fcoder_metacmd_table[215] = {
|
||||
{ PROC_LINKS(default_view_input_handler, 0), false, "default_view_input_handler", 26, "Input consumption loop for default view behavior", 48, "w:\\4ed\\code\\custom\\4coder_default_hooks.cpp", 43, 56 },
|
||||
{ PROC_LINKS(profile_enable, 0), false, "profile_enable", 14, "Allow 4coder's self profiler to gather new profiling information.", 65, "w:\\4ed\\code\\custom\\4coder_profile.cpp", 37, 207 },
|
||||
{ PROC_LINKS(profile_disable, 0), false, "profile_disable", 15, "Prevent 4coder's self profiler from gathering new profiling information.", 72, "w:\\4ed\\code\\custom\\4coder_profile.cpp", 37, 214 },
|
||||
|
@ -246,19 +247,19 @@ static Command_Metadata fcoder_metacmd_table[214] = {
|
|||
{ PROC_LINKS(seek_end_of_line, 0), false, "seek_end_of_line", 16, "Seeks the cursor to the end of the visual line.", 47, "w:\\4ed\\code\\custom\\4coder_helper.cpp", 36, 2175 },
|
||||
{ PROC_LINKS(goto_beginning_of_file, 0), false, "goto_beginning_of_file", 22, "Sets the cursor to the beginning of the file.", 45, "w:\\4ed\\code\\custom\\4coder_helper.cpp", 36, 2181 },
|
||||
{ PROC_LINKS(goto_end_of_file, 0), false, "goto_end_of_file", 16, "Sets the cursor to the end of the file.", 39, "w:\\4ed\\code\\custom\\4coder_helper.cpp", 36, 2189 },
|
||||
{ PROC_LINKS(change_active_panel, 0), false, "change_active_panel", 19, "Change the currently active panel, moving to the panel with the next highest view_id.", 85, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 279 },
|
||||
{ PROC_LINKS(change_active_panel_backwards, 0), false, "change_active_panel_backwards", 29, "Change the currently active panel, moving to the panel with the next lowest view_id.", 84, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 285 },
|
||||
{ PROC_LINKS(open_panel_vsplit, 0), false, "open_panel_vsplit", 17, "Create a new panel by vertically splitting the active panel.", 60, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 295 },
|
||||
{ PROC_LINKS(open_panel_hsplit, 0), false, "open_panel_hsplit", 17, "Create a new panel by horizontally splitting the active panel.", 62, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 305 },
|
||||
{ PROC_LINKS(suppress_mouse, 0), false, "suppress_mouse", 14, "Hides the mouse and causes all mosue input (clicks, position, wheel) to be ignored.", 83, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 370 },
|
||||
{ PROC_LINKS(allow_mouse, 0), false, "allow_mouse", 11, "Shows the mouse and causes all mouse input to be processed normally.", 68, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 376 },
|
||||
{ PROC_LINKS(toggle_mouse, 0), false, "toggle_mouse", 12, "Toggles the mouse suppression mode, see suppress_mouse and allow_mouse.", 71, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 382 },
|
||||
{ PROC_LINKS(set_mode_to_original, 0), false, "set_mode_to_original", 20, "Sets the edit mode to 4coder original.", 38, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 388 },
|
||||
{ PROC_LINKS(set_mode_to_notepad_like, 0), false, "set_mode_to_notepad_like", 24, "Sets the edit mode to Notepad like.", 35, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 394 },
|
||||
{ PROC_LINKS(toggle_highlight_line_at_cursor, 0), false, "toggle_highlight_line_at_cursor", 31, "Toggles the line highlight at the cursor.", 41, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 400 },
|
||||
{ PROC_LINKS(toggle_highlight_enclosing_scopes, 0), false, "toggle_highlight_enclosing_scopes", 33, "In code files scopes surrounding the cursor are highlighted with distinguishing colors.", 87, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 406 },
|
||||
{ PROC_LINKS(toggle_paren_matching_helper, 0), false, "toggle_paren_matching_helper", 28, "In code files matching parentheses pairs are colored with distinguishing colors.", 80, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 412 },
|
||||
{ PROC_LINKS(toggle_fullscreen, 0), false, "toggle_fullscreen", 17, "Toggle fullscreen mode on or off. The change(s) do not take effect until the next frame.", 89, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 418 },
|
||||
{ PROC_LINKS(change_active_panel, 0), false, "change_active_panel", 19, "Change the currently active panel, moving to the panel with the next highest view_id.", 85, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 284 },
|
||||
{ PROC_LINKS(change_active_panel_backwards, 0), false, "change_active_panel_backwards", 29, "Change the currently active panel, moving to the panel with the next lowest view_id.", 84, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 290 },
|
||||
{ PROC_LINKS(open_panel_vsplit, 0), false, "open_panel_vsplit", 17, "Create a new panel by vertically splitting the active panel.", 60, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 300 },
|
||||
{ PROC_LINKS(open_panel_hsplit, 0), false, "open_panel_hsplit", 17, "Create a new panel by horizontally splitting the active panel.", 62, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 310 },
|
||||
{ PROC_LINKS(suppress_mouse, 0), false, "suppress_mouse", 14, "Hides the mouse and causes all mosue input (clicks, position, wheel) to be ignored.", 83, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 375 },
|
||||
{ PROC_LINKS(allow_mouse, 0), false, "allow_mouse", 11, "Shows the mouse and causes all mouse input to be processed normally.", 68, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 381 },
|
||||
{ PROC_LINKS(toggle_mouse, 0), false, "toggle_mouse", 12, "Toggles the mouse suppression mode, see suppress_mouse and allow_mouse.", 71, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 387 },
|
||||
{ PROC_LINKS(set_mode_to_original, 0), false, "set_mode_to_original", 20, "Sets the edit mode to 4coder original.", 38, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 393 },
|
||||
{ PROC_LINKS(set_mode_to_notepad_like, 0), false, "set_mode_to_notepad_like", 24, "Sets the edit mode to Notepad like.", 35, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 399 },
|
||||
{ PROC_LINKS(toggle_highlight_line_at_cursor, 0), false, "toggle_highlight_line_at_cursor", 31, "Toggles the line highlight at the cursor.", 41, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 405 },
|
||||
{ PROC_LINKS(toggle_highlight_enclosing_scopes, 0), false, "toggle_highlight_enclosing_scopes", 33, "In code files scopes surrounding the cursor are highlighted with distinguishing colors.", 87, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 411 },
|
||||
{ PROC_LINKS(toggle_paren_matching_helper, 0), false, "toggle_paren_matching_helper", 28, "In code files matching parentheses pairs are colored with distinguishing colors.", 80, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 417 },
|
||||
{ PROC_LINKS(toggle_fullscreen, 0), false, "toggle_fullscreen", 17, "Toggle fullscreen mode on or off. The change(s) do not take effect until the next frame.", 89, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 423 },
|
||||
{ PROC_LINKS(write_text_input, 0), false, "write_text_input", 16, "Inserts whatever character was used to trigger this command.", 60, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 59 },
|
||||
{ PROC_LINKS(write_space, 0), false, "write_space", 11, "Inserts an underscore.", 22, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 67 },
|
||||
{ PROC_LINKS(write_underscore, 0), false, "write_underscore", 16, "Inserts an underscore.", 22, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 73 },
|
||||
|
@ -345,16 +346,16 @@ static Command_Metadata fcoder_metacmd_table[214] = {
|
|||
{ PROC_LINKS(open_file_in_quotes, 0), false, "open_file_in_quotes", 19, "Reads a filename from surrounding '\"' characters and attempts to open the corresponding file.", 94, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1491 },
|
||||
{ PROC_LINKS(open_matching_file_cpp, 0), false, "open_matching_file_cpp", 22, "If the current file is a *.cpp or *.h, attempts to open the corresponding *.h or *.cpp file in the other view.", 110, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1523 },
|
||||
{ PROC_LINKS(view_buffer_other_panel, 0), false, "view_buffer_other_panel", 23, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1536 },
|
||||
{ PROC_LINKS(swap_buffers_between_panels, 0), false, "swap_buffers_between_panels", 27, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1548 },
|
||||
{ PROC_LINKS(kill_buffer, 0), false, "kill_buffer", 11, "Kills the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1582 },
|
||||
{ PROC_LINKS(save, 0), false, "save", 4, "Saves the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1590 },
|
||||
{ PROC_LINKS(reopen, 0), false, "reopen", 6, "Reopen the current buffer from the hard drive.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1600 },
|
||||
{ PROC_LINKS(undo, 0), false, "undo", 4, "Advances backwards through the undo history of the current buffer.", 66, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1825 },
|
||||
{ PROC_LINKS(redo, 0), false, "redo", 4, "Advances forwards through the undo history of the current buffer.", 65, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1838 },
|
||||
{ PROC_LINKS(undo_all_buffers, 0), false, "undo_all_buffers", 16, "Advances backward through the undo history in the buffer containing the most recent regular edit.", 97, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1852 },
|
||||
{ PROC_LINKS(redo_all_buffers, 0), false, "redo_all_buffers", 16, "Advances forward through the undo history in the buffer containing the most recent regular edit.", 96, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1923 },
|
||||
{ PROC_LINKS(open_in_other, 0), false, "open_in_other", 13, "Interactively opens a file in the other panel.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 2024 },
|
||||
{ PROC_LINKS(default_file_externally_modified, 0), false, "default_file_externally_modified", 32, "Notes the external modification of attached files by printing a message.", 72, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 2030 },
|
||||
{ PROC_LINKS(swap_panels, 0), false, "swap_panels", 11, "Swaps the active panel with it's sibling.", 41, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1548 },
|
||||
{ PROC_LINKS(kill_buffer, 0), false, "kill_buffer", 11, "Kills the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1572 },
|
||||
{ PROC_LINKS(save, 0), false, "save", 4, "Saves the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1580 },
|
||||
{ PROC_LINKS(reopen, 0), false, "reopen", 6, "Reopen the current buffer from the hard drive.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1590 },
|
||||
{ PROC_LINKS(undo, 0), false, "undo", 4, "Advances backwards through the undo history of the current buffer.", 66, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1815 },
|
||||
{ PROC_LINKS(redo, 0), false, "redo", 4, "Advances forwards through the undo history of the current buffer.", 65, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1828 },
|
||||
{ PROC_LINKS(undo_all_buffers, 0), false, "undo_all_buffers", 16, "Advances backward through the undo history in the buffer containing the most recent regular edit.", 97, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1842 },
|
||||
{ PROC_LINKS(redo_all_buffers, 0), false, "redo_all_buffers", 16, "Advances forward through the undo history in the buffer containing the most recent regular edit.", 96, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1913 },
|
||||
{ PROC_LINKS(open_in_other, 0), false, "open_in_other", 13, "Interactively opens a file in the other panel.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 2014 },
|
||||
{ PROC_LINKS(default_file_externally_modified, 0), false, "default_file_externally_modified", 32, "Notes the external modification of attached files by printing a message.", 72, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 2020 },
|
||||
{ PROC_LINKS(set_eol_mode_to_crlf, 0), false, "set_eol_mode_to_crlf", 20, "Puts the buffer in crlf line ending mode.", 41, "w:\\4ed\\code\\custom\\4coder_eol.cpp", 33, 86 },
|
||||
{ PROC_LINKS(set_eol_mode_to_lf, 0), false, "set_eol_mode_to_lf", 18, "Puts the buffer in lf line ending mode.", 39, "w:\\4ed\\code\\custom\\4coder_eol.cpp", 33, 97 },
|
||||
{ PROC_LINKS(set_eol_mode_to_binary, 0), false, "set_eol_mode_to_binary", 22, "Puts the buffer in bin line ending mode.", 40, "w:\\4ed\\code\\custom\\4coder_eol.cpp", 33, 108 },
|
||||
|
@ -448,6 +449,7 @@ static Command_Metadata fcoder_metacmd_table[214] = {
|
|||
{ PROC_LINKS(miblo_increment_time_stamp_minute, 0), false, "miblo_increment_time_stamp_minute", 33, "Increment a time stamp under the cursor by one minute. (format [m]m:ss or h:mm:ss", 81, "w:\\4ed\\code\\custom\\4coder_miblo_numbers.cpp", 43, 243 },
|
||||
{ PROC_LINKS(miblo_decrement_time_stamp_minute, 0), false, "miblo_decrement_time_stamp_minute", 33, "Decrement a time stamp under the cursor by one minute. (format [m]m:ss or h:mm:ss", 81, "w:\\4ed\\code\\custom\\4coder_miblo_numbers.cpp", 43, 249 },
|
||||
{ PROC_LINKS(profile_inspect, 0), true, "profile_inspect", 15, "Inspect all currently collected profiling information in 4coder's self profiler.", 80, "w:\\4ed\\code\\custom\\4coder_profile_inspect.cpp", 45, 779 },
|
||||
{ PROC_LINKS(tutorial_default_4coder, 0), false, "tutorial_default_4coder", 23, "Tutorial for built in 4coder bindings and features.", 51, "w:\\4ed\\code\\custom\\4coder_tutorial.cpp", 38, 46 },
|
||||
{ PROC_LINKS(default_startup, 0), false, "default_startup", 15, "Default command for responding to a startup event", 49, "w:\\4ed\\code\\custom\\4coder_default_hooks.cpp", 43, 7 },
|
||||
{ PROC_LINKS(default_try_exit, 0), false, "default_try_exit", 16, "Default command for responding to a try-exit event", 50, "w:\\4ed\\code\\custom\\4coder_default_hooks.cpp", 43, 22 },
|
||||
};
|
||||
|
@ -560,7 +562,7 @@ static i32 fcoder_metacmd_ID_delete_line = 105;
|
|||
static i32 fcoder_metacmd_ID_open_file_in_quotes = 106;
|
||||
static i32 fcoder_metacmd_ID_open_matching_file_cpp = 107;
|
||||
static i32 fcoder_metacmd_ID_view_buffer_other_panel = 108;
|
||||
static i32 fcoder_metacmd_ID_swap_buffers_between_panels = 109;
|
||||
static i32 fcoder_metacmd_ID_swap_panels = 109;
|
||||
static i32 fcoder_metacmd_ID_kill_buffer = 110;
|
||||
static i32 fcoder_metacmd_ID_save = 111;
|
||||
static i32 fcoder_metacmd_ID_reopen = 112;
|
||||
|
@ -663,6 +665,7 @@ static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp = 208;
|
|||
static i32 fcoder_metacmd_ID_miblo_increment_time_stamp_minute = 209;
|
||||
static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp_minute = 210;
|
||||
static i32 fcoder_metacmd_ID_profile_inspect = 211;
|
||||
static i32 fcoder_metacmd_ID_default_startup = 212;
|
||||
static i32 fcoder_metacmd_ID_default_try_exit = 213;
|
||||
static i32 fcoder_metacmd_ID_tutorial_default_4coder = 212;
|
||||
static i32 fcoder_metacmd_ID_default_startup = 213;
|
||||
static i32 fcoder_metacmd_ID_default_try_exit = 214;
|
||||
#endif
|
||||
|
|
|
@ -74,6 +74,7 @@ vtable->panel_is_leaf = panel_is_leaf;
|
|||
vtable->panel_split = panel_split;
|
||||
vtable->panel_set_split = panel_set_split;
|
||||
vtable->panel_swap_children = panel_swap_children;
|
||||
vtable->panel_get_root = panel_get_root;
|
||||
vtable->panel_get_parent = panel_get_parent;
|
||||
vtable->panel_get_child = panel_get_child;
|
||||
vtable->panel_get_max = panel_get_max;
|
||||
|
@ -91,6 +92,7 @@ vtable->view_compute_cursor = view_compute_cursor;
|
|||
vtable->view_set_cursor = view_set_cursor;
|
||||
vtable->view_set_buffer_scroll = view_set_buffer_scroll;
|
||||
vtable->view_set_mark = view_set_mark;
|
||||
vtable->view_quit_ui = view_quit_ui;
|
||||
vtable->view_set_buffer = view_set_buffer;
|
||||
vtable->view_post_fade = view_post_fade;
|
||||
vtable->view_push_context = view_push_context;
|
||||
|
@ -255,6 +257,7 @@ panel_is_leaf = vtable->panel_is_leaf;
|
|||
panel_split = vtable->panel_split;
|
||||
panel_set_split = vtable->panel_set_split;
|
||||
panel_swap_children = vtable->panel_swap_children;
|
||||
panel_get_root = vtable->panel_get_root;
|
||||
panel_get_parent = vtable->panel_get_parent;
|
||||
panel_get_child = vtable->panel_get_child;
|
||||
panel_get_max = vtable->panel_get_max;
|
||||
|
@ -272,6 +275,7 @@ view_compute_cursor = vtable->view_compute_cursor;
|
|||
view_set_cursor = vtable->view_set_cursor;
|
||||
view_set_buffer_scroll = vtable->view_set_buffer_scroll;
|
||||
view_set_mark = vtable->view_set_mark;
|
||||
view_quit_ui = vtable->view_quit_ui;
|
||||
view_set_buffer = vtable->view_set_buffer;
|
||||
view_post_fade = vtable->view_post_fade;
|
||||
view_push_context = vtable->view_push_context;
|
||||
|
|
|
@ -71,7 +71,8 @@
|
|||
#define custom_panel_is_leaf_sig() b32 custom_panel_is_leaf(Application_Links* app, Panel_ID panel_id)
|
||||
#define custom_panel_split_sig() b32 custom_panel_split(Application_Links* app, Panel_ID panel_id, Dimension split_dim)
|
||||
#define custom_panel_set_split_sig() b32 custom_panel_set_split(Application_Links* app, Panel_ID panel_id, Panel_Split_Kind kind, f32 t)
|
||||
#define custom_panel_swap_children_sig() b32 custom_panel_swap_children(Application_Links* app, Panel_ID panel_id, Panel_Split_Kind kind, float t)
|
||||
#define custom_panel_swap_children_sig() b32 custom_panel_swap_children(Application_Links* app, Panel_ID panel_id)
|
||||
#define custom_panel_get_root_sig() Panel_ID custom_panel_get_root(Application_Links* app)
|
||||
#define custom_panel_get_parent_sig() Panel_ID custom_panel_get_parent(Application_Links* app, Panel_ID panel_id)
|
||||
#define custom_panel_get_child_sig() Panel_ID custom_panel_get_child(Application_Links* app, Panel_ID panel_id, Side which_child)
|
||||
#define custom_panel_get_max_sig() Panel_ID custom_panel_get_max(Application_Links* app, Panel_ID panel_id)
|
||||
|
@ -89,6 +90,7 @@
|
|||
#define custom_view_set_cursor_sig() b32 custom_view_set_cursor(Application_Links* app, View_ID view_id, Buffer_Seek seek)
|
||||
#define custom_view_set_buffer_scroll_sig() b32 custom_view_set_buffer_scroll(Application_Links* app, View_ID view_id, Buffer_Scroll scroll, Set_Buffer_Scroll_Rule rule)
|
||||
#define custom_view_set_mark_sig() b32 custom_view_set_mark(Application_Links* app, View_ID view_id, Buffer_Seek seek)
|
||||
#define custom_view_quit_ui_sig() b32 custom_view_quit_ui(Application_Links* app, View_ID view_id)
|
||||
#define custom_view_set_buffer_sig() b32 custom_view_set_buffer(Application_Links* app, View_ID view_id, Buffer_ID buffer_id, Set_Buffer_Flag flags)
|
||||
#define custom_view_post_fade_sig() b32 custom_view_post_fade(Application_Links* app, View_ID view_id, f32 seconds, Range_i64 range, FColor color)
|
||||
#define custom_view_push_context_sig() b32 custom_view_push_context(Application_Links* app, View_ID view_id, View_Context* ctx)
|
||||
|
@ -248,7 +250,8 @@ typedef b32 custom_panel_is_split_type(Application_Links* app, Panel_ID panel_id
|
|||
typedef b32 custom_panel_is_leaf_type(Application_Links* app, Panel_ID panel_id);
|
||||
typedef b32 custom_panel_split_type(Application_Links* app, Panel_ID panel_id, Dimension split_dim);
|
||||
typedef b32 custom_panel_set_split_type(Application_Links* app, Panel_ID panel_id, Panel_Split_Kind kind, f32 t);
|
||||
typedef b32 custom_panel_swap_children_type(Application_Links* app, Panel_ID panel_id, Panel_Split_Kind kind, float t);
|
||||
typedef b32 custom_panel_swap_children_type(Application_Links* app, Panel_ID panel_id);
|
||||
typedef Panel_ID custom_panel_get_root_type(Application_Links* app);
|
||||
typedef Panel_ID custom_panel_get_parent_type(Application_Links* app, Panel_ID panel_id);
|
||||
typedef Panel_ID custom_panel_get_child_type(Application_Links* app, Panel_ID panel_id, Side which_child);
|
||||
typedef Panel_ID custom_panel_get_max_type(Application_Links* app, Panel_ID panel_id);
|
||||
|
@ -266,6 +269,7 @@ typedef Buffer_Cursor custom_view_compute_cursor_type(Application_Links* app, Vi
|
|||
typedef b32 custom_view_set_cursor_type(Application_Links* app, View_ID view_id, Buffer_Seek seek);
|
||||
typedef b32 custom_view_set_buffer_scroll_type(Application_Links* app, View_ID view_id, Buffer_Scroll scroll, Set_Buffer_Scroll_Rule rule);
|
||||
typedef b32 custom_view_set_mark_type(Application_Links* app, View_ID view_id, Buffer_Seek seek);
|
||||
typedef b32 custom_view_quit_ui_type(Application_Links* app, View_ID view_id);
|
||||
typedef b32 custom_view_set_buffer_type(Application_Links* app, View_ID view_id, Buffer_ID buffer_id, Set_Buffer_Flag flags);
|
||||
typedef b32 custom_view_post_fade_type(Application_Links* app, View_ID view_id, f32 seconds, Range_i64 range, FColor color);
|
||||
typedef b32 custom_view_push_context_type(Application_Links* app, View_ID view_id, View_Context* ctx);
|
||||
|
@ -427,6 +431,7 @@ custom_panel_is_leaf_type *panel_is_leaf;
|
|||
custom_panel_split_type *panel_split;
|
||||
custom_panel_set_split_type *panel_set_split;
|
||||
custom_panel_swap_children_type *panel_swap_children;
|
||||
custom_panel_get_root_type *panel_get_root;
|
||||
custom_panel_get_parent_type *panel_get_parent;
|
||||
custom_panel_get_child_type *panel_get_child;
|
||||
custom_panel_get_max_type *panel_get_max;
|
||||
|
@ -444,6 +449,7 @@ custom_view_compute_cursor_type *view_compute_cursor;
|
|||
custom_view_set_cursor_type *view_set_cursor;
|
||||
custom_view_set_buffer_scroll_type *view_set_buffer_scroll;
|
||||
custom_view_set_mark_type *view_set_mark;
|
||||
custom_view_quit_ui_type *view_quit_ui;
|
||||
custom_view_set_buffer_type *view_set_buffer;
|
||||
custom_view_post_fade_type *view_post_fade;
|
||||
custom_view_push_context_type *view_push_context;
|
||||
|
@ -605,7 +611,8 @@ internal b32 panel_is_split(Application_Links* app, Panel_ID panel_id);
|
|||
internal b32 panel_is_leaf(Application_Links* app, Panel_ID panel_id);
|
||||
internal b32 panel_split(Application_Links* app, Panel_ID panel_id, Dimension split_dim);
|
||||
internal b32 panel_set_split(Application_Links* app, Panel_ID panel_id, Panel_Split_Kind kind, f32 t);
|
||||
internal b32 panel_swap_children(Application_Links* app, Panel_ID panel_id, Panel_Split_Kind kind, float t);
|
||||
internal b32 panel_swap_children(Application_Links* app, Panel_ID panel_id);
|
||||
internal Panel_ID panel_get_root(Application_Links* app);
|
||||
internal Panel_ID panel_get_parent(Application_Links* app, Panel_ID panel_id);
|
||||
internal Panel_ID panel_get_child(Application_Links* app, Panel_ID panel_id, Side which_child);
|
||||
internal Panel_ID panel_get_max(Application_Links* app, Panel_ID panel_id);
|
||||
|
@ -623,6 +630,7 @@ internal Buffer_Cursor view_compute_cursor(Application_Links* app, View_ID view_
|
|||
internal b32 view_set_cursor(Application_Links* app, View_ID view_id, Buffer_Seek seek);
|
||||
internal b32 view_set_buffer_scroll(Application_Links* app, View_ID view_id, Buffer_Scroll scroll, Set_Buffer_Scroll_Rule rule);
|
||||
internal b32 view_set_mark(Application_Links* app, View_ID view_id, Buffer_Seek seek);
|
||||
internal b32 view_quit_ui(Application_Links* app, View_ID view_id);
|
||||
internal b32 view_set_buffer(Application_Links* app, View_ID view_id, Buffer_ID buffer_id, Set_Buffer_Flag flags);
|
||||
internal b32 view_post_fade(Application_Links* app, View_ID view_id, f32 seconds, Range_i64 range, FColor color);
|
||||
internal b32 view_push_context(Application_Links* app, View_ID view_id, View_Context* ctx);
|
||||
|
@ -785,6 +793,7 @@ global custom_panel_is_leaf_type *panel_is_leaf = 0;
|
|||
global custom_panel_split_type *panel_split = 0;
|
||||
global custom_panel_set_split_type *panel_set_split = 0;
|
||||
global custom_panel_swap_children_type *panel_swap_children = 0;
|
||||
global custom_panel_get_root_type *panel_get_root = 0;
|
||||
global custom_panel_get_parent_type *panel_get_parent = 0;
|
||||
global custom_panel_get_child_type *panel_get_child = 0;
|
||||
global custom_panel_get_max_type *panel_get_max = 0;
|
||||
|
@ -802,6 +811,7 @@ global custom_view_compute_cursor_type *view_compute_cursor = 0;
|
|||
global custom_view_set_cursor_type *view_set_cursor = 0;
|
||||
global custom_view_set_buffer_scroll_type *view_set_buffer_scroll = 0;
|
||||
global custom_view_set_mark_type *view_set_mark = 0;
|
||||
global custom_view_quit_ui_type *view_quit_ui = 0;
|
||||
global custom_view_set_buffer_type *view_set_buffer = 0;
|
||||
global custom_view_post_fade_type *view_post_fade = 0;
|
||||
global custom_view_push_context_type *view_push_context = 0;
|
||||
|
|
|
@ -71,7 +71,8 @@ api(custom) function b32 panel_is_split(Application_Links* app, Panel_ID panel_i
|
|||
api(custom) function b32 panel_is_leaf(Application_Links* app, Panel_ID panel_id);
|
||||
api(custom) function b32 panel_split(Application_Links* app, Panel_ID panel_id, Dimension split_dim);
|
||||
api(custom) function b32 panel_set_split(Application_Links* app, Panel_ID panel_id, Panel_Split_Kind kind, f32 t);
|
||||
api(custom) function b32 panel_swap_children(Application_Links* app, Panel_ID panel_id, Panel_Split_Kind kind, float t);
|
||||
api(custom) function b32 panel_swap_children(Application_Links* app, Panel_ID panel_id);
|
||||
api(custom) function Panel_ID panel_get_root(Application_Links* app);
|
||||
api(custom) function Panel_ID panel_get_parent(Application_Links* app, Panel_ID panel_id);
|
||||
api(custom) function Panel_ID panel_get_child(Application_Links* app, Panel_ID panel_id, Side which_child);
|
||||
api(custom) function Panel_ID panel_get_max(Application_Links* app, Panel_ID panel_id);
|
||||
|
@ -89,6 +90,7 @@ api(custom) function Buffer_Cursor view_compute_cursor(Application_Links* app, V
|
|||
api(custom) function b32 view_set_cursor(Application_Links* app, View_ID view_id, Buffer_Seek seek);
|
||||
api(custom) function b32 view_set_buffer_scroll(Application_Links* app, View_ID view_id, Buffer_Scroll scroll, Set_Buffer_Scroll_Rule rule);
|
||||
api(custom) function b32 view_set_mark(Application_Links* app, View_ID view_id, Buffer_Seek seek);
|
||||
api(custom) function b32 view_quit_ui(Application_Links* app, View_ID view_id);
|
||||
api(custom) function b32 view_set_buffer(Application_Links* app, View_ID view_id, Buffer_ID buffer_id, Set_Buffer_Flag flags);
|
||||
api(custom) function b32 view_post_fade(Application_Links* app, View_ID view_id, f32 seconds, Range_i64 range, FColor color);
|
||||
api(custom) function b32 view_push_context(Application_Links* app, View_ID view_id, View_Context* ctx);
|
||||
|
|
|
@ -113,7 +113,7 @@ setup_default_mapping(Mapping *mapping){
|
|||
Bind(redo, KeyCode_Y, KeyCode_Control);
|
||||
Bind(undo, KeyCode_Z, KeyCode_Control);
|
||||
Bind(view_buffer_other_panel, KeyCode_1, KeyCode_Control);
|
||||
Bind(swap_buffers_between_panels, KeyCode_2, KeyCode_Control);
|
||||
Bind(swap_panels, KeyCode_2, KeyCode_Control);
|
||||
Bind(if_read_only_goto_position, KeyCode_Return);
|
||||
Bind(if_read_only_goto_position_same_panel, KeyCode_Return, KeyCode_Shift);
|
||||
Bind(view_jump_list_with_lister, KeyCode_Period, KeyCode_Control, KeyCode_Shift);
|
||||
|
|
Loading…
Reference in New Issue