add more shortcuts and checks
This commit is contained in:
@@ -611,7 +611,7 @@
|
||||
|
||||
<!--file menu-->
|
||||
<layout id="file-menu">
|
||||
<popup-menu positioning="absolute" position="100 100" width="150" thickness="1" border-color=".1" color=".4 .4 .4 .8" dir="col">
|
||||
<popup-menu positioning="absolute" position="100 100" width="200" thickness="1" border-color=".1" color=".4 .4 .4 .8" dir="col">
|
||||
<!--
|
||||
<button-custom height="30" align="center" color=".2" pad="0 20 0 10" dir="row">
|
||||
<checkbox width="20" height="20"/>
|
||||
@@ -628,51 +628,55 @@
|
||||
-->
|
||||
<button-custom id="file-newdoc" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon icon="page_add" width="20"/>
|
||||
<text text="New Pano" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="New Pano" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Ctrl-N" color=".4" justify="flex-end" margin="0 10 0 10" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
<button-custom id="file-import" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon icon="page_add" width="20"/>
|
||||
<text text="Import" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Import" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
<button-custom id="file-open" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon icon="page_add" width="20"/>
|
||||
<text text="Open" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Open" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
<button-custom id="file-browse" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon icon="page_add" width="20"/>
|
||||
<text text="Browse" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Browse" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Ctrl-O" color=".4" justify="flex-end" margin="0 10 0 10" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
<button-custom id="file-save" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon icon="disk" width="20"/>
|
||||
<text text="Save" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Save" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Ctrl-S" color=".4" justify="flex-end" margin="0 10 0 10" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
<button-custom id="file-save-as" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon icon="disk" width="20"/>
|
||||
<text text="Save As.." margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Save As.." grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
<button-custom id="file-save-ver" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon icon="disk" width="20"/>
|
||||
<text text="Save Version" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Save Version" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Ctrl-Shift-S" color=".4" justify="flex-end" margin="0 10 0 10" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
<button-custom id="file-export" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon icon="disk" width="20"/>
|
||||
<text text="Export JPG" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Export JPG" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
<button-custom id="file-export-cubes" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon icon="page_white_stack" width="20"/>
|
||||
<text text="Export Cubes" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Export Cubes" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
<button-custom id="file-cloud-upload" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon icon="weather_clouds" width="20"/>
|
||||
<text text="Cloud Upload" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Cloud Upload" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
<button-custom id="file-cloud-browse" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon icon="weather_clouds" width="20"/>
|
||||
<text text="Cloud Browse" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Cloud Browse" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
<button-custom text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
|
||||
<icon width="20"/>
|
||||
<text text="Quit" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
<text text="Quit" grow="1" margin="0 0 0 5" font-face="arial" font-size="11"/>
|
||||
</button-custom>
|
||||
</popup-menu>
|
||||
</layout>
|
||||
|
||||
@@ -10,7 +10,7 @@ void App::cloud_upload()
|
||||
{
|
||||
if (!canvas)
|
||||
return;
|
||||
if (doc_name.empty())
|
||||
if (ui::Canvas::I->m_newdoc)
|
||||
{
|
||||
auto msgbox = new NodeMessageBox();
|
||||
msgbox->m_manager = &layout;
|
||||
@@ -24,7 +24,10 @@ void App::cloud_upload()
|
||||
{
|
||||
std::thread([this] {
|
||||
std::string path = data_path + "/" + doc_name + ".pano";
|
||||
Canvas::I->project_save_thread(path);
|
||||
if (ui::Canvas::I->m_unsaved)
|
||||
{
|
||||
Canvas::I->project_save_thread(path);
|
||||
}
|
||||
|
||||
async_start();
|
||||
auto pb = show_progress("Uploading");
|
||||
|
||||
@@ -393,13 +393,13 @@ void App::init_menu_file()
|
||||
popup->destroy();
|
||||
};
|
||||
popup->find<NodeButtonCustom>("file-save")->on_click = [this](Node*) {
|
||||
if (doc_name.empty())
|
||||
if (ui::Canvas::I->m_newdoc)
|
||||
{
|
||||
dialog_save();
|
||||
}
|
||||
else
|
||||
else if(ui::Canvas::I->m_unsaved)
|
||||
{
|
||||
canvas->m_canvas->project_save(data_path + "/" + doc_name + ".pano");
|
||||
canvas->m_canvas->project_save();
|
||||
}
|
||||
popup->mouse_release();
|
||||
popup->destroy();
|
||||
@@ -410,7 +410,7 @@ void App::init_menu_file()
|
||||
popup->destroy();
|
||||
};
|
||||
popup->find<NodeButtonCustom>("file-save-ver")->on_click = [this](Node*) {
|
||||
doc_name.empty() ? dialog_save() : dialog_save_ver();
|
||||
ui::Canvas::I->m_newdoc ? dialog_save() : dialog_save_ver();
|
||||
popup->mouse_release();
|
||||
popup->destroy();
|
||||
};
|
||||
|
||||
@@ -1615,9 +1615,11 @@ void ui::Canvas::project_save_thread(std::string file_path)
|
||||
|
||||
App::I.async_start();
|
||||
pb->destroy();
|
||||
App::I.title_update();
|
||||
App::I.async_update();
|
||||
App::I.async_end();
|
||||
m_unsaved = false;
|
||||
m_newdoc = false;
|
||||
}
|
||||
|
||||
void ui::Canvas::project_open(std::string file_path, std::function<void()> on_complete)
|
||||
@@ -1761,9 +1763,11 @@ void ui::Canvas::project_open_thread(std::string file_path)
|
||||
gl.save();
|
||||
App::I.async_update();
|
||||
gl.restore();
|
||||
App::I.title_update();
|
||||
App::I.async_end();
|
||||
}
|
||||
m_unsaved = false;
|
||||
m_newdoc = false;
|
||||
}
|
||||
|
||||
ui::Image ui::Canvas::thumbnail_generate(int w, int h)
|
||||
|
||||
@@ -49,6 +49,7 @@ public:
|
||||
Plane m_plane_brush;
|
||||
BrushMesh m_mesh;
|
||||
bool m_unsaved = false;
|
||||
bool m_newdoc = true;
|
||||
bool m_dirty = false;
|
||||
bool m_commit_delayed = false;
|
||||
bool m_dirty_stroke = false;
|
||||
|
||||
@@ -8,8 +8,66 @@ enum class kKey : uint8_t
|
||||
AndroidHome,
|
||||
AndroidBack,
|
||||
KeySpacebar,
|
||||
KeyA,
|
||||
KeyB,
|
||||
KeyC,
|
||||
KeyD,
|
||||
KeyE,
|
||||
KeyF,
|
||||
KeyG,
|
||||
KeyH,
|
||||
KeyI,
|
||||
KeyJ,
|
||||
KeyK,
|
||||
KeyL,
|
||||
KeyM,
|
||||
KeyN,
|
||||
KeyO,
|
||||
KeyP,
|
||||
KeyQ,
|
||||
KeyR,
|
||||
KeyS,
|
||||
KeyT,
|
||||
KeyU,
|
||||
KeyV,
|
||||
KeyW,
|
||||
KeyX,
|
||||
KeyY,
|
||||
KeyZ,
|
||||
Key0,
|
||||
Key1,
|
||||
Key2,
|
||||
Key3,
|
||||
Key4,
|
||||
Key5,
|
||||
Key6,
|
||||
Key7,
|
||||
Key8,
|
||||
Key9,
|
||||
KeyF1,
|
||||
KeyF2,
|
||||
KeyF3,
|
||||
KeyF4,
|
||||
KeyF5,
|
||||
KeyF6,
|
||||
KeyF7,
|
||||
KeyF8,
|
||||
KeyF9,
|
||||
KeyF10,
|
||||
KeyF11,
|
||||
KeyF12,
|
||||
KeyF13,
|
||||
KeyF14,
|
||||
KeyF15,
|
||||
KeyF16,
|
||||
KeyF17,
|
||||
KeyF18,
|
||||
KeyF19,
|
||||
KeyF20,
|
||||
KeyF21,
|
||||
KeyF22,
|
||||
KeyF23,
|
||||
KeyF24,
|
||||
KeyAlt,
|
||||
KeyCtrl,
|
||||
KeyShift,
|
||||
|
||||
216
engine/keymap.h
216
engine/keymap.h
@@ -123,51 +123,51 @@ kKey convert_key(int key)
|
||||
switch(key)
|
||||
{
|
||||
#ifdef __APPLE__
|
||||
CASE(kVK_ANSI_A, kKey::Unknown);
|
||||
CASE(kVK_ANSI_S, kKey::Unknown);
|
||||
CASE(kVK_ANSI_D, kKey::Unknown);
|
||||
CASE(kVK_ANSI_F, kKey::Unknown);
|
||||
CASE(kVK_ANSI_H, kKey::Unknown);
|
||||
CASE(kVK_ANSI_G, kKey::Unknown);
|
||||
CASE(kVK_ANSI_A, kKey::KeyA);
|
||||
CASE(kVK_ANSI_S, kKey::KeyS);
|
||||
CASE(kVK_ANSI_D, kKey::KeyD);
|
||||
CASE(kVK_ANSI_F, kKey::KeyF);
|
||||
CASE(kVK_ANSI_H, kKey::KeyH);
|
||||
CASE(kVK_ANSI_G, kKey::KeyG);
|
||||
CASE(kVK_ANSI_Z, kKey::KeyZ);
|
||||
CASE(kVK_ANSI_X, kKey::Unknown);
|
||||
CASE(kVK_ANSI_C, kKey::Unknown);
|
||||
CASE(kVK_ANSI_V, kKey::Unknown);
|
||||
CASE(kVK_ANSI_B, kKey::Unknown);
|
||||
CASE(kVK_ANSI_Q, kKey::Unknown);
|
||||
CASE(kVK_ANSI_W, kKey::Unknown);
|
||||
CASE(kVK_ANSI_X, kKey::KeyX);
|
||||
CASE(kVK_ANSI_C, kKey::KeyC);
|
||||
CASE(kVK_ANSI_V, kKey::KeyV);
|
||||
CASE(kVK_ANSI_B, kKey::KeyB);
|
||||
CASE(kVK_ANSI_Q, kKey::KeyQ);
|
||||
CASE(kVK_ANSI_W, kKey::KeyW);
|
||||
CASE(kVK_ANSI_E, kKey::KeyE);
|
||||
CASE(kVK_ANSI_R, kKey::Unknown);
|
||||
CASE(kVK_ANSI_Y, kKey::Unknown);
|
||||
CASE(kVK_ANSI_T, kKey::Unknown);
|
||||
CASE(kVK_ANSI_1, kKey::Unknown);
|
||||
CASE(kVK_ANSI_2, kKey::Unknown);
|
||||
CASE(kVK_ANSI_3, kKey::Unknown);
|
||||
CASE(kVK_ANSI_4, kKey::Unknown);
|
||||
CASE(kVK_ANSI_6, kKey::Unknown);
|
||||
CASE(kVK_ANSI_5, kKey::Unknown);
|
||||
CASE(kVK_ANSI_R, kKey::KeyR);
|
||||
CASE(kVK_ANSI_Y, kKey::KeyY);
|
||||
CASE(kVK_ANSI_T, kKey::KeyT);
|
||||
CASE(kVK_ANSI_1, kKey::Key1);
|
||||
CASE(kVK_ANSI_2, kKey::Key2);
|
||||
CASE(kVK_ANSI_3, kKey::Key3);
|
||||
CASE(kVK_ANSI_4, kKey::Key4);
|
||||
CASE(kVK_ANSI_6, kKey::Key6);
|
||||
CASE(kVK_ANSI_5, kKey::Key5);
|
||||
CASE(kVK_ANSI_Equal, kKey::Unknown);
|
||||
CASE(kVK_ANSI_9, kKey::Unknown);
|
||||
CASE(kVK_ANSI_7, kKey::Unknown);
|
||||
CASE(kVK_ANSI_9, kKey::Key9);
|
||||
CASE(kVK_ANSI_7, kKey::Key7);
|
||||
CASE(kVK_ANSI_Minus, kKey::Unknown);
|
||||
CASE(kVK_ANSI_8, kKey::Unknown);
|
||||
CASE(kVK_ANSI_0, kKey::Unknown);
|
||||
CASE(kVK_ANSI_8, kKey::Key8);
|
||||
CASE(kVK_ANSI_0, kKey::Key0);
|
||||
CASE(kVK_ANSI_RightBracket, kKey::Unknown);
|
||||
CASE(kVK_ANSI_O, kKey::Unknown);
|
||||
CASE(kVK_ANSI_U, kKey::Unknown);
|
||||
CASE(kVK_ANSI_O, kKey::KeyO);
|
||||
CASE(kVK_ANSI_U, kKey::KeyU);
|
||||
CASE(kVK_ANSI_LeftBracket, kKey::Unknown);
|
||||
CASE(kVK_ANSI_I, kKey::Unknown);
|
||||
CASE(kVK_ANSI_P, kKey::Unknown);
|
||||
CASE(kVK_ANSI_L, kKey::Unknown);
|
||||
CASE(kVK_ANSI_J, kKey::Unknown);
|
||||
CASE(kVK_ANSI_I, kKey::KeyI);
|
||||
CASE(kVK_ANSI_P, kKey::KeyP);
|
||||
CASE(kVK_ANSI_L, kKey::KeyL);
|
||||
CASE(kVK_ANSI_J, kKey::KeyJ);
|
||||
CASE(kVK_ANSI_Quote, kKey::Unknown);
|
||||
CASE(kVK_ANSI_K, kKey::Unknown);
|
||||
CASE(kVK_ANSI_K, kKey::KeyK);
|
||||
CASE(kVK_ANSI_Semicolon, kKey::Unknown);
|
||||
CASE(kVK_ANSI_Backslash, kKey::Unknown);
|
||||
CASE(kVK_ANSI_Comma, kKey::Unknown);
|
||||
CASE(kVK_ANSI_Slash, kKey::Unknown);
|
||||
CASE(kVK_ANSI_N, kKey::Unknown);
|
||||
CASE(kVK_ANSI_M, kKey::Unknown);
|
||||
CASE(kVK_ANSI_N, kKey::KeyN);
|
||||
CASE(kVK_ANSI_M, kKey::KeyM);
|
||||
CASE(kVK_ANSI_Period, kKey::Unknown);
|
||||
CASE(kVK_ANSI_Grave, kKey::Unknown);
|
||||
CASE(kVK_ANSI_KeypadDecimal, kKey::Unknown);
|
||||
@@ -206,22 +206,22 @@ kKey convert_key(int key)
|
||||
CASE(kVK_VolumeUp, kKey::Unknown);
|
||||
CASE(kVK_VolumeDown, kKey::Unknown);
|
||||
CASE(kVK_Mute, kKey::Unknown);
|
||||
CASE(kVK_F18, kKey::Unknown);
|
||||
CASE(kVK_F19, kKey::Unknown);
|
||||
CASE(kVK_F20, kKey::Unknown);
|
||||
CASE(kVK_F5, kKey::Unknown);
|
||||
CASE(kVK_F6, kKey::Unknown);
|
||||
CASE(kVK_F7, kKey::Unknown);
|
||||
CASE(kVK_F3, kKey::Unknown);
|
||||
CASE(kVK_F8, kKey::Unknown);
|
||||
CASE(kVK_F9, kKey::Unknown);
|
||||
CASE(kVK_F11, kKey::Unknown);
|
||||
CASE(kVK_F13, kKey::Unknown);
|
||||
CASE(kVK_F16, kKey::Unknown);
|
||||
CASE(kVK_F14, kKey::Unknown);
|
||||
CASE(kVK_F10, kKey::Unknown);
|
||||
CASE(kVK_F12, kKey::Unknown);
|
||||
CASE(kVK_F15, kKey::Unknown);
|
||||
CASE(kVK_F18, kKey::KeyF18);
|
||||
CASE(kVK_F19, kKey::KeyF19);
|
||||
CASE(kVK_F20, kKey::KeyF20);
|
||||
CASE(kVK_F5, kKey::KeyF5);
|
||||
CASE(kVK_F6, kKey::KeyF6);
|
||||
CASE(kVK_F7, kKey::KeyF7);
|
||||
CASE(kVK_F3, kKey::KeyF3);
|
||||
CASE(kVK_F8, kKey::KeyF8);
|
||||
CASE(kVK_F9, kKey::KeyF9);
|
||||
CASE(kVK_F11, kKey::KeyF11);
|
||||
CASE(kVK_F13, kKey::KeyF13);
|
||||
CASE(kVK_F16, kKey::KeyF16);
|
||||
CASE(kVK_F14, kKey::KeyF14);
|
||||
CASE(kVK_F10, kKey::KeyF10);
|
||||
CASE(kVK_F12, kKey::KeyF12);
|
||||
CASE(kVK_F15, kKey::KeyF15);
|
||||
CASE(kVK_Help, kKey::Unknown);
|
||||
CASE(kVK_Home, kKey::Unknown);
|
||||
CASE(kVK_PageUp, kKey::Unknown);
|
||||
@@ -279,41 +279,41 @@ kKey convert_key(int key)
|
||||
CASE(VK_INSERT, kKey::Unknown);
|
||||
CASE(VK_DELETE, kKey::Unknown);
|
||||
CASE(VK_HELP, kKey::Unknown);
|
||||
CASE('0', kKey::Unknown);
|
||||
CASE('1', kKey::Unknown);
|
||||
CASE('2', kKey::Unknown);
|
||||
CASE('3', kKey::Unknown);
|
||||
CASE('4', kKey::Unknown);
|
||||
CASE('5', kKey::Unknown);
|
||||
CASE('6', kKey::Unknown);
|
||||
CASE('7', kKey::Unknown);
|
||||
CASE('8', kKey::Unknown);
|
||||
CASE('9', kKey::Unknown);
|
||||
CASE('A', kKey::Unknown);
|
||||
CASE('B', kKey::Unknown);
|
||||
CASE('C', kKey::Unknown);
|
||||
CASE('D', kKey::Unknown);
|
||||
CASE('0', kKey::Key0);
|
||||
CASE('1', kKey::Key1);
|
||||
CASE('2', kKey::Key2);
|
||||
CASE('3', kKey::Key3);
|
||||
CASE('4', kKey::Key4);
|
||||
CASE('5', kKey::Key5);
|
||||
CASE('6', kKey::Key6);
|
||||
CASE('7', kKey::Key7);
|
||||
CASE('8', kKey::Key8);
|
||||
CASE('9', kKey::Key9);
|
||||
CASE('A', kKey::KeyA);
|
||||
CASE('B', kKey::KeyB);
|
||||
CASE('C', kKey::KeyC);
|
||||
CASE('D', kKey::KeyD);
|
||||
CASE('E', kKey::KeyE);
|
||||
CASE('F', kKey::Unknown);
|
||||
CASE('G', kKey::Unknown);
|
||||
CASE('H', kKey::Unknown);
|
||||
CASE('I', kKey::Unknown);
|
||||
CASE('J', kKey::Unknown);
|
||||
CASE('K', kKey::Unknown);
|
||||
CASE('L', kKey::Unknown);
|
||||
CASE('M', kKey::Unknown);
|
||||
CASE('N', kKey::Unknown);
|
||||
CASE('O', kKey::Unknown);
|
||||
CASE('P', kKey::Unknown);
|
||||
CASE('Q', kKey::Unknown);
|
||||
CASE('R', kKey::Unknown);
|
||||
CASE('S', kKey::Unknown);
|
||||
CASE('T', kKey::Unknown);
|
||||
CASE('U', kKey::Unknown);
|
||||
CASE('V', kKey::Unknown);
|
||||
CASE('W', kKey::Unknown);
|
||||
CASE('X', kKey::Unknown);
|
||||
CASE('Y', kKey::Unknown);
|
||||
CASE('F', kKey::KeyF);
|
||||
CASE('G', kKey::KeyG);
|
||||
CASE('H', kKey::KeyH);
|
||||
CASE('I', kKey::KeyI);
|
||||
CASE('J', kKey::KeyJ);
|
||||
CASE('K', kKey::KeyK);
|
||||
CASE('L', kKey::KeyL);
|
||||
CASE('M', kKey::KeyM);
|
||||
CASE('N', kKey::KeyN);
|
||||
CASE('O', kKey::KeyO);
|
||||
CASE('P', kKey::KeyP);
|
||||
CASE('Q', kKey::KeyQ);
|
||||
CASE('R', kKey::KeyR);
|
||||
CASE('S', kKey::KeyS);
|
||||
CASE('T', kKey::KeyT);
|
||||
CASE('U', kKey::KeyU);
|
||||
CASE('V', kKey::KeyV);
|
||||
CASE('W', kKey::KeyW);
|
||||
CASE('X', kKey::KeyX);
|
||||
CASE('Y', kKey::KeyY);
|
||||
CASE('Z', kKey::KeyZ);
|
||||
CASE(VK_LWIN, kKey::Unknown);
|
||||
CASE(VK_RWIN, kKey::Unknown);
|
||||
@@ -335,30 +335,30 @@ kKey convert_key(int key)
|
||||
CASE(VK_SUBTRACT, kKey::Unknown);
|
||||
CASE(VK_DECIMAL, kKey::Unknown);
|
||||
CASE(VK_DIVIDE, kKey::Unknown);
|
||||
CASE(VK_F1, kKey::Unknown);
|
||||
CASE(VK_F2, kKey::Unknown);
|
||||
CASE(VK_F3, kKey::Unknown);
|
||||
CASE(VK_F4, kKey::Unknown);
|
||||
CASE(VK_F5, kKey::Unknown);
|
||||
CASE(VK_F6, kKey::Unknown);
|
||||
CASE(VK_F7, kKey::Unknown);
|
||||
CASE(VK_F8, kKey::Unknown);
|
||||
CASE(VK_F9, kKey::Unknown);
|
||||
CASE(VK_F10, kKey::Unknown);
|
||||
CASE(VK_F11, kKey::Unknown);
|
||||
CASE(VK_F12, kKey::Unknown);
|
||||
CASE(VK_F13, kKey::Unknown);
|
||||
CASE(VK_F14, kKey::Unknown);
|
||||
CASE(VK_F15, kKey::Unknown);
|
||||
CASE(VK_F16, kKey::Unknown);
|
||||
CASE(VK_F17, kKey::Unknown);
|
||||
CASE(VK_F18, kKey::Unknown);
|
||||
CASE(VK_F19, kKey::Unknown);
|
||||
CASE(VK_F20, kKey::Unknown);
|
||||
CASE(VK_F21, kKey::Unknown);
|
||||
CASE(VK_F22, kKey::Unknown);
|
||||
CASE(VK_F23, kKey::Unknown);
|
||||
CASE(VK_F24, kKey::Unknown);
|
||||
CASE(VK_F1, kKey::KeyF1);
|
||||
CASE(VK_F2, kKey::KeyF2);
|
||||
CASE(VK_F3, kKey::KeyF3);
|
||||
CASE(VK_F4, kKey::KeyF4);
|
||||
CASE(VK_F5, kKey::KeyF5);
|
||||
CASE(VK_F6, kKey::KeyF6);
|
||||
CASE(VK_F7, kKey::KeyF7);
|
||||
CASE(VK_F8, kKey::KeyF8);
|
||||
CASE(VK_F9, kKey::KeyF9);
|
||||
CASE(VK_F10, kKey::KeyF10);
|
||||
CASE(VK_F11, kKey::KeyF11);
|
||||
CASE(VK_F12, kKey::KeyF12);
|
||||
CASE(VK_F13, kKey::KeyF13);
|
||||
CASE(VK_F14, kKey::KeyF14);
|
||||
CASE(VK_F15, kKey::KeyF15);
|
||||
CASE(VK_F16, kKey::KeyF16);
|
||||
CASE(VK_F17, kKey::KeyF17);
|
||||
CASE(VK_F18, kKey::KeyF18);
|
||||
CASE(VK_F19, kKey::KeyF19);
|
||||
CASE(VK_F20, kKey::KeyF20);
|
||||
CASE(VK_F21, kKey::KeyF21);
|
||||
CASE(VK_F22, kKey::KeyF22);
|
||||
CASE(VK_F23, kKey::KeyF23);
|
||||
CASE(VK_F24, kKey::KeyF24);
|
||||
CASE(VK_NUMLOCK, kKey::Unknown);
|
||||
CASE(VK_SCROLL, kKey::Unknown);
|
||||
//CASE(VK_OEM_NEC_EQUAL, kKey::Unknown); // same as VK_OEM_FJ_JISHO
|
||||
|
||||
@@ -374,8 +374,8 @@ int main(int argc, char** argv)
|
||||
WGL_COLOR_BITS_ARB, 32,
|
||||
WGL_DEPTH_BITS_ARB, 24,
|
||||
WGL_STENCIL_BITS_ARB, 8,
|
||||
// WGL_SAMPLE_BUFFERS_ARB, 1, // Number of buffers (must be 1 at time of writing)
|
||||
// WGL_SAMPLES_ARB, 4, // Number of samples
|
||||
WGL_SAMPLE_BUFFERS_ARB, 1, // Number of buffers (must be 1 at time of writing)
|
||||
WGL_SAMPLES_ARB, 4, // Number of samples
|
||||
0
|
||||
};
|
||||
UINT numFormat;
|
||||
|
||||
@@ -297,7 +297,7 @@ void NodeCanvas::draw()
|
||||
glm::vec3(App::I.grid->m_groud_value->get_value()),
|
||||
App::I.grid->m_groud_opacity->get_value()));
|
||||
ui::ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera
|
||||
* glm::translate(glm::vec3(0, (App::I.grid->m_groud_height->get_value() - 0.5f) * 2.f, 0))
|
||||
* glm::translate(glm::vec3(0, glm::pow(App::I.grid->m_groud_height->get_value() - 0.5f, 3), 0))
|
||||
* glm::eulerAngleX(glm::radians(90.f))
|
||||
* glm::scale(glm::vec3(grid_scale, grid_scale, 1))
|
||||
);
|
||||
@@ -386,12 +386,6 @@ kEventResult NodeCanvas::handle_event(Event* e)
|
||||
case kEventType::KeyDown:
|
||||
if (ke->m_key == kKey::KeyE)
|
||||
ui::Canvas::set_mode(ui::Canvas::kCanvasMode::Erase);
|
||||
// if (ke->m_key == kKey::KeySpacebar)
|
||||
// m_canvas->m_alpha_lock = true;
|
||||
// if (ke->m_key == kKey::AndroidVolumeUp)
|
||||
// m_zoom_canvas *= 0.9f;
|
||||
// if (ke->m_key == kKey::AndroidVolumeDown)
|
||||
// m_zoom_canvas *= 1.1f;
|
||||
if (ke->m_key == kKey::AndroidBack)
|
||||
if (!ActionManager::empty())
|
||||
ActionManager::undo();
|
||||
@@ -400,12 +394,32 @@ kEventResult NodeCanvas::handle_event(Event* e)
|
||||
case kEventType::KeyUp:
|
||||
if (ke->m_key == kKey::KeyE)
|
||||
ui::Canvas::set_mode(ui::Canvas::kCanvasMode::Draw);
|
||||
// if (ke->m_key == kKey::KeySpacebar)
|
||||
// m_canvas->m_alpha_lock = false;
|
||||
if (ke->m_key == kKey::KeyTab)
|
||||
App::I.toggle_ui();
|
||||
if (ke->m_key == kKey::KeyZ && App::I.keys[(int)kKey::KeyCtrl])
|
||||
App::I.keys[(int)kKey::KeyShift] ? ActionManager::redo() : ActionManager::undo();
|
||||
if (ke->m_key == kKey::KeyS && App::I.keys[(int)kKey::KeyCtrl] && !App::I.keys[(int)kKey::KeyShift])
|
||||
{
|
||||
if (ui::Canvas::I->m_newdoc)
|
||||
{
|
||||
App::I.dialog_save();
|
||||
}
|
||||
else if (ui::Canvas::I->m_unsaved)
|
||||
{
|
||||
ui::Canvas::I->project_save();
|
||||
}
|
||||
}
|
||||
if (ke->m_key == kKey::KeyS && App::I.keys[(int)kKey::KeyCtrl] && App::I.keys[(int)kKey::KeyShift])
|
||||
{
|
||||
if (ui::Canvas::I->m_newdoc)
|
||||
{
|
||||
App::I.dialog_save();
|
||||
}
|
||||
else if (ui::Canvas::I->m_unsaved)
|
||||
{
|
||||
App::I.dialog_save_ver();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case kEventType::GestureStart:
|
||||
mouse_capture();
|
||||
|
||||
Reference in New Issue
Block a user