Browse Source

Add command to bounce dock icon on OSX

Change-Id: I4f0ae98d92e106e72388b81e1c7747f9a7ed68a6
Reviewed-on: http://gerrit.dmdirc.com/2569
Reviewed-by: Chris Smith <chris@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
tags/0.7
Chris Northwood 11 years ago
parent
commit
75b000ce64

+ 1
- 0
.gitignore View File

@@ -1,2 +1,3 @@
1 1
 /build
2 2
 /dist
3
+*.iml

+ 68
- 0
src/com/dmdirc/addons/osx_integration/DockBounceCommand.java View File

@@ -0,0 +1,68 @@
1
+/*
2
+ * Copyright (c) 2006-2012 DMDirc Developers
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+
23
+package com.dmdirc.addons.osx_integration;
24
+
25
+import com.dmdirc.FrameContainer;
26
+import com.dmdirc.addons.ui_swing.Apple;
27
+import com.dmdirc.commandparser.BaseCommandInfo;
28
+import com.dmdirc.commandparser.CommandArguments;
29
+import com.dmdirc.commandparser.CommandType;
30
+import com.dmdirc.commandparser.commands.Command;
31
+import com.dmdirc.commandparser.commands.context.CommandContext;
32
+
33
+/**
34
+ * A command to bounce the icon in the OSX dock.
35
+ */
36
+public class DockBounceCommand extends Command {
37
+
38
+    /**
39
+     * Information about this command.
40
+     */
41
+    public static final BaseCommandInfo INFO = new BaseCommandInfo(
42
+            "dockbounce",
43
+            "dockbounce - bounce the dock icon on OS X",
44
+            CommandType.TYPE_GLOBAL
45
+    );
46
+
47
+    /**
48
+     * The current UI's Apple-specific library.
49
+     */
50
+    private final Apple apple;
51
+
52
+    /**
53
+     * Creates an instance of {@link DockBounceCommand}.
54
+     *
55
+     * @param apple The UI wrapper for Apple-specific things
56
+     */
57
+    public DockBounceCommand(final Apple apple) {
58
+        this.apple = apple;
59
+    }
60
+
61
+    /** {@inheritDoc} */
62
+    @Override
63
+    public void execute(final FrameContainer origin,
64
+                        final CommandArguments args,
65
+                        final CommandContext context) {
66
+        apple.requestUserAttention(false);
67
+    }
68
+}

+ 43
- 0
src/com/dmdirc/addons/osx_integration/OsxIntegrationPlugin.java View File

@@ -0,0 +1,43 @@
1
+/*
2
+ * Copyright (c) 2006-2012 DMDirc Developers
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+
23
+package com.dmdirc.addons.osx_integration;
24
+
25
+import com.dmdirc.addons.ui_swing.SwingController;
26
+import com.dmdirc.plugins.BasePlugin;
27
+
28
+/**
29
+ * A plugin which provides extra commands that integrate with the OS X
30
+ * environment.
31
+ */
32
+public class OsxIntegrationPlugin extends BasePlugin {
33
+
34
+    /**
35
+     * Creates an instance of {@link OsxIntegrationPlugin}.
36
+     *
37
+     * @param controller The Swing UI which runs on the OS X environment
38
+     */
39
+    public OsxIntegrationPlugin(final SwingController controller) {
40
+        registerCommand(new DockBounceCommand(controller.getApple()),
41
+                DockBounceCommand.INFO);
42
+    }
43
+}

+ 27
- 0
src/com/dmdirc/addons/osx_integration/plugin.config View File

@@ -0,0 +1,27 @@
1
+keysections:
2
+  metadata
3
+  requires
4
+  version
5
+  updates
6
+
7
+metadata:
8
+  author=Chris Northwood <chrisn@dmdirc.com>
9
+  mainclass=com.dmdirc.addons.osx_integration.OsxIntegrationPlugin
10
+  description=Provides commands that integrate with OSX
11
+  name=osx_integration
12
+  nicename=OSX Integration Plugin
13
+
14
+requires:
15
+  parent=ui_swing
16
+
17
+required-services:
18
+  swing ui
19
+
20
+updates:
21
+  id=72
22
+
23
+version:
24
+  friendly=1.0
25
+
26
+provides:
27
+  dockbounce command

Loading…
Cancel
Save