Skip to content

Commit

Permalink
feat: add base for tray app
Browse files Browse the repository at this point in the history
  • Loading branch information
tony-go committed Jun 30, 2023
1 parent 8ce2285 commit e6d0443
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 7 deletions.
9 changes: 7 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@ cmake_minimum_required(VERSION 3.1.0)
project(TrayAgent LANGUAGES OBJC)

set(CMAKE_MACOSX_BUNDLE YES)

add_executable("${PROJECT_NAME}" MACOSX_BUNDLE main.m)

set_target_properties("${PROJECT_NAME}" PROPERTIES
MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME}"
MACOSX_BUNDLE_GUI_IDENTIFIER "com.tonygo.trayagent"
MACOSX_BUNDLE_BUNDLE_VERSION "1.0.0"
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist")
target_link_libraries("${PROJECT_NAME}" "-framework Cocoa")


34 changes: 34 additions & 0 deletions Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>@MACOSX_BUNDLE_BUNDLE_NAME@</string>
<key>CFBundleExecutable</key>
<string>@STARSHIP_APP_NAME@</string>
<key>CFBundleIdentifier</key>
<string>@MACOSX_BUNDLE_GUI_IDENTIFIER@</string>
<key>CFBundleVersion</key>
<string>@MACOSX_BUNDLE_BUNDLE_VERSION@</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>LSMinimumSystemVersion</key>
<string>@MACOSX_DEPLOYMENT_TARGET@</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHumanReadableCopyright</key>
<string>@MACOSX_BUNDLE_COPYRIGHT@</string>
<key>LSUIElement</key>
<true/>
</dict>
</plist>
7 changes: 4 additions & 3 deletions build.sh
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
rm -rf dist

mkdir -p dist

cd dist

cmake .. -G "Xcode" -DCMAKE_BUILD_TYPE=Debug
cmake .. -G "Xcode"

cmake --build .

open ./TrayAgent.app

cd ..


14 changes: 12 additions & 2 deletions main.m
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
#import <Cocoa/Cocoa.h>

@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (strong) NSStatusItem *statusItem;
@end

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSLog(@"Hello, World!");
self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];

self.statusItem.button.title = @"Hello";
self.statusItem.highlightMode = YES;
self.statusItem.menu = [[NSMenu alloc] initWithTitle:@"Menu"];

[self.statusItem.menu addItemWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@""];
}

- (void)terminate:(id)sender {
[NSApp terminate:sender];
}

@end
Expand All @@ -16,4 +27,3 @@ int main(int argc, const char* argv []) {
[NSApplication sharedApplication].delegate = appDelegate;
return NSApplicationMain(argc, argv);
}

0 comments on commit e6d0443

Please sign in to comment.