From f1ff142d910b6b52a69be8362d37fa5f1ccc33d0 Mon Sep 17 00:00:00 2001 From: omigamedev Date: Mon, 24 Sep 2018 16:03:43 +0200 Subject: [PATCH] add changelog dialog and display_file api (implemented in osx and ios) --- PanoPainter.xcodeproj/project.pbxproj | 8 +++++ PanoPainter/GameViewController.h | 8 ++++- PanoPainter/GameViewController.m | 15 ++++++++++ data/layout.xml | 42 ++++++++++++++++++++++++++- src/app.h | 2 ++ src/app_dialogs.cpp | 14 +++++++++ src/app_events.cpp | 20 +++++++++++++ src/app_layout.cpp | 4 ++- src/node.cpp | 2 ++ src/node.h | 1 + src/node_changelog.cpp | 26 +++++++++++++++++ src/node_changelog.h | 13 +++++++++ 12 files changed, 152 insertions(+), 3 deletions(-) create mode 100644 src/node_changelog.cpp create mode 100644 src/node_changelog.h diff --git a/PanoPainter.xcodeproj/project.pbxproj b/PanoPainter.xcodeproj/project.pbxproj index 8b7e7ac..fb8cd4e 100644 --- a/PanoPainter.xcodeproj/project.pbxproj +++ b/PanoPainter.xcodeproj/project.pbxproj @@ -109,6 +109,8 @@ AD4CEF142156B2C60097F4BD /* node_about.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD4CEF122156B2C50097F4BD /* node_about.cpp */; }; AD4CEF152156B2DA0097F4BD /* node_about.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD4CEF122156B2C50097F4BD /* node_about.cpp */; }; AD5016591EBFC7F00079A826 /* data in Resources */ = {isa = PBXBuildFile; fileRef = AD58E0611E17F23D006ACC15 /* data */; }; + AD60AC17215799D000A380E9 /* node_changelog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD60AC15215799CF00A380E9 /* node_changelog.cpp */; }; + AD60AC18215799D000A380E9 /* node_changelog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD60AC15215799CF00A380E9 /* node_changelog.cpp */; }; AD74030F1FB9D0D3004ACFCC /* node_combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD74030D1FB9D0C0004ACFCC /* node_combobox.cpp */; }; AD7403101FB9D0D4004ACFCC /* node_combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD74030D1FB9D0C0004ACFCC /* node_combobox.cpp */; }; AD759B681F2796EA00211963 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD759B671F2796EA00211963 /* OpenGLES.framework */; }; @@ -348,6 +350,8 @@ AD58E0741E3421F2006ACC15 /* YGNodeList.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = YGNodeList.c; path = libs/yoga/yoga/YGNodeList.c; sourceTree = ""; }; AD58E0751E3421F2006ACC15 /* Yoga.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Yoga.c; path = libs/yoga/yoga/Yoga.c; sourceTree = ""; }; AD58E0781E342205006ACC15 /* tinyxml2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tinyxml2.cpp; path = libs/tinyxml2/tinyxml2.cpp; sourceTree = ""; }; + AD60AC15215799CF00A380E9 /* node_changelog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = node_changelog.cpp; sourceTree = ""; }; + AD60AC16215799D000A380E9 /* node_changelog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = node_changelog.h; sourceTree = ""; }; AD74030C1FB9D0BF004ACFCC /* node_combobox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = node_combobox.h; sourceTree = ""; }; AD74030D1FB9D0C0004ACFCC /* node_combobox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = node_combobox.cpp; sourceTree = ""; }; AD744B6C1EBC9EF700B66E30 /* canvas_modes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = canvas_modes.cpp; sourceTree = ""; }; @@ -536,6 +540,8 @@ AD1063541EC7ADFA002A525F /* node_button_custom.h */, AD1063551EC7ADFA002A525F /* node_button.cpp */, AD1063561EC7ADFA002A525F /* node_button.h */, + AD60AC15215799CF00A380E9 /* node_changelog.cpp */, + AD60AC16215799D000A380E9 /* node_changelog.h */, AD1063571EC7ADFA002A525F /* node_canvas.cpp */, AD1063581EC7ADFA002A525F /* node_canvas.h */, AD1063591EC7ADFA002A525F /* node_checkbox.cpp */, @@ -1110,6 +1116,7 @@ AD0E5CCE1ECC72AD00C35669 /* node_text.cpp in Sources */, AD0E5CDC1ECC72AD00C35669 /* image.cpp in Sources */, AD2286C2214E9A0F0074567E /* version.cpp in Sources */, + AD60AC18215799D000A380E9 /* node_changelog.cpp in Sources */, AD0E5CE01ECC72AD00C35669 /* shader.cpp in Sources */, ADC0EB3F1FBDC748004079BB /* node_colorwheel.cpp in Sources */, AD0E5CDD1ECC72AD00C35669 /* log.cpp in Sources */, @@ -1188,6 +1195,7 @@ AD10639A1EC7AE92002A525F /* node_canvas.cpp in Sources */, ADD7D2A31EBFA06F00D5A897 /* tinyxml2.cpp in Sources */, AD10639B1EC7AE92002A525F /* node_checkbox.cpp in Sources */, + AD60AC17215799D000A380E9 /* node_changelog.cpp in Sources */, AD1063A61EC7AE92002A525F /* node_popup_menu.cpp in Sources */, ADD7D29C1EBF9E1C00D5A897 /* shader.cpp in Sources */, ADD7D2A51EBFA06F00D5A897 /* Yoga.c in Sources */, diff --git a/PanoPainter/GameViewController.h b/PanoPainter/GameViewController.h index 149f20d..32e1b40 100644 --- a/PanoPainter/GameViewController.h +++ b/PanoPainter/GameViewController.h @@ -10,10 +10,16 @@ #import #import "AppDelegate.h" -@interface GameViewController : GLKViewController +@interface GameViewController : GLKViewController< + UIKeyInput, + UIImagePickerControllerDelegate, + UINavigationControllerDelegate, + UIDocumentInteractionControllerDelegate + > { @public GLKView* glview; } +- (void)display_file:(std::string)filename; - (void)reset_touch; - (void)async_lock; - (void)async_unlock; diff --git a/PanoPainter/GameViewController.m b/PanoPainter/GameViewController.m index 450fd31..1b0248c 100644 --- a/PanoPainter/GameViewController.m +++ b/PanoPainter/GameViewController.m @@ -62,6 +62,21 @@ NSThread* lock_thread; [self.context presentRenderbuffer:GL_RENDERBUFFER]; } +-(void)display_file:(std::string)filename +{ + NSString* filePath = [NSString stringWithUTF8String:filename.c_str()]; + NSURL *url = [NSURL fileURLWithPath:filePath]; + UIDocumentInteractionController *popup = [UIDocumentInteractionController interactionControllerWithURL:url]; + [popup setDelegate:self]; + [popup presentPreviewAnimated:YES]; +} + +-(UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller +{ + return self; +} + + - (void)pick_photo:(std::function) callback { GameImagePicker *picker = [[GameImagePicker alloc] init]; diff --git a/data/layout.xml b/data/layout.xml index 88962c4..f438c17 100644 --- a/data/layout.xml +++ b/data/layout.xml @@ -583,7 +583,7 @@ - + @@ -644,6 +644,46 @@ Roboto Font License: + + + + + + + + + + + + + + + + + +