summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Slimber/Cocoa')
-rw-r--r--Slimber/Cocoa/CocoaController.mm18
-rw-r--r--Slimber/Cocoa/CocoaMenulet.h37
-rw-r--r--Slimber/Cocoa/CocoaMenulet.mm97
-rw-r--r--Slimber/Cocoa/SConscript30
-rw-r--r--Slimber/Cocoa/main.mm17
5 files changed, 102 insertions, 97 deletions
diff --git a/Slimber/Cocoa/CocoaController.mm b/Slimber/Cocoa/CocoaController.mm
index da1df98..7d17948 100644
--- a/Slimber/Cocoa/CocoaController.mm
+++ b/Slimber/Cocoa/CocoaController.mm
@@ -1,29 +1,29 @@
/*
- * Copyright (c) 2015 Isode Limited.
+ * Copyright (c) 2015-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Slimber/Cocoa/CocoaController.h>
-#include <Slimber/MainController.h>
#include <Slimber/Cocoa/CocoaMenulet.h>
#include <Slimber/Cocoa/main.h>
+#include <Slimber/MainController.h>
@implementation CocoaController {
- CocoaMenulet* menulet;
- MainController* main;
+ CocoaMenulet* menulet;
+ MainController* main;
}
- (void) dealloc {
- delete main;
- delete menulet;
- [super dealloc];
+ delete main;
+ delete menulet;
+ [super dealloc];
}
- (void) awakeFromNib {
- menulet = new CocoaMenulet();
- main = new MainController(menulet, eventLoop);
+ menulet = new CocoaMenulet();
+ main = new MainController(menulet, eventLoop);
}
@end
diff --git a/Slimber/Cocoa/CocoaMenulet.h b/Slimber/Cocoa/CocoaMenulet.h
index 887fdf9..0dc06f5 100644
--- a/Slimber/Cocoa/CocoaMenulet.h
+++ b/Slimber/Cocoa/CocoaMenulet.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2015 Isode Limited.
+ * Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -7,26 +7,27 @@
#pragma once
#include <Cocoa/Cocoa.h>
+
#include <Slimber/Menulet.h>
#include <SwifTools/Cocoa/CocoaAction.h>
class CocoaMenulet : public Menulet {
- public:
- CocoaMenulet();
- virtual ~CocoaMenulet();
-
- private:
- virtual void clear();
- virtual void addItem(const std::string& name, const std::string& icon);
- virtual void addSeparator();
- void setIcon(const std::string& icon);
- virtual void addAboutItem();
- virtual void addRestartItem();
- virtual void addExitItem();
-
- private:
- NSStatusItem* statusItem;
- NSMenu* menu;
- CocoaAction* restartAction;
+ public:
+ CocoaMenulet();
+ virtual ~CocoaMenulet();
+
+ private:
+ virtual void clear();
+ virtual void addItem(const std::string& name, const std::string& icon);
+ virtual void addSeparator();
+ void setIcon(const std::string& icon);
+ virtual void addAboutItem();
+ virtual void addRestartItem();
+ virtual void addExitItem();
+
+ private:
+ NSStatusItem* statusItem;
+ NSMenu* menu;
+ CocoaAction* restartAction;
};
diff --git a/Slimber/Cocoa/CocoaMenulet.mm b/Slimber/Cocoa/CocoaMenulet.mm
index 6013b05..a05843e 100644
--- a/Slimber/Cocoa/CocoaMenulet.mm
+++ b/Slimber/Cocoa/CocoaMenulet.mm
@@ -1,85 +1,82 @@
/*
- * Copyright (c) 2012-2013 Isode Limited.
+ * Copyright (c) 2012-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
-#include "Slimber/Cocoa/CocoaMenulet.h"
-
-#pragma GCC diagnostic ignored "-Wold-style-cast"
+#include <Slimber/Cocoa/CocoaMenulet.h>
#include <boost/function.hpp>
+#include <SwifTools/Cocoa/CocoaUtil.h>
+
CocoaMenulet::CocoaMenulet() {
- restartAction = [[CocoaAction alloc] initWithFunction:
- new boost::function<void()>(boost::ref(onRestartClicked))];
- menu = [[NSMenu alloc] init];
+ restartAction = [[CocoaAction alloc] initWithFunction:
+ new boost::function<void()>(boost::ref(onRestartClicked))];
+ menu = [[NSMenu alloc] init];
- statusItem = [[[NSStatusBar systemStatusBar]
- statusItemWithLength: NSVariableStatusItemLength] retain];
- [statusItem setHighlightMode: YES];
- [statusItem setEnabled: YES];
- [statusItem setToolTip: @"Slimber"];
- [statusItem setMenu: menu];
+ statusItem = [[[NSStatusBar systemStatusBar]
+ statusItemWithLength: NSVariableStatusItemLength] retain];
+ [statusItem setHighlightMode: YES];
+ [statusItem setEnabled: YES];
+ [statusItem setToolTip: @"Slimber"];
+ [statusItem setMenu: menu];
}
CocoaMenulet::~CocoaMenulet() {
- [statusItem release];
- [menu release];
- [restartAction release];
+ [statusItem release];
+ [menu release];
+ [restartAction release];
}
void CocoaMenulet::setIcon(const std::string& icon) {
- NSString* path = [[NSBundle mainBundle] pathForResource:
- [NSString stringWithUTF8String: icon.c_str()] ofType:@"png"];
- NSImage* image = [[NSImage alloc] initWithContentsOfFile: path];
- [statusItem setImage: image];
- [image release];
+ NSString* path = [[NSBundle mainBundle] pathForResource: std2NSString(icon) ofType:@"png"];
+ NSImage* image = [[NSImage alloc] initWithContentsOfFile: path];
+ [statusItem setImage: image];
+ [image release];
}
void CocoaMenulet::clear() {
- while ([menu numberOfItems] > 0) {
- [menu removeItemAtIndex: 0];
- }
+ while ([menu numberOfItems] > 0) {
+ [menu removeItemAtIndex: 0];
+ }
}
void CocoaMenulet::addItem(const std::string& name, const std::string& icon) {
- NSMenuItem* item = [[NSMenuItem alloc] initWithTitle:
- [NSString stringWithUTF8String: name.c_str()]
- action: NULL keyEquivalent: @""];
- if (!icon.empty()) {
- NSString* path = [[NSBundle mainBundle] pathForResource:
- [NSString stringWithUTF8String: icon.c_str()] ofType:@"png"];
- NSImage* image = [[NSImage alloc] initWithContentsOfFile: path];
- [item setImage: image];
- [image release];
- }
- [menu addItem: item];
- [item release];
+ NSMenuItem* item = [[NSMenuItem alloc] initWithTitle: std2NSString(name)
+ action: nullptr keyEquivalent: @""];
+ if (!icon.empty()) {
+ NSString* path = [[NSBundle mainBundle] pathForResource: std2NSString(icon) ofType:@"png"];
+ NSImage* image = [[NSImage alloc] initWithContentsOfFile: path];
+ [item setImage: image];
+ [image release];
+ }
+ [menu addItem: item];
+ [item release];
}
void CocoaMenulet::addAboutItem() {
- NSMenuItem* item = [[NSMenuItem alloc] initWithTitle: @"About Slimber" action: @selector(orderFrontStandardAboutPanel:) keyEquivalent: @""];
- [item setTarget: [NSApplication sharedApplication]];
- [menu addItem: item];
- [item release];
+ NSMenuItem* item = [[NSMenuItem alloc] initWithTitle: @"About Slimber" action: @selector(orderFrontStandardAboutPanel:) keyEquivalent: @""];
+ [item setTarget: [NSApplication sharedApplication]];
+ [menu addItem: item];
+ [item release];
}
void CocoaMenulet::addRestartItem() {
- NSMenuItem* item = [[NSMenuItem alloc] initWithTitle:
- @"Restart" action: @selector(doAction:) keyEquivalent: @""];
- [item setTarget: restartAction];
- [menu addItem: item];
- [item release];
+ NSMenuItem* item = [[NSMenuItem alloc] initWithTitle:
+ @"Restart" action: @selector(doAction:) keyEquivalent: @""];
+ [item setTarget: restartAction];
+ [menu addItem: item];
+ [item release];
}
void CocoaMenulet::addExitItem() {
- NSMenuItem* item = [[NSMenuItem alloc] initWithTitle: @"Exit" action: @selector(terminate:) keyEquivalent: @""];
- [item setTarget: [NSApplication sharedApplication]];
- [menu addItem: item];
- [item release];
+ NSMenuItem* item = [[NSMenuItem alloc] initWithTitle: @"Exit" action: @selector(terminate:) keyEquivalent: @""];
+ [item setTarget: [NSApplication sharedApplication]];
+ [menu addItem: item];
+ [item release];
}
void CocoaMenulet::addSeparator() {
- [menu addItem: [NSMenuItem separatorItem]];
+ [menu addItem: [NSMenuItem separatorItem]];
}
diff --git a/Slimber/Cocoa/SConscript b/Slimber/Cocoa/SConscript
index 441dc27..8f3c104 100644
--- a/Slimber/Cocoa/SConscript
+++ b/Slimber/Cocoa/SConscript
@@ -8,22 +8,22 @@ myenv.MergeFlags(env["SWIFTEN_FLAGS"])
myenv.MergeFlags(env["SWIFTEN_DEP_FLAGS"])
myenv.Program("Slimber", [
- "main.mm",
- "CocoaController.mm",
- "CocoaMenulet.mm",
- ])
+ "main.mm",
+ "CocoaController.mm",
+ "CocoaMenulet.mm",
+ ])
myenv.Nib("MainMenu")
myenv.AppBundle("Slimber", resources = { "": [
- "MainMenu.nib",
- "../Resources/Slimber.icns",
- "../Resources/Credits.html",
- "../Resources/Online.png",
- "../Resources/Offline.png",
- "../Resources/UsersOnline.png",
- "../Resources/UsersOffline.png"
- ]}, info = {
- "NSMainNibFile" : "MainMenu",
- "LSUIElement" : "1",
- })
+ "MainMenu.nib",
+ "../Resources/Slimber.icns",
+ "../Resources/Credits.html",
+ "../Resources/Online.png",
+ "../Resources/Offline.png",
+ "../Resources/UsersOnline.png",
+ "../Resources/UsersOffline.png"
+ ]}, info = {
+ "NSMainNibFile" : "MainMenu",
+ "LSUIElement" : "1",
+ })
diff --git a/Slimber/Cocoa/main.mm b/Slimber/Cocoa/main.mm
index 167c1ab..c5495af 100644
--- a/Slimber/Cocoa/main.mm
+++ b/Slimber/Cocoa/main.mm
@@ -1,13 +1,20 @@
+/*
+ * Copyright (c) 2016 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+
+#include <Slimber/Cocoa/main.h>
+
#include <Cocoa/Cocoa.h>
-#include "Slimber/Cocoa/main.h"
#include <Swiften/EventLoop/Cocoa/CocoaEventLoop.h>
Swift::CocoaEventLoop* eventLoop;
int main(int argc, char *argv[]) {
- eventLoop = new Swift::CocoaEventLoop();
- int result = NSApplicationMain(argc, const_cast<const char **>(argv));
- delete eventLoop;
- return result;
+ eventLoop = new Swift::CocoaEventLoop();
+ int result = NSApplicationMain(argc, const_cast<const char **>(argv));
+ delete eventLoop;
+ return result;
}