ccuty  1.0
 All Classes Namespaces Files Functions Enumerations Macros Pages
macdesktop.hpp
Go to the documentation of this file.
1 //
2 // macdesktop: functions for managing the MacOSX desktop.
3 // (C) Eric Lecolinet 2017 - www.telecom-paristech.fr/~elc
4 //
5 
11 #ifndef ccuty_macdesktop
12 #define ccuty_macdesktop
13 
14 #include <string>
15 
16 namespace ccuty {
17 
20  class MacDesktop {
21  public:
22  static MacDesktop instance;
23 
25  int system(const std::string& command);
26 
28  int system(const std::string& command, std::string& result);
29 
31  void activateApp(const std::string& appName);
32 
34  bool getFrontAppPath(std::string& str);
35 
37  bool getFrontAppName(std::string& str);
38 
40  bool getFrontAppLocName(std::string& str);
41 
46  void open(const std::string& path);
47 
50  void openUrl(const std::string& url);
51 
55  void openFile(const std::string& path);
56 
60  void openApp(const std::string& path);
61 
63  void openApp(const std::string& path, const std::string& arg);
64 
66  void hideApp(const std::string& path);
67 
69  void tellApp(const std::string& path, const std::string& command, bool inBackground = true);
70 
72  void tellApp(const std::string& path, const std::string& command, std::string& result);
73 
75  void wakeScreen();
76 
78  void changeVolume(int value, bool displayNotification = false);
79 
81  void setVolume(unsigned int value, bool displayNotification = false);
82 
84  void muteVolume();
85 
87  void beep(int seconds);
88 
90  void say(const std::string& message);
91 
93  void playPause();
94 
96 
99  bool playAlbum(const std::string& album, const std::string& artist);
100 
102 
104  bool playPlaylist(const std::string& playlist, const std::string& track = "");
105 
107 
110  bool getCurrentTrack(std::string& album, std::string& artist, std::string& track,
111  bool isPlaying = true);
112 
114  void showHideDock();
115 
117  static void getMainScreenSize(size_t& width, size_t& height);
118 
124  static void hideMouse(bool state);
125 
127  enum MouseButton {LeftButton=0, RightButton=1, CenterButton=3};
128 
130  static void getMouse(double& x, double& y);
131 
133  static void pressMouse(double x, double y, unsigned int mouseButton);
134 
136  static void releaseMouse(double x, double y, unsigned int mouseButton);
137 
139  static void dragMouse(double x, double y, unsigned int mouseButton);
140 
142  static void moveMouse(double x, double y);
143 
145  enum Modifiers {Shift=1<<0, Control=1<<1, Alt=1<<2, Command=1<<3};
146 
148  enum KeyType {KeyDown=1<<0, KeyUp=1<<1, KeyType=(KeyDown|KeyUp)};
149 
161  void sendKeyStroke(const std::string& keystroke);
162 
169  static void sendKeycode(uint32_t keycode, uint8_t modifiers=0, uint8_t keytype = KeyType);
170 
172  static void sendLeftKey();
173 
175  static void sendRightKey();
176 
178  static void sendUpKey();
179 
181  static void sendDownKey();
182 
184  static void sendTabKey();
185 
187  static void sendBacktabKey();
188 
190  static void sendSpaceKey();
191 
193  static void sendReturnKey();
194 
196  static void sendDeleteKey();
197 
199  static void sendEscapeKey();
200  };
201 }
202 
203 #endif