Compare commits
2 Commits
943b45bcb7
...
b796588133
| Author | SHA1 | Date | |
|---|---|---|---|
| b796588133 | |||
| 13871d78c4 |
@@ -0,0 +1,295 @@
|
||||
static const char *licenses = R"LICENSE(DearImgui
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2026 Omar Cornut
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
---
|
||||
|
||||
STB
|
||||
|
||||
ALTERNATIVE A - MIT License
|
||||
Copyright (c) 2017 Sean Barrett
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
---
|
||||
|
||||
Inter Font Family
|
||||
|
||||
Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION AND CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
|
||||
---
|
||||
|
||||
Font-Awesome Font Family
|
||||
|
||||
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||
packaged as web and desktop font files.
|
||||
|
||||
Copyright (c) 2026 Fonticons, Inc. (https://fontawesome.com)
|
||||
with Reserved Font Name: "Font Awesome".
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
SIL OPEN FONT LICENSE
|
||||
Version 1.1 - 26 February 2007
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting — in part or in whole — any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
|
||||
---
|
||||
|
||||
GLFW
|
||||
|
||||
Copyright (c) 2002-2006 Marcus Geelnard
|
||||
|
||||
Copyright (c) 2006-2019 Camilla Löwy
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would
|
||||
be appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not
|
||||
be misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
|
||||
---
|
||||
|
||||
Volk
|
||||
|
||||
Copyright (c) 2018-2026 Arseny Kapoulkine
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
)LICENSE";
|
||||
+4
-2
@@ -28,7 +28,7 @@ const char *localized_strings_storage[LANGUAGE_COUNT][LOCALIZED_STRING_COUNT] =
|
||||
[LS_HELP] = "Hilfe",
|
||||
[LS_DEMO] = "Demo",
|
||||
[LS_WIKI] = "Wiki",
|
||||
[LS_ABOUT] = "Über",
|
||||
[LS_ABOUT] = "Über###About",
|
||||
[LS_CALENDAR_WEEK_SHORT] = "KW",
|
||||
[LS_MONDAY_SHORT] = "Mo",
|
||||
[LS_TUESDAY_SHORT] = "Di",
|
||||
@@ -47,6 +47,7 @@ const char *localized_strings_storage[LANGUAGE_COUNT][LOCALIZED_STRING_COUNT] =
|
||||
[LS_QUESTION_DO_YOU_REALLY_WANT_TO_CLOSE_THE_CALENDAR] = "Es gibt noch offene Änderungen.\nMöchten Sie wirklich den Kalender schließen?",
|
||||
[LS_YES] = "Ja",
|
||||
[LS_NO] = "Nein",
|
||||
[LS_CLOSE] = "Schließen",
|
||||
},
|
||||
[L_ENGLISH] = {
|
||||
[LS_LANGUAGE_NAME] = "English",
|
||||
@@ -75,7 +76,7 @@ const char *localized_strings_storage[LANGUAGE_COUNT][LOCALIZED_STRING_COUNT] =
|
||||
[LS_HELP] = "Help",
|
||||
[LS_DEMO] = "Demo",
|
||||
[LS_WIKI] = "Wiki",
|
||||
[LS_ABOUT] = "About",
|
||||
[LS_ABOUT] = "About###About",
|
||||
[LS_CALENDAR_WEEK_SHORT] = "No.",
|
||||
[LS_MONDAY_SHORT] = "Mo",
|
||||
[LS_TUESDAY_SHORT] = "Tu",
|
||||
@@ -94,6 +95,7 @@ const char *localized_strings_storage[LANGUAGE_COUNT][LOCALIZED_STRING_COUNT] =
|
||||
[LS_QUESTION_DO_YOU_REALLY_WANT_TO_CLOSE_THE_CALENDAR] = "There are unsaved changes.\nDo you really want to close the calendar?",
|
||||
[LS_YES] = "Yes",
|
||||
[LS_NO] = "No",
|
||||
[LS_CLOSE] = "Close",
|
||||
},
|
||||
[L_FRENCH] = {
|
||||
[LS_LANGUAGE_NAME] = "Français",
|
||||
|
||||
@@ -47,6 +47,7 @@ enum Localized_String {
|
||||
LS_QUESTION_DO_YOU_REALLY_WANT_TO_CLOSE_THE_CALENDAR,
|
||||
LS_YES,
|
||||
LS_NO,
|
||||
LS_CLOSE,
|
||||
LOCALIZED_STRING_COUNT
|
||||
};
|
||||
|
||||
|
||||
+83
-30
@@ -10,6 +10,7 @@
|
||||
#include "inter.h"
|
||||
#include "inter-bold.h"
|
||||
#include "font-awesome-solid.h"
|
||||
#include "licenses.cpp"
|
||||
|
||||
extern bool should_exit;
|
||||
extern bool show_demo_window;
|
||||
@@ -96,6 +97,13 @@ static Localized_String month_names[] = { LS_JANUARY, LS_FEBRUARY, LS_MARCH, LS_
|
||||
static char *save_file_path = NULL;
|
||||
static const char *wiki_url = "https://gitea.ammerhai.com/Ammerhai/work-calendar/wiki";
|
||||
|
||||
static ImGuiID close_popup;
|
||||
static ImGuiID close_calendar_popup;
|
||||
static ImGuiID close_and_load_calendar_popup;
|
||||
static ImGuiID save_password_popup;
|
||||
static ImGuiID open_password_popup;
|
||||
static ImGuiID about_popup;
|
||||
|
||||
void init() {
|
||||
hydro_init();
|
||||
ImGuiIO &io = ImGui::GetIO();
|
||||
@@ -165,6 +173,8 @@ static bool unsaved_changes;
|
||||
static bool last_frame_unsaved_changes;
|
||||
static char *category_name_before_editing = NULL;
|
||||
|
||||
static bool about_open;
|
||||
|
||||
void save(){
|
||||
if (!save_file_path) return;
|
||||
|
||||
@@ -210,6 +220,15 @@ void save(){
|
||||
unsaved_changes = false;
|
||||
}
|
||||
|
||||
void interaction_save_as(){
|
||||
char *new_save_file_path = save_file_dialog();
|
||||
if (new_save_file_path) {
|
||||
if (save_file_path) free(save_file_path);
|
||||
save_file_path = new_save_file_path;
|
||||
ImGui::OpenPopup(save_password_popup);
|
||||
}
|
||||
}
|
||||
|
||||
void load(){
|
||||
FILE *save_file = fopen(save_file_path, "rb");
|
||||
size_t num_bytes = fread(encrypted_buffer, 1, sizeof(encrypted_buffer), save_file);
|
||||
@@ -265,6 +284,19 @@ void load(){
|
||||
unsaved_changes = false;
|
||||
}
|
||||
|
||||
void interaction_open(){
|
||||
if(unsaved_changes) {
|
||||
ImGui::OpenPopup(close_and_load_calendar_popup);
|
||||
} else {
|
||||
char *new_save_file_path = open_file_dialog();
|
||||
if (new_save_file_path) {
|
||||
if (save_file_path) free(save_file_path);
|
||||
save_file_path = new_save_file_path;
|
||||
ImGui::OpenPopup(open_password_popup);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void close_calendar(){
|
||||
if (save_file_path) free(save_file_path);
|
||||
save_file_path = (char *)calloc(1, 1);
|
||||
@@ -277,10 +309,43 @@ void close_calendar(){
|
||||
unsaved_changes = false;
|
||||
}
|
||||
|
||||
void interaction_close_calendar() {
|
||||
if(unsaved_changes) {
|
||||
ImGui::OpenPopup(close_calendar_popup);
|
||||
} else {
|
||||
close_calendar();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void per_frame(){
|
||||
current_language = selected_language;
|
||||
|
||||
if(last_frame_unsaved_changes != unsaved_changes) {
|
||||
close_popup = ImGui::GetID("###Close");
|
||||
close_calendar_popup = ImGui::GetID("###CloseCalendar");
|
||||
close_and_load_calendar_popup = ImGui::GetID("###CloseLoadCalendar");
|
||||
save_password_popup = ImGui::GetID("###Save");
|
||||
open_password_popup = ImGui::GetID("###Open");
|
||||
about_popup = ImGui::GetID("###About");
|
||||
|
||||
if (ImGui::IsKeyDown(ImGuiMod_Ctrl) && ImGui::IsKeyPressed(ImGuiKey_S, false)) {
|
||||
if (ImGui::IsKeyDown(ImGuiMod_Shift)) {
|
||||
interaction_save_as();
|
||||
} else if (strlen(save_file_path)) {
|
||||
save();
|
||||
}
|
||||
}
|
||||
|
||||
if (ImGui::IsKeyDown(ImGuiMod_Ctrl) && ImGui::IsKeyPressed(ImGuiKey_O, false)) {
|
||||
interaction_open();
|
||||
}
|
||||
|
||||
if (ImGui::IsKeyDown(ImGuiMod_Ctrl) && ImGui::IsKeyPressed(ImGuiKey_X, false)) {
|
||||
interaction_close_calendar();
|
||||
}
|
||||
|
||||
if (last_frame_unsaved_changes != unsaved_changes) {
|
||||
char *title = (char *)calloc(1, strlen("Work Calendar - ") + strlen(save_file_path) + 2);
|
||||
memcpy(title, "Work Calendar - ", strlen("Work Calendar - "));
|
||||
memcpy(title + strlen(title), save_file_path, strlen(save_file_path));
|
||||
@@ -312,46 +377,23 @@ void per_frame(){
|
||||
}
|
||||
ImGui::DockSpaceOverViewport(main_viewport_dock, ImGui::GetMainViewport(), ImGuiDockNodeFlags_NoTabBar);
|
||||
|
||||
ImGuiID close_popup = ImGui::GetID("###Close");
|
||||
ImGuiID close_calendar_popup = ImGui::GetID("###CloseCalendar");
|
||||
ImGuiID close_and_load_calendar_popup = ImGui::GetID("###CloseLoadCalendar");
|
||||
ImGuiID save_password_popup = ImGui::GetID("###Save");
|
||||
ImGuiID open_password_popup = ImGui::GetID("###Open");
|
||||
|
||||
if (ImGui::BeginMainMenuBar()) {
|
||||
if (ImGui::BeginMenu(get_localized_string(LS_FILE))) {
|
||||
if (ImGui::MenuItem(get_localized_string(LS_OPEN), "Ctrl + O")) {
|
||||
if(unsaved_changes) {
|
||||
ImGui::OpenPopup(close_and_load_calendar_popup);
|
||||
} else {
|
||||
char *new_save_file_path = open_file_dialog();
|
||||
if (new_save_file_path) {
|
||||
if (save_file_path) free(save_file_path);
|
||||
save_file_path = new_save_file_path;
|
||||
ImGui::OpenPopup(open_password_popup);
|
||||
interaction_open();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ImGui::MenuItem(get_localized_string(LS_SAVE), "Ctrl + S", false, !!save_file_path)) {
|
||||
|
||||
if (ImGui::MenuItem(get_localized_string(LS_SAVE), "Ctrl + S", false, strlen(save_file_path))) {
|
||||
save();
|
||||
}
|
||||
|
||||
if (ImGui::MenuItem(get_localized_string(LS_SAVE_AS), "Ctrl + Shift + S")) {
|
||||
char *new_save_file_path = save_file_dialog();
|
||||
if (new_save_file_path) {
|
||||
if (save_file_path) free(save_file_path);
|
||||
save_file_path = new_save_file_path;
|
||||
ImGui::OpenPopup(save_password_popup);
|
||||
}
|
||||
interaction_save_as();
|
||||
}
|
||||
|
||||
ImGui::Separator();
|
||||
if (ImGui::MenuItem(get_localized_string(LS_CLOSE_CALENDAR), "Ctrl + X")) {
|
||||
if(unsaved_changes) {
|
||||
ImGui::OpenPopup(close_calendar_popup);
|
||||
} else {
|
||||
close_calendar();
|
||||
}
|
||||
interaction_close_calendar();
|
||||
}
|
||||
|
||||
ImGui::Separator();
|
||||
@@ -383,7 +425,9 @@ void per_frame(){
|
||||
ImGui::GetPlatformIO().Platform_OpenInShellFn(ImGui::GetCurrentContext(), wiki_url);
|
||||
}
|
||||
ImGui::Separator();
|
||||
ImGui::MenuItem(get_localized_string(LS_ABOUT), NULL); //TODO
|
||||
if (ImGui::MenuItem(get_localized_string(LS_ABOUT), NULL)) {
|
||||
ImGui::OpenPopup(about_popup); about_open = true;
|
||||
}
|
||||
ImGui::EndMenu();
|
||||
}
|
||||
|
||||
@@ -527,6 +571,15 @@ void per_frame(){
|
||||
ImGui::EndPopup();
|
||||
}
|
||||
|
||||
// about modal dialogue
|
||||
ImGui::SetNextWindowPos(center, ImGuiCond_Appearing, ImVec2(0.5f, 0.5f));
|
||||
ImGui::SetNextWindowSize(ImVec2(640.0f, 480.0f), ImGuiCond_Appearing);
|
||||
if (ImGui::BeginPopupModal(get_localized_string(LS_ABOUT), &about_open)) {
|
||||
ImGui::TextWrapped("%s", licenses);
|
||||
|
||||
ImGui::EndPopup();
|
||||
}
|
||||
|
||||
if (ImGui::Begin("Work Calendar", 0)) {
|
||||
ImGui::PushStyleColor(ImGuiCol_TableHeaderBg, {0,0,0,0});
|
||||
ImGui::PushStyleColor(ImGuiCol_HeaderHovered, {0,0,0,0});
|
||||
|
||||
Reference in New Issue
Block a user