osx: Associate with audio and video files, closes #2

This commit is contained in:
Alexander Kojevnikov 2012-09-15 18:23:14 -07:00
parent 034c165d42
commit 57756a0c52
2 changed files with 38 additions and 5 deletions

View File

@ -25,6 +25,26 @@
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) 2010-2012 Alexander Kojevnikov and contributors</string>
<key>LSMinimumSystemVersion</key>
<string>10.4</string>
<string>10.5</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<array>
<string>Spek.icns</string>
</array>
<key>CFBundleTypeName</key>
<string>Spek File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>public.audio</string>
<string>public.movie</string>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -33,13 +33,17 @@ extern "C" {
class Spek: public wxApp
{
public:
Spek() : wxApp(), quit(false) {}
Spek() : wxApp(), window(NULL), quit(false) {}
protected:
virtual bool OnInit();
virtual int OnRun();
#ifdef OS_OSX
virtual void MacOpenFiles(const wxArrayString& files);
#endif
private:
SpekWindow *window;
wxString path;
bool quit;
};
@ -102,9 +106,9 @@ bool Spek::OnInit()
this->path = parser.GetParam();
}
SpekWindow *window = new SpekWindow(this->path);
window->Show(true);
SetTopWindow(window);
this->window = new SpekWindow(this->path);
this->window->Show(true);
SetTopWindow(this->window);
return true;
}
@ -116,3 +120,12 @@ int Spek::OnRun()
return wxApp::OnRun();
}
#ifdef OS_OSX
void Spek::MacOpenFiles(const wxArrayString& files)
{
if (files.GetCount() == 1) {
this->window->open(files[0]);
}
}
#endif