totalspaces2 2.0.3 → 2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +1 -3
- data/lib/TSLib.h +38 -1
- data/lib/libtotalspaces2api.dylib +0 -0
- data/lib/totalspaces2.rb +33 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f3ddbebf28e2e9743d6fe6d61c761e6268bc975
|
4
|
+
data.tar.gz: 713cce61a7e38741d5a7f8c5185d7c6171cce93a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44ea68c12359088a5c4d9ec63d71192c6788c85afd69c4fc414506e915116f786ea7aaf176a952eb9b823ca7d8bfb41332a7f6f6e7d14b5e5195083c877817ff
|
7
|
+
data.tar.gz: 1bf43400af7a477760785af3dbf51b66aa50ba9446e623347368a74be98974a3cb0214893aa25ee5a3a4e576800859cda0eceaabaf7e2ccf4250f71e3cc85677
|
data/README.rdoc
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
= TotalSpaces2 - Ruby API bindings for TotalSpaces2 from BinaryAge
|
2
2
|
|
3
|
-
==
|
4
|
-
|
5
|
-
Version 2.1+ of TotalSpaces2 is available by ticking the "Include pre-releases" checkbox in General Preferences and then selecting "Check for updates" from the menu.
|
3
|
+
== You can only use the API with versions 2.1 and above of TotalSpaces2.
|
6
4
|
|
7
5
|
This gem enables you to get information from and to control {TotalSpaces2}[link:http://totalspaces.binaryage.com]
|
8
6
|
|
data/lib/TSLib.h
CHANGED
@@ -87,17 +87,39 @@ void tsapi_freeDisplayList(struct tsapi_displays *displayList);
|
|
87
87
|
/*
|
88
88
|
* The number of the current space.
|
89
89
|
*
|
90
|
-
*
|
90
|
+
* Numbering starts at 1.
|
91
91
|
*/
|
92
92
|
unsigned int tsapi_currentSpaceNumberOnDisplay(CGDirectDisplayID displayID);
|
93
93
|
|
94
94
|
/*
|
95
95
|
* The name for the given space number.
|
96
96
|
*
|
97
|
+
* The name is either the custom one that has been set, or a name generated by TotalSpaces
|
98
|
+
* such as "Desktop 3".
|
97
99
|
* You must call tsapi_freeString when you have finished with the returned string.
|
98
100
|
*/
|
99
101
|
const char *tsapi_spaceNameForSpaceNumberOnDisplay(unsigned int spaceNumber, CGDirectDisplayID displayID);
|
100
102
|
|
103
|
+
/*
|
104
|
+
* The custom name for the given space number. If the space has no custom name set in,
|
105
|
+
* TotalSpaces2, NULL is returned.
|
106
|
+
*
|
107
|
+
* You must call tsapi_freeString when you have finished with the returned string.
|
108
|
+
*/
|
109
|
+
const char *tsapi_customNameForSpaceNumberOnDisplay(unsigned int spaceNumber, CGDirectDisplayID displayID);
|
110
|
+
|
111
|
+
typedef enum {
|
112
|
+
SpaceTypeDesktop,
|
113
|
+
SpaceTypeFullScreen,
|
114
|
+
SpaceTypeDashboard,
|
115
|
+
} SpaceType;
|
116
|
+
|
117
|
+
/*
|
118
|
+
* The type of the space.
|
119
|
+
*
|
120
|
+
*/
|
121
|
+
SpaceType tsapi_spaceTypeForSpaceNumberOnDisplay(unsigned int spaceNumber, CGDirectDisplayID displayID);
|
122
|
+
|
101
123
|
/*
|
102
124
|
* The uuid for the given space number. This uniquely identifies the space, even when
|
103
125
|
* it is moved to a different position or to another monitor.
|
@@ -275,5 +297,20 @@ bool tsapi_removeDesktopsOnDisplay(unsigned int numberToRemove, CGDirectDisplayI
|
|
275
297
|
*/
|
276
298
|
void tsapi_setFrontWindow(unsigned int windowID);
|
277
299
|
|
300
|
+
/*
|
301
|
+
* Move a window
|
302
|
+
* Use the origin from the frame given in the tsapi_window struct
|
303
|
+
* as the starting point to make adustments. There is no validation,
|
304
|
+
* you can place a window far off the screen if you wish.
|
305
|
+
*/
|
306
|
+
void tsapi_moveWindow(unsigned int windowID, float x, float y);
|
307
|
+
|
308
|
+
/*
|
309
|
+
* Bind an app to a particular space.
|
310
|
+
* Set spaceUUID to NULL to remove a binding for a partular app.
|
311
|
+
* Set spaceUUID to "AllSpaces" to make an app appear on every space.
|
312
|
+
*/
|
313
|
+
void tsapi_bindAppToSpace(char *bundleID, char *spaceUUID);
|
314
|
+
|
278
315
|
#endif
|
279
316
|
|
Binary file
|
data/lib/totalspaces2.rb
CHANGED
@@ -113,6 +113,9 @@ module TSApi #:nodoc:
|
|
113
113
|
attach_function :tsapi_removeDesktopsOnDisplay, [:uint, :uint], :bool
|
114
114
|
|
115
115
|
attach_function :tsapi_setFrontWindow, [:uint], :void
|
116
|
+
attach_function :tsapi_moveWindow, [:uint, :float, :float], :void
|
117
|
+
|
118
|
+
attach_function :tsapi_bindAppToSpace, [:string, :string], :void
|
116
119
|
end
|
117
120
|
|
118
121
|
module TotalSpaces2
|
@@ -177,7 +180,7 @@ module TotalSpaces2
|
|
177
180
|
|
178
181
|
public
|
179
182
|
|
180
|
-
# Returns the version of the dylib, a string such as "1.0"
|
183
|
+
# Returns the version of the dylib, a string such as "1.0.1"
|
181
184
|
# You should be using the same dylib major version number as that returned by the api_version call
|
182
185
|
#
|
183
186
|
# puts "libTotalSpaces2 version: #{TotalSpaces2.lib_total_spaces_version}"
|
@@ -192,8 +195,8 @@ module TotalSpaces2
|
|
192
195
|
string_and_free(TSApi.tsapi_libTotalSpacesVersion)
|
193
196
|
end
|
194
197
|
|
195
|
-
# Returns the version of the api present in TotalSpaces2, a string such as "1.0"
|
196
|
-
# You should be using the same dylib version as that returned by the this call
|
198
|
+
# Returns the version of the api present in TotalSpaces2, a string such as "1.0.1"
|
199
|
+
# You should be using the same dylib major version number as that returned by the this call
|
197
200
|
#
|
198
201
|
# puts "TotalSpaces2 API version: #{TotalSpaces2.api_version}"
|
199
202
|
#
|
@@ -620,5 +623,32 @@ module TotalSpaces2
|
|
620
623
|
def set_front_window(window_id)
|
621
624
|
TSApi.tsapi_setFrontWindow(window_id)
|
622
625
|
end
|
626
|
+
|
627
|
+
# Move a particular window to a new position.
|
628
|
+
# Use the origin from the frame given by window_list
|
629
|
+
# as the starting point to make adustments. There is no validation,
|
630
|
+
# you can place a window far off the screen if you wish.
|
631
|
+
#
|
632
|
+
# For instance, if the frame or window id 123 is "{{146, 23}, {1133, 754}}",
|
633
|
+
# the origin is (146, 23). To move the window down 20 pixels, you would do this:
|
634
|
+
#
|
635
|
+
# TotalSpaces2.move_window(123, 146, 43)
|
636
|
+
#
|
637
|
+
def move_window(window_id, x, y)
|
638
|
+
TSApi.tsapi_moveWindow(window_id, x, y)
|
639
|
+
end
|
640
|
+
|
641
|
+
# Bind an app to a space.
|
642
|
+
# The bundle_id is normally in the format "com.apple.mail"
|
643
|
+
# Setting the space_uuid to AllSpaces will result in an app
|
644
|
+
# appearing on every desktop.
|
645
|
+
# Setting the space_uuid to nil will delete the setting for the
|
646
|
+
# given bundle_id.
|
647
|
+
#
|
648
|
+
# TotalSpaces2.bind_app_to_space("com.apple.mail", "AllSpaces")
|
649
|
+
#
|
650
|
+
def bind_app_to_space(bundle_id, space_uuid)
|
651
|
+
TSApi.tsapi_bindAppToSpace(bundle_id, space_uuid)
|
652
|
+
end
|
623
653
|
end
|
624
654
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: totalspaces2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen Sykes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -63,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
63
|
version: '0'
|
64
64
|
requirements: []
|
65
65
|
rubyforge_project:
|
66
|
-
rubygems_version: 2.
|
66
|
+
rubygems_version: 2.4.5
|
67
67
|
signing_key:
|
68
68
|
specification_version: 4
|
69
69
|
summary: TotalSpaces2 control from ruby
|