From fe1381243b1d131cc9ba2b24e4b2157b55534fcb Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Thu, 1 Mar 2018 15:48:42 -0800 Subject: [PATCH] Create wallpaper caching and add namespace --- src/mac-desktop.h | 7 +++++-- src/mac-desktop.mm | 21 +++++++++++++++------ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/mac-desktop.h b/src/mac-desktop.h index 961a705..c3e92eb 100644 --- a/src/mac-desktop.h +++ b/src/mac-desktop.h @@ -8,5 +8,8 @@ #include -bool ChangeBackground(std::string imageURL); -bool ResetBackground(); \ No newline at end of file +namespace MacDesktop { + void CacheCurrentBackground(); + bool ChangeBackground(std::string imageURL); + bool ResetBackground(); +} \ No newline at end of file diff --git a/src/mac-desktop.mm b/src/mac-desktop.mm index 47a8675..31e837b 100644 --- a/src/mac-desktop.mm +++ b/src/mac-desktop.mm @@ -10,16 +10,25 @@ #import #import -bool ChangeBackground(std::string imageURL) { +NSURL *originalBackground; +NSDictionary *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())]; - NSScreen *mainscreen = [NSScreen mainScreen]; - NSWorkspace *sharedworkspace = [NSWorkspace sharedWorkspace]; BOOL success = [sharedworkspace setDesktopImageURL:[URL absoluteURL] forScreen:mainscreen options:[sharedworkspace desktopImageOptionsForScreen:mainscreen] error:nil]; return (bool)success; } -bool ResetBackground() { - // XXX Implement me! - return false; +bool MacDesktop::ResetBackground() { + BOOL success = [sharedworkspace setDesktopImageURL:originalBackground forScreen:mainscreen options:originalOptions error:nil]; + return (bool)success; }