Merge branch 'ilidemi-orca_ui' into main
This commit is contained in:
commit
6a3cb83932
11
src/mp_app.h
11
src/mp_app.h
|
@ -190,11 +190,12 @@ typedef enum { MP_KEY_UNKNOWN = 0,
|
||||||
MP_KEY_COUNT } mp_key_code;
|
MP_KEY_COUNT } mp_key_code;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
MP_KEYMOD_NONE = 0x00,
|
MP_KEYMOD_NONE = 0x00,
|
||||||
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,
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
#include"util/typedefs.h"
|
||||||
|
#include"platform_clock.h"
|
||||||
|
|
||||||
|
f64 ORCA_IMPORT(mp_get_time)(mp_clock_kind clock);
|
|
@ -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" {
|
||||||
|
|
30
src/ui.c
30
src/ui.c
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue