add more shortcuts and checks

This commit is contained in:
2018-08-10 00:12:35 +02:00
parent 94fa4022f0
commit e4e7719f83
9 changed files with 222 additions and 138 deletions

View File

@@ -611,7 +611,7 @@
<!--file menu--> <!--file menu-->
<layout id="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"> <button-custom height="30" align="center" color=".2" pad="0 20 0 10" dir="row">
<checkbox width="20" height="20"/> <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"> <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"/> <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>
<button-custom id="file-import" height="40" align="center" color=".2" pad="0 0 0 10" dir="row"> <button-custom id="file-import" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
<icon icon="page_add" width="20"/> <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>
<button-custom id="file-open" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row"> <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"/> <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>
<button-custom id="file-browse" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row"> <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"/> <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>
<button-custom id="file-save" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row"> <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"/> <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>
<button-custom id="file-save-as" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row"> <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"/> <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>
<button-custom id="file-save-ver" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row"> <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"/> <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>
<button-custom id="file-export" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row"> <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"/> <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>
<button-custom id="file-export-cubes" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row"> <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"/> <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>
<button-custom id="file-cloud-upload" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row"> <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"/> <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>
<button-custom id="file-cloud-browse" text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row"> <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"/> <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>
<button-custom text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row"> <button-custom text="Menu" height="40" align="center" color=".2" pad="0 0 0 10" dir="row">
<icon width="20"/> <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> </button-custom>
</popup-menu> </popup-menu>
</layout> </layout>

View File

