Create wallpaper caching and add namespace
This commit is contained in:
parent
3b386259b1
commit
fe1381243b
|
|
@ -8,5 +8,8 @@
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
bool ChangeBackground(std::string imageURL);
|
namespace MacDesktop {
|
||||||
bool ResetBackground();
|
void CacheCurrentBackground();
|
||||||
|
bool ChangeBackground(std::string imageURL);
|
||||||
|
bool ResetBackground();
|
||||||
|
}
|
||||||
|
|
@ -10,16 +10,25 @@
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import <AppKit/AppKit.h>
|
#import <AppKit/AppKit.h>
|
||||||
|
|
||||||
bool ChangeBackground(std::string imageURL) {
|
NSURL *originalBackground;
|
||||||
|
NSDictionary<NSWorkspaceDesktopImageOptionKey, id> *originalOptions;
|
||||||
|
|
||||||
|
NSScreen *mainscreen = [NSScreen mainScreen];
|
||||||
|
NSWorkspace *sharedworkspace = [NSWorkspace sharedWorkspace];
|
||||||
|
|
||||||
|
void MacDesktop::CacheCurrentBackground() {
|
||||||
|
originalBackground = [sharedworkspace desktopImageURLForScreen:mainscreen];
|
||||||
|
originalOptions = [sharedworkspace desktopImageOptionsForScreen:mainscreen];
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MacDesktop::ChangeBackground(std::string imageURL) {
|
||||||
NSURL *URL = [NSURL fileURLWithPath:@(imageURL.c_str())];
|
NSURL *URL = [NSURL fileURLWithPath:@(imageURL.c_str())];
|
||||||
NSScreen *mainscreen = [NSScreen mainScreen];
|
|
||||||
NSWorkspace *sharedworkspace = [NSWorkspace sharedWorkspace];
|
|
||||||
|
|
||||||
BOOL success = [sharedworkspace setDesktopImageURL:[URL absoluteURL] forScreen:mainscreen options:[sharedworkspace desktopImageOptionsForScreen:mainscreen] error:nil];
|
BOOL success = [sharedworkspace setDesktopImageURL:[URL absoluteURL] forScreen:mainscreen options:[sharedworkspace desktopImageOptionsForScreen:mainscreen] error:nil];
|
||||||
return (bool)success;
|
return (bool)success;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ResetBackground() {
|
bool MacDesktop::ResetBackground() {
|
||||||
// XXX Implement me!
|
BOOL success = [sharedworkspace setDesktopImageURL:originalBackground forScreen:mainscreen options:originalOptions error:nil];
|
||||||
return false;
|
return (bool)success;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue