diff options
Diffstat (limited to 'SwifTools/Dock')
-rw-r--r-- | SwifTools/Dock/Dock.cpp | 14 | ||||
-rw-r--r-- | SwifTools/Dock/Dock.h | 18 | ||||
-rw-r--r-- | SwifTools/Dock/MacOSXDock.h | 21 | ||||
-rw-r--r-- | SwifTools/Dock/MacOSXDock.mm | 20 | ||||
-rw-r--r-- | SwifTools/Dock/NullDock.h | 19 | ||||
-rw-r--r-- | SwifTools/Dock/SConscript | 13 |
6 files changed, 105 insertions, 0 deletions
diff --git a/SwifTools/Dock/Dock.cpp b/SwifTools/Dock/Dock.cpp new file mode 100644 index 0000000..77bcd84 --- /dev/null +++ b/SwifTools/Dock/Dock.cpp @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include "SwifTools/Dock/Dock.h" + +namespace Swift { + +Dock::~Dock() { +} + +} diff --git a/SwifTools/Dock/Dock.h b/SwifTools/Dock/Dock.h new file mode 100644 index 0000000..a1c652d --- /dev/null +++ b/SwifTools/Dock/Dock.h @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +namespace Swift { + class String; + + class Dock { + public: + virtual ~Dock(); + + virtual void setMessage(const String& message) = 0; + }; +} diff --git a/SwifTools/Dock/MacOSXDock.h b/SwifTools/Dock/MacOSXDock.h new file mode 100644 index 0000000..e9667a6 --- /dev/null +++ b/SwifTools/Dock/MacOSXDock.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include "SwifTools/Dock/Dock.h" + +namespace Swift { + class String; + class CocoaApplication; + + class MacOSXDock : public Dock { + public: + MacOSXDock(CocoaApplication* application); + + void setMessage(const String& label); + }; +} diff --git a/SwifTools/Dock/MacOSXDock.mm b/SwifTools/Dock/MacOSXDock.mm new file mode 100644 index 0000000..d2a06b3 --- /dev/null +++ b/SwifTools/Dock/MacOSXDock.mm @@ -0,0 +1,20 @@ +#include "SwifTools/Dock/MacOSXDock.h" + +#include <AppKit/AppKit.h> +#include <Cocoa/Cocoa.h> + +#include "Swiften/Base/String.h" + +namespace Swift { + +MacOSXDock::MacOSXDock(CocoaApplication*) { +} + +void MacOSXDock::setMessage(const String& label) { + NSString *labelString = [[NSString alloc] initWithUTF8String: label.getUTF8Data()]; + [[NSApp dockTile] setBadgeLabel: labelString]; + [labelString release]; + [NSApp requestUserAttention: NSInformationalRequest]; +} + +} diff --git a/SwifTools/Dock/NullDock.h b/SwifTools/Dock/NullDock.h new file mode 100644 index 0000000..f2d27b7 --- /dev/null +++ b/SwifTools/Dock/NullDock.h @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include "SwifTools/Dock/Dock.h" + +namespace Swift { + class NullDock : public Dock { + public: + NullDock() {} + + virtual void setMessage(const String&) { + } + }; +} diff --git a/SwifTools/Dock/SConscript b/SwifTools/Dock/SConscript new file mode 100644 index 0000000..94797cb --- /dev/null +++ b/SwifTools/Dock/SConscript @@ -0,0 +1,13 @@ +Import("swiftools_env") + +sources = [ + "Dock.cpp", + ] + +if swiftools_env["PLATFORM"] == "darwin" and swiftools_env["target"] == "native" : + sources += [ + "MacOSXDock.mm", + ] + +objects = swiftools_env.StaticObject(sources) +swiftools_env.Append(SWIFTOOLS_OBJECTS = objects) |