diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-04-07 16:22:04 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-04-07 16:22:04 +0100 |
| commit | e7aad9759e44ff3e1aa17ad8d5548a02646a67c5 (patch) | |
| tree | 4e2ceabbc9abf6fe3417c74f715a04a5d9d4b03a | |
| parent | fea8c3743fd0710c2716fc6de5a283d378338800 (diff) | |
Fix servomatic_gui start-up on Linux (#98).
| -rw-r--r-- | icons/taskbar_icon.png | bin | 0 -> 141 bytes | |||
| -rw-r--r-- | src/tools/servomatic_gui.cc | 24 | ||||
| -rw-r--r-- | wscript | 4 |
3 files changed, 26 insertions, 2 deletions
diff --git a/icons/taskbar_icon.png b/icons/taskbar_icon.png Binary files differnew file mode 100644 index 000000000..fd6b6e968 --- /dev/null +++ b/icons/taskbar_icon.png diff --git a/src/tools/servomatic_gui.cc b/src/tools/servomatic_gui.cc index dd169725f..52ec0a3a3 100644 --- a/src/tools/servomatic_gui.cc +++ b/src/tools/servomatic_gui.cc @@ -94,7 +94,15 @@ class TaskBarIcon : public wxTaskBarIcon public: TaskBarIcon () { +#ifdef __WXMSW__ wxIcon icon (std_to_wx ("taskbar_icon")); +#endif +#ifdef __WXGTK__ + wxInitAllImageHandlers(); + wxBitmap bitmap (wxString::Format ("%s/taskbar_icon.png", POSIX_ICON_PREFIX), wxBITMAP_TYPE_PNG); + wxIcon icon; + icon.CopyFromBitmap (bitmap); +#endif SetIcon (icon, std_to_wx ("DVD-o-matic encode server")); Connect (ID_status, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (TaskBarIcon::status)); @@ -128,20 +136,31 @@ public: App () : wxApp () , _thread (0) + , _icon (0) {} private: bool OnInit () { + if (!wxApp::OnInit ()) { + return false; + } + dvdomatic_setup (); - new TaskBarIcon; - + _icon = new TaskBarIcon; _thread = new thread (bind (&App::main_thread, this)); + return true; } + int OnExit () + { + delete _icon; + return wxApp::OnExit (); + } + void main_thread () { Server server (memory_log); @@ -149,6 +168,7 @@ private: } boost::thread* _thread; + TaskBarIcon* _icon; }; IMPLEMENT_APP (App) @@ -37,6 +37,7 @@ def configure(conf): else: conf.env.append_value('CXXFLAGS', '-DDVDOMATIC_POSIX') conf.env.append_value('CXXFLAGS', '-DPOSIX_LOCALE_PREFIX="%s/share/locale"' % conf.env['PREFIX']) + conf.env.append_value('CXXFLAGS', '-DPOSIX_ICON_PREFIX="%s/share/dvdomatic"' % conf.env['PREFIX']) boost_lib_suffix = '' boost_thread = 'boost_thread' conf.env.append_value('LINKFLAGS', '-pthread') @@ -231,6 +232,9 @@ def build(bld): for r in ['22x22', '32x32', '48x48', '64x64', '128x128']: bld.install_files('${PREFIX}/share/icons/hicolor/%s/apps' % r, 'icons/%s/dvdomatic.png' % r) + if not bld.env.TARGET_WINDOWS: + bld.install_files('${PREFIX}/share/dvdomatic', 'icons/taskbar_icon.png') + bld.add_post_fun(post) def dist(ctx): |