@@ -10,7 +10,7 @@ void App::cloud_upload()
{ {
if (!canvas) if (!canvas)
return; return;
if (doc_name.empty()) if (ui::Canvas::I->m_newdoc)
{ {
auto msgbox = new NodeMessageBox(); auto msgbox = new NodeMessageBox();
msgbox->m_manager = &layout; msgbox->m_manager = &layout;
@@ -24,7 +24,10 @@ void App::cloud_upload()
{ {
std::thread([this] { std::thread([this] {
std::string path = data_path + "/" + doc_name + ".pano"; std::string path = data_path + "/" + doc_name + ".pano";
if (ui::Canvas::I->m_unsaved)
{
Canvas::I->project_save_thread(path); Canvas::I->project_save_thread(path);
}
async_start(); async_start();
auto pb = show_progress("Uploading"); auto pb = show_progress("Uploading");

View File

@@ -393,13 +393,13 @@ void App::init_menu_file()
popup->destroy(); popup->destroy();
}; };
popup->find<NodeButtonCustom>("file-save")->on_click = [this](Node*) { popup->find<NodeButtonCustom>("file-save")->on_click = [this](Node*) {
if (doc_name.empty()) if (ui::Canvas::I->m_newdoc)
{ {
dialog_save(); 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->mouse_release();
popup->destroy(); popup->destroy();
@@ -410,7 +410,7 @@ void App::init_menu_file()
popup->destroy(); popup->destroy();
}; };
popup->find<NodeButtonCustom>("file-save-ver")->on_click = [this](Node*) { 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->mouse_release();
popup->destroy(); popup->destroy();
}; };

View File

@@ -1615,9 +1615,11 @@ void ui::Canvas::project_save_thread(std::string file_path)
App::I.async_start(); App::I.async_start();
pb->destroy(); pb->destroy();
App::I.title_update();
App::I.async_update(); App::I.async_update();
App::I.async_end(); App::I.async_end();
m_unsaved = false; m_unsaved = false;
m_newdoc = false;
} }
void ui::Canvas::project_open(std::string file_path, std::function<void()> on_complete) 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(); gl.save();
App::I.async_update(); App::I.async_update();
gl.restore(); gl.restore();
App::I.title_update();
App::I.async_end(); App::I.async_end();
} }
m_unsaved = false; m_unsaved = false;
m_newdoc = false;
} }
ui::Image ui::Canvas::thumbnail_generate(int w, int h) ui::Image ui::Canvas::thumbnail_generate(int w, int h)

View File

@@ -49,6 +49,7 @@ public:
Plane m_plane_brush; Plane m_plane_brush;
BrushMesh m_mesh; BrushMesh m_mesh;
bool m_unsaved = false; bool m_unsaved = false;
bool m_newdoc = true;
bool m_dirty = false; bool m_dirty = false;
bool m_commit_delayed = false; bool m_commit_delayed = false;
bool m_dirty_stroke = false; bool m_dirty_stroke = false;

View File

@@ -8,8 +8,66 @@ enum class kKey : uint8_t
AndroidHome, AndroidHome,
AndroidBack, AndroidBack,
KeySpacebar, KeySpacebar,
KeyA,
KeyB,
KeyC,
KeyD,
KeyE, KeyE,
KeyF,
KeyG,
KeyH,
KeyI,
KeyJ,
KeyK,
KeyL,
KeyM,
KeyN,
KeyO,
KeyP,
KeyQ,
KeyR,
KeyS,
KeyT,
KeyU,
KeyV,
KeyW,
KeyX,
KeyY,
KeyZ, 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, KeyAlt,
KeyCtrl, KeyCtrl,
KeyShift, KeyShift,

View File

@@ -123,51 +123,51 @@ kKey convert_key(int key)
switch(key) switch(key)
{ {
#ifdef __APPLE__ #ifdef __APPLE__
CASE(kVK_ANSI_A, kKey::Unknown); CASE(kVK_ANSI_A, kKey::KeyA);
CASE(kVK_ANSI_S, kKey::Unknown); CASE(kVK_ANSI_S, kKey::KeyS);
CASE(kVK_ANSI_D, kKey::Unknown); CASE(kVK_ANSI_D, kKey::KeyD);
CASE(kVK_ANSI_F, kKey::Unknown); CASE(kVK_ANSI_F, kKey::KeyF);
CASE(kVK_ANSI_H, kKey::Unknown); CASE(kVK_ANSI_H, kKey::KeyH);
CASE(kVK_ANSI_G, kKey::Unknown); CASE(kVK_ANSI_G, kKey::KeyG);
CASE(kVK_ANSI_Z, kKey::KeyZ); CASE(kVK_ANSI_Z, kKey::KeyZ);
CASE(kVK_ANSI_X, kKey::Unknown); CASE(kVK_ANSI_X, kKey::KeyX);
CASE(kVK_ANSI_C, kKey::Unknown); CASE(kVK_ANSI_C, kKey::KeyC);
CASE(kVK_ANSI_V, kKey::Unknown); CASE(kVK_ANSI_V, kKey::KeyV);
CASE(kVK_ANSI_B, kKey::Unknown); CASE(kVK_ANSI_B, kKey::KeyB);
CASE(kVK_ANSI_Q, kKey::Unknown); CASE(kVK_ANSI_Q, kKey::KeyQ);
CASE(kVK_ANSI_W, kKey::Unknown); CASE(kVK_ANSI_W, kKey::KeyW);
CASE(kVK_ANSI_E, kKey::KeyE); CASE(kVK_ANSI_E, kKey::KeyE);
CASE(kVK_ANSI_R, kKey::Unknown); CASE(kVK_ANSI_R, kKey::KeyR);
CASE(kVK_ANSI_Y, kKey::Unknown); CASE(kVK_ANSI_Y, kKey::KeyY);
CASE(kVK_ANSI_T, kKey::Unknown); CASE(kVK_ANSI_T, kKey::KeyT);
CASE(kVK_ANSI_1, kKey::Unknown); CASE(kVK_ANSI_1, kKey::Key1);
CASE(kVK_ANSI_2, kKey::Unknown); CASE(kVK_ANSI_2, kKey::Key2);
CASE(kVK_ANSI_3, kKey::Unknown); CASE(kVK_ANSI_3, kKey::Key3);
CASE(kVK_ANSI_4, kKey::Unknown); CASE(kVK_ANSI_4, kKey::Key4);
CASE(kVK_ANSI_6, kKey::Unknown); CASE(kVK_ANSI_6, kKey::Key6);
CASE(kVK_ANSI_5, kKey::Unknown); CASE(kVK_ANSI_5, kKey::Key5);
CASE(kVK_ANSI_Equal, kKey::Unknown); CASE(kVK_ANSI_Equal, kKey::Unknown);
CASE(kVK_ANSI_9, kKey::Unknown); CASE(kVK_ANSI_9, kKey::Key9);
CASE(kVK_ANSI_7, kKey::Unknown); CASE(kVK_ANSI_7, kKey::Key7);
CASE(kVK_ANSI_Minus, kKey::Unknown); CASE(kVK_ANSI_Minus, kKey::Unknown);
CASE(kVK_ANSI_8, kKey::Unknown); CASE(kVK_ANSI_8, kKey::Key8);
CASE(kVK_ANSI_0, kKey::Unknown); CASE(kVK_ANSI_0, kKey::Key0);
CASE(kVK_ANSI_RightBracket, kKey::Unknown); CASE(kVK_ANSI_RightBracket, kKey::Unknown);
CASE(kVK_ANSI_O, kKey::Unknown); CASE(kVK_ANSI_O, kKey::KeyO);
CASE(kVK_ANSI_U, kKey::Unknown); CASE(kVK_ANSI_U, kKey::KeyU);
CASE(kVK_ANSI_LeftBracket, kKey::Unknown); CASE(kVK_ANSI_LeftBracket, kKey::Unknown);
CASE(kVK_ANSI_I, kKey::Unknown); CASE(kVK_ANSI_I, kKey::KeyI);
CASE(kVK_ANSI_P, kKey::Unknown); CASE(kVK_ANSI_P, kKey::KeyP);
CASE(kVK_ANSI_L, kKey::Unknown); CASE(kVK_ANSI_L, kKey::KeyL);
CASE(kVK_ANSI_J, kKey::Unknown); CASE(kVK_ANSI_J, kKey::KeyJ);
CASE(kVK_ANSI_Quote, kKey::Unknown); 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_Semicolon, kKey::Unknown);
CASE(kVK_ANSI_Backslash, kKey::Unknown); CASE(kVK_ANSI_Backslash, kKey::Unknown);
CASE(kVK_ANSI_Comma, kKey::Unknown); CASE(kVK_ANSI_Comma, kKey::Unknown);
CASE(kVK_ANSI_Slash, kKey::Unknown); CASE(kVK_ANSI_Slash, kKey::Unknown);
CASE(kVK_ANSI_N, kKey::Unknown); CASE(kVK_ANSI_N, kKey::KeyN);
CASE(kVK_ANSI_M, kKey::Unknown); CASE(kVK_ANSI_M, kKey::KeyM);
CASE(kVK_ANSI_Period, kKey::Unknown); CASE(kVK_ANSI_Period, kKey::Unknown);
CASE(kVK_ANSI_Grave, kKey::Unknown); CASE(kVK_ANSI_Grave, kKey::Unknown);
CASE(kVK_ANSI_KeypadDecimal, kKey::Unknown); CASE(kVK_ANSI_KeypadDecimal, kKey::Unknown);
@@ -206,22 +206,22 @@ kKey convert_key(int key)
CASE(kVK_VolumeUp, kKey::Unknown); CASE(kVK_VolumeUp, kKey::Unknown);
CASE(kVK_VolumeDown, kKey::Unknown); CASE(kVK_VolumeDown, kKey::Unknown);
CASE(kVK_Mute, kKey::Unknown); CASE(kVK_Mute, kKey::Unknown);
CASE(kVK_F18, kKey::Unknown); CASE(kVK_F18, kKey::KeyF18);
CASE(kVK_F19, kKey::Unknown); CASE(kVK_F19, kKey::KeyF19);
CASE(kVK_F20, kKey::Unknown); CASE(kVK_F20, kKey::KeyF20);
CASE(kVK_F5, kKey::Unknown); CASE(kVK_F5, kKey::KeyF5);
CASE(kVK_F6, kKey::Unknown); CASE(kVK_F6, kKey::KeyF6);
CASE(kVK_F7, kKey::Unknown); CASE(kVK_F7, kKey::KeyF7);
CASE(kVK_F3, kKey::Unknown); CASE(kVK_F3, kKey::KeyF3);
CASE(kVK_F8, kKey::Unknown); CASE(kVK_F8, kKey::KeyF8);
CASE(kVK_F9, kKey::Unknown); CASE(kVK_F9, kKey::KeyF9);
CASE(kVK_F11, kKey::Unknown); CASE(kVK_F11, kKey::KeyF11);
CASE(kVK_F13, kKey::Unknown); CASE(kVK_F13, kKey::KeyF13);
CASE(kVK_F16, kKey::Unknown); CASE(kVK_F16, kKey::KeyF16);
CASE(kVK_F14, kKey::Unknown); CASE(kVK_F14, kKey::KeyF14);
CASE(kVK_F10, kKey::Unknown); CASE(kVK_F10, kKey::KeyF10);
CASE(kVK_F12, kKey::Unknown); CASE(kVK_F12, kKey::KeyF12);
CASE(kVK_F15, kKey::Unknown); CASE(kVK_F15, kKey::KeyF15);
CASE(kVK_Help, kKey::Unknown); CASE(kVK_Help, kKey::Unknown);
CASE(kVK_Home, kKey::Unknown); CASE(kVK_Home, kKey::Unknown);
CASE(kVK_PageUp, kKey::Unknown); CASE(kVK_PageUp, kKey::Unknown);
@@ -279,41 +279,41 @@ kKey convert_key(int key)
CASE(VK_INSERT, kKey::Unknown); CASE(VK_INSERT, kKey::Unknown);
CASE(VK_DELETE, kKey::Unknown); CASE(VK_DELETE, kKey::Unknown);
CASE(VK_HELP, kKey::Unknown); CASE(VK_HELP, kKey::Unknown);
CASE('0', kKey::Unknown); CASE('0', kKey::Key0);
CASE('1', kKey::Unknown); CASE('1', kKey::Key1);
CASE('2', kKey::Unknown); CASE('2', kKey::Key2);
CASE('3', kKey::Unknown); CASE('3', kKey::Key3);
CASE('4', kKey::Unknown); CASE('4', kKey::Key4);
CASE('5', kKey::Unknown); CASE('5', kKey::Key5);
CASE('6', kKey::Unknown); CASE('6', kKey::Key6);
CASE('7', kKey::Unknown); CASE('7', kKey::Key7);
CASE('8', kKey::Unknown); CASE('8', kKey::Key8);
CASE('9', kKey::Unknown); CASE('9', kKey::Key9);
CASE('A', kKey::Unknown); CASE('A', kKey::KeyA);
CASE('B', kKey::Unknown); CASE('B', kKey::KeyB);
CASE('C', kKey::Unknown); CASE('C', kKey::KeyC);
CASE('D', kKey::Unknown); CASE('D', kKey::KeyD);
CASE('E', kKey::KeyE); CASE('E', kKey::KeyE);
CASE('F', kKey::Unknown); CASE('F', kKey::KeyF);
CASE('G', kKey::Unknown); CASE('G', kKey::KeyG);
CASE('H', kKey::Unknown); CASE('H', kKey::KeyH);
CASE('I', kKey::Unknown); CASE('I', kKey::KeyI);
CASE('J', kKey::Unknown); CASE('J', kKey::KeyJ);
CASE('K', kKey::Unknown); CASE('K', kKey::KeyK);
CASE('L', kKey::Unknown); CASE('L', kKey::KeyL);
CASE('M', kKey::Unknown); CASE('M', kKey::KeyM);
CASE('N', kKey::Unknown); CASE('N', kKey::KeyN);
CASE('O', kKey::Unknown); CASE('O', kKey::KeyO);
CASE('P', kKey::Unknown); CASE('P', kKey::KeyP);
CASE('Q', kKey::Unknown); CASE('Q', kKey::KeyQ);
CASE('R', kKey::Unknown); CASE('R', kKey::KeyR);
CASE('S', kKey::Unknown); CASE('S', kKey::KeyS);
CASE('T', kKey::Unknown); CASE('T', kKey::KeyT);
CASE('U', kKey::Unknown); CASE('U', kKey::KeyU);
CASE('V', kKey::Unknown); CASE('V', kKey::KeyV);
CASE('W', kKey::Unknown); CASE('W', kKey::KeyW);
CASE('X', kKey::Unknown); CASE('X', kKey::KeyX);
CASE('Y', kKey::Unknown); CASE('Y', kKey::KeyY);
CASE('Z', kKey::KeyZ); CASE('Z', kKey::KeyZ);
CASE(VK_LWIN, kKey::Unknown); CASE(VK_LWIN, kKey::Unknown);
CASE(VK_RWIN, kKey::Unknown); CASE(VK_RWIN, kKey::Unknown);
@@ -335,30 +335,30 @@ kKey convert_key(int key)
CASE(VK_SUBTRACT, kKey::Unknown); CASE(VK_SUBTRACT, kKey::Unknown);
CASE(VK_DECIMAL, kKey::Unknown); CASE(VK_DECIMAL, kKey::Unknown);
CASE(VK_DIVIDE, kKey::Unknown); CASE(VK_DIVIDE, kKey::Unknown);
CASE(VK_F1, kKey::Unknown); CASE(VK_F1, kKey::KeyF1);
CASE(VK_F2, kKey::Unknown); CASE(VK_F2, kKey::KeyF2);
CASE(VK_F3, kKey::Unknown); CASE(VK_F3, kKey::KeyF3);
CASE(VK_F4, kKey::Unknown); CASE(VK_F4, kKey::KeyF4);
CASE(VK_F5, kKey::Unknown); CASE(VK_F5, kKey::KeyF5);
CASE(VK_F6, kKey::Unknown); CASE(VK_F6, kKey::KeyF6);
CASE(VK_F7, kKey::Unknown); CASE(VK_F7, kKey::KeyF7);
CASE(VK_F8, kKey::Unknown); CASE(VK_F8, kKey::KeyF8);
CASE(VK_F9, kKey::Unknown); CASE(VK_F9, kKey::KeyF9);
CASE(VK_F10, kKey::Unknown); CASE(VK_F10, kKey::KeyF10);
CASE(VK_F11, kKey::Unknown); CASE(VK_F11, kKey::KeyF11);
CASE(VK_F12, kKey::Unknown); CASE(VK_F12, kKey::KeyF12);
CASE(VK_F13, kKey::Unknown); CASE(VK_F13, kKey::KeyF13);
CASE(VK_F14, kKey::Unknown); CASE(VK_F14, kKey::KeyF14);
CASE(VK_F15, kKey::Unknown); CASE(VK_F15, kKey::KeyF15);
CASE(VK_F16, kKey::Unknown); CASE(VK_F16, kKey::KeyF16);
CASE(VK_F17, kKey::Unknown); CASE(VK_F17, kKey::KeyF17);
CASE(VK_F18, kKey::Unknown); CASE(VK_F18, kKey::KeyF18);
CASE(VK_F19, kKey::Unknown); CASE(VK_F19, kKey::KeyF19);
CASE(VK_F20, kKey::Unknown); CASE(VK_F20, kKey::KeyF20);
CASE(VK_F21, kKey::Unknown); CASE(VK_F21, kKey::KeyF21);
CASE(VK_F22, kKey::Unknown); CASE(VK_F22, kKey::KeyF22);
CASE(VK_F23, kKey::Unknown); CASE(VK_F23, kKey::KeyF23);
CASE(VK_F24, kKey::Unknown); CASE(VK_F24, kKey::KeyF24);
CASE(VK_NUMLOCK, kKey::Unknown); CASE(VK_NUMLOCK, kKey::Unknown);
CASE(VK_SCROLL, kKey::Unknown); CASE(VK_SCROLL, kKey::Unknown);
//CASE(VK_OEM_NEC_EQUAL, kKey::Unknown); // same as VK_OEM_FJ_JISHO //CASE(VK_OEM_NEC_EQUAL, kKey::Unknown); // same as VK_OEM_FJ_JISHO

View File

@@ -374,8 +374,8 @@ int main(int argc, char** argv)
WGL_COLOR_BITS_ARB, 32, WGL_COLOR_BITS_ARB, 32,
WGL_DEPTH_BITS_ARB, 24, WGL_DEPTH_BITS_ARB, 24,
WGL_STENCIL_BITS_ARB, 8, WGL_STENCIL_BITS_ARB, 8,
// WGL_SAMPLE_BUFFERS_ARB, 1, // Number of buffers (must be 1 at time of writing) WGL_SAMPLE_BUFFERS_ARB, 1, // Number of buffers (must be 1 at time of writing)
// WGL_SAMPLES_ARB, 4, // Number of samples WGL_SAMPLES_ARB, 4, // Number of samples
0 0
}; };
UINT numFormat; UINT numFormat;

View File

@@ -297,7 +297,7 @@ void NodeCanvas::draw()
glm::vec3(App::I.grid->m_groud_value->get_value()), glm::vec3(App::I.grid->m_groud_value->get_value()),
App::I.grid->m_groud_opacity->get_value())); App::I.grid->m_groud_opacity->get_value()));
ui::ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera 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::eulerAngleX(glm::radians(90.f))
* glm::scale(glm::vec3(grid_scale, grid_scale, 1)) * glm::scale(glm::vec3(grid_scale, grid_scale, 1))
); );
@@ -386,12 +386,6 @@ kEventResult NodeCanvas::handle_event(Event* e)
case kEventType::KeyDown: case kEventType::KeyDown:
if (ke->m_key == kKey::KeyE) if (ke->m_key == kKey::KeyE)
ui::Canvas::set_mode(ui::Canvas::kCanvasMode::Erase); 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 (ke->m_key == kKey::AndroidBack)
if (!ActionManager::empty()) if (!ActionManager::empty())
ActionManager::undo(); ActionManager::undo();
@@ -400,12 +394,32 @@ kEventResult NodeCanvas::handle_event(Event* e)
case kEventType::KeyUp: case kEventType::KeyUp:
if (ke->m_key == kKey::KeyE) if (ke->m_key == kKey::KeyE)
ui::Canvas::set_mode(ui::Canvas::kCanvasMode::Draw); 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) if (ke->m_key == kKey::KeyTab)
App::I.toggle_ui(); App::I.toggle_ui();
if (ke->m_key == kKey::KeyZ && App::I.keys[(int)kKey::KeyCtrl]) if (ke->m_key == kKey::KeyZ && App::I.keys[(int)kKey::KeyCtrl])
App::I.keys[(int)kKey::KeyShift] ? ActionManager::redo() : ActionManager::undo(); 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; break;
case kEventType::GestureStart: case kEventType::GestureStart:
mouse_capture(); mouse_capture();