Add simple maximize window command
This commit is contained in:
parent
1459ef7cbc
commit
a3bcd64198
|
@ -532,6 +532,12 @@ CUSTOM_DOC("Toggle fullscreen mode on or off. The change(s) do not take effect
|
|||
system_set_fullscreen(!system_is_fullscreen());
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(toggle_maximize)
|
||||
CUSTOM_DOC("Toggle maximized mode on or off. The change(s) do not take effect until the next frame.")
|
||||
{
|
||||
system_set_maximized(!system_is_maximized());
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(load_themes_default_folder)
|
||||
CUSTOM_DOC("Loads all the theme files in the default theme folder.")
|
||||
{
|
||||
|
|
|
@ -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 268
|
||||
#define command_one_past_last_id 269
|
||||
#if defined(CUSTOM_COMMAND_SIG)
|
||||
#define PROC_LINKS(x,y) x
|
||||
#else
|
||||
|
@ -255,6 +255,7 @@ CUSTOM_COMMAND_SIG(toggle_highlight_enclosing_scopes);
|
|||
CUSTOM_COMMAND_SIG(toggle_highlight_line_at_cursor);
|
||||
CUSTOM_COMMAND_SIG(toggle_line_numbers);
|
||||
CUSTOM_COMMAND_SIG(toggle_line_wrap);
|
||||
CUSTOM_COMMAND_SIG(toggle_maximize);
|
||||
CUSTOM_COMMAND_SIG(toggle_mouse);
|
||||
CUSTOM_COMMAND_SIG(toggle_paren_matching_helper);
|
||||
CUSTOM_COMMAND_SIG(toggle_show_whitespace);
|
||||
|
@ -805,26 +806,27 @@ static i32 fcoder_metacmd_ID_toggle_highlight_enclosing_scopes = 242;
|
|||
static i32 fcoder_metacmd_ID_toggle_highlight_line_at_cursor = 243;
|
||||
static i32 fcoder_metacmd_ID_toggle_line_numbers = 244;
|
||||
static i32 fcoder_metacmd_ID_toggle_line_wrap = 245;
|
||||
static i32 fcoder_metacmd_ID_toggle_mouse = 246;
|
||||
static i32 fcoder_metacmd_ID_toggle_paren_matching_helper = 247;
|
||||
static i32 fcoder_metacmd_ID_toggle_show_whitespace = 248;
|
||||
static i32 fcoder_metacmd_ID_toggle_virtual_whitespace = 249;
|
||||
static i32 fcoder_metacmd_ID_tutorial_maximize = 250;
|
||||
static i32 fcoder_metacmd_ID_tutorial_minimize = 251;
|
||||
static i32 fcoder_metacmd_ID_uncomment_line = 252;
|
||||
static i32 fcoder_metacmd_ID_undo = 253;
|
||||
static i32 fcoder_metacmd_ID_undo_all_buffers = 254;
|
||||
static i32 fcoder_metacmd_ID_view_buffer_other_panel = 255;
|
||||
static i32 fcoder_metacmd_ID_view_jump_list_with_lister = 256;
|
||||
static i32 fcoder_metacmd_ID_word_complete = 257;
|
||||
static i32 fcoder_metacmd_ID_word_complete_drop_down = 258;
|
||||
static i32 fcoder_metacmd_ID_write_block = 259;
|
||||
static i32 fcoder_metacmd_ID_write_hack = 260;
|
||||
static i32 fcoder_metacmd_ID_write_note = 261;
|
||||
static i32 fcoder_metacmd_ID_write_space = 262;
|
||||
static i32 fcoder_metacmd_ID_write_text_and_auto_indent = 263;
|
||||
static i32 fcoder_metacmd_ID_write_text_input = 264;
|
||||
static i32 fcoder_metacmd_ID_write_todo = 265;
|
||||
static i32 fcoder_metacmd_ID_write_underscore = 266;
|
||||
static i32 fcoder_metacmd_ID_write_zero_struct = 267;
|
||||
static i32 fcoder_metacmd_ID_toggle_maximize = 246;
|
||||
static i32 fcoder_metacmd_ID_toggle_mouse = 247;
|
||||
static i32 fcoder_metacmd_ID_toggle_paren_matching_helper = 248;
|
||||
static i32 fcoder_metacmd_ID_toggle_show_whitespace = 249;
|
||||
static i32 fcoder_metacmd_ID_toggle_virtual_whitespace = 250;
|
||||
static i32 fcoder_metacmd_ID_tutorial_maximize = 251;
|
||||
static i32 fcoder_metacmd_ID_tutorial_minimize = 252;
|
||||
static i32 fcoder_metacmd_ID_uncomment_line = 253;
|
||||
static i32 fcoder_metacmd_ID_undo = 254;
|
||||
static i32 fcoder_metacmd_ID_undo_all_buffers = 255;
|
||||
static i32 fcoder_metacmd_ID_view_buffer_other_panel = 256;
|
||||
static i32 fcoder_metacmd_ID_view_jump_list_with_lister = 257;
|
||||
static i32 fcoder_metacmd_ID_word_complete = 258;
|
||||
static i32 fcoder_metacmd_ID_word_complete_drop_down = 259;
|
||||
static i32 fcoder_metacmd_ID_write_block = 260;
|
||||
static i32 fcoder_metacmd_ID_write_hack = 261;
|
||||
static i32 fcoder_metacmd_ID_write_note = 262;
|
||||
static i32 fcoder_metacmd_ID_write_space = 263;
|
||||
static i32 fcoder_metacmd_ID_write_text_and_auto_indent = 264;
|
||||
static i32 fcoder_metacmd_ID_write_text_input = 265;
|
||||
static i32 fcoder_metacmd_ID_write_todo = 266;
|
||||
static i32 fcoder_metacmd_ID_write_underscore = 267;
|
||||
static i32 fcoder_metacmd_ID_write_zero_struct = 268;
|
||||
#endif
|
||||
|
|
|
@ -53,6 +53,8 @@ vtable->memory_annotation = system_memory_annotation;
|
|||
vtable->show_mouse_cursor = system_show_mouse_cursor;
|
||||
vtable->set_fullscreen = system_set_fullscreen;
|
||||
vtable->is_fullscreen = system_is_fullscreen;
|
||||
vtable->set_maximized = system_set_maximized;
|
||||
vtable->is_maximized = system_is_maximized;
|
||||
vtable->get_keyboard_modifiers = system_get_keyboard_modifiers;
|
||||
vtable->set_key_mode = system_set_key_mode;
|
||||
vtable->set_source_mixer = system_set_source_mixer;
|
||||
|
@ -114,6 +116,8 @@ system_memory_annotation = vtable->memory_annotation;
|
|||
system_show_mouse_cursor = vtable->show_mouse_cursor;
|
||||
system_set_fullscreen = vtable->set_fullscreen;
|
||||
system_is_fullscreen = vtable->is_fullscreen;
|
||||
system_set_maximized = vtable->set_maximized;
|
||||
system_is_maximized = vtable->is_maximized;
|
||||
system_get_keyboard_modifiers = vtable->get_keyboard_modifiers;
|
||||
system_set_key_mode = vtable->set_key_mode;
|
||||
system_set_source_mixer = vtable->set_source_mixer;
|
||||
|
|
|
@ -51,6 +51,8 @@
|
|||
#define system_show_mouse_cursor_sig() void system_show_mouse_cursor(i32 show)
|
||||
#define system_set_fullscreen_sig() b32 system_set_fullscreen(b32 full_screen)
|
||||
#define system_is_fullscreen_sig() b32 system_is_fullscreen(void)
|
||||
#define system_set_maximized_sig() b32 system_set_maximized(b32 maximized)
|
||||
#define system_is_maximized_sig() b32 system_is_maximized(void)
|
||||
#define system_get_keyboard_modifiers_sig() Input_Modifier_Set system_get_keyboard_modifiers(Arena* arena)
|
||||
#define system_set_key_mode_sig() void system_set_key_mode(Key_Mode mode)
|
||||
#define system_set_source_mixer_sig() void system_set_source_mixer(void* ctx, Audio_Mix_Sources_Function* mix_func)
|
||||
|
@ -108,6 +110,8 @@ typedef Memory_Annotation system_memory_annotation_type(Arena* arena);
|
|||
typedef void system_show_mouse_cursor_type(i32 show);
|
||||
typedef b32 system_set_fullscreen_type(b32 full_screen);
|
||||
typedef b32 system_is_fullscreen_type(void);
|
||||
typedef b32 system_set_maximized_type(b32 maximized);
|
||||
typedef b32 system_is_maximized_type(void);
|
||||
typedef Input_Modifier_Set system_get_keyboard_modifiers_type(Arena* arena);
|
||||
typedef void system_set_key_mode_type(Key_Mode mode);
|
||||
typedef void system_set_source_mixer_type(void* ctx, Audio_Mix_Sources_Function* mix_func);
|
||||
|
@ -166,6 +170,8 @@ system_memory_annotation_type *memory_annotation;
|
|||
system_show_mouse_cursor_type *show_mouse_cursor;
|
||||
system_set_fullscreen_type *set_fullscreen;
|
||||
system_is_fullscreen_type *is_fullscreen;
|
||||
system_set_maximized_type *set_maximized;
|
||||
system_is_maximized_type *is_maximized;
|
||||
system_get_keyboard_modifiers_type *get_keyboard_modifiers;
|
||||
system_set_key_mode_type *set_key_mode;
|
||||
system_set_source_mixer_type *set_source_mixer;
|
||||
|
@ -225,6 +231,8 @@ internal Memory_Annotation system_memory_annotation(Arena* arena);
|
|||
internal void system_show_mouse_cursor(i32 show);
|
||||
internal b32 system_set_fullscreen(b32 full_screen);
|
||||
internal b32 system_is_fullscreen(void);
|
||||
internal b32 system_set_maximized(b32 maximized);
|
||||
internal b32 system_is_maximized(void);
|
||||
internal Input_Modifier_Set system_get_keyboard_modifiers(Arena* arena);
|
||||
internal void system_set_key_mode(Key_Mode mode);
|
||||
internal void system_set_source_mixer(void* ctx, Audio_Mix_Sources_Function* mix_func);
|
||||
|
@ -284,6 +292,8 @@ global system_memory_annotation_type *system_memory_annotation = 0;
|
|||
global system_show_mouse_cursor_type *system_show_mouse_cursor = 0;
|
||||
global system_set_fullscreen_type *system_set_fullscreen = 0;
|
||||
global system_is_fullscreen_type *system_is_fullscreen = 0;
|
||||
global system_set_maximized_type *system_set_maximized = 0;
|
||||
global system_is_maximized_type *system_is_maximized = 0;
|
||||
global system_get_keyboard_modifiers_type *system_get_keyboard_modifiers = 0;
|
||||
global system_set_key_mode_type *system_set_key_mode = 0;
|
||||
global system_set_source_mixer_type *system_set_source_mixer = 0;
|
||||
|
|
|
@ -158,6 +158,8 @@ struct Win32_Vars{
|
|||
HKL kl_universal;
|
||||
|
||||
b8 full_screen;
|
||||
b8 maximized;
|
||||
b8 do_toggle_maximize;
|
||||
b8 do_toggle;
|
||||
WINDOWPLACEMENT bordered_win_pos;
|
||||
b32 send_exit_signal;
|
||||
|
@ -380,6 +382,40 @@ system_is_fullscreen_sig(){
|
|||
return(result);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////
|
||||
// NOTE(lake): Simple Window Maximization so the user still has full window header controls (minimize, maximize/restore down, close)
|
||||
|
||||
internal void
|
||||
win32_toggle_maximized() {
|
||||
HWND win = win32vars.window_handle;
|
||||
DWORD style = GetWindowLongW(win, GWL_STYLE);
|
||||
|
||||
if (!win32vars.maximized) {
|
||||
ShowWindow(win, SW_MAXIMIZE);
|
||||
win32vars.maximized = true;
|
||||
} else {
|
||||
ShowWindow(win, SW_RESTORE);
|
||||
win32vars.maximized = false;
|
||||
}
|
||||
}
|
||||
|
||||
internal
|
||||
system_set_maximized_sig() {
|
||||
win32vars.do_toggle_maximize = (win32vars.maximized != maximized);
|
||||
b32 success = true;
|
||||
return(success);
|
||||
}
|
||||
|
||||
internal
|
||||
system_is_maximized_sig() {
|
||||
b32 result = (win32vars.maximized != win32vars.do_toggle_maximize);
|
||||
return(result);
|
||||
}
|
||||
|
||||
/////////////////////////////////
|
||||
// NOTE(lake): Some keyboard modifier stuff by allen im pretty sure
|
||||
|
||||
internal
|
||||
system_get_keyboard_modifiers_sig(){
|
||||
return(copy_modifier_set(arena, &win32vars.input_chunk.pers.modifiers));
|
||||
|
@ -2246,6 +2282,12 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS
|
|||
win32vars.do_toggle = false;
|
||||
}
|
||||
|
||||
// Note(lake): toggle maximize
|
||||
if (win32vars.do_toggle_maximize) {
|
||||
win32_toggle_maximized();
|
||||
win32vars.do_toggle_maximize = false;
|
||||
}
|
||||
|
||||
// NOTE(allen): schedule another step if needed
|
||||
if (result.animating){
|
||||
system_schedule_step(0);
|
||||
|
|
|
@ -19,6 +19,7 @@ keys_global = {
|
|||
{ "build_in_build_panel", "M", "Alt" },
|
||||
{ "goto_first_jump", "M", "Alt", "Shift" },
|
||||
{ "toggle_filebar", "B", "Alt" },
|
||||
{ "toggle_maximized", "Semicolon", "Alt" },
|
||||
{ "execute_any_cli", "Z", "Alt" },
|
||||
{ "execute_previous_cli", "Z", "Alt", "Shift" },
|
||||
{ "command_lister", "X", "Alt" },
|
||||
|
|
Loading…
Reference in New Issue