Merge branch 'ilidemi-orca_ui' into main

This commit is contained in:
Martin Fouilleul 2023-07-15 11:42:48 +02:00
commit 6a3cb83932
7 changed files with 29 additions and 21 deletions

View File

@ -194,7 +194,8 @@ typedef enum {
MP_KEYMOD_ALT = 0x01, MP_KEYMOD_ALT = 0x01,
MP_KEYMOD_SHIFT = 0x02, MP_KEYMOD_SHIFT = 0x02,
MP_KEYMOD_CTRL = 0x04, MP_KEYMOD_CTRL = 0x04,
MP_KEYMOD_CMD = 0x08 } mp_keymod_flags; MP_KEYMOD_CMD = 0x08,
MP_KEYMOD_MAIN_MODIFIER = 0x16 /* CMD on Mac, CTRL on Win32 */ } mp_keymod_flags;
typedef enum { typedef enum {
MP_MOUSE_LEFT = 0x00, MP_MOUSE_LEFT = 0x00,

View File

@ -253,6 +253,7 @@ static mp_keymod_flags mp_convert_osx_mods(NSUInteger nsFlags)
if(nsFlags & NSEventModifierFlagCommand) if(nsFlags & NSEventModifierFlagCommand)
{ {
mods |= MP_KEYMOD_CMD; mods |= MP_KEYMOD_CMD;
mods |= MP_KEYMOD_MAIN_MODIFIER;
} }
return(mods); return(mods);
} }

View File

@ -0,0 +1,4 @@
#include"util/typedefs.h"
#include"platform_clock.h"
f64 ORCA_IMPORT(mp_get_time)(mp_clock_kind clock);

View File

@ -10,6 +10,7 @@
#define __PLATFORM_CLOCK_H_ #define __PLATFORM_CLOCK_H_
#include"util/typedefs.h" #include"util/typedefs.h"
#include"platform.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View File

@ -6,11 +6,11 @@
* @revision: * @revision:
* *
*****************************************************************/ *****************************************************************/
#include"platform.h" #include"platform/platform.h"
#include"platform_assert.h" #include"platform/platform_assert.h"
#include"memory.h" #include"platform/platform_clock.h"
#include"hash.h" #include"util/memory.h"
#include"platform_clock.h" #include"util/hash.h"
#include"ui.h" #include"ui.h"
static ui_style UI_STYLE_DEFAULTS = static ui_style UI_STYLE_DEFAULTS =
@ -2249,6 +2249,7 @@ str32 ui_edit_delete_selection(ui_context* ui, str32 codepoints)
void ui_edit_copy_selection_to_clipboard(ui_context* ui, str32 codepoints) void ui_edit_copy_selection_to_clipboard(ui_context* ui, str32 codepoints)
{ {
#if !PLATFORM_ORCA
if(ui->editCursor == ui->editMark) if(ui->editCursor == ui->editMark)
{ {
return; return;
@ -2260,13 +2261,18 @@ void ui_edit_copy_selection_to_clipboard(ui_context* ui, str32 codepoints)
mp_clipboard_clear(); mp_clipboard_clear();
mp_clipboard_set_string(string); mp_clipboard_set_string(string);
#endif
} }
str32 ui_edit_replace_selection_with_clipboard(ui_context* ui, str32 codepoints) str32 ui_edit_replace_selection_with_clipboard(ui_context* ui, str32 codepoints)
{ {
#if PLATFORM_ORCA
str32 result = {0};
#else
str8 string = mp_clipboard_get_string(&ui->frameArena); str8 string = mp_clipboard_get_string(&ui->frameArena);
str32 input = utf8_push_to_codepoints(&ui->frameArena, string); str32 input = utf8_push_to_codepoints(&ui->frameArena, string);
str32 result = ui_edit_replace_selection_with_codepoints(ui, codepoints, input); str32 result = ui_edit_replace_selection_with_codepoints(ui, codepoints, input);
#endif
return(result); return(result);
} }
@ -2297,12 +2303,6 @@ typedef struct ui_edit_command
} ui_edit_command; } ui_edit_command;
#if PLATFORM_WINDOWS
#define OS_COPY_PASTE_MOD MP_KEYMOD_CTRL
#elif PLATFORM_MACOS
#define OS_COPY_PASTE_MOD MP_KEYMOD_CMD
#endif
const ui_edit_command UI_EDIT_COMMANDS[] = { const ui_edit_command UI_EDIT_COMMANDS[] = {
//NOTE(martin): move one left //NOTE(martin): move one left
{ {
@ -2395,7 +2395,7 @@ const ui_edit_command UI_EDIT_COMMANDS[] = {
//NOTE(martin): select all //NOTE(martin): select all
{ {
.key = MP_KEY_Q, .key = MP_KEY_Q,
.mods = OS_COPY_PASTE_MOD, .mods = MP_KEYMOD_MAIN_MODIFIER,
.operation = UI_EDIT_SELECT_ALL, .operation = UI_EDIT_SELECT_ALL,
.move = UI_EDIT_MOVE_NONE .move = UI_EDIT_MOVE_NONE
}, },
@ -2416,21 +2416,21 @@ const ui_edit_command UI_EDIT_COMMANDS[] = {
//NOTE(martin): cut //NOTE(martin): cut
{ {
.key = MP_KEY_X, .key = MP_KEY_X,
.mods = OS_COPY_PASTE_MOD, .mods = MP_KEYMOD_MAIN_MODIFIER,
.operation = UI_EDIT_CUT, .operation = UI_EDIT_CUT,
.move = UI_EDIT_MOVE_NONE .move = UI_EDIT_MOVE_NONE
}, },
//NOTE(martin): copy //NOTE(martin): copy
{ {
.key = MP_KEY_C, .key = MP_KEY_C,
.mods = OS_COPY_PASTE_MOD, .mods = MP_KEYMOD_MAIN_MODIFIER,
.operation = UI_EDIT_COPY, .operation = UI_EDIT_COPY,
.move = UI_EDIT_MOVE_NONE .move = UI_EDIT_MOVE_NONE
}, },
//NOTE(martin): paste //NOTE(martin): paste
{ {
.key = MP_KEY_V, .key = MP_KEY_V,
.mods = OS_COPY_PASTE_MOD, .mods = MP_KEYMOD_MAIN_MODIFIER,
.operation = UI_EDIT_PASTE, .operation = UI_EDIT_PASTE,
.move = UI_EDIT_MOVE_NONE .move = UI_EDIT_MOVE_NONE
} }

View File

@ -7,7 +7,7 @@
* *
*****************************************************************/ *****************************************************************/
#include"hash.h" #include"hash.h"
#include"platform.h" #include"platform/platform.h"
#if ARCH_X64 #if ARCH_X64
#include<immintrin.h> #include<immintrin.h>

View File

@ -191,6 +191,7 @@ static mp_keymod_flags mp_get_mod_keys()
if(GetKeyState(VK_CONTROL) & 0x8000) if(GetKeyState(VK_CONTROL) & 0x8000)
{ {
mods |= MP_KEYMOD_CTRL; mods |= MP_KEYMOD_CTRL;
mods |= MP_KEYMOD_MAIN_MODIFIER;
} }
if(GetKeyState(VK_MENU) & 0x8000) if(GetKeyState(VK_MENU) & 0x8000)
{ {