From ae8baaec649d0d10da652a9f05f7aa4026636063 Mon Sep 17 00:00:00 2001 From: Duy Tran Khanh Date: Fri, 29 Jan 2021 16:47:07 +0700 Subject: [PATCH] (WIP) add some UI --- Natives/AppDelegate.m | 14 ++- Natives/Info.plist | 107 ++++++++---------- Natives/LauncherViewController.h | 5 + Natives/LauncherViewController.m | 40 +++++++ Natives/aminimake.sh | 2 +- .../{Main.storyboard => Surface.storyboard} | 0 Natives/libpojavexec.dylib | Bin 81024 -> 82160 bytes 7 files changed, 105 insertions(+), 63 deletions(-) create mode 100644 Natives/LauncherViewController.h create mode 100644 Natives/LauncherViewController.m rename Natives/en.lproj/{Main.storyboard => Surface.storyboard} (100%) diff --git a/Natives/AppDelegate.m b/Natives/AppDelegate.m index 31ef04ed..3998613f 100644 --- a/Natives/AppDelegate.m +++ b/Natives/AppDelegate.m @@ -1,10 +1,18 @@ #import "AppDelegate.h" +#import "LauncherViewController.h" + @implementation AppDelegate -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - // Override point for customization after application launch. +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + UIWindow *window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + self.window = window; + [self.window setWindowLevel:3000.0]; + [self.window makeKeyAndVisible]; + self.window.backgroundColor = [UIColor blackColor]; + LauncherViewController *vc = [[LauncherViewController alloc] init]; + self.window.rootViewController = vc; + return YES; } diff --git a/Natives/Info.plist b/Natives/Info.plist index ebfd80e9..66bd9259 100644 --- a/Natives/Info.plist +++ b/Natives/Info.plist @@ -1,63 +1,52 @@ - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - PojavLauncher - CFBundleExecutable - PojavLauncher - CFBundleIdentifier - net.kdt.pojavlauncher - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - PojavLauncher - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 2 - LSRequiresIPhoneOS - - UIMainStoryboardFile - Main - UIDeviceFamily - - 1 - 2 - - UIRequiredDeviceCapabilities - - arm64 - metal - - UISupportedInterfaceOrientations - - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIFileSharingEnabled - - LSSupportsOpeningDocumentsInPlace - - + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + PojavLauncher + CFBundleExecutable + PojavLauncher + CFBundleIdentifier + net.kdt.pojavlauncher + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + PojavLauncher + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 2 + LSRequiresIPhoneOS + + LSSupportsOpeningDocumentsInPlace + + UIDeviceFamily + + 1 + 2 + + UIFileSharingEnabled + + UIRequiredDeviceCapabilities + + arm64 + metal + + UISupportedInterfaceOrientations + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + diff --git a/Natives/LauncherViewController.h b/Natives/LauncherViewController.h new file mode 100644 index 00000000..8c136d6e --- /dev/null +++ b/Natives/LauncherViewController.h @@ -0,0 +1,5 @@ +#import + +@interface LauncherViewController : UIViewController + +@end diff --git a/Natives/LauncherViewController.m b/Natives/LauncherViewController.m new file mode 100644 index 00000000..6d3b4383 --- /dev/null +++ b/Natives/LauncherViewController.m @@ -0,0 +1,40 @@ +#import "LauncherViewController.h" +#include "utils.h" + +@interface LauncherViewController () { +} + +// - (void)method + +@end + +@implementation LauncherViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + + CGRect screenBounds = [[UIScreen mainScreen] bounds]; + CGFloat screenScale = [[UIScreen mainScreen] scale]; + + UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, screenBounds.size.width, screenBounds.size.height)]; + scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; + + UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; + button.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth; + [button setTitle:@"Launch" forState:UIControlStateNormal]; + button.frame = CGRectMake(10.0, 10.0, 100.0, 50.0); + [button addTarget:self action:@selector(showSinaWeiboUserClickHandler:) forControlEvents:UIControlEventTouchUpInside]; + [scrollView addSubview:button]; + + self.view = scrollView; + + // [self.view addSubview:scrollView]; +} + +- (void)viewWillAppear:(BOOL)animated +{ + [super viewWillAppear:animated]; +} + +@end diff --git a/Natives/aminimake.sh b/Natives/aminimake.sh index e35597af..210fe3df 100644 --- a/Natives/aminimake.sh +++ b/Natives/aminimake.sh @@ -5,7 +5,7 @@ set -e CFLAGS="-fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -Wno-trigraphs -fpascal-strings -O3 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof" -clang -Wl,-rpath,/Applications/PojavLauncher.app/Frameworks -fobjc-arc -x objective-c -Fresources/Frameworks -framework UIKit -framework MetalANGLE -Iresources/Frameworks/MetalANGLE.framework/Headers -dynamiclib -isysroot /var/mobile/theos/sdks/iPhoneOS11.2.sdk $CFLAGS -o libpojavexec.dylib log.m AppDelegate.m UILauncher.m SurfaceViewController.m egl_bridge_ios.m egl_bridge.c input_bridge_v3.c utils.c -DGLES_TESTZ -DUSE_EGLZ +clang -Wl,-rpath,/Applications/PojavLauncher.app/Frameworks -fobjc-arc -x objective-c -Fresources/Frameworks -framework UIKit -framework MetalANGLE -Iresources/Frameworks/MetalANGLE.framework/Headers -dynamiclib -isysroot /var/mobile/theos/sdks/iPhoneOS11.2.sdk $CFLAGS -o libpojavexec.dylib log.m AppDelegate.m UILauncher.m LauncherViewController.m SurfaceViewController.m egl_bridge_ios.m egl_bridge.c input_bridge_v3.c utils.c -DGLES_TESTZ -DUSE_EGLZ ldid -S../entitlements.xml libpojavexec.dylib diff --git a/Natives/en.lproj/Main.storyboard b/Natives/en.lproj/Surface.storyboard similarity index 100% rename from Natives/en.lproj/Main.storyboard rename to Natives/en.lproj/Surface.storyboard diff --git a/Natives/libpojavexec.dylib b/Natives/libpojavexec.dylib index c1ced690d4f52d89dbcb6737a4d058e3e85681ee..8b6effc9db4d3463635a740316a2f94d86bc2482 100755 GIT binary patch literal 82160 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