commit 57756a0c52c579f3e4f20c9c7e1ca94c3b09cd5e
parent 034c165d426b26056ca5890540c677110e84e9c3
Author: Alexander Kojevnikov <alexander@kojevnikov.com>
Date: Sat, 15 Sep 2012 18:23:14 -0700
osx: Associate with audio and video files, closes #2
Diffstat:
2 files changed, 38 insertions(+), 5 deletions(-)
diff --git a/dist/osx/Info.plist.in b/dist/osx/Info.plist.in
@@ -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>
diff --git a/src/spek.cc b/src/spek.cc
@@ -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