macos implementation

This commit is contained in:
Slic3rPE 2019-12-10 11:17:12 +01:00 committed by David Kocik
parent e0a12342da
commit c3653589f6
3 changed files with 18 additions and 12 deletions

View file

@ -218,11 +218,11 @@ INT_PTR WINAPI WinProcCallback(HWND hWnd, UINT message, WPARAM wParam, LPARAM lP
#else
void RemovableDriveManager::search_for_drives()
{
/*
#if __APPLE__
list_devices();
#endif
*/
m_current_drives.clear();
m_current_drives.reserve(26);
@ -389,6 +389,8 @@ void RemovableDriveManager::init()
add_callback([](void) { RemovableDriveManager::get_instance().print(); });
#if _WIN32
register_window();
#elif __APPLE__
register_window();
#endif
update();
}

View file

@ -55,6 +55,8 @@ private:
void *m_rdmmm;
void register_window();
//void list_devices();
void search_path(const std::string &path, const std::string &parent_path);
bool compare_filesystem_id(const std::string &path_a, const std::string &path_b);
#else
void search_path(const std::string &path, const std::string &parent_path);
bool compare_filesystem_id(const std::string &path_a, const std::string &path_b);

View file

@ -1,37 +1,38 @@
#import "RemovableDriveManager.hpp"
#import "RemovableDriveManagerMM.h"
#import <AppKit/AppKit.h>
@implementation RemovableDriveManagerMM
namespace Slic3r {
namespace GUI {
-(instancetype) init
{
self = [super init];
if(self)
{
[self add_unmount_observer]
[self add_unmount_observer];
}
return self;
}
-(void) on_device_unmount: (NSNotification*) notification
{
NSLog(@"on device change");
RemovableDriveManager::get_instance().update();
Slic3r::GUI::RemovableDriveManager::get_instance().update();
}
-(void) add_unmount_observer
{
NSLog(@"add unmount observer");
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector: @selector(on_device_unmount:) name:NSWorkspaceDidUnmountNotification object:nil];
}
namespace Slic3r {
namespace GUI {
void RemovableDriveManager::register_window()
{
m_rdmmm = nullptr;
m_rdmmm = [[RemovableDriveManagerMM alloc] init];
}
}}//namespace Slicer::GUI
/*
-(void) RemovableDriveManager::list_devices()
@ -65,4 +66,5 @@ void RemovableDriveManager::register_window()
}
}
*/
}}//namespace Slicer::GUI
@end