The branch, twofactorauth has been updated via 587da059b3260807e8d5dce7d5a2df5174ea1a51 (commit) from cd88f30d73ebd72a155d1a7a92c47e815c176f61 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: README | 41 + README.i18n | 11 + TODO | 26 + build-for-reprepro.sh | 39 + build/mo/de/LC_MESSAGES/pyhoca-gui.mo | Bin 0 -> 13122 bytes build/mo/en/LC_MESSAGES/pyhoca-gui.mo | Bin 0 -> 12332 bytes build/mo/es/LC_MESSAGES/pyhoca-gui.mo | Bin 0 -> 11154 bytes build/mo/nl/LC_MESSAGES/pyhoca-gui.mo | Bin 0 -> 10669 bytes debian/changelog | 247 ++++ debian/compat | 1 + debian/control | 16 + debian/copyright | 14 + debian/pyhoca-gui.dirs | 1 + debian/pyhoca-gui.docs | 2 + debian/pyhoca-gui.install | 5 + debian/pyhoca-gui.manpages | 1 + debian/rules | 24 + debian/source/format | 1 + desktop/pyhoca-gui.desktop | 13 + examples/printing | 17 + examples/settings | 17 + examples/xconfig | 24 + icons/PyHoca/128x128/pyhoca-session.png | Bin 0 -> 19982 bytes icons/PyHoca/128x128/pyhoca-trayicon.png | Bin 0 -> 19982 bytes icons/PyHoca/128x128/pyhoca-winicon.png | Bin 0 -> 19982 bytes icons/PyHoca/128x128/x2go-logo-rotated.png | Bin 0 -> 19360 bytes icons/PyHoca/128x128/x2go-logo-ubuntu.png | Bin 0 -> 11139 bytes icons/PyHoca/128x128/x2go-logo-white-bg.png | Bin 0 -> 3714 bytes icons/PyHoca/128x128/x2go.png | Bin 0 -> 6095 bytes icons/PyHoca/16x16/pyhoca-session.png | Bin 0 -> 1099 bytes icons/PyHoca/16x16/pyhoca-trayicon.png | Bin 0 -> 1099 bytes icons/PyHoca/16x16/pyhoca-winicon.png | Bin 0 -> 1099 bytes icons/PyHoca/16x16/system-search.png | Bin 0 -> 885 bytes icons/PyHoca/16x16/x2go-logo-rotated.png | Bin 0 -> 1367 bytes icons/PyHoca/16x16/x2go-logo-ubuntu.png | Bin 0 -> 1118 bytes icons/PyHoca/16x16/x2go-logo-white-bg.png | Bin 0 -> 547 bytes icons/PyHoca/16x16/x2go.png | Bin 0 -> 705 bytes icons/PyHoca/22x22/pyhoca-session.png | Bin 0 -> 1519 bytes icons/PyHoca/22x22/pyhoca-trayicon.png | Bin 0 -> 1519 bytes icons/PyHoca/22x22/pyhoca-winicon.png | Bin 0 -> 1519 bytes icons/PyHoca/22x22/x2go-logo-rotated.png | Bin 0 -> 1903 bytes icons/PyHoca/22x22/x2go-logo-ubuntu.png | Bin 0 -> 1486 bytes icons/PyHoca/22x22/x2go-logo-white-bg.png | Bin 0 -> 653 bytes icons/PyHoca/22x22/x2go.png | Bin 0 -> 900 bytes icons/PyHoca/32x32/audio_error.png | 1 + icons/PyHoca/32x32/auth_disconnect.png | 1 + icons/PyHoca/32x32/auth_error.png | 1 + icons/PyHoca/32x32/auth_failed.png | 1 + icons/PyHoca/32x32/auth_success.png | 1 + icons/PyHoca/32x32/broom-cleanup.png | Bin 0 -> 2352 bytes icons/PyHoca/32x32/dialog-apply.png | Bin 0 -> 1572 bytes icons/PyHoca/32x32/dialog-error.png | Bin 0 -> 1674 bytes icons/PyHoca/32x32/dialog-question.png | Bin 0 -> 2102 bytes icons/PyHoca/32x32/dialog-warning.png | Bin 0 -> 1651 bytes icons/PyHoca/32x32/document-save.png | Bin 0 -> 1841 bytes icons/PyHoca/32x32/edit-delete.png | Bin 0 -> 2415 bytes icons/PyHoca/32x32/gnome-dev-printer-network.png | Bin 0 -> 1497 bytes icons/PyHoca/32x32/gtk-edit.png | Bin 0 -> 1527 bytes icons/PyHoca/32x32/list-add.png | Bin 0 -> 829 bytes icons/PyHoca/32x32/locked.png | Bin 0 -> 1759 bytes icons/PyHoca/32x32/media-eject.png | Bin 0 -> 1107 bytes icons/PyHoca/32x32/media-playback-pause.png | Bin 0 -> 687 bytes icons/PyHoca/32x32/media-playback-start.png | Bin 0 -> 1223 bytes icons/PyHoca/32x32/media-playback-stop.png | Bin 0 -> 407 bytes icons/PyHoca/32x32/media-record.png | Bin 0 -> 1060 bytes icons/PyHoca/32x32/media-seek-backward.png | Bin 0 -> 1009 bytes icons/PyHoca/32x32/media-seek-forward.png | Bin 0 -> 1052 bytes icons/PyHoca/32x32/media-skip-backward.png | Bin 0 -> 1109 bytes icons/PyHoca/32x32/media-skip-forward.png | Bin 0 -> 1167 bytes icons/PyHoca/32x32/network-wired.png | Bin 0 -> 1754 bytes icons/PyHoca/32x32/profile_add.png | 1 + icons/PyHoca/32x32/profile_delete.png | 1 + icons/PyHoca/32x32/profile_edit.png | 1 + icons/PyHoca/32x32/profile_error.png | 1 + icons/PyHoca/32x32/profile_save.png | 1 + icons/PyHoca/32x32/pyhoca-session.png | Bin 0 -> 2621 bytes icons/PyHoca/32x32/pyhoca-trayicon.png | Bin 0 -> 2621 bytes icons/PyHoca/32x32/pyhoca-winicon.png | Bin 0 -> 2621 bytes icons/PyHoca/32x32/session_cleanall.png | 1 + icons/PyHoca/32x32/session_error.png | 1 + icons/PyHoca/32x32/session_printing.png | 1 + icons/PyHoca/32x32/session_resume.png | 1 + icons/PyHoca/32x32/session_start.png | 1 + icons/PyHoca/32x32/session_suspend.png | 1 + icons/PyHoca/32x32/session_terminate.png | 1 + icons/PyHoca/32x32/session_warning.png | 1 + icons/PyHoca/32x32/unlocked.png | Bin 0 -> 1854 bytes icons/PyHoca/32x32/window-close.png | Bin 0 -> 1718 bytes icons/PyHoca/32x32/window-new.png | Bin 0 -> 1240 bytes icons/PyHoca/32x32/x2go-logo-rotated.png | Bin 0 -> 3107 bytes icons/PyHoca/32x32/x2go-logo-ubuntu.png | Bin 0 -> 2545 bytes icons/PyHoca/32x32/x2go-logo-white-bg.png | Bin 0 -> 985 bytes icons/PyHoca/32x32/x2go.png | Bin 0 -> 1483 bytes icons/PyHoca/48x48/pyhoca-session.png | Bin 0 -> 5073 bytes icons/PyHoca/48x48/pyhoca-trayicon.png | Bin 0 -> 5073 bytes icons/PyHoca/48x48/pyhoca-winicon.png | Bin 0 -> 5073 bytes icons/PyHoca/48x48/x2go-logo-rotated.png | Bin 0 -> 5421 bytes icons/PyHoca/48x48/x2go-logo-ubuntu.png | Bin 0 -> 4205 bytes icons/PyHoca/48x48/x2go-logo-white-bg.png | Bin 0 -> 3774 bytes icons/PyHoca/48x48/x2go.png | Bin 0 -> 2357 bytes icons/PyHoca/64x64/pyhoca-session.png | Bin 0 -> 7923 bytes icons/PyHoca/64x64/pyhoca-trayicon.png | Bin 0 -> 7923 bytes icons/PyHoca/64x64/pyhoca-winicon.png | Bin 0 -> 7923 bytes icons/PyHoca/64x64/x2go-logo-rotated.png | Bin 0 -> 7840 bytes icons/PyHoca/64x64/x2go-logo-ubuntu.png | Bin 0 -> 5704 bytes icons/PyHoca/64x64/x2go-logo-white-bg.png | Bin 0 -> 1872 bytes icons/PyHoca/64x64/x2go.png | Bin 0 -> 2960 bytes icons/PyHoca/scalable/auth_disconnect.svg | 1 + icons/PyHoca/scalable/auth_error.svg | 1 + icons/PyHoca/scalable/auth_success.svg | 1 + icons/PyHoca/scalable/broom-cleanup.svg | Bin 0 -> 75647 bytes icons/PyHoca/scalable/dialog-apply.svg | 150 ++ icons/PyHoca/scalable/dialog-error.svg | 178 +++ icons/PyHoca/scalable/dialog-question.svg | 185 +++ icons/PyHoca/scalable/dialog-warning.svg | 221 +++ icons/PyHoca/scalable/document-save.svg | 920 ++++++++++++ icons/PyHoca/scalable/edit-delete.svg | 272 ++++ .../PyHoca/scalable/gnome-dev-printer-network.svg | 731 ++++++++++ icons/PyHoca/scalable/gtk-edit.svg | 788 +++++++++++ icons/PyHoca/scalable/list-add.svg | 256 ++++ icons/PyHoca/scalable/locked.svg | 534 +++++++ icons/PyHoca/scalable/media-eject.svg | 270 ++++ icons/PyHoca/scalable/media-playback-pause.svg | 320 +++++ icons/PyHoca/scalable/media-playback-start.svg | 140 ++ icons/PyHoca/scalable/media-playback-stop.svg | 149 ++ icons/PyHoca/scalable/media-record.svg | 185 +++ icons/PyHoca/scalable/media-seek-backward.svg | 212 +++ icons/PyHoca/scalable/media-seek-forward.svg | 199 +++ icons/PyHoca/scalable/media-skip-backward.svg | 243 ++++ icons/PyHoca/scalable/media-skip-forward.svg | 244 ++++ icons/PyHoca/scalable/network-wired.svg | 661 +++++++++ icons/PyHoca/scalable/profile_add.svg | 1 + icons/PyHoca/scalable/profile_delete.svg | 1 + icons/PyHoca/scalable/profile_edit.svg | 1 + icons/PyHoca/scalable/profile_save.svg | 1 + icons/PyHoca/scalable/pyhoca-session.svg | 568 ++++++++ icons/PyHoca/scalable/pyhoca-trayicon.svg | 568 ++++++++ icons/PyHoca/scalable/pyhoca-winicon.svg | 568 ++++++++ icons/PyHoca/scalable/session_cleanall.svg | 1 + icons/PyHoca/scalable/session_error.svg | 1 + icons/PyHoca/scalable/session_pause.svg | 1 + icons/PyHoca/scalable/session_printing.svg | 1 + icons/PyHoca/scalable/session_resume.svg | 1 + icons/PyHoca/scalable/session_start.svg | 1 + icons/PyHoca/scalable/session_terminate.svg | 1 + icons/PyHoca/scalable/session_warning.svg | 1 + icons/PyHoca/scalable/system-search.svg | 430 ++++++ icons/PyHoca/scalable/unlocked.svg | 577 ++++++++ icons/PyHoca/scalable/window-close.svg | 170 +++ icons/PyHoca/scalable/window-new.svg | 322 +++++ icons/PyHoca/scalable/x2go-logo-rotated.svg | 1495 ++++++++++++++++++++ icons/PyHoca/scalable/x2go-logo-ubuntu.svg | 358 +++++ icons/PyHoca/scalable/x2go-logo-white-bg.svg | 361 +++++ icons/PyHoca/scalable/x2go.svg | 361 +++++ img/pyhoca-about-logo.png | Bin 0 -> 75269 bytes img/pyhoca-splash.png | Bin 0 -> 49098 bytes locale | 1 + man/pyhoca-gui.1 | 159 +++ pixmaps/pyhoca-gui.ico | Bin 0 -> 27942 bytes pixmaps/pyhoca_x2go-logo-ubuntu.ico | Bin 0 -> 26150 bytes pixmaps/pyhoca_x2go-logo-ubuntu.svg | 358 +++++ po/POTFILES.in | 11 + po/de.po | 855 +++++++++++ po/en.po | 852 +++++++++++ po/es.po | 843 +++++++++++ po/nl.po | 840 +++++++++++ po/pyhoca-gui.pot | 807 +++++++++++ pyhoca-gui | 304 ++++ pyhoca/__init__.py | 20 + pyhoca/__init__.pyc | Bin 0 -> 158 bytes pyhoca/wxgui/__init__.py | 23 + pyhoca/wxgui/__init__.pyc | Bin 0 -> 238 bytes pyhoca/wxgui/about.py | 76 + pyhoca/wxgui/about.pyc | Bin 0 -> 2184 bytes pyhoca/wxgui/basepath.py | 49 + pyhoca/wxgui/basepath.pyc | Bin 0 -> 1154 bytes pyhoca/wxgui/frontend.py | 588 ++++++++ pyhoca/wxgui/frontend.pyc | Bin 0 -> 27442 bytes pyhoca/wxgui/logon.py | 323 +++++ pyhoca/wxgui/logon.pyc | Bin 0 -> 9870 bytes pyhoca/wxgui/menus_taskbar.py | 331 +++++ pyhoca/wxgui/menus_taskbar.pyc | Bin 0 -> 10553 bytes pyhoca/wxgui/notify.py | 173 +++ pyhoca/wxgui/notify.pyc | Bin 0 -> 5668 bytes pyhoca/wxgui/profilemanager.py | 1352 ++++++++++++++++++ pyhoca/wxgui/profilemanager.pyc | Bin 0 -> 48357 bytes pyhoca/wxgui/taskbar.py | 144 ++ pyhoca/wxgui/taskbar.pyc | Bin 0 -> 5177 bytes setup.py | 118 ++ x2go | 1 + 190 files changed, 21397 insertions(+) create mode 100644 README create mode 100644 README.i18n create mode 100644 TODO create mode 100755 build-for-reprepro.sh create mode 100644 build/mo/de/LC_MESSAGES/pyhoca-gui.mo create mode 100644 build/mo/en/LC_MESSAGES/pyhoca-gui.mo create mode 100644 build/mo/es/LC_MESSAGES/pyhoca-gui.mo create mode 100644 build/mo/nl/LC_MESSAGES/pyhoca-gui.mo create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/pyhoca-gui.dirs create mode 100644 debian/pyhoca-gui.docs create mode 100644 debian/pyhoca-gui.install create mode 100644 debian/pyhoca-gui.manpages create mode 100755 debian/rules create mode 100644 debian/source/format create mode 100644 desktop/pyhoca-gui.desktop create mode 100644 examples/printing create mode 100644 examples/settings create mode 100644 examples/xconfig create mode 100644 icons/PyHoca/128x128/pyhoca-session.png create mode 100644 icons/PyHoca/128x128/pyhoca-trayicon.png create mode 100644 icons/PyHoca/128x128/pyhoca-winicon.png create mode 100644 icons/PyHoca/128x128/x2go-logo-rotated.png create mode 100644 icons/PyHoca/128x128/x2go-logo-ubuntu.png create mode 100644 icons/PyHoca/128x128/x2go-logo-white-bg.png create mode 100644 icons/PyHoca/128x128/x2go.png create mode 100644 icons/PyHoca/16x16/pyhoca-session.png create mode 100644 icons/PyHoca/16x16/pyhoca-trayicon.png create mode 100644 icons/PyHoca/16x16/pyhoca-winicon.png create mode 100644 icons/PyHoca/16x16/system-search.png create mode 100644 icons/PyHoca/16x16/x2go-logo-rotated.png create mode 100644 icons/PyHoca/16x16/x2go-logo-ubuntu.png create mode 100644 icons/PyHoca/16x16/x2go-logo-white-bg.png create mode 100644 icons/PyHoca/16x16/x2go.png create mode 100644 icons/PyHoca/22x22/pyhoca-session.png create mode 100644 icons/PyHoca/22x22/pyhoca-trayicon.png create mode 100644 icons/PyHoca/22x22/pyhoca-winicon.png create mode 100644 icons/PyHoca/22x22/x2go-logo-rotated.png create mode 100644 icons/PyHoca/22x22/x2go-logo-ubuntu.png create mode 100644 icons/PyHoca/22x22/x2go-logo-white-bg.png create mode 100644 icons/PyHoca/22x22/x2go.png create mode 120000 icons/PyHoca/32x32/audio_error.png create mode 120000 icons/PyHoca/32x32/auth_disconnect.png create mode 120000 icons/PyHoca/32x32/auth_error.png create mode 120000 icons/PyHoca/32x32/auth_failed.png create mode 120000 icons/PyHoca/32x32/auth_success.png create mode 100644 icons/PyHoca/32x32/broom-cleanup.png create mode 100644 icons/PyHoca/32x32/dialog-apply.png create mode 100644 icons/PyHoca/32x32/dialog-error.png create mode 100644 icons/PyHoca/32x32/dialog-question.png create mode 100644 icons/PyHoca/32x32/dialog-warning.png create mode 100644 icons/PyHoca/32x32/document-save.png create mode 100644 icons/PyHoca/32x32/edit-delete.png create mode 100644 icons/PyHoca/32x32/gnome-dev-printer-network.png create mode 100644 icons/PyHoca/32x32/gtk-edit.png create mode 100644 icons/PyHoca/32x32/list-add.png create mode 100644 icons/PyHoca/32x32/locked.png create mode 100644 icons/PyHoca/32x32/media-eject.png create mode 100644 icons/PyHoca/32x32/media-playback-pause.png create mode 100644 icons/PyHoca/32x32/media-playback-start.png create mode 100644 icons/PyHoca/32x32/media-playback-stop.png create mode 100644 icons/PyHoca/32x32/media-record.png create mode 100644 icons/PyHoca/32x32/media-seek-backward.png create mode 100644 icons/PyHoca/32x32/media-seek-forward.png create mode 100644 icons/PyHoca/32x32/media-skip-backward.png create mode 100644 icons/PyHoca/32x32/media-skip-forward.png create mode 100644 icons/PyHoca/32x32/network-wired.png create mode 120000 icons/PyHoca/32x32/profile_add.png create mode 120000 icons/PyHoca/32x32/profile_delete.png create mode 120000 icons/PyHoca/32x32/profile_edit.png create mode 120000 icons/PyHoca/32x32/profile_error.png create mode 120000 icons/PyHoca/32x32/profile_save.png create mode 100644 icons/PyHoca/32x32/pyhoca-session.png create mode 100644 icons/PyHoca/32x32/pyhoca-trayicon.png create mode 100644 icons/PyHoca/32x32/pyhoca-winicon.png create mode 120000 icons/PyHoca/32x32/session_cleanall.png create mode 120000 icons/PyHoca/32x32/session_error.png create mode 120000 icons/PyHoca/32x32/session_printing.png create mode 120000 icons/PyHoca/32x32/session_resume.png create mode 120000 icons/PyHoca/32x32/session_start.png create mode 120000 icons/PyHoca/32x32/session_suspend.png create mode 120000 icons/PyHoca/32x32/session_terminate.png create mode 120000 icons/PyHoca/32x32/session_warning.png create mode 100644 icons/PyHoca/32x32/unlocked.png create mode 100644 icons/PyHoca/32x32/window-close.png create mode 100644 icons/PyHoca/32x32/window-new.png create mode 100644 icons/PyHoca/32x32/x2go-logo-rotated.png create mode 100644 icons/PyHoca/32x32/x2go-logo-ubuntu.png create mode 100644 icons/PyHoca/32x32/x2go-logo-white-bg.png create mode 100644 icons/PyHoca/32x32/x2go.png create mode 100644 icons/PyHoca/48x48/pyhoca-session.png create mode 100644 icons/PyHoca/48x48/pyhoca-trayicon.png create mode 100644 icons/PyHoca/48x48/pyhoca-winicon.png create mode 100644 icons/PyHoca/48x48/x2go-logo-rotated.png create mode 100644 icons/PyHoca/48x48/x2go-logo-ubuntu.png create mode 100644 icons/PyHoca/48x48/x2go-logo-white-bg.png create mode 100644 icons/PyHoca/48x48/x2go.png create mode 100644 icons/PyHoca/64x64/pyhoca-session.png create mode 100644 icons/PyHoca/64x64/pyhoca-trayicon.png create mode 100644 icons/PyHoca/64x64/pyhoca-winicon.png create mode 100644 icons/PyHoca/64x64/x2go-logo-rotated.png create mode 100644 icons/PyHoca/64x64/x2go-logo-ubuntu.png create mode 100644 icons/PyHoca/64x64/x2go-logo-white-bg.png create mode 100644 icons/PyHoca/64x64/x2go.png create mode 120000 icons/PyHoca/scalable/auth_disconnect.svg create mode 120000 icons/PyHoca/scalable/auth_error.svg create mode 120000 icons/PyHoca/scalable/auth_success.svg create mode 100644 icons/PyHoca/scalable/broom-cleanup.svg create mode 100644 icons/PyHoca/scalable/dialog-apply.svg create mode 100644 icons/PyHoca/scalable/dialog-error.svg create mode 100644 icons/PyHoca/scalable/dialog-question.svg create mode 100644 icons/PyHoca/scalable/dialog-warning.svg create mode 100644 icons/PyHoca/scalable/document-save.svg create mode 100644 icons/PyHoca/scalable/edit-delete.svg create mode 100644 icons/PyHoca/scalable/gnome-dev-printer-network.svg create mode 100644 icons/PyHoca/scalable/gtk-edit.svg create mode 100644 icons/PyHoca/scalable/list-add.svg create mode 100644 icons/PyHoca/scalable/locked.svg create mode 100644 icons/PyHoca/scalable/media-eject.svg create mode 100644 icons/PyHoca/scalable/media-playback-pause.svg create mode 100644 icons/PyHoca/scalable/media-playback-start.svg create mode 100644 icons/PyHoca/scalable/media-playback-stop.svg create mode 100644 icons/PyHoca/scalable/media-record.svg create mode 100644 icons/PyHoca/scalable/media-seek-backward.svg create mode 100644 icons/PyHoca/scalable/media-seek-forward.svg create mode 100644 icons/PyHoca/scalable/media-skip-backward.svg create mode 100644 icons/PyHoca/scalable/media-skip-forward.svg create mode 100644 icons/PyHoca/scalable/network-wired.svg create mode 120000 icons/PyHoca/scalable/profile_add.svg create mode 120000 icons/PyHoca/scalable/profile_delete.svg create mode 120000 icons/PyHoca/scalable/profile_edit.svg create mode 120000 icons/PyHoca/scalable/profile_save.svg create mode 100644 icons/PyHoca/scalable/pyhoca-session.svg create mode 100644 icons/PyHoca/scalable/pyhoca-trayicon.svg create mode 100644 icons/PyHoca/scalable/pyhoca-winicon.svg create mode 120000 icons/PyHoca/scalable/session_cleanall.svg create mode 120000 icons/PyHoca/scalable/session_error.svg create mode 120000 icons/PyHoca/scalable/session_pause.svg create mode 120000 icons/PyHoca/scalable/session_printing.svg create mode 120000 icons/PyHoca/scalable/session_resume.svg create mode 120000 icons/PyHoca/scalable/session_start.svg create mode 120000 icons/PyHoca/scalable/session_terminate.svg create mode 120000 icons/PyHoca/scalable/session_warning.svg create mode 100644 icons/PyHoca/scalable/system-search.svg create mode 100644 icons/PyHoca/scalable/unlocked.svg create mode 100644 icons/PyHoca/scalable/window-close.svg create mode 100644 icons/PyHoca/scalable/window-new.svg create mode 100644 icons/PyHoca/scalable/x2go-logo-rotated.svg create mode 100644 icons/PyHoca/scalable/x2go-logo-ubuntu.svg create mode 100644 icons/PyHoca/scalable/x2go-logo-white-bg.svg create mode 100644 icons/PyHoca/scalable/x2go.svg create mode 100644 img/pyhoca-about-logo.png create mode 100644 img/pyhoca-splash.png create mode 120000 locale create mode 100644 man/pyhoca-gui.1 create mode 100644 pixmaps/pyhoca-gui.ico create mode 100644 pixmaps/pyhoca_x2go-logo-ubuntu.ico create mode 100644 pixmaps/pyhoca_x2go-logo-ubuntu.svg create mode 100644 po/POTFILES.in create mode 100644 po/de.po create mode 100644 po/en.po create mode 100644 po/es.po create mode 100644 po/nl.po create mode 100644 po/pyhoca-gui.pot create mode 100755 pyhoca-gui create mode 100644 pyhoca/__init__.py create mode 100644 pyhoca/__init__.pyc create mode 100644 pyhoca/wxgui/__init__.py create mode 100644 pyhoca/wxgui/__init__.pyc create mode 100644 pyhoca/wxgui/about.py create mode 100644 pyhoca/wxgui/about.pyc create mode 100644 pyhoca/wxgui/basepath.py create mode 100644 pyhoca/wxgui/basepath.pyc create mode 100644 pyhoca/wxgui/frontend.py create mode 100644 pyhoca/wxgui/frontend.pyc create mode 100644 pyhoca/wxgui/logon.py create mode 100644 pyhoca/wxgui/logon.pyc create mode 100644 pyhoca/wxgui/menus_taskbar.py create mode 100644 pyhoca/wxgui/menus_taskbar.pyc create mode 100644 pyhoca/wxgui/notify.py create mode 100644 pyhoca/wxgui/notify.pyc create mode 100644 pyhoca/wxgui/profilemanager.py create mode 100644 pyhoca/wxgui/profilemanager.pyc create mode 100644 pyhoca/wxgui/taskbar.py create mode 100644 pyhoca/wxgui/taskbar.pyc create mode 100755 setup.py create mode 120000 x2go The diff of changes is: diff --git a/README b/README new file mode 100644 index 0000000..d5a85ec --- /dev/null +++ b/README @@ -0,0 +1,41 @@ +pyhoca-gui - Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> + Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> + +Published under the terms of the GNU General Public License. +See http://www.gnu.org/licenses/gpl.html for a recent copy. + + +=== What is pyhoca-gui? === + +=== Requirements === + +* the python-x2go module needs to be installed (of course) +* the python-argparse module needs to be available +* a working version of nxproxy/nxproxy.exe somewhere on your system (if you have + installed x2goclient, everything should be fine) +* wxPython (>= 2.8) is needed for the graphical beauty of pyhoca-gui... + +=== Current features === + +* session management (start/resume/suspend/terminate) +* profile management +* audio, printing, local folder sharing +* connect throug SSH proxy host (by forward tunneling) + +=== How to use it === + +Please refer to the man page: + + man pyhoca-gui + +=== Known issues === + +Please refer to the TODO file that has been shipped with pyhoca-gui. + +Thanks in advance for your feedback and contributions, + +Kiel (Germany) & LJ Almere Haven (Netherlands), 20101231 + + Dick Kniep <dick.kniep@lindix.nl> + Mike Gabriel <m.gabriel@das-netzwerkteam.de> + diff --git a/README.i18n b/README.i18n new file mode 100644 index 0000000..3fd3005 --- /dev/null +++ b/README.i18n @@ -0,0 +1,11 @@ +Activating i18n for development... +---------------------------------- + +If you test/use PyHoca-GUI from VCS (and not as a distribution package) +then you have to activate i18n support with this command in PyHoca-GUI's +base directory: + +$ python setup.py build_i18n + +light+love, +Mike Gabriel \ No newline at end of file diff --git a/TODO b/TODO new file mode 100644 index 0000000..fd85115 --- /dev/null +++ b/TODO @@ -0,0 +1,26 @@ +pyhoca-gui - Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> + Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> + +Published under the terms of the GNU General Public License. +See http://www.gnu.org/licenses/gpl.html for a recent copy. + +=== pyhoca-gui TODOs === + +* continue sessions that are running on another server (for now: + suspend the session and then resume it) +* profile manager (Windows registry based) +* options manager +* print dialog on incoming spool jobs +* a X2goMimeDropbox for exporting MIME type objects + +=== pyhoca-gui Wishlist === + +* SOCKS client support + + +If you find any issues with this programme please let me know. + +Kiel (Germany) & LJ Almere Haven (Netherlands), 20101231 + + Dick Kniep <dick.kniep@lindix.nl> + Mike Gabriel <m.gabriel@das-netzwerkteam.de> diff --git a/build-for-reprepro.sh b/build-for-reprepro.sh new file mode 100755 index 0000000..ea4b407 --- /dev/null +++ b/build-for-reprepro.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# This programme is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This programme is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +PACKAGE=pyhoca-gui + +rm -f ../$PACKAGE_*.changes +rm -f ../$PACKAGE_*.upload +rm -f ../$PACKAGE_*.build +rm -f ../$PACKAGE_*.dsc +rm -f ../$PACKAGE_*.tar.gz +rm -f ../$PACKAGE*.deb + +cp debian/changelog debian/changelog.new +editor debian/changelog.new +mv debian/changelog.new debian/changelog + +debuild + +cd .. +rm -f $PACKAGE_*.upload +dupload --to nwt-ubuntu $PACKAGE_*.changes +rm -f $PACKAGE_*.upload +dupload --to nwt-debian $PACKAGE_*.changes diff --git a/build/mo/de/LC_MESSAGES/pyhoca-gui.mo b/build/mo/de/LC_MESSAGES/pyhoca-gui.mo new file mode 100644 index 0000000..5b6266e Binary files /dev/null and b/build/mo/de/LC_MESSAGES/pyhoca-gui.mo differ diff --git a/build/mo/en/LC_MESSAGES/pyhoca-gui.mo b/build/mo/en/LC_MESSAGES/pyhoca-gui.mo new file mode 100644 index 0000000..2780608 Binary files /dev/null and b/build/mo/en/LC_MESSAGES/pyhoca-gui.mo differ diff --git a/build/mo/es/LC_MESSAGES/pyhoca-gui.mo b/build/mo/es/LC_MESSAGES/pyhoca-gui.mo new file mode 100644 index 0000000..06e2edf Binary files /dev/null and b/build/mo/es/LC_MESSAGES/pyhoca-gui.mo differ diff --git a/build/mo/nl/LC_MESSAGES/pyhoca-gui.mo b/build/mo/nl/LC_MESSAGES/pyhoca-gui.mo new file mode 100644 index 0000000..346f90e Binary files /dev/null and b/build/mo/nl/LC_MESSAGES/pyhoca-gui.mo differ diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..007f951 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,247 @@ +pyhoca-gui (0.0.27-0~nwt2) natty lucid maverick stable testing unstable; urgency=low + + * fixed missing i18n translations + + -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Tue, 22 Feb 2011 12:55:00 +0100 + +pyhoca-gui (0.0.26-0~nwt2) lucid maverick testing unstable; urgency=low + + * depending on python-x2go (>= 0.0.35) + + -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Wed, 19 Jan 2011 18:26:00 +0100 + +pyhoca-gui (0.0.26-0~nwt1) lucid maverick testing unstable; urgency=low + + * added PulseAudio support for Windows (still unstable) + * Unicode / i18n work (Umlaute in profile names, Umlaute in i18n tags) + * work on the Windows version stability + * work on audio setup in profile manager + * now new config files will be created on first application start + * NSIS installer for Windows + + -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Wed, 19 Jan 2011 18:25:00 +0100 + +pyhoca-gui (0.0.25-0~nwt2) lucid maverick testing unstable; urgency=low + + * changed maintainer email address + + -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Mon, 17 Jan 2011 00:26:00 +0100 + +pyhoca-gui (0.0.25-0~nwt1) lucid maverick testing unstable; urgency=low + + * fixed profile manager for Windows + * layout change on profile manager's session tab + * added i18n support to Windows version + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Mon, 17 Jan 2011 00:25:00 +0100 + +pyhoca-gui (0.0.24-0~nwt1) lucid maverick testing unstable; urgency=low + + * fixed profile manager window for Windows (and KDE4) + * reworked logon window + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 14 Jan 2011 03:54:00 +0100 + +pyhoca-gui (0.0.23-0~nwt1) lucid maverick testing unstable; urgency=low + + * uncommenting debug code + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Wed, 12 Jan 2011 00:36:00 +0100 + +pyhoca-gui (0.0.22-0~nwt1) lucid maverick testing unstable; urgency=low + + * bugfix for error reporting when a non-X2go user authenticates + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Wed, 12 Jan 2011 00:35:00 +0100 + +pyhoca-gui (0.0.21-0~nwt3) lucid maverick testing unstable; urgency=low + + * simple rebuild + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Tue, 11 Jan 2011 21:40:00 +0100 + +pyhoca-gui (0.0.21-0~nwt2) lucid maverick testing unstable; urgency=low + + * uncommented build_icons, build_help + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Tue, 11 Jan 2011 21:30:00 +0100 + +pyhoca-gui (0.0.21-0~nwt1) lucid maverick testing unstable; urgency=low + + * added ,,Transfer session'' menu item for running sessions that are not + associated (i.e. running from within PyHoca-GUI) + * now X2goSessionRegistry.update_status() can differentiate between + ,,already running'' sessions (directly after connect) and newly appearing + running sessions while having been connected for quite a while + * added i18n support + * added i18n English translation file en.po + * added i18n German translation file de.po + * added i18n Dutch translation file nl.po + * added i18n Spanish translation file es.po + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Tue, 11 Jan 2011 14:00:00 +0100 + +pyhoca-gui (0.0.20-0~nwt1) lucid maverick testing unstable; urgency=low + + * profile manager: added encoding support for local folder sharing + * profile manager: removed widgets for fstunnel and soundtunnel (PyHoca-GUI will + always tunnel through SSH) + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 31 Dec 2010 23:35:00 +0100 + +pyhoca-gui (0.0.19-0~nwt1) lucid maverick testing unstable; urgency=low + + * bugfix release (add_to_known_hosts / known_hosts issue when using X2goSSHProxy) + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 31 Dec 2010 13:35:00 +0100 + +pyhoca-gui (0.0.18-0~nwt1) lucid maverick testing unstable; urgency=low + + * bugfix release (enables profilemanager for release versions) + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 31 Dec 2010 02:10:00 +0100 + +pyhoca-gui (0.0.17-0~nwt1) lucid maverick testing unstable; urgency=low + + * updated documentation + * updated man page + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 31 Dec 2010 02:00:00 +0100 + +pyhoca-gui (0.0.16-0~nwt3) lucid maverick testing unstable; urgency=low + + * updated Python X2go dependency + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 31 Dec 2010 01:05:00 +0100 + +pyhoca-gui (0.0.16-0~nwt2) lucid maverick testing unstable; urgency=low + + * updated Python X2go dependency + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 31 Dec 2010 00:30:00 +0100 + +pyhoca-gui (0.0.16-0~nwt1) lucid maverick testing unstable; urgency=low + + * implemented profile manager + * using X2goClient HOOL_* methods for notifications + * menu changes + * implemented editing of connected sessions + * implemented local folder sharing for connected sessions + * added XMDCP support (still buggy) + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Thu, 30 Dec 2010 23:00:00 +0100 + +pyhoca-gui (0.0.15-0~nwt1) lucid maverick testing unstable; urgency=low + + * using setproctitle module to change the process name during runtime + * much work for Windows compatibitity + * Windows: added necessary information for build environment (py2exe) + * Windows: Logon window now understands ENTER and ESC keys + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 17 Dec 2010 17:00:00 +0100 + +pyhoca-gui (0.0.14-0~nwt1) lucid maverick testing unstable; urgency=low + + * artwork fine-tuning + * work on Windows code + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Tue, 14 Dec 2010 18:36:00 +0100 + +pyhoca-gui (0.0.13-0~nwt3) lucid maverick testing unstable; urgency=low + + * fixing image path + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Tue, 14 Dec 2010 16:21:00 +0100 + +pyhoca-gui (0.0.13-0~nwt1) lucid maverick testing unstable; urgency=low + + * added splash screen + * added ,,About...'' window + * added new artwork from Heinz-M. Graesing + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Tue, 14 Dec 2010 16:15:00 +0100 + +pyhoca-gui (0.0.12-0~nwt1) lucid maverick testing unstable; urgency=low + + * added MS remote desktop (RDP) support + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 10 Dec 2010 21:19:00 +0100 + +pyhoca-gui (0.0.11-0~nwt2) lucid maverick testing unstable; urgency=low + + * added dependencies: wx-common (>=2.8.10.0) and python-wxtools (>=2.8.10.0) + Thanks to Udo Lembke!!! + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 10 Dec 2010 17:22:00 +0100 + +pyhoca-gui (0.0.11-0~nwt1) lucid maverick testing unstable; urgency=low + + * forgot to adapt version for Python egg (setup.py) + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 10 Dec 2010 13:45:00 +0100 + +pyhoca-gui (0.0.10-0~nwt1) lucid maverick testing unstable; urgency=low + + * depending on Python X2go 0.0.22 + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 10 Dec 2010 13:40:00 +0100 + +pyhoca-gui (0.0.9-0~nwt1) lucid maverick testing unstable; urgency=low + + * reducing CPU usage by factor 2-3 (allowing 25 nxproxy window refreshes + per second, instead of 50) + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 10 Dec 2010 12:39:00 +0100 + +pyhoca-gui (0.0.8-0~nwt1) lucid maverick testing unstable; urgency=low + + * reverting back to pixmaps based desktop icon, but now as .svg... + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 10 Dec 2010 12:12:00 +0100 + +pyhoca-gui (0.0.7-0~nwt1) lucid maverick testing unstable; urgency=low + + * still fiddling around with desktop icon... + using hicolor folder in /usr/share/icons now + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 10 Dec 2010 12:10:00 +0100 + +pyhoca-gui (0.0.6-0~nwt1) lucid maverick testing unstable; urgency=low + + * replacing desktop icon .xpm by .png image + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 10 Dec 2010 11:52:00 +0100 + +pyhoca-gui (0.0.5-0~nwt1) lucid maverick testing unstable; urgency=low + + * fixing pixmap desktop icon + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 10 Dec 2010 11:50:00 +0100 + +pyhoca-gui (0.0.4-0~nwt1) lucid maverick testing unstable; urgency=low + + * changed handling of icons + * added pixmap for PyHocaGUI app menu item + * changed systray icon + * removed images.py + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Fri, 10 Dec 2010 11:25:00 +0100 + +pyhoca-gui (0.0.3-0~nwt1) lucid maverick testing unstable; urgency=low + + * really disabled options and profilemanager menu (bugfix) + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Thu, 09 Dec 2010 23:55:00 +0100 + +pyhoca-gui (0.0.2-0~nwt1) lucid maverick testing unstable; urgency=low + + * bugfix in frontend.py + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Thu, 09 Dec 2010 23:50:00 +0100 + +pyhoca-gui (0.0.1-0~nwt1) lucid maverick testing unstable; urgency=low + + * initializing PyHoca-GUI .deb package + + -- Mike Gabriel <m.gabriel@das-netzwerkteam.de> Thu, 09 Dec 2010 23:30:00 +0100 + diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +7 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..1aff272 --- /dev/null +++ b/debian/control @@ -0,0 +1,16 @@ +Source: pyhoca-gui +Section: python +Priority: optional +Maintainer: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> +Build-Depends: debhelper (>= 7), python, python-setuptools, python-support, python-distutils-extra +Standards-Version: 3.9.1 +Homepage: http://das-netzwerkteam.de/site/?q=node/71 +XS-Python-Version: >= 2.6 + +Package: pyhoca-gui +Architecture: all +Depends: ${misc:Depends}, python, python-x2go (>=0.0.36-0~nwt1), + python-argparse, python-notify, python-setproctitle (>=1.0.1-1), + wx-common(>=2.8.10.0), python-wxtools (>=2.8.10.0) +Description: An graphical X2go client written in (wx)Python + A graphical X2go client implementation written in (wx)Python. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..f4fd8bb --- /dev/null +++ b/debian/copyright @@ -0,0 +1,14 @@ +pyhoca-gui - Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> + Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> + +Published under the terms of the GNU General Public License. +See http://www.gnu.org/licenses/gpl.html for a recent copy. + +On Debian/Ubuntu systems a local copy of the GPL license can also be +found in /usr/share/common-licenses. + +The code has been packaged for Debian/Ubuntu by Mike Gabriel +<m.gabriel@das-netzwerkteam.de> + +light+love, +Dick Kniep and Mike Gabriel diff --git a/debian/pyhoca-gui.dirs b/debian/pyhoca-gui.dirs new file mode 100644 index 0000000..22ccb76 --- /dev/null +++ b/debian/pyhoca-gui.dirs @@ -0,0 +1 @@ +usr/share/pyhoca/img diff --git a/debian/pyhoca-gui.docs b/debian/pyhoca-gui.docs new file mode 100644 index 0000000..1d23e9b --- /dev/null +++ b/debian/pyhoca-gui.docs @@ -0,0 +1,2 @@ +README +TODO \ No newline at end of file diff --git a/debian/pyhoca-gui.install b/debian/pyhoca-gui.install new file mode 100644 index 0000000..88c8033 --- /dev/null +++ b/debian/pyhoca-gui.install @@ -0,0 +1,5 @@ +pyhoca-gui /usr/bin/ +icons/* /usr/share/icons/ +desktop/* /usr/share/applications/ +pixmaps/*.svg /usr/share/pixmaps/ +img/*.png /usr/share/pyhoca/img/ \ No newline at end of file diff --git a/debian/pyhoca-gui.manpages b/debian/pyhoca-gui.manpages new file mode 100644 index 0000000..b27fa76 --- /dev/null +++ b/debian/pyhoca-gui.manpages @@ -0,0 +1 @@ +man/pyhoca-gui.1 \ No newline at end of file diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..db6b2c7 --- /dev/null +++ b/debian/rules @@ -0,0 +1,24 @@ +#!/usr/bin/make -f +# debian/rules file - for pyhoca-cli +# Based on sample debian/rules file - for GNU Hello (1.3). +# Copyright 2010-2011 by Mike Gabriel + +#PYVERS=$(shell pyversions -vr) + +%: + dh ${@} + +build: + dh ${@} + +install: + dh ${@} + + +binary-indep: + dh ${@} + +clean: + rm -Rfv debian/pyhoca-gui debian/pyhoca-gui.*.debhelper debian/pyhoca-gui.substvars + rm -Rfv debian/tmp debian/patches + dh ${@} diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..d3827e7 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +1.0 diff --git a/desktop/pyhoca-gui.desktop b/desktop/pyhoca-gui.desktop new file mode 100644 index 0000000..0fcee16 --- /dev/null +++ b/desktop/pyhoca-gui.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Name=PyHoca-GUI +GenericName=PyHoca-GUI +Comment=Python X2go Client Applet +Exec=pyhoca-gui +Icon=pyhoca_x2go-logo-ubuntu +X-Window-Icon=pyhoca_x2go-logo-ubuntu +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=GNOME;KDE;Network diff --git a/examples/printing b/examples/printing new file mode 100644 index 0000000..4ee8ba2 --- /dev/null +++ b/examples/printing @@ -0,0 +1,17 @@ +[print] +command = lpr +stdin = 0 +startcmd = 0 +ps = 0 + +[view] +command = xpdf +open = 1 + +[CUPS] +defaultprinter = PDF + +[General] +pdfview = 1 +showdialog = 0 + diff --git a/examples/settings b/examples/settings new file mode 100644 index 0000000..e29d305 --- /dev/null +++ b/examples/settings @@ -0,0 +1,17 @@ +[General] +clientport = 22 +autoresume = 1 + +[Authorization] +suspend = 1 +editprofile = 1 +newprofile = 1 +resume = 1 + +[LDAP] +useldap = 0 +port1 = 0 +port2 = 0 +port = 389 +server = localhost + diff --git a/examples/xconfig b/examples/xconfig new file mode 100644 index 0000000..fb014d4 --- /dev/null +++ b/examples/xconfig @@ -0,0 +1,24 @@ +[XServers] +known_xservers = ['VcXsrv', 'Xming', 'Cygwin-X'] + +[VcXsrv] +test_installed = C:\Programme\VcXsrv\vcxsrv.exe +process_name = vcxsrv.exe +parameters = [':40', '-clipboard', '-multiwindow', '-notrayicon', '-nowinkill'] +display = localhost:40 +run_command = C:\Programme\VcXsrv\vcxsrv.exe + +[Cygwin-X] +test_installed = C:\cygwin\bin\XWin.exe +process_name = XWin.exe +parameters = [':40', '-clipboard', '-multiwindow', '-notrayicon', '-nowinkill'] +display = localhost:40 +run_command = C:\cygwin\bin\XWin.exe + +[Xming] +test_installed = C:\Programme\Xming\Xming.exe +process_name = Xming.exe +parameters = [':40', '-clipboard', '-multiwindow', '-notrayicon', '-nowinkill'] +display = localhost:40 +run_command = C:\Programme\Xming\Xming.exe + diff --git a/icons/PyHoca/128x128/pyhoca-session.png b/icons/PyHoca/128x128/pyhoca-session.png new file mode 100644 index 0000000..3ab93b5 Binary files /dev/null and b/icons/PyHoca/128x128/pyhoca-session.png differ diff --git a/icons/PyHoca/128x128/pyhoca-trayicon.png b/icons/PyHoca/128x128/pyhoca-trayicon.png new file mode 100644 index 0000000..3ab93b5 Binary files /dev/null and b/icons/PyHoca/128x128/pyhoca-trayicon.png differ diff --git a/icons/PyHoca/128x128/pyhoca-winicon.png b/icons/PyHoca/128x128/pyhoca-winicon.png new file mode 100644 index 0000000..3ab93b5 Binary files /dev/null and b/icons/PyHoca/128x128/pyhoca-winicon.png differ diff --git a/icons/PyHoca/128x128/x2go-logo-rotated.png b/icons/PyHoca/128x128/x2go-logo-rotated.png new file mode 100644 index 0000000..fa18078 Binary files /dev/null and b/icons/PyHoca/128x128/x2go-logo-rotated.png differ diff --git a/icons/PyHoca/128x128/x2go-logo-ubuntu.png b/icons/PyHoca/128x128/x2go-logo-ubuntu.png new file mode 100644 index 0000000..7ff0fb7 Binary files /dev/null and b/icons/PyHoca/128x128/x2go-logo-ubuntu.png differ diff --git a/icons/PyHoca/128x128/x2go-logo-white-bg.png b/icons/PyHoca/128x128/x2go-logo-white-bg.png new file mode 100644 index 0000000..1542435 Binary files /dev/null and b/icons/PyHoca/128x128/x2go-logo-white-bg.png differ diff --git a/icons/PyHoca/128x128/x2go.png b/icons/PyHoca/128x128/x2go.png new file mode 100644 index 0000000..0f96ecc Binary files /dev/null and b/icons/PyHoca/128x128/x2go.png differ diff --git a/icons/PyHoca/16x16/pyhoca-session.png b/icons/PyHoca/16x16/pyhoca-session.png new file mode 100644 index 0000000..25bd64c Binary files /dev/null and b/icons/PyHoca/16x16/pyhoca-session.png differ diff --git a/icons/PyHoca/16x16/pyhoca-trayicon.png b/icons/PyHoca/16x16/pyhoca-trayicon.png new file mode 100644 index 0000000..25bd64c Binary files /dev/null and b/icons/PyHoca/16x16/pyhoca-trayicon.png differ diff --git a/icons/PyHoca/16x16/pyhoca-winicon.png b/icons/PyHoca/16x16/pyhoca-winicon.png new file mode 100644 index 0000000..25bd64c Binary files /dev/null and b/icons/PyHoca/16x16/pyhoca-winicon.png differ diff --git a/icons/PyHoca/16x16/system-search.png b/icons/PyHoca/16x16/system-search.png new file mode 100644 index 0000000..1400155 Binary files /dev/null and b/icons/PyHoca/16x16/system-search.png differ diff --git a/icons/PyHoca/16x16/x2go-logo-rotated.png b/icons/PyHoca/16x16/x2go-logo-rotated.png new file mode 100644 index 0000000..b5c3970 Binary files /dev/null and b/icons/PyHoca/16x16/x2go-logo-rotated.png differ diff --git a/icons/PyHoca/16x16/x2go-logo-ubuntu.png b/icons/PyHoca/16x16/x2go-logo-ubuntu.png new file mode 100644 index 0000000..63b9ee4 Binary files /dev/null and b/icons/PyHoca/16x16/x2go-logo-ubuntu.png differ diff --git a/icons/PyHoca/16x16/x2go-logo-white-bg.png b/icons/PyHoca/16x16/x2go-logo-white-bg.png new file mode 100644 index 0000000..5a2df75 Binary files /dev/null and b/icons/PyHoca/16x16/x2go-logo-white-bg.png differ diff --git a/icons/PyHoca/16x16/x2go.png b/icons/PyHoca/16x16/x2go.png new file mode 100644 index 0000000..e00b6d9 Binary files /dev/null and b/icons/PyHoca/16x16/x2go.png differ diff --git a/icons/PyHoca/22x22/pyhoca-session.png b/icons/PyHoca/22x22/pyhoca-session.png new file mode 100644 index 0000000..03679bf Binary files /dev/null and b/icons/PyHoca/22x22/pyhoca-session.png differ diff --git a/icons/PyHoca/22x22/pyhoca-trayicon.png b/icons/PyHoca/22x22/pyhoca-trayicon.png new file mode 100644 index 0000000..03679bf Binary files /dev/null and b/icons/PyHoca/22x22/pyhoca-trayicon.png differ diff --git a/icons/PyHoca/22x22/pyhoca-winicon.png b/icons/PyHoca/22x22/pyhoca-winicon.png new file mode 100644 index 0000000..03679bf Binary files /dev/null and b/icons/PyHoca/22x22/pyhoca-winicon.png differ diff --git a/icons/PyHoca/22x22/x2go-logo-rotated.png b/icons/PyHoca/22x22/x2go-logo-rotated.png new file mode 100644 index 0000000..a1f7db2 Binary files /dev/null and b/icons/PyHoca/22x22/x2go-logo-rotated.png differ diff --git a/icons/PyHoca/22x22/x2go-logo-ubuntu.png b/icons/PyHoca/22x22/x2go-logo-ubuntu.png new file mode 100644 index 0000000..fb1ad70 Binary files /dev/null and b/icons/PyHoca/22x22/x2go-logo-ubuntu.png differ diff --git a/icons/PyHoca/22x22/x2go-logo-white-bg.png b/icons/PyHoca/22x22/x2go-logo-white-bg.png new file mode 100644 index 0000000..7cd46ec Binary files /dev/null and b/icons/PyHoca/22x22/x2go-logo-white-bg.png differ diff --git a/icons/PyHoca/22x22/x2go.png b/icons/PyHoca/22x22/x2go.png new file mode 100644 index 0000000..e1e06e2 Binary files /dev/null and b/icons/PyHoca/22x22/x2go.png differ diff --git a/icons/PyHoca/32x32/audio_error.png b/icons/PyHoca/32x32/audio_error.png new file mode 120000 index 0000000..ab8db5e --- /dev/null +++ b/icons/PyHoca/32x32/audio_error.png @@ -0,0 +1 @@ +dialog-error.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/auth_disconnect.png b/icons/PyHoca/32x32/auth_disconnect.png new file mode 120000 index 0000000..54f2738 --- /dev/null +++ b/icons/PyHoca/32x32/auth_disconnect.png @@ -0,0 +1 @@ +network-wired.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/auth_error.png b/icons/PyHoca/32x32/auth_error.png new file mode 120000 index 0000000..ab8db5e --- /dev/null +++ b/icons/PyHoca/32x32/auth_error.png @@ -0,0 +1 @@ +dialog-error.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/auth_failed.png b/icons/PyHoca/32x32/auth_failed.png new file mode 120000 index 0000000..91cec00 --- /dev/null +++ b/icons/PyHoca/32x32/auth_failed.png @@ -0,0 +1 @@ +dialog-warning.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/auth_success.png b/icons/PyHoca/32x32/auth_success.png new file mode 120000 index 0000000..d3a064b --- /dev/null +++ b/icons/PyHoca/32x32/auth_success.png @@ -0,0 +1 @@ +dialog-apply.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/broom-cleanup.png b/icons/PyHoca/32x32/broom-cleanup.png new file mode 100644 index 0000000..7ad1eb0 Binary files /dev/null and b/icons/PyHoca/32x32/broom-cleanup.png differ diff --git a/icons/PyHoca/32x32/dialog-apply.png b/icons/PyHoca/32x32/dialog-apply.png new file mode 100644 index 0000000..4343b02 Binary files /dev/null and b/icons/PyHoca/32x32/dialog-apply.png differ diff --git a/icons/PyHoca/32x32/dialog-error.png b/icons/PyHoca/32x32/dialog-error.png new file mode 100644 index 0000000..030d8c5 Binary files /dev/null and b/icons/PyHoca/32x32/dialog-error.png differ diff --git a/icons/PyHoca/32x32/dialog-question.png b/icons/PyHoca/32x32/dialog-question.png new file mode 100644 index 0000000..e8a06f4 Binary files /dev/null and b/icons/PyHoca/32x32/dialog-question.png differ diff --git a/icons/PyHoca/32x32/dialog-warning.png b/icons/PyHoca/32x32/dialog-warning.png new file mode 100644 index 0000000..aad64d4 Binary files /dev/null and b/icons/PyHoca/32x32/dialog-warning.png differ diff --git a/icons/PyHoca/32x32/document-save.png b/icons/PyHoca/32x32/document-save.png new file mode 100644 index 0000000..8ed656a Binary files /dev/null and b/icons/PyHoca/32x32/document-save.png differ diff --git a/icons/PyHoca/32x32/edit-delete.png b/icons/PyHoca/32x32/edit-delete.png new file mode 100644 index 0000000..56c6331 Binary files /dev/null and b/icons/PyHoca/32x32/edit-delete.png differ diff --git a/icons/PyHoca/32x32/gnome-dev-printer-network.png b/icons/PyHoca/32x32/gnome-dev-printer-network.png new file mode 100644 index 0000000..9ea94fc Binary files /dev/null and b/icons/PyHoca/32x32/gnome-dev-printer-network.png differ diff --git a/icons/PyHoca/32x32/gtk-edit.png b/icons/PyHoca/32x32/gtk-edit.png new file mode 100644 index 0000000..930f91f Binary files /dev/null and b/icons/PyHoca/32x32/gtk-edit.png differ diff --git a/icons/PyHoca/32x32/list-add.png b/icons/PyHoca/32x32/list-add.png new file mode 100644 index 0000000..81f3c5e Binary files /dev/null and b/icons/PyHoca/32x32/list-add.png differ diff --git a/icons/PyHoca/32x32/locked.png b/icons/PyHoca/32x32/locked.png new file mode 100644 index 0000000..29a5bcc Binary files /dev/null and b/icons/PyHoca/32x32/locked.png differ diff --git a/icons/PyHoca/32x32/media-eject.png b/icons/PyHoca/32x32/media-eject.png new file mode 100644 index 0000000..8ce9424 Binary files /dev/null and b/icons/PyHoca/32x32/media-eject.png differ diff --git a/icons/PyHoca/32x32/media-playback-pause.png b/icons/PyHoca/32x32/media-playback-pause.png new file mode 100644 index 0000000..9c558aa Binary files /dev/null and b/icons/PyHoca/32x32/media-playback-pause.png differ diff --git a/icons/PyHoca/32x32/media-playback-start.png b/icons/PyHoca/32x32/media-playback-start.png new file mode 100644 index 0000000..8b41724 Binary files /dev/null and b/icons/PyHoca/32x32/media-playback-start.png differ diff --git a/icons/PyHoca/32x32/media-playback-stop.png b/icons/PyHoca/32x32/media-playback-stop.png new file mode 100644 index 0000000..b694445 Binary files /dev/null and b/icons/PyHoca/32x32/media-playback-stop.png differ diff --git a/icons/PyHoca/32x32/media-record.png b/icons/PyHoca/32x32/media-record.png new file mode 100644 index 0000000..d763eb7 Binary files /dev/null and b/icons/PyHoca/32x32/media-record.png differ diff --git a/icons/PyHoca/32x32/media-seek-backward.png b/icons/PyHoca/32x32/media-seek-backward.png new file mode 100644 index 0000000..b600fcc Binary files /dev/null and b/icons/PyHoca/32x32/media-seek-backward.png differ diff --git a/icons/PyHoca/32x32/media-seek-forward.png b/icons/PyHoca/32x32/media-seek-forward.png new file mode 100644 index 0000000..6019dad Binary files /dev/null and b/icons/PyHoca/32x32/media-seek-forward.png differ diff --git a/icons/PyHoca/32x32/media-skip-backward.png b/icons/PyHoca/32x32/media-skip-backward.png new file mode 100644 index 0000000..4c026ba Binary files /dev/null and b/icons/PyHoca/32x32/media-skip-backward.png differ diff --git a/icons/PyHoca/32x32/media-skip-forward.png b/icons/PyHoca/32x32/media-skip-forward.png new file mode 100644 index 0000000..836e38c Binary files /dev/null and b/icons/PyHoca/32x32/media-skip-forward.png differ diff --git a/icons/PyHoca/32x32/network-wired.png b/icons/PyHoca/32x32/network-wired.png new file mode 100644 index 0000000..99ff359 Binary files /dev/null and b/icons/PyHoca/32x32/network-wired.png differ diff --git a/icons/PyHoca/32x32/profile_add.png b/icons/PyHoca/32x32/profile_add.png new file mode 120000 index 0000000..7d4c878 --- /dev/null +++ b/icons/PyHoca/32x32/profile_add.png @@ -0,0 +1 @@ +list-add.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/profile_delete.png b/icons/PyHoca/32x32/profile_delete.png new file mode 120000 index 0000000..bb0a74a --- /dev/null +++ b/icons/PyHoca/32x32/profile_delete.png @@ -0,0 +1 @@ +edit-delete.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/profile_edit.png b/icons/PyHoca/32x32/profile_edit.png new file mode 120000 index 0000000..a09517d --- /dev/null +++ b/icons/PyHoca/32x32/profile_edit.png @@ -0,0 +1 @@ +gtk-edit.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/profile_error.png b/icons/PyHoca/32x32/profile_error.png new file mode 120000 index 0000000..ab8db5e --- /dev/null +++ b/icons/PyHoca/32x32/profile_error.png @@ -0,0 +1 @@ +dialog-error.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/profile_save.png b/icons/PyHoca/32x32/profile_save.png new file mode 120000 index 0000000..b1240e1 --- /dev/null +++ b/icons/PyHoca/32x32/profile_save.png @@ -0,0 +1 @@ +document-save.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/pyhoca-session.png b/icons/PyHoca/32x32/pyhoca-session.png new file mode 100644 index 0000000..1cdd8ff Binary files /dev/null and b/icons/PyHoca/32x32/pyhoca-session.png differ diff --git a/icons/PyHoca/32x32/pyhoca-trayicon.png b/icons/PyHoca/32x32/pyhoca-trayicon.png new file mode 100644 index 0000000..1cdd8ff Binary files /dev/null and b/icons/PyHoca/32x32/pyhoca-trayicon.png differ diff --git a/icons/PyHoca/32x32/pyhoca-winicon.png b/icons/PyHoca/32x32/pyhoca-winicon.png new file mode 100644 index 0000000..1cdd8ff Binary files /dev/null and b/icons/PyHoca/32x32/pyhoca-winicon.png differ diff --git a/icons/PyHoca/32x32/session_cleanall.png b/icons/PyHoca/32x32/session_cleanall.png new file mode 120000 index 0000000..406821b --- /dev/null +++ b/icons/PyHoca/32x32/session_cleanall.png @@ -0,0 +1 @@ +broom-cleanup.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/session_error.png b/icons/PyHoca/32x32/session_error.png new file mode 120000 index 0000000..ab8db5e --- /dev/null +++ b/icons/PyHoca/32x32/session_error.png @@ -0,0 +1 @@ +dialog-error.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/session_printing.png b/icons/PyHoca/32x32/session_printing.png new file mode 120000 index 0000000..70a342f --- /dev/null +++ b/icons/PyHoca/32x32/session_printing.png @@ -0,0 +1 @@ +gnome-dev-printer-network.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/session_resume.png b/icons/PyHoca/32x32/session_resume.png new file mode 120000 index 0000000..e06eca2 --- /dev/null +++ b/icons/PyHoca/32x32/session_resume.png @@ -0,0 +1 @@ +x2go-logo-rotated.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/session_start.png b/icons/PyHoca/32x32/session_start.png new file mode 120000 index 0000000..e06eca2 --- /dev/null +++ b/icons/PyHoca/32x32/session_start.png @@ -0,0 +1 @@ +x2go-logo-rotated.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/session_suspend.png b/icons/PyHoca/32x32/session_suspend.png new file mode 120000 index 0000000..0ef65d6 --- /dev/null +++ b/icons/PyHoca/32x32/session_suspend.png @@ -0,0 +1 @@ +media-playback-pause.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/session_terminate.png b/icons/PyHoca/32x32/session_terminate.png new file mode 120000 index 0000000..f8a647d --- /dev/null +++ b/icons/PyHoca/32x32/session_terminate.png @@ -0,0 +1 @@ +window-close.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/session_warning.png b/icons/PyHoca/32x32/session_warning.png new file mode 120000 index 0000000..91cec00 --- /dev/null +++ b/icons/PyHoca/32x32/session_warning.png @@ -0,0 +1 @@ +dialog-warning.png \ No newline at end of file diff --git a/icons/PyHoca/32x32/unlocked.png b/icons/PyHoca/32x32/unlocked.png new file mode 100644 index 0000000..0e18606 Binary files /dev/null and b/icons/PyHoca/32x32/unlocked.png differ diff --git a/icons/PyHoca/32x32/window-close.png b/icons/PyHoca/32x32/window-close.png new file mode 100644 index 0000000..843767f Binary files /dev/null and b/icons/PyHoca/32x32/window-close.png differ diff --git a/icons/PyHoca/32x32/window-new.png b/icons/PyHoca/32x32/window-new.png new file mode 100644 index 0000000..1540e8c Binary files /dev/null and b/icons/PyHoca/32x32/window-new.png differ diff --git a/icons/PyHoca/32x32/x2go-logo-rotated.png b/icons/PyHoca/32x32/x2go-logo-rotated.png new file mode 100644 index 0000000..3f28eb0 Binary files /dev/null and b/icons/PyHoca/32x32/x2go-logo-rotated.png differ diff --git a/icons/PyHoca/32x32/x2go-logo-ubuntu.png b/icons/PyHoca/32x32/x2go-logo-ubuntu.png new file mode 100644 index 0000000..5b7c8e5 Binary files /dev/null and b/icons/PyHoca/32x32/x2go-logo-ubuntu.png differ diff --git a/icons/PyHoca/32x32/x2go-logo-white-bg.png b/icons/PyHoca/32x32/x2go-logo-white-bg.png new file mode 100644 index 0000000..6a35c8b Binary files /dev/null and b/icons/PyHoca/32x32/x2go-logo-white-bg.png differ diff --git a/icons/PyHoca/32x32/x2go.png b/icons/PyHoca/32x32/x2go.png new file mode 100644 index 0000000..9059745 Binary files /dev/null and b/icons/PyHoca/32x32/x2go.png differ diff --git a/icons/PyHoca/48x48/pyhoca-session.png b/icons/PyHoca/48x48/pyhoca-session.png new file mode 100644 index 0000000..5932207 Binary files /dev/null and b/icons/PyHoca/48x48/pyhoca-session.png differ diff --git a/icons/PyHoca/48x48/pyhoca-trayicon.png b/icons/PyHoca/48x48/pyhoca-trayicon.png new file mode 100644 index 0000000..5932207 Binary files /dev/null and b/icons/PyHoca/48x48/pyhoca-trayicon.png differ diff --git a/icons/PyHoca/48x48/pyhoca-winicon.png b/icons/PyHoca/48x48/pyhoca-winicon.png new file mode 100644 index 0000000..5932207 Binary files /dev/null and b/icons/PyHoca/48x48/pyhoca-winicon.png differ diff --git a/icons/PyHoca/48x48/x2go-logo-rotated.png b/icons/PyHoca/48x48/x2go-logo-rotated.png new file mode 100644 index 0000000..e3b7e20 Binary files /dev/null and b/icons/PyHoca/48x48/x2go-logo-rotated.png differ diff --git a/icons/PyHoca/48x48/x2go-logo-ubuntu.png b/icons/PyHoca/48x48/x2go-logo-ubuntu.png new file mode 100644 index 0000000..b547c98 Binary files /dev/null and b/icons/PyHoca/48x48/x2go-logo-ubuntu.png differ diff --git a/icons/PyHoca/48x48/x2go-logo-white-bg.png b/icons/PyHoca/48x48/x2go-logo-white-bg.png new file mode 100644 index 0000000..bfcb097 Binary files /dev/null and b/icons/PyHoca/48x48/x2go-logo-white-bg.png differ diff --git a/icons/PyHoca/48x48/x2go.png b/icons/PyHoca/48x48/x2go.png new file mode 100644 index 0000000..8e543b9 Binary files /dev/null and b/icons/PyHoca/48x48/x2go.png differ diff --git a/icons/PyHoca/64x64/pyhoca-session.png b/icons/PyHoca/64x64/pyhoca-session.png new file mode 100644 index 0000000..aa87bc3 Binary files /dev/null and b/icons/PyHoca/64x64/pyhoca-session.png differ diff --git a/icons/PyHoca/64x64/pyhoca-trayicon.png b/icons/PyHoca/64x64/pyhoca-trayicon.png new file mode 100644 index 0000000..aa87bc3 Binary files /dev/null and b/icons/PyHoca/64x64/pyhoca-trayicon.png differ diff --git a/icons/PyHoca/64x64/pyhoca-winicon.png b/icons/PyHoca/64x64/pyhoca-winicon.png new file mode 100644 index 0000000..aa87bc3 Binary files /dev/null and b/icons/PyHoca/64x64/pyhoca-winicon.png differ diff --git a/icons/PyHoca/64x64/x2go-logo-rotated.png b/icons/PyHoca/64x64/x2go-logo-rotated.png new file mode 100644 index 0000000..8428b47 Binary files /dev/null and b/icons/PyHoca/64x64/x2go-logo-rotated.png differ diff --git a/icons/PyHoca/64x64/x2go-logo-ubuntu.png b/icons/PyHoca/64x64/x2go-logo-ubuntu.png new file mode 100644 index 0000000..67fc789 Binary files /dev/null and b/icons/PyHoca/64x64/x2go-logo-ubuntu.png differ diff --git a/icons/PyHoca/64x64/x2go-logo-white-bg.png b/icons/PyHoca/64x64/x2go-logo-white-bg.png new file mode 100644 index 0000000..05dcbf0 Binary files /dev/null and b/icons/PyHoca/64x64/x2go-logo-white-bg.png differ diff --git a/icons/PyHoca/64x64/x2go.png b/icons/PyHoca/64x64/x2go.png new file mode 100644 index 0000000..2c37783 Binary files /dev/null and b/icons/PyHoca/64x64/x2go.png differ diff --git a/icons/PyHoca/scalable/auth_disconnect.svg b/icons/PyHoca/scalable/auth_disconnect.svg new file mode 120000 index 0000000..84ab203 --- /dev/null +++ b/icons/PyHoca/scalable/auth_disconnect.svg @@ -0,0 +1 @@ +network-wired.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/auth_error.svg b/icons/PyHoca/scalable/auth_error.svg new file mode 120000 index 0000000..3b41d91 --- /dev/null +++ b/icons/PyHoca/scalable/auth_error.svg @@ -0,0 +1 @@ +dialog-error.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/auth_success.svg b/icons/PyHoca/scalable/auth_success.svg new file mode 120000 index 0000000..9af349f --- /dev/null +++ b/icons/PyHoca/scalable/auth_success.svg @@ -0,0 +1 @@ +dialog-apply.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/broom-cleanup.svg b/icons/PyHoca/scalable/broom-cleanup.svg new file mode 100644 index 0000000..36af1c6 Binary files /dev/null and b/icons/PyHoca/scalable/broom-cleanup.svg differ diff --git a/icons/PyHoca/scalable/dialog-apply.svg b/icons/PyHoca/scalable/dialog-apply.svg new file mode 100644 index 0000000..1524dd3 --- /dev/null +++ b/icons/PyHoca/scalable/dialog-apply.svg @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7976" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7978"> + <linearGradient + inkscape:collect="always" + id="linearGradient7948"> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="0" + id="stop7950" /> + <stop + style="stop-color:#ffffff;stop-opacity:1" + offset="1" + id="stop7952" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7948" + id="linearGradient7954" + x1="-81.959923" + y1="35.301952" + x2="-91.354408" + y2="-8.3031855" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient1731"> + <stop + id="stop1733" + offset="0" + style="stop-color:#b8d67a;stop-opacity:1" /> + <stop + id="stop1735" + offset="1" + style="stop-color:#789e2d;stop-opacity:1;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1731" + id="linearGradient1455" + gradientUnits="userSpaceOnUse" + x1="-85.334991" + y1="-6.8188653" + x2="-91.536674" + y2="27.080305" + gradientTransform="translate(0.5271438,-2.3199355e-2)" /> + <linearGradient + id="linearGradient8662" + inkscape:collect="always"> + <stop + id="stop8664" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop8666" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8662" + id="radialGradient1444" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" + cx="24.837126" + cy="36.421127" + fx="24.837126" + fy="36.421127" + r="15.644737" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="14" + inkscape:cx="17.79899" + inkscape:cy="21.497325" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1680" + inkscape:window-height="1000" + inkscape:window-x="0" + inkscape:window-y="25" /> + <metadata + id="metadata7981"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <path + transform="matrix(1.214466,0,0,0.595458,-6.1638433,20.312751)" + d="M 40.481863,36.421127 A 15.644737,8.3968935 0 1 1 9.1923885,36.421127 A 15.644737,8.3968935 0 1 1 40.481863,36.421127 z" + sodipodi:ry="8.3968935" + sodipodi:rx="15.644737" + sodipodi:cy="36.421127" + sodipodi:cx="24.837126" + id="path8660" + style="opacity:0.20454544;fill:url(#radialGradient1444);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" /> + <g + id="g1529" + inkscape:label="Layer 1" + transform="translate(111.7398,15.579231)"> + <g + id="g1450" + transform="matrix(1.017301,-0.243559,0.243559,1.017301,-1.745715,-23.38258)"> + <path + style="fill:url(#linearGradient1455);fill-opacity:1;fill-rule:nonzero;stroke:#42770c;stroke-width:0.95597649;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M -73.881889,-4.6293179 C -74.389631,-4.8067199 -74.968019,-4.6757149 -75.352541,-4.2504169 L -91.734788,13.86571 L -97.664774,6.2884221 C -98.231838,5.7757261 -99.100737,5.8101851 -99.613436,6.3772491 L -103.90755,9.8077721 C -104.42024,10.374832 -104.37524,11.245996 -103.80818,11.75869 C -103.80818,11.75869 -93.079342,26.005593 -93.064798,26.017716 C -92.931895,26.137881 -92.782055,26.218205 -92.624431,26.277658 C -92.109522,26.471875 -91.506409,26.352506 -91.113876,25.918351 L -69.020292,1.4865271 C -68.507598,0.91946515 -68.552594,0.048303155 -69.11966,-0.46439283 L -73.40162,-4.3497839 C -73.543388,-4.4779589 -73.712642,-4.5701849 -73.881889,-4.6293179 z" + id="path1542" + sodipodi:nodetypes="cccccccssccccc" /> + <path + style="opacity:0.4;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7954);stroke-width:0.95597649;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M -74.978545,-3.2016699 L -83.289347,6.0212271 L -90.672863,14.143297 C -90.879108,14.271935 -90.955853,14.816814 -91.724224,14.828343 C -92.255838,14.83632 -92.301842,14.628226 -92.748497,14.162478 L -97.987967,7.5093115 C -98.568531,6.7592215 -98.553829,6.7944924 -99.185739,7.1858061 L -102.56429,9.8385081 C -103.44236,10.41927 -103.44231,10.897191 -102.70467,11.663785 C -102.70467,11.663785 -92.945374,24.597046 -92.931619,24.608516 C -92.805911,24.722171 -92.8741,24.734491 -92.355719,25.314704 C -92.023194,25.686891 -91.460716,24.892021 -91.091836,24.484045 L -69.849981,1.0476071 C -69.36818,0.51473817 -69.395599,0.51691517 -69.931971,0.031992155 L -73.780932,-3.3612149 C -74.334112,-3.8587709 -74.338372,-3.8556239 -74.978545,-3.2016699 z" + id="path1544" + sodipodi:nodetypes="cccscccccssccccc" /> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/dialog-error.svg b/icons/PyHoca/scalable/dialog-error.svg new file mode 100644 index 0000000..74b4a17 --- /dev/null +++ b/icons/PyHoca/scalable/dialog-error.svg @@ -0,0 +1,178 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7187" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7189"> + <linearGradient + inkscape:collect="always" + id="linearGradient4873"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4875" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop4877" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4873" + id="linearGradient2704" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.3440063,0,0,2.3440063,-121.79862,31.22942)" + x1="62.745731" + y1="-13.444987" + x2="62.608765" + y2="7.1072145" /> + <linearGradient + id="linearGradient3811"> + <stop + id="stop3813" + offset="0" + style="stop-color:#a40000;stop-opacity:1" /> + <stop + id="stop3815" + offset="1" + style="stop-color:#c22f2f;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3811" + id="linearGradient3927" + x1="15.046636" + y1="44.787998" + x2="15.046636" + y2="3.8851264" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0805272,0,0,1.0805026,-1.508285,-3.3507596)" /> + <linearGradient + id="linearGradient5106"> + <stop + style="stop-color:#e78181;stop-opacity:1" + offset="0" + id="stop5108" /> + <stop + id="stop8208" + offset="0.25288007" + style="stop-color:#e15f5f;stop-opacity:1" /> + <stop + style="stop-color:#c22f2f;stop-opacity:1" + offset="0.68271071" + id="stop8210" /> + <stop + style="stop-color:#a40000;stop-opacity:1" + offset="1" + id="stop5110" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5106" + id="radialGradient2707" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-7.565785,-6.219707e-7,3.9644633e-7,-4.8230546,494.60904,-26.555114)" + cx="62.202274" + cy="-5.7132163" + fx="62.202274" + fy="-5.7132163" + r="9.7552835" /> + <linearGradient + id="linearGradient10691" + inkscape:collect="always"> + <stop + id="stop10693" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop10695" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient10691" + id="radialGradient3080" + gradientUnits="userSpaceOnUse" + gradientTransform="scale(1.902215,0.525703)" + cx="6.702713" + cy="73.615715" + fx="6.702713" + fy="73.615715" + r="7.228416" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="690" + inkscape:window-x="0" + inkscape:window-y="331" /> + <metadata + id="metadata7192"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <path + transform="matrix(1.6,0,0,1.8421053,3.6,-30.289477)" + d="M 26.5,38.700001 A 13.75,3.8 0 1 1 -1,38.700001 A 13.75,3.8 0 1 1 26.5,38.700001 z" + sodipodi:ry="3.8" + sodipodi:rx="13.75" + sodipodi:cy="38.700001" + sodipodi:cx="12.75" + id="path2625" + style="opacity:0.5;fill:url(#radialGradient3080);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" /> + <path + style="fill:url(#radialGradient2707);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3927);stroke-width:1.00004065;stroke-miterlimit:4;stroke-dasharray:none" + d="M 45.499979,22.999239 C 45.499979,34.87373 35.873401,44.49998 24.000271,44.49998 C 12.126053,44.49998 2.500021,34.873621 2.500021,22.999239 C 2.500021,11.12529 12.126053,1.5000204 24.000271,1.5000204 C 35.873401,1.5000204 45.499979,11.12529 45.499979,22.999239 L 45.499979,22.999239 z" + id="path6495" /> + <path + id="path8655" + d="M 44.49904,22.999272 C 44.49904,34.321462 35.320423,43.499975 23.999791,43.499975 C 12.678124,43.499975 3.500025,34.321356 3.500025,22.999272 C 3.500025,11.677606 12.678124,2.5000254 23.999791,2.5000254 C 35.320423,2.5000254 44.49904,11.677606 44.49904,22.999272 L 44.49904,22.999272 z" + style="opacity:0.6;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2704);stroke-width:1.00004995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="font-size:89.63063812px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:0.15;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.7688275;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Georgia" + id="path2975" + d="M 9.9999996,24 C 19.333334,24 28.666667,24 38,24 C 38,22.333334 38,20.666667 38,19 C 28.666667,19 19.333334,19 9.9999996,19 C 9.9999996,20.666667 9.9999996,22.333334 9.9999996,24 z" /> + <path + style="font-size:89.63063812px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.7688275;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Georgia" + id="path3360" + d="M 9.9999996,26 C 19.333334,26 28.666667,26 38,26 C 38,24.000001 38,22 38,20 C 28.666667,20 19.333334,20 9.9999996,20 C 9.9999996,22 9.9999996,24.000001 9.9999996,26 z" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/dialog-question.svg b/icons/PyHoca/scalable/dialog-question.svg new file mode 100644 index 0000000..50123ac --- /dev/null +++ b/icons/PyHoca/scalable/dialog-question.svg @@ -0,0 +1,185 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7220" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="dialog-question.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7222"> + <linearGradient + inkscape:collect="always" + id="linearGradient4873"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4875" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop4877" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4873" + id="linearGradient2704" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.3440063,0,0,2.3440063,-121.79862,31.22942)" + x1="62.745731" + y1="-13.444987" + x2="62.608765" + y2="7.1072145" /> + <linearGradient + id="linearGradient3811"> + <stop + id="stop3813" + offset="0" + style="stop-color:#204a87;stop-opacity:1" /> + <stop + id="stop3815" + offset="1" + style="stop-color:#3465a4;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3811" + id="linearGradient3927" + x1="15.046636" + y1="44.787998" + x2="15.046636" + y2="3.8851264" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0805272,0,0,1.0805026,-1.5082857,-3.3507604)" /> + <linearGradient + id="linearGradient5106"> + <stop + style="stop-color:#8fb3d9;stop-opacity:1" + offset="0" + id="stop5108" /> + <stop + id="stop8208" + offset="0.25288007" + style="stop-color:#729fcf;stop-opacity:1" /> + <stop + style="stop-color:#3465a4;stop-opacity:1" + offset="0.68271071" + id="stop8210" /> + <stop + style="stop-color:#204a87;stop-opacity:1" + offset="1" + id="stop5110" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5106" + id="radialGradient2707" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-7.565785,-6.219707e-7,3.9644633e-7,-4.8230546,494.60904,-26.555114)" + cx="62.202274" + cy="-5.7132163" + fx="62.202274" + fy="-5.7132163" + r="9.7552835" /> + <linearGradient + id="linearGradient10691" + inkscape:collect="always"> + <stop + id="stop10693" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop10695" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient10691" + id="radialGradient3080" + gradientUnits="userSpaceOnUse" + gradientTransform="scale(1.902215,0.525703)" + cx="6.702713" + cy="73.615715" + fx="6.702713" + fy="73.615715" + r="7.228416" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1680" + inkscape:window-height="1000" + inkscape:window-x="0" + inkscape:window-y="25" /> + <metadata + id="metadata7225"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <path + transform="matrix(1.6,0,0,1.8421053,3.6000003,-30.289476)" + d="M 26.5,38.700001 A 13.75,3.8 0 1 1 -1,38.700001 A 13.75,3.8 0 1 1 26.5,38.700001 z" + sodipodi:ry="3.8" + sodipodi:rx="13.75" + sodipodi:cy="38.700001" + sodipodi:cx="12.75" + id="path2625" + style="opacity:0.5;fill:url(#radialGradient3080);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" /> + <path + style="fill:url(#radialGradient2707);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3927);stroke-width:1.00004065;stroke-miterlimit:4;stroke-dasharray:none" + d="M 45.499979,22.999239 C 45.499979,34.87373 35.873401,44.49998 24.000271,44.49998 C 12.126053,44.49998 2.5000203,34.873621 2.5000203,22.999239 C 2.5000203,11.12529 12.126053,1.5000193 24.000271,1.5000193 C 35.873401,1.5000193 45.499979,11.12529 45.499979,22.999239 L 45.499979,22.999239 z" + id="path6495" /> + <path + id="path8655" + d="M 44.49904,22.999272 C 44.49904,34.321462 35.320423,43.499975 23.999791,43.499975 C 12.678124,43.499975 3.5000253,34.321356 3.5000253,22.999272 C 3.5000253,11.677606 12.678124,2.5000243 23.999791,2.5000243 C 35.320423,2.5000243 44.49904,11.677606 44.49904,22.999272 L 44.49904,22.999272 z" + style="opacity:0.6;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2704);stroke-width:1.00004995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + id="path9053" + style="font-size:72px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Standard Symbols L" + d="M 25.499549,29.000001 C 25.500288,27.000001 24.999549,24.022899 27.499549,22.000001 C 29.987045,20.009725 32.016392,18.017155 31.999549,15.000001 C 32.036328,12.012312 28.999549,10.023333 25.999549,9.7499987 C 22.008774,9.4823727 17.999549,10.031438 15.999549,14.000001 C 15.707504,15.711192 15.898252,18.000001 17.999549,18.000001 C 18.983603,18.000001 19.999549,17.038081 19.999549,16.000001 L 19.999549,15.000001 C 19.999549,14.500001 20.028884,14.041648 20.999549,13.500001 C 22.019064,12.931095 22.407751,13.018029 22.499549,13.000001 C 24.999549,12.506705 26.748239,12.989752 27.499549,14.000001 C 29.001034,16.018972 27.981707,17.013135 25.999549,19.500001 C 24.029691,21.971435 22.499549,24.000001 22.499549,27.000001 L 22.499549,29.000001 L 25.499549,29.000001 z" + sodipodi:nodetypes="cccccsssssssscc" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path8287" + sodipodi:cx="18.4417" + sodipodi:cy="34.547359" + sodipodi:rx="2.2272584" + sodipodi:ry="2.4054391" + d="M 20.668958,34.547359 A 2.2272584,2.4054391 0 1 1 16.214442,34.547359 A 2.2272584,2.4054391 0 1 1 20.668958,34.547359 z" + transform="matrix(0.8979649,0,0,0.831449,7.4395493,5.2756317)" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/dialog-warning.svg b/icons/PyHoca/scalable/dialog-warning.svg new file mode 100644 index 0000000..1f093b5 --- /dev/null +++ b/icons/PyHoca/scalable/dialog-warning.svg @@ -0,0 +1,221 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7299" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="dialog-warning.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7301"> + <filter + inkscape:collect="always" + id="filter11277" + x="-0.02834265" + width="1.0566853" + y="-0.4156922" + height="1.8313844"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.51961525" + id="feGaussianBlur11279" /> + </filter> + <filter + inkscape:collect="always" + id="filter11267" + x="-0.08502795" + width="1.1700559" + y="-1.2470766" + height="3.4941532"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.5588457" + id="feGaussianBlur11269" /> + </filter> + <linearGradient + y2="56.052299" + x2="47.319698" + y1="11.1133" + x1="4.1914001" + gradientUnits="userSpaceOnUse" + id="linearGradient11223"> + <stop + id="stop11225" + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" /> + <stop + id="stop11227" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11223" + id="linearGradient11177" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.646153,0,-2.812685e-3,0.671002,2.320937,4.636421)" + x1="22.858232" + y1="27.427332" + x2="23.075396" + y2="77.315834" /> + <linearGradient + id="linearGradient5252"> + <stop + id="stop5256" + offset="0" + style="stop-color:#fed496;stop-opacity:1;" /> + <stop + id="stop5254" + offset="1" + style="stop-color:#fcaf3e;stop-opacity:1;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5252" + id="radialGradient11221" + cx="21.080828" + cy="27.925562" + fx="21.080828" + fy="27.925562" + r="8.803154" + gradientTransform="matrix(2.794628,0,0,2.6342217,-37.832243,-46.946604)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5402"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5404" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5406" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5402" + id="radialGradient11181" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.5111798,0,0,0.4916103,-18.445765,-11.688203)" + cx="79.377068" + cy="44.534161" + fx="79.377068" + fy="44.534161" + r="50.66839" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24.055179" + inkscape:cy="24.019671" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="688" + inkscape:window-x="1037" + inkscape:window-y="333" /> + <metadata + id="metadata7304"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <rect + style="opacity:0.3;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter11277);enable-background:new" + id="rect11271" + width="44" + height="3" + x="298" + y="91" + rx="3.25" + ry="1.5" + transform="matrix(1,0,0,1.3333333,-296,-80.833333)" /> + <rect + style="opacity:0.5;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter11267);enable-background:new" + id="rect11249" + width="44" + height="3" + x="298" + y="91" + rx="3.25" + ry="1.5" + transform="matrix(1,0,0,1.5833333,-296,-103.95833)" /> + <g + style="display:inline;enable-background:new" + transform="matrix(1.566667,0,0,1.566667,-8.914935,-24.83992)" + id="g11137"> + <g + style="display:inline" + transform="matrix(1.508284e-2,0,0,1.391344e-2,34.42474,40.95434)" + id="g11139" /> + <g + id="g11147" + transform="matrix(1.508284e-2,0,0,1.391344e-2,34.42474,40.95434)" + style="display:inline" /> + <path + style="fill:#f57900;fill-opacity:1;fill-rule:nonzero;stroke:#ce5c00;stroke-width:0.63829809;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 34.661531,40.883147 L 22.706683,18.443515 C 22.363065,17.820192 21.741298,17.473902 21.048838,17.473902 C 20.356376,17.473902 19.731421,17.889449 19.382581,18.512773 L 7.5167568,40.952406 C 7.2374515,41.506471 7.2342608,42.26831 7.5781714,42.822375 C 7.9220807,43.37644 8.4748902,43.653472 9.167352,43.653472 L 32.988021,43.653472 C 33.680481,43.653472 34.305147,43.307182 34.584454,42.753116 C 34.933004,42.199051 34.935904,41.506471 34.661531,40.883147 z" + id="path11155" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + <path + inkscape:r_cy="true" + inkscape:r_cx="true" + id="path11157" + d="M 12.350235,39.643509 C 12.169549,39.94119 12.347947,40.179336 12.646973,40.179336 L 29.512056,40.179336 C 29.811084,40.179336 29.991516,39.94119 29.813372,39.643509 L 21.328843,23.806857 C 21.150698,23.509176 20.911478,23.509176 20.790595,23.806857 L 12.350235,39.643509 z" + style="fill:url(#radialGradient11221);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-miterlimit:4" /> + <path + style="opacity:0.5;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient11177);stroke-width:0.63829821;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 33.589554,40.372476 L 22.40647,19.408588 C 21.930192,18.505487 21.759362,18.215736 21.035555,18.215736 C 20.413025,18.215736 20.087298,18.63772 19.637426,19.490174 L 8.5784665,40.437181 C 7.9362948,41.613232 7.8674918,41.919785 8.176589,42.437412 C 8.4856845,42.95504 8.8825484,42.926847 10.348923,42.960612 L 32.084644,42.960612 C 33.449812,42.977494 33.757327,42.873453 34.008507,42.355827 C 34.32194,41.838198 34.188623,41.427523 33.589554,40.372476 z" + id="path11159" + sodipodi:nodetypes="ccsccscccc" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + <g + style="fill:#121312;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.98018837;stroke-miterlimit:4" + transform="matrix(0.561759,0,0,0.570854,7.608308,17.60115)" + id="g11161" + inkscape:r_cx="true" + inkscape:r_cy="true"> + <path + style="fill:#121312;fill-opacity:1;stroke:none" + d="M 23.9,36.5 C 22.6,36.5 21.6,35.5 21.6,34.2 C 21.6,32.8 22.5,31.9 23.9,31.9 C 25.3,31.9 26.1,32.8 26.2,34.2 C 26.2,35.5 25.3,36.5 23.9,36.5 L 23.9,36.5 z M 23.167629,29.066754 L 21.9,19.1 L 25.9,19.1 L 24.632371,30.709518 L 23.167629,29.066754 z" + id="path11163" + inkscape:r_cx="true" + inkscape:r_cy="true" + sodipodi:nodetypes="csscccccccc" /> + </g> + </g> + <path + id="path11179" + d="M 23.982235,3.0642796 C 22.983955,3.0642796 22.084515,3.6634646 21.581625,4.5632536 L 6.9499354,32.262453 L 37.310435,25.017218 L 26.371965,4.4600786 C 25.876595,3.5602906 24.980525,3.0642796 23.982235,3.0642796 z" + style="opacity:0.47126435;fill:url(#radialGradient11181);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.63829809;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;enable-background:new" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/document-save.svg b/icons/PyHoca/scalable/document-save.svg new file mode 100644 index 0000000..c53130d --- /dev/null +++ b/icons/PyHoca/scalable/document-save.svg @@ -0,0 +1,920 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.0" + width="48" + height="48" + id="svg7836" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="document-save.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <metadata + id="metadata137"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + inkscape:window-height="1000" + inkscape:window-width="1680" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10.0" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showgrid="true" + inkscape:zoom="10.291667" + inkscape:cx="33.986371" + inkscape:cy="14.425604" + inkscape:window-x="0" + inkscape:window-y="25" + inkscape:current-layer="svg7836"> + <inkscape:grid + type="xygrid" + id="grid9762" /> + </sodipodi:namedview> + <defs + id="defs7838"> + <linearGradient + inkscape:collect="always" + id="linearGradient3911"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3913" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3915" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3911" + id="linearGradient3917" + x1="436.22424" + y1="69.261185" + x2="443.29364" + y2="62.392006" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient8660"> + <stop + style="stop-color:#c22f2f;stop-opacity:1" + offset="0" + id="stop8662" /> + <stop + style="stop-color:#da3f3f;stop-opacity:1" + offset="1" + id="stop8664" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient8660" + id="linearGradient3892" + gradientUnits="userSpaceOnUse" + x1="404.01727" + y1="197.6288" + x2="404.01727" + y2="185.93324" + gradientTransform="matrix(1.2796712,0,0,1.2692354,-77.48715,-173.86623)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3956"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3958" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop3960" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3956" + id="radialGradient3901" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.352381,0,93.783333)" + cx="378.9375" + cy="144.8125" + fx="378.9375" + fy="144.8125" + r="6.5625" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient8272" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5060"> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop5062" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5064" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient8270" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /> + <linearGradient + id="linearGradient5048"> + <stop + style="stop-color:black;stop-opacity:0;" + offset="0" + id="stop5050" /> + <stop + id="stop5056" + offset="0.5" + style="stop-color:black;stop-opacity:1;" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5052" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5048" + id="linearGradient8268" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" + x1="302.85715" + y1="366.64789" + x2="302.85715" + y2="609.50507" /> + <linearGradient + id="linearGradient9111"> + <stop + id="stop9113" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop9115" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + x1="320.01709" + y1="79.980797" + x2="320.01709" + y2="74.42086" + id="linearGradient4045" + xlink:href="#linearGradient9111" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-0.3124939,13.883653)" /> + <linearGradient + id="linearGradient9101"> + <stop + id="stop9103" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop9105" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + x1="115.948" + y1="186.81287" + x2="210.23586" + y2="85.606262" + id="linearGradient4048" + xlink:href="#linearGradient9101" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.1964069,0,0,0.1964069,291.11029,53.069992)" /> + <radialGradient + cx="113.0654" + cy="97.587898" + r="2.5631001" + fx="113.667" + fy="98" + id="radialGradient4128" + xlink:href="#XMLID_64_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4956521,0,0,2.4956521,-223.97574,-53.226089)" /> + <linearGradient + x1="113.0654" + y1="100.6621" + x2="113.0654" + y2="94.512703" + id="linearGradient4126" + xlink:href="#XMLID_63_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4956521,0,0,2.4956521,-223.97574,-53.226089)" /> + <radialGradient + cx="127.31733" + cy="143.82751" + r="78.728165" + fx="127.31733" + fy="143.82751" + id="radialGradient4057" + xlink:href="#linearGradient7609" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.1691796,-2.118677e-2,7.64681e-3,6.311337e-2,291.54812,67.154866)" /> + <radialGradient + cx="230" + cy="133" + r="16.5" + fx="230" + fy="133" + id="radialGradient4060" + xlink:href="#linearGradient7665" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.1964069,0,0,0.4901248,348.1398,14.167053)" /> + <linearGradient + id="linearGradient7665"> + <stop + id="stop7667" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop7669" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <radialGradient + cx="230" + cy="133" + r="16.5" + fx="230" + fy="133" + id="radialGradient4063" + xlink:href="#linearGradient7665" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.1964069,0,0,0.4901248,290.75046,14.167053)" /> + <filter + height="1.4934545" + y="-0.24672721" + width="1.2185298" + x="-0.10926491" + id="filter7557"> + <feGaussianBlur + id="feGaussianBlur7559" + stdDeviation="3.1868932" + inkscape:collect="always" /> + </filter> + <linearGradient + id="linearGradient7537"> + <stop + id="stop7539" + style="stop-color:#ffffff;stop-opacity:0.24752475" + offset="0" /> + <stop + id="stop7561" + style="stop-color:#ffffff;stop-opacity:0.61176473" + offset="0.38571429" /> + <stop + id="stop7541" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + x1="152" + y1="202.5" + x2="222" + y2="202.5" + id="linearGradient4100" + xlink:href="#linearGradient7537" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient4144"> + <stop + id="stop4146" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop4148" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + x1="305.02817" + y1="76.907806" + x2="302.04178" + y2="76.907806" + id="linearGradient7755" + xlink:href="#linearGradient4144" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.7481482,0,0,1,76.821909,0)" /> + <linearGradient + id="linearGradient7691"> + <stop + id="stop7693" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop7695" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <radialGradient + cx="85.750008" + cy="214.08336" + r="14" + fx="85.750008" + fy="214.08336" + id="radialGradient7753" + xlink:href="#linearGradient7691" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.2665522,9.092593e-2,-2.342877e-2,7.099072e-2,291.11104,54.883977)" /> + <linearGradient + id="linearGradient4236"> + <stop + id="stop4238" + style="stop-color:#eeeeee;stop-opacity:1" + offset="0" /> + <stop + id="stop4240" + style="stop-color:#eeeeee;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + x1="12.277412" + y1="37.205811" + x2="12.221823" + y2="33.758667" + id="linearGradient7751" + xlink:href="#linearGradient4236" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.0962816,0,0,5.0962816,21.323205,37.043678)" /> + <linearGradient + id="linearGradient4110"> + <stop + id="stop4112" + style="stop-color:#000000;stop-opacity:1" + offset="0" /> + <stop + id="stop4114" + style="stop-color:#bbbbbb;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + x1="7.0625" + y1="35.28125" + x2="24.6875" + y2="35.28125" + id="linearGradient7749" + xlink:href="#linearGradient4110" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.0962816,0,0,5.0962816,25.377261,30.286921)" /> + <filter + height="1.0836165" + y="-0.041808251" + width="1.8027184" + x="-0.40135923" + id="filter7527"> + <feGaussianBlur + id="feGaussianBlur7529" + stdDeviation="0.52260316" + inkscape:collect="always" /> + </filter> + <radialGradient + cx="43.5625" + cy="202.25" + r="1.5625" + fx="43.5625" + fy="202.25" + id="radialGradient4102" + xlink:href="#linearGradient7507" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.16,0,0,11.28,-94.095,-2079.13)" /> + <filter + height="1.0837955" + y="-0.041897796" + width="1.8044378" + x="-0.40221885" + id="filter4116"> + <feGaussianBlur + id="feGaussianBlur4118" + stdDeviation="0.52372246" + inkscape:collect="always" /> + </filter> + <linearGradient + id="linearGradient7507"> + <stop + id="stop7509" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop7511" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <radialGradient + cx="43.5625" + cy="202.25" + r="1.5625" + fx="43.5625" + fy="202.25" + id="radialGradient4104" + xlink:href="#linearGradient7507" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.16,0,0,11.28,-94.095,-2079.13)" /> + <radialGradient + cx="113.0654" + cy="97.587898" + r="2.5631001" + fx="113.667" + fy="98" + id="radialGradient4132" + xlink:href="#XMLID_64_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4956521,0,0,2.4956521,-223.97574,-53.226089)" /> + <linearGradient + x1="113.0654" + y1="100.6621" + x2="113.0654" + y2="94.512703" + id="linearGradient4130" + xlink:href="#XMLID_63_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4956521,0,0,2.4956521,-223.97574,-53.226089)" /> + <radialGradient + cx="113.0654" + cy="97.587898" + r="2.5631001" + fx="113.667" + fy="98" + id="radialGradient4136" + xlink:href="#XMLID_64_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4956521,0,0,2.4956521,-223.97574,-53.226089)" /> + <linearGradient + x1="113.0654" + y1="100.6621" + x2="113.0654" + y2="94.512703" + id="linearGradient4134" + xlink:href="#XMLID_63_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4956521,0,0,2.4956521,-223.97574,-53.226089)" /> + <radialGradient + cx="113.0654" + cy="97.587898" + r="2.5631001" + fx="113.667" + fy="98" + id="XMLID_64_" + gradientUnits="userSpaceOnUse"> + <stop + id="stop505" + style="stop-color:#eeeeee;stop-opacity:1" + offset="0" /> + <stop + id="stop507" + style="stop-color:#cecece;stop-opacity:1" + offset="0.16" /> + <stop + id="stop509" + style="stop-color:#888888;stop-opacity:1" + offset="0.4675" /> + <stop + id="stop511" + style="stop-color:#555555;stop-opacity:1" + offset="1" /> + </radialGradient> + <radialGradient + cx="113.0654" + cy="97.587898" + r="2.5631001" + fx="113.667" + fy="98" + id="radialGradient4140" + xlink:href="#XMLID_64_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4956521,0,0,2.4956521,-223.97574,-53.226089)" /> + <linearGradient + x1="113.0654" + y1="100.6621" + x2="113.0654" + y2="94.512703" + id="XMLID_63_" + gradientUnits="userSpaceOnUse"> + <stop + id="stop496" + style="stop-color:#eeeeee;stop-opacity:1" + offset="0" /> + <stop + id="stop498" + style="stop-color:#dddddd;stop-opacity:1" + offset="0.66860002" /> + <stop + id="stop500" + style="stop-color:#555555;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="113.0654" + y1="100.6621" + x2="113.0654" + y2="94.512703" + id="linearGradient4138" + xlink:href="#XMLID_63_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4956521,0,0,2.4956521,-223.97574,-53.226089)" /> + <radialGradient + cx="142.62215" + cy="191.85428" + r="78.728165" + fx="142.62215" + fy="191.85428" + id="radialGradient4078" + xlink:href="#linearGradient7609" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.155354,0,0,-9.045696e-2,296.87519,93.678924)" /> + <linearGradient + id="linearGradient7609"> + <stop + id="stop7611" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop7677" + style="stop-color:#e7e7e7;stop-opacity:1" + offset="0.47025558" /> + <stop + id="stop7613" + style="stop-color:#8c8c8c;stop-opacity:1" + offset="0.67183787" /> + <stop + id="stop7617" + style="stop-color:#dddddd;stop-opacity:1" + offset="0.83542866" /> + <stop + id="stop7615" + style="stop-color:#a8a8a8;stop-opacity:1" + offset="1" /> + </linearGradient> + <radialGradient + cx="141.74666" + cy="206.42612" + r="78.728165" + fx="141.74666" + fy="206.42612" + id="radialGradient4081" + xlink:href="#linearGradient7609" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.3079313,-3.68762e-3,2.27901e-3,0.2121779,275.0745,43.487346)" /> + <linearGradient + id="linearGradient10652"> + <stop + id="stop10654" + style="stop-color:#535353;stop-opacity:1" + offset="0" /> + <stop + id="stop10656" + style="stop-color:#babdb6;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="317.625" + y1="72.5" + x2="312.125" + y2="55.25" + id="linearGradient10658" + xlink:href="#linearGradient10652" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,16)" /> + <linearGradient + id="linearGradient7497"> + <stop + id="stop7499" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop7501" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /> + </linearGradient> + <radialGradient + cx="150.17931" + cy="301.80243" + r="106.18474" + fx="150.17931" + fy="301.80243" + id="radialGradient4089" + xlink:href="#linearGradient7497" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.1949405,2.435491e-2,-1.29477e-2,0.1071189,295.23816,53.829929)" /> + <linearGradient + id="linearGradient4244"> + <stop + id="stop4246" + style="stop-color:#efefef;stop-opacity:1" + offset="0" /> + <stop + id="stop7563" + style="stop-color:#bcbcbc;stop-opacity:1" + offset="0.69516969" /> + <stop + id="stop4248" + style="stop-color:#e4e4e4;stop-opacity:1" + offset="1" /> + </linearGradient> + <radialGradient + cx="15.571491" + cy="2.958519" + r="20.935818" + fx="15.571491" + fy="2.958519" + id="radialGradient4092" + xlink:href="#linearGradient4244" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2874573,0.7785045,-0.7114536,1.164774,292.94174,56.71277)" /> + <linearGradient + id="linearGradient4120"> + <stop + id="stop4122" + style="stop-color:#555753;stop-opacity:1" + offset="0" /> + <stop + id="stop4124" + style="stop-color:#2e3436;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="8.4787941" + y1="30.712189" + x2="36.183067" + y2="40.943935" + id="linearGradient4095" + xlink:href="#linearGradient4120" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0009449,0,0,0.560284,295.29831,72.625339)" /> + </defs> + <g + style="opacity:1;display:inline" + id="g5022" + transform="matrix(2.3640267e-2,0,0,1.5678661e-2,45.026494,35.862725)"> + <rect + y="-150.69685" + x="-1559.2523" + height="478.35718" + width="1339.6335" + id="rect4173" + style="opacity:0.40206185;fill:url(#linearGradient8268);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + sodipodi:nodetypes="cccc" + id="path5058" + d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z" + style="opacity:0.40206185;fill:url(#radialGradient8270);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + style="opacity:0.40206185;fill:url(#radialGradient8272);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z" + id="path5018" + sodipodi:nodetypes="cccc" /> + </g> + <g + id="layer1"> + <g + transform="translate(-296.00011,-55.999737)" + id="g2923" + style="display:inline;enable-background:new"> + <g + transform="matrix(0.1964069,0,0,0.1996805,302.8947,50.396787)" + id="g8979" + style="opacity:0.8960396" /> + <path + d="M 298.575,87.751222 L 299.34032,87.363385 L 336.98555,87.398405 L 340.45123,87.576183 L 340.45123,93.424725 C 340.45123,94.055362 339.84364,94.457513 338.85785,94.457513 L 300.23841,94.457513 C 299.239,94.457513 298.575,94.153811 298.575,93.547239 L 298.575,87.751225 L 298.575,87.751222 z" + id="path8985" + style="fill:url(#linearGradient4095);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="M 298.85075,87.378245 C 298.13579,88.836549 298.85014,89.761327 299.88745,89.761327 C 299.88745,89.761327 338.92429,89.761327 338.92429,89.761327 C 340.0444,89.737617 340.77128,88.753555 340.35421,87.62722 L 333.63358,70.486835 C 333.44889,69.97702 332.9782,69.502773 332.48965,69.490917 L 306.60807,69.490917 C 305.98248,69.490917 305.57138,69.793249 305.32115,70.34456 C 305.32115,70.34456 298.85075,87.378245 298.85075,87.378245 L 298.85075,87.378245 z" + id="path8987" + style="fill:url(#radialGradient4092);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="M 340.1368,86.636171 C 340.2004,87.90818 339.72241,88.992836 338.81344,89.021238 C 338.81344,89.021238 300.6587,89.021236 300.6587,89.021238 C 299.36825,89.021238 298.7892,88.690561 298.57268,88.137878 C 298.66458,89.098856 299.39928,89.81626 300.6587,89.81626 C 300.6587,89.816258 338.81344,89.81626 338.81344,89.81626 C 339.89046,89.78261 340.5679,88.367132 340.16688,86.768675 L 340.13678,86.636171 L 340.1368,86.636171 z" + id="path8989" + style="fill:url(#radialGradient4089);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="M 306.59467,69.5 C 305.96908,69.5 305.56244,69.795295 305.31221,70.358626 C 305.31221,70.358626 298.83735,87.763684 298.83735,87.763684 C 298.83735,87.763684 298.58711,88.44708 298.58711,89.576333 C 298.58711,89.576333 298.58711,92.80376 298.58711,92.80376 C 298.58711,93.905455 299.24552,94.457408 300.24493,94.457406 L 338.84386,94.457406 C 339.82964,94.457406 340.43912,93.726564 340.43912,92.581152 L 340.43912,89.353727 C 340.43912,89.353727 340.54518,88.569724 340.34532,88.018092 L 333.62022,70.517631 C 333.43552,69.996701 332.98271,69.512114 332.49416,69.5 L 306.59471,69.5 L 306.59467,69.5 z" + id="path8999" + style="fill:none;stroke:url(#linearGradient10658);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 334.62368,80.618568 C 334.43304,79.152166 333.15543,77.753895 331.03264,76.65052 C 330.98994,76.226401 330.44582,70.800848 330.44582,70.800848 C 330.40412,70.383771 329.76994,70.068992 328.97012,70.068992 L 323.9508,70.068992 C 323.14523,70.068992 322.52251,70.387911 322.5022,70.81079 C 322.4101,72.7214 319.6016,73.718954 315.41223,74.626423 C 313.94432,74.839517 310.11727,75.841212 309.2389,76.280864 C 306.65322,77.435804 305.11116,78.975518 304.89749,80.618568 C 304.70312,82.11293 305.63737,83.608327 307.52821,84.829329 C 310.29572,86.616516 314.86841,87.68365 319.76041,87.68365 C 324.65242,87.68365 329.2251,86.616516 331.99296,84.829329 C 333.71991,83.714359 334.64873,82.370136 334.64873,81.007072 C 334.64873,80.877638 334.63973,80.748 334.62363,80.618568 L 334.62368,80.618568 z M 319.76041,86.942475 C 311.61261,86.942475 305.37358,83.947747 305.82496,80.476297 C 306.01967,78.97966 307.44897,77.381961 309.8159,76.329116 C 310.25915,76.049132 314.26229,74.960 044 315. 69836,74.768692 C 319.67847,73.908442 323.31827,72.79202 323.43238,70.439271 C 323.43738,70.326613 323.6667,70.237358 323.9508,70.237358 L 328.96945,70.237358 C 329.25998,70.237358 329.50514,70.330958 329.51665,70.446519 L 330.12616,76.525024 C 332.23575,77.549496 333.51403,79.078647 333.69553,80.476297 C 334.14724,83.947747 327.90822,86.942475 319.76041,86.942475 L 319.76041,86.942475 z" + id="path9001" + style="fill:url(#radialGradient4081);fill-opacity:1" /> + <path + d="M 319.6475,81.883652 C 316.82104,81.883652 314.65427,81.006976 314.6086,79.844145 C 314.60824,79.831575 314.60789,79.819215 314.60789,79.806855 C 314.60789,79.386077 314.89188,78.985894 315.43153,78.647059 C 316.34441,78.074315 317.92053,77.732445 319.64785,77.732445 C 321.37482,77.732445 322.95093,78.074315 323.86381,78.647059 C 324.4194,78.99543 324.70411,79.409491 324.68675,79.843927 C 324.64035,81.006758 322.4736,81.88365 319.6475,81.88365 L 319.6475,81.883652 z M 319.6475,78.383019 C 316.99171,78.383019 315.63868,79.25189 315.67055,80.045103 C 315.70135,80.825962 317.4818,81.449868 319.6475,81.449868 C 321.8132,81.449868 323.59363,80.825744 323.62444,80.045103 C 323.65594,79.251672 322.30328,78.383019 319.6475,78.383019 L 319.6475,78.383019 z" + id="path9003" + style="fill:url(#radialGradient4078);fill-opacity:1;fill-rule:nonzero;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <g + transform="matrix(-0.1320251,0,0,0.1401423,309.19335,61.406788)" + id="g9005"> + <path + d="M 48.2999,190.27968 C 48.61436,194.52728 53.32365,197.99124 58.81409,197.99124 C 64.30203,197.99124 68.45729,194.52728 68.09043,190.27968 C 67.72606,186.05454 63.01926,182.64298 57.58373,182.64298 C 52.1457,182.64498 47.99044,186.05454 48.2999,190.27968 z" + id="path9007" + style="fill:url(#linearGradient4138)" /> + <path + d="M 51.85122,187.29238 C 51.34959,187.83144 50.77559,188.69494 50.77559,189.84294 C 50.77559,189.92534 50.78059,190.00765 50.78559,190.095 C 51.00272,193.0224 54.67881,195.49559 58.81161,195.49559 C 61.16501,195.49559 63.31626,194.6845 64.56409,193.32188 C 65.10065,192.74039 65.71209,191.77707 65.60228,190.4943 C 65.35022,187.59186 61.67912,185.13863 57.58125,185.13863 C 55.24532,185.14063 53.10156,185.94473 51.85124,187.29238 L 51.85122,187.29238 z" + id="path9009" + style="fill:url(#radialGradient4140)" /> + </g> + <g + transform="matrix(9.05434e-2,0,0,6.056511e-2,301.91757,58.935593)" + id="g9017"> + <path + d="M 48.2999,190.27968 C 48.61436,194.52728 53.32365,197.99124 58.81409,197.99124 C 64.30203,197.99124 68.45729,194.52728 68.09043,190.27968 C 67.72606,186.05454 63.01926,182.64298 57.58373,182.64298 C 52.1457,182.64498 47.99044,186.05454 48.2999,190.27968 z" + id="path9019" + style="fill:url(#linearGradient4134)" /> + <path + d="M 51.85122,187.29238 C 51.34959,187.83144 50.77559,188.69494 50.77559,189.84294 C 50.77559,189.92534 50.78059,190.00765 50.78559,190.095 C 51.00272,193.0224 54.67881,195.49559 58.81161,195.49559 C 61.16501,195.49559 63.31626,194.6845 64.56409,193.32188 C 65.10065,192.74039 65.71209,191.77707 65.60228,190.4943 C 65.35022,187.59186 61.67912,185.13863 57.58125,185.13863 C 55.24532,185.14063 53.10156,185.94473 51.85124,187.29238 L 51.85122,187.29238 z" + id="path9021" + style="fill:url(#radialGradient4136)" /> + </g> + <g + transform="matrix(9.05434e-2,0,0,6.056511e-2,326.70176,58.935593)" + id="g9023"> + <path + d="M 48.2999,190.27968 C 48.61436,194.52728 53.32365,197.99124 58.81409,197.99124 C 64.30203,197.99124 68.45729,194.52728 68.09043,190.27968 C 67.72606,186.05454 63.01926,182.64298 57.58373,182.64298 C 52.1457,182.64498 47.99044,186.05454 48.2999,190.27968 z" + id="path9025" + style="fill:url(#linearGradient4130)" /> + <path + d="M 51.85122,187.29238 C 51.34959,187.83144 50.77559,188.69494 50.77559,189.84294 C 50.77559,189.92534 50.78059,190.00765 50.78559,190.095 C 51.00272,193.0224 54.67881,195.49559 58.81161,195.49559 C 61.16501,195.49559 63.31626,194.6845 64.56409,193.32188 C 65.10065,192.74039 65.71209,191.77707 65.60228,190.4943 C 65.35022,187.59186 61.67912,185.13863 57.58125,185.13863 C 55.24532,185.14063 53.10156,185.94473 51.85124,187.29238 L 51.85122,187.29238 z" + id="path9027" + style="fill:url(#radialGradient4132)" /> + </g> + <path + d="M 42.5,187.25 L 42,215.5 L 45.125,217.25 L 45.125,187.25 L 42.5,187.25 z" + transform="matrix(0.6764069,0,0,0.1996805,270.95029,50.796148)" + id="path9029" + style="opacity:0.5;fill:url(#radialGradient4104);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.54031181;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter4116);enable-background:accumulate" /> + <path + d="M 42.5,187.25 L 42,215.5 L 45.125,217.25 L 45.125,187.25 L 42.5,187.25 z" + transform="matrix(-0.1335567,0,0,0.1996805,345.55134,52.796148)" + id="path9031" + style="fill:url(#radialGradient4102);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.54031181;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter7527);enable-background:accumulate" /> + <g + transform="matrix(1,0,0,0.8675042,0,25.228511)" + id="g7741"> + <g + transform="matrix(0.1964069,0,0,0.1996805,293.09232,34.304422)" + id="g8991"> + <rect + width="89.82196" + height="28.348066" + x="61.369766" + y="195.91609" + id="rect8993" + style="fill:url(#linearGradient7749);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.40899992;marker:none;visibility:visible;display:inline;overflow:visible" /> + <path + d="M 61.369759,224.26414 C 61.369759,224.26414 61.369759,203.82049 61.369759,203.82049 C 70.724123,220.02272 103.65101,224.26414 127.30289,224.26414 C 127.30289,224.26414 61.369759,224.26414 61.369759,224.26414 z" + id="path8995" + style="opacity:0.81142853;fill:url(#linearGradient7751);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="M 61.456423,195.98396 L 61.456423,224.17277 L 125.47846,224.17277 L 63.208269,222.42092 L 61.456423,195.98396 L 61.456423,195.98396 z" + id="path8997" + style="opacity:0.43999999;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + </g> + <path + d="M 306.4971,76.431125 C 307.65679,77.6956 309.3344,78.525089 311.99649,78.52777 C 309.48297,78.059464 307.63579,77.365342 306.4971,76.431125 z" + id="path9041" + style="opacity:0.55445545;fill:url(#radialGradient7753);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <rect + width="2.2318058" + height="5.0602326" + x="302.79639" + y="73.836319" + id="rect4142" + style="opacity:0.48936169;fill:url(#linearGradient7755);fill-opacity:1;stroke:none" /> + </g> + <path + d="M 161.5,187 L 152,218 L 208,218 L 222,187 L 161.5,187 z" + transform="matrix(-0.1964069,0,0,0.1996805,356.31738,50.796148)" + id="path9033" + style="opacity:0.67821781;fill:url(#linearGradient4100);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.54031181;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter7557);enable-background:accumulate" /> + <path + d="M 332.78153,71.366432 L 339.06655,87.340869" + id="path9035" + style="opacity:0.8960396;fill:none;stroke:url(#radialGradient4063);stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + d="M 306.10872,71.366432 L 299.8237,87.340869" + id="path9037" + style="opacity:0.8960396;fill:none;stroke:url(#radialGradient4060);stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + d="M 308.1179,70.205932 L 308.0258,70.474252 L 306.65096,74.467862 L 306.41772,75.135543 L 307.09901,74.992023 L 318.68702,72.496017 L 318.72382,72.483537 L 318.75452,72.471057 C 319.36816,72.22151 319.69605,71.717214 319.77338,71.254253 C 319.81208,71.022772 319.80048,70.796101 319.69978,70.586572 C 319.60468,70.388771 319.3571,70.212784 319.09828,70.218411 L 319.09828,70.205931 L 319.05528,70.205931 L 308.39407,70.205931 L 308.11787,70.205931 L 308.1179,70.205932 z M 308.51012,70.452678 L 319.19013,70.452678 C 319.19513,70.486398 319.20713,70.505108 319.19613,70.568876 C 319.16263,70.769596 319.0185,71.487685 318.65641,71.644333 L 307.42399,74.065114 L 308.50977,70.452678 L 308.51012,70.452678 z" + id="path9039" + style="fill:url(#radialGradient4057);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <g + transform="matrix(0.1320251,0,0,0.1401423,329.80012,61.406788)" + id="g9089"> + <path + d="M 48.2999,190.27968 C 48.61436,194.52728 53.32365,197.99124 58.81409,197.99124 C 64.30203,197.99124 68.45729,194.52728 68.09043,190.27968 C 67.72606,186.05454 63.01926,182.64298 57.58373,182.64298 C 52.1457,182.64498 47.99044,186.05454 48.2999,190.27968 z" + id="path9091" + style="fill:url(#linearGradient4126)" /> + <path + d="M 51.85122,187.29238 C 51.34959,187.83144 50.77559,188.69494 50.77559,189.84294 C 50.77559,189.92534 50.78059,190.00765 50.78559,190.095 C 51.00272,193.0224 54.67881,195.49559 58.81161,195.49559 C 61.16501,195.49559 63.31626,194.6845 64.56409,193.32188 C 65.10065,192.74039 65.71209,191.77707 65.60228,190.4943 C 65.35022,187.59186 61.67912,185.13863 57.58125,185.13863 C 55.24532,185.14063 53.10156,185.94473 51.85124,187.29238 L 51.85122,187.29238 z" + id="path9093" + style="fill:url(#radialGradient4128)" /> + </g> + <path + d="M 300.15376,87.041983 C 299.48387,88.400089 300.15318,89.261328 301.12509,89.261328 C 301.12509,89.261328 337.70075,89.261328 337.70075,89.261328 C 338.75023,89.239248 339.43128,88.322797 339.04051,87.273851 L 332.8686,71.311143 C 332.69555,70.836356 332.25454,70.394694 331.79679,70.383652 L 307.297,70.383652 C 306.71085,70.383652 306.32567,70.665212 306.09121,71.178644 C 306.09121,71.178644 300.15376,87.041983 300.15376,87.041983 L 300.15376,87.041983 z" + id="path9099" + style="fill:none;stroke:url(#linearGradient4048);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + d="M 299.68751,87.133654 L 299.68751,92.382453 C 299.68751,93.133753 300.07256,93.354724 300.64984,93.354724 L 338.92199,93.354724 C 339.45232,93.443114 339.76168,92.912783 339.71748,92.426647 L 339.45232,87.521094" + id="path9109" + style="opacity:0.25;fill:none;stroke:url(#linearGradient4045);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + d="M 322.61433,70.871152 L 329.90637,70.871152 L 329.90637,71.931812 L 324.64727,71.931812 C 322.14293,73.507421 319.6386,74.153569 317.13427,74.318297 C 319.19125,73.295909 322.66451,73.052478 322.61433,70.871152 L 322.61433,70.871152 z" + id="rect9123" + style="opacity:0.42079204;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <rect + width="12.020816" + height="1.0606601" + x="307.58829" + y="70.871155" + id="rect9125" + style="opacity:0.31188121;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + <g + style="display:inline;enable-background:new" + id="g4303" + transform="translate(-415.99998,-56.00001)"> + <path + transform="matrix(1.6729902,0,0,1.6775966,-194.95875,-163.81639)" + d="M 385.5,144.8125 A 6.5625,2.3125 0 1 1 372.375,144.8125 A 6.5625,2.3125 0 1 1 385.5,144.8125 z" + sodipodi:ry="2.3125" + sodipodi:rx="6.5625" + sodipodi:cy="144.8125" + sodipodi:cx="378.9375" + id="path3899" + style="opacity:0.26086958;fill:url(#radialGradient3901);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" /> + <path + sodipodi:nodetypes="cccccccccc" + id="path3843" + d="M 436.5176,60.501821 L 436.5176,67.481166 L 429.54472,67.481166 L 429.50472,68.99181 L 439.53999,79.346232 L 449.53949,69.075668 L 449.53949,67.481166 L 442.47821,67.481166 L 442.47821,60.501821 L 436.51759,60.501821 L 436.5176,60.501821 z" + style="fill:url(#linearGradient3892);fill-opacity:1;stroke:#a40000;stroke-width:0.99999994;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;enable-background:new" /> + <path + d="M 437.5,61.46875 L 437.5,67.46875 C 437.49995,68.003754 437.06625,68.437447 436.53125,68.4375 L 430.46875,68.4375 L 430.46875,68.625 L 439.53125,77.9375 L 448.5625,68.65625 L 448.5625,68.4375 L 442.46875,68.4375 C 441.93375,68.437447 441.50005,68.003754 441.5,67.46875 L 441.5,61.46875 L 437.5,61.46875 z" + id="path3907" + style="opacity:0.3;fill:none;stroke:url(#linearGradient3917);stroke-width:0.99999994;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;enable-background:new" + inkscape:original="M 436.53125 60.5 L 436.53125 67.46875 L 429.53125 67.46875 L 429.5 69 L 439.53125 79.34375 L 449.53125 69.0625 L 449.53125 67.46875 L 442.46875 67.46875 L 442.46875 60.5 L 436.53125 60.5 z " + inkscape:radius="-0.96875" + sodipodi:type="inkscape:offset" /> + <g + transform="matrix(1.2796712,0,0,1.2692354,-39.097014,-172.59699)" + style="opacity:0.5;display:inline;enable-background:new" + id="g3853"> + <rect + y="189.56058" + x="366.5762" + height="0.78787541" + width="5.4701591" + id="rect3855" + style="opacity:0.3;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;enable-background:new" /> + <rect + y="189.56058" + x="375.95361" + height="0.78787541" + width="5.4701519" + id="rect3858" + style="opacity:0.3;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;enable-background:new" /> + </g> + <rect + y="61.000008" + x="437" + height="0.99999934" + width="5" + id="rect3897" + style="opacity:0.3;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;enable-background:new" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/edit-delete.svg b/icons/PyHoca/scalable/edit-delete.svg new file mode 100644 index 0000000..592fde6 --- /dev/null +++ b/icons/PyHoca/scalable/edit-delete.svg @@ -0,0 +1,272 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7352" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="edit-delete.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7354"> + <filter + inkscape:collect="always" + id="filter7079" + x="-0.084445536" + width="1.1688911" + y="-0.25950053" + height="1.519001"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.3093102" + id="feGaussianBlur7081" /> + </filter> + <linearGradient + inkscape:collect="always" + id="linearGradient6983"> + <stop + style="stop-color:#2e3436;stop-opacity:1;" + offset="0" + id="stop6985" /> + <stop + style="stop-color:#2e3436;stop-opacity:0;" + offset="1" + id="stop6987" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6983" + id="radialGradient6989" + cx="318.03488" + cy="90.563477" + fx="318.03488" + fy="90.563477" + r="18.605747" + gradientTransform="matrix(0.9288572,2.6280209e-6,-8.1854474e-7,0.3017001,22.656541,62.141708)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient9361" + inkscape:collect="always"> + <stop + id="stop9363" + offset="0" + style="stop-color:#da3f3f;stop-opacity:1" /> + <stop + id="stop9365" + offset="1" + style="stop-color:#c22f2f;stop-opacity:1" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient9361" + id="radialGradient9378" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.3924733,0,0,0.2885739,205.8207,140.5416)" + cx="-464.70734" + cy="-357.84525" + fx="-464.70734" + fy="-357.84525" + r="63.512196" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8972" + id="radialGradient8978" + cx="323.85492" + cy="68.128128" + fx="323.85492" + fy="68.128128" + r="15.419154" + gradientTransform="matrix(1.0541479,0,0,2.7641865,-17.53606,-127.10337)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient8987"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop8989" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop8991" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8987" + id="radialGradient9352" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.2696808,0,0,2.5886157,-703.01411,-138.28208)" + cx="320.48438" + cy="55.027756" + fx="320.48438" + fy="55.027756" + r="16.234375" /> + <linearGradient + inkscape:collect="always" + id="linearGradient8972"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop8974" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop8976" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8972" + id="radialGradient9391" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6895929,-0.7179879,1.5975314,1.6633121,-13.568216,185.77726)" + cx="323.85492" + cy="75.626114" + fx="323.85492" + fy="75.626114" + r="15.419154" /> + <linearGradient + id="linearGradient9420"> + <stop + id="stop9422" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0.73950005" + id="stop9424" /> + <stop + id="stop9426" + offset="1" + style="stop-color:#ffffff;stop-opacity:0;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient9420" + id="radialGradient9416" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.7162417,-0.7162422,0.6276207,0.6276203,-268.69581,-17.371239)" + cx="175.44765" + cy="264.42752" + fx="175.44765" + fy="264.42752" + r="16.03125" /> + <linearGradient + inkscape:collect="always" + id="linearGradient9428"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop9430" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop9432" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient9428" + id="radialGradient9434" + cx="174.65625" + cy="279.4375" + fx="174.65625" + fy="279.4375" + r="16.03125" + gradientTransform="matrix(1.3036497,-1.3036513,0.2559723,0.255972,-274.12603,181.25401)" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="3.5" + inkscape:cx="-15.768306" + inkscape:cy="0.35046343" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="688" + inkscape:window-x="598" + inkscape:window-y="287"> + <inkscape:grid + type="xygrid" + id="grid7397" /> + </sodipodi:namedview> + <metadata + id="metadata7357"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <path + sodipodi:type="arc" + style="opacity:0.78341011;fill:url(#radialGradient6989);fill-opacity:1;stroke:none;display:inline;filter:url(#filter7079);enable-background:new" + id="path6981" + sodipodi:cx="318.06546" + sodipodi:cy="88.88443" + sodipodi:rx="18.605747" + sodipodi:ry="6.0546017" + d="M 336.67121,88.88443 A 18.605747,6.0546017 0 1 1 299.45971,88.88443 A 18.605747,6.0546017 0 1 1 336.67121,88.88443 z" + transform="matrix(1.1824306,0,0,0.5985401,-352.09033,-10.715817)" /> + <path + style="fill:url(#radialGradient9378);fill-opacity:1;stroke:#900000;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;enable-background:new" + d="M 24.000023,3.4998004 C 12.684023,3.4998004 3.500023,12.683806 3.500023,23.999801 C 3.500023,35.315799 12.684023,44.4998 24.000023,44.499801 C 35.316023,44.499801 44.500023,35.315801 44.500023,23.999801 C 44.500023,12.683803 35.316023,3.4997994 24.000023,3.4998004 z M 24.000023,8.4998004 C 27.378453,8.4998004 30.483773,9.6002134 33.031273,11.437301 L 11.437523,33.031051 C 9.6004329,30.483553 8.5000229,27.378233 8.5000229,23.999801 C 8.5000229,15.443795 15.444013,8.4998004 24.000023,8.4998004 z M 36.562523,14.968551 C 38.399613,17.516049 39.500023,20.621369 39.500023,23.999801 C 39.500023,32.555808 32.556033,39.499801 24.000023,39.499801 C 20.621583,39.4998 17.516273,38.399388 14.968773,36.562301 L 36.562523,14.968551 z" + id="path6626" /> + <path + transform="matrix(1.2977488,0,0,1.2464255,-396.28233,-65.800728)" + d="M 338.88094,72.046448 A 15.026019,15.644737 0 1 1 308.8289,72.046448 A 15.026019,15.644737 0 1 1 338.88094,72.046448 z" + sodipodi:ry="15.644737" + sodipodi:rx="15.026019" + sodipodi:cy="72.046448" + sodipodi:cx="323.85492" + id="path6629" + style="opacity:0.84615383;fill:none;stroke:url(#radialGradient8978);stroke-width:0.78626961;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;enable-background:new" + sodipodi:type="arc" /> + <path + style="opacity:0.32692339;fill:url(#radialGradient9352);fill-opacity:1;stroke:none;display:inline;enable-background:new" + d="M 23.906273,4.9998004 C 13.432953,4.9998004 4.9375228,13.495227 4.9375228,23.968551 C 4.9375328,31.481673 9.3173429,37.958208 15.656273,41.031051 C 15.656273,41.031051 15.471133,39.640863 15.437523,37.499801 C 15.178943,37.334992 14.935953,37.147705 14.687523,36.968551 C 14.566613,36.886464 14.480893,36.739194 14.468773,36.593551 C 14.456633,36.447912 14.519363,36.319519 14.625023,36.218551 L 15.468773,35.374801 C 15.543763,33.459554 15.775163,31.224037 16.312523,28.843551 L 11.781273,33.374801 C 11.680303,33.480458 11.551913,33.543187 11.406273,33.531051 C 11.260633,33.518914 11.113363,33.433213 11.031273,33.312301 C 9.1387029,30.68787 8.0312729,27.483271 8.0312729,23.999801 C 8.0312729,15.182071 15.182293,8.0310504 24.000023,8.0310504 C 27.275013,8.0310504 30.312133,8.9974374 32.843773,10.6873 C 33.998323,10.344836 35.221273,10.067369 36.531273,9.8435504 C 33.869273,6.9186164 28.753453,4.9998004 23.906273,4.9998004 z" + id="path8980" /> + <path + transform="matrix(1.0980964,0,0,1.0546689,-331.62391,-51.985347)" + d="M 338.88094,72.046448 A 15.026019,15.644737 0 1 1 308.8289,72.046448 A 15.026019,15.644737 0 1 1 338.88094,72.046448 z" + sodipodi:ry="15.644737" + sodipodi:rx="15.026019" + sodipodi:cy="72.046448" + sodipodi:cx="323.85492" + id="path9389" + style="opacity:0.84615383;fill:none;stroke:url(#radialGradient9391);stroke-width:0.9292267;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;enable-background:new" + sodipodi:type="arc" /> + <path + style="opacity:0.5;fill:none;fill-opacity:1;stroke:url(#radialGradient9416);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="M 33.90954,11.943568 L 11.945035,33.908074" + id="path9395" + sodipodi:nodetypes="cc" /> + <path + style="opacity:0.3;fill:none;fill-opacity:1;stroke:url(#radialGradient9434);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="M 14.110549,36.073588 L 36.075054,14.109083" + id="path9414" + sodipodi:nodetypes="cc" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/gnome-dev-printer-network.svg b/icons/PyHoca/scalable/gnome-dev-printer-network.svg new file mode 100644 index 0000000..9c58af1 --- /dev/null +++ b/icons/PyHoca/scalable/gnome-dev-printer-network.svg @@ -0,0 +1,731 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7612" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7614"> + <linearGradient + inkscape:collect="always" + id="linearGradient2463"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop2465" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop2467" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2463" + id="linearGradient8678" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0441567,0,0,0.986366,-0.4734719,-4.7264972)" + x1="11.3125" + y1="21.6875" + x2="11.3125" + y2="33.216167" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7644"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop7646" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop7648" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7644" + id="linearGradient7650" + x1="20.125" + y1="24.43815" + x2="20.125" + y2="20" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.6666666,5.9604645e-8,0.6661948)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7591"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop7593" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop7595" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7591" + id="linearGradient7597" + x1="41.820312" + y1="33.109375" + x2="41.820312" + y2="33.46909" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0.5000001,-6.0004713)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7434" + id="linearGradient3334" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.120543,0,0,1.2799981,-3.8930409,-17.060385)" + x1="15.916752" + y1="38.720707" + x2="15.916752" + y2="43.940079" /> + <linearGradient + id="linearGradient7652"> + <stop + id="stop7654" + offset="0" + style="stop-color:#555753;stop-opacity:1;" /> + <stop + id="stop7656" + offset="1" + style="stop-color:#888a85;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7652" + id="linearGradient3340" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.129032,0,0,1.3333314,-4.0967759,-19.167046)" + x1="10.823892" + y1="43.8125" + x2="10.602463" + y2="34.705021" /> + <linearGradient + id="linearGradient7658" + inkscape:collect="always"> + <stop + id="stop7660" + offset="0" + style="stop-color:#d3d7cf" /> + <stop + id="stop7662" + offset="1" + style="stop-color:#eeeeec" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7658" + id="linearGradient3338" + gradientUnits="userSpaceOnUse" + x1="40.315235" + y1="60.195492" + x2="9.8578663" + y2="40.000011" + gradientTransform="translate(-0.9999999,-7.0004712)" /> + <linearGradient + id="linearGradient2304"> + <stop + style="stop-color:#babdb6" + offset="0" + id="stop2306" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop2308" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2304" + id="linearGradient2324" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.8853266,0,0,1.499469,5.4882695,-17.734803)" + x1="38.742561" + y1="29.743778" + x2="38.742561" + y2="31.167559" /> + <linearGradient + id="linearGradient2326" + inkscape:collect="always"> + <stop + id="stop2328" + offset="0" + style="stop-color:#789e2d;stop-opacity:1" /> + <stop + id="stop2330" + offset="1" + style="stop-color:#a7cc5c;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2326" + id="linearGradient2322" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6666666,0,0,1,15,-2.0004702)" + x1="40.791222" + y1="30.003317" + x2="40.791222" + y2="29.084894" /> + <linearGradient + id="linearGradient1385"> + <stop + style="stop-color:#888a85" + offset="0" + id="stop1387" /> + <stop + style="stop-color:#888a85;stop-opacity:1" + offset="1" + id="stop1389" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1385" + id="linearGradient7641" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.079998,0,0,1.003906,-1.9199909,-17.100076)" + x1="36.523464" + y1="32.096741" + x2="36.523464" + y2="13.749178" /> + <linearGradient + inkscape:collect="always" + id="linearGradient2248"> + <stop + style="stop-color:#ffffff;stop-opacity:1" + offset="0" + id="stop2250" /> + <stop + style="stop-color:#babdb6" + offset="1" + id="stop2252" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2248" + id="linearGradient7587" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.079998,0,0,1.003906,-1.9199909,-13.084451)" + x1="17.409122" + y1="33.322712" + x2="21.360058" + y2="-23.806805" /> + <linearGradient + inkscape:collect="always" + id="linearGradient2384"> + <stop + style="stop-color:#2e3436" + offset="0" + id="stop2386" /> + <stop + style="stop-color:#babdb6" + offset="1" + id="stop2388" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2384" + id="linearGradient7852" + gradientUnits="userSpaceOnUse" + x1="17.5" + y1="30.755291" + x2="17.5" + y2="20.140139" + gradientTransform="matrix(1.003915,0,0,0.9841327,0.9560781,-5.7035472)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient2431"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop2433" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop2435" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2431" + id="linearGradient7822" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(1.0000001,-5.0004712)" + x1="3.6239223" + y1="38.100166" + x2="3.6239223" + y2="42.336136" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7434"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop7436" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop7438" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7434" + id="linearGradient7440" + x1="5.126524" + y1="25.372583" + x2="5.126524" + y2="69.140259" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(5.9604645e-8,-7.0004712)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient2683"> + <stop + style="stop-color:#555753" + offset="0" + id="stop2685" /> + <stop + style="stop-color:#2e3436" + offset="1" + id="stop2687" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2683" + id="linearGradient7820" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(1.0000001,-5.0004712)" + x1="3.2640579" + y1="35.072964" + x2="3.2640579" + y2="41.012157" /> + <linearGradient + inkscape:collect="always" + id="linearGradient2675"> + <stop + style="stop-color:#2e3436" + offset="0" + id="stop2677" /> + <stop + style="stop-color:#555753" + offset="1" + id="stop2679" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2675" + id="linearGradient7818" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(1.0000001,-5.0004712)" + x1="5.0569911" + y1="40.414822" + x2="5.0569911" + y2="37.14798" /> + <linearGradient + id="linearGradient7426"> + <stop + style="stop-color:#555753;stop-opacity:1;" + offset="0" + id="stop7428" /> + <stop + style="stop-color:#888a85;stop-opacity:1" + offset="1" + id="stop7430" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7426" + id="linearGradient7432" + x1="0.75" + y1="67.989044" + x2="0.75" + y2="24.367777" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(5.9604645e-8,-7.0004712)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient2222"> + <stop + style="stop-color:#d3d7cf" + offset="0" + id="stop2224" /> + <stop + style="stop-color:#eeeeec" + offset="1" + id="stop2226" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2222" + id="linearGradient2220" + x1="35.5" + y1="31.190165" + x2="35.5" + y2="24.248672" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.921571,5.9604645e-8,-0.7223252)" /> + <linearGradient + id="linearGradient319" + inkscape:collect="always"> + <stop + id="stop320" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop321" + offset="1" + style="stop-color:#ffffff;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient319" + id="linearGradient11473" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-0.9997339,-1.0004662)" + x1="24.391294" + y1="37.228275" + x2="24" + y2="41.998386" /> + <linearGradient + id="linearGradient9347"> + <stop + id="stop9349" + offset="0.0000000" + style="stop-color:#7a7a7a;stop-opacity:1.0000000;" /> + <stop + id="stop9351" + offset="0.19801980" + style="stop-color:#ebebeb;stop-opacity:1" /> + <stop + id="stop9353" + offset="0.59900987" + style="stop-color:#b9b9b9;stop-opacity:1" /> + <stop + id="stop9355" + offset="1.0000000" + style="stop-color:#878787;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient9347" + id="linearGradient7755" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.7312763,0,0,0.6969978,6.8679705,14.121761)" + x1="23.100046" + y1="38.296745" + x2="23.143667" + y2="46.03775" /> + <linearGradient + id="linearGradient178"> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="0.0000000" + id="stop179" /> + <stop + style="stop-color:#d9d9d9;stop-opacity:1" + offset="0.10827128" + id="stop180" /> + <stop + style="stop-color:#d9d9d9;stop-opacity:1" + offset="0.92053902" + id="stop181" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop182" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient178" + id="linearGradient7832" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.1119049,0,0,9.1235758e-2,28.948795,19.750004)" + x1="1.6422368" + y1="117.8271" + x2="15.343062" + y2="117.8271" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient272" + id="linearGradient7834" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(9.3885418,0,0,0.2235361,29.130383,-45.865211)" + x1="0.61210024" + y1="372.57819" + x2="5.0856376" + y2="372.57819" /> + <linearGradient + id="linearGradient272"> + <stop + style="stop-color:#474747;stop-opacity:0.0000000;" + offset="0.0000000" + id="stop273" /> + <stop + style="stop-color:#474747;stop-opacity:1.0000000;" + offset="0.10000000" + id="stop275" /> + <stop + style="stop-color:#474747;stop-opacity:1.0000000;" + offset="0.89999998" + id="stop276" /> + <stop + style="stop-color:#474747;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop274" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient272" + id="linearGradient7830" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(9.3885424,0,0,0.2235366,29.130395,-51.784906)" + x1="0.61210024" + y1="372.57819" + x2="5.0856376" + y2="372.57819" /> + <linearGradient + inkscape:collect="always" + id="linearGradient6704"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop6706" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop6708" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6704" + id="radialGradient7753" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.1166667,0,348.72344)" + cx="1120.375" + cy="394.78125" + fx="1120.375" + fy="394.78125" + r="20.625" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="690" + inkscape:window-x="180" + inkscape:window-y="424" /> + <metadata + id="metadata7617"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <rect + style="fill:#d9d9d9;fill-opacity:1;stroke:#707070;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect8955" + width="2.9998591" + height="2.9998591" + x="22.5" + y="37.500156" /> + <path + sodipodi:type="arc" + style="opacity:0.3;fill:url(#radialGradient7753);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;enable-background:new" + id="path6774" + sodipodi:cx="1120.375" + sodipodi:cy="394.78125" + sodipodi:rx="20.625" + sodipodi:ry="2.40625" + d="M 1141,394.78125 A 20.625,2.40625 0 1 1 1099.75,394.78125 A 20.625,2.40625 0 1 1 1141,394.78125 z" + transform="matrix(1.0181815,0,0,1.2467532,-1116.7451,-447.19479)" /> + <g + style="display:inline;enable-background:new" + id="g7753" + transform="translate(-31.877101,12.999551)"> + <rect + style="opacity:0.65;fill:url(#linearGradient7830);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" + id="rect8601" + width="41.999989" + height="1" + x="34.877113" + y="31" /> + <rect + style="opacity:0.65;fill:url(#linearGradient7834);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" + id="rect8603" + width="41.999989" + height="1" + x="34.877102" + y="29" /> + <rect + style="fill:url(#linearGradient7832);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" + id="rect8605" + width="41.5" + height="1" + x="34.627102" + y="30" /> + <g + transform="matrix(0.544365,0,0,0.9411763,42.076688,-8.6470511)" + id="g8613" + style="fill:#ffffff;fill-opacity:0.72023806" /> + </g> + <path + sodipodi:nodetypes="ccccccccccc" + style="fill:url(#linearGradient7755);fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1.00006688;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;enable-background:new" + d="M 21.778719,40.500052 L 18.545321,40.500052 C 17.962949,40.500052 17.500033,40.927092 17.500033,41.464327 L 17.500033,45.53541 C 17.500033,46.07264 17.962949,46.499985 18.545321,46.499985 L 29.454675,46.499985 C 30.037042,46.499985 30.499965,46.07264 30.499965,45.53541 L 30.499965,41.464327 C 30.499965,40.927092 30.037042,40.500052 29.454675,40.500052 L 26.63351,40.500052 L 21.778719,40.500052 z" + id="path8607" /> + <rect + style="fill:#ffffff;fill-opacity:0.72023806;fill-rule:nonzero;stroke:none;stroke-width:1.13999999;marker:none;visibility:visible;display:block;overflow:visible;enable-background:new" + id="rect8615" + width="8" + height="1.5" + x="21" + y="41.250015" + rx="0.49999997" + ry="0.5" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;fill-opacity:0.72023806;fill-rule:nonzero;stroke:none;stroke-width:1.13999999;marker:none;visibility:visible;display:block;overflow:visible;enable-background:new" + id="path8617" + sodipodi:cx="18.46875" + sodipodi:cy="40.625" + sodipodi:rx="0.53125" + sodipodi:ry="0.53125" + d="M 19,40.625 A 0.53125,0.53125 0 1 1 17.9375,40.625 A 0.53125,0.53125 0 1 1 19,40.625 z" + transform="matrix(1.4117647,0,0,1.4117647,-6.5735289,-15.352923)" /> + <rect + style="opacity:0.265625;fill:url(#linearGradient11473);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect8963" + width="2" + height="2.9924619" + x="23.000271" + y="36.999538" /> + <path + style="opacity:1;fill:url(#linearGradient2220);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7432);stroke-width:1.00000012;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 7,14.499527 L 4.7500005,17.248317 C 2.5994065,19.875664 1.5000001,22.31696 1.5000001,26.003246 L 1.5000001,31.499527 L 46.499999,31.499527 L 46.499999,26.003246 C 46.499999,22.31696 45.400592,19.875663 43.249999,17.248317 L 40.999999,14.499527 L 7,14.499527 z" + id="rect1314" + sodipodi:nodetypes="czzcczzcc" /> + <path + sodipodi:nodetypes="ccccccc" + id="rect2412" + d="M 2.5000005,31.499527 L 2.5000005,34.405777 C 2.5000005,35.557524 3.4420035,36.499527 4.5937495,36.499527 L 43.406249,36.499527 C 44.557996,36.499527 45.499999,35.557522 45.499999,34.405777 L 45.499999,31.499527 L 2.5000005,31.499527 z" + style="opacity:1;fill:url(#linearGradient7818);fill-opacity:1;stroke:url(#linearGradient7820);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;enable-background:new" /> + <path + style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7440);stroke-width:0.9999994;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 7.5118983,15.562027 L 5.5997361,17.851283 C 3.5643395,20.288076 2.5000005,22.337354 2.5000005,25.707493 L 2.5000005,30.499527 L 45.499994,30.499527 L 45.499994,25.707493 C 45.499994,22.337354 44.427882,20.293974 42.400259,17.851283 L 40.499999,15.562027 L 7.5118983,15.562027 z" + id="path2231" + sodipodi:nodetypes="czzcczzcc" /> + <path + sodipodi:nodetypes="ccccccc" + id="rect2428" + d="M 44.499999,32.499527 L 44.499999,34.499527 C 44.499999,35.018344 44.018816,35.499527 43.499999,35.499527 L 4.4999995,35.499527 C 3.9811835,35.499527 3.5000005,35.018344 3.5000005,34.499527 L 3.5000005,32.499527 L 44.499999,32.499527 z" + style="opacity:0.07999998;fill:none;fill-opacity:1;stroke:url(#linearGradient7822);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" /> + <rect + y="15.499414" + x="9.4998884" + height="10.000113" + width="29.000111" + id="rect2319" + style="opacity:1;fill:url(#linearGradient7852);fill-opacity:1;stroke:#2e3436;stroke-width:0.99977696;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;enable-background:new" + ry="0.5" + rx="0.5078125" /> + <path + style="fill:url(#linearGradient7587);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7641);stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 12.119999,0.49952878 L 35.879981,0.49952878 C 36.77746,0.49952878 37.49998,1.1652828 37.49998,1.9995288 L 37.499982,16.686439 L 10.500001,16.682533 L 10.499999,1.9995288 C 10.499999,1.1652828 11.222519,0.49952878 12.119999,0.49952878 z" + id="rect2233" + sodipodi:nodetypes="ccccccc" /> + <rect + style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99987608;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect2256" + width="25.000061" + height="15.000061" + x="11.5" + y="1.4995297" + rx="0.62364459" + ry="0.52842641" /> + <rect + style="opacity:1;fill:url(#linearGradient2322);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2324);stroke-width:1.00000012;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect2320" + width="2.9999998" + height="2" + x="41" + y="26.499527" + rx="0.99999988" + ry="1" /> + <path + style="fill:url(#linearGradient3338);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3340);stroke-width:0.99999976;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 9.1935479,29.499527 L 38.806452,29.499527 C 39.770137,29.499527 40.500001,30.347165 40.500001,31.232527 L 40.500001,37.499526 L 7.4999999,37.499537 L 7.4999999,31.232527 C 7.4999999,30.245278 8.273658,29.499527 9.1935479,29.499527 z" + id="path3330" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3334);stroke-width:0.99999976;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 9.3063922,30.539527 C 8.8526427,30.539527 8.5000007,30.836089 8.5000007,31.349527 L 8.5000007,36.499525 L 39.5,36.499525 L 39.5,31.349527 C 39.5,30.95625 39.150633,30.539527 38.693609,30.539527 L 9.3063922,30.539527 z" + id="path3336" + sodipodi:nodetypes="ccccccc" /> + <rect + style="opacity:1;fill:url(#linearGradient7597);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect7589" + width="1.5468748" + height="0.35937488" + x="41.734375" + y="27.108902" + rx="0.51562488" + ry="0.17968744" /> + <rect + style="opacity:0.15;fill:url(#linearGradient7650);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-opacity:0;display:inline" + id="rect7639" + width="28" + height="2" + x="10" + y="13.999525" + rx="0" + ry="0" /> + <rect + y="17.499899" + x="10.500184" + height="6.9996305" + width="26.999687" + id="rect2459" + style="opacity:0.24313725;fill:none;fill-opacity:1;stroke:url(#linearGradient8678);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;enable-background:new" /> + <path + style="fill:#888a85;fill-opacity:0.75;fill-rule:evenodd;stroke:#2e3436;stroke-width:0.99994069;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;enable-background:new" + d="M 10.499969,16.499557 L 37.500087,16.499557" + id="path2259" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="ccccc" + id="rect2440" + d="M 10,16.999527 L 37.999999,16.999527 L 37.999999,19.992919 C 31.538461,18.989615 14.846153,17.986311 10,21.999527 L 10,16.999527 z" + style="opacity:0.2627451;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/gtk-edit.svg b/icons/PyHoca/scalable/gtk-edit.svg new file mode 100644 index 0000000..513eca2 --- /dev/null +++ b/icons/PyHoca/scalable/gtk-edit.svg @@ -0,0 +1,788 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg10316" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="gtk-edit.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs10318"> + <linearGradient + id="linearGradient4099-6-7" + inkscape:collect="always"> + <stop + id="stop4101-1-8" + offset="0" + style="stop-color:#dddddd;stop-opacity:1;" /> + <stop + style="stop-color:#ffffff;stop-opacity:1" + offset="0.34467545" + id="stop4107-2-2" /> + <stop + id="stop4109-5-7" + offset="0.72694808" + style="stop-color:#737373;stop-opacity:1" /> + <stop + id="stop4103-9-2" + offset="1" + style="stop-color:#bbbbbb;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4099-6-7" + id="linearGradient649" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.1892115,-0.1892253,0.1892115,0.1892253,49.738733,-37.732231)" + x1="-158.75" + y1="115.93846" + x2="-158.75" + y2="134.25" /> + <linearGradient + id="linearGradient4117-1-0" + inkscape:collect="always"> + <stop + style="stop-color:#f9a9a9;stop-opacity:1" + offset="0" + id="stop4121-0-5" /> + <stop + style="stop-color:#ab5f5f;stop-opacity:1" + offset="1" + id="stop4119-1-6" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4117-1-0" + id="radialGradient691" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.320394,-0.3203948,0.322414,0.3224148,50.518433,-74.157887)" + cx="-138.83727" + cy="128.00087" + fx="-138.83727" + fy="128.00087" + r="9.1267023" /> + <linearGradient + id="linearGradient6437" + inkscape:collect="always"> + <stop + id="stop6439" + offset="0" + style="stop-color:#e9b96e;stop-opacity:1" /> + <stop + id="stop6441" + offset="1" + style="stop-color:#ffffff;stop-opacity:1" /> + </linearGradient> + <linearGradient + y2="32.714375" + x2="25.485056" + y1="34.389839" + x1="26.379272" + gradientUnits="userSpaceOnUse" + id="linearGradient6488" + xlink:href="#linearGradient6437" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + id="linearGradient2301"> + <stop + style="stop-color:#ce5c00;stop-opacity:1" + offset="0" + id="stop2303" /> + <stop + style="stop-color:#ce5c00" + offset="1" + id="stop2305" /> + </linearGradient> + <linearGradient + y2="22.118853" + x2="22.810215" + y1="21.481258" + x1="23.447809" + gradientTransform="translate(6.39225,12.18459)" + gradientUnits="userSpaceOnUse" + id="linearGradient6486" + xlink:href="#linearGradient2301" + inkscape:collect="always" /> + <linearGradient + id="linearGradient6445" + inkscape:collect="always"> + <stop + id="stop6447" + offset="0" + style="stop-color:#fcaf3e;stop-opacity:1" /> + <stop + id="stop6449" + offset="1" + style="stop-color:#ce5c00" /> + </linearGradient> + <linearGradient + y2="14.691495" + x2="30.432114" + y1="12.338078" + x1="28.078697" + gradientTransform="translate(6.39225,12.18459)" + gradientUnits="userSpaceOnUse" + id="linearGradient6484" + xlink:href="#linearGradient6445" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + id="linearGradient1813"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop1815" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop1817" /> + </linearGradient> + <linearGradient + y2="18.392296" + x2="32.9375" + y1="18.53828" + x1="18.1875" + gradientTransform="matrix(1,0,0,0.415008,6.5485,26.7669)" + gradientUnits="userSpaceOnUse" + id="linearGradient6482" + xlink:href="#linearGradient1813" + inkscape:collect="always" /> + <linearGradient + id="linearGradient4333" + inkscape:collect="always"> + <stop + id="stop4335" + offset="0" + style="stop-color:black;stop-opacity:1;" /> + <stop + id="stop4337" + offset="1" + style="stop-color:black;stop-opacity:0;" /> + </linearGradient> + <radialGradient + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.226496,0,25.67067)" + r="14.625" + fy="33.1875" + fx="37.375" + cy="33.1875" + cx="37.375" + id="radialGradient4339" + xlink:href="#linearGradient4333" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3656"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3658" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3660" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3656" + id="linearGradient5816" + gradientUnits="userSpaceOnUse" + x1="-26.753757" + y1="11.566258" + x2="-24.75" + y2="9.687501" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3520"> + <stop + style="stop-color:#000000;stop-opacity:0.41295547" + offset="0" + id="stop3522" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop3524" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3520" + id="linearGradient5836" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9223058,0,0,0.9185751,-92.447368,61.3257)" + x1="-18.588562" + y1="11.052948" + x2="-28.789402" + y2="14.069944" /> + <linearGradient + id="linearGradient3671"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3673" /> + <stop + id="stop3691" + offset="0.47533694" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3675" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3671" + id="radialGradient5839" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4073362,-0.2798276,0.7510293,1.0932492,-115.18484,51.56213)" + cx="-26.305403" + cy="10.108011" + fx="-26.305403" + fy="10.108011" + r="7.0421038" /> + <linearGradient + inkscape:collect="always" + id="linearGradient6469"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop6471" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop6473" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6469" + id="linearGradient6475" + x1="58.282169" + y1="70.751839" + x2="61.181217" + y2="67.799171" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-180,0)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3741"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3743" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3745" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3741" + id="radialGradient5810" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8860258,0,0,1.1764706,-3.5441033,-4.2352941)" + cx="4" + cy="5.2999997" + fx="4" + fy="5.2999997" + r="17" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3613"> + <stop + style="stop-color:#888a85;stop-opacity:1" + offset="0" + id="stop3615" /> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="1" + id="stop3617" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3613" + id="linearGradient5845" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-90,60)" + x1="-47.5" + y1="49.020683" + x2="-62.75" + y2="-22.502075" /> + <linearGradient + id="linearGradient3683"> + <stop + id="stop3685" + offset="0" + style="stop-color:#f6f6f5;stop-opacity:1;" /> + <stop + id="stop3689" + offset="1" + style="stop-color:#d3d7cf;stop-opacity:1" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3683" + id="radialGradient5843" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.9957492,0,0,1.9350367,0.62141,28.832578)" + cx="-30.249996" + cy="35.357208" + fx="-30.249996" + fy="35.357208" + r="18.000002" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3702" + id="linearGradient5804" + gradientUnits="userSpaceOnUse" + x1="25.058096" + y1="47.027729" + x2="25.058096" + y2="39.999443" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3688" + id="radialGradient5802" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)" + cx="4.9929786" + cy="43.5" + fx="4.9929786" + fy="43.5" + r="2.5" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3688" + id="radialGradient5800" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)" + cx="4.9929786" + cy="43.5" + fx="4.9929786" + fy="43.5" + r="2.5" /> + <linearGradient + id="linearGradient3702"> + <stop + id="stop3704" + offset="0" + style="stop-color:black;stop-opacity:0;" /> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0.5" + id="stop3710" /> + <stop + id="stop3706" + offset="1" + style="stop-color:black;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3702" + id="linearGradient5798" + gradientUnits="userSpaceOnUse" + x1="25.058096" + y1="47.027729" + x2="25.058096" + y2="39.999443" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3688" + id="radialGradient5796" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)" + cx="4.9929786" + cy="43.5" + fx="4.9929786" + fy="43.5" + r="2.5" /> + <linearGradient + id="linearGradient3688" + inkscape:collect="always"> + <stop + id="stop3690" + offset="0" + style="stop-color:black;stop-opacity:1;" /> + <stop + id="stop3692" + offset="1" + style="stop-color:black;stop-opacity:0;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3688" + id="radialGradient5794" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)" + cx="4.9929786" + cy="43.5" + fx="4.9929786" + fy="43.5" + r="2.5" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="688" + inkscape:window-x="1037" + inkscape:window-y="25" /> + <metadata + id="metadata10321"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + style="display:inline" + id="g6015" + transform="translate(150,-60)"> + <rect + y="60" + x="-150" + height="48" + width="48" + id="rect5504" + style="opacity:0;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;display:inline" /> + <g + transform="matrix(1.0464281,0,0,0.8888889,-151.18572,65.72224)" + inkscape:label="Shadow" + id="g5508" + style="opacity:0.65587045;display:inline"> + <g + transform="matrix(1.052632,0,0,1.285713,-1.263158,-13.42854)" + style="opacity:0.4" + id="g5511"> + <rect + style="opacity:1;fill:url(#radialGradient5794);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5513" + width="5" + height="7" + x="38" + y="40" /> + <rect + style="opacity:1;fill:url(#radialGradient5796);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5515" + width="5" + height="7" + x="-10" + y="-47" + transform="scale(-1,-1)" /> + <rect + style="opacity:1;fill:url(#linearGradient5798);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5517" + width="28" + height="7.0000005" + x="10" + y="40" /> + </g> + </g> + <g + transform="matrix(0.9548466,0,0,0.5555562,-148.98776,79.888875)" + inkscape:label="Shadow" + id="g5519" + style="display:inline"> + <g + transform="matrix(1.052632,0,0,1.285713,-1.263158,-13.42854)" + style="opacity:0.4" + id="g5521"> + <rect + style="opacity:1;fill:url(#radialGradient5800);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5523" + width="5" + height="7" + x="38" + y="40" /> + <rect + style="opacity:1;fill:url(#radialGradient5802);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5525" + width="5" + height="7" + x="-10" + y="-47" + transform="scale(-1,-1)" /> + <rect + style="opacity:1;fill:url(#linearGradient5804);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5527" + width="28" + height="7.0000005" + x="10" + y="40" /> + </g> + </g> + <path + sodipodi:nodetypes="ccsccccccc" + id="path5529" + d="M -141.47614,63.5 C -141.47614,63.5 -124,63.5 -122.5,63.5 C -118.62295,63.572942 -116,66 -113.5,68.5 C -111,71 -108.89232,73.752625 -108.5,77.5 C -108.5,79 -108.5,102.47614 -108.5,102.47614 C -108.5,103.59736 -109.40264,104.5 -110.52385,104.5 L -141.47614,104.5 C -142.59736,104.5 -143.5,103.59736 -143.5,102.47614 L -143.5,65.523858 C -143.5,64.402641 -142.59736,63.5 -141.47614,63.5 z" + style="fill:url(#radialGradient5843);fill-opacity:1;stroke:url(#linearGradient5845);stroke-width:1;stroke-miterlimit:4;display:inline" /> + <path + transform="translate(-150,60)" + d="M 8.53125,4 C 7.6730803,4 7,4.6730802 7,5.53125 L 7,42.46875 C 7,43.32692 7.6730802,44 8.53125,44 L 39.46875,44 C 40.326919,44 41,43.326918 41,42.46875 C 41,42.46875 41,19 41,17.5 C 41,16.10803 40.513021,13.200521 38.65625,11.34375 C 36.65625,9.34375 35.65625,8.34375 33.65625,6.34375 C 31.799479,4.4869792 28.89197,4 27.5,4 C 26,4 8.53125,4 8.53125,4 z" + id="path5531" + style="opacity:0.68016196;fill:url(#radialGradient5810);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;display:inline" + inkscape:original="M 8.53125 3.5 C 7.410033 3.5 6.5 4.4100329 6.5 5.53125 L 6.5 42.46875 C 6.5 43.589967 7.4100329 44.5 8.53125 44.5 L 39.46875 44.5 C 40.589967 44.5 41.5 43.589966 41.5 42.46875 C 41.5 42.46875 41.5 19 41.5 17.5 C 41.5 16 41 13 39 11 C 37 9 36 8 34 6 C 32 4 29 3.5 27.5 3.5 C 26 3.5 8.5312499 3.5 8.53125 3.5 z " + inkscape:radius="-0.4861359" + sodipodi:type="inkscape:offset" /> + <path + id="rect5857" + d="M -138.59375,69.125 C -138.81243,69.125 -139,69.312565 -139,69.53125 C -139,69.749934 -138.81243,69.937499 -138.59375,69.9375 L -117.40625,69.9375 C -117.18757,69.9375 -117,69.749934 -117,69.53125 C -117,69.312566 -117.18757,69.125 -117.40625,69.125 L -138.59375,69.125 z M -138.53125,71.0625 C -138.79094,71.0625 -139,71.271563 -139,71.53125 C -139,71.790937 -138.79094,72 -138.53125,72 L -116.46875,72 C -116.20906,72 -116,71.790937 -116,71.53125 C -116,71.271563 -116.20906,71.0625 -116.46875,71.0625 L -138.53125,71.0625 z M -138.53125,73.0625 C -138.79094,73.0625 -139,73.271563 -139,73.53125 C -139,73.790937 -138.79094,74 -138.53125,74 L -113.34375,74 C -113.08406,74 -112.875,73.790937 -112.875,73.53125 C -112.875,73.271563 -113.08406,73.0625 -113.34375,73.0625 L -138.53125,73.0625 z M -138.53125,75.0625 C -138.79094,75.0625 -139,75.271563 -139,75.53125 C -139,75.790937 -138.79094,76 -138.53125,76 L -113.34375,76 C -113.08406,76 -112.875,75.790937 -112.875,75.5312 5 C -112 .875,75.271563 -113.08406,75.0625 -113.34375,75.0625 L -138.53125,75.0625 z M -138.53125,77.0625 C -138.79094,77.0625 -139,77.271563 -139,77.53125 C -139,77.790937 -138.79094,78 -138.53125,78 L -113.34375,78 C -113.08406,78 -112.875,77.790937 -112.875,77.53125 C -112.875,77.271563 -113.08406,77.0625 -113.34375,77.0625 L -138.53125,77.0625 z" + style="opacity:0.15;fill:url(#linearGradient6475);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + sodipodi:nodetypes="ccccczc" + id="path5533" + d="M -122.5,64 C -123.88889,64 -122.54207,64.497088 -121.15625,65.125 C -119.77043,65.752912 -116.18337,68.340052 -117,72 C -112.67669,71.569417 -110.32087,75.122378 -110,76.28125 C -109.67913,77.440122 -109,78.888889 -109,77.5 C -108.97167,73.694419 -111.84543,71.068299 -113.84375,68.84375 C -115.84207,66.619201 -118.84621,64.476761 -122.5,64 z" + style="fill:url(#radialGradient5839);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;display:inline" /> + <path + sodipodi:nodetypes="ccccc" + id="path5535" + d="M -121.39912,65.014353 C -120.47682,65.014353 -118.39068,71.210015 -119.31298,75.343603 C -115.01802,74.915844 -110.4596,75.43178 -110,76.28125 C -110.32087,75.122378 -112.67669,71.569417 -117,72 C -116.13534,68.124761 -120.18657,65.382702 -121.39912,65.014353 z" + style="opacity:0.87854249;fill:url(#linearGradient5836);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;display:inline" /> + <path + transform="translate(-90,60)" + d="M -51.46875,4.5 C -52.051916,4.5 -52.5,4.9480842 -52.5,5.53125 L -52.5,42.46875 C -52.5,43.051915 -52.051914,43.5 -51.46875,43.5 L -20.53125,43.5 C -19.948085,43.5 -19.5,43.051914 -19.5,42.46875 C -19.5,42.46875 -19.5,19 -19.5,17.5 C -19.5,16.220971 -19.980469,13.394531 -21.6875,11.6875 C -23.6875,9.6875 -24.6875,8.6875 -26.6875,6.6875 C -28.394531,4.9804687 -31.220971,4.5 -32.5,4.5 C -34,4.5 -51.46875,4.5 -51.46875,4.5 z" + id="path5537" + style="fill:none;fill-opacity:1;stroke:url(#linearGradient5816);stroke-width:1;stroke-miterlimit:4;display:inline" + inkscape:original="M -51.46875 3.5 C -52.589967 3.5 -53.5 4.4100329 -53.5 5.53125 L -53.5 42.46875 C -53.5 43.589967 -52.589966 44.5 -51.46875 44.5 L -20.53125 44.5 C -19.410033 44.5 -18.5 43.589966 -18.5 42.46875 C -18.5 42.46875 -18.5 19 -18.5 17.5 C -18.5 16 -19 13 -21 11 C -23 9 -24 8 -26 6 C -28 4 -31 3.5 -32.5 3.5 C -34 3.5 -51.468749 3.5 -51.46875 3.5 z " + inkscape:radius="-0.99436891" + sodipodi:type="inkscape:offset" /> + <g + inkscape:r_cy="true" + inkscape:r_cx="true" + transform="matrix(0.928889,0,0,1,-148.28889,60)" + style="opacity:0.15;fill:#000000;display:inline" + id="g5539"> + <rect + ry="0.46875" + rx="0.50463516" + inkscape:r_cy="true" + inkscape:r_cx="true" + y="19.0625" + x="10" + height="0.9375" + width="28.125" + id="rect5549" + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <rect + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect5553" + width="28.125" + height="0.9375" + x="10" + y="21.0625" + inkscape:r_cx="true" + inkscape:r_cy="true" + rx="0.50463516" + ry="0.46875" /> + <rect + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect5555" + width="28.125" + height="0.9375" + x="10" + y="23.0625" + inkscape:r_cx="true" + inkscape:r_cy="true" + rx="0.50463516" + ry="0.46875" /> + <rect + ry="0.46875" + rx="0.50463516" + inkscape:r_cy="true" + inkscape:r_cx="true" + y="25.0625" + x="10" + height="0.9375" + width="28.125" + id="rect5557" + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <rect + ry="0.46875" + rx="0.50463516" + inkscape:r_cy="true" + inkscape:r_cx="true" + y="27.0625" + x="10" + height="0.9375" + width="28.125" + id="rect5559" + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <rect + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect5561" + width="28.125" + height="0.9375" + x="10" + y="29.0625" + inkscape:r_cx="true" + inkscape:r_cy="true" + rx="0.50463516" + ry="0.46875" /> + <rect + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect5563" + width="28.125" + height="0.9375" + x="10" + y="31.0625" + inkscape:r_cx="true" + inkscape:r_cy="true" + rx="0.50463516" + ry="0.46875" /> + <rect + ry="0.46875" + rx="0.50463516" + inkscape:r_cy="true" + inkscape:r_cx="true" + y="33.0625" + x="10" + height="0.9375" + width="28.125" + id="rect5565" + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <rect + ry="0.46875" + rx="0.50463516" + inkscape:r_cy="true" + inkscape:r_cx="true" + y="35.0625" + x="10" + height="0.9375" + width="28.125" + id="rect5567" + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <rect + ry="0.46875" + rx="1.0051866" + inkscape:r_cy="true" + inkscape:r_cx="true" + y="37.0625" + x="10" + height="0.9375" + width="12.918659" + id="rect5569" + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + </g> + </g> + <g + id="g7666" + transform="matrix(1.0512963,0,0,0.4615385,-3.154159,26.269239)" + style="opacity:0.5" /> + <g + style="display:inline;enable-background:new" + id="layer1-7" + inkscape:label="Livello 1" + transform="matrix(1.0000135,0,0,1,-2.000297,2.000003)"> + <g + style="opacity:0.4" + transform="matrix(1.0416677,0,0,0.4579337,-0.9375015,24.411627)" + id="g3425" /> + <path + transform="matrix(0.897436,0,0,0.981132,1.333333,1.688679)" + d="M 52,33.1875 A 14.625,3.3125 0 1 1 22.75,33.1875 A 14.625,3.3125 0 1 1 52,33.1875 z" + sodipodi:ry="3.3125" + sodipodi:rx="14.625" + sodipodi:cy="33.1875" + sodipodi:cx="37.375" + id="path4331" + style="opacity:0.07000002;fill:url(#radialGradient4339);fill-opacity:1;stroke:none" + sodipodi:type="arc" /> + <g + transform="translate(-1.75,-1)" + id="g2894" /> + <g + transform="translate(-2,-1)" + id="g2814" /> + <g + transform="translate(60.78337,49.43458)" + style="display:inline" + inkscape:label="base" + id="g2637" /> + <g + transform="translate(0,-1)" + style="opacity:0.6" + id="g2953" /> + <g + id="g6471"> + <path + sodipodi:nodetypes="cccccccccc" + style="opacity:0.4;fill:url(#linearGradient6482);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" + d="M 41.07975,28.46584 L 26.07975,32.938753 L 25.95475,33.003593 L 25.861,33.081403 L 23.111,35.934581 L 30.5485,35.091597 L 30.82975,35.065657 L 31.01725,34.987847 L 41.07975,32.304654 L 41.07975,28.465833 L 41.07975,28.46584 L 41.07975,28.46584 z" + id="path2334" /> + <g + id="g6462"> + <g + id="g6458"> + <path + sodipodi:nodetypes="ccccccc" + id="path2273" + d="M 25.89225,30.18459 L 44.89225,11.18459 C 47.067299,11.544551 47.976969,12.916815 48.39225,14.68459 L 29.39225,33.68459 L 24.776133,34.389095 L 25.89225,30.18459 L 25.89225,30.18459 L 25.89225,30.18459 z" + style="fill:url(#linearGradient6484);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6486);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccccccc" + id="path2313" + d="M 26.792248,30.68459 L 45.289998,12.286842 C 46.379743,12.465277 46.807259,13.274786 47.289998,14.286842 L 28.89225,32.784592 L 25.592247,33.684593 L 26.792248,30.68459 L 26.792248,30.68459 L 26.792248,30.68459 z" + style="opacity:0.28235294;fill:none;stroke:#ffffff;stroke-width:1.0000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> + </g> + <g + id="g6451"> + <path + sodipodi:nodetypes="cczcc" + id="path2298" + d="M 24.549577,34.633026 L 26.215899,30.452717 C 26.215899,30.452717 27.415434,30.698077 28.148076,31.427806 C 28.880718,32.157535 29.146467,33.371634 29.146467,33.371634 L 24.549577,34.633026 z" + style="fill:url(#linearGradient6488);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + transform="translate(6.39225,12.18459)" + sodipodi:nodetypes="ccc" + id="path5446" + d="M 23,21.5 L 17.5,23 L 19.5,18" + style="fill:none;stroke:#e9b96e;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + id="path2283" + d="M 23.95475,33.68459 L 23.0485,35.93459 L 25.39225,35.27834 C 25.39425,35.2465 25.39225,35.21693 25.39225,35.18459 C 25.39225,34.382465 24.746942,33.724789 23.95475,33.68459 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" + sodipodi:nodetypes="cccsc" /> + </g> + </g> + </g> + <path + style="fill:url(#radialGradient691);fill-opacity:1;fill-rule:nonzero;stroke:#ef2929;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" + d="M 42.821682,13.147263 C 44.655834,12.646732 46.706734,14.798738 46.271593,16.597182 L 48.46699,14.40178 C 49.533501,11.935217 47.334738,9.9920671 44.972276,10.907057 L 42.821682,13.147263 L 42.821682,13.147263 z" + id="path4113-1" + sodipodi:nodetypes="ccccc" /> + <path + sodipodi:nodetypes="ccccc" + id="path4095-8" + d="M 40.561976,15.25084 C 42.498424,14.722356 44.663708,16.994546 44.204297,18.893426 L 46.522138,16.575416 C 47.276595,14.97964 44.477505,12.237921 42.832513,12.885525 L 40.561976,15.25084 L 40.561976,15.25084 z" + style="fill:url(#linearGradient649);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" /> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/list-add.svg b/icons/PyHoca/scalable/list-add.svg new file mode 100644 index 0000000..5c23d09 --- /dev/null +++ b/icons/PyHoca/scalable/list-add.svg @@ -0,0 +1,256 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7206" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="list-add.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7208"> + <linearGradient + inkscape:collect="always" + id="linearGradient4222"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4224" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop4226" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4222" + id="linearGradient2785" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0724657,0,0,1.0724657,-1.2644573,-1.32954)" + x1="15.25967" + y1="0.90033573" + x2="38.399845" + y2="42.305672" /> + <linearGradient + inkscape:collect="always" + id="linearGradient8002"> + <stop + style="stop-color:#789e2d;stop-opacity:1" + offset="0" + id="stop8004" /> + <stop + style="stop-color:#42770c;stop-opacity:1" + offset="1" + id="stop8006" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient8002" + id="linearGradient8008" + x1="22.142857" + y1="5" + x2="22" + y2="42.57143" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient2264"> + <stop + style="stop-color:#b8d67a;stop-opacity:1" + offset="0" + id="stop2266" /> + <stop + id="stop7998" + offset="0.25" + style="stop-color:#a7cc5c;stop-opacity:1" /> + <stop + style="stop-color:#789e2d;stop-opacity:1" + offset="0.68000001" + id="stop8000" /> + <stop + style="stop-color:#42770c;stop-opacity:1" + offset="1" + id="stop2268" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2264" + id="radialGradient7996" + cx="24" + cy="5" + fx="24" + fy="5" + r="19" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1.3100728e-8,2.2593985,-4.0026986,0,44.013493,-49.225564)" /> + <linearGradient + id="linearGradient7577"> + <stop + style="stop-color:#000000;stop-opacity:0.3137255;" + offset="0" + id="stop7579" /> + <stop + style="stop-color:#000000;stop-opacity:0.31" + offset="1" + id="stop7581" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7577" + id="linearGradient7386" + gradientUnits="userSpaceOnUse" + x1="23.563137" + y1="31.488117" + x2="23.563137" + y2="36.89304" + gradientTransform="matrix(1.1449541,0,0,1.8604651,-2.9788993,-40.500001)" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="690" + inkscape:window-x="0" + inkscape:window-y="25" /> + <metadata + id="metadata7211"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <path + sodipodi:nodetypes="ccccccccccccccccccccc" + id="path7342" + d="M 6,17 C 4.020574,17.022097 4.022097,17 4,19 L 4,29 C 4.066292,30.934502 4.064762,30.977903 6,31 L 17,31 L 17,42 C 16.95956,43.948298 17.051702,44 19,44 L 29,44 C 31.036686,44 31.04044,44 31,42 L 31,31 L 42,31 C 44,31 44,31.044987 44,29 L 44,19 C 44.044194,17.043401 44.045725,17.022097 42,17 L 31,17 L 31,6 C 31,4.145833 31,4 29,4 L 19,4 C 17.145833,4 17.041667,4 17,6 L 17,17 L 6,17 z" + style="opacity:0.3;fill:url(#linearGradient7386);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> + <g + id="layer6" + inkscape:label="Shadow" + transform="translate(-77.633592,-36.5046)" /> + <g + style="display:inline" + inkscape:label="Base" + id="g2170" + transform="translate(-77.633592,-36.5046)" /> + <g + inkscape:label="Layer 1" + id="g5398" + transform="translate(-206.16377,-7.977602)" /> + <g + id="layer5" + inkscape:label="shadiw" + transform="translate(-206.16377,-7.977602)" /> + <g + id="layer4" + inkscape:label="white" + transform="translate(-206.16377,-7.977602)" /> + <g + transform="translate(-285.16138,-16.332446)" + style="display:inline" + id="g3678" + inkscape:label="Layer 1" /> + <g + transform="translate(-285.16138,-16.332446)" + inkscape:label="bottom" + id="g3680" /> + <g + transform="translate(-285.16138,-16.332446)" + style="display:inline" + inkscape:label="back" + id="layer2" /> + <g + id="g3698" + inkscape:label="shadiw" + transform="translate(-128.63708,-7.424841)" /> + <g + id="g3760" + inkscape:label="shadiw" + transform="translate(39.691618,-2.164572)" /> + <g + transform="translate(-314.49797,-42.377569)" + inkscape:label="Shadow" + id="g5431" /> + <g + transform="translate(-314.49797,-42.377569)" + id="g4258" + inkscape:label="Base" + style="display:inline" /> + <g + transform="translate(-314.49797,-42.377569)" + inkscape:label="new" + id="g5440" /> + <g + transform="translate(-283.06086,-28.136472)" + style="display:inline" + id="g3928" + inkscape:label="Layer 1" /> + <g + transform="translate(-283.06086,-28.136472)" + inkscape:label="bottom" + id="g3930" /> + <g + transform="translate(-283.06086,-28.136472)" + style="display:inline" + inkscape:label="back" + id="g3932" /> + <g + id="g3934" + inkscape:label="shadiw" + transform="translate(-126.53656,-19.228866)" /> + <g + id="g3936" + inkscape:label="shadiw" + transform="translate(41.792138,-13.968597)" /> + <g + transform="translate(-312.39745,-54.181595)" + inkscape:label="Shadow" + id="g3961" /> + <g + transform="translate(-312.39745,-54.181595)" + id="g3963" + inkscape:label="Base" + style="display:inline" /> + <g + transform="translate(-312.39745,-54.181595)" + inkscape:label="new" + id="layer7" /> + <path + style="fill:url(#radialGradient7996);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8008);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 18.5,18.5 L 18.5,5.5 L 29.5,5.5 L 29.5,18.5 L 42.5,18.5 L 42.5,29.5 L 29.5,29.5 L 29.5,42.5 L 18.5,42.5 L 18.5,29.5 L 5.5,29.5 L 5.5,18.5 L 18.5,18.5 z" + id="path2262" + sodipodi:nodetypes="ccccccccccccc" /> + <path + style="opacity:0.5;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2785);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 19.5,19.5 L 19.5,6.5 L 28.5,6.5 L 28.5,19.5 L 41.5,19.5 L 41.5,28.5 L 28.5,28.5 L 28.5,41.5 L 19.5,41.5 L 19.5,28.5 L 6.5,28.5 L 6.5,19.5 L 19.5,19.5 z" + id="path2272" + sodipodi:nodetypes="ccccccccccccc" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/locked.svg b/icons/PyHoca/scalable/locked.svg new file mode 100644 index 0000000..d648e80 --- /dev/null +++ b/icons/PyHoca/scalable/locked.svg @@ -0,0 +1,534 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7373" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7375"> + <filter + inkscape:collect="always" + x="-0.085115738" + width="1.1702315" + y="-0.4135721" + height="1.8271442" + id="filter6328"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.42546784" + id="feGaussianBlur6330" /> + </filter> + <linearGradient + inkscape:collect="always" + id="linearGradient6057"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop6059" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop6061" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6057" + id="radialGradient6071" + gradientUnits="userSpaceOnUse" + cx="18.031223" + cy="6.2806997" + fx="18.031223" + fy="6.2806997" + r="3.1819806" /> + <filter + inkscape:collect="always" + x="-0.49411764" + width="1.9882353" + y="-0.082352942" + height="1.1647059" + id="filter5957"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.69878785" + id="feGaussianBlur5959" /> + </filter> + <linearGradient + id="linearGradient12071" + inkscape:collect="always"> + <stop + id="stop12073" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop12075" + offset="1" + style="stop-color:#ffffff;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient12071" + id="linearGradient1387" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9697914,0,0,0.951923,2.2265649,4.0339473)" + x1="21.941509" + y1="21.550869" + x2="21.941509" + y2="18.037588" /> + <filter + inkscape:collect="always" + id="filter5745"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.8362597" + id="feGaussianBlur5747" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6227" + id="linearGradient6334" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-19.532826,1.7437184)" + x1="32.128025" + y1="13.789077" + x2="35.020981" + y2="13.789077" /> + <filter + inkscape:collect="always" + x="-0.24242527" + width="1.4848505" + y="-0.047579074" + height="1.0951581" + id="filter6251"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.24444548" + id="feGaussianBlur6253" /> + </filter> + <linearGradient + inkscape:collect="always" + id="linearGradient6227"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop6229" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop6231" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6227" + id="linearGradient6233" + x1="35.004684" + y1="14.849737" + x2="33.004314" + y2="14.849737" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(1.6824037,1.125)" /> + <linearGradient + id="linearGradient10591"> + <stop + id="stop10593" + offset="0.0000000" + style="stop-color:#cad0c6;stop-opacity:1.0000000;" /> + <stop + style="stop-color:#eaece9;stop-opacity:1.0000000;" + offset="0.50000000" + id="stop10599" /> + <stop + id="stop10595" + offset="1.0000000" + style="stop-color:#c5cbc0;stop-opacity:1.0000000;" /> + </linearGradient> + <linearGradient + y2="17.470011" + x2="27.192274" + y1="2.9136841" + x1="10.650842" + gradientTransform="translate(0,-1.926279)" + gradientUnits="userSpaceOnUse" + id="linearGradient1392" + xlink:href="#linearGradient10591" + inkscape:collect="always" /> + <filter + inkscape:collect="always" + x="-0.14143888" + width="1.2828778" + y="-1.5218824" + height="4.0437647" + id="filter6171"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.1889706" + id="feGaussianBlur6173" /> + </filter> + <linearGradient + id="linearGradient6089"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop6091" /> + <stop + id="stop6097" + offset="0.5" + style="stop-color:#000000;stop-opacity:0.17171717;" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="1" + id="stop6093" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6089" + id="linearGradient6095" + x1="17.1875" + y1="20.09375" + x2="34" + y2="20.09375" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-1.25e-7,-0.4998777)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6075" + id="radialGradient6085" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.5849057,0,8.4316038)" + cx="15.9375" + cy="20.3125" + fx="15.9375" + fy="20.3125" + r="3.3125" /> + <linearGradient + inkscape:collect="always" + id="linearGradient6075"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop6077" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop6079" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6075" + id="radialGradient6081" + cx="15.9375" + cy="20.3125" + fx="15.9375" + fy="20.3125" + r="3.3125" + gradientTransform="matrix(1,0,0,0.5849057,0,8.4316038)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient5881"> + <stop + id="stop5883" + offset="0" + style="stop-color:#fffac7;stop-opacity:1;" /> + <stop + style="stop-color:#fff8b2;stop-opacity:1;" + offset="1" + id="stop5885" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5881" + id="linearGradient1591" + x1="24.875" + y1="21" + x2="24.75" + y2="17" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9706798,0,0,1.5,2.2052409,-7.4998763)" /> + <linearGradient + id="linearGradient9845"> + <stop + id="stop9847" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop9849" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.49484536;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient9845" + id="linearGradient1575" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.968931,0,0,1.1176137,2.2618789,-4.094888)" + x1="10.907269" + y1="25.002281" + x2="30.875446" + y2="36.127281" /> + <linearGradient + id="linearGradient6215"> + <stop + id="stop6217" + offset="0" + style="stop-color:#ead200;stop-opacity:1;" /> + <stop + style="stop-color:#fff16a;stop-opacity:1;" + offset="0.20999999" + id="stop6219" /> + <stop + id="stop6221" + offset="0.83999997" + style="stop-color:#b5a300;stop-opacity:1;" /> + <stop + id="stop6223" + offset="1" + style="stop-color:#e8d000;stop-opacity:1;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6215" + id="linearGradient6225" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9715125,0,0,1.1298556,2.1851679,-5.9390134)" + x1="6.72682" + y1="32.161697" + x2="40.938126" + y2="32.161697" /> + <filter + inkscape:collect="always" + x="-0.074990261" + width="1.1499805" + y="-0.47181373" + height="1.9436275" + id="filter6051"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.4154412" + id="feGaussianBlur6053" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="690" + inkscape:window-x="1037" + inkscape:window-y="25" /> + <metadata + id="metadata7378"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <rect + style="opacity:0.45882353;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter6051);enable-background:accumulate" + id="rect5961" + width="37.75" + height="6" + x="6.25" + y="39.75" + rx="3.1708715" + ry="1.9748279" + transform="matrix(1.0264901,0,0,1,-0.1655631,1.2231888e-4)" /> + <path + style="fill:url(#linearGradient6225);fill-opacity:1;fill-rule:evenodd;stroke:#7d6400;stroke-width:0.99999952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" + d="M 10.671306,17.500122 C 20.465852,16.056723 30.364614,16.280806 40.32558,17.500122 C 41.528484,17.500122 42.496886,18.543692 42.496886,19.839966 L 42.496886,43.160278 C 42.496886,44.456552 41.465984,45.312622 40.32558,45.500122 C 29.998397,46.708725 21.143531,46.699184 10.671306,45.500122 C 9.2809019,45.062622 8.4999999,44.456552 8.4999999,43.160278 L 8.4999999,19.839966 C 8.4999999,18.543692 9.4684019,17.500122 10.671306,17.500122 z" + id="rect1314" + sodipodi:nodetypes="ccccccccc" /> + <g + id="g4695" + transform="translate(-1.25e-7,1.2231888e-4)"> + <path + sodipodi:nodetypes="cscscc" + id="path6193" + d="M 41.940271,24.444505 C 41.542065,25.774817 37.406119,26.114917 36.638195,26.217936 C 36.638195,26.217936 20.32932,26.698408 20.32932,26.698408 C 20.32932,26.698408 36.59256,26.857542 36.59256,26.857542 C 37.418473,26.760419 41.811211,26.960931 42.02866,25.151612 L 41.940271,24.444505 z" + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 41.940271,26.444505 C 41.542065,27.774817 37.406119,28.114917 36.638195,28.217936 C 36.638195,28.217936 17.57932,28.698408 17.57932,28.698408 C 17.57932,28.698408 36.59256,28.857542 36.59256,28.857542 C 37.418473,28.760419 41.811211,28.960931 42.02866,27.151612 L 41.940271,26.444505 z" + id="path4678" + sodipodi:nodetypes="cscscc" /> + <path + sodipodi:nodetypes="cscscc" + id="path4680" + d="M 41.940271,28.444505 C 41.542065,29.774817 37.406119,30.114917 36.638195,30.217936 C 36.638195,30.217936 20.32932,30.698408 20.32932,30.698408 C 20.32932,30.698408 36.59256,30.857542 36.59256,30.857542 C 37.418473,30.760419 41.811211,30.960931 42.02866,29.151612 L 41.940271,28.444505 z" + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 41.940271,30.444505 C 41.542065,31.774817 37.406119,32.114917 36.638195,32.217936 C 36.638195,32.217936 25.57932,32.698408 25.57932,32.698408 C 25.57932,32.698408 36.59256,32.857542 36.59256,32.857542 C 37.418473,32.760419 41.811211,32.960931 42.02866,31.151612 L 41.940271,30.444505 z" + id="path4682" + sodipodi:nodetypes="cscscc" /> + <path + sodipodi:nodetypes="cscscc" + id="path4684" + d="M 41.940271,32.444505 C 41.542065,33.774817 37.406119,34.114917 36.638195,34.217936 C 36.638195,34.217936 20.32932,34.698408 20.32932,34.698408 C 20.32932,34.698408 36.59256,34.857542 36.59256,34.857542 C 37.418473,34.760419 41.811211,34.960931 42.02866,33.151612 L 41.940271,32.444505 z" + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 41.940271,34.444505 C 41.542065,35.774817 37.406119,36.114917 36.638195,36.217936 C 36.638195,36.217936 17.89182,36.698408 17.89182,36.698408 C 17.89182,36.698408 36.59256,36.857542 36.59256,36.857542 C 37.418473,36.760419 41.811211,36.960931 42.02866,35.151612 L 41.940271,34.444505 z" + id="path4686" + sodipodi:nodetypes="cscscc" /> + <path + sodipodi:nodetypes="cscscc" + id="path4688" + d="M 41.940271,36.444505 C 41.542065,37.774817 37.406119,38.114917 36.638195,38.217936 C 36.638195,38.217936 22.64182,38.698408 22.64182,38.698408 C 22.64182,38.698408 36.59256,38.857542 36.59256,38.857542 C 37.418473,38.760419 41.811211,38.960931 42.02866,37.151612 L 41.940271,36.444505 z" + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 41.940271,38.444505 C 41.542065,39.774817 37.406119,40.114917 36.638195,40.217936 C 36.638195,40.217936 28.20432,40.698408 28.20432,40.698408 C 28.20432,40.698408 36.59256,40.857542 36.59256,40.857542 C 37.418473,40.760419 41.811211,40.960931 42.02866,39.151612 L 41.940271,38.444505 z" + id="path4690" + sodipodi:nodetypes="cscscc" /> + <path + sodipodi:nodetypes="cscscc" + id="path4692" + d="M 41.940271,40.444505 C 41.542065,41.774817 37.406119,42.114917 36.638195,42.217936 C 36.638195,42.217936 20.32932,42.698408 20.32932,42.698408 C 20.32932,42.698408 36.59256,42.857542 36.59256,42.857542 C 37.418473,42.760419 41.811211,42.960931 42.02866,41.151612 L 41.940271,40.444505 z" + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + <path + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1575);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.60109289" + d="M 10.749588,18.995483 L 40.254432,18.995483 C 40.946703,18.995483 41.50402,19.581598 41.50402,20.309642 L 41.50402,43.185963 C 41.50402,43.914007 41.009203,44.250122 40.254432,44.500122 C 30.606984,45.703735 21.084536,45.700943 10.749588,44.500122 C 10.057316,44.250122 9.4999999,43.914007 9.4999999,43.185963 L 9.4999999,20.309642 C 9.4999999,19.581598 10.057316,18.995483 10.749588,18.995483 z" + id="rect6903" + sodipodi:nodetypes="ccccccccc" /> + <path + style="fill:url(#linearGradient1591);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 10.607725,18.000122 C 20.536946,16.539375 30.466165,16.799553 40.395386,18.000122 C 41.286066,18.000122 42.003112,18.717168 42.003112,19.607847 L 42.003112,22.392397 C 42.003112,23.283076 41.286066,24.000122 40.395386,24.000122 C 30.033657,24.690222 20.499962,24.443932 10.607725,24.000122 C 9.7170449,24.000122 8.9999999,23.283076 8.9999999,22.392397 L 8.9999999,19.607847 C 8.9999999,18.717168 9.7170449,18.000122 10.607725,18.000122 z" + id="rect1460" + sodipodi:nodetypes="ccccccccc" /> + <path + sodipodi:type="arc" + style="opacity:0.36470588;fill:url(#radialGradient6081);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6073" + sodipodi:cx="15.9375" + sodipodi:cy="20.3125" + sodipodi:rx="3.3125" + sodipodi:ry="1.9375" + d="M 19.25,20.3125 A 3.3125,1.9375 0 1 1 12.625,20.3125 A 3.3125,1.9375 0 1 1 19.25,20.3125 z" + transform="matrix(1.3870968,0,0,1.3870968,-6.1693551,-7.8627805)" /> + <path + transform="matrix(1.3870968,0,0,1.3870968,12.955645,-7.8627805)" + d="M 19.25,20.3125 A 3.3125,1.9375 0 1 1 12.625,20.3125 A 3.3125,1.9375 0 1 1 19.25,20.3125 z" + sodipodi:ry="1.9375" + sodipodi:rx="3.3125" + sodipodi:cy="20.3125" + sodipodi:cx="15.9375" + id="path6083" + style="opacity:0.34705882;fill:url(#radialGradient6085);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <rect + style="opacity:0.48235294;fill:url(#linearGradient6095);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter6171);enable-background:accumulate" + id="rect6087" + width="16.8125" + height="1.5625" + x="17.187498" + y="18.812622" + rx="0.78125" + ry="0.78125" /> + <g + id="g1387" + inkscape:r_cx="true" + inkscape:r_cy="true" + transform="matrix(0.8915815,0,0,1,4.0426599,-0.4919207)"> + <path + inkscape:r_cy="true" + inkscape:r_cx="true" + sodipodi:nodetypes="cczcccczccc" + id="path2086" + d="M 10.6402,20.234846 L 10.6402,14.5 C 10.6402,6.6298666 15.897609,2.8910066 24.020027,2.9892921 C 32.18664,3.0875777 37.5,6.5372782 37.5,14.5 L 37.5,20.484846 C 37.5,22.439075 32.009299,22.687797 32.009299,20.484846 L 32.009299,16.5 C 32.009299,14.5 32.577752,8.028147 24.077241,8.028147 C 15.646828,8.028147 16.261091,14.539885 16.293782,16.492026 L 16.293782,20.268524 C 16.293782,22.623144 10.6402,22.613133 10.6402,20.234846 z" + style="fill:url(#linearGradient1392);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.05905688;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="opacity:0.18235294;fill:url(#linearGradient6233);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter6251)" + d="M 34.687087,10.837069 L 35.951035,10.962069 C 36.878274,13.784802 36.687087,20.472482 36.687087,20.472482 C 36.624587,21.597482 34.655837,21.003732 34.687087,20.472482 L 34.687087,10.837069 z" + id="rect1345" + sodipodi:nodetypes="ccccc" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + <path + inkscape:r_cy="true" + inkscape:r_cx="true" + sodipodi:nodetypes="ccccc" + id="path6332" + d="M 12.926606,11.544175 L 13.298325,11.71337 C 15.018656,12.768336 15.471857,21.0912 15.471857,21.0912 C 15.409357,22.2162 13.440607,21.62245 13.471857,21.0912 C 13.471857,21.0912 13.850077,14.22056 12.926606,11.544175 z" + style="opacity:0.14117647;fill:url(#linearGradient6334);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter6251)" + transform="matrix(-1,0,0,1,29.05878,-0.6187184)" /> + </g> + <path + style="opacity:0.62352941;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter5745);enable-background:accumulate" + d="M 15.375,19.625122 L 15.5,12.125122 C 15.5,2.2487493 34.187499,1.4487223 34.187499,13.000122 L 34.187499,19.875122" + id="path5675" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1387);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 10.663938,20.692602 L 40.339178,20.692602 C 40.983999,20.692602 41.503116,21.181796 41.503116,21.78945 L 41.503116,22.451524 C 41.503116,23.059178 40.983999,23.548372 40.339178,23.548372 C 30.539744,24.748444 20.629609,24.821884 10.663938,23.548372 C 10.019116,23.548372 9.4999999,23.059178 9.4999999,22.451524 L 9.4999999,21.78945 C 9.4999999,21.181796 10.019116,20.692602 10.663938,20.692602 z" + id="rect1593" + sodipodi:nodetypes="ccccccccc" /> + <rect + style="opacity:0.29411765;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter5957);enable-background:accumulate" + id="rect5887" + width="2.8284271" + height="16.970562" + x="14.594036" + y="23.226137" + rx="1.6077254" + ry="1.6077254" + transform="matrix(1.9722718,0,0,1.2283366,-15.56437,-5.3032539)" /> + <g + id="g6067" + transform="translate(0.8838829,-0.5302077)"> + <path + d="M 21.213204,6.2806997 A 3.1819806,3.1819806 0 1 1 14.849243,6.2806997 A 3.1819806,3.1819806 0 1 1 21.213204,6.2806997 z" + sodipodi:ry="3.1819806" + sodipodi:rx="3.1819806" + sodipodi:cy="6.2806997" + sodipodi:cx="18.031223" + id="path6055" + style="opacity:1;fill:url(#radialGradient6071);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + transform="matrix(0.4343344,0,0,0.4343344,10.199642,3.5527756)" + sodipodi:type="arc" + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6065" + sodipodi:cx="18.031223" + sodipodi:cy="6.2806997" + sodipodi:rx="3.1819806" + sodipodi:ry="3.1819806" + d="M 21.213204,6.2806997 A 3.1819806,3.1819806 0 1 1 14.849243,6.2806997 A 3.1819806,3.1819806 0 1 1 21.213204,6.2806997 z" /> + </g> + <path + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter6328);enable-background:accumulate" + d="M 21.715689,3.9563403 C 24.168434,3.3660463 26.768803,3.3281143 29.32858,3.9563403 C 31.016329,4.3705523 30.561969,5.8454783 29.32858,5.4998383 C 26.795998,4.7901193 24.232097,4.9798893 21.715689,5.4998383 C 19.936529,5.8674553 20.076197,4.3509113 21.715689,3.9563403 z" + id="rect6257" + sodipodi:nodetypes="cssss" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/media-eject.svg b/icons/PyHoca/scalable/media-eject.svg new file mode 100644 index 0000000..ac26f17 --- /dev/null +++ b/icons/PyHoca/scalable/media-eject.svg @@ -0,0 +1,270 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7204" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7206"> + <linearGradient + inkscape:collect="always" + id="linearGradient7960"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop7962" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop7964" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7960" + id="linearGradient7966" + x1="24.839811" + y1="22.896124" + x2="30.24213" + y2="42.93504" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient5590" + inkscape:collect="always"> + <stop + id="stop5592" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop5594" + offset="1" + style="stop-color:#ffffff;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5590" + id="linearGradient7393" + gradientUnits="userSpaceOnUse" + x1="20.171806" + y1="6.452569" + x2="25.110491" + y2="31.468895" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7973"> + <stop + style="stop-color:#c22f2f;stop-opacity:1" + offset="0" + id="stop7975" /> + <stop + style="stop-color:#a40000;stop-opacity:1" + offset="1" + id="stop7977" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7973" + id="linearGradient7979" + x1="27.193972" + y1="7.9997501" + x2="27.107143" + y2="37.738838" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient5578" + inkscape:collect="always"> + <stop + id="stop5580" + offset="0" + style="stop-color:#c22f2f;stop-opacity:1" /> + <stop + id="stop5582" + offset="1" + style="stop-color:#e15f5f;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5578" + id="linearGradient7391" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-1e-6,0.9375)" + x1="24.99975" + y1="38.153625" + x2="20.121071" + y2="7" /> + <linearGradient + id="linearGradient10816"> + <stop + id="stop10818" + offset="0" + style="stop-color:#000000;stop-opacity:0.3137255;" /> + <stop + id="stop10820" + offset="1" + style="stop-color:#000000;stop-opacity:0.31" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient10816" + id="linearGradient7389" + gradientUnits="userSpaceOnUse" + x1="22.18045" + y1="13.177" + x2="24.81955" + y2="25.137793" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7983"> + <stop + style="stop-color:#c22f2f;stop-opacity:1" + offset="0" + id="stop7985" /> + <stop + style="stop-color:#a40000;stop-opacity:1" + offset="1" + id="stop7987" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7983" + id="linearGradient7989" + x1="24" + y1="7.8987346" + x2="23.938574" + y2="39.999748" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7968"> + <stop + style="stop-color:#e15f5f;stop-opacity:1" + offset="0" + id="stop7970" /> + <stop + style="stop-color:#c22f2f;stop-opacity:1" + offset="1" + id="stop7972" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7968" + id="linearGradient7974" + x1="19.959141" + y1="8.2017803" + x2="25.111168" + y2="40.089279" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient7577"> + <stop + style="stop-color:#000000;stop-opacity:0.3137255;" + offset="0" + id="stop7579" /> + <stop + style="stop-color:#000000;stop-opacity:0.31" + offset="1" + id="stop7581" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7577" + id="linearGradient7386" + gradientUnits="userSpaceOnUse" + x1="23.41782" + y1="31.488117" + x2="23.67593" + y2="36.456322" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="690" + inkscape:window-x="220" + inkscape:window-y="172" /> + <metadata + id="metadata7209"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g7422" + transform="translate(-88,2.5e-4)" /> + <g + id="g7377" + transform="translate(0,2.5e-4)"> + <path + sodipodi:nodetypes="ccccccccc" + id="path7342" + d="M 9.125,30.90625 C 7.9751604,30.90625 6.96875,31.899555 6.96875,33.0625 L 6.96875,36.8125 C 6.96875,37.975447 7.9751547,38.96875 9.125,38.96875 L 38.875,38.96875 C 40.02484,38.96875 41.031253,37.97545 41.03125,36.8125 L 41.03125,33.0625 C 41.03125,31.89955 40.024847,30.90625 38.875,30.90625 L 9.125,30.90625 z" + style="opacity:0.4;fill:url(#linearGradient7386);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> + <rect + ry="0.63725162" + rx="0.62257558" + y="32.4375" + x="8.499999" + height="5" + width="31.000002" + id="rect4595" + style="fill:url(#linearGradient7974);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7989);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> + <path + sodipodi:nodetypes="cccsccsccc" + id="path7339" + d="M 23.78125,6.90625 C 23.321479,6.9301871 22.896874,7.1597036 22.625,7.53125 L 8.125,27.5625 C 7.7817975,28.030059 7.7321882,28.651386 7.9968518,29.16748 C 8.2615154,29.683574 8.7950298,30.005862 9.375,30 L 38.75,30 C 39.324346,29.994086 39.847091,29.66728 40.10396,29.153542 C 40.360829,28.639805 40.308626,28.025525 39.96875,27.5625 L 25.09375,7.53125 C 24.789314,7.1153075 24.296053,6.8804216 23.78125,6.90625 z" + style="opacity:0.4;fill:url(#linearGradient7389);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> + <path + id="path5566" + d="M 9.374999,28.46875 L 38.749999,28.46875 L 23.874999,8.4374999 L 9.374999,28.46875 z" + style="fill:url(#linearGradient7391);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7979);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> + <path + transform="matrix(1.025279,0,0,1.0257353,-0.6078818,-0.5474494)" + d="M 23.875,10.34375 L 11.5625,27.34375 L 36.53125,27.34375 L 23.875,10.34375 z" + inkscape:href="#path5566" + id="path5586" + style="opacity:0.5;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7393);stroke-width:0.97512734;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;enable-background:accumulate" + xlink:href="#path5566" + inkscape:original="M 23.875 8.4375 L 9.375 28.46875 L 38.75 28.46875 L 23.875 8.4375 z " + inkscape:radius="-1.116814" + sodipodi:type="inkscape:offset" /> + <rect + style="opacity:0.4;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7966);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;enable-background:accumulate" + id="rect5598" + width="29" + height="3" + x="9.500001" + y="33.4375" /> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/media-playback-pause.svg b/icons/PyHoca/scalable/media-playback-pause.svg new file mode 100644 index 0000000..1d86b6f --- /dev/null +++ b/icons/PyHoca/scalable/media-playback-pause.svg @@ -0,0 +1,320 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48" + height="48" + id="svg7854" + sodipodi:version="0.32" + inkscape:version="0.46" + version="1.0" + sodipodi:docname="media-playback-pause.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:export-filename="/home/lapo/Desktop/media-icons.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs7856"> + <linearGradient + id="linearGradient3227" + inkscape:collect="always"> + <stop + id="stop3229" + offset="0" + style="stop-color:#ffffff;stop-opacity:1" /> + <stop + id="stop3231" + offset="1" + style="stop-color:#ffffff;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3217"> + <stop + style="stop-color:#ffffff;stop-opacity:1" + offset="0" + id="stop3219" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3221" /> + </linearGradient> + <linearGradient + id="linearGradient3196"> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" + id="stop3198" /> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="1" + id="stop3200" /> + </linearGradient> + <linearGradient + id="linearGradient7577"> + <stop + offset="0" + id="stop7579" + style="stop-color:#000000;stop-opacity:0.3137255;" /> + <stop + offset="1" + id="stop7581" + style="stop-color:#000000;stop-opacity:0.31" /> + </linearGradient> + <linearGradient + id="linearGradient7344"> + <stop + id="stop7346" + offset="0" + style="stop-color:#eeeeec;stop-opacity:1" /> + <stop + id="stop7348" + offset="1" + style="stop-color:#babdb6;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7344" + id="linearGradient3192" + x1="-13" + y1="3" + x2="-13" + y2="45" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3196" + id="linearGradient3194" + x1="-39" + y1="3" + x2="-39" + y2="45" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7577" + id="linearGradient3215" + gradientUnits="userSpaceOnUse" + x1="-27.669012" + y1="13.129915" + x2="-24.330988" + y2="25.587595" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3217" + id="linearGradient3223" + x1="-13" + y1="0" + x2="-13" + y2="48" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3227" + id="linearGradient3225" + x1="-39" + y1="0" + x2="-39" + y2="48" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="1" + gridtolerance="10000" + guidetolerance="10" + objecttolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:zoom="11.313708" + inkscape:cx="-2.3582699" + inkscape:cy="32.957461" + inkscape:document-units="px" + inkscape:current-layer="layer1" + width="48px" + height="48px" + inkscape:showpageshadow="true" + inkscape:window-width="1678" + inkscape:window-height="978" + inkscape:window-x="0" + inkscape:window-y="43" + showgrid="true" + inkscape:grid-points="true" + showborder="true" + showguides="false" + inkscape:guide-bbox="true" + borderlayer="true"> + <sodipodi:guide + orientation="horizontal" + position="13.125" + id="guide7377" /> + <sodipodi:guide + orientation="horizontal" + position="5.4800776" + id="guide7379" /> + <sodipodi:guide + orientation="horizontal" + position="35" + id="guide7492" /> + <sodipodi:guide + orientation="horizontal" + position="48" + id="guide7046" /> + <sodipodi:guide + orientation="horizontal" + position="-17.5" + id="guide7233" /> + <sodipodi:guide + orientation="horizontal" + position="-29" + id="guide7235" /> + <sodipodi:guide + orientation="horizontal" + position="22.097087" + id="guide7556" /> + <sodipodi:guide + orientation="vertical" + position="-76.125" + id="guide7644" /> + <sodipodi:guide + orientation="vertical" + position="-26.125" + id="guide7646" /> + <sodipodi:guide + orientation="vertical" + position="24" + id="guide7648" /> + <sodipodi:guide + orientation="vertical" + position="-125.28125" + id="guide7665" /> + <sodipodi:guide + orientation="vertical" + position="-175.125" + id="guide7667" /> + <sodipodi:guide + orientation="vertical" + position="-225.83223" + id="guide7685" /> + <sodipodi:guide + orientation="vertical" + position="-326.06462" + id="guide7695" /> + <inkscape:grid + id="GridFromPre046Settings" + type="xygrid" + originx="0px" + originy="0px" + spacingx="0.5px" + spacingy="0.5px" + color="#0000ff" + empcolor="#0000ff" + opacity="0.2" + empopacity="0.4" + empspacing="2" + visible="true" + enabled="true" /> + </sodipodi:namedview> + <metadata + id="metadata7859"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:creator> + <cc:Agent> + <dc:title>Lapo Calamandrei</dc:title> + </cc:Agent> + </dc:creator> + <dc:source /> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + <dc:title>Pause</dc:title> + <dc:subject> + <rdf:Bag> + <rdf:li>playback</rdf:li> + <rdf:li>pause</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <g + id="g7104" + transform="translate(50,0)"> + <path + d="M -37.03125,11.25 C -37.937434,11.25 -38.75,12.062566 -38.75,12.96875 L -38.75,35.03125 C -38.75,35.937438 -37.937447,36.750007 -37.03125,36.75 L -29.96875,36.75 C -29.062569,36.75 -28.249997,35.937439 -28.25,35.03125 L -28.25,12.96875 C -28.25,12.062566 -29.062566,11.25 -29.96875,11.25 L -37.03125,11.25 z M -22.03125,11.25 C -22.937434,11.25 -23.75,12.062566 -23.75,12.96875 L -23.75,35.03125 C -23.75,35.937438 -22.937447,36.750007 -22.03125,36.75 L -14.96875,36.75 C -14.062569,36.75 -13.25,35.937433 -13.25,35.03125 L -13.25,12.96875 C -13.25,12.062566 -14.062566,11.25 -14.96875,11.25 L -22.03125,11.25 z" + id="path7594" + style="opacity:0.3;fill:url(#linearGradient3215);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992000000000;stroke-opacity:1" + inkscape:original="M -37.03125 12.5 C -37.295499 12.5 -37.5 12.704501 -37.5 12.96875 L -37.5 35.03125 C -37.5 35.295499 -37.295498 35.500002 -37.03125 35.5 L -29.96875 35.5 C -29.704501 35.5 -29.499999 35.2955 -29.5 35.03125 L -29.5 12.96875 C -29.5 12.704501 -29.704501 12.5 -29.96875 12.5 L -37.03125 12.5 z M -22.03125 12.5 C -22.295499 12.5 -22.5 12.704501 -22.5 12.96875 L -22.5 35.03125 C -22.5 35.295499 -22.295498 35.500002 -22.03125 35.5 L -14.96875 35.5 C -14.704501 35.5 -14.5 35.2955 -14.5 35.03125 L -14.5 12.96875 C -14.5 12.704501 -14.704501 12.5 -14.96875 12.5 L -22.03125 12.5 z " + inkscape:radius="1.2442297" + sodipodi:type="inkscape:offset" + transform="matrix(1.7254902,0,0,1.7254902,18.862745,-17.411764)" /> + <g + id="g7451"> + <rect + style="fill:url(#linearGradient3194);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992000000000;stroke-opacity:1" + id="rect7865" + width="15" + height="41" + x="-46.5" + y="3.5" + rx="0.47698301" + ry="0.47698301" /> + <rect + ry="0.47698301" + rx="0.47698301" + y="3.5" + x="-20.5" + height="41" + width="15" + id="rect7879" + style="fill:url(#linearGradient3192);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992000000000;stroke-opacity:1" /> + <rect + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3225);stroke-width:0.99999987999999995;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992000000000;stroke-opacity:1" + id="rect7867" + width="13" + height="39" + x="-45.5" + y="4.5" /> + <rect + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3223);stroke-width:0.99999987999999995;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992000000000;stroke-opacity:1" + id="rect7889" + width="13" + height="39" + x="-19.5" + y="4.5" /> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/media-playback-start.svg b/icons/PyHoca/scalable/media-playback-start.svg new file mode 100644 index 0000000..ef0fbff --- /dev/null +++ b/icons/PyHoca/scalable/media-playback-start.svg @@ -0,0 +1,140 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7196" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="media-playback-start.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7198"> + <linearGradient + inkscape:collect="always" + id="linearGradient3203"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3205" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3207" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3203" + id="linearGradient3209" + x1="-183" + y1="2" + x2="-183" + y2="46" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient7344"> + <stop + id="stop7346" + offset="0" + style="stop-color:#eeeeec;stop-opacity:1" /> + <stop + id="stop7348" + offset="1" + style="stop-color:#babdb6;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7344" + id="linearGradient3197" + x1="-180" + y1="4" + x2="-180" + y2="44" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient9792"> + <stop + id="stop9794" + offset="0" + style="stop-color:#000000;stop-opacity:0.3137255;" /> + <stop + id="stop9796" + offset="1" + style="stop-color:#000000;stop-opacity:0.31" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient9792" + id="linearGradient3201" + gradientUnits="userSpaceOnUse" + x1="-178.27779" + y1="13.096572" + x2="-170.07779" + y2="31.289717" + gradientTransform="matrix(1.0975609,0,0,1.0993152,217.67073,-2.396871)" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="688" + inkscape:window-x="306" + inkscape:window-y="333" /> + <metadata + id="metadata7201"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <path + sodipodi:nodetypes="ccccc" + id="path3199" + d="M 2,45.973 L 2,2.00039 L 8.2003814,5.0316876 L 47,24.00039 L 2,45.973 z" + style="opacity:0.3;fill:url(#linearGradient3201);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999981999999998;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992000000000;stroke-opacity:1" /> + <g + id="g7138" + transform="translate(200,3.9e-4)"> + <g + id="g7515"> + <path + sodipodi:nodetypes="cccc" + id="path7812" + d="M -196.5,43.5 L -196.5,4.5 L -156.5,24 L -196.5,43.5 z" + style="fill:url(#linearGradient3197);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999982;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cccc" + id="path7828" + d="M -195.46875,41.875 L -195.46875,6.109375 L -158.79688,24 L -195.46875,41.875 z" + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3209);stroke-width:0.99999982;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" /> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/media-playback-stop.svg b/icons/PyHoca/scalable/media-playback-stop.svg new file mode 100644 index 0000000..e2b2d09 --- /dev/null +++ b/icons/PyHoca/scalable/media-playback-stop.svg @@ -0,0 +1,149 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7182" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="media-playback-stop.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7184"> + <linearGradient + id="linearGradient3192"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3194" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3196" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3192" + id="linearGradient3198" + x1="23.393908" + y1="13.000002" + x2="23" + y2="48" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient7344" + inkscape:collect="always"> + <stop + id="stop7346" + offset="0" + style="stop-color:#eeeeec;stop-opacity:1" /> + <stop + id="stop7348" + offset="1" + style="stop-color:#babdb6;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7344" + id="linearGradient3190" + x1="24" + y1="12" + x2="24" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient7577"> + <stop + style="stop-color:#000000;stop-opacity:0.3137255;" + offset="0" + id="stop7579" /> + <stop + style="stop-color:#000000;stop-opacity:0.31" + offset="1" + id="stop7581" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7577" + id="linearGradient7469" + gradientUnits="userSpaceOnUse" + x1="22.28924" + y1="12.965953" + x2="25.71076" + y2="25.735243" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="9.8994949" + inkscape:cx="23.916316" + inkscape:cy="19.35555" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="688" + inkscape:window-x="0" + inkscape:window-y="333" /> + <metadata + id="metadata7187"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g7422" + transform="translate(-88,0)" /> + <g + id="g7097"> + <path + d="M 13,11 C 11.942666,11 11,11.942666 11,13 L 11,35 C 11,36.057334 11.942653,37.000008 13,37 L 35,37 C 36.057331,37 37.000008,36.057345 37,35 L 37,13 C 37,11.942669 36.057333,11 35,11 L 13,11 z" + id="path7573" + style="opacity:0.3;fill:url(#linearGradient7469);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992000000000;stroke-opacity:1" + inkscape:original="M 13 12.5 C 12.718439 12.5 12.5 12.718439 12.5 13 L 12.5 35 C 12.5 35.281561 12.718439 35.500002 13 35.5 L 35 35.5 C 35.281561 35.5 35.500002 35.281562 35.5 35 L 35.5 13 C 35.5 12.718439 35.281562 12.5 35 12.5 L 13 12.5 z " + inkscape:radius="1.4999211" + sodipodi:type="inkscape:offset" /> + <g + id="g7427"> + <rect + style="fill:url(#linearGradient3190);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1" + id="rect7340" + width="23.000002" + height="23.000002" + x="12.5" + y="12.5" + rx="0.50823301" + ry="0.50823301" /> + <rect + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3198);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992000000000;stroke-opacity:1" + id="rect7354" + width="20.999998" + height="20.999998" + x="13.500002" + y="13.500002" /> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/media-record.svg b/icons/PyHoca/scalable/media-record.svg new file mode 100644 index 0000000..2d98584 --- /dev/null +++ b/icons/PyHoca/scalable/media-record.svg @@ -0,0 +1,185 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7964" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7966"> + <linearGradient + id="linearGradient5172" + inkscape:collect="always"> + <stop + id="stop5174" + offset="0" + style="stop-color:white;stop-opacity:1;" /> + <stop + id="stop5176" + offset="1" + style="stop-color:white;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5172" + id="linearGradient8323" + gradientUnits="userSpaceOnUse" + x1="8.9317284" + y1="2.0178134" + x2="13.458839" + y2="26.431587" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7953"> + <stop + style="stop-color:#c22f2f;stop-opacity:1" + offset="0" + id="stop7956" /> + <stop + style="stop-color:#a40000;stop-opacity:1" + offset="1" + id="stop7958" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7953" + id="linearGradient7960" + x1="14.317019" + y1="8.7555399" + x2="14.326317" + y2="23.513041" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient5167"> + <stop + id="stop5169" + offset="0" + style="stop-color:#e78181;stop-opacity:1" /> + <stop + style="stop-color:#e15f5f;stop-opacity:1" + offset="0.25" + id="stop7955" /> + <stop + id="stop7957" + offset="0.68000001" + style="stop-color:#c22f2f;stop-opacity:1" /> + <stop + id="stop5171" + offset="1" + style="stop-color:#a40000;stop-opacity:1" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5167" + id="radialGradient7951" + cx="15.865708" + cy="8.7555399" + fx="15.865708" + fy="8.7555399" + r="7.3787756" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-7.992859e-8,2.1425397,-5.4504165,-2.0325241e-7,63.587049,-25.23737)" /> + <linearGradient + id="linearGradient7577"> + <stop + style="stop-color:#000000;stop-opacity:0.3137255;" + offset="0" + id="stop7579" /> + <stop + style="stop-color:#000000;stop-opacity:0.31" + offset="1" + id="stop7581" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7577" + id="linearGradient8317" + gradientUnits="userSpaceOnUse" + x1="15.011773" + y1="10.883683" + x2="16.657505" + y2="17.024479" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="690" + inkscape:window-x="656" + inkscape:window-y="361" /> + <metadata + id="metadata7969"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g7170" + transform="translate(350.00028,6.4088923e-8)"> + <path + sodipodi:type="arc" + style="opacity:0.4;fill:url(#linearGradient8317);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52702755;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path7691" + sodipodi:cx="15.865708" + sodipodi:cy="16.134291" + sodipodi:rx="7.115262" + sodipodi:ry="7.115262" + d="M 22.98097,16.134291 A 7.115262,7.115262 0 1 1 8.7504463,16.134291 A 7.115262,7.115262 0 1 1 22.98097,16.134291 z" + transform="matrix(2.1074616,0,0,2.1078593,-359.43551,-10.006786)" /> + <g + id="g7564"> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient7951);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7960);stroke-width:0.52702701;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path7968" + sodipodi:cx="15.865708" + sodipodi:cy="16.134291" + sodipodi:rx="7.115262" + sodipodi:ry="7.115262" + d="M 22.98097,16.134291 A 7.115262,7.115262 0 1 1 8.7504463,16.134291 A 7.115262,7.115262 0 1 1 22.98097,16.134291 z" + transform="matrix(1.897257,0,0,1.897615,-356.10046,-6.6146433)" /> + <path + transform="matrix(1.7591324,0,0,1.7580929,-353.90899,-4.3562887)" + d="M 22.98097,16.134291 A 7.115262,7.115262 0 1 1 8.7504463,16.134291 A 7.115262,7.115262 0 1 1 22.98097,16.134291 z" + sodipodi:ry="7.115262" + sodipodi:rx="7.115262" + sodipodi:cy="16.134291" + sodipodi:cx="15.865708" + id="path7972" + style="opacity:0.54494413;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8323);stroke-width:0.56863129;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" /> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/media-seek-backward.svg b/icons/PyHoca/scalable/media-seek-backward.svg new file mode 100644 index 0000000..7ed4a7a --- /dev/null +++ b/icons/PyHoca/scalable/media-seek-backward.svg @@ -0,0 +1,212 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7209" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7211"> + <linearGradient + inkscape:collect="always" + id="linearGradient3211"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3213" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3215" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3211" + id="linearGradient3219" + x1="29" + y1="12" + x2="29" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient3205" + inkscape:collect="always"> + <stop + id="stop3207" + offset="0" + style="stop-color:#babdb6;stop-opacity:1" /> + <stop + id="stop3209" + offset="1" + style="stop-color:#eeeeec;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3205" + id="linearGradient3203" + x1="29" + y1="36" + x2="29" + y2="12" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient3221" + inkscape:collect="always"> + <stop + id="stop3223" + offset="0" + style="stop-color:#ffffff;stop-opacity:1" /> + <stop + id="stop3225" + offset="1" + style="stop-color:#ffffff;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3221" + id="linearGradient3217" + x1="29" + y1="12" + x2="29" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3195"> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="0" + id="stop3197" /> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="1" + id="stop3199" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3195" + id="linearGradient3201" + x1="29" + y1="36" + x2="29" + y2="12" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient7577"> + <stop + style="stop-color:#000000;stop-opacity:0.3137255;" + offset="0" + id="stop7579" /> + <stop + style="stop-color:#000000;stop-opacity:0.5" + offset="1" + id="stop7581" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7577" + id="linearGradient8098" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,-250.51531,0)" + x1="-127.01692" + y1="12.838128" + x2="-123.49838" + y2="25.969481" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="688" + inkscape:window-x="287" + inkscape:window-y="163" /> + <metadata + id="metadata7214"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g7145" + transform="translate(250.00003,1.5827295e-4)"> + <path + transform="matrix(-1,0,0,1,-351.01531,0)" + d="M -143.75,11.53125 C -144.47126,11.646642 -145.00141,12.269567 -145,13 L -145,35 C -145.00337,35.536848 -144.71663,36.033688 -144.25011,36.299347 C -143.78358,36.565005 -143.20998,36.558085 -142.75,36.28125 L -127,26.9375 L -127,35 C -127.00337,35.536848 -126.71663,36.033688 -126.25011,36.299347 C -125.78358,36.565005 -125.20998,36.558085 -124.75,36.28125 L -106.25,25.28125 C -105.79494,25.014944 -105.51528,24.527253 -105.51528,24 C -105.51528,23.472747 -105.79494,22.985056 -106.25,22.71875 L -124.75,11.71875 C -125.20998,11.441915 -125.78358,11.434995 -126.25011,11.700653 C -126.71663,11.966312 -127.00337,12.463152 -127,13 L -127,21.0625 L -142.75,11.71875 C -143.05084,11.540409 -143.40499,11.474007 -143.75,11.53125 L -143.75,11.53125 z" + id="path7681" + style="opacity:0.31000001;fill:url(#linearGradient8098);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + inkscape:original="M -143.5 13 L -143.5 35 L -125.5 24.3125 L -125.5 35 L -107 24 L -125.5 13 L -125.5 23.6875 L -143.5 13 z " + inkscape:radius="1.484375" + sodipodi:type="inkscape:offset" /> + <g + id="g7530"> + <g + id="g7964" + transform="translate(-132,0)"> + <g + transform="matrix(-1,0,0,1,-54,0)" + id="g7952"> + <path + style="fill:url(#linearGradient3201);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + d="M 21.5,35 L 21.5,13.000461 L 39.995767,24.010194 L 21.5,35 z" + id="path7954" + sodipodi:nodetypes="cccc" /> + <path + sodipodi:type="inkscape:offset" + inkscape:radius="-1.0054175" + inkscape:original="M 21.5 13 L 21.5 35 L 40 24 L 21.5 13 z " + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3217);stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + id="path7956" + d="M 22.5,14.78125 L 22.5,33.21875 L 38.03125,24 L 22.5,14.78125 z" /> + </g> + <g + transform="matrix(-1,0,0,1,-72,0)" + id="g7958"> + <path + style="fill:url(#linearGradient3203);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + d="M 21.5,35 L 21.5,13.000461 L 39.995767,24.010194 L 21.5,35 z" + id="path7960" + sodipodi:nodetypes="cccc" /> + <path + sodipodi:type="inkscape:offset" + inkscape:radius="-1.0054175" + inkscape:original="M 21.5 13 L 21.5 35 L 40 24 L 21.5 13 z " + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3219);stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + id="path7962" + d="M 22.5,14.78125 L 22.5,33.21875 L 38.03125,24 L 22.5,14.78125 z" /> + </g> + </g> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/media-seek-forward.svg b/icons/PyHoca/scalable/media-seek-forward.svg new file mode 100644 index 0000000..fe128c4 --- /dev/null +++ b/icons/PyHoca/scalable/media-seek-forward.svg @@ -0,0 +1,199 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7206" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7208"> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3205" + id="linearGradient3211" + x1="28" + y1="12" + x2="28" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3199"> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" + id="stop3201" /> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="1" + id="stop3203" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3199" + id="linearGradient3195" + x1="148" + y1="12" + x2="148" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3205"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3207" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3209" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3205" + id="linearGradient3213" + x1="28" + y1="12" + x2="28" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient7344" + inkscape:collect="always"> + <stop + id="stop7346" + offset="0" + style="stop-color:#eeeeec;stop-opacity:1" /> + <stop + id="stop7348" + offset="1" + style="stop-color:#babdb6;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7344" + id="linearGradient3197" + x1="148" + y1="12" + x2="148" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient7577"> + <stop + style="stop-color:#000000;stop-opacity:0.3137255;" + offset="0" + id="stop7579" /> + <stop + style="stop-color:#000000;stop-opacity:0.31" + offset="1" + id="stop7581" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7577" + id="linearGradient7871" + gradientUnits="userSpaceOnUse" + x1="-127.01692" + y1="12.838128" + x2="-123.49838" + y2="25.969481" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="688" + inkscape:window-x="1037" + inkscape:window-y="333" /> + <metadata + id="metadata7211"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g7126" + transform="translate(150.00003,1.5827295e-4)"> + <path + d="M -143.75,11.53125 C -144.47126,11.646642 -145.00141,12.269567 -145,13 L -145,35 C -145.00337,35.536848 -144.71663,36.033688 -144.25011,36.299347 C -143.78358,36.565005 -143.20998,36.558085 -142.75,36.28125 L -127,26.9375 L -127,35 C -127.00337,35.536848 -126.71663,36.033688 -126.25011,36.299347 C -125.78358,36.565005 -125.20998,36.558085 -124.75,36.28125 L -106.25,25.28125 C -105.79494,25.014944 -105.51528,24.527253 -105.51528,24 C -105.51528,23.472747 -105.79494,22.985056 -106.25,22.71875 L -124.75,11.71875 C -125.20998,11.441915 -125.78358,11.434995 -126.25011,11.700653 C -126.71663,11.966312 -127.00337,12.463152 -127,13 L -127,21.0625 L -142.75,11.71875 C -143.05084,11.540409 -143.40499,11.474007 -143.75,11.53125 L -143.75,11.53125 z" + id="path7659" + style="opacity:0.4;fill:url(#linearGradient7871);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + inkscape:original="M -143.5 13 L -143.5 35 L -125.5 24.3125 L -125.5 35 L -107 24 L -125.5 13 L -125.5 23.6875 L -143.5 13 z " + inkscape:radius="1.484375" + sodipodi:type="inkscape:offset" /> + <g + id="g7498"> + <g + id="g8037" + transform="translate(-267,0)"> + <g + transform="translate(-18,0)" + id="g8025"> + <path + style="fill:url(#linearGradient3197);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + d="M 141.5,35 L 141.5,13.000461 L 159.99577,24.010194 L 141.5,35 z" + id="path8027" + sodipodi:nodetypes="cccc" /> + <path + sodipodi:type="inkscape:offset" + inkscape:radius="-1.0054175" + inkscape:original="M 21.5 13 L 21.5 35 L 40 24 L 21.5 13 z " + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3213);stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + id="path8029" + d="M 22.5,14.78125 L 22.5,33.21875 L 38.03125,24 L 22.5,14.78125 z" + transform="translate(120,0)" /> + </g> + <g + id="g8031"> + <path + style="fill:url(#linearGradient3195);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + d="M 141.5,35 L 141.5,13.000461 L 159.99577,24.010194 L 141.5,35 z" + id="path8033" + sodipodi:nodetypes="cccc" /> + <path + sodipodi:type="inkscape:offset" + inkscape:radius="-1.0054175" + inkscape:original="M 21.5 13 L 21.5 35 L 40 24 L 21.5 13 z " + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3211);stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + id="path8035" + d="M 22.5,14.78125 L 22.5,33.21875 L 38.03125,24 L 22.5,14.78125 z" + transform="translate(120,0)" /> + </g> + </g> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/media-skip-backward.svg b/icons/PyHoca/scalable/media-skip-backward.svg new file mode 100644 index 0000000..82402f6 --- /dev/null +++ b/icons/PyHoca/scalable/media-skip-backward.svg @@ -0,0 +1,243 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7212" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7214"> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3215" + id="linearGradient3221" + x1="-294" + y1="12" + x2="-294" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3203"> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" + id="stop3205" /> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="1" + id="stop3207" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3203" + id="linearGradient3197" + x1="-294" + y1="12" + x2="-294" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3215" + id="linearGradient3225" + x1="28" + y1="12" + x2="28" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient7344" + inkscape:collect="always"> + <stop + id="stop7346" + offset="0" + style="stop-color:#eeeeec;stop-opacity:1" /> + <stop + id="stop7348" + offset="1" + style="stop-color:#babdb6;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7344" + id="linearGradient3201" + x1="28" + y1="12" + x2="28" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3215"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3217" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3219" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3215" + id="linearGradient3223" + x1="28" + y1="12" + x2="28" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient3209"> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" + id="stop3211" /> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="1" + id="stop3213" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3209" + id="linearGradient3199" + x1="28" + y1="12" + x2="28" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient7577"> + <stop + style="stop-color:#000000;stop-opacity:0.3137255;" + offset="0" + id="stop7579" /> + <stop + style="stop-color:#000000;stop-opacity:0.31" + offset="1" + id="stop7581" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7577" + id="linearGradient8208" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,-152,0)" + x1="-77.711723" + y1="13.246527" + x2="-74.288277" + y2="26.023027" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="688" + inkscape:window-x="1037" + inkscape:window-y="333" /> + <metadata + id="metadata7217"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g7157" + transform="translate(300,0)"> + <path + transform="matrix(-1,0,0,1,-352,0)" + d="M -59.9375,11 C -61.083327,11 -62,11.916673 -62,13.0625 L -62,21.0625 L -77.71875,11.71875 C -78.182222,11.438527 -78.760596,11.429252 -79.232814,11.694471 C -79.705033,11.959689 -79.998098,12.458403 -80,13 L -80,21.0625 L -95.71875,11.71875 C -96.182222,11.438527 -96.760596,11.429252 -97.232814,11.694471 C -97.705033,11.959689 -97.998098,12.458403 -98,13 L -98,35 C -97.998098,35.541597 -97.705033,36.040311 -97.232814,36.305529 C -96.760596,36.570748 -96.182222,36.561473 -95.71875,36.28125 L -80,26.9375 L -80,35 C -79.998098,35.541597 -79.705033,36.040311 -79.232814,36.305529 C -78.760596,36.570748 -78.182222,36.561473 -77.71875,36.28125 L -62,26.9375 L -62,34.9375 C -62,36.083333 -61.083342,37.000007 -59.9375,37 L -56.0625,37 C -54.916673,37 -53.999996,36.083333 -54,34.9375 L -54,13.0625 C -54,11.91667 -54.916672,11 -56.0625,11 L -59.9375,11 z" + id="path7687" + style="opacity:0.4;fill:url(#linearGradient8208);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1" + inkscape:original="M -59.9375 12.5 C -60.243545 12.5 -60.5 12.756455 -60.5 13.0625 L -60.5 23.6875 L -78.5 13 L -78.5 23.6875 L -96.5 13 L -96.5 35 L -78.5 24.3125 L -78.5 35 L -60.5 24.3125 L -60.5 34.9375 C -60.5 35.243545 -60.243543 35.500002 -59.9375 35.5 L -56.0625 35.5 C -55.756455 35.5 -55.499999 35.243545 -55.5 34.9375 L -55.5 13.0625 C -55.5 12.756455 -55.756456 12.5 -56.0625 12.5 L -59.9375 12.5 z " + inkscape:radius="1.5032517" + sodipodi:type="inkscape:offset" /> + <g + id="g7553"> + <g + id="g7944" + transform="matrix(-1,0,0,1,-234,0)"> + <path + sodipodi:nodetypes="cccc" + id="path7946" + d="M 21.5,35 L 21.5,13.000461 L 39.995767,24.010194 L 21.5,35 z" + style="fill:url(#linearGradient3199);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" /> + <path + d="M 22.5,14.78125 L 22.5,33.21875 L 38.03125,24 L 22.5,14.78125 z" + id="path7948" + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3223);stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + inkscape:original="M 21.5 13 L 21.5 35 L 40 24 L 21.5 13 z " + inkscape:radius="-1.0054175" + sodipodi:type="inkscape:offset" /> + </g> + <g + id="g7744" + transform="matrix(-1,0,0,1,-252,0)"> + <path + sodipodi:nodetypes="cccc" + id="path7746" + d="M 21.5,35 L 21.5,13.000461 L 39.995767,24.010194 L 21.5,35 z" + style="fill:url(#linearGradient3201);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" /> + <path + d="M 22.5,14.78125 L 22.5,33.21875 L 38.03125,24 L 22.5,14.78125 z" + id="path7748" + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3225);stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + inkscape:original="M 21.5 13 L 21.5 35 L 40 24 L 21.5 13 z " + inkscape:radius="-1.0054175" + sodipodi:type="inkscape:offset" /> + </g> + <rect + style="fill:url(#linearGradient3197);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1" + id="rect7736" + width="4.9886603" + height="23.000002" + x="-296.48865" + y="12.5" + rx="0.55242717" + ry="0.55242717" /> + <rect + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3221);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1" + id="rect7750" + width="3.0097761" + height="21.000002" + x="-295.48395" + y="13.5" + rx="0" + ry="0" /> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/media-skip-forward.svg b/icons/PyHoca/scalable/media-skip-forward.svg new file mode 100644 index 0000000..554a052 --- /dev/null +++ b/icons/PyHoca/scalable/media-skip-forward.svg @@ -0,0 +1,244 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7212" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7214"> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3227" + id="linearGradient3237" + x1="-58" + y1="12" + x2="-58" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3203"> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" + id="stop3205" /> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="1" + id="stop3207" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3203" + id="linearGradient3201" + x1="-58" + y1="12" + x2="-58" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3227" + id="linearGradient3235" + x1="27.983948" + y1="11.999998" + x2="28" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3209"> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" + id="stop3211" /> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="1" + id="stop3213" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3209" + id="linearGradient3199" + x1="148" + y1="12" + x2="148" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3227"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3229" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3231" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3227" + id="linearGradient3233" + x1="27.983948" + y1="11.999998" + x2="38.53125" + y2="24" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient7344" + inkscape:collect="always"> + <stop + id="stop7346" + offset="0" + style="stop-color:#eeeeec;stop-opacity:1" /> + <stop + id="stop7348" + offset="1" + style="stop-color:#babdb6;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7344" + id="linearGradient3197" + x1="148" + y1="12" + x2="148" + y2="36" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient7577"> + <stop + style="stop-color:#000000;stop-opacity:0.3137255;" + offset="0" + id="stop7579" /> + <stop + style="stop-color:#000000;stop-opacity:0.31" + offset="1" + id="stop7581" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7577" + id="linearGradient7762" + gradientUnits="userSpaceOnUse" + x1="-77.711723" + y1="13.246527" + x2="-74.288277" + y2="26.023027" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="688" + inkscape:window-x="1037" + inkscape:window-y="333" /> + <metadata + id="metadata7217"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g7113" + transform="translate(100,0)"> + <path + d="M -59.9375,11 C -61.083327,11 -62,11.916673 -62,13.0625 L -62,21.0625 L -77.71875,11.71875 C -78.182222,11.438527 -78.760596,11.429252 -79.232814,11.694471 C -79.705033,11.959689 -79.998098,12.458403 -80,13 L -80,21.0625 L -95.71875,11.71875 C -96.182222,11.438527 -96.760596,11.429252 -97.232814,11.694471 C -97.705033,11.959689 -97.998098,12.458403 -98,13 L -98,35 C -97.998098,35.541597 -97.705033,36.040311 -97.232814,36.305529 C -96.760596,36.570748 -96.182222,36.561473 -95.71875,36.28125 L -80,26.9375 L -80,35 C -79.998098,35.541597 -79.705033,36.040311 -79.232814,36.305529 C -78.760596,36.570748 -78.182222,36.561473 -77.71875,36.28125 L -62,26.9375 L -62,34.9375 C -62,36.083333 -61.083342,37.000007 -59.9375,37 L -56.0625,37 C -54.916673,37 -53.999996,36.083333 -54,34.9375 L -54,13.0625 C -54,11.91667 -54.916672,11 -56.0625,11 L -59.9375,11 z" + id="path7638" + style="opacity:0.4;fill:url(#linearGradient7762);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1" + inkscape:original="M -59.9375 12.5 C -60.243545 12.5 -60.5 12.756455 -60.5 13.0625 L -60.5 23.6875 L -78.5 13 L -78.5 23.6875 L -96.5 13 L -96.5 35 L -78.5 24.3125 L -78.5 35 L -60.5 24.3125 L -60.5 34.9375 C -60.5 35.243545 -60.243543 35.500002 -59.9375 35.5 L -56.0625 35.5 C -55.756455 35.5 -55.499999 35.243545 -55.5 34.9375 L -55.5 13.0625 C -55.5 12.756455 -55.756456 12.5 -56.0625 12.5 L -59.9375 12.5 z " + inkscape:radius="1.5032517" + sodipodi:type="inkscape:offset" /> + <g + id="g7474"> + <g + id="g8003" + transform="translate(-238,0)"> + <path + sodipodi:nodetypes="cccc" + id="path8005" + d="M 141.5,35 L 141.5,13.000461 L 159.99577,24.010194 L 141.5,35 z" + style="fill:url(#linearGradient3197);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" /> + <path + transform="translate(120,0)" + d="M 22.5,14.78125 L 22.5,33.21875 L 38.03125,24 L 22.5,14.78125 z" + id="path8007" + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3233);stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + inkscape:original="M 21.5 13 L 21.5 35 L 40 24 L 21.5 13 z " + inkscape:radius="-1.0054175" + sodipodi:type="inkscape:offset" /> + </g> + <g + id="g7999" + transform="translate(-220,0)"> + <path + sodipodi:nodetypes="cccc" + id="path7621" + d="M 141.5,35 L 141.5,13.000461 L 159.99577,24.010194 L 141.5,35 z" + style="fill:url(#linearGradient3199);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" /> + <path + transform="translate(120,0)" + d="M 22.5,14.78125 L 22.5,33.21875 L 38.03125,24 L 22.5,14.78125 z" + id="path7627" + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3235);stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + inkscape:original="M 21.5 13 L 21.5 35 L 40 24 L 21.5 13 z " + inkscape:radius="-1.0054175" + sodipodi:type="inkscape:offset" /> + </g> + <rect + style="fill:url(#linearGradient3201);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1" + id="rect7623" + width="4.9886603" + height="23.000002" + x="-60.488663" + y="12.5" + rx="0.55242717" + ry="0.55242717" /> + <rect + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3237);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1" + id="rect7625" + width="3.0097761" + height="21.000002" + x="-59.483948" + y="13.5" + rx="0" + ry="0" /> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/network-wired.svg b/icons/PyHoca/scalable/network-wired.svg new file mode 100644 index 0000000..d96da8e --- /dev/null +++ b/icons/PyHoca/scalable/network-wired.svg @@ -0,0 +1,661 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7541" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7543"> + <linearGradient + inkscape:collect="always" + id="linearGradient7812"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop7814" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop7816" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7812" + id="linearGradient7818" + x1="-6.40625" + y1="32.4375" + x2="-7.78125" + y2="34.5625" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(19.999794,6.7695801e-5)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7269" + id="linearGradient7574" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1249999,0,0,1.1666666,15.874793,-34.13535)" + x1="-4.1097827" + y1="58.807774" + x2="-4.1097827" + y2="55.000004" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7660"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop7662" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop7664" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7660" + id="linearGradient7666" + x1="41.1875" + y1="38.3125" + x2="42.123722" + y2="42.9375" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-2.0655489e-4,6.7695801e-5)" /> + <linearGradient + id="linearGradient7576"> + <stop + style="stop-color:#888a85;stop-opacity:1" + offset="0" + id="stop7578" /> + <stop + style="stop-color:#888a85;stop-opacity:0" + offset="1" + id="stop7580" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7576" + id="linearGradient7582" + x1="38.75" + y1="40.625" + x2="40.125" + y2="46.5625" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-2.0655489e-4,6.7695801e-5)" /> + <linearGradient + id="linearGradient7652"> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="0" + id="stop7654" /> + <stop + style="stop-color:#babdb6;stop-opacity:0" + offset="1" + id="stop7656" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7652" + id="linearGradient7658" + x1="37.625" + y1="40.3125" + x2="38.875" + y2="45.0625" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-2.0655489e-4,6.7695801e-5)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7422" + id="linearGradient7452" + gradientUnits="userSpaceOnUse" + x1="30.3125" + y1="27.313059" + x2="30.3125" + y2="24.6875" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7422" + id="linearGradient7450" + gradientUnits="userSpaceOnUse" + x1="30.3125" + y1="27.313059" + x2="30.3125" + y2="24.6875" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7422" + id="linearGradient7448" + gradientUnits="userSpaceOnUse" + x1="30.3125" + y1="27.313059" + x2="30.3125" + y2="24.6875" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7422" + id="linearGradient7446" + gradientUnits="userSpaceOnUse" + x1="30.3125" + y1="27.313059" + x2="30.3125" + y2="24.6875" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7422"> + <stop + style="stop-color:#edd400;stop-opacity:1;" + offset="0" + id="stop7424" /> + <stop + style="stop-color:#edd400;stop-opacity:0;" + offset="1" + id="stop7426" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7422" + id="linearGradient7428" + x1="30.3125" + y1="27.313059" + x2="30.3125" + y2="24.6875" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7430"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop7432" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop7434" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7430" + id="linearGradient7436" + x1="28.875" + y1="29" + x2="29" + y2="16" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0.9997935,-6.9999327)" /> + <linearGradient + id="linearGradient7340"> + <stop + style="stop-color:#2e3436;stop-opacity:1;" + offset="0" + id="stop7342" /> + <stop + style="stop-color:#555753;stop-opacity:1" + offset="1" + id="stop7344" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7340" + id="linearGradient7346" + x1="32.8125" + y1="21" + x2="32.8125" + y2="26.204767" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0874899,0,0,1.086371,-1.5811596,-8.9432787)" /> + <linearGradient + id="linearGradient7277"> + <stop + style="stop-color:#555753;stop-opacity:1" + offset="0" + id="stop7279" /> + <stop + style="stop-color:#d3d7cf;stop-opacity:1" + offset="1" + id="stop7281" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7277" + id="linearGradient7567" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,1.0285717,-4,-25.142872)" + x1="-3.5355339" + y1="55.866562" + x2="-3.5355339" + y2="59.444622" /> + <linearGradient + id="linearGradient7186"> + <stop + style="stop-color:#888a85;stop-opacity:1;" + offset="0" + id="stop7188" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop7190" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7186" + id="linearGradient7565" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-4,-24)" + x1="-5.96875" + y1="52.875" + x2="-5.96875" + y2="51.812416" /> + <linearGradient + id="linearGradient7245"> + <stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop7247" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop7249" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7245" + id="linearGradient7563" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-4,-24)" + x1="-5.0823302" + y1="50.51907" + x2="0.26516503" + y2="49.458408" /> + <linearGradient + id="linearGradient7237"> + <stop + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" + id="stop7239" /> + <stop + style="stop-color:#babdb6;stop-opacity:1;" + offset="1" + id="stop7241" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7237" + id="linearGradient7561" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-4,-24)" + x1="-4.6845822" + y1="52.640388" + x2="0.88388348" + y2="50.563263" /> + <linearGradient + id="linearGradient7257"> + <stop + id="stop7259" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop7261" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7257" + id="linearGradient7559" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-4,-24)" + x1="-1.9887378" + y1="51.137787" + x2="-3.3587573" + y2="54" /> + <linearGradient + id="linearGradient7269"> + <stop + id="stop7271" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop7273" + offset="1" + style="stop-color:#d3d7cf;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7269" + id="linearGradient7557" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9642856,0,0,0.9722222,-0.2500008,1.6944444)" + x1="-4.2208939" + y1="59.878922" + x2="-4.2208939" + y2="54.707691" /> + <linearGradient + id="linearGradient7263"> + <stop + id="stop7265" + offset="0" + style="stop-color:#adb0a8;stop-opacity:1;" /> + <stop + id="stop7267" + offset="1" + style="stop-color:#ffffff;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7263" + id="linearGradient7555" + gradientUnits="userSpaceOnUse" + x1="1.6256078" + y1="55.219357" + x2="0.82206726" + y2="54.415817" /> + <filter + inkscape:collect="always" + id="filter5406"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.78208031" + id="feGaussianBlur5408" /> + </filter> + <linearGradient + inkscape:collect="always" + id="linearGradient7688"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop7690" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop7692" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7688" + id="linearGradient7694" + x1="28.625" + y1="41.125" + x2="30.5" + y2="47.8125" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7438"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop7440" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop7442" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7438" + id="linearGradient7444" + x1="-7.8516631" + y1="3.7545938" + x2="-5.5098634" + y2="18.937717" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient6991"> + <stop + style="stop-color:#d3d7cf;stop-opacity:1" + offset="0" + id="stop6993" /> + <stop + style="stop-color:#ffffff;stop-opacity:1" + offset="1" + id="stop6995" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6991" + id="linearGradient6047" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.0000002,0,0,1.9333333,43.499797,0.5334007)" + x1="-7.975069" + y1="25.357235" + x2="-11.005972" + y2="-6.5683565" /> + <filter + inkscape:collect="always" + id="filter5386"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.26293105" + id="feGaussianBlur5388" /> + </filter> + <linearGradient + inkscape:collect="always" + id="linearGradient7822"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop7824" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop7826" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient7822" + id="radialGradient7828" + cx="14.363107" + cy="34.785942" + fx="14.363107" + fy="34.785942" + r="8.7946405" + gradientTransform="matrix(1,0,0,0.6884422,0,10.837832)" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="688" + inkscape:window-x="1037" + inkscape:window-y="333" /> + <metadata + id="metadata7546"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642" + d="M 4.9997935,12.000068 L 7.9997935,12.000068 L 9.9997935,12.000068 L 6.9997935,12.000068 L 4.9997935,12.000068 z" + id="path7013" + sodipodi:nodetypes="ccccc" /> + <path + sodipodi:type="arc" + style="opacity:0.45895523;fill:url(#radialGradient7828);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1" + id="path7820" + sodipodi:cx="14.363107" + sodipodi:cy="34.785942" + sodipodi:rx="8.7946405" + sodipodi:ry="6.0546017" + d="M 23.157747,34.785942 A 8.7946405,6.0546017 0 1 1 5.5684662,34.785942 A 8.7946405,6.0546017 0 1 1 23.157747,34.785942 z" + transform="matrix(1.1559927,0,0,1.1167882,-1.4894456,-5.8125237)" /> + <rect + style="opacity:0.1204819;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642;filter:url(#filter5386)" + id="rect7696" + width="32.000004" + height="29" + x="15.375001" + y="2.875" + rx="3.7225697" + ry="3.7225697" + transform="matrix(1.015625,0,0,1.015625,-0.4904406,-0.2714167)" /> + <rect + style="fill:url(#linearGradient6047);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642" + id="rect5925" + width="32.000004" + height="29" + x="14.499794" + y="1.5000677" + rx="2.8766227" + ry="2.780735" /> + <path + sodipodi:type="inkscape:offset" + inkscape:radius="-0.99866015" + inkscape:original="M -12.5 0.5 C -13.608449 0.5 -14.5 1.3915505 -14.5 2.5 L -14.5 13.5 C -14.5 14.608449 -13.60845 15.5 -12.5 15.5 L -0.5 15.5 C 0.60844948 15.5 1.5 14.60845 1.5 13.5 L 1.5 2.5 C 1.5 1.3915505 0.60844948 0.5 -0.5 0.5 L -12.5 0.5 z " + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7444);stroke-width:0.47289538;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642" + id="path6964" + d="M -12.5,1.5 C -13.072952,1.5 -13.5,1.9270471 -13.5,2.5 L -13.5,13.5 C -13.5,14.072953 -13.072954,14.5 -12.5,14.5 L -0.5,14.5 C 0.072953444,14.5 0.5,14.072954 0.5,13.5 L 0.5,2.5 C 0.5,1.9270468 0.072953144,1.5 -0.5,1.5 L -12.5,1.5 z" + transform="matrix(2.1428572,0,0,2.0867798,44.428365,-0.630102)" /> + <path + sodipodi:type="inkscape:offset" + inkscape:radius="0.50945717" + inkscape:original="M 14.8125 31.5 C 14.8125 31.5 10.498126 34.830189 6.59375 38.0625 C 4.6415622 39.678655 2.8956918 41.28355 1.875 42.84375 C 1.3646541 43.62385 0.8878846 44.466971 1.21875 45.625 C 1.3841827 46.204014 1.8301355 46.746216 2.3125 47.03125 C 2.7948645 47.316284 3.2706533 47.437479 3.8125 47.5 C 5.9363798 47.745063 8.5434834 47.106406 11.65625 46.21875 C 14.769017 45.331094 18.325496 44.136387 21.90625 42.96875 C 25.487004 41.801113 29.102635 40.662687 32.25 39.96875 C 35.397365 39.274813 38.085104 39.083776 39.625 39.46875 C 40.353931 39.650983 40.370552 39.769574 40.375 39.78125 C 40.379448 39.792926 40.439577 40.11668 40.15625 40.71875 C 39.589596 41.92289 37.911115 43.835283 35.96875 45.65625 C 32.08402 49.298184 27.125 52.78125 27.125 52.78125 L 28.875 55.21875 C 28.875 55.21875 33.91598 51.701816 38.03125 47.84375 C 40.088885 45.914717 41.910404 43.95211 42.84375 41.96875 C 43.310423 40.97707 43.620552 39.855512 43.1875 38.71875 C 42.754448 37.5819 88 41.64 6069 36.849017 40.375 36.53125 C 37.914896 35.916224 34.93076 36.32675 31.59375 37.0625 C 28.25674 37.79825 24.575496 38.917637 20.96875 40.09375 C 17.362004 41.269863 13.840358 42.489218 10.84375 43.34375 C 7.9314529 44.174239 5.5458184 44.563842 4.375 44.46875 C 4.9949332 43.521138 6.6709378 41.915095 8.53125 40.375 C 12.251874 37.294811 16.5 34 16.5 34 L 14.8125 31.5 z " + style="opacity:0.31927712;fill:url(#linearGradient7694);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter5406)" + id="path7678" + d="M 14.6875,31 C 14.619177,31.017916 14.555326,31.049841 14.5,31.09375 C 14.5,31.09375 10.195229,34.415989 6.28125,37.65625 C 4.316376,39.282908 2.5162731,40.913519 1.4375,42.5625 C 0.91466802,43.361686 0.33442463,44.404861 0.71875,45.75 C 0.9275427,46.480774 1.4549221,47.109726 2.0625,47.46875 C 2.6167319,47.796251 3.1674141,47.932778 3.75,48 C 6.0211642,48.262057 8.6583138,47.609306 11.78125,46.71875 C 14.911534,45.826099 18.484598,44.604207 22.0625,43.4375 C 25.639946,42.270942 29.261929,41.155126 32.375,40.46875 C 35.48201,39.783711 38.133895,39.627224 39.5,39.96875 C 39.718805,40.023451 39.763413,40.030877 39.84375,40.0625 C 39.824168,40.168535 39.78709,40.288372 39.6875,40.5 C 39.197395,41.541473 37.544362,43.481849 35.625,45.28125 C 31.779852,48.886076 26.84375,52.375 26.84375,52.375 C 26.730444,52.452627 26.653276,52.57271 26.629743,52.708026 C 26.60621,52.843342 26.638304,52.982428 26.71875,53.09375 L 28.46875,55.53125 C 28.637946,55.737822 28.937922,55.7787 28 29.15 625,55.625 C 29.15625,55.625 34.220988,52.113137 38.375,48.21875 C 40.448974,46.2744 42.325551,44.284766 43.3125,42.1875 C 43.80516,41.140598 44.157793,39.847802 43.65625,38.53125 C 43.146184,37.192325 41.882294,36.376823 40.5,36.03125 C 37.894103,35.379776 34.829212,35.821579 31.46875,36.5625 C 28.102571,37.304681 24.425802,38.446749 20.8125,39.625 C 17.200009,40.802986 13.693676,41.995401 10.71875,42.84375 C 8.5379899,43.465629 6.8269173,43.771279 5.59375,43.875 C 6.3789191,42.999609 7.4710187,41.917692 8.84375,40.78125 C 12.555108,37.708732 16.8125,34.40625 16.8125,34.40625 C 17.029502,34.246251 17.084294,33.944894 16.9375,33.71875 L 15.25,31.21875 C 15.130504,31.030679 14.902661,30.942074 14.6875,31 L 14.6875,31 z" + transform="translate(0.2497934,-0.6249323)" /> + <g + id="g7542" + transform="translate(19.999794,6.7695801e-5)"> + <g + transform="matrix(1.1666667,0,0,1.2,-3.833333,-36.2)" + id="g7162"> + <path + style="fill:url(#linearGradient7555);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642" + d="M -2.34375,51 C -2.5485199,51 -2.7249072,51.101237 -2.84375,51.25 L -6.859375,55.25 C -6.8943841,55.381797 -6.9584881,55.521336 -7,55.65625 L -7,61.177083 C -7,61.540646 -6.7034811,61.833333 -6.34375,61.833333 L 0.34375,61.833333 C 0.52361547,61.833333 0.6951329,61.76445 0.8125,61.645833 L 4.8125,57.645833 C 4.9298671,57.527216 5,57.358864 5,57.177083 L 5,51.65625 C 5,51.474469 4.9298671,51.306117 4.8125,51.1875 C 4.6934039,51.068883 4.5236156,51 4.34375,51 L -2.34375,51 z" + id="rect6100" + sodipodi:nodetypes="cccccccccccscc" /> + <path + sodipodi:nodetypes="ccccccccc" + style="fill:url(#linearGradient7557);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642" + d="M -6.3738568,55.166667 L 0.088142442,55.166667 C 0.43502581,55.166667 0.71428575,55.451224 0.71428575,55.804688 L 0.71428575,61.195312 C 0.71428575,61.548776 0.43502581,61.833333 0.088142442,61.833333 L -6.3738568,61.833333 C -6.7207401,61.833333 -7,61.548776 -7,61.195312 L -7,55.804688 C -7,55.451224 -6.7207401,55.166667 -6.3738568,55.166667 z" + id="path6105" /> + </g> + <path + sodipodi:nodetypes="ccccc" + id="path7253" + d="M -5,25 L -10,30 L -6,30 L -1,25 L -5,25" + style="opacity:0.12313436;fill:url(#linearGradient7559);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccccc" + id="path6126" + d="M -1,25 L -10.5,29 L -7,29 L -2,26 L -1,25" + style="fill:#babdb6;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="csssccccccssssccsccsccsccccscc" + id="path7235" + d="M -6.5625,25.5 C -6.586332,25.5 -6.617114,25.506448 -6.71875,25.625 C -6.748761,25.647634 -6.780064,25.668503 -6.8125,25.6875 C -6.832372,25.709273 -6.853227,25.730128 -6.875,25.75 C -6.894872,25.771773 -6.915727,25.792628 -6.9375,25.8125 L -6.96875,25.8125 C -6.988622,25.834273 -7.009477,25.855128 -7.03125,25.875 L -7.21875,26.0625 C -7.325593,26.162845 -7.453812,26.237639 -7.59375,26.28125 L -11.84375,27.5 C -12.244246,27.708356 -12.377785,27.84932 -12.4375,27.96875 C -12.438388,27.970526 -12.403483,28.103321 -12.4375,28.0625 C -12.355653,28.160716 -12.077127,28.314744 -11.59375,28.40625 C -11.253853,28.475121 -10.976692,28.720417 -10.867022,29.049424 C -10.757353,29.378432 -10.831905,29.740965 -11.0625,30 L -11.40625,30.375 C -11.426065,30.462564 -11.460093,30.545084 -11.5,30.6875 C -11.507455,30.714105 -11.491841,30.722726 -11.5,30.75 L -11.5,37.25 C -11.5,37.304188 -11.499624,37.365539 -11.4375,37.4375 C -11.40601,37.473977 -11.334247,37.5 -11.28125,37.5 L - 3.4375,3 7.5 C -3.344928,37.5 -3.269061,37.4898 -3.21875,37.4375 C -3.218918,37.427084 -3.218918,37.416666 -3.21875,37.40625 L 1.4375,32.59375 C 1.489686,32.539502 1.5,32.514607 1.5,32.40625 L 1.5,25.78125 C 1.5,25.6729 1.489688,25.616751 1.4375,25.5625 C 1.400675,25.524775 1.282521,25.5 1.25,25.5 L -6.5625,25.5 z" + style="opacity:0.53358208;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccccccsssccssccsccccccscc" + id="path7229" + d="M -6.5625,24.53125 C -6.950241,24.53125 -7.254192,24.749731 -7.46875,25 L -7.5,24.96875 L -7.53125,25.03125 L -7.875,25.34375 L -12.125,26.5625 C -12.157264,26.569585 -12.188688,26.58006 -12.21875,26.59375 C -12.767664,26.868207 -13.120777,27.147804 -13.3125,27.53125 C -13.504223,27.914696 -13.429021,28.397675 -13.1875,28.6875 C -12.859423,29.081192 -12.329894,29.239888 -11.78125,29.34375 L -12.1875,29.78125 C -12.243792,29.832657 -12.286698,29.897016 -12.3125,29.96875 C -12.343846,30.090131 -12.382395,30.284537 -12.4375,30.46875 C -12.45362,30.50878 -12.464136,30.550844 -12.46875,30.59375 L -12.46875,37.25 C -12.46875,37.54887 -12.355519,37.831675 -12.15625,38.0625 C -11.956981,38.293325 -11.645384,38.46875 -11.28125,38.46875 L -3.4375,38.46875 C -3.113867,38.46875 -2.780607,38.352963 -2.53125,38.09375 L 2.125,33.28125 C 2.35088,33.046445 2.46875,32.741604 2.46875,32.40625 L 2.46875,25.78125 C 2.46875,25.445897 2.350877,25.141055 2.125,24.90625 C 1.901344,24.677 132 1.57 3636,24.53125 1.25,24.53125 L -6.5625,24.53125 z" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cccccc" + id="path7184" + d="M -1,25 L -12,27.5 L -10,29 L -7,29 L -2,26 L -1,25" + style="fill:url(#linearGradient7561);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccccc" + id="path7171" + d="M -5,25 L -12,27 L -8,27 L -1,25 L -5,25" + style="fill:url(#linearGradient7563);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cccccc" + id="rect7173" + d="M -12,27 L -8.2868349,27 L -8,27 C -10,28 -8.5,29 -7,29 L -11,29 C -12.5,29 -14,28 -12,27 z" + style="fill:url(#linearGradient7565);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" /> + <path + style="fill:url(#linearGradient7567);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642" + d="M -9.5941664,32 L -5.405834,32 C -5.181002,32 -5,32.195125 -5,32.4375 L -5,35.5625 C -5,35.804876 -5.181002,36 -5.405834,36 L -9.5941664,36 C -9.8189979,36 -10,35.804876 -10,35.5625 L -10,32.4375 C -10,32.195125 -9.8189979,32 -9.5941664,32 z" + id="path7275" /> + </g> + <path + style="opacity:1;fill:url(#linearGradient7346);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1" + d="M 29.480271,10.068213 C 28.841256,10.068213 28.324813,10.584125 28.324813,11.222482 L 28.324813,11.51027 C 28.324813,11.803492 28.095501,12.053455 27.781068,12.053455 L 26.217801,12.053455 C 25.578786,12.053455 25.062343,12.756867 25.062343,13.395224 L 25.062343,19.840153 C 25.062343,20.478511 25.578787,20.994422 26.217801,20.994422 L 34.781785,20.994422 C 35.4208,20.994422 35.937243,20.47851 35.937243,19.840153 L 35.937243,13.395224 C 35.937243,12.756866 35.420801,12.053455 34.781785,12.053455 L 33.218518,12.053455 C 32.956741,12.071123 32.674773,11.867159 32.674773,11.527244 L 32.674773,11.222482 C 32.674773,10.584124 32.158329,10.068213 31.519315,10.068213 L 29.480271,10.068213 z" + id="rect7327" + sodipodi:nodetypes="ccccccccccccccccc" /> + <path + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7436);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:1" + d="M 29.562293,9.4375677 C 28.452937,9.4375677 27.577607,10.345581 27.499793,11.437568 L 26.562293,11.437568 C 25.403213,11.437568 24.437293,12.403489 24.437293,13.562568 L 24.437293,19.437567 C 24.437293,20.596647 25.403214,21.562567 26.562293,21.562567 L 34.437293,21.562567 C 35.596373,21.562567 36.562293,20.596646 36.562293,19.437567 L 36.562293,13.562568 C 36.562293,12.403491 35.596372,11.437568 34.437293,11.437568 L 33.499793,11.437568 C 33.421979,10.34558 32.546648,9.4375677 31.437293,9.4375677 L 29.562293,9.4375677 z" + id="path7350" + sodipodi:nodetypes="ccccccccccccc" /> + <g + id="g7393" + style="fill-opacity:1;stroke:url(#linearGradient7428)" + transform="translate(0.9997935,-7.9999327)"> + <path + sodipodi:nodetypes="cc" + id="path7352" + d="M 26.5,26.5 L 26.5,24.5" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7446);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + id="path7362" + d="M 28.5,26.5 L 28.5,24.5" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7448);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + id="path7364" + d="M 30.5,26.5 L 30.5,24.5" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7450);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + id="path7366" + d="M 32.5,26.5 L 32.5,24.5" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7452);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <path + style="fill:url(#linearGradient7658);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7582);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 14.687294,30.562567 C 14.687294,30.562567 10.49792,33.830256 6.5935435,37.062567 C 4.6413557,38.678722 2.8954853,40.283617 1.8747935,41.843817 C 1.3644476,42.623917 0.88767815,43.467038 1.2185435,44.625067 C 1.3839762,45.204081 1.829929,45.746283 2.3122935,46.031317 C 2.794658,46.316351 3.2704468,46.437546 3.8122935,46.500067 C 5.9361733,46.74513 8.5432769,46.106473 11.656044,45.218817 C 14.768811,44.331161 18.32529,43.136454 21.906043,41.968817 C 25.486797,40.80118 29.102428,39.662754 32.249793,38.968817 C 35.397158,38.27488 38.084897,38.083843 39.624793,38.468817 C 40.353724,38.65105 40.370345,38.769641 40.374793,38.781317 C 40.379241,38.792993 40.43937,39.116747 40.156043,39.718817 C 39.589389,40.922957 37.910908,42.83535 35.968543,44.656317 C 32.083813,48.298251 27.124793,51.781317 27.124793,51.781317 L 28.874793,54.218817 C 28.874793,54.218817 33.915773,50.701883 38.031043,46.843817 C 40.088678,44.914784 41.910197,42.952177 42.843543,40.968817 C 43.310216,39 .977137 43.620345,38.855579 43.187293,37.718817 C 42.754241,36.582055 41.645862,35.849084 40.374793,35.531317 C 37.914689,34.916291 34.930553,35.326817 31.593543,36.062567 C 28.256533,36.798317 24.575289,37.917704 20.968543,39.093817 C 17.361798,40.26993 13.840152,41.489285 10.843544,42.343817 C 7.9312464,43.174306 5.5456119,43.563909 4.3747935,43.468817 C 4.9947267,42.521205 6.6707313,40.915162 8.5310435,39.375067 C 12.251668,36.294878 16.499794,33.000067 16.499794,33.000067 L 14.687294,30.562567 z" + id="path7506" + sodipodi:nodetypes="cssssssssssssccssssssscscc" /> + <path + style="opacity:0.19029852;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7666);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 15.672129,31.269674 C 15.672129,31.269674 -2.7653716,43.957174 3.7346285,44.707174 C 10.234629,45.457174 31.734628,34.707174 39.734628,36.707174 C 47.734628,38.707174 27.734628,52.707174 27.734628,52.707174" + id="path7502" + sodipodi:nodetypes="cssc" /> + <path + style="fill:url(#linearGradient7574);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642" + d="M 10.088563,30.031317 L 10.406044,32.031317 L 14.593544,32.031317 C 14.818376,32.031317 14.999794,32.226442 14.999794,32.468817 L 14.999794,35.593817 L 16.999794,35.281317 L 16.999794,30.812567 C 16.999794,30.38841 16.68574,30.031317 16.281044,30.031317 L 10.088563,30.031317 z" + id="path7512" + sodipodi:nodetypes="ccccccccc" /> + <path + style="opacity:0.35447765;fill:url(#linearGradient7818);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0.69999992;stroke-opacity:0.99236642" + d="M 10.405627,32.000067 L 14.59396,32.000067 C 14.818792,32.000067 14.999794,32.195192 14.999794,32.437567 L 14.999794,35.562567 C 14.999794,35.804943 14.818792,36.000067 14.59396,36.000067 L 10.405627,36.000067 C 10.180796,36.000067 9.9997935,35.804943 9.9997935,35.562567 L 9.9997935,32.437567 C 9.9997935,32.195192 10.180796,32.000067 10.405627,32.000067 z" + id="path7810" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/profile_add.svg b/icons/PyHoca/scalable/profile_add.svg new file mode 120000 index 0000000..742bd8e --- /dev/null +++ b/icons/PyHoca/scalable/profile_add.svg @@ -0,0 +1 @@ +list-add.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/profile_delete.svg b/icons/PyHoca/scalable/profile_delete.svg new file mode 120000 index 0000000..e3a4068 --- /dev/null +++ b/icons/PyHoca/scalable/profile_delete.svg @@ -0,0 +1 @@ +edit-delete.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/profile_edit.svg b/icons/PyHoca/scalable/profile_edit.svg new file mode 120000 index 0000000..b3fad1b --- /dev/null +++ b/icons/PyHoca/scalable/profile_edit.svg @@ -0,0 +1 @@ +gtk-edit.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/profile_save.svg b/icons/PyHoca/scalable/profile_save.svg new file mode 120000 index 0000000..e2277db --- /dev/null +++ b/icons/PyHoca/scalable/profile_save.svg @@ -0,0 +1 @@ +document-save.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/pyhoca-session.svg b/icons/PyHoca/scalable/pyhoca-session.svg new file mode 100644 index 0000000..e1588b8 --- /dev/null +++ b/icons/PyHoca/scalable/pyhoca-session.svg @@ -0,0 +1,568 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7187" + sodipodi:version="0.32" + inkscape:version="0.47 r22583" + sodipodi:docname="auth_error.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1"> + <defs + id="defs7189"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 24 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="48 : 24 : 1" + inkscape:persp3d-origin="24 : 16 : 1" + id="perspective3859" /> + <linearGradient + inkscape:collect="always" + id="linearGradient4873"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4875" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop4877" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4873" + id="linearGradient2704" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.3440063,0,0,2.3440063,-121.79862,31.22942)" + x1="62.745731" + y1="-13.444987" + x2="62.608765" + y2="7.1072145" /> + <linearGradient + id="linearGradient3811"> + <stop + id="stop3813" + offset="0" + style="stop-color:#a40000;stop-opacity:1" /> + <stop + id="stop3815" + offset="1" + style="stop-color:#c22f2f;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3811" + id="linearGradient3927" + x1="15.046636" + y1="44.787998" + x2="15.046636" + y2="3.8851264" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0805272,0,0,1.0805026,-1.508285,-3.3507596)" /> + <linearGradient + id="linearGradient5106"> + <stop + style="stop-color:#e78181;stop-opacity:1" + offset="0" + id="stop5108" /> + <stop + id="stop8208" + offset="0.25288007" + style="stop-color:#e15f5f;stop-opacity:1" /> + <stop + style="stop-color:#c22f2f;stop-opacity:1" + offset="0.68271071" + id="stop8210" /> + <stop + style="stop-color:#a40000;stop-opacity:1" + offset="1" + id="stop5110" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5106" + id="radialGradient2707" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-7.565785,-6.219707e-7,3.9644633e-7,-4.8230546,494.60904,-26.555114)" + cx="62.202274" + cy="-5.7132163" + fx="62.202274" + fy="-5.7132163" + r="9.7552835" /> + <linearGradient + id="linearGradient10691" + inkscape:collect="always"> + <stop + id="stop10693" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop10695" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient10691" + id="radialGradient3080" + gradientUnits="userSpaceOnUse" + gradientTransform="scale(1.902215,0.525703)" + cx="6.702713" + cy="73.615715" + fx="6.702713" + fy="73.615715" + r="7.228416" /> + <inkscape:perspective + id="perspective3453" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <pattern + inkscape:stockid="Wavy" + id="Wavy" + height="5.1805778" + width="30.066020" + patternUnits="userSpaceOnUse" + inkscape:collect="always"> + <path + id="path5228" + d="M 7.597,0.061 C 5.079,-0.187 2.656,0.302 -0.01,1.788 L -0.01,3.061 C 2.773,1.431 5.173,1.052 7.472,1.280 C 9.770,1.508 11.969,2.361 14.253,3.218 C 18.820,4.931 23.804,6.676 30.066,3.061 L 30.062,1.788 C 23.622,5.497 19.246,3.770 14.691,2.061 C 12.413,1.207 10.115,0.311 7.597,0.061 z " + style="fill:black;stroke:none;" /> + </pattern> + <filter + color-interpolation-filters="sRGB" + inkscape:collect="always" + id="filter5442"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.57490299" + id="feGaussianBlur5444" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5430" + id="linearGradient5436" + x1="185" + y1="1047.3622" + x2="185" + y2="796.36218" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5430"> + <stop + style="stop-color:#906f6f;stop-opacity:1;" + offset="0" + id="stop5432" /> + <stop + style="stop-color:#906f6f;stop-opacity:0;" + offset="1" + id="stop5434" /> + </linearGradient> + <filter + color-interpolation-filters="sRGB" + inkscape:collect="always" + id="filter6083"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="3.312185" + id="feGaussianBlur6085" /> + </filter> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3785" + id="radialGradient5416" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1160336,-4.3876452,5.2088758,1.3249203,-2874.6294,1237.254)" + cx="315.79904" + cy="584.86487" + fx="315.79904" + fy="584.86487" + r="65.742714" /> + <linearGradient + id="linearGradient3785"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3787" /> + <stop + style="stop-color:#969696;stop-opacity:1;" + offset="1" + id="stop3789" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5937" + id="linearGradient5418" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" + x1="310.53839" + y1="551.9931" + x2="324.48233" + y2="615.26996" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5937"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5939" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5941" /> + </linearGradient> + <filter + color-interpolation-filters="sRGB" + inkscape:collect="always" + id="filter6139"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.78400333" + id="feGaussianBlur6141" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5947" + id="linearGradient5420" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" + x1="261.17963" + y1="635.13214" + x2="261.17963" + y2="612.84375" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5947"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5949" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5951" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5937" + id="linearGradient5422" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" + x1="387.78506" + y1="620.52393" + x2="378.39252" + y2="603.82446" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="23.859533" + inkscape:cy="34.916834" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1024" + inkscape:window-height="571" + inkscape:window-x="0" + inkscape:window-y="6" + inkscape:window-maximized="1" /> + <metadata + id="metadata7192"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + transform="matrix(0.38132965,0,0,0.38132965,-60.655233,-353.27311)" + style="display:inline" + id="g3410" + inkscape:export-filename="/home/mike/MyDocuments/4projects/nwt-x2go/pyhoca-gui/trunk/icons/PyHoca/pyhoca-trayicon.png" + inkscape:export-xdpi="457.14001" + inkscape:export-ydpi="457.14001"> + <rect + y="926.42456" + x="159.0625" + height="125.87531" + width="125.87534" + id="rect2927" + style="fill:none;stroke:#000000;stroke-width:0.01776883;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + <rect + y="932.37238" + x="165.00909" + height="114.98058" + width="114.98061" + id="rect5426" + style="fill:url(#Wavy);fill-opacity:1;stroke:none;filter:url(#filter5442)" + ry="14.010298" /> + <rect + ry="14.010298" + style="fill:url(#linearGradient5436);fill-opacity:1;stroke:#000000;stroke-width:2.01939631;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="rect5424" + width="114.98061" + height="114.98058" + x="165.00909" + y="932.37238" /> + <g + inkscape:export-ydpi="510.97" + inkscape:export-xdpi="510.97" + inkscape:export-filename="/home/mike/MyDocuments/4projects/nwt-x2go/pyhoca-gui/trunk/icons/PyHoca/pyhoca-trayicon.png" + id="g5356" + transform="matrix(0.40396742,0,0,0.40396742,19.556638,743.47149)"> + <path + sodipodi:nodetypes="cscscscssccc" + id="path5358" + d="m 316.61834,524.71563 c 26.41286,-0.50329 59.97357,20.96914 59.97357,54.77527 0,3.59736 -0.19322,7.03227 -0.56789,10.30345 18.06989,6.26688 16.71273,32.24949 4.78688,32.70339 -5.47132,0.20824 -3.56548,-18.31078 -10.6487,-17.92457 -7.89714,13.75136 -23.13,29.30724 -43.89259,30.96552 -18.87348,1.5074 -26.67203,-2.56514 -36.54057,-8.85826 -3.46673,2.19939 -7.55736,6.26792 -11.8477,7.98433 -9.00177,3.60129 -18.6864,4.30272 -18.6864,-5.73669 0,-8.21915 4.89649,-15.13053 12.51148,-17.381 -2.4969,-6.34498 -8.57035,-21.99078 -7.79103,-29.98531 0,-33.80609 29.80775,-56.84613 52.70295,-56.84613 z" + style="fill:#000000;fill-opacity:1;stroke:#737373;stroke-width:0.97799999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline;filter:url(#filter6083)" + transform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" /> + <path + style="fill:url(#radialGradient5416);fill-opacity:1;stroke:#737373;stroke-width:1.85168302;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" + d="m 494.14518,498.08769 c 50.00843,-0.9529 113.55014,39.70163 113.55014,103.70802 0,6.81101 -0.36583,13.31445 -1.0752,19.50789 34.21238,11.86532 31.64282,61.05914 9.06317,61.91853 -10.35905,0.39427 -6.75065,-34.66848 -20.16157,-33.93724 -14.95194,26.03594 -43.79287,55.48846 -83.10344,58.62814 -35.73385,2.85402 -50.49914,-4.85667 -69.1836,-16.77167 -6.56369,4.16419 -14.30863,11.86728 -22.43168,15.11703 -17.04338,6.81846 -35.37965,8.1465 -35.37965,-10.86149 0,-15.56161 9.27071,-28.64718 23.68844,-32.90808 -4.72747,-12.01317 -16.22655,-41.63594 -14.75104,-56.77228 0,-64.0063 56.4361,-107.62885 99.78443,-107.62885 z" + id="path5360" + sodipodi:nodetypes="cscscscssccc" /> + <path + style="fill:url(#linearGradient5418);fill-opacity:1;stroke:none;display:inline" + d="m 490.31195,501.99861 c -60.00789,5.2168 -107.09001,72.04563 -87.91275,130.02861 3.24896,11.23668 7.4696,22.02332 11.76512,32.91665 -17.10352,2.3543 -30.64729,22.97 -22.60171,38.87257 9.92701,7.54432 25.07255,0.6534 34.73089,-4.85167 7.42667,-3.29797 14.4103,-16.70707 22.4242,-8.81585 27.77649,18.77637 65.82806,19.08025 95.67267,4.67417 20.86926,-11.02272 37.47189,-28.76927 48.93091,-49.34508 14.74215,-1.58804 16.27001,17.47813 18.99254,27.45338 0.40886,4.51328 3.3967,8.81801 7.98751,5.20668 14.08663,-11.21914 9.21231,-35.07831 -2.89918,-46.09092 -4.88828,-6.56095 -18.41674,-5.38103 -14.08168,-15.79752 5.24687,-35.96374 -12.50977,-72.63257 -42.30424,-92.47766 -20.53437,-14.48216 -45.42828,-23.02847 -70.70428,-21.77336 z" + id="path5362" /> + <g + id="g5364" + style="filter:url(#filter6139)" + transform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)"> + <path + style="fill:#000000" + d="m 298.82133,588.93345 c -2.29156,-1.78445 -2.67759,-2.6514 -2.36383,-5.30877 0.43402,-3.67579 2.33363,-6.95779 4.7302,-8.17246 2.89097,-1.46525 8.66145,0.59446 10.64667,3.80022 1.73266,2.79791 1.70055,3.08784 -0.64437,5.81654 -5.03306,5.85678 -8.44226,6.92196 -12.36867,3.86447 z m 0.41149,-3.50969 c -0.51028,-1.00681 -0.55336,-2.93153 -0.0957,-4.27716 0.75581,-2.22223 0.70222,-2.29827 -0.58439,-0.82916 -1.55776,1.77869 -1.11814,7.38176 0.55771,7.10826 0.59569,-0.0972 0.64864,-0.96358 0.12236,-2.00194 z m 42.53089,-10.56797 c -4.37619,-1.12247 -4.76359,-1.68534 -4.27461,-6.2109 0.71771,-6.64236 7.74124,-8.66 11.45175,-3.28971 l 1.4422,2.08734 -1.98548,-1.94863 c -2.57753,-2.52969 -4.41704,-2.25588 -1.93633,0.28823 1.03863,1.06518 2.01083,2.68676 2.16044,3.60351 0.14961,0.91674 0.85584,1.76277 1.56939,1.88004 1.01145,0.16623 1.05862,0.6223 0.21404,2.06936 -1.28705,2.20519 -4.06622,2.69428 -8.6414,1.52076 z" + id="path5366" + sodipodi:nodetypes="cssssccsssccscccssssc" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 326.7844,595.06579 c -2.46648,-3.36183 4.00801,-2.92998 8.50563,-3.66397 5.54213,-0.90445 8.50715,-10.28293 7.21632,-4.59151 -1.29085,5.69142 -3.73324,11.98871 -2.82879,17.53084 -7.35103,-10.17981 -10.42669,-5.91353 -12.89316,-9.27536 z" + id="path5368" + sodipodi:nodetypes="cszcz" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 320.3929,612.59663 c 11.98871,3.73323 13.94857,-6.3862 19.66087,-8.09427 6.9752,-2.08571 11.6125,3.57202 16.25018,-2.87455 -4.63768,6.44657 -10.95623,2.5679 -16.296,5.78527 -5.18035,3.1213 -7.62634,8.91678 -19.61505,5.18355 z" + id="path5370" + sodipodi:nodetypes="cscsc" /> + <path + style="fill:#ffffff;stroke:none" + d="m 336.68588,599.4815 c 0.006,-0.2019 -0.36096,-0.64796 -0.42276,-1.47067 -0.29657,-3.94831 -6.1911,-6.21808 -7.25759,-3.43571 -0.24338,0.63493 0.58774,1.16912 1.89749,1.23685 1.26995,0.0657 3.17607,1.09972 4.23457,2.30131 1.09251,1.24015 1.53854,1.70469 1.54829,1.36822 z" + id="path5372" + sodipodi:nodetypes="cssssc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5374" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(158.05541,475.03407)" /> + <path + transform="translate(162.2659,476.65349)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5376" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5378" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(159.35094,479.24456)" /> + <path + transform="translate(178.4601,467.90862)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5380" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5382" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(178.13622,471.79523)" /> + <path + transform="translate(182.02283,470.17581)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5384" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5386" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(142.83286,441.9979)" /> + <path + transform="translate(163.88532,436.81576)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5388" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + </g> + <path + style="fill:#000000" + d="m 460.44944,619.67363 c -4.33869,-3.37857 -5.06957,-5.01999 -4.47552,-10.05129 0.82174,-6.9595 4.41835,-13.17343 8.95586,-15.47322 5.47358,-2.7742 16.39904,1.12552 20.15773,7.1951 3.28051,5.29739 3.21971,5.84632 -1.22001,11.01267 -9.52928,11.08886 -15.98404,13.1056 -23.41806,7.31674 z m 0.77909,-6.64502 c -0.96613,-1.90623 -1.0477,-5.55038 -0.18119,-8.09811 1.431,-4.20743 1.32954,-4.35139 -1.10644,-1.56987 -2.94937,3.36765 -2.11702,13.97616 1.05592,13.45832 1.12785,-0.18403 1.2281,-1.82437 0.23167,-3.79034 z m 80.52529,-20.00873 c -8.2856,-2.12521 -9.01908,-3.19091 -8.09328,-11.75932 1.35887,-12.57622 14.65678,-16.3963 21.68203,-6.22853 l 2.73056,3.95204 -3.75918,-3.68942 c -4.88013,-4.78955 -8.36295,-4.27113 -3.66612,0.54573 1.96648,2.01674 3.80717,5.08693 4.09043,6.82265 0.28327,1.7357 1.6204,3.33752 2.97139,3.55955 1.91502,0.31473 2.00433,1.17822 0.40525,3.91799 -2.43681,4.17517 -7.69872,5.10118 -16.36108,2.87931 z" + id="path5390" + sodipodi:nodetypes="cssssccsssccscccssssc" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 543.50287,612.20201 c -1.0397,0.5283 -6.15268,10.84486 -14.02253,12.12919 -8.5155,1.38969 -20.76323,0.61661 -16.09335,6.98168 4.66985,6.36508 10.51789,-1.76044 24.43586,17.51336 -1.71242,-10.49311 2.881,-22.41678 5.32502,-33.19256 0.61099,-2.69393 0.70155,-3.60776 0.355,-3.43167 z M 521.552,627.99954 c 3.99071,0.0596 9.37648,3.73563 9.76251,8.87501 0.11701,1.55767 0.8397,2.39858 0.82834,2.78085 -0.0184,0.63705 -0.88985,-0.25532 -2.95834,-2.60335 -2.0041,-2.27501 -5.58307,-4.25394 -7.98752,-4.37833 -2.47979,-0.12824 -4.06997,-1.10537 -3.60917,-2.30751 0.63101,-1.64624 2.15021,-2.39375 3.96418,-2.36667 z" + id="path5392" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 501.29168,664.476 c 22.69867,7.06826 26.40934,-12.09123 37.22465,-15.32518 13.2064,-3.94896 21.98637,6.76303 30.76706,-5.44249 -8.78069,12.20552 -20.74383,4.8619 -30.85381,10.95346 -9.80815,5.90967 -14.43923,16.88247 -37.1379,9.81421 z" + id="path5394" + sodipodi:nodetypes="cscsc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5396" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,193.93219,404.02378)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,201.90406,407.08988)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5398" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5400" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,196.38506,411.99565)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,232.56513,390.5329)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5402" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5404" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,231.95192,397.89157)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,239.31058,394.82545)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5406" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5408" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,165.11077,341.47519)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,204.97017,331.66365)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5410" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + id="path5412" + d="m 414.16432,664.94387 c -17.10352,2.3543 -30.64729,22.97 -22.60171,38.87257 9.92701,7.54432 25.07255,0.6534 34.73089,-4.85167 7.42667,-3.29797 8.51536,-16.70707 16.52927,-8.81585 -12.5884,-9.64496 -22.24114,-11.62267 -28.65845,-25.20505 z" + style="fill:url(#linearGradient5420);fill-opacity:1;stroke:none;display:inline" + sodipodi:nodetypes="ccccc" /> + <path + id="path5414" + d="m 593.32128,645.47801 c 14.74215,-1.58804 16.27001,17.47813 18.99254,27.45338 0.40886,4.51328 3.3967,8.81801 7.98751,5.20668 14.08663,-11.21914 9.21231,-35.07831 -2.89918,-46.09092 -4.88828,-6.56095 -18.41674,-5.38103 -14.08168,-15.79752 l -9.99919,29.22838 z" + style="fill:url(#linearGradient5422);fill-opacity:1;stroke:none;display:inline" + sodipodi:nodetypes="cccccc" /> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/pyhoca-trayicon.svg b/icons/PyHoca/scalable/pyhoca-trayicon.svg new file mode 100644 index 0000000..e1588b8 --- /dev/null +++ b/icons/PyHoca/scalable/pyhoca-trayicon.svg @@ -0,0 +1,568 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7187" + sodipodi:version="0.32" + inkscape:version="0.47 r22583" + sodipodi:docname="auth_error.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1"> + <defs + id="defs7189"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 24 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="48 : 24 : 1" + inkscape:persp3d-origin="24 : 16 : 1" + id="perspective3859" /> + <linearGradient + inkscape:collect="always" + id="linearGradient4873"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4875" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop4877" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4873" + id="linearGradient2704" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.3440063,0,0,2.3440063,-121.79862,31.22942)" + x1="62.745731" + y1="-13.444987" + x2="62.608765" + y2="7.1072145" /> + <linearGradient + id="linearGradient3811"> + <stop + id="stop3813" + offset="0" + style="stop-color:#a40000;stop-opacity:1" /> + <stop + id="stop3815" + offset="1" + style="stop-color:#c22f2f;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3811" + id="linearGradient3927" + x1="15.046636" + y1="44.787998" + x2="15.046636" + y2="3.8851264" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0805272,0,0,1.0805026,-1.508285,-3.3507596)" /> + <linearGradient + id="linearGradient5106"> + <stop + style="stop-color:#e78181;stop-opacity:1" + offset="0" + id="stop5108" /> + <stop + id="stop8208" + offset="0.25288007" + style="stop-color:#e15f5f;stop-opacity:1" /> + <stop + style="stop-color:#c22f2f;stop-opacity:1" + offset="0.68271071" + id="stop8210" /> + <stop + style="stop-color:#a40000;stop-opacity:1" + offset="1" + id="stop5110" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5106" + id="radialGradient2707" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-7.565785,-6.219707e-7,3.9644633e-7,-4.8230546,494.60904,-26.555114)" + cx="62.202274" + cy="-5.7132163" + fx="62.202274" + fy="-5.7132163" + r="9.7552835" /> + <linearGradient + id="linearGradient10691" + inkscape:collect="always"> + <stop + id="stop10693" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop10695" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient10691" + id="radialGradient3080" + gradientUnits="userSpaceOnUse" + gradientTransform="scale(1.902215,0.525703)" + cx="6.702713" + cy="73.615715" + fx="6.702713" + fy="73.615715" + r="7.228416" /> + <inkscape:perspective + id="perspective3453" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <pattern + inkscape:stockid="Wavy" + id="Wavy" + height="5.1805778" + width="30.066020" + patternUnits="userSpaceOnUse" + inkscape:collect="always"> + <path + id="path5228" + d="M 7.597,0.061 C 5.079,-0.187 2.656,0.302 -0.01,1.788 L -0.01,3.061 C 2.773,1.431 5.173,1.052 7.472,1.280 C 9.770,1.508 11.969,2.361 14.253,3.218 C 18.820,4.931 23.804,6.676 30.066,3.061 L 30.062,1.788 C 23.622,5.497 19.246,3.770 14.691,2.061 C 12.413,1.207 10.115,0.311 7.597,0.061 z " + style="fill:black;stroke:none;" /> + </pattern> + <filter + color-interpolation-filters="sRGB" + inkscape:collect="always" + id="filter5442"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.57490299" + id="feGaussianBlur5444" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5430" + id="linearGradient5436" + x1="185" + y1="1047.3622" + x2="185" + y2="796.36218" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5430"> + <stop + style="stop-color:#906f6f;stop-opacity:1;" + offset="0" + id="stop5432" /> + <stop + style="stop-color:#906f6f;stop-opacity:0;" + offset="1" + id="stop5434" /> + </linearGradient> + <filter + color-interpolation-filters="sRGB" + inkscape:collect="always" + id="filter6083"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="3.312185" + id="feGaussianBlur6085" /> + </filter> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3785" + id="radialGradient5416" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1160336,-4.3876452,5.2088758,1.3249203,-2874.6294,1237.254)" + cx="315.79904" + cy="584.86487" + fx="315.79904" + fy="584.86487" + r="65.742714" /> + <linearGradient + id="linearGradient3785"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3787" /> + <stop + style="stop-color:#969696;stop-opacity:1;" + offset="1" + id="stop3789" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5937" + id="linearGradient5418" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" + x1="310.53839" + y1="551.9931" + x2="324.48233" + y2="615.26996" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5937"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5939" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5941" /> + </linearGradient> + <filter + color-interpolation-filters="sRGB" + inkscape:collect="always" + id="filter6139"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.78400333" + id="feGaussianBlur6141" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5947" + id="linearGradient5420" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" + x1="261.17963" + y1="635.13214" + x2="261.17963" + y2="612.84375" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5947"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5949" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5951" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5937" + id="linearGradient5422" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" + x1="387.78506" + y1="620.52393" + x2="378.39252" + y2="603.82446" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="23.859533" + inkscape:cy="34.916834" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1024" + inkscape:window-height="571" + inkscape:window-x="0" + inkscape:window-y="6" + inkscape:window-maximized="1" /> + <metadata + id="metadata7192"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + transform="matrix(0.38132965,0,0,0.38132965,-60.655233,-353.27311)" + style="display:inline" + id="g3410" + inkscape:export-filename="/home/mike/MyDocuments/4projects/nwt-x2go/pyhoca-gui/trunk/icons/PyHoca/pyhoca-trayicon.png" + inkscape:export-xdpi="457.14001" + inkscape:export-ydpi="457.14001"> + <rect + y="926.42456" + x="159.0625" + height="125.87531" + width="125.87534" + id="rect2927" + style="fill:none;stroke:#000000;stroke-width:0.01776883;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + <rect + y="932.37238" + x="165.00909" + height="114.98058" + width="114.98061" + id="rect5426" + style="fill:url(#Wavy);fill-opacity:1;stroke:none;filter:url(#filter5442)" + ry="14.010298" /> + <rect + ry="14.010298" + style="fill:url(#linearGradient5436);fill-opacity:1;stroke:#000000;stroke-width:2.01939631;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="rect5424" + width="114.98061" + height="114.98058" + x="165.00909" + y="932.37238" /> + <g + inkscape:export-ydpi="510.97" + inkscape:export-xdpi="510.97" + inkscape:export-filename="/home/mike/MyDocuments/4projects/nwt-x2go/pyhoca-gui/trunk/icons/PyHoca/pyhoca-trayicon.png" + id="g5356" + transform="matrix(0.40396742,0,0,0.40396742,19.556638,743.47149)"> + <path + sodipodi:nodetypes="cscscscssccc" + id="path5358" + d="m 316.61834,524.71563 c 26.41286,-0.50329 59.97357,20.96914 59.97357,54.77527 0,3.59736 -0.19322,7.03227 -0.56789,10.30345 18.06989,6.26688 16.71273,32.24949 4.78688,32.70339 -5.47132,0.20824 -3.56548,-18.31078 -10.6487,-17.92457 -7.89714,13.75136 -23.13,29.30724 -43.89259,30.96552 -18.87348,1.5074 -26.67203,-2.56514 -36.54057,-8.85826 -3.46673,2.19939 -7.55736,6.26792 -11.8477,7.98433 -9.00177,3.60129 -18.6864,4.30272 -18.6864,-5.73669 0,-8.21915 4.89649,-15.13053 12.51148,-17.381 -2.4969,-6.34498 -8.57035,-21.99078 -7.79103,-29.98531 0,-33.80609 29.80775,-56.84613 52.70295,-56.84613 z" + style="fill:#000000;fill-opacity:1;stroke:#737373;stroke-width:0.97799999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline;filter:url(#filter6083)" + transform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" /> + <path + style="fill:url(#radialGradient5416);fill-opacity:1;stroke:#737373;stroke-width:1.85168302;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" + d="m 494.14518,498.08769 c 50.00843,-0.9529 113.55014,39.70163 113.55014,103.70802 0,6.81101 -0.36583,13.31445 -1.0752,19.50789 34.21238,11.86532 31.64282,61.05914 9.06317,61.91853 -10.35905,0.39427 -6.75065,-34.66848 -20.16157,-33.93724 -14.95194,26.03594 -43.79287,55.48846 -83.10344,58.62814 -35.73385,2.85402 -50.49914,-4.85667 -69.1836,-16.77167 -6.56369,4.16419 -14.30863,11.86728 -22.43168,15.11703 -17.04338,6.81846 -35.37965,8.1465 -35.37965,-10.86149 0,-15.56161 9.27071,-28.64718 23.68844,-32.90808 -4.72747,-12.01317 -16.22655,-41.63594 -14.75104,-56.77228 0,-64.0063 56.4361,-107.62885 99.78443,-107.62885 z" + id="path5360" + sodipodi:nodetypes="cscscscssccc" /> + <path + style="fill:url(#linearGradient5418);fill-opacity:1;stroke:none;display:inline" + d="m 490.31195,501.99861 c -60.00789,5.2168 -107.09001,72.04563 -87.91275,130.02861 3.24896,11.23668 7.4696,22.02332 11.76512,32.91665 -17.10352,2.3543 -30.64729,22.97 -22.60171,38.87257 9.92701,7.54432 25.07255,0.6534 34.73089,-4.85167 7.42667,-3.29797 14.4103,-16.70707 22.4242,-8.81585 27.77649,18.77637 65.82806,19.08025 95.67267,4.67417 20.86926,-11.02272 37.47189,-28.76927 48.93091,-49.34508 14.74215,-1.58804 16.27001,17.47813 18.99254,27.45338 0.40886,4.51328 3.3967,8.81801 7.98751,5.20668 14.08663,-11.21914 9.21231,-35.07831 -2.89918,-46.09092 -4.88828,-6.56095 -18.41674,-5.38103 -14.08168,-15.79752 5.24687,-35.96374 -12.50977,-72.63257 -42.30424,-92.47766 -20.53437,-14.48216 -45.42828,-23.02847 -70.70428,-21.77336 z" + id="path5362" /> + <g + id="g5364" + style="filter:url(#filter6139)" + transform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)"> + <path + style="fill:#000000" + d="m 298.82133,588.93345 c -2.29156,-1.78445 -2.67759,-2.6514 -2.36383,-5.30877 0.43402,-3.67579 2.33363,-6.95779 4.7302,-8.17246 2.89097,-1.46525 8.66145,0.59446 10.64667,3.80022 1.73266,2.79791 1.70055,3.08784 -0.64437,5.81654 -5.03306,5.85678 -8.44226,6.92196 -12.36867,3.86447 z m 0.41149,-3.50969 c -0.51028,-1.00681 -0.55336,-2.93153 -0.0957,-4.27716 0.75581,-2.22223 0.70222,-2.29827 -0.58439,-0.82916 -1.55776,1.77869 -1.11814,7.38176 0.55771,7.10826 0.59569,-0.0972 0.64864,-0.96358 0.12236,-2.00194 z m 42.53089,-10.56797 c -4.37619,-1.12247 -4.76359,-1.68534 -4.27461,-6.2109 0.71771,-6.64236 7.74124,-8.66 11.45175,-3.28971 l 1.4422,2.08734 -1.98548,-1.94863 c -2.57753,-2.52969 -4.41704,-2.25588 -1.93633,0.28823 1.03863,1.06518 2.01083,2.68676 2.16044,3.60351 0.14961,0.91674 0.85584,1.76277 1.56939,1.88004 1.01145,0.16623 1.05862,0.6223 0.21404,2.06936 -1.28705,2.20519 -4.06622,2.69428 -8.6414,1.52076 z" + id="path5366" + sodipodi:nodetypes="cssssccsssccscccssssc" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 326.7844,595.06579 c -2.46648,-3.36183 4.00801,-2.92998 8.50563,-3.66397 5.54213,-0.90445 8.50715,-10.28293 7.21632,-4.59151 -1.29085,5.69142 -3.73324,11.98871 -2.82879,17.53084 -7.35103,-10.17981 -10.42669,-5.91353 -12.89316,-9.27536 z" + id="path5368" + sodipodi:nodetypes="cszcz" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 320.3929,612.59663 c 11.98871,3.73323 13.94857,-6.3862 19.66087,-8.09427 6.9752,-2.08571 11.6125,3.57202 16.25018,-2.87455 -4.63768,6.44657 -10.95623,2.5679 -16.296,5.78527 -5.18035,3.1213 -7.62634,8.91678 -19.61505,5.18355 z" + id="path5370" + sodipodi:nodetypes="cscsc" /> + <path + style="fill:#ffffff;stroke:none" + d="m 336.68588,599.4815 c 0.006,-0.2019 -0.36096,-0.64796 -0.42276,-1.47067 -0.29657,-3.94831 -6.1911,-6.21808 -7.25759,-3.43571 -0.24338,0.63493 0.58774,1.16912 1.89749,1.23685 1.26995,0.0657 3.17607,1.09972 4.23457,2.30131 1.09251,1.24015 1.53854,1.70469 1.54829,1.36822 z" + id="path5372" + sodipodi:nodetypes="cssssc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5374" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(158.05541,475.03407)" /> + <path + transform="translate(162.2659,476.65349)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5376" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5378" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(159.35094,479.24456)" /> + <path + transform="translate(178.4601,467.90862)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5380" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5382" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(178.13622,471.79523)" /> + <path + transform="translate(182.02283,470.17581)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5384" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5386" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(142.83286,441.9979)" /> + <path + transform="translate(163.88532,436.81576)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5388" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + </g> + <path + style="fill:#000000" + d="m 460.44944,619.67363 c -4.33869,-3.37857 -5.06957,-5.01999 -4.47552,-10.05129 0.82174,-6.9595 4.41835,-13.17343 8.95586,-15.47322 5.47358,-2.7742 16.39904,1.12552 20.15773,7.1951 3.28051,5.29739 3.21971,5.84632 -1.22001,11.01267 -9.52928,11.08886 -15.98404,13.1056 -23.41806,7.31674 z m 0.77909,-6.64502 c -0.96613,-1.90623 -1.0477,-5.55038 -0.18119,-8.09811 1.431,-4.20743 1.32954,-4.35139 -1.10644,-1.56987 -2.94937,3.36765 -2.11702,13.97616 1.05592,13.45832 1.12785,-0.18403 1.2281,-1.82437 0.23167,-3.79034 z m 80.52529,-20.00873 c -8.2856,-2.12521 -9.01908,-3.19091 -8.09328,-11.75932 1.35887,-12.57622 14.65678,-16.3963 21.68203,-6.22853 l 2.73056,3.95204 -3.75918,-3.68942 c -4.88013,-4.78955 -8.36295,-4.27113 -3.66612,0.54573 1.96648,2.01674 3.80717,5.08693 4.09043,6.82265 0.28327,1.7357 1.6204,3.33752 2.97139,3.55955 1.91502,0.31473 2.00433,1.17822 0.40525,3.91799 -2.43681,4.17517 -7.69872,5.10118 -16.36108,2.87931 z" + id="path5390" + sodipodi:nodetypes="cssssccsssccscccssssc" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 543.50287,612.20201 c -1.0397,0.5283 -6.15268,10.84486 -14.02253,12.12919 -8.5155,1.38969 -20.76323,0.61661 -16.09335,6.98168 4.66985,6.36508 10.51789,-1.76044 24.43586,17.51336 -1.71242,-10.49311 2.881,-22.41678 5.32502,-33.19256 0.61099,-2.69393 0.70155,-3.60776 0.355,-3.43167 z M 521.552,627.99954 c 3.99071,0.0596 9.37648,3.73563 9.76251,8.87501 0.11701,1.55767 0.8397,2.39858 0.82834,2.78085 -0.0184,0.63705 -0.88985,-0.25532 -2.95834,-2.60335 -2.0041,-2.27501 -5.58307,-4.25394 -7.98752,-4.37833 -2.47979,-0.12824 -4.06997,-1.10537 -3.60917,-2.30751 0.63101,-1.64624 2.15021,-2.39375 3.96418,-2.36667 z" + id="path5392" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 501.29168,664.476 c 22.69867,7.06826 26.40934,-12.09123 37.22465,-15.32518 13.2064,-3.94896 21.98637,6.76303 30.76706,-5.44249 -8.78069,12.20552 -20.74383,4.8619 -30.85381,10.95346 -9.80815,5.90967 -14.43923,16.88247 -37.1379,9.81421 z" + id="path5394" + sodipodi:nodetypes="cscsc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5396" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,193.93219,404.02378)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,201.90406,407.08988)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5398" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5400" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,196.38506,411.99565)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,232.56513,390.5329)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5402" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5404" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,231.95192,397.89157)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,239.31058,394.82545)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5406" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5408" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,165.11077,341.47519)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,204.97017,331.66365)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5410" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + id="path5412" + d="m 414.16432,664.94387 c -17.10352,2.3543 -30.64729,22.97 -22.60171,38.87257 9.92701,7.54432 25.07255,0.6534 34.73089,-4.85167 7.42667,-3.29797 8.51536,-16.70707 16.52927,-8.81585 -12.5884,-9.64496 -22.24114,-11.62267 -28.65845,-25.20505 z" + style="fill:url(#linearGradient5420);fill-opacity:1;stroke:none;display:inline" + sodipodi:nodetypes="ccccc" /> + <path + id="path5414" + d="m 593.32128,645.47801 c 14.74215,-1.58804 16.27001,17.47813 18.99254,27.45338 0.40886,4.51328 3.3967,8.81801 7.98751,5.20668 14.08663,-11.21914 9.21231,-35.07831 -2.89918,-46.09092 -4.88828,-6.56095 -18.41674,-5.38103 -14.08168,-15.79752 l -9.99919,29.22838 z" + style="fill:url(#linearGradient5422);fill-opacity:1;stroke:none;display:inline" + sodipodi:nodetypes="cccccc" /> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/pyhoca-winicon.svg b/icons/PyHoca/scalable/pyhoca-winicon.svg new file mode 100644 index 0000000..e1588b8 --- /dev/null +++ b/icons/PyHoca/scalable/pyhoca-winicon.svg @@ -0,0 +1,568 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7187" + sodipodi:version="0.32" + inkscape:version="0.47 r22583" + sodipodi:docname="auth_error.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1"> + <defs + id="defs7189"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 24 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="48 : 24 : 1" + inkscape:persp3d-origin="24 : 16 : 1" + id="perspective3859" /> + <linearGradient + inkscape:collect="always" + id="linearGradient4873"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4875" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop4877" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4873" + id="linearGradient2704" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.3440063,0,0,2.3440063,-121.79862,31.22942)" + x1="62.745731" + y1="-13.444987" + x2="62.608765" + y2="7.1072145" /> + <linearGradient + id="linearGradient3811"> + <stop + id="stop3813" + offset="0" + style="stop-color:#a40000;stop-opacity:1" /> + <stop + id="stop3815" + offset="1" + style="stop-color:#c22f2f;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3811" + id="linearGradient3927" + x1="15.046636" + y1="44.787998" + x2="15.046636" + y2="3.8851264" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0805272,0,0,1.0805026,-1.508285,-3.3507596)" /> + <linearGradient + id="linearGradient5106"> + <stop + style="stop-color:#e78181;stop-opacity:1" + offset="0" + id="stop5108" /> + <stop + id="stop8208" + offset="0.25288007" + style="stop-color:#e15f5f;stop-opacity:1" /> + <stop + style="stop-color:#c22f2f;stop-opacity:1" + offset="0.68271071" + id="stop8210" /> + <stop + style="stop-color:#a40000;stop-opacity:1" + offset="1" + id="stop5110" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5106" + id="radialGradient2707" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-7.565785,-6.219707e-7,3.9644633e-7,-4.8230546,494.60904,-26.555114)" + cx="62.202274" + cy="-5.7132163" + fx="62.202274" + fy="-5.7132163" + r="9.7552835" /> + <linearGradient + id="linearGradient10691" + inkscape:collect="always"> + <stop + id="stop10693" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop10695" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient10691" + id="radialGradient3080" + gradientUnits="userSpaceOnUse" + gradientTransform="scale(1.902215,0.525703)" + cx="6.702713" + cy="73.615715" + fx="6.702713" + fy="73.615715" + r="7.228416" /> + <inkscape:perspective + id="perspective3453" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <pattern + inkscape:stockid="Wavy" + id="Wavy" + height="5.1805778" + width="30.066020" + patternUnits="userSpaceOnUse" + inkscape:collect="always"> + <path + id="path5228" + d="M 7.597,0.061 C 5.079,-0.187 2.656,0.302 -0.01,1.788 L -0.01,3.061 C 2.773,1.431 5.173,1.052 7.472,1.280 C 9.770,1.508 11.969,2.361 14.253,3.218 C 18.820,4.931 23.804,6.676 30.066,3.061 L 30.062,1.788 C 23.622,5.497 19.246,3.770 14.691,2.061 C 12.413,1.207 10.115,0.311 7.597,0.061 z " + style="fill:black;stroke:none;" /> + </pattern> + <filter + color-interpolation-filters="sRGB" + inkscape:collect="always" + id="filter5442"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.57490299" + id="feGaussianBlur5444" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5430" + id="linearGradient5436" + x1="185" + y1="1047.3622" + x2="185" + y2="796.36218" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5430"> + <stop + style="stop-color:#906f6f;stop-opacity:1;" + offset="0" + id="stop5432" /> + <stop + style="stop-color:#906f6f;stop-opacity:0;" + offset="1" + id="stop5434" /> + </linearGradient> + <filter + color-interpolation-filters="sRGB" + inkscape:collect="always" + id="filter6083"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="3.312185" + id="feGaussianBlur6085" /> + </filter> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3785" + id="radialGradient5416" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1160336,-4.3876452,5.2088758,1.3249203,-2874.6294,1237.254)" + cx="315.79904" + cy="584.86487" + fx="315.79904" + fy="584.86487" + r="65.742714" /> + <linearGradient + id="linearGradient3785"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3787" /> + <stop + style="stop-color:#969696;stop-opacity:1;" + offset="1" + id="stop3789" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5937" + id="linearGradient5418" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" + x1="310.53839" + y1="551.9931" + x2="324.48233" + y2="615.26996" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5937"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5939" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5941" /> + </linearGradient> + <filter + color-interpolation-filters="sRGB" + inkscape:collect="always" + id="filter6139"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.78400333" + id="feGaussianBlur6141" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5947" + id="linearGradient5420" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" + x1="261.17963" + y1="635.13214" + x2="261.17963" + y2="612.84375" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5947"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5949" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5951" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5937" + id="linearGradient5422" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" + x1="387.78506" + y1="620.52393" + x2="378.39252" + y2="603.82446" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="23.859533" + inkscape:cy="34.916834" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1024" + inkscape:window-height="571" + inkscape:window-x="0" + inkscape:window-y="6" + inkscape:window-maximized="1" /> + <metadata + id="metadata7192"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + transform="matrix(0.38132965,0,0,0.38132965,-60.655233,-353.27311)" + style="display:inline" + id="g3410" + inkscape:export-filename="/home/mike/MyDocuments/4projects/nwt-x2go/pyhoca-gui/trunk/icons/PyHoca/pyhoca-trayicon.png" + inkscape:export-xdpi="457.14001" + inkscape:export-ydpi="457.14001"> + <rect + y="926.42456" + x="159.0625" + height="125.87531" + width="125.87534" + id="rect2927" + style="fill:none;stroke:#000000;stroke-width:0.01776883;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + <rect + y="932.37238" + x="165.00909" + height="114.98058" + width="114.98061" + id="rect5426" + style="fill:url(#Wavy);fill-opacity:1;stroke:none;filter:url(#filter5442)" + ry="14.010298" /> + <rect + ry="14.010298" + style="fill:url(#linearGradient5436);fill-opacity:1;stroke:#000000;stroke-width:2.01939631;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="rect5424" + width="114.98061" + height="114.98058" + x="165.00909" + y="932.37238" /> + <g + inkscape:export-ydpi="510.97" + inkscape:export-xdpi="510.97" + inkscape:export-filename="/home/mike/MyDocuments/4projects/nwt-x2go/pyhoca-gui/trunk/icons/PyHoca/pyhoca-trayicon.png" + id="g5356" + transform="matrix(0.40396742,0,0,0.40396742,19.556638,743.47149)"> + <path + sodipodi:nodetypes="cscscscssccc" + id="path5358" + d="m 316.61834,524.71563 c 26.41286,-0.50329 59.97357,20.96914 59.97357,54.77527 0,3.59736 -0.19322,7.03227 -0.56789,10.30345 18.06989,6.26688 16.71273,32.24949 4.78688,32.70339 -5.47132,0.20824 -3.56548,-18.31078 -10.6487,-17.92457 -7.89714,13.75136 -23.13,29.30724 -43.89259,30.96552 -18.87348,1.5074 -26.67203,-2.56514 -36.54057,-8.85826 -3.46673,2.19939 -7.55736,6.26792 -11.8477,7.98433 -9.00177,3.60129 -18.6864,4.30272 -18.6864,-5.73669 0,-8.21915 4.89649,-15.13053 12.51148,-17.381 -2.4969,-6.34498 -8.57035,-21.99078 -7.79103,-29.98531 0,-33.80609 29.80775,-56.84613 52.70295,-56.84613 z" + style="fill:#000000;fill-opacity:1;stroke:#737373;stroke-width:0.97799999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline;filter:url(#filter6083)" + transform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)" /> + <path + style="fill:url(#radialGradient5416);fill-opacity:1;stroke:#737373;stroke-width:1.85168302;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" + d="m 494.14518,498.08769 c 50.00843,-0.9529 113.55014,39.70163 113.55014,103.70802 0,6.81101 -0.36583,13.31445 -1.0752,19.50789 34.21238,11.86532 31.64282,61.05914 9.06317,61.91853 -10.35905,0.39427 -6.75065,-34.66848 -20.16157,-33.93724 -14.95194,26.03594 -43.79287,55.48846 -83.10344,58.62814 -35.73385,2.85402 -50.49914,-4.85667 -69.1836,-16.77167 -6.56369,4.16419 -14.30863,11.86728 -22.43168,15.11703 -17.04338,6.81846 -35.37965,8.1465 -35.37965,-10.86149 0,-15.56161 9.27071,-28.64718 23.68844,-32.90808 -4.72747,-12.01317 -16.22655,-41.63594 -14.75104,-56.77228 0,-64.0063 56.4361,-107.62885 99.78443,-107.62885 z" + id="path5360" + sodipodi:nodetypes="cscscscssccc" /> + <path + style="fill:url(#linearGradient5418);fill-opacity:1;stroke:none;display:inline" + d="m 490.31195,501.99861 c -60.00789,5.2168 -107.09001,72.04563 -87.91275,130.02861 3.24896,11.23668 7.4696,22.02332 11.76512,32.91665 -17.10352,2.3543 -30.64729,22.97 -22.60171,38.87257 9.92701,7.54432 25.07255,0.6534 34.73089,-4.85167 7.42667,-3.29797 14.4103,-16.70707 22.4242,-8.81585 27.77649,18.77637 65.82806,19.08025 95.67267,4.67417 20.86926,-11.02272 37.47189,-28.76927 48.93091,-49.34508 14.74215,-1.58804 16.27001,17.47813 18.99254,27.45338 0.40886,4.51328 3.3967,8.81801 7.98751,5.20668 14.08663,-11.21914 9.21231,-35.07831 -2.89918,-46.09092 -4.88828,-6.56095 -18.41674,-5.38103 -14.08168,-15.79752 5.24687,-35.96374 -12.50977,-72.63257 -42.30424,-92.47766 -20.53437,-14.48216 -45.42828,-23.02847 -70.70428,-21.77336 z" + id="path5362" /> + <g + id="g5364" + style="filter:url(#filter6139)" + transform="matrix(1.8933365,0,0,1.8933365,-105.31989,-495.37559)"> + <path + style="fill:#000000" + d="m 298.82133,588.93345 c -2.29156,-1.78445 -2.67759,-2.6514 -2.36383,-5.30877 0.43402,-3.67579 2.33363,-6.95779 4.7302,-8.17246 2.89097,-1.46525 8.66145,0.59446 10.64667,3.80022 1.73266,2.79791 1.70055,3.08784 -0.64437,5.81654 -5.03306,5.85678 -8.44226,6.92196 -12.36867,3.86447 z m 0.41149,-3.50969 c -0.51028,-1.00681 -0.55336,-2.93153 -0.0957,-4.27716 0.75581,-2.22223 0.70222,-2.29827 -0.58439,-0.82916 -1.55776,1.77869 -1.11814,7.38176 0.55771,7.10826 0.59569,-0.0972 0.64864,-0.96358 0.12236,-2.00194 z m 42.53089,-10.56797 c -4.37619,-1.12247 -4.76359,-1.68534 -4.27461,-6.2109 0.71771,-6.64236 7.74124,-8.66 11.45175,-3.28971 l 1.4422,2.08734 -1.98548,-1.94863 c -2.57753,-2.52969 -4.41704,-2.25588 -1.93633,0.28823 1.03863,1.06518 2.01083,2.68676 2.16044,3.60351 0.14961,0.91674 0.85584,1.76277 1.56939,1.88004 1.01145,0.16623 1.05862,0.6223 0.21404,2.06936 -1.28705,2.20519 -4.06622,2.69428 -8.6414,1.52076 z" + id="path5366" + sodipodi:nodetypes="cssssccsssccscccssssc" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 326.7844,595.06579 c -2.46648,-3.36183 4.00801,-2.92998 8.50563,-3.66397 5.54213,-0.90445 8.50715,-10.28293 7.21632,-4.59151 -1.29085,5.69142 -3.73324,11.98871 -2.82879,17.53084 -7.35103,-10.17981 -10.42669,-5.91353 -12.89316,-9.27536 z" + id="path5368" + sodipodi:nodetypes="cszcz" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 320.3929,612.59663 c 11.98871,3.73323 13.94857,-6.3862 19.66087,-8.09427 6.9752,-2.08571 11.6125,3.57202 16.25018,-2.87455 -4.63768,6.44657 -10.95623,2.5679 -16.296,5.78527 -5.18035,3.1213 -7.62634,8.91678 -19.61505,5.18355 z" + id="path5370" + sodipodi:nodetypes="cscsc" /> + <path + style="fill:#ffffff;stroke:none" + d="m 336.68588,599.4815 c 0.006,-0.2019 -0.36096,-0.64796 -0.42276,-1.47067 -0.29657,-3.94831 -6.1911,-6.21808 -7.25759,-3.43571 -0.24338,0.63493 0.58774,1.16912 1.89749,1.23685 1.26995,0.0657 3.17607,1.09972 4.23457,2.30131 1.09251,1.24015 1.53854,1.70469 1.54829,1.36822 z" + id="path5372" + sodipodi:nodetypes="cssssc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5374" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(158.05541,475.03407)" /> + <path + transform="translate(162.2659,476.65349)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5376" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5378" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(159.35094,479.24456)" /> + <path + transform="translate(178.4601,467.90862)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5380" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5382" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(178.13622,471.79523)" /> + <path + transform="translate(182.02283,470.17581)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5384" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + id="path5386" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="translate(142.83286,441.9979)" /> + <path + transform="translate(163.88532,436.81576)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5388" + style="fill:#ffffff;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + </g> + <path + style="fill:#000000" + d="m 460.44944,619.67363 c -4.33869,-3.37857 -5.06957,-5.01999 -4.47552,-10.05129 0.82174,-6.9595 4.41835,-13.17343 8.95586,-15.47322 5.47358,-2.7742 16.39904,1.12552 20.15773,7.1951 3.28051,5.29739 3.21971,5.84632 -1.22001,11.01267 -9.52928,11.08886 -15.98404,13.1056 -23.41806,7.31674 z m 0.77909,-6.64502 c -0.96613,-1.90623 -1.0477,-5.55038 -0.18119,-8.09811 1.431,-4.20743 1.32954,-4.35139 -1.10644,-1.56987 -2.94937,3.36765 -2.11702,13.97616 1.05592,13.45832 1.12785,-0.18403 1.2281,-1.82437 0.23167,-3.79034 z m 80.52529,-20.00873 c -8.2856,-2.12521 -9.01908,-3.19091 -8.09328,-11.75932 1.35887,-12.57622 14.65678,-16.3963 21.68203,-6.22853 l 2.73056,3.95204 -3.75918,-3.68942 c -4.88013,-4.78955 -8.36295,-4.27113 -3.66612,0.54573 1.96648,2.01674 3.80717,5.08693 4.09043,6.82265 0.28327,1.7357 1.6204,3.33752 2.97139,3.55955 1.91502,0.31473 2.00433,1.17822 0.40525,3.91799 -2.43681,4.17517 -7.69872,5.10118 -16.36108,2.87931 z" + id="path5390" + sodipodi:nodetypes="cssssccsssccscccssssc" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 543.50287,612.20201 c -1.0397,0.5283 -6.15268,10.84486 -14.02253,12.12919 -8.5155,1.38969 -20.76323,0.61661 -16.09335,6.98168 4.66985,6.36508 10.51789,-1.76044 24.43586,17.51336 -1.71242,-10.49311 2.881,-22.41678 5.32502,-33.19256 0.61099,-2.69393 0.70155,-3.60776 0.355,-3.43167 z M 521.552,627.99954 c 3.99071,0.0596 9.37648,3.73563 9.76251,8.87501 0.11701,1.55767 0.8397,2.39858 0.82834,2.78085 -0.0184,0.63705 -0.88985,-0.25532 -2.95834,-2.60335 -2.0041,-2.27501 -5.58307,-4.25394 -7.98752,-4.37833 -2.47979,-0.12824 -4.06997,-1.10537 -3.60917,-2.30751 0.63101,-1.64624 2.15021,-2.39375 3.96418,-2.36667 z" + id="path5392" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none" + d="m 501.29168,664.476 c 22.69867,7.06826 26.40934,-12.09123 37.22465,-15.32518 13.2064,-3.94896 21.98637,6.76303 30.76706,-5.44249 -8.78069,12.20552 -20.74383,4.8619 -30.85381,10.95346 -9.80815,5.90967 -14.43923,16.88247 -37.1379,9.81421 z" + id="path5394" + sodipodi:nodetypes="cscsc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5396" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,193.93219,404.02378)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,201.90406,407.08988)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5398" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5400" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,196.38506,411.99565)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,232.56513,390.5329)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5402" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5404" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,231.95192,397.89157)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,239.31058,394.82545)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5406" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:none;stroke:#000000;stroke-opacity:1" + id="path5408" + sodipodi:cx="166.31445" + sodipodi:cy="123.08076" + sodipodi:rx="1.1335942" + sodipodi:ry="1.1335942" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + transform="matrix(1.8933365,0,0,1.8933365,165.11077,341.47519)" /> + <path + transform="matrix(1.8933365,0,0,1.8933365,204.97017,331.66365)" + d="m 167.44805,123.08076 c 0,0.62606 -0.50753,1.13359 -1.1336,1.13359 -0.62606,0 -1.13359,-0.50753 -1.13359,-1.13359 0,-0.62607 0.50753,-1.1336 1.13359,-1.1336 0.62607,0 1.1336,0.50753 1.1336,1.1336 z" + sodipodi:ry="1.1335942" + sodipodi:rx="1.1335942" + sodipodi:cy="123.08076" + sodipodi:cx="166.31445" + id="path5410" + style="fill:none;stroke:#000000;stroke-opacity:1" + sodipodi:type="arc" /> + <path + id="path5412" + d="m 414.16432,664.94387 c -17.10352,2.3543 -30.64729,22.97 -22.60171,38.87257 9.92701,7.54432 25.07255,0.6534 34.73089,-4.85167 7.42667,-3.29797 8.51536,-16.70707 16.52927,-8.81585 -12.5884,-9.64496 -22.24114,-11.62267 -28.65845,-25.20505 z" + style="fill:url(#linearGradient5420);fill-opacity:1;stroke:none;display:inline" + sodipodi:nodetypes="ccccc" /> + <path + id="path5414" + d="m 593.32128,645.47801 c 14.74215,-1.58804 16.27001,17.47813 18.99254,27.45338 0.40886,4.51328 3.3967,8.81801 7.98751,5.20668 14.08663,-11.21914 9.21231,-35.07831 -2.89918,-46.09092 -4.88828,-6.56095 -18.41674,-5.38103 -14.08168,-15.79752 l -9.99919,29.22838 z" + style="fill:url(#linearGradient5422);fill-opacity:1;stroke:none;display:inline" + sodipodi:nodetypes="cccccc" /> + </g> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/session_cleanall.svg b/icons/PyHoca/scalable/session_cleanall.svg new file mode 120000 index 0000000..c0b3175 --- /dev/null +++ b/icons/PyHoca/scalable/session_cleanall.svg @@ -0,0 +1 @@ +broom-cleanup.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/session_error.svg b/icons/PyHoca/scalable/session_error.svg new file mode 120000 index 0000000..3b41d91 --- /dev/null +++ b/icons/PyHoca/scalable/session_error.svg @@ -0,0 +1 @@ +dialog-error.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/session_pause.svg b/icons/PyHoca/scalable/session_pause.svg new file mode 120000 index 0000000..020f415 --- /dev/null +++ b/icons/PyHoca/scalable/session_pause.svg @@ -0,0 +1 @@ +media-playback-pause.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/session_printing.svg b/icons/PyHoca/scalable/session_printing.svg new file mode 120000 index 0000000..519c84b --- /dev/null +++ b/icons/PyHoca/scalable/session_printing.svg @@ -0,0 +1 @@ +gnome-dev-printer-network.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/session_resume.svg b/icons/PyHoca/scalable/session_resume.svg new file mode 120000 index 0000000..a5452f2 --- /dev/null +++ b/icons/PyHoca/scalable/session_resume.svg @@ -0,0 +1 @@ +x2go-logo-rotated.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/session_start.svg b/icons/PyHoca/scalable/session_start.svg new file mode 120000 index 0000000..a5452f2 --- /dev/null +++ b/icons/PyHoca/scalable/session_start.svg @@ -0,0 +1 @@ +x2go-logo-rotated.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/session_terminate.svg b/icons/PyHoca/scalable/session_terminate.svg new file mode 120000 index 0000000..b943971 --- /dev/null +++ b/icons/PyHoca/scalable/session_terminate.svg @@ -0,0 +1 @@ +window-close.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/session_warning.svg b/icons/PyHoca/scalable/session_warning.svg new file mode 120000 index 0000000..a626e0c --- /dev/null +++ b/icons/PyHoca/scalable/session_warning.svg @@ -0,0 +1 @@ +dialog-warning.svg \ No newline at end of file diff --git a/icons/PyHoca/scalable/system-search.svg b/icons/PyHoca/scalable/system-search.svg new file mode 100644 index 0000000..ed08f02 --- /dev/null +++ b/icons/PyHoca/scalable/system-search.svg @@ -0,0 +1,430 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7233" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="search48.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7235"> + <linearGradient + id="linearGradient4467"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4469" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.24761905;" + offset="1.0000000" + id="stop4471" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4467" + id="radialGradient4473" + cx="15.414371" + cy="13.078408" + fx="15.414371" + fy="13.078408" + r="6.6562500" + gradientTransform="matrix(2.789229,0,0,2.4225698,-25.723775,-20.247482)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient4454"> + <stop + style="stop-color:#729fcf;stop-opacity:0.20784314;" + offset="0.0000000" + id="stop4456" /> + <stop + style="stop-color:#729fcf;stop-opacity:0.67619050;" + offset="1.0000000" + id="stop4458" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4454" + id="radialGradient4460" + cx="18.240929" + cy="21.817987" + fx="18.240929" + fy="21.817987" + r="8.3085051" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient4931"> + <stop + style="stop-color:#babdb6;stop-opacity:1;" + offset="0" + id="stop4933" /> + <stop + style="stop-color:#888a85" + offset="1" + id="stop4935" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4931" + id="linearGradient4937" + x1="54.1129" + y1="12.846775" + x2="50.079948" + y2="-3.8813655" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient23434"> + <stop + style="stop-color:#888a85;stop-opacity:1" + offset="0" + id="stop23436" /> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="1" + id="stop23438" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient23434" + id="linearGradient23440" + x1="55.878288" + y1="12.472493" + x2="52.5" + y2="-4.6213989" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3904"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3906" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop3908" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3904" + id="linearGradient7863" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9999494,0,0,1.0000027,11.137591,10.721751)" + x1="21.397852" + y1="20.653446" + x2="23.475424" + y2="22.873726" /> + <linearGradient + id="linearGradient2609" + inkscape:collect="always"> + <stop + id="stop2611" + offset="0" + style="stop-color:#ffffff;stop-opacity:1" /> + <stop + id="stop2613" + offset="1" + style="stop-color:#eeeeec" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2609" + id="radialGradient1409" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" + cx="45.094624" + cy="-2.6936908" + fx="45.094624" + fy="-2.6936908" + r="10.498367" /> + <linearGradient + inkscape:collect="always" + id="linearGradient19914"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop19916" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop19918" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient19914" + id="linearGradient19920" + x1="33.985317" + y1="32.045906" + x2="37.211494" + y2="35.272079" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-0.9999995,2.5184337e-4)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient19900"> + <stop + style="stop-color:#d3d7cf;stop-opacity:0.2" + offset="0" + id="stop19902" /> + <stop + style="stop-color:#d3d7cf" + offset="1" + id="stop19904" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient19900" + id="linearGradient19906" + x1="40.25" + y1="41" + x2="43.0625" + y2="38.434578" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-0.9999995,2.52e-4)" /> + <linearGradient + id="linearGradient2690" + inkscape:collect="always"> + <stop + id="stop2692" + offset="0" + style="stop-color:#2e3436" /> + <stop + id="stop2694" + offset="1" + style="stop-color:#555753" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2690" + id="linearGradient1423" + gradientUnits="userSpaceOnUse" + x1="81.096306" + y1="57.148193" + x2="83.629295" + y2="54.615208" /> + <linearGradient + id="linearGradient2698"> + <stop + id="stop2700" + offset="0" + style="stop-color:#888a85;stop-opacity:1" /> + <stop + style="stop-color:#a3a5a2;stop-opacity:1;" + offset="0.70238096" + id="stop2706" /> + <stop + id="stop2702" + offset="1" + style="stop-color:#888a85" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2698" + id="linearGradient1421" + gradientUnits="userSpaceOnUse" + x1="81.332451" + y1="55.106758" + x2="82.919647" + y2="53.511261" /> + <linearGradient + id="linearGradient2617"> + <stop + id="stop2619" + offset="0" + style="stop-color:#fbfbfa;stop-opacity:1;" /> + <stop + id="stop2621" + offset="1" + style="stop-color:#d3d7cf" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2617" + id="radialGradient8419" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" + cx="59.787472" + cy="10.901535" + fx="59.787472" + fy="10.901535" + r="10.55559" /> + <filter + inkscape:collect="always" + id="filter3268" + x="-0.088636374" + width="1.1772727" + y="-0.38360636" + height="1.7672127"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.5983598" + id="feGaussianBlur3270" /> + </filter> + <linearGradient + id="linearGradient3244"> + <stop + style="stop-color:#000000;stop-opacity:0" + offset="0" + id="stop3246" /> + <stop + id="stop3274" + offset="0.0807889" + style="stop-color:#000000;stop-opacity:0;" /> + <stop + style="stop-color:#000000;stop-opacity:0.24705882;" + offset="0.61539668" + id="stop3276" /> + <stop + id="stop3272" + offset="0.74850917" + style="stop-color:#000000;stop-opacity:0.49803922;" /> + <stop + style="stop-color:#000000;stop-opacity:1" + offset="1" + id="stop3248" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3244" + id="linearGradient3250" + x1="3.5" + y1="35.742943" + x2="46.77866" + y2="45.742943" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="688" + inkscape:window-x="276" + inkscape:window-y="123" /> + <metadata + id="metadata7238"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + transform="translate(-12.26513,47.500242)" + style="display:inline" + inkscape:label="base" + id="g2637" /> + <path + style="opacity:0.6;fill:url(#linearGradient3250);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.67653471;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter3268)" + d="M 21,35.742942 C 11.34,35.742942 3.5,37.555955 3.5,39.789845 C 3.5,42.023736 11.34,43.836748 21,43.836748 C 25.496436,43.836748 29.586827,43.441342 32.6875,42.796116 L 33.5,43.742802 C 33.525278,43.764 33.586841,43.785509 33.65625,43.800615 L 41.625,45.657855 C 41.981813,45.740449 42.507656,45.759155 43.15625,45.730121 C 43.804844,45.701087 44.567815,45.60604 45.375,45.419377 C 46.175523,45.234255 46.580812,45.069505 46.71875,44.92074 C 46.856687,44.771976 46.758027,44.640759 46.40625,44.55941 L 38.375,42.716623 C 38.29626,42.698751 38.203146,42.684259 38.09375,42.68049 L 34,42.492598 C 36.790145,41.775563 38.5,40.829653 38.5,39.789845 C 38.5,37.555955 30.66,35.742942 21,35.742942 z" + id="path2462" + transform="matrix(1.0166673,0,0,0.9,-0.5583355,4.3316038)" /> + <path + transform="matrix(1.5085714,0,0,1.5085715,-58.199999,12.211681)" + d="M 62.5,4.5 A 10,10 0 1 1 42.5,4.5 A 10,10 0 1 1 62.5,4.5 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="4.5" + sodipodi:cx="52.5" + id="path2607" + style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient8419);stroke-width:1.87499988;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" /> + <g + style="display:inline" + transform="matrix(1.544052,0,0,1.536016,-85.57756,-44.444898)" + id="g2708"> + <path + style="fill:url(#linearGradient1421);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1423);stroke-width:0.67653471;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 74.853412,50.354391 L 77.443998,53.023634 L 82.625171,58.237128 C 82.817674,58.430832 83.596641,58.55743 84.56811,57.580878 C 85.53958,56.604326 85.463684,55.876998 85.215757,55.627773 L 80.034584,50.419494 L 77.443998,47.815355 L 74.853412,50.354391 z" + id="path2682" + sodipodi:nodetypes="cczzzccc" /> + </g> + <path + sodipodi:nodetypes="cczzzccc" + id="path17267" + d="M 31.453125,32.922127 L 34.90721,36.480066 L 42.406806,44.028842 C 42.77564,44.400095 43.340655,44.246748 44.274502,43.3129 C 45.208352,42.379052 45.449128,41.911605 44.985457,41.445202 L 37.485862,33.901412 L 34.0625,30.500252 L 31.453125,32.922127 z" + style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient19906);stroke-width:0.99999934;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + style="opacity:0.15294118;fill:url(#linearGradient19920);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.67653471;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 32.550678,31.195018 C 32.29085,31.282527 30.033957,33.133188 30.103541,33.39715 L 33.50745,37.107952 C 33.532728,37.199617 33.582796,37.282629 33.652205,37.347954 L 41.613723,45.364038 C 41.970537,45.7212 42.509181,45.825593 43.157775,45.700041 C 43.80637,45.574489 44.570165,45.163213 45.37735,44.356027 C 46.177873,43.555506 46.590458,42.839306 46.728396,42.196005 C 46.866334,41.552703 46.742411,40.963765 46.390634,40.611988 L 38.380865,32.643905 C 38.302123,32.566621 38.200751,32.516199 38.091355,32.499904 L 34.340187,29.132518 C 34.245612,29.105383 32.645253,31.167883 32.550678,31.195018 z" + id="path19908" + sodipodi:nodetypes="cccccsssccccc" /> + <path + transform="matrix(1.5500015,0,0,1.5500015,-60.375079,12.025245)" + d="M 62.5,4.5 A 10,10 0 1 1 42.5,4.5 A 10,10 0 1 1 62.5,4.5 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="4.5" + sodipodi:cx="52.5" + id="path2605" + style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient1409);stroke-width:0.6451413;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" /> + <path + style="opacity:0.36936939;fill:url(#linearGradient7863);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.67653471;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 32.571456,31.340596 C 32.398245,31.398935 30.441228,32.522909 30.487615,32.698884 L 33.370692,35.607487 C 33.387543,35.668598 33.42092,35.723939 33.467191,35.767489 L 36.754802,32.468631 C 36.702309,32.417109 36.618546,32.320669 36.545618,32.309805 L 34.028798,29.731957 C 33.983608,29.606724 32.634502,31.322506 32.571456,31.340596 z" + id="path7861" + sodipodi:nodetypes="cccccccc" /> + <path + transform="matrix(1.6500024,0,0,1.6500024,-65.653719,11.575241)" + d="M 62.5,4.5 A 10,10 0 1 1 42.5,4.5 A 10,10 0 1 1 62.5,4.5 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="4.5" + sodipodi:cx="52.5" + id="path2599" + style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient23440);stroke-width:0.60603064;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" /> + <path + transform="matrix(1.3500044,0,0,1.3500044,-49.875231,12.925232)" + d="M 62.5,4.5 A 10,10 0 1 1 42.5,4.5 A 10,10 0 1 1 62.5,4.5 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="4.5" + sodipodi:cx="52.5" + id="path4927" + style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4937);stroke-width:0.74067366;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient4460);fill-opacity:1;fill-rule:evenodd;stroke:#3063a3;stroke-width:0.66473687;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline" + id="path4452" + sodipodi:cx="17.589281" + sodipodi:cy="18.478292" + sodipodi:rx="8.3085051" + sodipodi:ry="8.3085051" + d="M 25.897786,18.478292 A 8.3085051,8.3085051 0 1 1 9.280776,18.478292 A 8.3085051,8.3085051 0 1 1 25.897786,18.478292 z" + transform="matrix(1.5044775,0,0,1.5044776,-5.4626775,-8.7999259)" /> + <path + style="opacity:0.83422457;fill:url(#radialGradient4473);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 20.764036,8.0837588 C 15.162274,8.0837588 10.626128,12.619905 10.626128,18.221665 C 10.626128,19.839479 11.078249,21.328019 11.752561,22.685682 C 13.099737,23.182235 14.530813,23.520079 16.0497,23.520079 C 22.687746,23.520079 27.989107,18.290454 28.398756,11.755099 C 26.536772,9.5547378 23.870051,8.0837588 20.764036,8.0837588 z" + id="path4462" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/unlocked.svg b/icons/PyHoca/scalable/unlocked.svg new file mode 100644 index 0000000..83d2e80 --- /dev/null +++ b/icons/PyHoca/scalable/unlocked.svg @@ -0,0 +1,577 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7516" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing-3.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7518"> + <filter + inkscape:collect="always" + x="-0.085115738" + width="1.1702315" + y="-0.4135721" + height="1.8271442" + id="filter6328"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.42546784" + id="feGaussianBlur6330" /> + </filter> + <linearGradient + inkscape:collect="always" + id="linearGradient6057"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop6059" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop6061" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6057" + id="radialGradient6071" + gradientUnits="userSpaceOnUse" + cx="18.031223" + cy="6.2806997" + fx="18.031223" + fy="6.2806997" + r="3.1819806" /> + <filter + inkscape:collect="always" + id="filter5246"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.52810278" + id="feGaussianBlur5248" /> + </filter> + <filter + inkscape:collect="always" + x="-0.24242527" + width="1.4848505" + y="-0.047579074" + height="1.0951581" + id="filter6251"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.24444548" + id="feGaussianBlur6253" /> + </filter> + <linearGradient + inkscape:collect="always" + id="linearGradient6227"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop6229" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop6231" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6227" + id="linearGradient6233" + x1="33.950081" + y1="14.00656" + x2="39.619183" + y2="9.5222654" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(1.6824037,1.125)" /> + <filter + inkscape:collect="always" + x="-0.49337935" + width="1.9867587" + y="-0.11410162" + height="1.2282032" + id="filter5306"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.68862765" + id="feGaussianBlur5308" /> + </filter> + <linearGradient + id="linearGradient5310" + inkscape:collect="always"> + <stop + id="stop5312" + offset="0" + style="stop-color:#000000;stop-opacity:0.59770115" /> + <stop + id="stop5314" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5310" + id="linearGradient6334" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-19.532826,1.7437184)" + x1="35.004684" + y1="24.300459" + x2="30.279551" + y2="9.1301517" /> + <linearGradient + id="linearGradient10591"> + <stop + id="stop10593" + offset="0.0000000" + style="stop-color:#cad0c6;stop-opacity:1.0000000;" /> + <stop + style="stop-color:#eaece9;stop-opacity:1.0000000;" + offset="0.50000000" + id="stop10599" /> + <stop + id="stop10595" + offset="1.0000000" + style="stop-color:#c5cbc0;stop-opacity:1.0000000;" /> + </linearGradient> + <linearGradient + y2="17.470011" + x2="27.192274" + y1="2.9136841" + x1="10.650842" + gradientTransform="translate(0,-1.926279)" + gradientUnits="userSpaceOnUse" + id="linearGradient1392" + xlink:href="#linearGradient10591" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5753"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop5755" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop5757" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5753" + id="linearGradient5759" + x1="31.375" + y1="20.4375" + x2="38.25" + y2="20.4375" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + x="-0.14143888" + width="1.2828778" + y="-1.5218824" + height="4.0437647" + id="filter6171"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.1889706" + id="feGaussianBlur6173" /> + </filter> + <linearGradient + id="linearGradient6089"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop6091" /> + <stop + id="stop6097" + offset="0.5" + style="stop-color:#000000;stop-opacity:0.17171717;" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="1" + id="stop6093" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6089" + id="linearGradient6095" + x1="17.1875" + y1="20.09375" + x2="34" + y2="20.09375" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,-0.5)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient6075"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop6077" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop6079" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6075" + id="radialGradient6085" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.5849057,0,8.4316038)" + cx="15.9375" + cy="20.3125" + fx="15.9375" + fy="20.3125" + r="3.3125" /> + <filter + inkscape:collect="always" + x="-0.49411764" + width="1.9882353" + y="-0.082352942" + height="1.1647059" + id="filter5957"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.69878785" + id="feGaussianBlur5959" /> + </filter> + <linearGradient + id="linearGradient12071" + inkscape:collect="always"> + <stop + id="stop12073" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop12075" + offset="1" + style="stop-color:#ffffff;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient12071" + id="linearGradient1387" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9697914,0,0,0.951923,-2.7734351,2.0339473)" + x1="21.941509" + y1="21.550869" + x2="21.941509" + y2="18.037588" /> + <linearGradient + id="linearGradient5881"> + <stop + id="stop5883" + offset="0" + style="stop-color:#fffac7;stop-opacity:1;" /> + <stop + style="stop-color:#fff8b2;stop-opacity:1;" + offset="1" + id="stop5885" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5881" + id="linearGradient1591" + x1="24.875" + y1="21" + x2="24.75" + y2="17" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9706798,0,0,1.5,-2.7947591,-9.4998767)" /> + <linearGradient + id="linearGradient9845"> + <stop + id="stop9847" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop9849" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.49484536;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient9845" + id="linearGradient1575" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.968931,0,0,1.1176137,-2.7381201,-6.0948884)" + x1="10.907269" + y1="25.002281" + x2="30.875446" + y2="36.127281" /> + <linearGradient + id="linearGradient6215"> + <stop + id="stop6217" + offset="0" + style="stop-color:#ead200;stop-opacity:1;" /> + <stop + style="stop-color:#fff16a;stop-opacity:1;" + offset="0.20999999" + id="stop6219" /> + <stop + id="stop6221" + offset="0.83999997" + style="stop-color:#b5a300;stop-opacity:1;" /> + <stop + id="stop6223" + offset="1" + style="stop-color:#e8d000;stop-opacity:1;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6215" + id="linearGradient6225" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9715125,0,0,1.1298556,-2.8148311,-7.9390138)" + x1="6.72682" + y1="32.161697" + x2="40.938126" + y2="32.161697" /> + <filter + inkscape:collect="always" + x="-0.074990261" + width="1.1499805" + y="-0.47181373" + height="1.9436275" + id="filter6051"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.4154412" + id="feGaussianBlur6053" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="690" + inkscape:window-x="1037" + inkscape:window-y="25" /> + <metadata + id="metadata7521"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <rect + style="opacity:0.45882353;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter6051);enable-background:accumulate" + id="rect5961" + width="37.75" + height="6" + x="6.25" + y="39.75" + rx="3.1708715" + ry="1.9748279" + transform="matrix(1.0264901,0,0,1,-5.1655631,-1.9998777)" /> + <path + style="fill:url(#linearGradient6225);fill-opacity:1;fill-rule:evenodd;stroke:#7d6400;stroke-width:0.99999952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" + d="M 5.6713057,15.500122 C 15.465852,14.056723 25.364615,14.280806 35.325581,15.500122 C 36.528485,15.500122 37.496887,16.543692 37.496887,17.839966 L 37.496887,41.160278 C 37.496887,42.456552 36.465985,43.312622 35.325581,43.500122 C 24.998398,44.708725 16.143531,44.699184 5.6713057,43.500122 C 4.2809017,43.062622 3.4999997,42.456552 3.4999997,41.160278 L 3.4999997,17.839966 C 3.4999997,16.543692 4.4684017,15.500122 5.6713057,15.500122 z" + id="rect1314" + sodipodi:nodetypes="ccccccccc" /> + <g + id="g4695" + transform="translate(-5.0000001,-1.9998777)"> + <path + sodipodi:nodetypes="cscscc" + id="path6193" + d="M 41.940271,24.444505 C 41.542065,25.774817 37.406119,26.114917 36.638195,26.217936 C 36.638195,26.217936 20.32932,26.698408 20.32932,26.698408 C 20.32932,26.698408 36.59256,26.857542 36.59256,26.857542 C 37.418473,26.760419 41.811211,26.960931 42.02866,25.151612 L 41.940271,24.444505 z" + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 41.940271,26.444505 C 41.542065,27.774817 37.406119,28.114917 36.638195,28.217936 C 36.638195,28.217936 17.57932,28.698408 17.57932,28.698408 C 17.57932,28.698408 36.59256,28.857542 36.59256,28.857542 C 37.418473,28.760419 41.811211,28.960931 42.02866,27.151612 L 41.940271,26.444505 z" + id="path4678" + sodipodi:nodetypes="cscscc" /> + <path + sodipodi:nodetypes="cscscc" + id="path4680" + d="M 41.940271,28.444505 C 41.542065,29.774817 37.406119,30.114917 36.638195,30.217936 C 36.638195,30.217936 20.32932,30.698408 20.32932,30.698408 C 20.32932,30.698408 36.59256,30.857542 36.59256,30.857542 C 37.418473,30.760419 41.811211,30.960931 42.02866,29.151612 L 41.940271,28.444505 z" + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 41.940271,30.444505 C 41.542065,31.774817 37.406119,32.114917 36.638195,32.217936 C 36.638195,32.217936 25.57932,32.698408 25.57932,32.698408 C 25.57932,32.698408 36.59256,32.857542 36.59256,32.857542 C 37.418473,32.760419 41.811211,32.960931 42.02866,31.151612 L 41.940271,30.444505 z" + id="path4682" + sodipodi:nodetypes="cscscc" /> + <path + sodipodi:nodetypes="cscscc" + id="path4684" + d="M 41.940271,32.444505 C 41.542065,33.774817 37.406119,34.114917 36.638195,34.217936 C 36.638195,34.217936 20.32932,34.698408 20.32932,34.698408 C 20.32932,34.698408 36.59256,34.857542 36.59256,34.857542 C 37.418473,34.760419 41.811211,34.960931 42.02866,33.151612 L 41.940271,32.444505 z" + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 41.940271,34.444505 C 41.542065,35.774817 37.406119,36.114917 36.638195,36.217936 C 36.638195,36.217936 17.89182,36.698408 17.89182,36.698408 C 17.89182,36.698408 36.59256,36.857542 36.59256,36.857542 C 37.418473,36.760419 41.811211,36.960931 42.02866,35.151612 L 41.940271,34.444505 z" + id="path4686" + sodipodi:nodetypes="cscscc" /> + <path + sodipodi:nodetypes="cscscc" + id="path4688" + d="M 41.940271,36.444505 C 41.542065,37.774817 37.406119,38.114917 36.638195,38.217936 C 36.638195,38.217936 22.64182,38.698408 22.64182,38.698408 C 22.64182,38.698408 36.59256,38.857542 36.59256,38.857542 C 37.418473,38.760419 41.811211,38.960931 42.02866,37.151612 L 41.940271,36.444505 z" + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 41.940271,38.444505 C 41.542065,39.774817 37.406119,40.114917 36.638195,40.217936 C 36.638195,40.217936 28.20432,40.698408 28.20432,40.698408 C 28.20432,40.698408 36.59256,40.857542 36.59256,40.857542 C 37.418473,40.760419 41.811211,40.960931 42.02866,39.151612 L 41.940271,38.444505 z" + id="path4690" + sodipodi:nodetypes="cscscc" /> + <path + sodipodi:nodetypes="cscscc" + id="path4692" + d="M 41.940271,40.444505 C 41.542065,41.774817 37.406119,42.114917 36.638195,42.217936 C 36.638195,42.217936 20.32932,42.698408 20.32932,42.698408 C 20.32932,42.698408 36.59256,42.857542 36.59256,42.857542 C 37.418473,42.760419 41.811211,42.960931 42.02866,41.151612 L 41.940271,40.444505 z" + style="opacity:0.14117647;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + <path + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1575);stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.60109289" + d="M 5.7495877,16.995483 L 35.254433,16.995483 C 35.946704,16.995483 36.504021,17.581598 36.504021,18.309642 L 36.504021,41.185963 C 36.504021,41.914007 36.009204,42.250122 35.254433,42.500122 C 25.606985,43.703735 16.084536,43.700943 5.7495877,42.500122 C 5.0573157,42.250122 4.4999997,41.914007 4.4999997,41.185963 L 4.4999997,18.309642 C 4.4999997,17.581598 5.0573157,16.995483 5.7495877,16.995483 z" + id="rect6903" + sodipodi:nodetypes="ccccccccc" /> + <path + style="fill:url(#linearGradient1591);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 5.6077247,16.000122 C 15.536946,14.539375 25.466166,14.799553 35.395387,16.000122 C 36.286067,16.000122 37.003113,16.717168 37.003113,17.607847 L 37.003113,20.392397 C 37.003113,21.283076 36.286067,22.000122 35.395387,22.000122 C 25.033658,22.690222 15.499962,22.443932 5.6077247,22.000122 C 4.7170447,22.000122 3.9999997,21.283076 3.9999997,20.392397 L 3.9999997,17.607847 C 3.9999997,16.717168 4.7170447,16.000122 5.6077247,16.000122 z" + id="rect1460" + sodipodi:nodetypes="ccccccccc" /> + <path + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1387);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 5.6639377,18.692602 L 35.339179,18.692602 C 35.984,18.692602 36.503117,19.181796 36.503117,19.78945 L 36.503117,20.451524 C 36.503117,21.059178 35.984,21.548372 35.339179,21.548372 C 25.539745,22.748444 15.629609,22.821884 5.6639377,21.548372 C 5.0191157,21.548372 4.4999997,21.059178 4.4999997,20.451524 L 4.4999997,19.78945 C 4.4999997,19.181796 5.0191157,18.692602 5.6639377,18.692602 z" + id="rect1593" + sodipodi:nodetypes="ccccccccc" /> + <rect + style="opacity:0.29411765;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter5957);enable-background:accumulate" + id="rect5887" + width="2.8284271" + height="16.970562" + x="14.594036" + y="23.226137" + rx="1.6077254" + ry="1.6077254" + transform="matrix(1.9722718,0,0,1.2416619,-20.56437,-7.8388872)" /> + <path + transform="matrix(1.7556483,1.8684597e-2,-0.2566879,1.4540468,6.67711,-11.231529)" + d="M 19.25,20.3125 A 3.3125,1.9375 0 1 1 12.625,20.3125 A 3.3125,1.9375 0 1 1 19.25,20.3125 z" + sodipodi:ry="1.9375" + sodipodi:rx="3.3125" + sodipodi:cy="20.3125" + sodipodi:cx="15.9375" + id="path6083" + style="opacity:0.62643678;fill:url(#radialGradient6085);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <rect + style="opacity:0.48235294;fill:url(#linearGradient6095);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter6171);enable-background:accumulate" + id="rect6087" + width="16.8125" + height="1.5625" + x="17.1875" + y="18.8125" + rx="0.78125" + ry="0.78125" + transform="matrix(-1,-0.1942467,0,1,63.818732,3.4534123)" /> + <path + sodipodi:type="arc" + style="opacity:0.54705882;fill:url(#linearGradient5759);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5751" + sodipodi:cx="34.8125" + sodipodi:cy="20.4375" + sodipodi:rx="3.4375" + sodipodi:ry="1.5625" + d="M 38.25,20.4375 A 3.4375,1.5625 0 1 1 31.375,20.4375 A 3.4375,1.5625 0 1 1 38.25,20.4375 z" + transform="translate(-24.125,-1.9998777)" /> + <g + id="g1387" + inkscape:r_cx="true" + inkscape:r_cy="true" + transform="matrix(-0.8575185,-0.1731867,0,1,58.479607,2.1760963)"> + <path + inkscape:r_cy="true" + inkscape:r_cx="true" + sodipodi:nodetypes="ccccczccccsccc" + id="path2086" + d="M 12.743205,25.823932 L 12.743205,24.193353 L 13.794707,23.750459 L 12.673105,22.306213 L 12.743205,20.089086 C 12.743205,5.6408774 16.806669,3.7152321 24.020027,3.0776805 C 31.167919,2.4459151 37.354231,6.5120329 37.354231,14.474755 L 37.354231,22.459601 C 37.354231,24.41383 30.260065,23.447353 30.260065,21.244402 L 30.260065,15.259556 C 30.260065,11.490752 29.659869,8.710042 25.465153,8.9756217 C 19.67247,9.3423733 19.586426,15.511882 19.586426,23.287142 L 19.586426,27.06364 C 19.586426,29.41826 12.743205,28.202219 12.743205,25.823932 z" + style="fill:url(#linearGradient1392);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.07988632;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + inkscape:r_cy="true" + inkscape:r_cx="true" + sodipodi:nodetypes="ccccc" + id="path6332" + d="M 12.122089,14.371007 L 12.493808,14.540202 C 15.234525,14.91845 15.471857,26.162899 15.471857,26.162899 C 15.409357,27.287899 13.440607,29.87613 13.471857,29.34488 C 13.471857,29.34488 14.065946,16.620674 12.122089,14.371007 z" + style="opacity:0.62643678;fill:url(#linearGradient6334);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter5306)" + transform="matrix(-1,0,0,1,28.762476,-5.6647124)" /> + <path + style="opacity:0.10344831;fill:url(#linearGradient6233);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter6251)" + d="M 43.423941,11.814335 C 38.103497,9.9100511 36.795,11.892458 36.566172,14.801975 C 36.566172,14.801975 36.687087,22.472482 36.687087,22.472482 C 36.659989,23.60464 34.655837,23.003732 34.687087,22.472482 C 34.687087,22.472482 34.630467,14.508742 34.630467,14.508742 C 34.678721,11.551858 36.71871,8.1994403 43.423941,11.814335 z" + id="rect1345" + sodipodi:nodetypes="csccsc" + inkscape:r_cx="true" + inkscape:r_cy="true" + transform="matrix(-1,-0.3463734,0,1,67.435126,11.502092)" /> + </g> + <path + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter5246);enable-background:accumulate" + d="M 18.5,27.169521 L 19.25,11.915925 C 19.25,3.852052 34.1875,2.6985997 34.1875,14.25 L 34.1875,21.875" + id="path5675" + sodipodi:nodetypes="cccc" + transform="matrix(-1,-0.1942467,0,1,62.318732,2.5784123)" /> + <g + id="g6067" + transform="matrix(-1,-1.3719228e-2,0,1,50.629257,-3.9259803)"> + <path + d="M 21.213204,6.2806997 A 3.1819806,3.1819806 0 1 1 14.849243,6.2806997 A 3.1819806,3.1819806 0 1 1 21.213204,6.2806997 z" + sodipodi:ry="3.1819806" + sodipodi:rx="3.1819806" + sodipodi:cy="6.2806997" + sodipodi:cx="18.031223" + id="path6055" + style="opacity:1;fill:url(#radialGradient6071);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + transform="matrix(0.4343344,0,0,0.4343344,10.199642,3.5527756)" + sodipodi:type="arc" + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6065" + sodipodi:cx="18.031223" + sodipodi:cy="6.2806997" + sodipodi:rx="3.1819806" + sodipodi:ry="3.1819806" + d="M 21.213204,6.2806997 A 3.1819806,3.1819806 0 1 1 14.849243,6.2806997 A 3.1819806,3.1819806 0 1 1 21.213204,6.2806997 z" /> + </g> + <path + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter6328);enable-background:accumulate" + d="M 21.715689,3.956218 C 24.043434,2.9041432 26.831304,2.6526319 29.328581,3.956218 C 30.934482,4.7945032 30.56197,5.8453552 29.328581,5.4997159 C 26.795999,4.7899971 24.232097,4.9797662 21.715689,5.4997159 C 19.936529,5.8673328 20.2141,4.6348935 21.715689,3.956218 z" + id="rect6257" + sodipodi:nodetypes="cssss" + transform="matrix(-1,-0.1942467,0,1,61.251892,3.4098353)" /> + <path + style="opacity:1;fill:#999b97;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 47.288402,24.325755 L 44.288402,25.325755 C 44.288402,25.325755 45.663402,23.638255 46.413402,23.388255 C 47.163402,23.138255 47.288402,24.325755 47.288402,24.325755 z" + id="path5749" + sodipodi:nodetypes="ccsc" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/window-close.svg b/icons/PyHoca/scalable/window-close.svg new file mode 100644 index 0000000..8aa7eb3 --- /dev/null +++ b/icons/PyHoca/scalable/window-close.svg @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg7216" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="drawing.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7218"> + <linearGradient + id="linearGradient7916"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop7918" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1.0000000" + id="stop7920" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7916" + id="linearGradient2181" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0494758,-1.0494758,1.0494758,1.0494758,-26.939092,23.169297)" + x1="31.972097" + y1="17.041941" + x2="12.717501" + y2="36.296539" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7955"> + <stop + style="stop-color:#c22f2f;stop-opacity:1" + offset="0" + id="stop7957" /> + <stop + style="stop-color:#a40000;stop-opacity:1" + offset="1" + id="stop7959" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7955" + id="linearGradient7961" + x1="23.172504" + y1="6.0004601" + x2="23.099995" + y2="43.000458" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient3165"> + <stop + style="stop-color:#e78181;stop-opacity:1" + offset="0" + id="stop3167" /> + <stop + id="stop8599" + offset="0.25" + style="stop-color:#e15f5f;stop-opacity:1" /> + <stop + style="stop-color:#c22f2f;stop-opacity:1" + offset="0.68000001" + id="stop8601" /> + <stop + style="stop-color:#a40000;stop-opacity:1" + offset="1" + id="stop3169" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3165" + id="radialGradient7958" + cx="6.5734448" + cy="24.500458" + fx="6.5734448" + fy="24.500458" + r="18.500046" + gradientTransform="matrix(-2.1314195e-8,2.5479117,-4.8841578,-2.2328085e-8,144.16406,-10.748097)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient2091"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop2093" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop2095" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2091" + id="radialGradient2177" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.914812,1.265023e-2,-8.21502e-3,0.213562,2.253914,27.18889)" + cx="23.070683" + cy="35.127438" + fx="23.070683" + fy="35.127438" + r="10.31934" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="7" + inkscape:cx="24" + inkscape:cy="24" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="641" + inkscape:window-height="690" + inkscape:window-x="0" + inkscape:window-y="25" /> + <metadata + id="metadata7221"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <path + sodipodi:type="arc" + style="opacity:0.2557078;fill:url(#radialGradient2177);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path1361" + sodipodi:cx="22.958872" + sodipodi:cy="34.94062" + sodipodi:rx="10.31934" + sodipodi:ry="2.320194" + d="M 33.278212,34.94062 A 10.31934,2.320194 0 1 1 12.639532,34.94062 A 10.31934,2.320194 0 1 1 33.278212,34.94062 z" + transform="matrix(2.2288248,0,0,1.9190478,-27.171303,-25.505284)" /> + <path + style="font-size:59.90107727px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:url(#radialGradient7958);fill-opacity:1;stroke:url(#linearGradient7961);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans" + d="M 42.5,35.000459 L 31.99991,24.000459 L 42.499911,14.000459 L 34.99991,6.5004602 L 24.499911,17.000459 L 13.999912,6.5004602 L 6.4999133,14.000459 L 16.999911,24.000459 L 6.4999133,35.000459 L 13.999912,42.500458 L 24.499911,32.000458 L 33.999911,42.500458 L 42.5,35.000459 z" + id="text1314" + sodipodi:nodetypes="ccccccccccccc" /> + <path + style="font-size:59.90107727px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:0.4;fill:none;fill-opacity:1;stroke:url(#linearGradient2181);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans" + d="M 41,35.000459 L 30.49991,24.000459 L 40.99991,14.000459 L 34.99991,8.0004592 L 24.50022,18.500459 L 13.999912,8.0004592 L 7.9999123,14.000459 L 18.499911,24.000459 L 7.9999123,35.000459 L 13.999912,41.000459 L 24.499911,30.500459 L 34,41 L 41,35.000459 z" + id="path7076" + sodipodi:nodetypes="ccccccccccccc" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/window-new.svg b/icons/PyHoca/scalable/window-new.svg new file mode 100644 index 0000000..30bad58 --- /dev/null +++ b/icons/PyHoca/scalable/window-new.svg @@ -0,0 +1,322 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="/home/patrick/Desktop/ccsm.png" + width="48px" + height="48px" + id="svg11300" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="window-new.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs3"> + <linearGradient + id="linearGradient2378"> + <stop + id="stop2380" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + style="stop-color:#fefede;stop-opacity:0.91836733;" + offset="0.25" + id="stop4146" /> + <stop + style="stop-color:#f5f328;stop-opacity:1;" + offset="0.5" + id="stop2386" /> + <stop + id="stop2382" + offset="1" + style="stop-color:#f5f32d;stop-opacity:0.12234043;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2378" + id="radialGradient4835" + gradientUnits="userSpaceOnUse" + cx="38.658855" + cy="9.3411446" + fx="38.658855" + fy="9.3411446" + r="8.341651" /> + <linearGradient + id="linearGradient47870"> + <stop + id="stop47872" + offset="0" + style="stop-color:#000000;stop-opacity:0" /> + <stop + id="stop47878" + offset="0.5" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop47874" + offset="1" + style="stop-color:#000000;stop-opacity:0" /> + </linearGradient> + <linearGradient + id="linearGradient51765"> + <stop + id="stop51767" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop51769" + offset="1" + style="stop-color:#000000;stop-opacity:0" /> + </linearGradient> + <linearGradient + id="linearGradient2781"> + <stop + id="stop2783" + offset="0" + style="stop-color:#d3d7cf;stop-opacity:1" /> + <stop + id="stop2785" + offset="1" + style="stop-color:#eeeeec;stop-opacity:1" /> + </linearGradient> + <linearGradient + id="linearGradient3674"> + <stop + id="stop3676" + offset="0" + style="stop-color:#555753;stop-opacity:1" /> + <stop + id="stop3678" + offset="1" + style="stop-color:#888a85;stop-opacity:1" /> + </linearGradient> + <linearGradient + id="linearGradient3690"> + <stop + id="stop3692" + offset="0" + style="stop-color:white;stop-opacity:1;" /> + <stop + id="stop3694" + offset="1" + style="stop-color:white;stop-opacity:0.46875" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient47870" + id="linearGradient2282" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9788196,0,0,0.7154223,-8.5008021,52.112719)" + x1="32.084972" + y1="-14.402173" + x2="32.084972" + y2="-5.5633383" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient51765" + id="radialGradient2284" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.9576392,-8.146468e-7,6.6614241e-7,1.4565793,-59.017557,62.738067)" + cx="51.4375" + cy="-12.203125" + fx="51.4375" + fy="-12.203125" + r="2.171875" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient51765" + id="radialGradient2286" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1.9576392,-9.2540676e-8,-1.2888861e-7,1.4565793,110.01781,62.73803)" + cx="51.4375" + cy="-12.203125" + fx="51.4375" + fy="-12.203125" + r="2.171875" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3690" + id="linearGradient2289" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2605424,0,0,1.2058553,-7.4733927,-4.9459439)" + x1="9.5" + y1="16.26436" + x2="9.5" + y2="13.408723" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3674" + id="linearGradient2292" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2446306,0,0,1.2707947,-7.0741541,-5.3017616)" + x1="23.069359" + y1="6.7993021" + x2="23.069359" + y2="12.403291" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2781" + id="linearGradient2295" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2446306,0,0,1.1767765,-7.0741541,-3.982654)" + x1="24.925514" + y1="40.000107" + x2="25.000017" + y2="18.787563" /> + </defs> + <sodipodi:namedview + stroke="#ef2929" + fill="#eeeeec" + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="0.25490196" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="11.313708" + inkscape:cx="13.972244" + inkscape:cy="11.280026" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:showpageshadow="false" + inkscape:window-width="1280" + inkscape:window-height="724" + inkscape:window-x="109" + inkscape:window-y="262" + showguides="true" + inkscape:guide-bbox="true"> + <inkscape:grid + type="xygrid" + id="grid7194" /> + </sodipodi:namedview> + <metadata + id="metadata4"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:creator> + <cc:Agent> + <dc:title>Patrick Niklaus</dc:title> + </cc:Agent> + </dc:creator> + <dc:source /> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + <dc:title>State</dc:title> + <dc:subject> + <rdf:Bag /> + </dc:subject> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + transform="matrix(1.1257886,0,0,1.2632476,-4.7077482,-15.803368)" + id="g54724"> + <rect + width="32.357079" + height="6.3234997" + x="9.3215466" + y="41.809082" + style="opacity:0.3;fill:url(#linearGradient2282);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.02400005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect46899" /> + <path + d="M 41.6785,41.799698 L 41.6785,48.126714 C 44.022298,48.102828 45.930248,46.705313 45.930248,44.974385 C 45.930248,43.243458 44.022299,41.823584 41.6785,41.799698 z" + style="opacity:0.3;fill:url(#radialGradient2284);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.02400005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path48849" /> + <path + d="M 9.3217476,41.799698 L 9.3217476,48.126714 C 6.9779494,48.102828 5.07,46.705313 5.07,44.974385 C 5.07,43.243458 6.9779484,41.823584 9.3217476,41.799698 z" + style="opacity:0.3;fill:url(#radialGradient2286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.02400005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path52742" /> + </g> + <rect + style="fill:url(#linearGradient2295);fill-opacity:1;stroke:#888a85;stroke-width:1.00000024000000010;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect1915" + width="41.072853" + height="35.891666" + x="3.5052049" + y="6.6083345" + rx="1.9999999" + ry="2" /> + <path + style="fill:url(#linearGradient2292);fill-opacity:1;stroke:#555753;stroke-width:1.00000047999999997;stroke-miterlimit:4;stroke-opacity:1" + d="M 3.505204,13 L 3.505204,8.0415897 C 3.505204,6.6335492 4.6154143,5.5000002 5.994465,5.5000002 L 42.08875,5.5000002 C 43.4678,5.5000002 44.578011,6.6335492 44.578011,8.0415897 L 44.578011,13" + id="path1917" + sodipodi:nodetypes="cccccc" /> + <rect + style="opacity:0.8;fill:none;fill-opacity:1;stroke:url(#linearGradient2289);stroke-width:1.00000095;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect1919" + width="39.076817" + height="34.969814" + x="4.5017591" + y="6.5096912" + rx="1.5110159" + ry="1.5110158" /> + <g + style="display:inline" + inkscape:label="Base" + id="g2721" + transform="translate(-11.172678,-40.076333)" /> + <g + id="g4831" + transform="translate(-45.445588,7.0028596)"> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient4835);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" + id="path4827" + sodipodi:cx="38.658855" + sodipodi:cy="9.3411446" + sodipodi:rx="8.341651" + sodipodi:ry="8.341651" + d="M 47.000506,9.3411446 A 8.341651,8.341651 0 1 1 30.317204,9.3411446 A 8.341651,8.341651 0 1 1 47.000506,9.3411446 z" + transform="matrix(1.14985,0,0,1.14985,37.40235,-4.152422)" /> + <path + sodipodi:type="star" + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path4829" + sodipodi:sides="5" + sodipodi:cx="36.9375" + sodipodi:cy="11.125" + sodipodi:r1="8.755579" + sodipodi:r2="5.0676599" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.1519173" + inkscape:flatsided="false" + inkscape:rounded="0.18352206" + inkscape:randomized="0" + d="M 44.520054,15.50279 C 44.012883,16.381236 39.925351,15.341967 38.998703,15.754538 C 38.072055,16.167108 36.109289,19.900142 35.117113,19.689249 C 34.124936,19.478355 33.850222,15.26973 33.171495,14.515926 C 32.492767,13.762123 28.335913,13.048993 28.229885,12.040207 C 28.123857,11.031421 32.041607,9.4696164 32.548778,8.5911701 C 33.055949,7.7127238 32.449637,3.5389508 33.376285,3.1263806 C 34.302933,2.7138103 36.998949,5.957187 37.991126,6.1680807 C 38.983302,6.3789743 42.765436,4.5125708 43.444163,5.2663741 C 44.122891,6.0201775 41.871371,9.5864995 41.977399,10.595285 C 42.083426,11.604071 45.027225,14.624343 44.520054,15.50279 z" + transform="matrix(0.674116,0.299577,-0.299577,0.674116,60.46181,-11.83579)" /> + </g> + </g> +</svg> diff --git a/icons/PyHoca/scalable/x2go-logo-rotated.svg b/icons/PyHoca/scalable/x2go-logo-rotated.svg new file mode 100644 index 0000000..f8b57b1 --- /dev/null +++ b/icons/PyHoca/scalable/x2go-logo-rotated.svg @@ -0,0 +1,1495 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Creator: CorelDRAW --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xml:space="preserve" + width="256" + height="256" + style="fill-rule: evenodd;" + viewBox="0 0 90.311 90.311" + sodipodi:version="0.32" + inkscape:version="0.47pre4 r22446" + sodipodi:docname="x2go-logo-rotated.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0" + inkscape:export-filename="/home/h1-ubuntu/Desktop/x2go-logo.png" + inkscape:export-xdpi="225" + inkscape:export-ydpi="225" + id="svg2"><metadata + id="metadata59" /><sodipodi:namedview + inkscape:window-height="694" + inkscape:window-width="1024" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10.0" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="namedview57" + showgrid="true" + inkscape:zoom="1.7226562" + inkscape:cx="128" + inkscape:cy="128" + inkscape:window-x="0" + inkscape:window-y="25" + inkscape:current-layer="svg2" + inkscape:window-maximized="1"><inkscape:grid + type="xygrid" + id="grid4562" + visible="true" + enabled="true" + dotted="true" /></sodipodi:namedview> + <defs + id="defs4"><linearGradient + id="linearGradient4472"><stop + style="stop-color: rgb(23, 118, 255); stop-opacity: 1;" + offset="0" + id="stop4474" /><stop + id="stop4564" + offset="1" + style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" /></linearGradient><linearGradient + id="linearGradient4024"><stop + style="stop-color: rgb(77, 77, 77); stop-opacity: 1;" + offset="0" + id="stop4026" /><stop + style="stop-color: rgb(0, 0, 0); stop-opacity: 1;" + offset="1" + id="stop4028" /></linearGradient><linearGradient + id="linearGradient3385"><stop + style="stop-color: rgb(77, 77, 77); stop-opacity: 1;" + offset="0" + id="stop3387" /><stop + style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" + offset="1" + id="stop3389" /></linearGradient><inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 159.9998 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="319.9996 : 159.9998 : 1" + inkscape:persp3d-origin="159.9998 : 106.66653 : 1" + id="perspective61" /> + <style + type="text/css" + id="style6"> + + .str0 {stroke:black;stroke-width:0.0762} + .fil1 {fill:#9900CC} + .fil0 {fill:#4D4D4D} + + </style> + <inkscape:perspective + id="perspective2498" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 526.18109 : 1" + sodipodi:type="inkscape:persp3d" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3391" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3471" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3473" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3475" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3477" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3479" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3481" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3483" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3485" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3487" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3489" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3491" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3493" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3495" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3497" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3499" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3501" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3503" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3505" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3507" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3509" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3511" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3513" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3515" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3517" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3519" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3521" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3523" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3525" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3527" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3529" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3531" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3533" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3535" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3537" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3539" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3541" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3543" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3545" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /> + <metadata + id="metadata3301" /> + <metadata + id="metadata3303"> + <rdf:RDF + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + <cc:Work + style="fill-opacity:1.0;fill:url(#linearGradient3391)" + rdf:about=""> + <dc:format + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + image/svg+xml </dc:format> + <dc:type + style="fill-opacity:1.0;fill:url(#linearGradient3391)" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + x2go Logo </dc:title> + <dc:date + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + 12.06.2007 </dc:date> + <dc:creator + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + <cc:Agent + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + <dc:title + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + Heinz-M. Graesing </dc:title> + </cc:Agent> + </dc:creator> + <dc:rights + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + <cc:Agent + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + <dc:title + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + obviously-nice </dc:title> + </cc:Agent> + </dc:rights> + <dc:publisher + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + <cc:Agent + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + <dc:title + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + obviously-nice </dc:title> + </cc:Agent> + </dc:publisher> + <dc:source + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + http://www.x2go.org/artwork </dc:source> + <dc:language + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + DE </dc:language> + <dc:subject + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + <rdf:Bag + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + <rdf:li + style="fill-opacity:1.0;fill:url(#linearGradient3391)"> + Logo </rdf:li> + </rdf:Bag> + </dc:subject> + <cc:license + style="fill-opacity:1.0;fill:url(#linearGradient3391)" + rdf:resource="http://creativecommons.org/licenses/by-nd/3.0/" /> + </cc:Work> + <cc:License + style="fill-opacity:1.0;fill:url(#linearGradient3391)" + rdf:about="http://creativecommons.org/licenses/by-nd/3.0/"> + <cc:permits + style="fill-opacity:1.0;fill:url(#linearGradient3391)" + rdf:resource="http://creativecommons.org/ns#Reproduction" /> + <cc:permits + style="fill-opacity:1.0;fill:url(#linearGradient3391)" + rdf:resource="http://creativecommons.org/ns#Distribution" /> + <cc:requires + style="fill-opacity:1.0;fill:url(#linearGradient3391)" + rdf:resource="http://creativecommons.org/ns#Notice" /> + <cc:requires + style="fill-opacity:1.0;fill:url(#linearGradient3391)" + rdf:resource="http://creativecommons.org/ns#Attribution" /> + </cc:License> + </rdf:RDF> + </metadata> + <sodipodi:namedview + style="fill-opacity:1.0;fill:url(#linearGradient3391)" + inkscape:window-height="834" + inkscape:window-width="1295" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10.0" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="namedview3305" + showgrid="true" + inkscape:object-nodes="true" + inkscape:grid-points="true" + inkscape:guide-points="true" + width="128px" + height="128px" + inkscape:zoom="3.9375" + inkscape:cx="64" + inkscape:cy="64" + inkscape:window-x="395" + inkscape:window-y="117" + inkscape:current-layer="svg2"> + <inkscape:grid + style="fill-opacity:1.0;fill:url(#linearGradient3391)" + id="grid3307" + type="xygrid" + originx="0px" + originy="0px" + spacingx="1px" + spacingy="1px" + color="#0000ff" + empcolor="#0000ff" + opacity="0.2" + empopacity="0.4" + empspacing="5" /> + </sodipodi:namedview> + + + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3589" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3591" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3593" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3595" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3597" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3599" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3601" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3603" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3605" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3607" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3609" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3611" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3613" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3615" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3617" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3619" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3621" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3623" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3625" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3627" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3629" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3631" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3633" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3635" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3637" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3639" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3641" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3643" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3645" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3647" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3649" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3651" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3653" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3655" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3657" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3659" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3661" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3663" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /> + + + + + + + + + + + + + + + + + + + + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3666" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3712" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3714" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /> + + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3717" + gradientUnits="userSpaceOnUse" + x1="43.865341" + y1="21.932671" + x2="46.680233" + y2="59.933662" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3385" + id="linearGradient3720" + gradientUnits="userSpaceOnUse" + x1="186.41063" + y1="52.270298" + x2="197.95351" + y2="160.08939" /> + <metadata + id="metadata3832" /> + <metadata + id="metadata3834"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format> + image/svg+xml </dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title> + x2go Logo </dc:title> + <dc:date> + 12.06.2007 </dc:date> + <dc:creator> + <cc:Agent> + <dc:title> + Heinz-M. Graesing </dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title> + obviously-nice </dc:title> + </cc:Agent> + </dc:rights> + <dc:publisher> + <cc:Agent> + <dc:title> + obviously-nice </dc:title> + </cc:Agent> + </dc:publisher> + <dc:source> + http://www.x2go.org/artwork </dc:source> + <dc:language> + DE </dc:language> + <dc:subject> + <rdf:Bag> + <rdf:li> + Logo </rdf:li> + </rdf:Bag> + </dc:subject> + <cc:license + rdf:resource="http://creativecommons.org/licenses/by-nd/3.0/" /> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/by-nd/3.0/"> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Notice" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Attribution" /> + </cc:License> + </rdf:RDF> + </metadata> + <sodipodi:namedview + inkscape:window-height="834" + inkscape:window-width="1295" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10.0" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="namedview3836" + showgrid="true" + inkscape:object-nodes="true" + inkscape:grid-points="true" + inkscape:guide-points="true" + width="128px" + height="128px" + inkscape:zoom="3.9375" + inkscape:cx="64" + inkscape:cy="64" + inkscape:window-x="395" + inkscape:window-y="117" + inkscape:current-layer="svg2"> + <inkscape:grid + id="grid3838" + type="xygrid" + originx="0px" + originy="0px" + spacingx="1px" + spacingy="1px" + color="#0000ff" + empcolor="#0000ff" + opacity="0.2" + empopacity="0.4" + empspacing="5" /> + </sodipodi:namedview> + + + + + + + + + + + + + + + + + + + + + + + + + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4024" + id="linearGradient4030" + x1="73.773529" + y1="34.716957" + x2="7.6236558" + y2="72.366089" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4024" + id="linearGradient4116" + gradientUnits="userSpaceOnUse" + x1="9.4750996" + y1="78.465012" + x2="64.742432" + y2="46.914806" /> + <metadata + id="metadata4160" /> + + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4472" + id="radialGradient4478" + cx="44.602337" + cy="44.941875" + fx="44.602337" + fy="44.941875" + r="35.79092" + gradientTransform="matrix(1, 0, 0, 1.15885, 0, -7.1388)" + gradientUnits="userSpaceOnUse" /><filter + inkscape:collect="always" + id="filter3357"><feGaussianBlur + inkscape:collect="always" + stdDeviation="2.6811911" + id="feGaussianBlur3359" /></filter></defs> + + <path + style="fill: rgb(0, 0, 0); fill-opacity: 1; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dashoffset: 0pt; stroke-opacity: 1; filter: url(#filter3357);" + d="M 17.091117,8.0900691 L 80.688789,3.507838 C 83.229977,4.1306547 84.660349,6.5850788 84.592564,8.7115923 L 84.666563,83.255453 C 84.627506,84.204671 84.368459,84.929044 84.046689,85.456149 C 83.061689,86.21353 81.854514,86.556277 80.541045,86.436862 L 18.151615,78.623279 C 16.029205,78.182442 14.445482,76.236797 14.328795,73.719407 L 13.085984,12.818162 C 13.047067,11.517857 13.900155,8.36003 17.091117,8.0900691 z" + id="path2573" + sodipodi:nodetypes="cccccccccc" + transform="matrix(1, 0, 0, 1.01684, 0, -0.11242)" /><path + style="fill: rgb(255, 255, 255); fill-opacity: 1; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dashoffset: 0pt; stroke-opacity: 1;" + d="M 12.817811,7.3540988 L 76.415483,3.4657395 C 78.956672,4.0885562 80.387044,6.5429803 80.319258,8.6694938 L 80.393257,83.213355 C 80.354201,84.162573 80.095153,84.886946 79.773383,85.414051 C 78.788384,86.171432 77.581208,86.514179 76.267739,86.394764 L 13.878309,79.275053 C 11.755899,78.834216 10.172176,76.888571 10.055489,74.371181 L 8.8126782,12.082192 C 8.7737615,10.781887 9.6268498,7.6240597 12.817811,7.3540988 z" + id="rect4467" + sodipodi:nodetypes="cccccccccc" /><path + sodipodi:nodetypes="cccccccccc" + id="path4470" + d="M 12.817811,7.3540988 L 76.415483,3.4657395 C 78.956672,4.0885562 80.387044,6.5429803 80.319258,8.6694938 L 80.393257,83.213355 C 80.354201,84.162573 80.095153,84.886946 79.773383,85.414051 C 78.788384,86.171432 77.581208,86.514179 76.267739,86.394764 L 13.878309,79.275053 C 11.755899,78.834216 10.172176,76.888571 10.055489,74.371181 L 8.8126782,12.082192 C 8.7737615,10.781887 9.6268498,7.6240597 12.817811,7.3540988 z" + style="fill: url(#radialGradient4478) rgb(0, 0, 0); fill-opacity: 1; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dashoffset: 0pt; stroke-opacity: 1;" /><g + id="Ebene_x0020_2" + visibility="hidden" + style="fill: rgb(0, 0, 0); stroke: none; visibility: hidden;"> + <metadata + id="CorelCorpID_1Corel-Layer" /> + <path + class="fil1 str0" + d="M 82.9259,82.4551 L 82.9178,82.762 L 82.894,83.0632 L 82.8547,83.3577 L 82.8006,83.6459 L 82.7318,83.9269 L 82.6489,84.2006 L 82.5524,84.4666 L 82.4425,84.7249 L 82.3195,84.9747 L 82.1841,85.2161 L 82.0366,85.4486 L 81.8774,85.6719 L 81.7068,85.8855 L 80.5321,87.3512 L 80.7062,87.1333 L 80.8686,86.9054 L 81.0192,86.6682 L 81.1574,86.4219 L 81.2829,86.167 L 81.3949,85.9034 L 81.4935,85.632 L 81.578,85.3526 L 81.6482,85.0659 L 81.7034,84.7719 L 81.7436,84.4713 L 81.7678,84.1641 L 81.7761,83.8509 L 81.7761,83.2671 L 81.7761,82.6833 L 81.7761,82.0994 L 81.7761,7.8138 L 81.7676,7.4861 L 81.7426,7.1631 L 81.7015,6.846 L 81.6447,6.5344 L 81.5724,6.2293 L 81.4855,5.9308 L 81.384,5.6395 L 81.2686,5.3554 L 81.1395,5.0794 L 80.9973,4.8116 L 80.8422,4.5524 L 80.6752,4.3021 L 80.4958,4.0615 L 80.3054,3.8304 L 80.1038,3.6097 L 79.8917,3.3994 L 79.6691,3.2004 L 79.4369,3.0125 L 79.1954,2.8366 L 78.9451,2.6725 L 78.6861,2.5213 L 78.4193,2.3828 L 78.1447,2.2577 L 77.8631,2.1462 L 77.57 44,2.049 L 77.2796,1.9662 L 76.9787,1.8983 L 78.2245,2.1417 L 78.5193,2.2083 L 78.8083,2.2893 L 79.0911,2.3847 L 79.3671,2.494 L 79.6362,2.6166 L 79.8977,2.7523 L 80.1515,2.9004 L 80.3968,3.0612 L 80.6335,3.2336 L 80.861,3.4178 L 81.0791,3.6128 L 81.287,3.8188 L 81.4846,4.0352 L 81.6713,4.2617 L 81.847,4.4975 L 82.0108,4.7428 L 82.1627,4.9968 L 82.3021,5.2592 L 82.4286,5.5296 L 82.5417,5.8081 L 82.6411,6.0935 L 82.7263,6.3862 L 82.797,6.6852 L 82.8528,6.9904 L 82.893,7.3012 L 82.9176,7.6178 L 82.9259,7.9389 L 82.9259,82.4551 z M 76.189,86.3723 L 76.4601,86.3962 L 76.7286,86.4064 L 76.9933,86.4028 L 77.2543,86.3859 L 77.5108,86.3559 L 77.763,86.3132 L 78.01,86.2579 L 78.252,86.1906 L 78.4879,86.1112 L 78.7181,86.0203 L 78.9416,85.918 L 79.1588,85.8049 L 79.3686,85.6809 L 79.571,85.5466 L 79.7655,85.4022 L 79.9521,85.2481 L 80.1297,85.0841 L 80.2988,84.9111 L 80.4584,84.7291 L 79.2583,86.1712 L 79.0953,86.3569 L 78.9229,86.5336 L 78.7416,86.7007 L 78.5512,86.8581 L 78.3527,87.0055 L 7 8.1462,8 7.1425 L 77.9321,87.269 L 77.7106,87.3845 L 77.4824,87.4888 L 77.2475,87.5815 L 77.0067,87.6626 L 76.7599,87.7313 L 76.5078,87.7877 L 76.2505,87.8312 L 75.9888,87.8619 L 75.7224,87.8791 L 75.4523,87.8828 L 75.1784,87.8724 L 74.9016,87.8479 L 14.1538,80.9158 L 13.7157,80.8658 L 13.2781,80.816 L 12.8414,80.7661 L 12.4052,80.7164 L 11.9698,80.6667 L 11.5349,80.6172 L 11.3276,80.5874 L 11.1226,80.5463 L 10.9206,80.4939 L 10.7215,80.4308 L 10.5258,80.3571 L 10.3336,80.2734 L 10.1453,80.1796 L 9.961,80.0764 L 9.7813,79.9638 L 9.606,79.8425 L 9.4356,79.7124 L 9.2703,79.5743 L 9.1105,79.428 L 8.956,79.2743 L 8.8074,79.1132 L 8.6649,78.9452 L 8.5291,78.7703 L 8.3997,78.5892 L 8.2773,78.4021 L 8.1618,78.2095 L 8.0539,78.0111 L 7.9536,77.808 L 7.8613,77.6 L 7.7769,77.3878 L 7.7012,77.1713 L 7.6338,76.951 L 7.5756,76.7274 L 7.5264,76.5007 L 7.4868,76.2709 L 7.4566,76.0389 L 7.4365,75.8047 L 7.4264,75.5688 L 6.1539,12.2599 L 6.1544,12.0164 L 6.1655,11.7752 L 6.1869,11.5367 L 6.2181,11.30 11 L 6.2 593,11.069 L 6.3098,10.8404 L 6.3699,10.6158 L 6.4387,10.3953 L 6.5166,10.1798 L 6.603,9.9691 L 6.6977,9.7637 L 6.8003,9.5637 L 6.9109,9.3699 L 7.0288,9.1821 L 7.1542,9.0011 L 7.2866,8.8267 L 7.4259,8.66 L 7.5716,8.5006 L 7.7238,8.3492 L 7.8819,8.2058 L 8.0459,8.0712 L 8.2154,7.9452 L 8.3903,7.8286 L 8.57,7.7213 L 8.7547,7.6241 L 8.944,7.5369 L 9.1376,7.4603 L 9.3351,7.3944 L 9.5367,7.3397 L 9.7416,7.2965 L 9.9499,7.2651 L 10.1611,7.2456 L 10.6036,7.2185 L 11.0468,7.1913 L 11.4905,7.164 L 11.935,7.1366 L 12.3801,7.1094 L 12.8257,7.0819 L 13.2721,7.0545 L 74.7051,3.281 L 74.9903,3.2711 L 75.2722,3.2758 L 75.5503,3.2951 L 75.8244,3.3283 L 77.0932,3.5431 L 76.8246,3.5105 L 76.552,3.4917 L 76.2758,3.4871 L 75.9963,3.4968 L 75.433,3.5315 L 74.8706,3.5663 L 13.177,7.3555 L 12.7434,7.3821 L 12.5363,7.4011 L 12.3321,7.4319 L 12.1314,7.4744 L 11.9338,7.5279 L 11.7403,7.5924 L 11.5506,7.6675 L 11.3651,7.753 L 11.1841,7.8483 L 11.0079,7.9533 L 10.8365,8.0677 L 10.6705,8.1911 L 10.5097, 8.3231 L 10.3547,8.4636 L 10.2056,8.6119 L 10.0627,8.7682 L 9.9263,8.9316 L 9.7965,9.1025 L 9.6737,9.2798 L 9.558,9.4638 L 9.4497,9.6538 L 9.3492,9.8498 L 9.2563,10.0511 L 9.1717,10.2576 L 9.0954,10.4688 L 9.0279,10.6848 L 8.969,10.905 L 8.9196,11.1289 L 8.8791,11.3565 L 8.8486,11.5873 L 8.8276,11.8211 L 8.8168,12.0574 L 8.8162,12.296 L 8.8264,12.7894 L 8.8362,13.2825 L 8.8462,13.7757 L 8.856,14.2686 L 8.8659,14.7615 L 8.8757,15.2542 L 8.8856,15.7469 L 8.8954,16.2394 L 8.9055,16.7319 L 8.9154,17.2243 L 8.9253,17.7165 L 8.9351,18.2084 L 8.945,18.7006 L 8.9548,19.1924 L 8.9647,19.684 L 8.9745,20.1755 L 8.9844,20.6672 L 8.9943,21.1586 L 9.0042,21.6498 L 9.014,22.1409 L 9.0239,22.6318 L 9.0294,22.9058 L 38.765323,21.259149 L 39.671538,23.190289 L 41.589655,23.080505 L 40.7533,21.1049 L 38.7427,21.2485 L 9.0294,22.9072 L 9.0337,23.1227 L 9.0436,23.6132 L 9.0534,24.1037 L 9.0634,24.594 L 9.0732,25.0842 L 9.0831,25.5742 L 9.0929,26.0641 L 9.1008,26.4565 L 11.6093,26.2178 L 42.3483,24.7592 L 43.136 8,26.6197 L 43.1911,26.7427 L 41.2302,27.0014 L 41.1749,26.8758 L 40.3703,24.9774 L 9.1009,26.4613 L 9.1028,26.5539 L 9.1126,27.0433 L 9.1225,27.5328 L 9.1322,28.0219 L 9.142,28.5092 L 9.1519,28.9963 L 9.1617,29.4835 L 9.1714,29.9706 L 9.1726,30.0297 L 11.6769,29.7224 L 43.8813,28.5197 L 43.9345,28.6467 L 44.7377,30.5489 L 42.8084,30.8852 L 41.9889,28.9442 L 41.9346,28.8146 L 9.1728,30.0382 L 9.1812,30.458 L 9.1912,30.9451 L 9.201,31.4323 L 9.2106,31.9193 L 9.2204,32.4065 L 9.2302,32.8936 L 9.2401,33.3807 L 9.2446,33.6092 L 11.7372,33.2346 L 45.4331,32.2177 L 45.4892,32.3557 L 46.3414,34.4054 L 44.445,34.8204 L 43.5753,32.7289 L 43.518,32.5881 L 9.2448,33.6223 L 9.2496,33.8677 L 9.2596,34.3547 L 9.2694,34.8417 L 9.2793,35.3285 L 9.2888,35.8151 L 9.2986,36.3019 L 9.3085,36.7885 L 9.3159,37.1515 L 11.8043,36.7095 L 46.997,35.9493 L 47.9492,38.2329 L 46.0855,38.726 L 45.1138,36.3958 L 9.4635,37.167 L 9.3163,37.1696 L 9.3184,37.275 L 9.328,37.7614 L 9.3378,38.2477 L 9.3476,38.73 39 L 9.3 574,39.2198 L 9.3669,39.7055 L 9.3768,40.1913 L 9.3867,40.6768 L 9.3867,40.6788 L 11.871,40.1698 L 48.5657,39.7387 L 49.5761,42.0796 L 47.7457,42.6512 L 46.7147,40.2626 L 9.3872,40.7015 L 9.3966,41.1624 L 9.4061,41.6474 L 9.4159,42.1324 L 9.4255,42.6171 L 9.4353,43.1015 L 9.4449,43.5859 L 9.4548,44.0694 L 9.4573,44.1908 L 11.9376,43.6152 L 50.1537,43.4978 L 51.071,45.6095 L 50.887733,45.807399 L 49.130423,46.599325 L 49.271,46.2533 L 48.335,44.0985 L 9.6196,44.2176 L 9.4578,44.218 L 9.4646,44.553 L 9.4745,45.0366 L 9.484,45.5202 L 9.4939,46.0036 L 9.5035,46.4871 L 9.5133,46.9706 L 9.5229,47.4542 L 9.5284,47.7252 L 12.0046,47.0827 L 50.3179,47.2212 L 50.2453,47.3716 L 49.1779,49.5958 L 47.3393,50.321 L 48.5026,47.8978 L 9.6891,47.7583 L 9.529,47.7573 L 9.5327,47.9375 L 9.5423,48.4209 L 9.5522,48.9042 L 9.5618,49.3875 L 9.5717,49.8705 L 9.5812,50.3538 L 9.591,50.8367 L 9.5989,51.2368 L 12.071,50.5281 L 48.5063,51.0119 L 47.4565,53.2183 L 45.5827,54.0173 L 46.6541,51.766 L 9.74 32,51.27 65 L 9.5997,51.2743 L 9.6006,51.3199 L 9.6104,51.8026 L 9.62,52.2854 L 9.6299,52.7681 L 9.6394,53.2507 L 9.6493,53.733 L 9.6588,54.2156 L 9.6686,54.6977 L 9.6696,54.7484 L 12.1376,53.9736 L 46.7127,54.6995 L 45.7309,56.8104 L 43.8218,57.6827 L 44.8238,55.5288 L 9.6705,54.7908 L 9.6783,55.18 L 9.6881,55.6618 L 9.6976,56.1438 L 9.7075,56.6254 L 9.717,57.1072 L 9.7268,57.5885 L 9.7365,58.0699 L 9.741,58.297 L 12.2046,57.4557 L 44.9898,58.4231 L 44.0157,60.3658 L 42.0717,61.3107 L 43.0657,59.3284 L 9.7419,58.3452 L 9.746,58.5509 L 9.7555,59.032 L 9.7654,59.5112 L 9.7749,59.9907 L 9.7847,60.4699 L 9.7943,60.9494 L 9.8041,61.4286 L 9.811,61.7781 L 12.2707,60.8716 L 43.2399,62.0428 L 42.4,63.8833 L 40.423,64.9 L 41.2801,63.022 L 9.8121,61.832 L 9.8136,61.9078 L 9.8232,62.3869 L 9.8328,62.8661 L 9.8426,63.345 L 9.8522,63.824 L 9.8617,64.3029 L 9.8712,64.7818 L 9.8811,65.2603 L 9.8812,65.2665 L 12.3367,64.2948 L 41.5531,65.6845 L 39.5589,66.738 L 10.1861,65.341 L 9.8824,65.3264 L 9.8 907,65.7 391 L 9.9002,66.2176 L 9.9097,66.6963 L 9.9196,67.1745 L 9.9291,67.6529 L 9.9387,68.1311 L 9.9483,68.6092 L 9.9519,68.7849 L 12.4035,67.7475 L 39.0528,69.1849 L 39.4995,69.2094 L 39.4942,69.2205 L 39.4889,69.2319 L 39.4838,69.2431 L 39.4788,69.254 L 39.4743,69.2644 L 39.4702,69.2745 L 39.4666,69.2841 L 39.4635,69.2932 L 39.3558,69.3528 L 39.3503,69.3584 L 39.3397,69.3696 L 39.3297,69.3804 L 39.3201,69.3913 L 39.3108,69.4021 L 39.3022,69.4133 L 39.2128,69.4628 L 39.2104,69.4674 L 39.205,69.4775 L 39.1996,69.4874 L 39.1942,69.4973 L 39.1888,69.5073 L 39.1834,69.5178 L 39.178,69.529 L 39.0695,69.5891 L 39.0645,69.5941 L 39.0591,69.5995 L 39.0533,69.6053 L 37.008,70.7387 L 37.0139,70.7329 L 37.0194,70.7273 L 37.0249,70.7218 L 37.0304,70.7163 L 37.0362,70.7108 L 37.0417,70.7053 L 37.0472,70.6998 L 37.0527,70.6942 L 37.1438,70.6437 L 37.1463,70.6388 L 37.1519,70.6285 L 37.1574,70.6185 L 37.1603,70.6129 L 36.8052,70.8096 L 36.8111,70.8037 L 36.8151,70.7997 L 36.7228,70.8508 L 36.73 17,70.84 54 L 36.8162,70.7986 L 36.8166,70.7982 L 36.8221,70.7927 L 36.8276,70.7872 L 36.8334,70.7817 L 36.8389,70.7762 L 36.8444,70.7706 L 36.8499,70.7651 L 37.175,70.5851 L 37.1795,70.5762 L 37.2801,70.5205 L 37.2802,70.5204 L 37.2901,70.5093 L 37.3002,70.4983 L 37.311,70.4869 L 37.3219,70.4759 L 37.3329,70.4648 L 37.3439,70.4538 L 37.432,70.4051 L 37.4334,70.4013 L 37.4377,70.3909 L 37.4422,70.3803 L 37.4473,70.3692 L 37.4525,70.3578 L 37.4579,70.3462 L 37.4633,70.3348 L 37.4371,70.3334 L 36.3918,70.9109 L 36.4006,70.9055 L 37.4362,70.3333 L 35.6439,70.2363 L 34.386604,70.174359 L 10.224,68.8652 L 9.9532,68.8506 L 9.958,69.0871 L 9.9675,69.5652 L 9.977,70.043 L 9.9866,70.5209 L 9.9965,70.9983 L 10.006,71.4759 L 10.0156,71.9532 L 10.0215,72.2504 L 12.4689,71.1486 L 35.5517,72.6014 L 35.5697,74.0705 L 33.4534,75.295 L 33.4524,75.2021 L 33.435,73.796 L 10.2332,72.336 L 10.0229,72.3226 L 10.0251,72.4307 L 10.0346,72.9077 L 10.0442,73.3849 L 10.0538,73.8618 L 10.0633,74.3387 L 10.0731, 74.5699 L 10.0928,74.7994 L 10.1225,75.0268 L 10.1613,75.252 L 10.2095,75.4741 L 10.2666,75.6933 L 10.3325,75.9091 L 10.4068,76.1214 L 10.4896,76.3294 L 10.58,76.5331 L 10.6783,76.7322 L 10.784,76.9266 L 10.8972,77.1153 L 11.0171,77.2987 L 11.1439,77.4761 L 11.277,77.6476 L 11.4167,77.8122 L 11.5623,77.9701 L 11.7137,78.1208 L 11.8703,78.2641 L 12.0324,78.3994 L 12.1993,78.5269 L 12.3711,78.6458 L 12.5473,78.7562 L 12.7279,78.8573 L 12.9124,78.9491 L 13.1007,79.0313 L 13.2924,79.1035 L 13.4876,79.1654 L 13.6856,79.2167 L 13.8864,79.2569 L 14.0897,79.2861 L 74.5381,86.1836 L 75.0875,86.2464 L 75.6378,86.3092 L 76.189,86.3723 L 76.189,86.3723 z M 34.8606,18.7453 L 36.228214,18.724592 C 37.971462,18.712199 37.943293,18.825508 38.346563,19.205978 L 37.487073,19.279179 C 36.690089,18.733992 35.720531,18.821581 34.7766,18.8152 L 32.7297,18.8407 L 32.7169,17.8041 L 34.8479,17.7294 L 34.8606,18.7453 L 34.8606,18.7453 z M 32.6622,13.9686 L 34.7944,13.9707 L 34.8206,15.4945 L 32.6889,15.5236 L 32.662 2,13.9686 L 32.6622,13.9686 z M 78.1675,76.3511 L 78.1675,76.446 L 78.1675,76.5411 L 78.1675,76.6361 L 78.1678,76.7313 L 78.1678,76.8261 L 78.1679,76.9212 L 78.1679,77.0163 L 78.1682,77.1114 L 78.1682,77.2062 L 78.1682,77.3013 L 78.1682,77.3965 L 78.1686,77.4916 L 78.1686,77.5864 L 78.1689,77.6815 L 78.1689,77.7767 L 78.1692,77.8719 L 76.9223,79.174 L 76.922,79.0769 L 76.922,78.9799 L 76.9217,78.8828 L 76.9217,78.7861 L 76.9214,78.689 L 76.9214,78.5919 L 76.9214,78.4949 L 76.9214,78.3981 L 76.921,78.301 L 76.921,78.204 L 76.9209,78.1069 L 76.9209,78.0102 L 76.9206,77.9131 L 76.9206,77.8161 L 76.9206,77.7191 L 76.9206,77.6223 L 76.7971,77.6092 L 76.6747,77.5933 L 76.5532,77.5743 L 76.4328,77.5524 L 76.313,77.5273 L 76.1943,77.4996 L 76.0764,77.4689 L 75.9597,77.4353 L 75.8436,77.3987 L 75.7286,77.3593 L 75.6146,77.3171 L 75.5017,77.2722 L 75.3895,77.2243 L 75.2785,77.1739 L 75.1684,77.1206 L 75.0594,77.0648 L 74.9512,77.0059 L 74.8442,76.9446 L 74.7381,76.8804 L 74.6331,76.81 38 L 74. 529,76.7444 L 74.4262,76.6725 L 74.3244,76.5979 L 74.2238,76.521 L 74.1239,76.4414 L 74.0253,76.3592 L 73.9277,76.2745 L 73.8315,76.1875 L 73.736,76.0979 L 73.6419,76.0059 L 73.5488,75.9114 L 73.4571,75.8148 L 73.3664,75.7089 L 73.275,75.5985 L 73.1826,75.4832 L 73.0894,75.3633 L 72.9951,75.2384 L 72.9001,75.1091 L 72.804,74.9748 L 72.7071,74.8361 L 72.6091,74.6923 L 72.5103,74.5439 L 72.4105,74.3908 L 72.3101,74.2332 L 72.2086,74.0706 L 72.1062,73.9036 L 72.003,73.7316 L 71.899,73.5552 L 71.7938,73.3739 L 71.6879,73.1881 L 71.5811,72.9975 L 71.4736,72.8024 L 71.3649,72.6024 L 71.2556,72.3981 L 71.1453,72.1889 L 71.0345,71.9753 L 70.9225,71.7568 L 70.8098,71.5339 L 70.6961,71.3063 L 70.5819,71.0742 L 70.4665,70.8372 L 70.3505,70.596 L 70.2336,70.3499 L 70.1161,70.0996 L 69.9227,69.6531 L 69.7296,69.207 L 69.5366,68.761 L 57.9695,41.9684 L 67.3913,22.906 L 67.569,22.5466 L 67.7438,22.1955 L 67.9155,21.8532 L 68.0845,21.5194 L 68.2503,21.1945 L 68.4133,20.8781 L 68.5734,20.570 4 L 68.7 308,20.2712 L 68.8852,19.981 L 69.0369,19.6993 L 69.1857,19.4263 L 69.332,19.1618 L 69.4754,18.9062 L 69.6163,18.6591 L 69.7543,18.4208 L 69.89,18.1911 L 70.0228,17.9702 L 70.1533,17.7579 L 70.2811,17.5543 L 70.4066,17.3593 L 70.5293,17.1732 L 70.6498,16.9956 L 70.7679,16.8268 L 70.8837,16.6665 L 70.9969,16.5151 L 71.1079,16.3723 L 71.2166,16.2382 L 71.3231,16.1127 L 71.4273,15.996 L 71.5293,15.8879 L 71.6291,15.7886 L 71.7269,15.6978 L 71.8247,15.6101 L 71.9254,15.5251 L 72.0286,15.4427 L 72.1348,15.3629 L 72.2435,15.2859 L 72.3552,15.2113 L 72.4696,15.1395 L 72.5869,15.07 L 72.7069,15.0035 L 72.8299,14.9395 L 72.9558,14.8782 L 73.0848,14.8192 L 73.2165,14.763 L 73.3514,14.7092 L 73.4892,14.6582 L 73.6303,14.6095 L 73.7741,14.5636 L 73.9213,14.5201 L 74.0714,14.4792 L 74.225,14.4407 L 74.3814,14.4048 L 74.5413,14.3714 L 74.7042,14.3406 L 74.8707,14.312 L 75.0401,14.2861 L 75.2131,14.2626 L 75.3892,14.2415 L 75.5689,14.2229 L 75.7518,14.2068 L 75.9382,14.1931 L 76.128,14.181 8 L 76.3 215,14.1728 L 76.3212,14.0696 L 76.3212,13.966 L 76.3209,13.8626 L 76.3209,13.759 L 76.3206,13.6554 L 76.3206,13.5519 L 76.3204,13.4481 L 76.3204,13.3442 L 76.3201,13.2404 L 76.3201,13.1364 L 76.3198,13.0322 L 76.3198,12.9279 L 76.3195,12.8235 L 76.3195,12.7188 L 76.3195,12.614 L 76.3195,12.5089 L 77.5785,12.5401 L 77.5785,12.6431 L 77.5785,12.7459 L 77.5785,12.8484 L 77.5787,12.9507 L 77.5787,13.053 L 77.579,13.155 L 77.579,13.257 L 77.5793,13.3587 L 77.5793,13.4605 L 77.5794,13.5623 L 77.5794,13.6637 L 77.5798,13.7652 L 77.5798,13.8667 L 77.5801,13.9681 L 77.5801,14.0696 L 77.5804,14.1708 L 77.3908,14.1795 L 77.2048,14.1906 L 77.022,14.2041 L 76.8428,14.2199 L 76.6667,14.2381 L 76.4941,14.2587 L 76.3247,14.2818 L 76.1586,14.3071 L 75.9955,14.3351 L 75.8357,14.3653 L 75.6792,14.3981 L 75.5258,14.4332 L 75.3753,14.471 L 75.2282,14.5111 L 75.084,14.5537 L 74.9431,14.5986 L 74.8048,14.6464 L 74.6697,14.6965 L 74.5375,14.7492 L 74.4084,14.8041 L 74.282,14.8619 L 74.1586,14.9221 L 74.03 81,14.9848 L 73.9204,15.05 L 73.8055,15.1181 L 73.6934,15.1884 L 73.584,15.2616 L 73.4774,15.337 L 73.3734,15.4152 L 73.2722,15.496 L 73.1735,15.5793 L 73.0776,15.6652 L 72.9818,15.7542 L 72.8841,15.8516 L 72.7841,15.9575 L 72.682,16.0718 L 72.5776,16.1948 L 72.4711,16.3262 L 72.3622,16.4662 L 72.2513,16.6146 L 72.1379,16.7716 L 72.0221,16.9371 L 71.9041,17.1111 L 71.7837,17.2935 L 71.6609,17.4847 L 71.5356,17.6841 L 71.4077,17.8922 L 71.2776,18.1086 L 71.1446,18.3338 L 71.0092,18.5674 L 70.8711,18.8094 L 70.7307,19.0599 L 70.5873,19.3191 L 70.4414,19.5866 L 70.2928,19.8627 L 70.1415,20.1472 L 69.9872,20.4403 L 69.8304,20.7419 L 69.6706,21.052 L 69.5082,21.3704 L 69.3426,21.6975 L 69.1742,22.033 L 69.003,22.377 L 68.8289,22.7293 L 59.5955,41.4104 L 71.3096,68.5413 L 71.4991,68.9789 L 71.6142,69.2241 L 71.7288,69.4653 L 71.8425,69.7017 L 71.9556,69.934 L 72.0676,70.1615 L 72.1789,70.3845 L 72.2894,70.6029 L 72.3991,70.8171 L 72.5078,71.0265 L 72.6158,71.2314 L 72.7229,71.4316 L 72.82 94,71.6276 L 72.9348,71.8188 L 73.0396,72.0056 L 73.1432,72.1877 L 73.2464,72.3654 L 73.3482,72.5382 L 73.4494,72.7068 L 73.5497,72.8705 L 73.6492,73.0299 L 73.7476,73.1843 L 73.8454,73.3343 L 73.9422,73.4797 L 74.0383,73.6206 L 74.1332,73.7566 L 74.2274,73.8882 L 74.3205,74.0149 L 74.413,74.1373 L 74.5043,74.2549 L 74.5948,74.3677 L 74.6843,74.476 L 74.7733,74.5797 L 74.8632,74.6745 L 74.9543,74.767 L 75.0466,74.8572 L 75.1401,74.9451 L 75.2345,75.0302 L 75.3302,75.1133 L 75.4267,75.1938 L 75.5246,75.2719 L 75.6232,75.3473 L 75.723,75.4203 L 75.8237,75.4908 L 75.9258,75.5589 L 76.0287,75.6241 L 76.1326,75.687 L 76.2374,75.747 L 76.3435,75.8047 L 76.4503,75.8595 L 76.5583,75.9116 L 76.667,75.9611 L 76.777,76.0081 L 76.8876,76.0521 L 76.9994,76.0934 L 77.112,76.1321 L 77.2258,76.1679 L 77.3402,76.2008 L 77.4557,76.2309 L 77.5721,76.258 L 77.6895,76.2826 L 77.8074,76.304 L 77.9266,76.3227 L 78.0465,76.3383 L 78.1675,76.3511 L 78.1675,76.3511 z M 59.5721,76.0232 L 61.166,74.784 L 61.43 79,74.807 L 61.6998,74.8248 L 61.9519,74.8374 L 62.194,74.8447 L 62.4259,74.8466 L 62.6479,74.843 L 62.86,74.8338 L 63.0624,74.8189 L 63.2546,74.798 L 63.437,74.7715 L 63.652439,74.730232 C 63.475205,75.275112 63.15486,75.533771 62.7963,75.716 L 62.67,75.781 L 62.5339,75.8398 L 62.3877,75.8919 L 62.2317,75.9378 L 62.0656,75.9771 L 61.8895,76.0104 L 61.7033,76.0375 L 61.5072,76.0588 L 61.3007,76.074 L 61.0843,76.0834 L 60.8577,76.0871 L 60.621,76.0852 L 60.374,76.0776 L 60.1169,76.0649 L 59.8496,76.0466 L 59.5721,76.0232 L 59.5721,76.0232 z M 49.6986,73.7269 L 49.6996,73.8159 L 49.7002,73.9054 L 49.7012,73.9945 L 49.7019,74.0839 L 49.7028,74.1729 L 49.7034,74.2623 L 49.704,74.3517 L 49.7047,74.4412 L 49.7056,74.5303 L 49.7063,74.6196 L 49.7071,74.709 L 49.7077,74.7984 L 49.7086,74.8875 L 49.7092,74.977 L 49.7099,75.0664 L 49.7105,75.1558 L 47.8829,76.4025 L 47.8822,76.3113 L 47.8816,76.2201 L 47.8809,76.1288 L 47.8799,76.0379 L 47.8793,75.9467 L 47.8785,75.8555 L 47.8779,75.7 642 L 47 .8769,75.6733 L 47.8763,75.5821 L 47.8756,75.4909 L 47.875,75.3997 L 47.874,75.3088 L 47.8733,75.2175 L 47.8724,75.1266 L 47.8717,75.0354 L 47.8707,74.9445 L 47.6308,74.9195 L 47.3986,74.8903 L 47.174,74.8562 L 46.9572,74.8179 L 46.7481,74.7747 L 46.5466,74.7271 L 46.3528,74.6748 L 46.1664,74.618 L 45.988,74.5563 L 45.8171,74.4902 L 45.6538,74.4192 L 45.4981,74.3439 L 45.3502,74.2636 L 45.2096,74.1788 L 45.0768,74.0892 L 44.9514,73.995 L 44.8338,73.8958 L 44.7236,73.7921 L 44.6211,73.6835 L 44.526,73.5704 L 44.4386,73.4522 L 44.3586,73.3294 L 44.2861,73.2017 L 44.2209,73.0694 L 44.1636,72.9319 L 44.1135,72.7899 L 44.071,72.643 L 44.0358,72.4913 L 44.0083,72.3346 L 43.988,72.173 L 43.9752,72.0066 L 43.9697,71.8354 L 43.9702,71.7448 L 43.9731,71.6527 L 43.9784,71.559 L 43.9861,71.4636 L 43.9963,71.3665 L 44.0088,71.2679 L 44.0239,71.1677 L 44.0412,71.066 L 44.0611,70.9624 L 44.0833,70.8574 L 44.108,70.7507 L 44.1348,70.6426 L 44.1642,70.5327 L 44.1959,70.4214 L 44.2301,70.3086 L 44.26 65,70.1943 L 44.3055,70.0782 L 44.3466,69.9606 L 44.3902,69.8415 L 44.436,69.7209 L 44.4842,69.5987 L 44.5347,69.4752 L 44.5875,69.35 L 44.6424,69.2236 L 44.7,69.0953 L 44.7596,68.9658 L 44.8217,68.8348 L 44.8858,68.7025 L 44.9525,68.5684 L 45.0211,68.4332 L 45.0921,68.2963 L 45.1652,68.1582 L 45.439,67.6014 L 45.713,67.0441 L 54.0715,50.0642 L 54.739858,51.476036 L 47.0473,67.0764 L 46.9757,67.2116 L 46.9061,67.3458 L 46.8389,67.4784 L 46.7735,67.6098 L 46.7107,67.7393 L 46.6498,67.8677 L 46.5914,67.9947 L 46.535,68.1204 L 46.4811,68.2442 L 46.4294,68.3669 L 46.38,68.4879 L 46.3327,68.6078 L 46.2879,68.7259 L 46.2451,68.8427 L 46.2048,68.9579 L 46.1666,69.0716 L 46.131,69.1836 L 46.0974,69.2942 L 46.0663,69.4033 L 46.0376,69.511 L 46.0113,69.6169 L 45.987,69.7216 L 45.9653,69.8244 L 45.9458,69.9259 L 45.9288,70.0256 L 45.9141,70.1238 L 45.9018,70.2205 L 45.8918,70.3157 L 45.8843,70.4091 L 45.8791,70.501 L 45.8762,70.5912 L 45.8757,70.6799 L 45.8811,70.8477 L 45.8936,71.0109 L 45.91 35,71.1692 L 45.9405,71.3227 L 45.975,71.4714 L 46.0167,71.6154 L 46.0657,71.7545 L 46.122,71.8893 L 46.1858,72.0189 L 46.2568,72.1441 L 46.3353,72.2644 L 46.4209,72.3802 L 46.5141,72.491 L 46.6146,72.5975 L 46.7226,72.6991 L 46.8378,72.7964 L 46.9608,72.8886 L 47.0908,72.9765 L 47.2286,73.0596 L 47.3736,73.1383 L 47.5262,73.2121 L 47.6862,73.2817 L 47.8536,73.3465 L 48.0285,73.407 L 48.2112,73.4626 L 48.4011,73.5138 L 48.5985,73.5605 L 48.8033,73.6029 L 49.0159,73.6404 L 49.236,73.6737 L 49.4636,73.7024 L 49.6986,73.7269 L 49.6986,73.7269 z M 36.147,73.863 L 38.2095,72.667 L 38.4132,72.6812 L 38.6139,72.6863 L 38.8116,72.6819 L 39.0061,72.6685 L 39.1977,72.6457 L 39.3859,72.614 L 39.549468,72.547381 C 39.287636,72.794272 39.064915,73.032929 38.5956,73.3235 L 38.4279,73.4203 L 38.2568,73.5079 L 38.082,73.5865 L 37.9035,73.6559 L 37.7215,73.7163 L 37.5362,73.7671 L 37.3474,73.8089 L 37.1553,73.8413 L 36.9599,73.8645 L 36.7614,73.8783 L 36.5596,73.8826 L 36.3548,73.8775 L 36.1 47,73.86 3 z M 51.0368,21.3892 L 51.2553,21.9033 L 57.4258,36.3803 L 56.4356,38.43 L 49.2362,21.5385 L 49.1371,21.3131 L 49.0444,21.0894 L 48.9579,20.868 L 48.8779,20.6487 L 48.804,20.4317 L 48.7365,20.2168 L 48.6752,20.0043 L 48.6205,19.7942 L 48.5715,19.5867 L 48.5292,19.3817 L 48.4931,19.1792 L 48.4634,18.9792 L 48.4401,18.7822 L 48.4229,18.5877 L 48.4119,18.396 L 48.4072,18.2072 L 48.4092,18.0252 L 48.4193,17.8484 L 48.4376,17.6771 L 48.4639,17.5111 L 48.4984,17.3507 L 48.5411,17.1956 L 48.592,17.0461 L 48.6512,16.9018 L 48.7182,16.7633 L 48.7935,16.63 L 48.8768,16.5023 L 48.9685,16.3799 L 49.0679,16.2631 L 49.1756,16.1517 L 49.2914,16.0457 L 49.4153,15.9451 L 49.547,15.8502 L 49.6868,15.7607 L 49.8347,15.6767 L 49.9907,15.598 L 50.1545,15.525 L 50.3266,15.4572 L 50.5064,15.3951 L 50.6944,15.3383 L 50.8902,15.2872 L 51.0941,15.2414 L 51.3058,15.2013 L 51.5256,15.1665 L 51.7532,15.1373 L 51.9888,15.1134 L 52.2323,15.0951 L 52.4838,15.0823 L 52.4828,14.9839 L 52.4821,14.8855 L 52.4 815,14.7 872 L 52.4808,14.6888 L 52.4802,14.5904 L 52.4795,14.4921 L 52.4789,14.3937 L 52.4782,14.2953 L 52.4773,14.1969 L 52.4766,14.0986 L 52.476,14.0002 L 52.4753,13.9018 L 52.4747,13.8035 L 52.474,13.7051 L 52.4734,13.6067 L 52.4727,13.508 L 54.2086,13.5193 L 54.2093,13.6159 L 54.2099,13.7124 L 54.2104,13.8088 L 54.2111,13.9052 L 54.2117,14.0016 L 54.2124,14.098 L 54.213,14.1944 L 54.214,14.2908 L 54.2147,14.3872 L 54.2153,14.4836 L 54.2159,14.58 L 54.2165,14.6763 L 54.2172,14.7728 L 54.2178,14.8692 L 54.2185,14.9656 L 54.2194,15.062 L 53.9729,15.0746 L 53.7343,15.0925 L 53.5035,15.116 L 53.2804,15.1445 L 53.065,15.1787 L 52.8575,15.218 L 52.6577,15.2629 L 52.4658,15.3129 L 52.2816,15.3686 L 52.1053,15.4294 L 51.9367,15.4959 L 51.7762,15.5674 L 51.6233,15.6446 L 51.4784,15.7268 L 51.3414,15.8146 L 51.2123,15.9075 L 51.0909,16.0062 L 50.9774,16.11 L 50.8719,16.2193 L 50.7744,16.3337 L 50.6846,16.4536 L 50.603,16.5788 L 50.5292,16.7094 L 50.4635,16.8451 L 50.4055,16.9865 L 50.3556, 17.1331 L 50.3137,17.2851 L 50.2799,17.4422 L 50.2542,17.6049 L 50.2362,17.7728 L 50.2264,17.9461 L 50.2243,18.1244 L 50.229,18.3095 L 50.2397,18.4973 L 50.2566,18.6879 L 50.2795,18.8811 L 50.3085,19.077 L 50.344,19.2754 L 50.3855,19.4764 L 50.4334,19.6797 L 50.4871,19.8856 L 50.547,20.0938 L 50.6132,20.3044 L 50.6856,20.5171 L 50.764,20.732 L 50.8488,20.9491 L 50.9396,21.1682 L 51.0368,21.3892 L 51.0368,21.3892 z" + id="path55" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cccccccc ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + style="fill: rgb(0, 0, 0); stroke: none; stroke-width: 0.0762;" /> + </g><g + id="Ebene_x0020_1"> + <metadata + id="CorelCorpID_0Corel-Layer" /> + <metadata + id="metadata87"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format> + image/svg+xml </dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title> + x2go Logo </dc:title> + <dc:date> + 12.06.2007 </dc:date> + <dc:creator> + <cc:Agent> + <dc:title> + Heinz-M. Graesing </dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title> + obviously-nice </dc:title> + </cc:Agent> + </dc:rights> + <dc:publisher> + <cc:Agent> + <dc:title> + obviously-nice </dc:title> + </cc:Agent> + </dc:publisher> + <dc:source> + http://www.x2go.org/artwork </dc:source> + <dc:language> + DE </dc:language> + <dc:subject> + <rdf:Bag> + <rdf:li> + Logo </rdf:li> + </rdf:Bag> + </dc:subject> + <cc:license + rdf:resource="http://creativecommons.org/licenses/by-nd/3.0/" /> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/by-nd/3.0/"> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Notice" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Attribution" /> + </cc:License> + </rdf:RDF> + </metadata> + <sodipodi:namedview + inkscape:window-height="834" + inkscape:window-width="1295" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10.0" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showgrid="true" + inkscape:object-nodes="true" + inkscape:grid-points="true" + inkscape:guide-points="true" + width="128px" + height="128px" + inkscape:zoom="3.9375" + inkscape:cx="64" + inkscape:cy="64" + inkscape:window-x="395" + inkscape:window-y="117" + inkscape:current-layer="svg2"> + <inkscape:grid + id="GridFromPre046Settings" + type="xygrid" + originx="0px" + originy="0px" + spacingx="1px" + spacingy="1px" + color="#0000ff" + empcolor="#0000ff" + opacity="0.2" + empopacity="0.4" + empspacing="5" /> + </sodipodi:namedview> + <g + id="_135140408"> + <g + id="g4"> + <path + id="path6" + class="fil0" + d="M 56.4356,38.43 C 59.2274,32.7584 62.0575,26.9919 64.9409,21.1546 C 65.5532,19.4258 65.8314,18.1924 65.829,17.5582 C 65.8252,16.5385 65.4858,15.7624 64.8722,15.349 C 64.2047,14.8873 63.0639,14.6841 61.4573,14.747 C 61.4548,14.2121 61.4522,13.6772 61.4498,13.1423 C 66.3017,12.9357 71.2532,12.7248 76.3195,12.5089 C 76.3202,13.0694 76.3209,13.6211 76.3215,14.1728 C 74.2408,14.2544 72.7575,14.7472 71.7269,15.6978 C 70.6968,16.6183 69.3043,19.0232 67.3913,22.906 C 64.2032,29.3799 61.0627,35.7249 57.9695,41.9684 C 59.9695,46.5821 61.9754,51.2459 63.9869,55.91 C 66.0141,60.6105 68.0547,65.3372 70.1161,70.0996 C 71.3761,72.7964 72.497,74.713 73.4571,75.8148 C 74.4316,76.8604 75.6011,77.5002 76.9206,77.6223 C 76.9211,78.1395 76.9218,78.6567 76.9223,79.174 C 71.006,78.6089 65.2176,78.0569 59.5801,77.5189 C 59.5774,77.0203 59.5748,76.5218 59.5721,76.0232 C 61.08,76.1622 62.1498,76.082 62.7963,75.716 C 63.4281,75.3988 63.7646,74.7644 63.7533,73.9111 C 63.75,73.1095 63.2758,71.639 62.4209, 69.5039 C 59.6235,62.9675 56.8327,56.4818 54.0715,50.0642 C 51.0608,56.1928 48.0821,62.2228 45.1652,68.1582 C 44.3715,69.6405 43.9607,70.8799 43.9697,71.8354 C 43.9871,73.6892 45.2696,74.7046 47.8707,74.9445 C 47.8747,75.4305 47.8789,75.9165 47.8829,76.4025 C 43.911,76.0228 40.007,75.6502 36.1633,75.2831 C 36.1579,74.8098 36.1524,74.3364 36.147,73.863 C 37.2628,73.9662 38.2536,73.663 39.0749,72.9796 C 39.919,72.287 40.7807,71.0587 41.6063,69.1968 C 43.3816,65.5014 45.1679,61.7672 46.9877,58.0028 C 48.8264,54.1991 50.6911,50.339 52.5594,46.4381 C 50.8284,42.3579 49.0942,38.2576 47.3863,34.2046 C 45.6837,30.1642 43.9763,26.1211 42.2893,22.1313 C 41.2324,19.5642 40.2901,17.8729 39.3706,16.9811 C 38.4277,16.0942 37.1147,15.6849 35.424,15.7351 C 35.4181,15.2297 35.4123,14.7242 35.4066,14.2187 C 40.9549,13.9985 46.6335,13.7568 52.4727,13.508 C 52.4764,14.0328 52.4801,14.5575 52.4838,15.0823 C 49.7603,15.1892 48.3836,16.2343 48.4072,18.2072 C 48.4152,19.2061 48.6918,20.3296 49.2362 ,21.5385 C 51.6146,27.1313 54.017,32.756 56.4356,38.43 L 56.4356,38.43 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g8"> + <path + id="path10" + class="fil0" + d="M 8.7887,15.7146 C 12.5976,15.4493 16.4523,15.1534 20.3992,14.8738 C 24.4001,14.5904 28.4927,14.2764 32.6622,13.9686 C 32.6686,14.4949 32.675,15.0132 32.6889,15.5236 C 28.5099,15.556 24.4222,15.5875 20.411,15.6181 C 16.4683,15.6482 12.6019,15.6853 8.7887,15.7146 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g12"> + <path + id="path14" + class="fil0" + d="M 8.858,19.2982 C 12.6631,19.058 16.522,18.8138 20.4576,18.5722 C 24.4546,18.327 28.5436,18.0679 32.7169,17.8041 C 32.7212,18.1469 32.7254,18.4979 32.7297,18.8407 C 33.7237,18.8325 34.71,18.8164 35.7116,18.8 C 35.7803,18.7979 35.8492,18.7955 35.9257,18.793 C 35.9791,18.7914 36.0327,18.7896 36.0938,18.7877 C 36.1398,18.8021 36.2012,18.8162 36.2625,18.8303 C 36.316,18.8287 36.3696,18.827 36.4307,18.8248 C 36.4844,18.8392 36.5457,18.8534 36.607,18.8595 C 36.6454,18.8744 36.6914,18.8891 36.7298,18.9037 C 36.7682,18.9186 36.8067,18.9334 36.8525,18.94 C 36.891,18.955 36.9371,18.9697 36.983,18.9843 C 37.0139,18.9995 37.0446,19.0146 37.0677,19.0298 C 37.0908,19.0452 37.1216,19.0604 37.1522,19.0674 C 37.1753,19.0829 37.2061,19.098 37.2368,19.1132 C 37.26,19.1286 37.2907,19.1437 37.3214,19.167 C 37.3369,19.1827 37.3524,19.1982 37.3602,19.2058 C 37.3832,19.2213 37.414,19.2364 37.4448,19.2516 C 37.4449,19.2677 37.4451,19.2838 37.4452,19.292 C 37.4605,19.2914 37.4757,19.291 37.4911 ,19.2906 C 32.4524,19.2963 27.5049,19.3017 22.71,19.3067 C 17.9836,19.3116 13.3788,19.3009 8.858,19.2982 L 8.858,19.2982 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g16"> + <path + id="path18" + class="fil0" + d="M 8.9354,22.9122 C 13.6223,22.6595 18.4243,22.3933 23.3257,22.121 C 28.3345,21.8428 33.4735,21.5411 38.7427,21.2485 C 38.7818,21.3283 38.8284,21.4079 38.8751,21.4795 C 38.9222,21.5993 38.9846,21.7191 39.047,21.8388 C 39.1018,21.9669 39.1566,22.087 39.2189,22.2068 C 39.2739,22.343 39.3364,22.4791 39.3989,22.6072 C 39.4538,22.7516 39.5087,22.888 39.5712,23.0242 C 39.5946,23.0724 39.6257,23.1202 39.6567,23.16 C 34.2106,23.1141 28.9163,23.0726 23.752,23.04 C 18.6939,23.0081 13.7651,22.9538 8.9354,22.9122 L 8.9354,22.9122 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g20"> + <path + id="path22" + class="fil0" + d="M 9.004,26.4657 C 13.9153,26.2415 18.9492,26.0004 24.1054,25.7609 C 29.3843,25.5157 34.8008,25.2479 40.3703,24.9774 C 40.6443,25.6541 40.9336,26.3314 41.2302,27.0014 C 35.5147,26.9202 29.9433,26.8288 24.5167,26.7398 C 19.2191,26.6529 14.0507,26.5525 9.004,26.4657 L 9.004,26.4657 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g24"> + <path + id="path26" + class="fil0" + d="M 9.0729,30.0419 C 14.2083,29.8503 19.4811,29.6459 24.8766,29.452 C 30.4097,29.2532 36.0957,29.0328 41.9346,28.8146 C 42.2234,29.504 42.5122,30.1942 42.8084,30.8852 C 36.8163,30.7397 30.9681,30.586 25.2874,30.4439 C 19.7509,30.3055 14.336,30.1778 9.0729,30.0419 L 9.0729,30.0419 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g28"> + <path + id="path30" + class="fil0" + d="M 9.1345,33.6257 C 14.5008,33.4629 19.997,33.2883 25.646,33.1241 C 31.4328,32.956 37.4028,32.7745 43.518,32.5881 C 43.8221,33.3395 44.1336,34.0753 44.445,34.8204 C 38.1538,34.6051 32.0375,34.3918 26.0802,34.1995 C 20.2903,34.0126 14.6363,33.8145 9.1345,33.6257 L 9.1345,33.6257 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g32"> + <path + id="path34" + class="fil0" + d="M 9.2029,37.1716 C 11.9786,37.122 14.7923,37.0525 17.6368,36.9976 C 20.5192,36.9418 23.4475,36.8657 26.4065,36.8082 C 29.4111,36.7499 32.4691,36.6705 35.5579,36.6105 C 38.6999,36.5495 41.8954,36.4712 45.1138,36.3958 C 45.4404,37.1769 45.7592,37.951 46.0855,38.726 C 42.7681,38.5965 39.4962,38.4486 36.2698,38.3188 C 33.0891,38.1909 29.9458,38.0566 26.8635,37.9284 C 23.819,37.8019 20.812,37.6733 17.8513,37.5461 C 14.9431,37.4212 12.0427,37.2973 9.2029,37.1716 L 9.2029,37.1716 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g36"> + <path + id="path38" + class="fil0" + d="M 9.271,40.7025 C 12.1506,40.6782 15.0757,40.6344 18.0315,40.6056 C 21.0405,40.5763 24.0954,40.5388 27.1808,40.5044 C 30.3119,40.4696 33.4964,40.4223 36.7343,40.3904 C 40.0103,40.358 43.3395,40.3005 46.7147,40.2626 C 47.056,41.0576 47.3972,41.8538 47.7457,42.6512 C 44.2795,42.4817 40.8509,42.2983 37.4833,42.1338 C 34.1686,41.9719 30.8838,41.7997 27.6677,41.6387 C 24.4891,41.4797 21.3559,41.3191 18.2686,41.1644 C 15.2341,41.0125 12.2224,40.8619 9.271,40.7025 L 9.271,40.7025 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g40"> + <path + id="path42" + class="fil0" + d="M 9.3389,44.2183 C 12.3297,44.2136 15.3735,44.2051 18.4481,44.2042 C 21.5684,44.2032 24.7417,44.1829 27.9609,44.1737 C 31.2181,44.1644 34.5441,44.1509 37.9002,44.1411 C 41.3252,44.1312 44.7958,44.1129 48.335,44.0985 C 48.6446,44.8241 48.9541,45.534 49.271,46.2533 C 49.2264,46.3677 49.1817,46.4737 49.1445,46.5801 C 45.5374,46.3684 41.9904,46.1644 38.4894,45.9629 C 35.0563,45.7653 31.669,45.5459 28.3414,45.3503 C 25.0526,45.157 21.8235,44.9789 18.6322,44.7873 C 15.4945,44.5989 12.3938,44.4052 9.3389,44.2183 L 9.3389,44.2183 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g44"> + <path + id="path46" + class="fil0" + d="M 9.4073,47.7566 C 12.4103,47.7777 15.4511,47.7878 18.5379,47.8055 C 21.6701,47.8236 24.8482,47.8265 28.0795,47.8408 C 31.3488,47.8553 34.6793,47.8741 38.0475,47.8848 C 41.4691,47.8957 44.9592,47.8989 48.5026,47.8978 C 48.1072,48.7178 47.7193,49.52 47.3393,50.321 C 43.9174,50.0866 40.5406,49.8671 37.225,49.6437 C 33.9542,49.4231 30.714,49.2051 27.5493,48.9955 C 24.415,48.7879 21.3258,48.5719 18.2818,48.3666 C 15.2837,48.1644 12.3226,47.9647 9.4073,47.7566 L 9.4073,47.7566 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g48"> + <path + id="path50" + class="fil0" + d="M 9.4751,51.2723 C 12.3314,51.3205 15.2483,51.3582 18.1881,51.396 C 21.1658,51.4342 24.197,51.4659 27.266,51.5092 C 30.3733,51.5531 33.5334,51.5937 36.7396,51.6428 C 39.9987,51.6928 43.3112,51.7192 46.6541,51.766 C 46.2968,52.515 45.9396,53.2708 45.5827,54.0173 C 42.3459,53.7789 39.1393,53.5235 35.9856,53.2878 C 32.8776,53.0555 29.807,52.8179 26.7888,52.5884 C 23.8019,52.3614 20.8592,52.1414 17.9622,51.9247 C 15.0959,51.7105 12.2665,51.492 9.4751,51.2723 L 9.4751,51.2723 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g52"> + <path + id="path54" + class="fil0" + d="M 9.543,54.7881 C 15.0381,54.9049 20.6775,55.0251 26.4615,55.1556 C 32.4051,55.2898 38.5309,55.4038 44.8238,55.5288 C 44.4898,56.2642 44.1557,56.974 43.8218,57.6827 C 37.7251,57.1749 31.7788,56.6677 26.007,56.1827 C 20.3779,55.7097 14.8927,55.2485 9.543,54.7881 L 9.543,54.7881 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g56"> + <path + id="path58" + class="fil0" + d="M 9.6114,58.3412 C 14.8367,58.5046 20.1988,58.6609 25.6896,58.8282 C 31.3249,58.9998 37.1193,59.1522 43.0657,59.3284 C 42.7318,59.9929 42.3979,60.6565 42.0717,61.3107 C 36.306,60.7894 30.6911,60.2729 25.2271,59.7783 C 19.8839,59.2947 14.6986,58.8089 9.6114,58.3412 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g60"> + <path + id="path62" + class="fil0" + d="M 9.8812,72.3136 C 13.6329,72.5533 17.4457,72.7897 21.3253,73.0379 C 25.2818,73.2909 29.3202,73.5331 33.435,73.796 C 33.4411,74.2984 33.4473,74.8007 33.4534,75.295 C 29.3368,74.7731 25.2885,74.2642 21.3368,73.7666 C 17.4463,73.2767 13.6371,72.7893 9.8812,72.3136 L 9.8812,72.3136 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g64"> + <path + id="path66" + class="fil0" + d="M 9.8143,68.8431 C 14.1801,69.0811 18.6374,69.3242 23.1847,69.5724 C 27.8387,69.8263 32.5977,70.0697 37.4633,70.3348 C 37.4486,70.3658 37.4339,70.3967 37.4265,70.4203 C 37.3965,70.434 37.3666,70.4475 37.3439,70.4538 C 37.3142,70.4834 37.2843,70.5131 37.262,70.5428 C 37.232,70.5564 37.2021,70.57 37.1795,70.5762 C 37.1647,70.6071 37.15,70.63 37.1353,70.6609 C 37.1053,70.6744 37.0752,70.6881 37.0527,70.6942 C 37.0378,70.7091 37.0229,70.7239 37.008,70.7387 C 36.9853,70.7362 36.9551,70.7337 36.9325,70.7318 C 36.9025,70.7454 36.8726,70.7589 36.8499,70.7651 C 36.8351,70.7799 36.8202,70.7948 36.8052,70.8096 C 36.7753,70.8231 36.7453,70.8366 36.7228,70.8508 C 36.7077,70.8496 36.6926,70.8483 36.685,70.8471 C 36.655,70.8607 36.6251,70.8742 36.6026,70.8804 C 36.5724,70.8779 36.5422,70.8753 36.5196,70.8734 C 36.5044,70.8721 36.4894,70.8709 36.4742,70.8696 C 36.4442,70.8832 36.4143,70.8967 36.3918,70.9109 C 36.3691,70.9084 36.3389,70.9059 36.3163,70.904 C 36.2861,70.9015 36.2559,70. 899 36.2 257,70.8964 C 35.2753,70.8313 34.3323,70.7662 33.3969,70.7021 C 33.4006,70.9972 33.4041,71.2842 33.4077,71.5793 C 29.28,71.1082 25.2349,70.6376 21.2802,70.177 C 17.3931,69.7242 13.566,69.2797 9.8143,68.8431 L 9.8143,68.8431 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g68"> + <path + id="path70" + class="fil0" + d="M 9.7462,65.3199 C 14.4335,65.5452 19.2272,65.7764 24.1337,66.0124 C 29.1471,66.2535 34.2885,66.4923 39.5589,66.738 C 39.4114,67.0576 39.2562,67.369 39.1087,67.6888 C 39.0494,67.7972 38.9827,67.889 38.9308,67.9898 C 38.8942,68.0913 38.85,68.1927 38.8134,68.2948 C 38.7689,68.3719 38.7244,68.433 38.6874,68.5026 C 33.5818,67.945 28.5964,67.4008 23.7317,66.8696 C 18.9646,66.3489 14.3026,65.8248 9.7462,65.3199 L 9.7462,65.3199 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <g + id="g72"> + <path + id="path74" + class="fil0" + d="M 9.6788,61.8268 C 14.6273,62.0229 19.7049,62.2052 24.8956,62.4069 C 30.2237,62.6138 35.6796,62.8171 41.2801,63.022 C 40.9842,63.6509 40.7036,64.2802 40.423,64.9 C 34.9878,64.3619 29.6732,63.8327 24.5011,63.3166 C 19.4505,62.8127 14.5041,62.3194 9.6788,61.8268 L 9.6788,61.8268 z" + style="fill: rgb(77, 77, 77);" /> + </g> + <path + id="path78" + class="fil0" + d="M 40.1418,4.0695 C 45.627,3.7154 51.2964,3.3498 57.0886,2.9765 C 63.034,2.5933 69.1331,2.1997 75.4009,1.7957 C 78.8762,1.5718 81.7761,4.2897 81.7761,7.8138 C 81.7761,14.2869 81.7761,20.7157 81.7761,27.1176 C 81.7761,33.5108 81.7761,39.8775 81.7761,46.2087 C 81.7761,52.54 81.7761,58.8536 81.7761,65.1316 C 81.7761,71.383 81.7761,77.6259 81.7761,83.8509 C 81.7761,87.2246 78.9565,89.6056 75.5879,89.2109 C 69.4599,88.4947 63.4897,87.7964 57.6625,87.1151 C 51.9856,86.4513 46.4291,85.8018 41.038,85.1705 C 35.7296,84.5494 30.5564,83.9454 25.5262,83.3564 C 20.6013,82.7799 15.7816,82.2167 11.0747,81.6663 C 8.5709,81.3737 6.5391,78.8588 6.4811,76.0161 C 6.3735,70.7421 6.2656,65.453 6.1574,60.1491 C 6.049,54.8377 5.9397,49.4889 5.8304,44.1327 C 5.7211,38.7765 5.6114,33.3976 5.5013,28.004 C 5.391,22.5952 5.28,17.1642 5.1688,11.7106 C 5.1086,8.7631 7.0921,6.2003 9.6468,6.0353 C 14.4416,5.7267 19.3363,5.411 24.3535,5.0875 C 29.4782,4.7571 34.7409,4.4176 40.1418,4.0695 L 40.1418,4.069 5 z M 41 .0182,83.9783 C 46.3132,84.5829 51.7661,85.2053 57.3394,85.8417 C 63.0404,86.4926 68.8997,87.1624 74.9016,87.8479 C 77.8726,88.1876 80.3538,86.0429 80.3528,83.0675 C 80.3508,76.9667 80.3488,70.8569 80.3468,64.7208 C 80.3449,58.567 80.3427,52.3954 80.3408,46.1975 C 80.3388,39.9997 80.329,33.7664 80.327,27.5067 C 80.325,21.2295 80.3152,14.9343 80.3132,8.5953 C 80.3121,5.4963 77.7651,3.0927 74.7051,3.281 C 68.5697,3.6587 62.5803,4.0233 56.7744,4.3765 C 51.0995,4.7218 45.5313,5.0683 40.1553,5.3995 C 34.8483,5.7259 29.6716,6.0448 24.6329,6.355 C 19.7016,6.6585 14.8776,6.9558 10.1611,7.2456 C 7.891,7.3855 6.1014,9.6505 6.1539,12.2599 C 6.2616,17.6288 6.3692,22.9829 6.4763,28.3067 C 6.5827,33.608 6.6893,38.9171 6.7954,44.1884 C 6.9012,49.4522 7.0072,54.716 7.1124,59.9497 C 7.2172,65.1686 7.3221,70.38 7.4264,75.5688 C 7.4772,78.0958 9.3087,80.3632 11.5349,80.6172 C 16.1681,81.1464 20.922,81.6857 25.7651,82.2355 C 30.7144,82.7975 35.8061,83.3823 41.0182,83.9783 L 41.0182,83.9783 z" + style="fill: rgb(77, 77, 77);" /> + </g> + + </g> +<g + id="g3723"><path + id="path3313" + transform="scale(0.282222)" + d="M 270.4375,44.3125 C 252.48604,45.0775 234.94178,45.830454 217.75,46.5625 C 217.7585,48.457815 217.74114,50.354683 217.75,52.25 C 223.44268,52.027126 227.50984,52.739056 229.875,54.375 C 232.04917,55.839803 233.23653,58.605641 233.25,62.21875 C 233.2585,64.465915 232.26332,68.843079 230.09375,74.96875 C 219.87698,95.652096 209.86096,116.06002 199.96875,136.15625 C 191.39891,116.05153 182.89616,96.129507 174.46875,76.3125 C 172.53977,72.028996 171.55959,68.039407 171.53125,64.5 C 171.44763,57.50941 176.31855,53.81628 185.96875,53.4375 C 185.95564,51.577972 185.9506,49.734528 185.9375,47.875 C 165.24742,48.756575 145.12808,49.594762 125.46875,50.375 C 125.48895,52.166142 125.51034,53.959212 125.53125,55.75 C 131.52192,55.572126 136.15902,57.013692 139.5,60.15625 C 142.75807,63.316171 146.09882,69.310226 149.84375,78.40625 C 155.82131,92.543336 161.87342,106.87112 167.90625,121.1875 C 172.39627,131.84272 176.95007,142.60154 181.5,153.34375 L 207.40625,153.34375 C 206.74 188,151. 80903 206.07025,150.2505 205.40625,148.71875 C 216.36641,126.59611 227.48483,104.09526 238.78125,81.15625 C 245.5596,67.398297 250.50628,58.886616 254.15625,55.625 C 257.80798,52.256732 263.06494,50.507884 270.4375,50.21875 C 270.43537,48.263907 270.43997,46.298525 270.4375,44.3125 z" + style="fill: url(#linearGradient3720) rgb(0, 0, 0); fill-opacity: 1;" /><g + style="fill: url(#linearGradient3595) rgb(0, 0, 0); fill-opacity: 1;" + id="g3315"> + <path + style="fill: url(#linearGradient3593) rgb(0, 0, 0); fill-opacity: 1;" + id="path3317" + class="fil0" + d="M 8.7887,15.7146 C 12.5976,15.4493 16.4523,15.1534 20.3992,14.8738 C 24.4001,14.5904 28.4927,14.2764 32.6622,13.9686 C 32.6686,14.4949 32.675,15.0132 32.6889,15.5236 C 28.5099,15.556 24.4222,15.5875 20.411,15.6181 C 16.4683,15.6482 12.6019,15.6853 8.7887,15.7146 z" /> + </g><g + style="fill: url(#linearGradient3599) rgb(0, 0, 0); fill-opacity: 1;" + id="g3319"> + <path + style="fill: url(#linearGradient3597) rgb(0, 0, 0); fill-opacity: 1;" + id="path3321" + class="fil0" + d="M 8.858,19.2982 C 12.6631,19.058 16.522,18.8138 20.4576,18.5722 C 24.4546,18.327 28.5436,18.0679 32.7169,17.8041 C 32.7212,18.1469 32.7254,18.4979 32.7297,18.8407 C 33.7237,18.8325 34.71,18.8164 35.7116,18.8 C 35.7803,18.7979 35.8492,18.7955 35.9257,18.793 C 35.9791,18.7914 36.0327,18.7896 36.0938,18.7877 C 36.1398,18.8021 36.2012,18.8162 36.2625,18.8303 C 36.316,18.8287 36.3696,18.827 36.4307,18.8248 C 36.4844,18.8392 36.5457,18.8534 36.607,18.8595 C 36.6454,18.8744 36.6914,18.8891 36.7298,18.9037 C 36.7682,18.9186 36.8067,18.9334 36.8525,18.94 C 36.891,18.955 36.9371,18.9697 36.983,18.9843 C 37.0139,18.9995 37.0446,19.0146 37.0677,19.0298 C 37.0908,19.0452 37.1216,19.0604 37.1522,19.0674 C 37.1753,19.0829 37.2061,19.098 37.2368,19.1132 C 37.26,19.1286 37.2907,19.1437 37.3214,19.167 C 37.3369,19.1827 37.3524,19.1982 37.3602,19.2058 C 37.3832,19.2213 37.414,19.2364 37.4448,19.2516 C 37.4449,19.2677 37.4451,19.2838 37.4452,19.292 C 37.4605,19.2914 37.4757,19.291 37.4911 ,19.2906 C 32.4524,19.2963 27.5049,19.3017 22.71,19.3067 C 17.9836,19.3116 13.3788,19.3009 8.858,19.2982 L 8.858,19.2982 z" /> + </g><g + style="fill: url(#linearGradient3603) rgb(0, 0, 0); fill-opacity: 1;" + id="g3323"> + <path + style="fill: url(#linearGradient3601) rgb(0, 0, 0); fill-opacity: 1;" + id="path3325" + class="fil0" + d="M 8.9354,22.9122 C 13.6223,22.6595 18.4243,22.3933 23.3257,22.121 C 28.3345,21.8428 33.4735,21.5411 38.7427,21.2485 C 38.7818,21.3283 38.8284,21.4079 38.8751,21.4795 C 38.9222,21.5993 38.9846,21.7191 39.047,21.8388 C 39.1018,21.9669 39.1566,22.087 39.2189,22.2068 C 39.2739,22.343 39.3364,22.4791 39.3989,22.6072 C 39.4538,22.7516 39.5087,22.888 39.5712,23.0242 C 39.5946,23.0724 39.6257,23.1202 39.6567,23.16 C 34.2106,23.1141 28.9163,23.0726 23.752,23.04 C 18.6939,23.0081 13.7651,22.9538 8.9354,22.9122 L 8.9354,22.9122 z" /> + </g><g + style="fill: url(#linearGradient3607) rgb(0, 0, 0); fill-opacity: 1;" + id="g3327"> + <path + style="fill: url(#linearGradient3605) rgb(0, 0, 0); fill-opacity: 1;" + id="path3329" + class="fil0" + d="M 9.004,26.4657 C 13.9153,26.2415 18.9492,26.0004 24.1054,25.7609 C 29.3843,25.5157 34.8008,25.2479 40.3703,24.9774 C 40.6443,25.6541 40.9336,26.3314 41.2302,27.0014 C 35.5147,26.9202 29.9433,26.8288 24.5167,26.7398 C 19.2191,26.6529 14.0507,26.5525 9.004,26.4657 L 9.004,26.4657 z" /> + </g><g + style="fill: url(#linearGradient3611) rgb(0, 0, 0); fill-opacity: 1;" + id="g3331"> + <path + style="fill: url(#linearGradient3609) rgb(0, 0, 0); fill-opacity: 1;" + id="path3333" + class="fil0" + d="M 9.0729,30.0419 C 14.2083,29.8503 19.4811,29.6459 24.8766,29.452 C 30.4097,29.2532 36.0957,29.0328 41.9346,28.8146 C 42.2234,29.504 42.5122,30.1942 42.8084,30.8852 C 36.8163,30.7397 30.9681,30.586 25.2874,30.4439 C 19.7509,30.3055 14.336,30.1778 9.0729,30.0419 L 9.0729,30.0419 z" /> + </g><g + style="fill: url(#linearGradient3615) rgb(0, 0, 0); fill-opacity: 1;" + id="g3335"> + <path + style="fill: url(#linearGradient3613) rgb(0, 0, 0); fill-opacity: 1;" + id="path3337" + class="fil0" + d="M 9.1345,33.6257 C 14.5008,33.4629 19.997,33.2883 25.646,33.1241 C 31.4328,32.956 37.4028,32.7745 43.518,32.5881 C 43.8221,33.3395 44.1336,34.0753 44.445,34.8204 C 38.1538,34.6051 32.0375,34.3918 26.0802,34.1995 C 20.2903,34.0126 14.6363,33.8145 9.1345,33.6257 L 9.1345,33.6257 z" /> + </g><g + style="fill: url(#linearGradient3619) rgb(0, 0, 0); fill-opacity: 1;" + id="g3339"> + <path + style="fill: url(#linearGradient3617) rgb(0, 0, 0); fill-opacity: 1;" + id="path3341" + class="fil0" + d="M 9.2029,37.1716 C 11.9786,37.122 14.7923,37.0525 17.6368,36.9976 C 20.5192,36.9418 23.4475,36.8657 26.4065,36.8082 C 29.4111,36.7499 32.4691,36.6705 35.5579,36.6105 C 38.6999,36.5495 41.8954,36.4712 45.1138,36.3958 C 45.4404,37.1769 45.7592,37.951 46.0855,38.726 C 42.7681,38.5965 39.4962,38.4486 36.2698,38.3188 C 33.0891,38.1909 29.9458,38.0566 26.8635,37.9284 C 23.819,37.8019 20.812,37.6733 17.8513,37.5461 C 14.9431,37.4212 12.0427,37.2973 9.2029,37.1716 L 9.2029,37.1716 z" /> + </g><g + style="fill: url(#linearGradient3623) rgb(0, 0, 0); fill-opacity: 1;" + id="g3343"> + <path + style="fill: url(#linearGradient3621) rgb(0, 0, 0); fill-opacity: 1;" + id="path3345" + class="fil0" + d="M 9.271,40.7025 C 12.1506,40.6782 15.0757,40.6344 18.0315,40.6056 C 21.0405,40.5763 24.0954,40.5388 27.1808,40.5044 C 30.3119,40.4696 33.4964,40.4223 36.7343,40.3904 C 40.0103,40.358 43.3395,40.3005 46.7147,40.2626 C 47.056,41.0576 47.3972,41.8538 47.7457,42.6512 C 44.2795,42.4817 40.8509,42.2983 37.4833,42.1338 C 34.1686,41.9719 30.8838,41.7997 27.6677,41.6387 C 24.4891,41.4797 21.3559,41.3191 18.2686,41.1644 C 15.2341,41.0125 12.2224,40.8619 9.271,40.7025 L 9.271,40.7025 z" /> + </g><path + id="path3383" + transform="scale(0.282222)" + d="M 268.3125,6.3125 C 267.93192,6.3171642 267.54106,6.3502079 267.15625,6.375 C 244.94751,7.806496 223.34763,9.1734544 202.28125,10.53125 C 181.75771,11.853967 161.68574,13.151565 142.25,14.40625 C 123.11295,15.639675 104.43963,16.860541 86.28125,18.03125 C 68.50377,19.17751 51.176947,20.281536 34.1875,21.375 C 25.135413,21.959646 18.099193,31.056103 18.3125,41.5 C 18.706516,60.823779 19.109172,80.053713 19.5,99.21875 C 19.869428,117.31637 20.226864,135.36362 20.59375,153.34375 L 24.03125,153.34375 C 23.676634,135.72073 23.292935,118.02179 22.9375,100.3125 C 22.558012,81.448642 22.194115,62.461161 21.8125,43.4375 C 21.626476,34.191595 27.956337,26.183209 36,25.6875 C 52.712008,24.66065 69.808139,23.606645 87.28125,22.53125 C 105.13491,21.432116 123.47691,20.281536 142.28125,19.125 C 161.33007,17.951457 181.04834,16.723504 201.15625,15.5 C 221.72834,14.248504 242.94791,12.963307 264.6875,11.625 C 275.53002,10.957795 284.55859,19.488041 284.5625,30.46875 C 284.56959,52.9 29773 28 4.61791,75.226704 284.625,97.46875 C 284.63098,116.18414 284.67537,134.78093 284.6875,153.34375 L 289.75,153.34375 C 289.75,134.32005 289.74999,115.2714 289.75,96.09375 C 289.75,73.409853 289.74999,50.62368 289.75,27.6875 C 289.75,15.590749 280.1105,6.1679092 268.3125,6.3125 z" + style="fill: url(#linearGradient3666) rgb(0, 0, 0); fill-opacity: 1;" /></g><g + id="g4001" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;"><path + sodipodi:nodetypes="cccc" + id="rect3296" + d="M 33.38491,70.707314 L 34.790051,70.798579 L 33.401665,71.586967 L 33.38491,70.707314 z" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dashoffset: 0pt; stroke-opacity: 1;" /><path + id="path3844" + transform="scale(0.282222)" + d="M 181.5,153.34375 C 183.08243,157.0798 184.63603,160.80058 186.21875,164.53125 C 179.59879,178.35334 173.01508,192.05357 166.5,205.53125 C 160.05189,218.86968 153.72794,232.09356 147.4375,245.1875 C 144.51215,251.78478 141.45965,256.13965 138.46875,258.59375 C 135.55863,261.01525 132.04737,262.08441 128.09375,261.71875 C 128.11288,263.39615 128.10586,265.07296 128.125,266.75 C 141.74441,268.05075 155.58259,269.37334 169.65625,270.71875 C 169.64208,268.9967 169.63917,267.28456 169.625,265.5625 C 160.4085,264.71246 155.87416,261.09983 155.8125,254.53125 C 155.78061,251.14562 157.21893,246.75224 160.03125,241.5 C 170.36672,220.46906 180.92591,199.12176 191.59375,177.40625 C 201.37753,200.14578 211.27545,223.12077 221.1875,246.28125 C 224.21667,253.84656 225.89455,259.0347 225.90625,261.875 C 225.94629,264.8985 224.73866,267.15732 222.5,268.28125 C 220.20925,269.5781 216.4367,269.86753 211.09375,269.375 C 211.10332,271.14169 211.11543,272.92079 211.125,274.6875 C 231.100 39,276.5 938 251.59923,278.52894 272.5625,280.53125 C 272.56073,278.6983 272.56426,276.86385 272.5625,275.03125 C 267.88711,274.59861 263.7342,272.3299 260.28125,268.625 C 256.87932,264.72098 252.90207,257.93058 248.4375,248.375 C 241.13333,231.50035 233.90174,214.74907 226.71875,198.09375 C 220.25921,183.11589 213.83241,168.18851 207.40625,153.34375 L 181.5,153.34375 z" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;" /><g + id="g3878" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;"> + <path + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;" + id="path3880" + class="fil0" + d="M 9.3389,44.2183 C 12.3297,44.2136 15.3735,44.2051 18.4481,44.2042 C 21.5684,44.2032 24.7417,44.1829 27.9609,44.1737 C 31.2181,44.1644 34.5441,44.1509 37.9002,44.1411 C 41.3252,44.1312 44.7958,44.1129 48.335,44.0985 C 48.6446,44.8241 48.9541,45.534 49.271,46.2533 C 49.2264,46.3677 49.1817,46.4737 49.1445,46.5801 C 45.5374,46.3684 41.9904,46.1644 38.4894,45.9629 C 35.0563,45.7653 31.669,45.5459 28.3414,45.3503 C 25.0526,45.157 21.8235,44.9789 18.6322,44.7873 C 15.4945,44.5989 12.3938,44.4052 9.3389,44.2183 L 9.3389,44.2183 z" /> + </g><g + id="g3882" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;"> + <path + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;" + id="path3884" + class="fil0" + d="M 9.4073,47.7566 C 12.4103,47.7777 15.4511,47.7878 18.5379,47.8055 C 21.6701,47.8236 24.8482,47.8265 28.0795,47.8408 C 31.3488,47.8553 34.6793,47.8741 38.0475,47.8848 C 41.4691,47.8957 44.9592,47.8989 48.5026,47.8978 C 48.1072,48.7178 47.7193,49.52 47.3393,50.321 C 43.9174,50.0866 40.5406,49.8671 37.225,49.6437 C 33.9542,49.4231 30.714,49.2051 27.5493,48.9955 C 24.415,48.7879 21.3258,48.5719 18.2818,48.3666 C 15.2837,48.1644 12.3226,47.9647 9.4073,47.7566 L 9.4073,47.7566 z" /> + </g><g + id="g3886" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;"> + <path + style="fill: url(#linearGradient4116) rgb(0, 0, 0); fill-opacity: 1;" + id="path3888" + class="fil0" + d="M 9.4751,51.2723 C 12.3314,51.3205 15.2483,51.3582 18.1881,51.396 C 21.1658,51.4342 24.197,51.4659 27.266,51.5092 C 30.3733,51.5531 33.5334,51.5937 36.7396,51.6428 C 39.9987,51.6928 43.3112,51.7192 46.6541,51.766 C 46.2968,52.515 45.9396,53.2708 45.5827,54.0173 C 42.3459,53.7789 39.1393,53.5235 35.9856,53.2878 C 32.8776,53.0555 29.807,52.8179 26.7888,52.5884 C 23.8019,52.3614 20.8592,52.1414 17.9622,51.9247 C 15.0959,51.7105 12.2665,51.492 9.4751,51.2723 L 9.4751,51.2723 z" /> + </g><g + id="g3890" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;"> + <path + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;" + id="path3892" + class="fil0" + d="M 9.543,54.7881 C 15.0381,54.9049 20.6775,55.0251 26.4615,55.1556 C 32.4051,55.2898 38.5309,55.4038 44.8238,55.5288 C 44.4898,56.2642 44.1557,56.974 43.8218,57.6827 C 37.7251,57.1749 31.7788,56.6677 26.007,56.1827 C 20.3779,55.7097 14.8927,55.2485 9.543,54.7881 L 9.543,54.7881 z" /> + </g><g + id="g3894" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;"> + <path + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;" + id="path3896" + class="fil0" + d="M 9.6114,58.3412 C 14.8367,58.5046 20.1988,58.6609 25.6896,58.8282 C 31.3249,58.9998 37.1193,59.1522 43.0657,59.3284 C 42.7318,59.9929 42.3979,60.6565 42.0717,61.3107 C 36.306,60.7894 30.6911,60.2729 25.2271,59.7783 C 19.8839,59.2947 14.6986,58.8089 9.6114,58.3412 z" /> + </g><g + id="g3898" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;"> + <path + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;" + id="path3900" + class="fil0" + d="M 9.8812,72.3136 C 13.6329,72.5533 17.4457,72.7897 21.3253,73.0379 C 25.2818,73.2909 29.3202,73.5331 33.435,73.796 C 33.4411,74.2984 33.4473,74.8007 33.4534,75.295 C 29.3368,74.7731 25.2885,74.2642 21.3368,73.7666 C 17.4463,73.2767 13.6371,72.7893 9.8812,72.3136 L 9.8812,72.3136 z" /> + </g><g + id="g3902" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;"> + <path + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;" + id="path3904" + class="fil0" + d="M 9.8143,68.8431 C 14.1801,69.0811 18.6374,69.3242 23.1847,69.5724 C 27.8387,69.8263 32.5977,70.0697 37.4633,70.3348 C 37.4486,70.3658 37.4339,70.3967 37.4265,70.4203 C 37.3965,70.434 37.3666,70.4475 37.3439,70.4538 C 37.3142,70.4834 37.2843,70.5131 37.262,70.5428 C 37.232,70.5564 37.2021,70.57 37.1795,70.5762 C 37.1647,70.6071 37.15,70.63 37.1353,70.6609 C 37.1053,70.6744 37.0752,70.6881 37.0527,70.6942 C 37.0378,70.7091 37.0229,70.7239 37.008,70.7387 C 36.9853,70.7362 36.9551,70.7337 36.9325,70.7318 C 36.9025,70.7454 36.8726,70.7589 36.8499,70.7651 C 36.8351,70.7799 36.8202,70.7948 36.8052,70.8096 C 36.7753,70.8231 36.7453,70.8366 36.7228,70.8508 C 36.7077,70.8496 36.6926,70.8483 36.685,70.8471 C 36.655,70.8607 36.6251,70.8742 36.6026,70.8804 C 36.5724,70.8779 36.5422,70.8753 36.5196,70.8734 C 36.5044,70.8721 36.4894,70.8709 36.4742,70.8696 C 36.4442,70.8832 36.4143,70.8967 36.3918,70.9109 C 36.3691,70.9084 36.3389,70.9059 36.3163,70.904 C 36.2861,70.9015 36.2559,70. 899 36.2 257,70.8964 C 35.2753,70.8313 34.3323,70.7662 33.3969,70.7021 C 33.4006,70.9972 33.4041,71.2842 33.4077,71.5793 C 29.28,71.1082 25.2349,70.6376 21.2802,70.177 C 17.3931,69.7242 13.566,69.2797 9.8143,68.8431 L 9.8143,68.8431 z" /> + </g><g + id="g3906" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;"> + <path + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;" + id="path3908" + class="fil0" + d="M 9.7462,65.3199 C 14.4335,65.5452 19.2272,65.7764 24.1337,66.0124 C 29.1471,66.2535 34.2885,66.4923 39.5589,66.738 C 39.4114,67.0576 39.2562,67.369 39.1087,67.6888 C 39.0494,67.7972 38.9827,67.889 38.9308,67.9898 C 38.8942,68.0913 38.85,68.1927 38.8134,68.2948 C 38.7689,68.3719 38.7244,68.433 38.6874,68.5026 C 33.5818,67.945 28.5964,67.4008 23.7317,66.8696 C 18.9646,66.3489 14.3026,65.8248 9.7462,65.3199 L 9.7462,65.3199 z" /> + </g><g + id="g3910" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;"> + <path + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;" + id="path3912" + class="fil0" + d="M 9.6788,61.8268 C 14.6273,62.0229 19.7049,62.2052 24.8956,62.4069 C 30.2237,62.6138 35.6796,62.8171 41.2801,63.022 C 40.9842,63.6509 40.7036,64.2802 40.423,64.9 C 34.9878,64.3619 29.6732,63.8327 24.5011,63.3166 C 19.4505,62.8127 14.5041,62.3194 9.6788,61.8268 L 9.6788,61.8268 z" /> + </g><path + id="path3914" + transform="scale(0.282222)" + d="M 20.59375,153.34375 C 20.614297,154.35073 20.63571,155.36847 20.65625,156.375 C 21.043533,175.35366 21.428406,194.30508 21.8125,213.125 C 22.195886,231.91835 22.58749,250.65634 22.96875,269.34375 C 23.174262,279.41631 30.378268,288.33823 39.25,289.375 C 55.927992,291.32524 72.987065,293.30102 90.4375,295.34375 C 108.26104,297.43076 126.59696,299.58049 145.40625,301.78125 C 164.50857,304.01814 184.19749,306.33546 204.3125,308.6875 C 224.96006,311.10156 246.13036,313.55602 267.84375,316.09375 C 279.77973,317.49229 289.74999,309.07904 289.75,297.125 C 289.75,275.06791 289.74999,252.93187 289.75,230.78125 C 289.75,208.53637 289.74999,186.15249 289.75,163.71875 C 289.75,160.27703 289.75,156.79128 289.75,153.34375 L 284.6875,153.34375 C 284.68974,156.78015 284.68639,160.25711 284.6875,163.6875 C 284.69423,185.64856 284.68076,207.5077 284.6875,229.3125 C 284.69459,251.05459 284.71168,272.72675 284.71875,294.34375 C 284.72229,304.88651 275.93343,312.4849 265.40625,311.28125 C 244.1 3968,308.85231 223.35665,306.46258 203.15625,304.15625 C 183.40834,301.90129 164.10557,299.70477 145.34375,297.5625 C 126.87568,295.45069 108.81814,293.36635 91.28125,291.375 C 74.12066,289.42689 57.29185,287.53137 40.875,285.65625 C 32.98689,284.75625 26.492499,276.70394 26.3125,267.75 C 25.942933,249.36449 25.558838,230.89841 25.1875,212.40625 C 24.814744,193.86164 24.468633,175.21375 24.09375,156.5625 C 24.072238,155.49374 24.052773,154.41336 24.03125,153.34375 L 20.59375,153.34375 z" + style="fill: url(#linearGradient4030) rgb(0, 0, 0); fill-opacity: 1;" /></g></svg> \ No newline at end of file diff --git a/icons/PyHoca/scalable/x2go-logo-ubuntu.svg b/icons/PyHoca/scalable/x2go-logo-ubuntu.svg new file mode 100644 index 0000000..04c15f4 --- /dev/null +++ b/icons/PyHoca/scalable/x2go-logo-ubuntu.svg @@ -0,0 +1,358 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.46" + width="128" + height="128" + sodipodi:docname="x2go-logo-ubuntu.svg" + sodipodi:docbase="/Users/h1/Documents/Projekte/x2go/x2go" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0" + inkscape:export-filename="/home/h1/Desktop/x2go-logo.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <metadata + id="metadata87"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs85"> + <linearGradient + id="linearGradient3453"> + <stop + style="stop-color:#2b0000;stop-opacity:1;" + offset="0" + id="stop3455" /> + <stop + id="stop3461" + offset="0.5" + style="stop-color:#950000;stop-opacity:1;" /> + <stop + style="stop-color:#ffe400;stop-opacity:1;" + offset="1" + id="stop3457" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 300 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="800 : 300 : 1" + inkscape:persp3d-origin="400 : 200 : 1" + id="perspective2637" /> + <linearGradient + id="linearGradient4665"> + <stop + style="stop-color:#162d50;stop-opacity:1;" + offset="0" + id="stop4667" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="1" + id="stop4669" /> + </linearGradient> + <filter + inkscape:collect="always" + x="-0.20268817" + width="1.4053763" + y="-0.4560484" + height="1.9120969" + id="filter3580"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="15.201613" + id="feGaussianBlur3582" /> + </filter> + <filter + inkscape:collect="always" + id="filter4659"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.82806857" + id="feGaussianBlur4661" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4665" + id="linearGradient4671" + x1="400" + y1="100" + x2="400" + y2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="scale(1,1.1)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3453" + id="linearGradient3459" + x1="0" + y1="3" + x2="0" + y2="128" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + inkscape:window-height="816" + inkscape:window-width="1503" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10000" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showgrid="true" + inkscape:object-nodes="true" + inkscape:grid-points="true" + inkscape:guide-points="true" + width="800px" + height="600px" + inkscape:zoom="4.625" + inkscape:cx="37.664865" + inkscape:cy="66.782471" + inkscape:window-x="0" + inkscape:window-y="22" + inkscape:current-layer="svg2" + units="mm" + showguides="true" + inkscape:guide-bbox="true"> + <sodipodi:guide + orientation="vertical" + position="100" + id="guide2393" /> + <sodipodi:guide + orientation="vertical" + position="700" + id="guide2395" /> + <inkscape:grid + id="GridFromPre046Settings" + type="xygrid" + originx="0px" + originy="0px" + spacingx="1px" + spacingy="1px" + color="#0000ff" + empcolor="#0000ff" + opacity="0.2" + empopacity="0.4" + empspacing="5" + visible="true" + enabled="true" + dotted="true" /> + </sodipodi:namedview> + <rect + style="fill:url(#linearGradient3459);fill-opacity:1;opacity:0.5" + id="rect2681" + width="128" + height="128" + x="0" + y="-7.1054274e-15" + ry="10.162162" /> + <path + sodipodi:type="arc" + style="opacity:0.11693546;fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1;filter:url(#filter3580)" + id="path2397" + sodipodi:cx="410" + sodipodi:cy="150" + sodipodi:rx="90" + sodipodi:ry="40" + d="M 500,150 A 90,40 0 1 1 320,150 A 90,40 0 1 1 500,150 z" + transform="matrix(0.888889,0,0,0.75,-224.4445,38.25)" /> + <g + style="fill:#ffffff" + id="g4" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 90,977.626 L 103.32,951.85 C 104.256,949.33 104.688,947.53 104.688,946.594 C 104.688,945.082 104.184,943.93 103.248,943.282 C 102.24,942.562 100.512,942.202 98.064,942.202 L 98.064,939.826 L 120.168,939.826 L 120.168,942.202 C 117.144,942.202 114.984,942.85 113.472,944.146 C 111.96,945.442 109.872,948.898 106.992,954.514 L 92.376,982.954 L 110.808,1024.498 C 112.68,1028.386 114.336,1031.122 115.776,1032.634 C 117.216,1034.074 118.944,1034.866 120.888,1034.866 L 120.888,1037.17 L 94.536,1037.17 L 94.536,1034.866 C 96.912,1034.866 98.568,1034.578 99.576,1033.93 C 100.584,1033.354 101.088,1032.346 101.088,1031.05 C 101.088,1029.826 100.368,1027.666 99.072,1024.498 L 86.112,995.482 L 71.28,1024.498 C 69.912,1026.946 69.192,1028.962 69.192,1030.474 C 69.192,1033.426 71.352,1034.866 75.672,1034.866 L 75.672,1037.17 L 55.728,1037.17 L 55.728,1034.866 C 57.672,1034.866 59.4,1034.218 60.84,1032.994 C 62.28,1031.77 63.792,1029.682 65.232,1026.586 L 83.736,990.01 L 67.248,9 52.498 C 65.52,948.466 63.936,945.802 62.424,944.362 C 60.84,942.922 58.608,942.202 55.728,942.202 L 55.728,939.826 L 84.024,939.826 L 84.024,942.202 C 79.632,942.202 77.4,943.714 77.4,946.738 C 77.4,948.25 77.832,949.978 78.696,951.85 L 90,977.626 z" + id="path6" /> + </g> + <g + style="fill:#ffffff" + id="g8" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,940.474 L 50.976,939.25 L 50.976,941.698 L 6.984,940.474 z" + id="path10" /> + </g> + <g + style="fill:#ffffff" + id="g12" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,946.45 L 50.976,945.298 L 50.976,946.954 L 56.16,947.026 L 56.52,947.026 L 56.808,947.026 L 57.096,947.098 L 57.384,947.098 L 57.672,947.17 L 57.888,947.242 L 58.104,947.314 L 58.32,947.386 L 58.464,947.458 L 58.608,947.53 L 58.752,947.602 L 58.896,947.674 L 58.968,947.746 L 59.112,947.818 L 59.112,947.89 L 59.184,947.89 L 6.984,946.45 z" + id="path14" /> + </g> + <g + style="fill:#ffffff" + id="g16" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,952.498 L 61.272,950.986 L 61.488,951.346 L 61.776,951.922 L 62.064,952.498 L 62.352,953.146 L 62.64,953.794 L 62.784,954.01 L 6.984,952.498 z" + id="path18" /> + </g> + <g + style="fill:#ffffff" + id="g20" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,958.474 L 63.936,956.89 L 65.376,960.058 L 6.984,958.474 z" + id="path22" /> + </g> + <g + style="fill:#ffffff" + id="g24" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,964.45 L 66.528,962.866 L 67.968,966.106 L 6.984,964.45 z" + id="path26" /> + </g> + <g + style="fill:#ffffff" + id="g28" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,970.498 L 69.12,968.77 L 70.632,972.226 L 6.984,970.498 z" + id="path30" /> + </g> + <g + style="fill:#ffffff" + id="g32" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,976.474 L 71.712,974.674 L 73.296,978.274 L 6.984,976.474 z" + id="path34" /> + </g> + <g + style="fill:#ffffff" + id="g36" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,982.45 L 74.304,980.65 L 75.96,984.322 L 6.984,982.45 z" + id="path38" /> + </g> + <g + style="fill:#ffffff" + id="g40" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,988.426 L 76.896,986.554 L 78.408,989.866 L 78.192,990.37 L 6.984,988.426 z" + id="path42" /> + </g> + <g + style="fill:#ffffff" + id="g44" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,994.402 L 77.112,992.458 L 75.168,996.274 L 6.984,994.402 z" + id="path46" /> + </g> + <g + style="fill:#ffffff" + id="g48" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1000.378 L 74.016,998.578 L 72.216,1002.178 L 6.984,1000.378 z" + id="path50" /> + </g> + <g + style="fill:#ffffff" + id="g52" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1006.354 L 70.92,1004.626 L 69.192,1008.082 L 6.984,1006.354 z" + id="path54" /> + </g> + <g + style="fill:#ffffff" + id="g56" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1012.402 L 67.896,1010.746 L 66.168,1013.986 L 6.984,1012.402 z" + id="path58" /> + </g> + <g + style="fill:#ffffff" + id="g60" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1036.378 L 50.976,1035.154 L 50.976,1037.602 L 6.984,1036.378 z" + id="path62" /> + </g> + <g + style="fill:#ffffff" + id="g64" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1030.402 L 58.104,1028.962 L 58.032,1029.106 L 57.888,1029.178 L 57.744,1029.322 L 57.6,1029.394 L 57.528,1029.538 L 57.384,1029.61 L 57.312,1029.682 L 57.168,1029.682 L 57.024,1029.754 L 56.952,1029.826 L 56.808,1029.898 L 56.736,1029.898 L 56.592,1029.97 L 56.448,1029.97 L 56.376,1029.97 L 56.232,1030.042 L 56.088,1030.042 L 55.944,1030.042 L 50.976,1030.114 L 50.976,1031.554 L 6.984,1030.402 z" + id="path66" /> + </g> + <g + style="fill:#ffffff" + id="g68" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1024.354 L 61.776,1022.914 L 60.984,1024.498 L 60.696,1025.002 L 60.48,1025.506 L 60.264,1025.866 L 6.984,1024.354 z" + id="path70" /> + </g> + <g + style="fill:#ffffff" + id="g72" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1018.378 L 64.8,1016.794 L 63.288,1019.89 L 6.984,1018.378 z" + id="path74" /> + </g> + <g + style="fill:#ffffff" + id="g76" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 63.936,924.49 L 118.872,924.49 C 123.84,924.49 127.872,928.522 127.872,933.49 L 127.872,1043.362 C 127.872,1048.33 123.84,1052.362 118.872,1052.362 L 63.936,1052.362 L 63.936,1050.418 L 117.864,1050.418 C 122.256,1050.418 125.856,1046.818 125.856,1042.426 L 125.856,934.498 C 125.856,930.106 122.256,926.506 117.864,926.506 L 63.936,926.506 L 63.936,924.49 z" + id="path78" /> + </g> + <g + style="fill:#ffffff" + id="g80" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 9,924.49 L 63.936,924.49 L 63.936,926.506 L 9.936,926.506 C 5.544,926.506 1.944,930.106 1.944,934.498 L 1.944,1042.426 C 1.944,1046.818 5.544,1050.418 9.936,1050.418 L 63.936,1050.418 L 63.936,1052.362 L 9,1052.362 C 4.032,1052.362 0,1048.33 0,1043.362 L 0,933.49 C 0,928.522 4.032,924.49 9,924.49 z" + id="path82" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/x2go-logo-white-bg.svg b/icons/PyHoca/scalable/x2go-logo-white-bg.svg new file mode 100644 index 0000000..f1e4dd6 --- /dev/null +++ b/icons/PyHoca/scalable/x2go-logo-white-bg.svg @@ -0,0 +1,361 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.47 r22583" + width="128" + height="128" + sodipodi:docname="x2go-logo-white-bg.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0" + inkscape:export-filename="" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <metadata + id="metadata87"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs85"> + <linearGradient + id="linearGradient3453"> + <stop + style="stop-color:#2b0000;stop-opacity:1;" + offset="0" + id="stop3455" /> + <stop + id="stop3461" + offset="0.5" + style="stop-color:#950000;stop-opacity:1;" /> + <stop + style="stop-color:#ffe400;stop-opacity:1;" + offset="1" + id="stop3457" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 300 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="800 : 300 : 1" + inkscape:persp3d-origin="400 : 200 : 1" + id="perspective2637" /> + <linearGradient + id="linearGradient4665"> + <stop + style="stop-color:#162d50;stop-opacity:1;" + offset="0" + id="stop4667" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="1" + id="stop4669" /> + </linearGradient> + <filter + inkscape:collect="always" + x="-0.20268817" + width="1.4053763" + y="-0.4560484" + height="1.9120969" + id="filter3580"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="15.201613" + id="feGaussianBlur3582" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4665" + id="linearGradient4671" + x1="400" + y1="100" + x2="400" + y2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="scale(1,1.1)" /> + <inkscape:perspective + id="perspective46" + inkscape:persp3d-origin="64 : 42.666667 : 1" + inkscape:vp_z="128 : 64 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 64 : 1" + sodipodi:type="inkscape:persp3d" /> + <filter + inkscape:collect="always" + id="filter4218"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.0924925" + id="feGaussianBlur4220" /> + </filter> + </defs> + <sodipodi:namedview + inkscape:window-height="709" + inkscape:window-width="1366" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10000" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showgrid="true" + inkscape:object-nodes="true" + inkscape:grid-points="true" + inkscape:guide-points="true" + width="800px" + height="600px" + inkscape:zoom="3.640625" + inkscape:cx="64" + inkscape:cy="64" + inkscape:window-x="-4" + inkscape:window-y="-3" + inkscape:current-layer="svg2" + units="mm" + showguides="true" + inkscape:guide-bbox="true" + inkscape:window-maximized="1"> + <sodipodi:guide + orientation="vertical" + position="100" + id="guide2393" /> + <sodipodi:guide + orientation="vertical" + position="700" + id="guide2395" /> + <inkscape:grid + id="GridFromPre046Settings" + type="xygrid" + originx="0px" + originy="0px" + spacingx="1px" + spacingy="1px" + color="#0000ff" + empcolor="#0000ff" + opacity="0.2" + empopacity="0.4" + empspacing="5" + visible="true" + enabled="true" + dotted="true" /> + </sodipodi:namedview> + <rect + style="fill:#ffffff;fill-opacity:1;opacity:1" + id="rect2681" + width="128" + height="128" + x="0" + y="-7.1054274e-15" + ry="10.162162" /> + <g + id="g3246" + style="fill:#4d4d4d;fill-opacity:1"> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g4" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path6" + d="M 90,977.626 L 103.32,951.85 C 104.256,949.33 104.688,947.53 104.688,946.594 C 104.688,945.082 104.184,943.93 103.248,943.282 C 102.24,942.562 100.512,942.202 98.064,942.202 L 98.064,939.826 L 120.168,939.826 L 120.168,942.202 C 117.144,942.202 114.984,942.85 113.472,944.146 C 111.96,945.442 109.872,948.898 106.992,954.514 L 92.376,982.954 L 110.808,1024.498 C 112.68,1028.386 114.336,1031.122 115.776,1032.634 C 117.216,1034.074 118.944,1034.866 120.888,1034.866 L 120.888,1037.17 L 94.536,1037.17 L 94.536,1034.866 C 96.912,1034.866 98.568,1034.578 99.576,1033.93 C 100.584,1033.354 101.088,1032.346 101.088,1031.05 C 101.088,1029.826 100.368,1027.666 99.072,1024.498 L 86.112,995.482 L 71.28,1024.498 C 69.912,1026.946 69.192,1028.962 69.192,1030.474 C 69.192,1033.426 71.352,1034.866 75.672,1034.866 L 75.672,1037.17 L 55.728,1037.17 L 55.728,1034.866 C 57.672,1034.866 59.4,1034.218 60.84,1032.994 C 62.28,1031.77 63.792,1029.682 65.232,1026.586 L 83.736,990.01 L 67.248 ,952.498 C 65.52,948.466 63.936,945.802 62.424,944.362 C 60.84,942.922 58.608,942.202 55.728,942.202 L 55.728,939.826 L 84.024,939.826 L 84.024,942.202 C 79.632,942.202 77.4,943.714 77.4,946.738 C 77.4,948.25 77.832,949.978 78.696,951.85 L 90,977.626 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g8" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path10" + d="M 6.984,940.474 L 50.976,939.25 L 50.976,941.698 L 6.984,940.474 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g12" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path14" + d="M 6.984,946.45 L 50.976,945.298 L 50.976,946.954 L 56.16,947.026 L 56.52,947.026 L 56.808,947.026 L 57.096,947.098 L 57.384,947.098 L 57.672,947.17 L 57.888,947.242 L 58.104,947.314 L 58.32,947.386 L 58.464,947.458 L 58.608,947.53 L 58.752,947.602 L 58.896,947.674 L 58.968,947.746 L 59.112,947.818 L 59.112,947.89 L 59.184,947.89 L 6.984,946.45 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g16" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path18" + d="M 6.984,952.498 L 61.272,950.986 L 61.488,951.346 L 61.776,951.922 L 62.064,952.498 L 62.352,953.146 L 62.64,953.794 L 62.784,954.01 L 6.984,952.498 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g20" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path22" + d="M 6.984,958.474 L 63.936,956.89 L 65.376,960.058 L 6.984,958.474 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g24" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path26" + d="M 6.984,964.45 L 66.528,962.866 L 67.968,966.106 L 6.984,964.45 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g28" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path30" + d="M 6.984,970.498 L 69.12,968.77 L 70.632,972.226 L 6.984,970.498 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g32" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path34" + d="M 6.984,976.474 L 71.712,974.674 L 73.296,978.274 L 6.984,976.474 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g36" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path38" + d="M 6.984,982.45 L 74.304,980.65 L 75.96,984.322 L 6.984,982.45 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g40" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path42" + d="M 6.984,988.426 L 76.896,986.554 L 78.408,989.866 L 78.192,990.37 L 6.984,988.426 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g44" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path46" + d="M 6.984,994.402 L 77.112,992.458 L 75.168,996.274 L 6.984,994.402 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g48" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path50" + d="M 6.984,1000.378 L 74.016,998.578 L 72.216,1002.178 L 6.984,1000.378 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g52" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path54" + d="M 6.984,1006.354 L 70.92,1004.626 L 69.192,1008.082 L 6.984,1006.354 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g56" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path58" + d="M 6.984,1012.402 L 67.896,1010.746 L 66.168,1013.986 L 6.984,1012.402 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g60" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path62" + d="M 6.984,1036.378 L 50.976,1035.154 L 50.976,1037.602 L 6.984,1036.378 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g64" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path66" + d="M 6.984,1030.402 L 58.104,1028.962 L 58.032,1029.106 L 57.888,1029.178 L 57.744,1029.322 L 57.6,1029.394 L 57.528,1029.538 L 57.384,1029.61 L 57.312,1029.682 L 57.168,1029.682 L 57.024,1029.754 L 56.952,1029.826 L 56.808,1029.898 L 56.736,1029.898 L 56.592,1029.97 L 56.448,1029.97 L 56.376,1029.97 L 56.232,1030.042 L 56.088,1030.042 L 55.944,1030.042 L 50.976,1030.114 L 50.976,1031.554 L 6.984,1030.402 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g68" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path70" + d="M 6.984,1024.354 L 61.776,1022.914 L 60.984,1024.498 L 60.696,1025.002 L 60.48,1025.506 L 60.264,1025.866 L 6.984,1024.354 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g72" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path74" + d="M 6.984,1018.378 L 64.8,1016.794 L 63.288,1019.89 L 6.984,1018.378 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + </g> + <path + sodipodi:type="arc" + style="opacity:0.11693546;fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1;filter:url(#filter3580)" + id="path2397" + sodipodi:cx="410" + sodipodi:cy="150" + sodipodi:rx="90" + sodipodi:ry="40" + d="M 500,150 A 90,40 0 1 1 320,150 A 90,40 0 1 1 500,150 z" + transform="matrix(0.888889,0,0,0.75,-224.4445,38.25)" /> + <g + style="fill:#4d4d4d;fill-opacity:1" + id="g76" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#4d4d4d;fill-opacity:1" + d="M 63.936,924.49 L 118.872,924.49 C 123.84,924.49 127.872,928.522 127.872,933.49 L 127.872,1043.362 C 127.872,1048.33 123.84,1052.362 118.872,1052.362 L 63.936,1052.362 L 63.936,1050.418 L 117.864,1050.418 C 122.256,1050.418 125.856,1046.818 125.856,1042.426 L 125.856,934.498 C 125.856,930.106 122.256,926.506 117.864,926.506 L 63.936,926.506 L 63.936,924.49 z" + id="path78" /> + </g> + <g + style="fill:#4d4d4d;fill-opacity:1" + id="g80" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#4d4d4d;fill-opacity:1" + d="M 9,924.49 L 63.936,924.49 L 63.936,926.506 L 9.936,926.506 C 5.544,926.506 1.944,930.106 1.944,934.498 L 1.944,1042.426 C 1.944,1046.818 5.544,1050.418 9.936,1050.418 L 63.936,1050.418 L 63.936,1052.362 L 9,1052.362 C 4.032,1052.362 0,1048.33 0,1043.362 L 0,933.49 C 0,928.522 4.032,924.49 9,924.49 z" + id="path82" /> + </g> +</svg> diff --git a/icons/PyHoca/scalable/x2go.svg b/icons/PyHoca/scalable/x2go.svg new file mode 100644 index 0000000..f1e4dd6 --- /dev/null +++ b/icons/PyHoca/scalable/x2go.svg @@ -0,0 +1,361 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.47 r22583" + width="128" + height="128" + sodipodi:docname="x2go-logo-white-bg.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0" + inkscape:export-filename="" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <metadata + id="metadata87"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs85"> + <linearGradient + id="linearGradient3453"> + <stop + style="stop-color:#2b0000;stop-opacity:1;" + offset="0" + id="stop3455" /> + <stop + id="stop3461" + offset="0.5" + style="stop-color:#950000;stop-opacity:1;" /> + <stop + style="stop-color:#ffe400;stop-opacity:1;" + offset="1" + id="stop3457" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 300 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="800 : 300 : 1" + inkscape:persp3d-origin="400 : 200 : 1" + id="perspective2637" /> + <linearGradient + id="linearGradient4665"> + <stop + style="stop-color:#162d50;stop-opacity:1;" + offset="0" + id="stop4667" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="1" + id="stop4669" /> + </linearGradient> + <filter + inkscape:collect="always" + x="-0.20268817" + width="1.4053763" + y="-0.4560484" + height="1.9120969" + id="filter3580"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="15.201613" + id="feGaussianBlur3582" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4665" + id="linearGradient4671" + x1="400" + y1="100" + x2="400" + y2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="scale(1,1.1)" /> + <inkscape:perspective + id="perspective46" + inkscape:persp3d-origin="64 : 42.666667 : 1" + inkscape:vp_z="128 : 64 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 64 : 1" + sodipodi:type="inkscape:persp3d" /> + <filter + inkscape:collect="always" + id="filter4218"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.0924925" + id="feGaussianBlur4220" /> + </filter> + </defs> + <sodipodi:namedview + inkscape:window-height="709" + inkscape:window-width="1366" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10000" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showgrid="true" + inkscape:object-nodes="true" + inkscape:grid-points="true" + inkscape:guide-points="true" + width="800px" + height="600px" + inkscape:zoom="3.640625" + inkscape:cx="64" + inkscape:cy="64" + inkscape:window-x="-4" + inkscape:window-y="-3" + inkscape:current-layer="svg2" + units="mm" + showguides="true" + inkscape:guide-bbox="true" + inkscape:window-maximized="1"> + <sodipodi:guide + orientation="vertical" + position="100" + id="guide2393" /> + <sodipodi:guide + orientation="vertical" + position="700" + id="guide2395" /> + <inkscape:grid + id="GridFromPre046Settings" + type="xygrid" + originx="0px" + originy="0px" + spacingx="1px" + spacingy="1px" + color="#0000ff" + empcolor="#0000ff" + opacity="0.2" + empopacity="0.4" + empspacing="5" + visible="true" + enabled="true" + dotted="true" /> + </sodipodi:namedview> + <rect + style="fill:#ffffff;fill-opacity:1;opacity:1" + id="rect2681" + width="128" + height="128" + x="0" + y="-7.1054274e-15" + ry="10.162162" /> + <g + id="g3246" + style="fill:#4d4d4d;fill-opacity:1"> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g4" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path6" + d="M 90,977.626 L 103.32,951.85 C 104.256,949.33 104.688,947.53 104.688,946.594 C 104.688,945.082 104.184,943.93 103.248,943.282 C 102.24,942.562 100.512,942.202 98.064,942.202 L 98.064,939.826 L 120.168,939.826 L 120.168,942.202 C 117.144,942.202 114.984,942.85 113.472,944.146 C 111.96,945.442 109.872,948.898 106.992,954.514 L 92.376,982.954 L 110.808,1024.498 C 112.68,1028.386 114.336,1031.122 115.776,1032.634 C 117.216,1034.074 118.944,1034.866 120.888,1034.866 L 120.888,1037.17 L 94.536,1037.17 L 94.536,1034.866 C 96.912,1034.866 98.568,1034.578 99.576,1033.93 C 100.584,1033.354 101.088,1032.346 101.088,1031.05 C 101.088,1029.826 100.368,1027.666 99.072,1024.498 L 86.112,995.482 L 71.28,1024.498 C 69.912,1026.946 69.192,1028.962 69.192,1030.474 C 69.192,1033.426 71.352,1034.866 75.672,1034.866 L 75.672,1037.17 L 55.728,1037.17 L 55.728,1034.866 C 57.672,1034.866 59.4,1034.218 60.84,1032.994 C 62.28,1031.77 63.792,1029.682 65.232,1026.586 L 83.736,990.01 L 67.248 ,952.498 C 65.52,948.466 63.936,945.802 62.424,944.362 C 60.84,942.922 58.608,942.202 55.728,942.202 L 55.728,939.826 L 84.024,939.826 L 84.024,942.202 C 79.632,942.202 77.4,943.714 77.4,946.738 C 77.4,948.25 77.832,949.978 78.696,951.85 L 90,977.626 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g8" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path10" + d="M 6.984,940.474 L 50.976,939.25 L 50.976,941.698 L 6.984,940.474 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g12" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path14" + d="M 6.984,946.45 L 50.976,945.298 L 50.976,946.954 L 56.16,947.026 L 56.52,947.026 L 56.808,947.026 L 57.096,947.098 L 57.384,947.098 L 57.672,947.17 L 57.888,947.242 L 58.104,947.314 L 58.32,947.386 L 58.464,947.458 L 58.608,947.53 L 58.752,947.602 L 58.896,947.674 L 58.968,947.746 L 59.112,947.818 L 59.112,947.89 L 59.184,947.89 L 6.984,946.45 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g16" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path18" + d="M 6.984,952.498 L 61.272,950.986 L 61.488,951.346 L 61.776,951.922 L 62.064,952.498 L 62.352,953.146 L 62.64,953.794 L 62.784,954.01 L 6.984,952.498 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g20" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path22" + d="M 6.984,958.474 L 63.936,956.89 L 65.376,960.058 L 6.984,958.474 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g24" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path26" + d="M 6.984,964.45 L 66.528,962.866 L 67.968,966.106 L 6.984,964.45 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g28" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path30" + d="M 6.984,970.498 L 69.12,968.77 L 70.632,972.226 L 6.984,970.498 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g32" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path34" + d="M 6.984,976.474 L 71.712,974.674 L 73.296,978.274 L 6.984,976.474 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g36" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path38" + d="M 6.984,982.45 L 74.304,980.65 L 75.96,984.322 L 6.984,982.45 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g40" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path42" + d="M 6.984,988.426 L 76.896,986.554 L 78.408,989.866 L 78.192,990.37 L 6.984,988.426 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g44" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path46" + d="M 6.984,994.402 L 77.112,992.458 L 75.168,996.274 L 6.984,994.402 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g48" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path50" + d="M 6.984,1000.378 L 74.016,998.578 L 72.216,1002.178 L 6.984,1000.378 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g52" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path54" + d="M 6.984,1006.354 L 70.92,1004.626 L 69.192,1008.082 L 6.984,1006.354 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g56" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path58" + d="M 6.984,1012.402 L 67.896,1010.746 L 66.168,1013.986 L 6.984,1012.402 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g60" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path62" + d="M 6.984,1036.378 L 50.976,1035.154 L 50.976,1037.602 L 6.984,1036.378 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g64" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path66" + d="M 6.984,1030.402 L 58.104,1028.962 L 58.032,1029.106 L 57.888,1029.178 L 57.744,1029.322 L 57.6,1029.394 L 57.528,1029.538 L 57.384,1029.61 L 57.312,1029.682 L 57.168,1029.682 L 57.024,1029.754 L 56.952,1029.826 L 56.808,1029.898 L 56.736,1029.898 L 56.592,1029.97 L 56.448,1029.97 L 56.376,1029.97 L 56.232,1030.042 L 56.088,1030.042 L 55.944,1030.042 L 50.976,1030.114 L 50.976,1031.554 L 6.984,1030.402 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g68" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path70" + d="M 6.984,1024.354 L 61.776,1022.914 L 60.984,1024.498 L 60.696,1025.002 L 60.48,1025.506 L 60.264,1025.866 L 6.984,1024.354 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + <g + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)" + id="g72" + style="fill:#4d4d4d;fill-opacity:1"> + <path + id="path74" + d="M 6.984,1018.378 L 64.8,1016.794 L 63.288,1019.89 L 6.984,1018.378 z" + style="fill:#4d4d4d;fill-opacity:1" /> + </g> + </g> + <path + sodipodi:type="arc" + style="opacity:0.11693546;fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1;filter:url(#filter3580)" + id="path2397" + sodipodi:cx="410" + sodipodi:cy="150" + sodipodi:rx="90" + sodipodi:ry="40" + d="M 500,150 A 90,40 0 1 1 320,150 A 90,40 0 1 1 500,150 z" + transform="matrix(0.888889,0,0,0.75,-224.4445,38.25)" /> + <g + style="fill:#4d4d4d;fill-opacity:1" + id="g76" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#4d4d4d;fill-opacity:1" + d="M 63.936,924.49 L 118.872,924.49 C 123.84,924.49 127.872,928.522 127.872,933.49 L 127.872,1043.362 C 127.872,1048.33 123.84,1052.362 118.872,1052.362 L 63.936,1052.362 L 63.936,1050.418 L 117.864,1050.418 C 122.256,1050.418 125.856,1046.818 125.856,1042.426 L 125.856,934.498 C 125.856,930.106 122.256,926.506 117.864,926.506 L 63.936,926.506 L 63.936,924.49 z" + id="path78" /> + </g> + <g + style="fill:#4d4d4d;fill-opacity:1" + id="g80" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#4d4d4d;fill-opacity:1" + d="M 9,924.49 L 63.936,924.49 L 63.936,926.506 L 9.936,926.506 C 5.544,926.506 1.944,930.106 1.944,934.498 L 1.944,1042.426 C 1.944,1046.818 5.544,1050.418 9.936,1050.418 L 63.936,1050.418 L 63.936,1052.362 L 9,1052.362 C 4.032,1052.362 0,1048.33 0,1043.362 L 0,933.49 C 0,928.522 4.032,924.49 9,924.49 z" + id="path82" /> + </g> +</svg> diff --git a/img/pyhoca-about-logo.png b/img/pyhoca-about-logo.png new file mode 100644 index 0000000..42899a9 Binary files /dev/null and b/img/pyhoca-about-logo.png differ diff --git a/img/pyhoca-splash.png b/img/pyhoca-splash.png new file mode 100644 index 0000000..5f4f46e Binary files /dev/null and b/img/pyhoca-splash.png differ diff --git a/locale b/locale new file mode 120000 index 0000000..7822838 --- /dev/null +++ b/locale @@ -0,0 +1 @@ +build/mo \ No newline at end of file diff --git a/man/pyhoca-gui.1 b/man/pyhoca-gui.1 new file mode 100644 index 0000000..b60bf95 --- /dev/null +++ b/man/pyhoca-gui.1 @@ -0,0 +1,159 @@ +'\" -*- coding: utf-8 -*- +.if \n(.g .ds T< \\FC +.if \n(.g .ds T> \\F[\n[.fam]] +.de URL +\\$2 \(la\\$1\(ra\\$3 +.. +.if \n(.g .mso www.tmac +.TH pyhoca-gui 1 "31 Dec 2010" "Version 0.0.21" "X2go Application" +.SH NAME +pyhoca-gui \- graphical X2go client applet written in Python +.SH SYNOPSIS +'nh +.fi +.ad l +\fBpyhoca-gui\fR \kx +.if (\nx>(\n(.l/2)) .nr x (\n(.l/5) +'in \n(.iu+\nxu +[ +\fIoptions\fR +] +'in \n(.iu-\nxu +.ad b +'hy +.SH DESCRIPTION +\fBpyhoca-gui\fR is a cross-platform (Windows, MacOS X, Linux) graphical X2go client applet that +docks to your desktop's system tray. +.PP +From your desktop's system tray you can start/resume/share pre-configured X2go sessions. You can manage the +pre-configured session profiles in the X2go profile manager and also configure the basic setup of +\fBpyhoca-gui\fR. +.PP +\fBpyhoca-gui\fR uses the same set of config files (\fBsettings\fR, \fBprinting\fR and \fBsessions\fR in ~/.x2goclient) as the original +X2go Client application (by Heinz-M. Graesing and Oleksandr Schneydr) does. +.PP +On Windows systems \fBpyhoca-gui\fR uses the same set of Windows registry keys and values as the original X2go Client application. +.PP +See the included README and TODO for further information on \fBpyhoca-gui\fR. +.SH COMMON OPTIONS +\fBpyhoca-gui\fR accepts the following common options: +.TP +\*(T<\fB\-h, \-\-help\fR\*(T> +Display a help with all available command line options and exit. +.TP +\*(T<\fB\-V, \-\-version\fR\*(T> +Output version information and exit. +.TP +\*(T<\fB\-d, \-\-quiet\fR\*(T> +No output to stdout at all! Use this option on Windows!!! +.TP +\*(T<\fB\-d, \-\-debug\fR\*(T> +Enable debugging output. +.TP +\*(T<\fB\-\-libdebug\fR\*(T> +Enable debugging code of the unterlying Python X2go module. +.TP +\*(T<\fB\-\-libdebug-sftpxfer\fR\*(T> +Enable debugging code of Python X2go's sFTP server code (very verbose, and it may even reveal promiscuous data). +.SH GUI OPTIONS +.TP +\*(T<\fB\-u, \-\-username\fR \fI<USERNAME>\fR\*(T> +Username for the session (default: currently logged in user). +.TP +\*(T<\fB\-P, \-\-session-profile\fR\*(T> +The name of the session profile to be used to make the connection. You can actually pass a komma-separated list of +session profile names to this option. +.TP +\*(T<\fB\-\-show-profile-metatypes\fR\*(T> +Show descriptive meta information on session profiles in menus (NOTE: this makes menus appear a bit more sluggish, use it mostly for debugging). +.TP +\*(T<\fB\-\-auto-connect\fR\*(T> +Connect sessions via SSH public key authentication on application startup, if possible. +.TP +\*(T<\fB\-\-start-on-connect\fR\*(T> +Start a session directly after authentication (only if no suspended sessions are available). +.TP +\*(T<\fB\-\-resume-on-connect, \-\-resume-newest-on-connect\fR\*(T> +After authentication directly auto-resume the newest available running/suspended session. +.TP +\*(T<\fB\-\-resume-oldest-on-connect\fR\*(T> +After authentication directly auto-resume the oldest available running/suspended session. +.TP +\*(T<\fB\-\-resume-all-on-connect\fR\*(T> +After authentication directly auto-resume all available running/suspended session. +.TP +\*(T<\fB\-\-disable-options\fR\*(T> +Grey-out the ,,Options'' menu item and thus disable the client configuration window. +.TP +\*(T<\fB\-\-disable-profilemanager\fR\*(T> +Grey-out the profile manager menu items and thus disable all profile management functionalities.B +.TP +\*(T<\fB\-\-display <hostname>:<screennumber>\fR\*(T> +Set the DISPLAY environment variable to <hostname>:<screennumber>. +.SH BACKEND OPTIONS +\fBpyhoca-gui\fR supports transparent use of different data backends. For configuration three backends are common: +FILE, GCONF (Linux only) and WINREG (Windows only). The default backend currently is the FILE backend +on all platforms. +.PP +For client-server communication the only yet implemented backend is the STDOUT backend (as X2go server commands +print their execution results to /dev/stdout. (But other communication backends might be possible in the future...). +.PP +In the same way we are focusing on a successor of the current NX3 agent/proxy tool. A change in the proxy backend +will also be implemented as a backend. +.TP +\*(T<\fB\-\-backend-controlsession <CONTROLSESSION_BACKEND>\fR\*(T> +Force usage of a certain CONTROLSESSION_BACKEND (do not use this unless you know exactly what you are doing). +.TP +\*(T<\fB\-\-backend-terminalsession <TERMINALSESSION_BACKEND>\fR\*(T> +Force usage of a certain TERMINALSESSION_BACKEND (do not use this unless you know exactly what you are doing). +.TP +\*(T<\fB\-\-backend-serversessioninfo <SERVERSESSIONINFO_BACKEND>\fR\*(T> +Force usage of a certain SERVERSESSIONINFO_BACKEND (do not use this unless you know exactly what you are doing). +.TP +\*(T<\fB\-\-backend-serversessionlist <SERVERSESSIONLIST_BACKEND>\fR\*(T> +Force usage of a certain SERVERSESSIONLIST_BACKEND (do not use this unless you know exactly what you are doing). +.TP +\*(T<\fB\-\-backend-proxy <PROXY_BACKEND>\fR\*(T> +Force usage of a certain PROXY_BACKEND (do not use this unless you know exactly what you are doing). +.TP +\*(T<\fB\-\-backend-sessionprofiles <SESSIONPROFILES_BACKEND>\fR\*(T> +Use given backend for accessing session profiles, available backends on Linux: FILES, GCONF; on Windows: FILES, WINREG. +.TP +\*(T<\fB\-\-backend-clientsettings <CLIENTSETTINGS_BACKEND>\fR\*(T> +Use given backend for accessing the client settings configuration, available backends on Linux: FILES, GCONF; on Windows: FILES, WINREG. +.TP +\*(T<\fB\-\-backend-clientprinting <CLIENTPRINTING_BACKEND>\fR\*(T> +Use given backend for accessing the client printing configuration, available backends on Linux: FILES, GCONF; on Windows: FILES, WINREG. +.SH PORTABLE OPTIONS +.TP +\*(T<\fB\-\-client-rootdir <CLIENT_ROOTDIR>\fR\*(T> +Define an alternative location where to find plain text config files (default: <HOME>/.x2goclient). +This option will set ,,--backend-profiles FILE'', ,,--backend-clientsettings FILE'' and ,,--backend-clientprinting FILE'' +.TP +\*(T<\fB\-\-sessions-rootdir <SESSIONS_ROOTDIR>\fR\*(T> +Define an alternative location for session runtime files (default: <HOME>/.x2go). +.TP +\*(T<\fB\-\-ssh-rootdir <SSH_ROOTDIR>\fR\*(T> +Define an alternative location for user SSH files (default: <HOME>/.ssh). +.SH WINDOWS OPTIONS +There are some options that are only available on Windows: +.TP +\*(T<\fB\-\-start-xserver\fR\*(T> +Start an XServer (if available) before starting \fBpyhoca-gui\fR. The application will detect the best +suitable XServer automatically, if more than one XServer is installed on your system (currently known: +Xming, Cygwin-X). +.TP +\*(T<\fB\-\-preferred-xserver <XSERVER_NAME>\fR\*(T> +Start either of the currently supported XServers: Xming, Cygwin-X -- make sure your preferred XServer is installed +on your system. +.TP +\*(T<\fB\-\-start-pulseaudio\fR\*(T> +Start the PulseAudio server before starting \fBpyhoca-gui\fR. This option is needed to get X2go audio working. However, it is +not enabled by default. +.TP +\*(T<\fB\-\-lang [en|de|nl|es]\fR\*(T> +Select the GUI language. +.SH "SEE ALSO" +\fB/usr/share/doc/pyhoca-gui\fR +.SH AUTHOR +This manual has been written by Dick Kniep <dick.kniep@lindix.nl> and Mike Gabriel <m.gabriel@das-netzwerkteam.de>. diff --git a/pixmaps/pyhoca-gui.ico b/pixmaps/pyhoca-gui.ico new file mode 100644 index 0000000..ffe7520 Binary files /dev/null and b/pixmaps/pyhoca-gui.ico differ diff --git a/pixmaps/pyhoca_x2go-logo-ubuntu.ico b/pixmaps/pyhoca_x2go-logo-ubuntu.ico new file mode 100644 index 0000000..209495c Binary files /dev/null and b/pixmaps/pyhoca_x2go-logo-ubuntu.ico differ diff --git a/pixmaps/pyhoca_x2go-logo-ubuntu.svg b/pixmaps/pyhoca_x2go-logo-ubuntu.svg new file mode 100644 index 0000000..04c15f4 --- /dev/null +++ b/pixmaps/pyhoca_x2go-logo-ubuntu.svg @@ -0,0 +1,358 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.46" + width="128" + height="128" + sodipodi:docname="x2go-logo-ubuntu.svg" + sodipodi:docbase="/Users/h1/Documents/Projekte/x2go/x2go" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0" + inkscape:export-filename="/home/h1/Desktop/x2go-logo.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <metadata + id="metadata87"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs85"> + <linearGradient + id="linearGradient3453"> + <stop + style="stop-color:#2b0000;stop-opacity:1;" + offset="0" + id="stop3455" /> + <stop + id="stop3461" + offset="0.5" + style="stop-color:#950000;stop-opacity:1;" /> + <stop + style="stop-color:#ffe400;stop-opacity:1;" + offset="1" + id="stop3457" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 300 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="800 : 300 : 1" + inkscape:persp3d-origin="400 : 200 : 1" + id="perspective2637" /> + <linearGradient + id="linearGradient4665"> + <stop + style="stop-color:#162d50;stop-opacity:1;" + offset="0" + id="stop4667" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="1" + id="stop4669" /> + </linearGradient> + <filter + inkscape:collect="always" + x="-0.20268817" + width="1.4053763" + y="-0.4560484" + height="1.9120969" + id="filter3580"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="15.201613" + id="feGaussianBlur3582" /> + </filter> + <filter + inkscape:collect="always" + id="filter4659"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.82806857" + id="feGaussianBlur4661" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4665" + id="linearGradient4671" + x1="400" + y1="100" + x2="400" + y2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="scale(1,1.1)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3453" + id="linearGradient3459" + x1="0" + y1="3" + x2="0" + y2="128" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + inkscape:window-height="816" + inkscape:window-width="1503" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10000" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showgrid="true" + inkscape:object-nodes="true" + inkscape:grid-points="true" + inkscape:guide-points="true" + width="800px" + height="600px" + inkscape:zoom="4.625" + inkscape:cx="37.664865" + inkscape:cy="66.782471" + inkscape:window-x="0" + inkscape:window-y="22" + inkscape:current-layer="svg2" + units="mm" + showguides="true" + inkscape:guide-bbox="true"> + <sodipodi:guide + orientation="vertical" + position="100" + id="guide2393" /> + <sodipodi:guide + orientation="vertical" + position="700" + id="guide2395" /> + <inkscape:grid + id="GridFromPre046Settings" + type="xygrid" + originx="0px" + originy="0px" + spacingx="1px" + spacingy="1px" + color="#0000ff" + empcolor="#0000ff" + opacity="0.2" + empopacity="0.4" + empspacing="5" + visible="true" + enabled="true" + dotted="true" /> + </sodipodi:namedview> + <rect + style="fill:url(#linearGradient3459);fill-opacity:1;opacity:0.5" + id="rect2681" + width="128" + height="128" + x="0" + y="-7.1054274e-15" + ry="10.162162" /> + <path + sodipodi:type="arc" + style="opacity:0.11693546;fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1;filter:url(#filter3580)" + id="path2397" + sodipodi:cx="410" + sodipodi:cy="150" + sodipodi:rx="90" + sodipodi:ry="40" + d="M 500,150 A 90,40 0 1 1 320,150 A 90,40 0 1 1 500,150 z" + transform="matrix(0.888889,0,0,0.75,-224.4445,38.25)" /> + <g + style="fill:#ffffff" + id="g4" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 90,977.626 L 103.32,951.85 C 104.256,949.33 104.688,947.53 104.688,946.594 C 104.688,945.082 104.184,943.93 103.248,943.282 C 102.24,942.562 100.512,942.202 98.064,942.202 L 98.064,939.826 L 120.168,939.826 L 120.168,942.202 C 117.144,942.202 114.984,942.85 113.472,944.146 C 111.96,945.442 109.872,948.898 106.992,954.514 L 92.376,982.954 L 110.808,1024.498 C 112.68,1028.386 114.336,1031.122 115.776,1032.634 C 117.216,1034.074 118.944,1034.866 120.888,1034.866 L 120.888,1037.17 L 94.536,1037.17 L 94.536,1034.866 C 96.912,1034.866 98.568,1034.578 99.576,1033.93 C 100.584,1033.354 101.088,1032.346 101.088,1031.05 C 101.088,1029.826 100.368,1027.666 99.072,1024.498 L 86.112,995.482 L 71.28,1024.498 C 69.912,1026.946 69.192,1028.962 69.192,1030.474 C 69.192,1033.426 71.352,1034.866 75.672,1034.866 L 75.672,1037.17 L 55.728,1037.17 L 55.728,1034.866 C 57.672,1034.866 59.4,1034.218 60.84,1032.994 C 62.28,1031.77 63.792,1029.682 65.232,1026.586 L 83.736,990.01 L 67.248,9 52.498 C 65.52,948.466 63.936,945.802 62.424,944.362 C 60.84,942.922 58.608,942.202 55.728,942.202 L 55.728,939.826 L 84.024,939.826 L 84.024,942.202 C 79.632,942.202 77.4,943.714 77.4,946.738 C 77.4,948.25 77.832,949.978 78.696,951.85 L 90,977.626 z" + id="path6" /> + </g> + <g + style="fill:#ffffff" + id="g8" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,940.474 L 50.976,939.25 L 50.976,941.698 L 6.984,940.474 z" + id="path10" /> + </g> + <g + style="fill:#ffffff" + id="g12" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,946.45 L 50.976,945.298 L 50.976,946.954 L 56.16,947.026 L 56.52,947.026 L 56.808,947.026 L 57.096,947.098 L 57.384,947.098 L 57.672,947.17 L 57.888,947.242 L 58.104,947.314 L 58.32,947.386 L 58.464,947.458 L 58.608,947.53 L 58.752,947.602 L 58.896,947.674 L 58.968,947.746 L 59.112,947.818 L 59.112,947.89 L 59.184,947.89 L 6.984,946.45 z" + id="path14" /> + </g> + <g + style="fill:#ffffff" + id="g16" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,952.498 L 61.272,950.986 L 61.488,951.346 L 61.776,951.922 L 62.064,952.498 L 62.352,953.146 L 62.64,953.794 L 62.784,954.01 L 6.984,952.498 z" + id="path18" /> + </g> + <g + style="fill:#ffffff" + id="g20" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,958.474 L 63.936,956.89 L 65.376,960.058 L 6.984,958.474 z" + id="path22" /> + </g> + <g + style="fill:#ffffff" + id="g24" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,964.45 L 66.528,962.866 L 67.968,966.106 L 6.984,964.45 z" + id="path26" /> + </g> + <g + style="fill:#ffffff" + id="g28" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,970.498 L 69.12,968.77 L 70.632,972.226 L 6.984,970.498 z" + id="path30" /> + </g> + <g + style="fill:#ffffff" + id="g32" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,976.474 L 71.712,974.674 L 73.296,978.274 L 6.984,976.474 z" + id="path34" /> + </g> + <g + style="fill:#ffffff" + id="g36" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,982.45 L 74.304,980.65 L 75.96,984.322 L 6.984,982.45 z" + id="path38" /> + </g> + <g + style="fill:#ffffff" + id="g40" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,988.426 L 76.896,986.554 L 78.408,989.866 L 78.192,990.37 L 6.984,988.426 z" + id="path42" /> + </g> + <g + style="fill:#ffffff" + id="g44" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,994.402 L 77.112,992.458 L 75.168,996.274 L 6.984,994.402 z" + id="path46" /> + </g> + <g + style="fill:#ffffff" + id="g48" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1000.378 L 74.016,998.578 L 72.216,1002.178 L 6.984,1000.378 z" + id="path50" /> + </g> + <g + style="fill:#ffffff" + id="g52" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1006.354 L 70.92,1004.626 L 69.192,1008.082 L 6.984,1006.354 z" + id="path54" /> + </g> + <g + style="fill:#ffffff" + id="g56" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1012.402 L 67.896,1010.746 L 66.168,1013.986 L 6.984,1012.402 z" + id="path58" /> + </g> + <g + style="fill:#ffffff" + id="g60" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1036.378 L 50.976,1035.154 L 50.976,1037.602 L 6.984,1036.378 z" + id="path62" /> + </g> + <g + style="fill:#ffffff" + id="g64" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1030.402 L 58.104,1028.962 L 58.032,1029.106 L 57.888,1029.178 L 57.744,1029.322 L 57.6,1029.394 L 57.528,1029.538 L 57.384,1029.61 L 57.312,1029.682 L 57.168,1029.682 L 57.024,1029.754 L 56.952,1029.826 L 56.808,1029.898 L 56.736,1029.898 L 56.592,1029.97 L 56.448,1029.97 L 56.376,1029.97 L 56.232,1030.042 L 56.088,1030.042 L 55.944,1030.042 L 50.976,1030.114 L 50.976,1031.554 L 6.984,1030.402 z" + id="path66" /> + </g> + <g + style="fill:#ffffff" + id="g68" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1024.354 L 61.776,1022.914 L 60.984,1024.498 L 60.696,1025.002 L 60.48,1025.506 L 60.264,1025.866 L 6.984,1024.354 z" + id="path70" /> + </g> + <g + style="fill:#ffffff" + id="g72" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 6.984,1018.378 L 64.8,1016.794 L 63.288,1019.89 L 6.984,1018.378 z" + id="path74" /> + </g> + <g + style="fill:#ffffff" + id="g76" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 63.936,924.49 L 118.872,924.49 C 123.84,924.49 127.872,928.522 127.872,933.49 L 127.872,1043.362 C 127.872,1048.33 123.84,1052.362 118.872,1052.362 L 63.936,1052.362 L 63.936,1050.418 L 117.864,1050.418 C 122.256,1050.418 125.856,1046.818 125.856,1042.426 L 125.856,934.498 C 125.856,930.106 122.256,926.506 117.864,926.506 L 63.936,926.506 L 63.936,924.49 z" + id="path78" /> + </g> + <g + style="fill:#ffffff" + id="g80" + transform="matrix(1.001001,0,0,1.001001,0,-925.41541)"> + <path + style="fill:#ffffff" + d="M 9,924.49 L 63.936,924.49 L 63.936,926.506 L 9.936,926.506 C 5.544,926.506 1.944,930.106 1.944,934.498 L 1.944,1042.426 C 1.944,1046.818 5.544,1050.418 9.936,1050.418 L 63.936,1050.418 L 63.936,1052.362 L 9,1052.362 C 4.032,1052.362 0,1048.33 0,1043.362 L 0,933.49 C 0,928.522 4.032,924.49 9,924.49 z" + id="path82" /> + </g> +</svg> diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..1bf078d --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,11 @@ +pyhoca/__init__.py +pyhoca/wxgui/notify.py +pyhoca/wxgui/logon.py +pyhoca/wxgui/taskbar.py +pyhoca/wxgui/__init__.py +pyhoca/wxgui/profilemanager.py +pyhoca/wxgui/menus_taskbar.py +pyhoca/wxgui/about.py +pyhoca/wxgui/basepath.py +pyhoca/wxgui/frontend.py +pyhoca-gui diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..31188fd --- /dev/null +++ b/po/de.po @@ -0,0 +1,855 @@ +# PyHoca-GUI / i18n. +# Copyright (C) 2010-2011 Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# Dick Kniep <dick.kniep@lindix.nl> +# This file is distributed under the same license as the PyHoca-GUI package. +# Mike Gabriel <m.gabriel@das-netzwerkteam.de>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: PyHoca-GUI VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-02-22 13:01+0100\n" +"PO-Revision-Date: 2011-02-22 13:01+0100\n" +"Last-Translator: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>\n" +"Language-Team: de <m.gabriel@das-netzwerkteam.de>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../pyhoca/wxgui/logon.py:80 +#, python-format +msgid "%s (via %s)" +msgstr "%s (via %s)" + +#: ../pyhoca/wxgui/logon.py:82 ../pyhoca/wxgui/logon.py:92 +msgid "Username" +msgstr "Benutzername" + +#: ../pyhoca/wxgui/logon.py:84 ../pyhoca/wxgui/logon.py:94 +msgid "Password" +msgstr "Kennwort" + +#: ../pyhoca/wxgui/logon.py:87 +msgid "Authenticate" +msgstr "Anmelden" + +#: ../pyhoca/wxgui/logon.py:97 +msgid " Start SSH tunnel " +msgstr "SSH Tunnel aufbauen" + +#: ../pyhoca/wxgui/logon.py:103 +msgid "Session login" +msgstr "Sitzungslogin" + +#: ../pyhoca/wxgui/logon.py:104 +msgid "SSH proxy server login" +msgstr "Anmeldung an SSH Proxy" + +#: ../pyhoca/wxgui/logon.py:115 ../pyhoca/wxgui/profilemanager.py:258 +msgid "Cancel" +msgstr "Abbrechen" + +#: ../pyhoca/wxgui/logon.py:235 ../pyhoca/wxgui/logon.py:267 +#: ../pyhoca/wxgui/frontend.py:309 +#, python-format +msgid "%s - connect failure" +msgstr "%s - Verbindung fehlgeschlagen" + +#: ../pyhoca/wxgui/logon.py:236 ../pyhoca/wxgui/frontend.py:309 +msgid "User is not allowed to start X2go sessions!" +msgstr "Benutzer darf keine X2go Sitzungen starten!" + +#: ../pyhoca/wxgui/logon.py:241 ../pyhoca/wxgui/frontend.py:313 +#, python-format +msgid "%s - connect" +msgstr "%s - verbinden" + +#: ../pyhoca/wxgui/logon.py:242 +msgid "Authentication has been successful." +msgstr "Anmeldung war erfolgreich." + +#: ../pyhoca/wxgui/logon.py:263 +msgid "SSH tunnel started" +msgstr "SSH Tunnel gestartet" + +#: ../pyhoca/wxgui/logon.py:268 +msgid "Authentication failed!" +msgstr "Anmeldung fehlgeschlagen!" + +#: ../pyhoca/wxgui/logon.py:273 +#, python-format +msgid "%s - ssh proxy" +msgstr "%s - SSH Proxy" + +#: ../pyhoca/wxgui/logon.py:274 +msgid "Authentication to the SSH proxy server failed!" +msgstr "Anmeldung am SSH Proxy Server ist fehlgeschlagen" + +#: ../pyhoca/wxgui/logon.py:280 ../pyhoca/wxgui/logon.py:286 +#: ../pyhoca/wxgui/logon.py:295 ../pyhoca/wxgui/frontend.py:326 +#: ../pyhoca/wxgui/frontend.py:329 ../pyhoca/wxgui/frontend.py:332 +#: ../pyhoca/wxgui/frontend.py:335 +#, python-format +msgid "%s - connect error" +msgstr "%s - Verbindungsfehler" + +#: ../pyhoca/wxgui/logon.py:291 ../pyhoca/wxgui/frontend.py:338 +#, python-format +msgid "%s - key error" +msgstr "%s - ungültiger Schlüssel" + +#: ../pyhoca/wxgui/logon.py:296 +msgid "An unknown error occured during authentication!" +msgstr "Ein unbekannter Fehler ist während der Serveranmeldung aufgetreten!" + +#: ../pyhoca/wxgui/taskbar.py:94 +#, python-format +msgid "" +"PyHoca-GUI\n" +"Connecting you to ,,%s''" +msgstr "" +"PyHoca-GUI\n" +"Verbinde mit ,,%s''" + +#: ../pyhoca/wxgui/taskbar.py:97 +#, python-format +msgid "" +"PyHoca-GUI (Python X2goClient)\n" +"Currently connecting you to remote X2go server ,,%s''" +msgstr "" +"PyHoca-GUI (Python X2goClient)\n" +"Verbindungsaufbau zu X2go server ,,%s'' läuft" + +#: ../pyhoca/wxgui/taskbar.py:102 +msgid "" +"PyHoca-GUI\n" +"Connecting you to X2go..." +msgstr "Verbindlich mit X2go ..." + +#: ../pyhoca/wxgui/taskbar.py:105 +msgid "" +"PyHoca-GUI (Python X2goClient)\n" +"Client for connecting you to a remote X2go server" +msgstr "" +"PyHoca-GUI (Python X2goClient)\n" +"Verbindungen zu entferntem X2go server aufbauen" + +#: ../pyhoca/wxgui/profilemanager.py:61 +msgid "GNOME Desktop (GNOME)" +msgstr "GNOME Desktop (GNOME)" + +#: ../pyhoca/wxgui/profilemanager.py:62 +msgid "K Desktop Environment (KDE)" +msgstr "K Desktop Environment (KDE)" + +#: ../pyhoca/wxgui/profilemanager.py:63 +msgid "Lightweight X Desktop (LXDE)" +msgstr "Lightweight X Desktop (LXDE)" + +#: ../pyhoca/wxgui/profilemanager.py:64 +msgid "XDMCP Query" +msgstr "XDMCP-Serveranfrage (Query)" + +#. 'EMBEDDED_MENU': _(u'Embedded Application Menu'), +#: ../pyhoca/wxgui/profilemanager.py:66 +msgid "Windows Terminal Server (RDP-proxy)" +msgstr "Windows Terminalserver (RDP-proxy)" + +#. 'DirectRDP': 'Windows Terminal Server (RDP-direct)', +#: ../pyhoca/wxgui/profilemanager.py:68 +msgid "Single Application" +msgstr "Einzelne Anwendung" + +#: ../pyhoca/wxgui/profilemanager.py:69 ../pyhoca/wxgui/profilemanager.py:152 +msgid "Custom command" +msgstr "Benutzerdef. Kommando" + +#: ../pyhoca/wxgui/profilemanager.py:72 +msgid "Internet Browser" +msgstr "Internetbrowser" + +#: ../pyhoca/wxgui/profilemanager.py:73 +msgid "Email Client" +msgstr "E-Mail Programm" + +#: ../pyhoca/wxgui/profilemanager.py:74 +msgid "Openoffice.org" +msgstr "Openoffice.org" + +#: ../pyhoca/wxgui/profilemanager.py:75 +msgid "Terminal" +msgstr "Terminalkonsole" + +#: ../pyhoca/wxgui/profilemanager.py:89 +msgid "Open file with system's default application" +msgstr "Mit Standardanwendung des Systems öffnen" + +#: ../pyhoca/wxgui/profilemanager.py:90 +msgid "Open application chooser dialog" +msgstr "Auswahldialog öffnen, um Anwendung auszuwählen" + +#: ../pyhoca/wxgui/profilemanager.py:91 +msgid "Save incoming file as ..." +msgstr "Eingehende Datei speichern unter ..." + +#: ../pyhoca/wxgui/profilemanager.py:123 +msgid "Server" +msgstr "Server" + +#: ../pyhoca/wxgui/profilemanager.py:124 +msgid "Connection Link Speed" +msgstr "Verbindungsgeschwindigkeit" + +#: ../pyhoca/wxgui/profilemanager.py:125 +msgid "Compression" +msgstr "Komprimierung" + +#: ../pyhoca/wxgui/profilemanager.py:126 +msgid "Display" +msgstr "Anzeige" + +#: ../pyhoca/wxgui/profilemanager.py:127 +msgid "Keyboard" +msgstr "Tastatur" + +#: ../pyhoca/wxgui/profilemanager.py:128 +msgid "Sound" +msgstr "Audio" + +#: ../pyhoca/wxgui/profilemanager.py:129 +msgid "Printing" +msgstr "Drucken" + +#: ../pyhoca/wxgui/profilemanager.py:130 +msgid "Folder Exports" +msgstr "Ordnerfreigabe" + +#: ../pyhoca/wxgui/profilemanager.py:131 +msgid "File Import" +msgstr "Dateiimport" + +#. ## +#. ## widgets for the SESSION tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:136 +msgid "Profile name" +msgstr "Profilname" + +#: ../pyhoca/wxgui/profilemanager.py:146 +msgid "Profile icon" +msgstr "Profilsymbol" + +#: ../pyhoca/wxgui/profilemanager.py:148 +msgid "Session type" +msgstr "Sitzungstyp" + +#: ../pyhoca/wxgui/profilemanager.py:150 +msgid "Application" +msgstr "Anwendung" + +#: ../pyhoca/wxgui/profilemanager.py:154 +msgid "RDP settings" +msgstr "RDP Einstellungen" + +#: ../pyhoca/wxgui/profilemanager.py:155 +msgid "RDP server" +msgstr "RDP Server" + +#: ../pyhoca/wxgui/profilemanager.py:157 +msgid "RDP options" +msgstr "RDP Optionen" + +#: ../pyhoca/wxgui/profilemanager.py:159 +msgid "XDMCP server" +msgstr "XDMCP Server" + +#. ## +#. ## widgets for the CONNECTION tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:165 ../pyhoca/wxgui/profilemanager.py:175 +msgid "User" +msgstr "Benutzer" + +#: ../pyhoca/wxgui/profilemanager.py:167 +msgid "Host" +msgstr "Hostname" + +#: ../pyhoca/wxgui/profilemanager.py:169 +msgid "Port" +msgstr "Port" + +#: ../pyhoca/wxgui/profilemanager.py:171 +msgid "RSA/DSA private key" +msgstr "Privater RSA/DSA Schlüssel" + +#: ../pyhoca/wxgui/profilemanager.py:174 +msgid "Server behind SSH proxy" +msgstr "Server hinter SSH-Proxy" + +#: ../pyhoca/wxgui/profilemanager.py:177 +msgid "Key file" +msgstr "Schlüssel" + +#: ../pyhoca/wxgui/profilemanager.py:180 +msgid "Host[:Port]" +msgstr "Hostname[:Port]" + +#: ../pyhoca/wxgui/profilemanager.py:182 +msgid "SSH Proxy Tunnel" +msgstr "SSH-Proxytunnel" + +#: ../pyhoca/wxgui/profilemanager.py:190 +msgid "Modem" +msgstr "Modem" + +#: ../pyhoca/wxgui/profilemanager.py:191 +msgid "ISDN" +msgstr "ISDN" + +#: ../pyhoca/wxgui/profilemanager.py:192 +msgid "ADSL" +msgstr "ADSL" + +#: ../pyhoca/wxgui/profilemanager.py:193 +msgid "WAN" +msgstr "WAN" + +#: ../pyhoca/wxgui/profilemanager.py:194 +msgid "LAN" +msgstr "LAN" + +#: ../pyhoca/wxgui/profilemanager.py:196 +msgid "Method" +msgstr "Methode" + +#: ../pyhoca/wxgui/profilemanager.py:198 +msgid "Image quality" +msgstr "Bildqualität" + +#. ## +#. ## wigdets for the SETTINGS tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:204 +msgid "Fullscreen" +msgstr "Vollbild" + +#: ../pyhoca/wxgui/profilemanager.py:205 +msgid "Custom Size" +msgstr "Benutzerdefinierte Größe" + +#: ../pyhoca/wxgui/profilemanager.py:210 +msgid "Set display DPI" +msgstr "DPI-Wert für Anzeige setzen" + +#: ../pyhoca/wxgui/profilemanager.py:212 +msgid "Keep current keyboard settings" +msgstr "Aktuelle Tastatureinstellungen beibehalten" + +#: ../pyhoca/wxgui/profilemanager.py:213 +msgid "Keyboard layout" +msgstr "Tastaturlayout" + +#: ../pyhoca/wxgui/profilemanager.py:215 +msgid "Keyboard model" +msgstr "Tastaturmodell" + +#: ../pyhoca/wxgui/profilemanager.py:217 +msgid "Enable sound support" +msgstr "Audiounterstützung aktivieren" + +#: ../pyhoca/wxgui/profilemanager.py:218 +msgid "Pulse Audio" +msgstr "Pulse Audio" + +#. Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated. +#. However, config files can contain an Arts configuration, so we will honour this +#: ../pyhoca/wxgui/profilemanager.py:222 +msgid "Arts (not supported)" +msgstr "Arts (nicht unterstützt)" + +#: ../pyhoca/wxgui/profilemanager.py:225 +msgid "esd" +msgstr "esd" + +#: ../pyhoca/wxgui/profilemanager.py:226 +msgid "Use default sound port" +msgstr "Standard Audio-Port verwenden" + +#: ../pyhoca/wxgui/profilemanager.py:227 +msgid "Custom sound port" +msgstr "Benutzerdefinierter Audio-Port" + +#: ../pyhoca/wxgui/profilemanager.py:229 +msgid "Client Side printing" +msgstr "Unterstützung für lokale Druckeranbindung" + +#: ../pyhoca/wxgui/profilemanager.py:231 +msgid "Use local folder sharing" +msgstr "Lokale Ordnerfreigabe verwenden" + +#: ../pyhoca/wxgui/profilemanager.py:232 +msgid "Path" +msgstr "Pfad" + +#: ../pyhoca/wxgui/profilemanager.py:235 ../pyhoca/wxgui/profilemanager.py:252 +msgid "Add" +msgstr "Hinzufügen" + +#: ../pyhoca/wxgui/profilemanager.py:237 +msgid "Delete" +msgstr "Entfernen" + +#: ../pyhoca/wxgui/profilemanager.py:239 +msgid "Convert between client and server encodings" +msgstr "Zeichenkodierung zwischen Server und Client übersetzen" + +#: ../pyhoca/wxgui/profilemanager.py:240 +msgid "Client encoding" +msgstr "Zeichenkodierung Client" + +#: ../pyhoca/wxgui/profilemanager.py:242 +msgid "Server encoding" +msgstr "Server" + +#: ../pyhoca/wxgui/profilemanager.py:245 +msgid "Use file dropbox for local file import" +msgstr "Datei-Dropbox für lokalen Dateiimport verwenden" + +#: ../pyhoca/wxgui/profilemanager.py:246 +msgid "Extensions" +msgstr "Erweiterungen" + +#: ../pyhoca/wxgui/profilemanager.py:248 +msgid "Action" +msgstr "Aktion" + +#: ../pyhoca/wxgui/profilemanager.py:253 +msgid "Defaults" +msgstr "Standardwerte" + +#: ../pyhoca/wxgui/profilemanager.py:255 +msgid "Save" +msgstr "Speichern" + +#: ../pyhoca/wxgui/profilemanager.py:256 +msgid "Reset" +msgstr "Zurücksetzen" + +#: ../pyhoca/wxgui/profilemanager.py:293 +msgid "PyHoca-GUI Profile Manager - new profile" +msgstr "PyHoca-GUI Profilmanager - neues Sitzungsprofil" + +#: ../pyhoca/wxgui/profilemanager.py:295 +#, python-format +msgid "PyHoca-GUI Profile Manager - %s (connected)" +msgstr "PyHoca-GUI Profilmanager - %s (verbunden)" + +#: ../pyhoca/wxgui/profilemanager.py:297 +#, python-format +msgid "PyHoca-GUI Profile Manager - %s" +msgstr "PyHoca-GUI Profilmanager - %s" + +#: ../pyhoca/wxgui/profilemanager.py:613 +msgid "Session Profile" +msgstr "Sitzungsprofil" + +#: ../pyhoca/wxgui/profilemanager.py:614 +msgid "Connection" +msgstr "Verbindung" + +#: ../pyhoca/wxgui/profilemanager.py:615 +msgid "Settings" +msgstr "Einstellungen" + +#: ../pyhoca/wxgui/profilemanager.py:616 +msgid "Sharing" +msgstr "Ordnerfreigabe" + +#: ../pyhoca/wxgui/profilemanager.py:980 +msgid "Icon Files (*.png)|*.png|All files (*.*)|*" +msgstr "Icon Dateien (*.png)|*.png|Alle Dateien (*.*)|*" + +#: ../pyhoca/wxgui/profilemanager.py:983 +msgid "Choose an icon for this session profile" +msgstr "Sitzungs-Icon für dieses Sitzungsprofil auswählen" + +#: ../pyhoca/wxgui/profilemanager.py:1091 +msgid "All files (*.*)|*" +msgstr "Alle Dateien (*.*)|*" + +#: ../pyhoca/wxgui/profilemanager.py:1093 +#: ../pyhoca/wxgui/profilemanager.py:1108 +msgid "Choose a public SSH key" +msgstr "Öffentlichen SSH-Schlüssel auswählen" + +#: ../pyhoca/wxgui/profilemanager.py:1242 +msgid "Choose a folder to share within a session" +msgstr "Ordner zur Freigabe für Sitzungen auswählen" + +#: ../pyhoca/wxgui/profilemanager.py:1307 ../pyhoca/wxgui/menus_taskbar.py:86 +msgid "Profile Manager" +msgstr "Profilmanager" + +#: ../pyhoca/wxgui/profilemanager.py:1307 +msgid "Profile name is missing, profile unusable!!!" +msgstr "Der Profilname fehlt, Profil so nicht verwendbar!!!" + +#: ../pyhoca/wxgui/profilemanager.py:1329 +#, python-format +msgid "%s - profile added" +msgstr "%s - Profil hinzugefügt" + +#: ../pyhoca/wxgui/profilemanager.py:1330 +msgid "A new session profile has been added." +msgstr "Ein neues Sitzungsprofil wurde hinzugefügt." + +#: ../pyhoca/wxgui/profilemanager.py:1334 +#, python-format +msgid "%s - modified" +msgstr "%s - modifiziert" + +#: ../pyhoca/wxgui/profilemanager.py:1335 +msgid "Changes to profile have been saved." +msgstr "Änderungen am Profil wurden übernommen." + +#: ../pyhoca/wxgui/menus_taskbar.py:55 +msgid "Edit Profile" +msgstr "Sitzungsprofil bearbeiten" + +#: ../pyhoca/wxgui/menus_taskbar.py:57 +msgid "Delete Profile" +msgstr "Sitzungsprofil löschen" + +#: ../pyhoca/wxgui/menus_taskbar.py:79 ../pyhoca/wxgui/about.py:55 +#: ../pyhoca/wxgui/about.py:57 +#, python-format +msgid "About %s ..." +msgstr "Über %s ..." + +#: ../pyhoca/wxgui/menus_taskbar.py:97 +msgid "Client Options" +msgstr "Optionen" + +#: ../pyhoca/wxgui/menus_taskbar.py:105 ../pyhoca/wxgui/menus_taskbar.py:328 +msgid "E&xit" +msgstr "&Beenden" + +#: ../pyhoca/wxgui/menus_taskbar.py:142 +msgid "Resume Session" +msgstr "Sitzung fortsetzen" + +#: ../pyhoca/wxgui/menus_taskbar.py:145 +msgid "Transfer Session" +msgstr "Sitzung übernehmen" + +#: ../pyhoca/wxgui/menus_taskbar.py:146 +msgid "Suspend Session" +msgstr "Sitzung anhalten" + +#: ../pyhoca/wxgui/menus_taskbar.py:148 +msgid "Terminate Session" +msgstr "Sitzung beenden" + +#: ../pyhoca/wxgui/menus_taskbar.py:186 +msgid "Start &new Session" +msgstr "&Neue Sitzung starten" + +#: ../pyhoca/wxgui/menus_taskbar.py:199 +msgid "Running" +msgstr "aktiv" + +#: ../pyhoca/wxgui/menus_taskbar.py:201 +msgid "Suspended" +msgstr "angehalten" + +#: ../pyhoca/wxgui/menus_taskbar.py:211 +msgid "&Clean all sessions" +msgstr "Alle Sitzungen beenden" + +#: ../pyhoca/wxgui/menus_taskbar.py:213 +msgid "Customize &profile" +msgstr "Sitzungsprofil anpassen" + +#: ../pyhoca/wxgui/menus_taskbar.py:215 +msgid "Share local &folder" +msgstr "Lokalen Ordner verbinden" + +#: ../pyhoca/wxgui/menus_taskbar.py:220 +msgid "&Disconnect from Server" +msgstr "Von Server trennen" + +#: ../pyhoca/wxgui/menus_taskbar.py:248 +msgid "Add Profile" +msgstr "Sitzungsprofil hinzufügen" + +#: ../pyhoca/wxgui/menus_taskbar.py:274 +msgid "No session profiles defined" +msgstr "keine Sitzungsprofile definiert" + +#: ../pyhoca/wxgui/menus_taskbar.py:305 +msgid "Start/Resume Session" +msgstr "Sitzung starten/fortsetzen" + +#: ../pyhoca/wxgui/menus_taskbar.py:305 +msgid "Connect Server" +msgstr "Serververbindung aufbauen" + +#: ../pyhoca/wxgui/frontend.py:313 +msgid "Public SSH key authentication has been successful." +msgstr "Authentifizierung mit öffentlichem SSH Schlüssel war erfolgreich." + +#: ../pyhoca/wxgui/frontend.py:335 +msgid "Authentication protocol communication incomplete! Try again..." +msgstr "" +"Kommunikation während Authentifizierungsprotokoll unvollständig! Nochmal " +"versuchen..." + +#: ../pyhoca/wxgui/frontend.py:414 +msgid "Cleaning X2go sessions..." +msgstr "Beende X2go Sitzungen..." + +#: ../pyhoca/wxgui/frontend.py:434 +#, python-format +msgid "%s - disconnect" +msgstr "%s - trennen" + +#: ../pyhoca/wxgui/frontend.py:434 +msgid "X2go Profile is now disconnected." +msgstr "X2go Profil ist nun nicht mehr verbunden." + +#: ../pyhoca/wxgui/frontend.py:442 +msgid "New Session Profile" +msgstr "Neues Sitzungsprofil" + +#: ../pyhoca/wxgui/frontend.py:471 +#, python-format +msgid "%s - profile deleted" +msgstr "%s - Profil gelöscht" + +#: ../pyhoca/wxgui/frontend.py:471 +msgid "The session profile has been deleted." +msgstr "Das Sitzungsprofil wurde gelöscht." + +#: ../pyhoca/wxgui/frontend.py:486 +#, python-format +msgid "%s - share local folder with sessions of this profile" +msgstr "%s - lokalen Ordner für dieses Sitzungsprofile freigeben" + +#: ../pyhoca/wxgui/frontend.py:528 +#, python-format +msgid "%s - channel error" +msgstr "%s - Verbindungsfehler" + +#: ../pyhoca/wxgui/frontend.py:528 +#, python-format +msgid "" +"Lost connection to server %s unexpectedly! Try to re-authenticate to the " +"server..." +msgstr "" +"Die Verbindung zum Server %s wurde unerwartet unterbrochen! Bitte versuchen " +"Sie, sich neu am Server anzumelden..." + +#: ../pyhoca/wxgui/frontend.py:531 ../pyhoca/wxgui/frontend.py:535 +#, python-format +msgid "%s - session failure" +msgstr "%s - Verbindung fehlgeschlagen" + +#: ../pyhoca/wxgui/frontend.py:531 +#, python-format +msgid "" +"The command ,,%s'' is not available on X2go server\n" +"%s)." +msgstr "" +"Der Befehl ,,%s'' ist auf dem X2go Server nicht verfügbar\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:533 +#, python-format +msgid "%s - session warning" +msgstr "%s - Sitzungsfunktion eingeschränkt" + +#: ../pyhoca/wxgui/frontend.py:533 +#, python-format +msgid "" +"Reverse TCP port forwarding request for session %s to server port %s has " +"been denied by the X2go server. This is a common issue with SSH, it might " +"help to restart the X2go server's SSH daemon." +msgstr "" +"Eine Reverse TCP Port Weiterleitungsanfrage für Sitzung %s an Serverport %s " +"wurde vom X2go Server abgelehnt. Leider kann dieses Problem aufgrund der SSH " +"Implementation häufiger vorkommen. Falls administrativ die Möglichkeit " +"besteht, wird es helfen, den SSH-Server Prozess auf dem X2go Server neu zu " +"starten." + +#: ../pyhoca/wxgui/frontend.py:535 +#, python-format +msgid "" +"Forwarding tunnel request to [%s]:%s for session %s was denied by remote " +"X2go/SSH server. Session startup failed." +msgstr "" +"SSH Forwarding Tunnel zu [%s]:%s wurde für Sitzung %s vom X2go/SSH Server " +"verweigert. Die Sitzung konnte nicht gestartet werden." + +#: ../pyhoca/wxgui/frontend.py:537 +#, python-format +msgid "%s - audio warning" +msgstr "%s - Warnung Audiosystem" + +#: ../pyhoca/wxgui/frontend.py:537 +msgid "" +"The X2go PulseAudio system is not available within Remote Desktop sessions." +msgstr "" +"Das X2go PulseAudio System ist innerhalb von Remote Desktop Sitzungen nicht " +"verfügbar." + +#: ../pyhoca/wxgui/frontend.py:539 ../pyhoca/wxgui/frontend.py:541 +#, python-format +msgid "%s - audio error" +msgstr "%s - Audiofehler" + +#: ../pyhoca/wxgui/frontend.py:539 +msgid "The X2go PulseAudio system could not be started." +msgstr "Das X2go PulseAudio System konnte nicht gestartet werden." + +#: ../pyhoca/wxgui/frontend.py:541 +msgid "The X2go PulseAudio system has died unexpectedly." +msgstr "Das X2go PulseAudio System ist soeben abgestürzt." + +#: ../pyhoca/wxgui/frontend.py:543 +#, python-format +msgid "%s - audio problem" +msgstr "%s - Audioproblem" + +#: ../pyhoca/wxgui/frontend.py:543 +#, python-format +msgid "" +"The audio connection could not be set up for this session.\n" +"%s" +msgstr "" +"Die Audio-Verbindung für diese Sitzung konnte nicht aufgebaut werden.\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:547 +#, python-format +msgid "%s - print job" +msgstr "%s - Druckauftrag" + +#: ../pyhoca/wxgui/frontend.py:547 +#, python-format +msgid "" +"Opening print job dialog not implemented yet!!!\n" +"%s" +msgstr "" +"Druckdialog für eingehende Druckaufträge ist bislang nicht implementiert!!!\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:568 +#, python-format +msgid "%s - print error" +msgstr "%s - Druckfehler" + +#: ../pyhoca/wxgui/frontend.py:568 +#, python-format +msgid "" +"%s\n" +"...caused by session\n" +"%s" +msgstr "" +"%s\n" +"...verursacht von Sitzung\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:570 ../pyhoca/wxgui/frontend.py:572 +#, python-format +msgid "%s - start" +msgstr "%s - starten" + +#: ../pyhoca/wxgui/frontend.py:570 +#, python-format +msgid "" +"New X2go session starting up...\n" +"%s" +msgstr "" +"Neue X2go Sitzung wird gestartet...\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:572 +#, python-format +msgid "" +"Another client started X2go session\n" +"%s" +msgstr "" +"Ein anderes X2go Programm hat diese Sitzung gestartet\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:574 ../pyhoca/wxgui/frontend.py:576 +#, python-format +msgid "%s - resume" +msgstr "%s - fortsetzen" + +#: ../pyhoca/wxgui/frontend.py:574 +#, python-format +msgid "" +"Resuming X2go session...\n" +"%s" +msgstr "" +"X2go Sitzung wird fortgesetzt...\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:576 +#, python-format +msgid "" +"Another client resumed X2go session\n" +"%s" +msgstr "" +"Eine andere X2go Anwendung hat die Sitzung fortgesetzt\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:578 +#, python-format +msgid "%s - running" +msgstr "%s - aktiv" + +#: ../pyhoca/wxgui/frontend.py:578 +#, python-format +msgid "" +"Found already running session\n" +"%s" +msgstr "" +"Bereits aktive Sitzung gefunden\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:580 +#, python-format +msgid "%s - suspend" +msgstr "%s - anhalten" + +#: ../pyhoca/wxgui/frontend.py:580 +#, python-format +msgid "" +"X2go Session has been suspended\n" +"%s" +msgstr "" +"X2go Sitzung wurde angehalten\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:588 +#, python-format +msgid "%s - terminate" +msgstr "%s - beenden" + +#: ../pyhoca/wxgui/frontend.py:588 +#, python-format +msgid "" +"X2go Session has terminated\n" +"%s" +msgstr "" +"X2go Sitzung wurde beendet\n" +"%s" + +#~ msgid "Arts" +#~ msgstr "Arts" diff --git a/po/en.po b/po/en.po new file mode 100644 index 0000000..e998472 --- /dev/null +++ b/po/en.po @@ -0,0 +1,852 @@ +# PyHoca-GUI / i18n. +# Copyright (C) 2010-2011 Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# Dick Kniep <dick.kniep@lindix.nl> +# This file is distributed under the same license as the PyHoca-GUI package. +# Mike Gabriel <m.gabriel@das-netzwerkteam.de>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: PyHoca-GUI VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-02-22 13:01+0100\n" +"PO-Revision-Date: 2011-02-22 13:00+0100\n" +"Last-Translator: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>\n" +"Language-Team: en <m.gabriel@das-netzwerkteam.de>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: English\n" +"X-Poedit-Country: UNITED STATES\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../pyhoca/wxgui/logon.py:80 +#, python-format +msgid "%s (via %s)" +msgstr "%s (via %s)" + +#: ../pyhoca/wxgui/logon.py:82 ../pyhoca/wxgui/logon.py:92 +msgid "Username" +msgstr "Username" + +#: ../pyhoca/wxgui/logon.py:84 ../pyhoca/wxgui/logon.py:94 +msgid "Password" +msgstr "Password" + +#: ../pyhoca/wxgui/logon.py:87 +msgid "Authenticate" +msgstr "Authenticate" + +#: ../pyhoca/wxgui/logon.py:97 +msgid " Start SSH tunnel " +msgstr " Start SSH tunnel " + +#: ../pyhoca/wxgui/logon.py:103 +msgid "Session login" +msgstr "Session login" + +#: ../pyhoca/wxgui/logon.py:104 +msgid "SSH proxy server login" +msgstr "SSH proxy server login" + +#: ../pyhoca/wxgui/logon.py:115 ../pyhoca/wxgui/profilemanager.py:258 +msgid "Cancel" +msgstr "Cancel" + +#: ../pyhoca/wxgui/logon.py:235 ../pyhoca/wxgui/logon.py:267 +#: ../pyhoca/wxgui/frontend.py:309 +#, python-format +msgid "%s - connect failure" +msgstr "%s - connect failure" + +#: ../pyhoca/wxgui/logon.py:236 ../pyhoca/wxgui/frontend.py:309 +msgid "User is not allowed to start X2go sessions!" +msgstr "User is not allowed to start X2go sessions!" + +#: ../pyhoca/wxgui/logon.py:241 ../pyhoca/wxgui/frontend.py:313 +#, python-format +msgid "%s - connect" +msgstr "%s - connect" + +#: ../pyhoca/wxgui/logon.py:242 +msgid "Authentication has been successful." +msgstr "Authentication has been successful." + +#: ../pyhoca/wxgui/logon.py:263 +msgid "SSH tunnel started" +msgstr "SSH tunnel started" + +#: ../pyhoca/wxgui/logon.py:268 +msgid "Authentication failed!" +msgstr "Authentication failed!" + +#: ../pyhoca/wxgui/logon.py:273 +#, python-format +msgid "%s - ssh proxy" +msgstr "%s - ssh proxy" + +#: ../pyhoca/wxgui/logon.py:274 +msgid "Authentication to the SSH proxy server failed!" +msgstr "Authentication to the SSH proxy server failed!" + +#: ../pyhoca/wxgui/logon.py:280 ../pyhoca/wxgui/logon.py:286 +#: ../pyhoca/wxgui/logon.py:295 ../pyhoca/wxgui/frontend.py:326 +#: ../pyhoca/wxgui/frontend.py:329 ../pyhoca/wxgui/frontend.py:332 +#: ../pyhoca/wxgui/frontend.py:335 +#, python-format +msgid "%s - connect error" +msgstr "%s - connect error" + +#: ../pyhoca/wxgui/logon.py:291 ../pyhoca/wxgui/frontend.py:338 +#, python-format +msgid "%s - key error" +msgstr "%s - key error" + +#: ../pyhoca/wxgui/logon.py:296 +msgid "An unknown error occured during authentication!" +msgstr "An unknown error occured during authentication!" + +#: ../pyhoca/wxgui/taskbar.py:94 +#, python-format +msgid "" +"PyHoca-GUI\n" +"Connecting you to ,,%s''" +msgstr "" +"PyHoca-GUI\n" +"Connecting you to ,,%s''" + +#: ../pyhoca/wxgui/taskbar.py:97 +#, python-format +msgid "" +"PyHoca-GUI (Python X2goClient)\n" +"Currently connecting you to remote X2go server ,,%s''" +msgstr "" +"PyHoca-GUI (Python X2goClient)\n" +"Currently connecting you to remote X2go server ,,%s''" + +#: ../pyhoca/wxgui/taskbar.py:102 +msgid "" +"PyHoca-GUI\n" +"Connecting you to X2go..." +msgstr "" +"PyHoca-GUI\n" +"Connecting you to X2go..." + +#: ../pyhoca/wxgui/taskbar.py:105 +msgid "" +"PyHoca-GUI (Python X2goClient)\n" +"Client for connecting you to a remote X2go server" +msgstr "" +"PyHoca-GUI (Python X2goClient)\n" +"Client for connecting you to a remote X2go server" + +#: ../pyhoca/wxgui/profilemanager.py:61 +msgid "GNOME Desktop (GNOME)" +msgstr "GNOME Desktop (GNOME)" + +#: ../pyhoca/wxgui/profilemanager.py:62 +msgid "K Desktop Environment (KDE)" +msgstr "K Desktop Environment (KDE)" + +#: ../pyhoca/wxgui/profilemanager.py:63 +msgid "Lightweight X Desktop (LXDE)" +msgstr "Lightweight X Desktop (LXDE)" + +#: ../pyhoca/wxgui/profilemanager.py:64 +msgid "XDMCP Query" +msgstr "XDMCP Query" + +#. 'EMBEDDED_MENU': _(u'Embedded Application Menu'), +#: ../pyhoca/wxgui/profilemanager.py:66 +msgid "Windows Terminal Server (RDP-proxy)" +msgstr "Windows Terminal Server (RDP-proxy)" + +#. 'DirectRDP': 'Windows Terminal Server (RDP-direct)', +#: ../pyhoca/wxgui/profilemanager.py:68 +msgid "Single Application" +msgstr "Single Application" + +#: ../pyhoca/wxgui/profilemanager.py:69 ../pyhoca/wxgui/profilemanager.py:152 +msgid "Custom command" +msgstr "Custom command" + +#: ../pyhoca/wxgui/profilemanager.py:72 +msgid "Internet Browser" +msgstr "Internet Browser" + +#: ../pyhoca/wxgui/profilemanager.py:73 +msgid "Email Client" +msgstr "Email Client" + +#: ../pyhoca/wxgui/profilemanager.py:74 +msgid "Openoffice.org" +msgstr "Openoffice.org" + +#: ../pyhoca/wxgui/profilemanager.py:75 +msgid "Terminal" +msgstr "Terminal" + +#: ../pyhoca/wxgui/profilemanager.py:89 +msgid "Open file with system's default application" +msgstr "Open file with system's default application" + +#: ../pyhoca/wxgui/profilemanager.py:90 +msgid "Open application chooser dialog" +msgstr "Open application chooser dialog" + +#: ../pyhoca/wxgui/profilemanager.py:91 +msgid "Save incoming file as ..." +msgstr "Save incoming file as ..." + +#: ../pyhoca/wxgui/profilemanager.py:123 +msgid "Server" +msgstr "Server" + +#: ../pyhoca/wxgui/profilemanager.py:124 +msgid "Connection Link Speed" +msgstr "Connection Link Speed" + +#: ../pyhoca/wxgui/profilemanager.py:125 +msgid "Compression" +msgstr "Compression" + +#: ../pyhoca/wxgui/profilemanager.py:126 +msgid "Display" +msgstr "Display" + +#: ../pyhoca/wxgui/profilemanager.py:127 +msgid "Keyboard" +msgstr "Keyboard" + +#: ../pyhoca/wxgui/profilemanager.py:128 +msgid "Sound" +msgstr "Sound" + +#: ../pyhoca/wxgui/profilemanager.py:129 +msgid "Printing" +msgstr "Printing" + +#: ../pyhoca/wxgui/profilemanager.py:130 +msgid "Folder Exports" +msgstr "Folder Exports" + +#: ../pyhoca/wxgui/profilemanager.py:131 +msgid "File Import" +msgstr "File Import" + +#. ## +#. ## widgets for the SESSION tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:136 +msgid "Profile name" +msgstr "Profile name" + +#: ../pyhoca/wxgui/profilemanager.py:146 +msgid "Profile icon" +msgstr "Profile icon" + +#: ../pyhoca/wxgui/profilemanager.py:148 +msgid "Session type" +msgstr "Session type" + +#: ../pyhoca/wxgui/profilemanager.py:150 +msgid "Application" +msgstr "Application" + +#: ../pyhoca/wxgui/profilemanager.py:154 +msgid "RDP settings" +msgstr "RDP settings" + +#: ../pyhoca/wxgui/profilemanager.py:155 +msgid "RDP server" +msgstr "RDP server" + +#: ../pyhoca/wxgui/profilemanager.py:157 +msgid "RDP options" +msgstr "RDP options" + +#: ../pyhoca/wxgui/profilemanager.py:159 +msgid "XDMCP server" +msgstr "XDMCP server" + +#. ## +#. ## widgets for the CONNECTION tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:165 ../pyhoca/wxgui/profilemanager.py:175 +msgid "User" +msgstr "User" + +#: ../pyhoca/wxgui/profilemanager.py:167 +msgid "Host" +msgstr "Host" + +#: ../pyhoca/wxgui/profilemanager.py:169 +msgid "Port" +msgstr "Port" + +#: ../pyhoca/wxgui/profilemanager.py:171 +msgid "RSA/DSA private key" +msgstr "RSA/DSA private key" + +#: ../pyhoca/wxgui/profilemanager.py:174 +msgid "Server behind SSH proxy" +msgstr "Server behind SSH proxy" + +#: ../pyhoca/wxgui/profilemanager.py:177 +msgid "Key file" +msgstr "Key file" + +#: ../pyhoca/wxgui/profilemanager.py:180 +msgid "Host[:Port]" +msgstr "Host[:Port]" + +#: ../pyhoca/wxgui/profilemanager.py:182 +msgid "SSH Proxy Tunnel" +msgstr "SSH Proxy Tunnel" + +#: ../pyhoca/wxgui/profilemanager.py:190 +msgid "Modem" +msgstr "Modem" + +#: ../pyhoca/wxgui/profilemanager.py:191 +msgid "ISDN" +msgstr "ISDN" + +#: ../pyhoca/wxgui/profilemanager.py:192 +msgid "ADSL" +msgstr "ADSL" + +#: ../pyhoca/wxgui/profilemanager.py:193 +msgid "WAN" +msgstr "WAN" + +#: ../pyhoca/wxgui/profilemanager.py:194 +msgid "LAN" +msgstr "LAN" + +#: ../pyhoca/wxgui/profilemanager.py:196 +msgid "Method" +msgstr "Method" + +#: ../pyhoca/wxgui/profilemanager.py:198 +msgid "Image quality" +msgstr "Image quality" + +#. ## +#. ## wigdets for the SETTINGS tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:204 +msgid "Fullscreen" +msgstr "Fullscreen" + +#: ../pyhoca/wxgui/profilemanager.py:205 +msgid "Custom Size" +msgstr "Custom Size" + +#: ../pyhoca/wxgui/profilemanager.py:210 +msgid "Set display DPI" +msgstr "Set display DPI" + +#: ../pyhoca/wxgui/profilemanager.py:212 +msgid "Keep current keyboard settings" +msgstr "Keep current keyboard settings" + +#: ../pyhoca/wxgui/profilemanager.py:213 +msgid "Keyboard layout" +msgstr "Keyboard layout" + +#: ../pyhoca/wxgui/profilemanager.py:215 +msgid "Keyboard model" +msgstr "Keyboard model" + +#: ../pyhoca/wxgui/profilemanager.py:217 +msgid "Enable sound support" +msgstr "Enable sound support" + +#: ../pyhoca/wxgui/profilemanager.py:218 +msgid "Pulse Audio" +msgstr "Pulse Audio" + +#. Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated. +#. However, config files can contain an Arts configuration, so we will honour this +#: ../pyhoca/wxgui/profilemanager.py:222 +msgid "Arts (not supported)" +msgstr "Arts (not supported)" + +#: ../pyhoca/wxgui/profilemanager.py:225 +msgid "esd" +msgstr "esd" + +#: ../pyhoca/wxgui/profilemanager.py:226 +msgid "Use default sound port" +msgstr "Use default sound port" + +#: ../pyhoca/wxgui/profilemanager.py:227 +msgid "Custom sound port" +msgstr "Custom sound port" + +#: ../pyhoca/wxgui/profilemanager.py:229 +msgid "Client Side printing" +msgstr "Client Side printing" + +#: ../pyhoca/wxgui/profilemanager.py:231 +msgid "Use local folder sharing" +msgstr "Use local folder sharing" + +#: ../pyhoca/wxgui/profilemanager.py:232 +msgid "Path" +msgstr "Path" + +#: ../pyhoca/wxgui/profilemanager.py:235 ../pyhoca/wxgui/profilemanager.py:252 +msgid "Add" +msgstr "Add" + +#: ../pyhoca/wxgui/profilemanager.py:237 +msgid "Delete" +msgstr "Delete" + +#: ../pyhoca/wxgui/profilemanager.py:239 +msgid "Convert between client and server encodings" +msgstr "Convert between client and server encodings" + +#: ../pyhoca/wxgui/profilemanager.py:240 +msgid "Client encoding" +msgstr "Client encoding" + +#: ../pyhoca/wxgui/profilemanager.py:242 +msgid "Server encoding" +msgstr "Server encoding" + +#: ../pyhoca/wxgui/profilemanager.py:245 +msgid "Use file dropbox for local file import" +msgstr "Use file dropbox for local file import" + +#: ../pyhoca/wxgui/profilemanager.py:246 +msgid "Extensions" +msgstr "Extensions" + +#: ../pyhoca/wxgui/profilemanager.py:248 +msgid "Action" +msgstr "Action" + +#: ../pyhoca/wxgui/profilemanager.py:253 +msgid "Defaults" +msgstr "Defaults" + +#: ../pyhoca/wxgui/profilemanager.py:255 +msgid "Save" +msgstr "Save" + +#: ../pyhoca/wxgui/profilemanager.py:256 +msgid "Reset" +msgstr "Reset" + +#: ../pyhoca/wxgui/profilemanager.py:293 +msgid "PyHoca-GUI Profile Manager - new profile" +msgstr "PyHoca-GUI Profile Manager - new profile" + +#: ../pyhoca/wxgui/profilemanager.py:295 +#, python-format +msgid "PyHoca-GUI Profile Manager - %s (connected)" +msgstr "PyHoca-GUI Profile Manager - %s (connected)" + +#: ../pyhoca/wxgui/profilemanager.py:297 +#, python-format +msgid "PyHoca-GUI Profile Manager - %s" +msgstr "PyHoca-GUI Profile Manager - %s" + +#: ../pyhoca/wxgui/profilemanager.py:613 +msgid "Session Profile" +msgstr "Session Profile" + +#: ../pyhoca/wxgui/profilemanager.py:614 +msgid "Connection" +msgstr "Connection" + +#: ../pyhoca/wxgui/profilemanager.py:615 +msgid "Settings" +msgstr "Settings" + +#: ../pyhoca/wxgui/profilemanager.py:616 +msgid "Sharing" +msgstr "Sharing" + +#: ../pyhoca/wxgui/profilemanager.py:980 +msgid "Icon Files (*.png)|*.png|All files (*.*)|*" +msgstr "Icon Files (*.png)|*.png|All files (*.*)|*" + +#: ../pyhoca/wxgui/profilemanager.py:983 +msgid "Choose an icon for this session profile" +msgstr "Choose an icon for this session profile" + +#: ../pyhoca/wxgui/profilemanager.py:1091 +msgid "All files (*.*)|*" +msgstr "All files (*.*)|*" + +#: ../pyhoca/wxgui/profilemanager.py:1093 +#: ../pyhoca/wxgui/profilemanager.py:1108 +msgid "Choose a public SSH key" +msgstr "Choose a public SSH key" + +#: ../pyhoca/wxgui/profilemanager.py:1242 +msgid "Choose a folder to share within a session" +msgstr "Choose a folder to share within a session" + +#: ../pyhoca/wxgui/profilemanager.py:1307 ../pyhoca/wxgui/menus_taskbar.py:86 +msgid "Profile Manager" +msgstr "Profile Manager" + +#: ../pyhoca/wxgui/profilemanager.py:1307 +msgid "Profile name is missing, profile unusable!!!" +msgstr "Profile name is missing, profile unusable!!!" + +#: ../pyhoca/wxgui/profilemanager.py:1329 +#, python-format +msgid "%s - profile added" +msgstr "%s - profile added" + +#: ../pyhoca/wxgui/profilemanager.py:1330 +msgid "A new session profile has been added." +msgstr "A new session profile has been added." + +#: ../pyhoca/wxgui/profilemanager.py:1334 +#, python-format +msgid "%s - modified" +msgstr "%s - modified" + +#: ../pyhoca/wxgui/profilemanager.py:1335 +msgid "Changes to profile have been saved." +msgstr "Changes to profile have been saved." + +#: ../pyhoca/wxgui/menus_taskbar.py:55 +msgid "Edit Profile" +msgstr "Edit Profile" + +#: ../pyhoca/wxgui/menus_taskbar.py:57 +msgid "Delete Profile" +msgstr "Delete Profile" + +#: ../pyhoca/wxgui/menus_taskbar.py:79 ../pyhoca/wxgui/about.py:55 +#: ../pyhoca/wxgui/about.py:57 +#, python-format +msgid "About %s ..." +msgstr "About %s ..." + +#: ../pyhoca/wxgui/menus_taskbar.py:97 +msgid "Client Options" +msgstr "Client Options" + +#: ../pyhoca/wxgui/menus_taskbar.py:105 ../pyhoca/wxgui/menus_taskbar.py:328 +msgid "E&xit" +msgstr "E&xit" + +#: ../pyhoca/wxgui/menus_taskbar.py:142 +msgid "Resume Session" +msgstr "Resume Session" + +#: ../pyhoca/wxgui/menus_taskbar.py:145 +msgid "Transfer Session" +msgstr "Transfer Session" + +#: ../pyhoca/wxgui/menus_taskbar.py:146 +msgid "Suspend Session" +msgstr "Suspend Session" + +#: ../pyhoca/wxgui/menus_taskbar.py:148 +msgid "Terminate Session" +msgstr "Terminate Session" + +#: ../pyhoca/wxgui/menus_taskbar.py:186 +msgid "Start &new Session" +msgstr "Start &new Session" + +#: ../pyhoca/wxgui/menus_taskbar.py:199 +msgid "Running" +msgstr "Running" + +#: ../pyhoca/wxgui/menus_taskbar.py:201 +msgid "Suspended" +msgstr "Suspended" + +#: ../pyhoca/wxgui/menus_taskbar.py:211 +msgid "&Clean all sessions" +msgstr "&Clean all sessions" + +#: ../pyhoca/wxgui/menus_taskbar.py:213 +msgid "Customize &profile" +msgstr "Customize &profile" + +#: ../pyhoca/wxgui/menus_taskbar.py:215 +msgid "Share local &folder" +msgstr "Share local &folder" + +#: ../pyhoca/wxgui/menus_taskbar.py:220 +msgid "&Disconnect from Server" +msgstr "&Disconnect from Server" + +#: ../pyhoca/wxgui/menus_taskbar.py:248 +msgid "Add Profile" +msgstr "Add Profile" + +#: ../pyhoca/wxgui/menus_taskbar.py:274 +msgid "No session profiles defined" +msgstr "No session profiles defined" + +#: ../pyhoca/wxgui/menus_taskbar.py:305 +msgid "Start/Resume Session" +msgstr "Start/Resume Session" + +#: ../pyhoca/wxgui/menus_taskbar.py:305 +msgid "Connect Server" +msgstr "Connect Server" + +#: ../pyhoca/wxgui/frontend.py:313 +msgid "Public SSH key authentication has been successful." +msgstr "Public SSH key authentication has been successful." + +#: ../pyhoca/wxgui/frontend.py:335 +msgid "Authentication protocol communication incomplete! Try again..." +msgstr "Authentication protocol communication incomplete! Try again..." + +#: ../pyhoca/wxgui/frontend.py:414 +msgid "Cleaning X2go sessions..." +msgstr "Cleaning X2go sessions..." + +#: ../pyhoca/wxgui/frontend.py:434 +#, python-format +msgid "%s - disconnect" +msgstr "%s - disconnect" + +#: ../pyhoca/wxgui/frontend.py:434 +msgid "X2go Profile is now disconnected." +msgstr "X2go Profile is now disconnected." + +#: ../pyhoca/wxgui/frontend.py:442 +msgid "New Session Profile" +msgstr "New Session Profile" + +#: ../pyhoca/wxgui/frontend.py:471 +#, python-format +msgid "%s - profile deleted" +msgstr "%s - profile deleted" + +#: ../pyhoca/wxgui/frontend.py:471 +msgid "The session profile has been deleted." +msgstr "The session profile has been deleted." + +#: ../pyhoca/wxgui/frontend.py:486 +#, python-format +msgid "%s - share local folder with sessions of this profile" +msgstr "%s - share local folder with sessions of this profile" + +#: ../pyhoca/wxgui/frontend.py:528 +#, python-format +msgid "%s - channel error" +msgstr "%s - channel error" + +#: ../pyhoca/wxgui/frontend.py:528 +#, python-format +msgid "" +"Lost connection to server %s unexpectedly! Try to re-authenticate to the " +"server..." +msgstr "" +"Lost connection to server %s unexpectedly! Try to re-authenticate to the " +"server..." + +#: ../pyhoca/wxgui/frontend.py:531 ../pyhoca/wxgui/frontend.py:535 +#, python-format +msgid "%s - session failure" +msgstr "%s - session failure" + +#: ../pyhoca/wxgui/frontend.py:531 +#, python-format +msgid "" +"The command ,,%s'' is not available on X2go server\n" +"%s)." +msgstr "" +"The command ,,%s'' is not available on X2go server\n" +"%s)." + +#: ../pyhoca/wxgui/frontend.py:533 +#, python-format +msgid "%s - session warning" +msgstr "%s - session warning" + +#: ../pyhoca/wxgui/frontend.py:533 +#, python-format +msgid "" +"Reverse TCP port forwarding request for session %s to server port %s has " +"been denied by the X2go server. This is a common issue with SSH, it might " +"help to restart the X2go server's SSH daemon." +msgstr "" +"Reverse TCP port forwarding request for session %s to server port %s has " +"been denied by the X2go server. This is a common issue with SSH, it might " +"help to restart the X2go server's SSH daemon." + +#: ../pyhoca/wxgui/frontend.py:535 +#, python-format +msgid "" +"Forwarding tunnel request to [%s]:%s for session %s was denied by remote " +"X2go/SSH server. Session startup failed." +msgstr "" +"Forwarding tunnel request to [%s]:%s for session %s was denied by remote " +"X2go/SSH server. Session startup failed." + +#: ../pyhoca/wxgui/frontend.py:537 +#, python-format +msgid "%s - audio warning" +msgstr "%s - audio warning" + +#: ../pyhoca/wxgui/frontend.py:537 +msgid "" +"The X2go PulseAudio system is not available within Remote Desktop sessions." +msgstr "" +"The X2go PulseAudio system is not available within Remote Desktop sessions." + +#: ../pyhoca/wxgui/frontend.py:539 ../pyhoca/wxgui/frontend.py:541 +#, python-format +msgid "%s - audio error" +msgstr "%s - audio error" + +#: ../pyhoca/wxgui/frontend.py:539 +msgid "The X2go PulseAudio system could not be started." +msgstr "The X2go PulseAudio system could not be started." + +#: ../pyhoca/wxgui/frontend.py:541 +msgid "The X2go PulseAudio system has died unexpectedly." +msgstr "The X2go PulseAudio system has died unexpectedly." + +#: ../pyhoca/wxgui/frontend.py:543 +#, python-format +msgid "%s - audio problem" +msgstr "%s - audio problem" + +#: ../pyhoca/wxgui/frontend.py:543 +#, python-format +msgid "" +"The audio connection could not be set up for this session.\n" +"%s" +msgstr "" +"The audio connection could not be set up for this session.\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:547 +#, python-format +msgid "%s - print job" +msgstr "%s - print job" + +#: ../pyhoca/wxgui/frontend.py:547 +#, python-format +msgid "" +"Opening print job dialog not implemented yet!!!\n" +"%s" +msgstr "" +"Opening print job dialog not implemented yet!!!\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:568 +#, python-format +msgid "%s - print error" +msgstr "%s - print error" + +#: ../pyhoca/wxgui/frontend.py:568 +#, python-format +msgid "" +"%s\n" +"...caused by session\n" +"%s" +msgstr "" +"%s\n" +"...caused by session\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:570 ../pyhoca/wxgui/frontend.py:572 +#, python-format +msgid "%s - start" +msgstr "%s - start" + +#: ../pyhoca/wxgui/frontend.py:570 +#, python-format +msgid "" +"New X2go session starting up...\n" +"%s" +msgstr "" +"New X2go session starting up...\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:572 +#, python-format +msgid "" +"Another client started X2go session\n" +"%s" +msgstr "" +"Another client started X2go session\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:574 ../pyhoca/wxgui/frontend.py:576 +#, python-format +msgid "%s - resume" +msgstr "%s - resume" + +#: ../pyhoca/wxgui/frontend.py:574 +#, python-format +msgid "" +"Resuming X2go session...\n" +"%s" +msgstr "" +"Resuming X2go session...\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:576 +#, python-format +msgid "" +"Another client resumed X2go session\n" +"%s" +msgstr "" +"Another client resumed X2go session\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:578 +#, python-format +msgid "%s - running" +msgstr "%s - running" + +#: ../pyhoca/wxgui/frontend.py:578 +#, python-format +msgid "" +"Found already running session\n" +"%s" +msgstr "" +"Found already running session\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:580 +#, python-format +msgid "%s - suspend" +msgstr "%s - suspend" + +#: ../pyhoca/wxgui/frontend.py:580 +#, python-format +msgid "" +"X2go Session has been suspended\n" +"%s" +msgstr "" +"X2go Session has been suspended\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:588 +#, python-format +msgid "%s - terminate" +msgstr "%s - terminate" + +#: ../pyhoca/wxgui/frontend.py:588 +#, python-format +msgid "" +"X2go Session has terminated\n" +"%s" +msgstr "" +"X2go Session has terminated\n" +"%s" + +#~ msgid "Arts" +#~ msgstr "Arts" diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..05af93d --- /dev/null +++ b/po/es.po @@ -0,0 +1,843 @@ +# PyHoca-GUI / i18n. +# Copyright (C) 2010-2011 Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# Dick Kniep <dick.kniep@lindix.nl> +# This file is distributed under the same license as the PyHoca-GUI package. +# Mike Gabriel <m.gabriel@das-netzwerkteam.de>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: PyHoca-GUI VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-02-22 13:01+0100\n" +"PO-Revision-Date: 2011-01-11 14:24+0100\n" +"Last-Translator: Mike Gabriel <m.gabriel@das-netzwerkteam.de>\n" +"Language-Team: es <oceanosoftlapalma@gmail.com>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-Country: SPAIN\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../pyhoca/wxgui/logon.py:80 +#, python-format +msgid "%s (via %s)" +msgstr "%s (vía %s)" + +#: ../pyhoca/wxgui/logon.py:82 ../pyhoca/wxgui/logon.py:92 +msgid "Username" +msgstr "Nombre de usuario" + +#: ../pyhoca/wxgui/logon.py:84 ../pyhoca/wxgui/logon.py:94 +msgid "Password" +msgstr "Contraseña" + +#: ../pyhoca/wxgui/logon.py:87 +msgid "Authenticate" +msgstr "Autenticar" + +#: ../pyhoca/wxgui/logon.py:97 +msgid " Start SSH tunnel " +msgstr " Iniciar tunerl SSH " + +#: ../pyhoca/wxgui/logon.py:103 +msgid "Session login" +msgstr "Inicio de sesión" + +#: ../pyhoca/wxgui/logon.py:104 +msgid "SSH proxy server login" +msgstr "Inicio de sesión en el servidor proxy SSH" + +#: ../pyhoca/wxgui/logon.py:115 ../pyhoca/wxgui/profilemanager.py:258 +msgid "Cancel" +msgstr "Cancelar" + +#: ../pyhoca/wxgui/logon.py:235 ../pyhoca/wxgui/logon.py:267 +#: ../pyhoca/wxgui/frontend.py:309 +#, python-format +msgid "%s - connect failure" +msgstr "%s - fallo en la conexión" + +#: ../pyhoca/wxgui/logon.py:236 ../pyhoca/wxgui/frontend.py:309 +msgid "User is not allowed to start X2go sessions!" +msgstr "El usuario no tiene permisos para iniciar X2go sesiones!" + +#: ../pyhoca/wxgui/logon.py:241 ../pyhoca/wxgui/frontend.py:313 +#, python-format +msgid "%s - connect" +msgstr "%s - conectado" + +#: ../pyhoca/wxgui/logon.py:242 +msgid "Authentication has been successful." +msgstr "Inicio de sesión correcto." + +#: ../pyhoca/wxgui/logon.py:263 +msgid "SSH tunnel started" +msgstr "Iniciado tunel SSH" + +#: ../pyhoca/wxgui/logon.py:268 +msgid "Authentication failed!" +msgstr "Error en el nombre de usuario o contraseña!" + +#: ../pyhoca/wxgui/logon.py:273 +#, python-format +msgid "%s - ssh proxy" +msgstr "%s - proxy ssh" + +#: ../pyhoca/wxgui/logon.py:274 +msgid "Authentication to the SSH proxy server failed!" +msgstr "Nombre de usuario o cantraseña erróneo en el servidor proxy SSH!" + +#: ../pyhoca/wxgui/logon.py:280 ../pyhoca/wxgui/logon.py:286 +#: ../pyhoca/wxgui/logon.py:295 ../pyhoca/wxgui/frontend.py:326 +#: ../pyhoca/wxgui/frontend.py:329 ../pyhoca/wxgui/frontend.py:332 +#: ../pyhoca/wxgui/frontend.py:335 +#, python-format +msgid "%s - connect error" +msgstr "%s - error en la conexión" + +#: ../pyhoca/wxgui/logon.py:291 ../pyhoca/wxgui/frontend.py:338 +#, fuzzy, python-format +msgid "%s - key error" +msgstr "%s - error en la conexión" + +#: ../pyhoca/wxgui/logon.py:296 +msgid "An unknown error occured during authentication!" +msgstr "" +"Error desconocido al tratar de validad el nombre de usuario y la contraseña!" + +#: ../pyhoca/wxgui/taskbar.py:94 +#, python-format +msgid "" +"PyHoca-GUI\n" +"Connecting you to ,,%s''" +msgstr "" +"PyHoca-GUI\n" +"Conectándote a ,,%s''" + +#: ../pyhoca/wxgui/taskbar.py:97 +#, python-format +msgid "" +"PyHoca-GUI (Python X2goClient)\n" +"Currently connecting you to remote X2go server ,,%s''" +msgstr "" +"PyHoca-GUI (Python X2goClient)\n" +"Conectandote a tu servidor X2go ,,%s''" + +#: ../pyhoca/wxgui/taskbar.py:102 +msgid "" +"PyHoca-GUI\n" +"Connecting you to X2go..." +msgstr "" +"PyHoca-GUI\n" +"Conectándote a X2go..." + +#: ../pyhoca/wxgui/taskbar.py:105 +msgid "" +"PyHoca-GUI (Python X2goClient)\n" +"Client for connecting you to a remote X2go server" +msgstr "" +"PyHoca-GUI (Python X2goClient)\n" +"Cliente para conexiones remotas a servidores X2go" + +#: ../pyhoca/wxgui/profilemanager.py:61 +msgid "GNOME Desktop (GNOME)" +msgstr "GNOME Desktop (GNOME)" + +#: ../pyhoca/wxgui/profilemanager.py:62 +msgid "K Desktop Environment (KDE)" +msgstr "K Desktop Environment (KDE)" + +#: ../pyhoca/wxgui/profilemanager.py:63 +msgid "Lightweight X Desktop (LXDE)" +msgstr "Lightweight X Desktop (LXDE)" + +#: ../pyhoca/wxgui/profilemanager.py:64 +msgid "XDMCP Query" +msgstr "XDMCP Query" + +#. 'EMBEDDED_MENU': _(u'Embedded Application Menu'), +#: ../pyhoca/wxgui/profilemanager.py:66 +msgid "Windows Terminal Server (RDP-proxy)" +msgstr "Windows Terminal Server (RDP-proxy)" + +#. 'DirectRDP': 'Windows Terminal Server (RDP-direct)', +#: ../pyhoca/wxgui/profilemanager.py:68 +msgid "Single Application" +msgstr "Aplicación" + +#: ../pyhoca/wxgui/profilemanager.py:69 ../pyhoca/wxgui/profilemanager.py:152 +msgid "Custom command" +msgstr "Comando personalizado" + +#: ../pyhoca/wxgui/profilemanager.py:72 +msgid "Internet Browser" +msgstr "Navegador web" + +#: ../pyhoca/wxgui/profilemanager.py:73 +msgid "Email Client" +msgstr "Cliente de Correo" + +#: ../pyhoca/wxgui/profilemanager.py:74 +msgid "Openoffice.org" +msgstr "Openoffice.org" + +#: ../pyhoca/wxgui/profilemanager.py:75 +msgid "Terminal" +msgstr "Terminal" + +#: ../pyhoca/wxgui/profilemanager.py:89 +msgid "Open file with system's default application" +msgstr "Abrir archivo con la aplicación por defecto" + +#: ../pyhoca/wxgui/profilemanager.py:90 +msgid "Open application chooser dialog" +msgstr "Abrir selector de aplicaciones" + +#: ../pyhoca/wxgui/profilemanager.py:91 +msgid "Save incoming file as ..." +msgstr "Guardar archivo recibido como ..." + +#: ../pyhoca/wxgui/profilemanager.py:123 +msgid "Server" +msgstr "Servidor" + +#: ../pyhoca/wxgui/profilemanager.py:124 +msgid "Connection Link Speed" +msgstr "Velocidad de conexión" + +#: ../pyhoca/wxgui/profilemanager.py:125 +msgid "Compression" +msgstr "Compresión" + +#: ../pyhoca/wxgui/profilemanager.py:126 +msgid "Display" +msgstr "Pantalla" + +#: ../pyhoca/wxgui/profilemanager.py:127 +msgid "Keyboard" +msgstr "Teclado" + +#: ../pyhoca/wxgui/profilemanager.py:128 +msgid "Sound" +msgstr "Sonido" + +#: ../pyhoca/wxgui/profilemanager.py:129 +msgid "Printing" +msgstr "Impresora" + +#: ../pyhoca/wxgui/profilemanager.py:130 +msgid "Folder Exports" +msgstr "Exportaciones de Carpeta" + +#: ../pyhoca/wxgui/profilemanager.py:131 +msgid "File Import" +msgstr "Importar Archivo" + +#. ## +#. ## widgets for the SESSION tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:136 +msgid "Profile name" +msgstr "Nombre del perfil" + +#: ../pyhoca/wxgui/profilemanager.py:146 +msgid "Profile icon" +msgstr "Icono del perfil" + +#: ../pyhoca/wxgui/profilemanager.py:148 +msgid "Session type" +msgstr "Tipo de sesión" + +#: ../pyhoca/wxgui/profilemanager.py:150 +msgid "Application" +msgstr "Aplicación" + +#: ../pyhoca/wxgui/profilemanager.py:154 +msgid "RDP settings" +msgstr "Parámetros RDP" + +#: ../pyhoca/wxgui/profilemanager.py:155 +msgid "RDP server" +msgstr "Servidor RDP" + +#: ../pyhoca/wxgui/profilemanager.py:157 +msgid "RDP options" +msgstr "Opciones RDP" + +#: ../pyhoca/wxgui/profilemanager.py:159 +msgid "XDMCP server" +msgstr "Servidor XDMCP" + +#. ## +#. ## widgets for the CONNECTION tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:165 ../pyhoca/wxgui/profilemanager.py:175 +msgid "User" +msgstr "Usuario" + +#: ../pyhoca/wxgui/profilemanager.py:167 +msgid "Host" +msgstr "Host" + +#: ../pyhoca/wxgui/profilemanager.py:169 +msgid "Port" +msgstr "Puerto" + +#: ../pyhoca/wxgui/profilemanager.py:171 +msgid "RSA/DSA private key" +msgstr "Clave privada RSA/DSA" + +#: ../pyhoca/wxgui/profilemanager.py:174 +msgid "Server behind SSH proxy" +msgstr "Servidor detrás del proxy SSH" + +#: ../pyhoca/wxgui/profilemanager.py:177 +msgid "Key file" +msgstr "Clave" + +#: ../pyhoca/wxgui/profilemanager.py:180 +msgid "Host[:Port]" +msgstr "Host[:Puerto]" + +#: ../pyhoca/wxgui/profilemanager.py:182 +msgid "SSH Proxy Tunnel" +msgstr "Tunel Proxy SSH" + +#: ../pyhoca/wxgui/profilemanager.py:190 +msgid "Modem" +msgstr "Módem" + +#: ../pyhoca/wxgui/profilemanager.py:191 +msgid "ISDN" +msgstr "ISDN" + +#: ../pyhoca/wxgui/profilemanager.py:192 +msgid "ADSL" +msgstr "ADSL" + +#: ../pyhoca/wxgui/profilemanager.py:193 +msgid "WAN" +msgstr "WAN" + +#: ../pyhoca/wxgui/profilemanager.py:194 +msgid "LAN" +msgstr "LAN" + +#: ../pyhoca/wxgui/profilemanager.py:196 +msgid "Method" +msgstr "Método" + +#: ../pyhoca/wxgui/profilemanager.py:198 +msgid "Image quality" +msgstr "Calidad de imagen" + +#. ## +#. ## wigdets for the SETTINGS tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:204 +msgid "Fullscreen" +msgstr "Pantalla Completa" + +#: ../pyhoca/wxgui/profilemanager.py:205 +msgid "Custom Size" +msgstr "Tamaño Personalizado" + +#: ../pyhoca/wxgui/profilemanager.py:210 +msgid "Set display DPI" +msgstr "Establecer DPI" + +#: ../pyhoca/wxgui/profilemanager.py:212 +msgid "Keep current keyboard settings" +msgstr "Mantener configuración actual del teclado" + +#: ../pyhoca/wxgui/profilemanager.py:213 +msgid "Keyboard layout" +msgstr "Máscara de teclado" + +#: ../pyhoca/wxgui/profilemanager.py:215 +msgid "Keyboard model" +msgstr "Modelo de teclado" + +#: ../pyhoca/wxgui/profilemanager.py:217 +msgid "Enable sound support" +msgstr "Activar soporte de sonido" + +#: ../pyhoca/wxgui/profilemanager.py:218 +msgid "Pulse Audio" +msgstr "Pulse Audio" + +#. Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated. +#. However, config files can contain an Arts configuration, so we will honour this +#: ../pyhoca/wxgui/profilemanager.py:222 +msgid "Arts (not supported)" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:225 +msgid "esd" +msgstr "esd" + +#: ../pyhoca/wxgui/profilemanager.py:226 +msgid "Use default sound port" +msgstr "Usar puerto de sonido por defecto" + +#: ../pyhoca/wxgui/profilemanager.py:227 +msgid "Custom sound port" +msgstr "Puerto de sonido personalizado" + +#: ../pyhoca/wxgui/profilemanager.py:229 +msgid "Client Side printing" +msgstr "Impresión local" + +#: ../pyhoca/wxgui/profilemanager.py:231 +msgid "Use local folder sharing" +msgstr "Compartir carpetas locales" + +#: ../pyhoca/wxgui/profilemanager.py:232 +msgid "Path" +msgstr "Ruta" + +#: ../pyhoca/wxgui/profilemanager.py:235 ../pyhoca/wxgui/profilemanager.py:252 +msgid "Add" +msgstr "Añadir" + +#: ../pyhoca/wxgui/profilemanager.py:237 +msgid "Delete" +msgstr "Eliminar" + +#: ../pyhoca/wxgui/profilemanager.py:239 +msgid "Convert between client and server encodings" +msgstr "Convertir codificaciones entre cliente y servidor" + +#: ../pyhoca/wxgui/profilemanager.py:240 +msgid "Client encoding" +msgstr "Codificación del cliente" + +#: ../pyhoca/wxgui/profilemanager.py:242 +msgid "Server encoding" +msgstr "Del Servidor" + +#: ../pyhoca/wxgui/profilemanager.py:245 +msgid "Use file dropbox for local file import" +msgstr "Usar arrastar archivos para la importar archivos locales" + +#: ../pyhoca/wxgui/profilemanager.py:246 +msgid "Extensions" +msgstr "Extensiones" + +#: ../pyhoca/wxgui/profilemanager.py:248 +msgid "Action" +msgstr "Acción" + +#: ../pyhoca/wxgui/profilemanager.py:253 +msgid "Defaults" +msgstr "Valores por defecto" + +#: ../pyhoca/wxgui/profilemanager.py:255 +msgid "Save" +msgstr "Guardar" + +#: ../pyhoca/wxgui/profilemanager.py:256 +msgid "Reset" +msgstr "Reiniciar" + +#: ../pyhoca/wxgui/profilemanager.py:293 +msgid "PyHoca-GUI Profile Manager - new profile" +msgstr "PyHoca-GUI Gestor de Perfiles - nuevo perfil" + +#: ../pyhoca/wxgui/profilemanager.py:295 +#, python-format +msgid "PyHoca-GUI Profile Manager - %s (connected)" +msgstr "PyHoca-GUI Gestor de Perfiles - %s (conectado)" + +#: ../pyhoca/wxgui/profilemanager.py:297 +#, python-format +msgid "PyHoca-GUI Profile Manager - %s" +msgstr "PyHoca-GUI Gestor de Perfiles - %s" + +#: ../pyhoca/wxgui/profilemanager.py:613 +msgid "Session Profile" +msgstr "Perfil de Sesión" + +#: ../pyhoca/wxgui/profilemanager.py:614 +msgid "Connection" +msgstr "Conexión" + +#: ../pyhoca/wxgui/profilemanager.py:615 +msgid "Settings" +msgstr "Opciones" + +#: ../pyhoca/wxgui/profilemanager.py:616 +msgid "Sharing" +msgstr "Compartir" + +#: ../pyhoca/wxgui/profilemanager.py:980 +msgid "Icon Files (*.png)|*.png|All files (*.*)|*" +msgstr "Iconos (*.png)|*.png|Todos (*.*)|*" + +#: ../pyhoca/wxgui/profilemanager.py:983 +msgid "Choose an icon for this session profile" +msgstr "Elige un icono para este perfil de sesión" + +#: ../pyhoca/wxgui/profilemanager.py:1091 +msgid "All files (*.*)|*" +msgstr "Todos (*.*)|*" + +#: ../pyhoca/wxgui/profilemanager.py:1093 +#: ../pyhoca/wxgui/profilemanager.py:1108 +msgid "Choose a public SSH key" +msgstr "Elige una clave pública SSH" + +#: ../pyhoca/wxgui/profilemanager.py:1242 +msgid "Choose a folder to share within a session" +msgstr "Elige la carpeta que quieres compartir en la conexión" + +#: ../pyhoca/wxgui/profilemanager.py:1307 ../pyhoca/wxgui/menus_taskbar.py:86 +msgid "Profile Manager" +msgstr "Gestor de Sesiones" + +#: ../pyhoca/wxgui/profilemanager.py:1307 +msgid "Profile name is missing, profile unusable!!!" +msgstr "Nombre de pefil no encontrado o no válido!!!" + +#: ../pyhoca/wxgui/profilemanager.py:1329 +#, python-format +msgid "%s - profile added" +msgstr "%s - añadido el perfil" + +#: ../pyhoca/wxgui/profilemanager.py:1330 +msgid "A new session profile has been added." +msgstr "Se ha añadido un nuevo perfil de sesión." + +#: ../pyhoca/wxgui/profilemanager.py:1334 +#, python-format +msgid "%s - modified" +msgstr "%s - modificado" + +#: ../pyhoca/wxgui/profilemanager.py:1335 +msgid "Changes to profile have been saved." +msgstr "Se han guardado los cambios en el perfil." + +#: ../pyhoca/wxgui/menus_taskbar.py:55 +msgid "Edit Profile" +msgstr "Editar Perfil" + +#: ../pyhoca/wxgui/menus_taskbar.py:57 +msgid "Delete Profile" +msgstr "Borrar Perfil" + +#: ../pyhoca/wxgui/menus_taskbar.py:79 ../pyhoca/wxgui/about.py:55 +#: ../pyhoca/wxgui/about.py:57 +#, python-format +msgid "About %s ..." +msgstr "Acerca de %s ..." + +#: ../pyhoca/wxgui/menus_taskbar.py:97 +msgid "Client Options" +msgstr "Opciones del Cliente" + +#: ../pyhoca/wxgui/menus_taskbar.py:105 ../pyhoca/wxgui/menus_taskbar.py:328 +msgid "E&xit" +msgstr "S&alir" + +#: ../pyhoca/wxgui/menus_taskbar.py:142 +msgid "Resume Session" +msgstr "Retomar Sesión" + +#: ../pyhoca/wxgui/menus_taskbar.py:145 +msgid "Transfer Session" +msgstr "Transferir Sesión" + +#: ../pyhoca/wxgui/menus_taskbar.py:146 +msgid "Suspend Session" +msgstr "Suspender Sesión" + +#: ../pyhoca/wxgui/menus_taskbar.py:148 +msgid "Terminate Session" +msgstr "Finalizar Sesión" + +#: ../pyhoca/wxgui/menus_taskbar.py:186 +msgid "Start &new Session" +msgstr "Iniciar &nueva Sesión" + +#: ../pyhoca/wxgui/menus_taskbar.py:199 +msgid "Running" +msgstr "Activa" + +#: ../pyhoca/wxgui/menus_taskbar.py:201 +msgid "Suspended" +msgstr "Suspendida" + +#: ../pyhoca/wxgui/menus_taskbar.py:211 +msgid "&Clean all sessions" +msgstr "&Limpiar el registro de sesiones" + +#: ../pyhoca/wxgui/menus_taskbar.py:213 +msgid "Customize &profile" +msgstr "Configurar &perfil" + +#: ../pyhoca/wxgui/menus_taskbar.py:215 +msgid "Share local &folder" +msgstr "Comporarti &Carpeta local" + +#: ../pyhoca/wxgui/menus_taskbar.py:220 +msgid "&Disconnect from Server" +msgstr "&Desconectar del servidor" + +#: ../pyhoca/wxgui/menus_taskbar.py:248 +msgid "Add Profile" +msgstr "Añadir Perfil" + +#: ../pyhoca/wxgui/menus_taskbar.py:274 +msgid "No session profiles defined" +msgstr "No se han definido perfiles de sesión" + +#: ../pyhoca/wxgui/menus_taskbar.py:305 +msgid "Start/Resume Session" +msgstr "Iniciar/Retomar Sesión" + +#: ../pyhoca/wxgui/menus_taskbar.py:305 +msgid "Connect Server" +msgstr "Conectar con el Servidor" + +#: ../pyhoca/wxgui/frontend.py:313 +msgid "Public SSH key authentication has been successful." +msgstr "Se ha iniciado sesión con éxito usando la clave pública SSH." + +#: ../pyhoca/wxgui/frontend.py:335 +msgid "Authentication protocol communication incomplete! Try again..." +msgstr "¡El protocolo de comunicaciones está incompleto! Inténtalo otra vez..." + +#: ../pyhoca/wxgui/frontend.py:414 +msgid "Cleaning X2go sessions..." +msgstr "Limpieado sesiones X2go..." + +#: ../pyhoca/wxgui/frontend.py:434 +#, python-format +msgid "%s - disconnect" +msgstr "%s - desconectado" + +#: ../pyhoca/wxgui/frontend.py:434 +msgid "X2go Profile is now disconnected." +msgstr "Se ha desconectado el Perfil X2go." + +#: ../pyhoca/wxgui/frontend.py:442 +msgid "New Session Profile" +msgstr "Nuevo Perfil de Sesión" + +#: ../pyhoca/wxgui/frontend.py:471 +#, python-format +msgid "%s - profile deleted" +msgstr "%s - perfil eliminado" + +#: ../pyhoca/wxgui/frontend.py:471 +msgid "The session profile has been deleted." +msgstr "Se ha eliminado el perfil de sesión." + +#: ../pyhoca/wxgui/frontend.py:486 +#, python-format +msgid "%s - share local folder with sessions of this profile" +msgstr "%s - compartir carpetas locales con las sesiones de este perfil" + +#: ../pyhoca/wxgui/frontend.py:528 +#, python-format +msgid "%s - channel error" +msgstr "%s - error en el canal" + +#: ../pyhoca/wxgui/frontend.py:528 +#, python-format +msgid "" +"Lost connection to server %s unexpectedly! Try to re-authenticate to the " +"server..." +msgstr "" +"La conexión con el servidor %s ha finalizado inesperadamente! Intenta " +"iniciar sesión nuevamente..." + +#: ../pyhoca/wxgui/frontend.py:531 ../pyhoca/wxgui/frontend.py:535 +#, fuzzy, python-format +msgid "%s - session failure" +msgstr "%s - fallo en la conexión" + +#: ../pyhoca/wxgui/frontend.py:531 +#, python-format +msgid "" +"The command ,,%s'' is not available on X2go server\n" +"%s)." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:533 +#, fuzzy, python-format +msgid "%s - session warning" +msgstr "%s - fallo en la conexión" + +#: ../pyhoca/wxgui/frontend.py:533 +#, python-format +msgid "" +"Reverse TCP port forwarding request for session %s to server port %s has " +"been denied by the X2go server. This is a common issue with SSH, it might " +"help to restart the X2go server's SSH daemon." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:535 +#, python-format +msgid "" +"Forwarding tunnel request to [%s]:%s for session %s was denied by remote " +"X2go/SSH server. Session startup failed." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:537 +#, fuzzy, python-format +msgid "%s - audio warning" +msgstr "%s - fallo en la conexión" + +#: ../pyhoca/wxgui/frontend.py:537 +msgid "" +"The X2go PulseAudio system is not available within Remote Desktop sessions." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:539 ../pyhoca/wxgui/frontend.py:541 +#, fuzzy, python-format +msgid "%s - audio error" +msgstr "%s - error de impresión" + +#: ../pyhoca/wxgui/frontend.py:539 +msgid "The X2go PulseAudio system could not be started." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:541 +msgid "The X2go PulseAudio system has died unexpectedly." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:543 +#, python-format +msgid "%s - audio problem" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:543 +#, python-format +msgid "" +"The audio connection could not be set up for this session.\n" +"%s" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:547 +#, python-format +msgid "%s - print job" +msgstr "%s - imprimir" + +#: ../pyhoca/wxgui/frontend.py:547 +#, python-format +msgid "" +"Opening print job dialog not implemented yet!!!\n" +"%s" +msgstr "" +"¡¡¡El cuadro de diálogo de imprimir no ha sido desarrollado todavía!!!\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:568 +#, python-format +msgid "%s - print error" +msgstr "%s - error de impresión" + +#: ../pyhoca/wxgui/frontend.py:568 +#, python-format +msgid "" +"%s\n" +"...caused by session\n" +"%s" +msgstr "" +"%s\n" +"...provocado por la sesión\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:570 ../pyhoca/wxgui/frontend.py:572 +#, python-format +msgid "%s - start" +msgstr "%s - inicio" + +#: ../pyhoca/wxgui/frontend.py:570 +#, python-format +msgid "" +"New X2go session starting up...\n" +"%s" +msgstr "" +"Iniciaciando nueva sesión X2go...\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:572 +#, python-format +msgid "" +"Another client started X2go session\n" +"%s" +msgstr "" +"Otro cliente ha iniciado sesión X2go\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:574 ../pyhoca/wxgui/frontend.py:576 +#, python-format +msgid "%s - resume" +msgstr "%s - retornar a la sesión" + +#: ../pyhoca/wxgui/frontend.py:574 +#, python-format +msgid "" +"Resuming X2go session...\n" +"%s" +msgstr "" +"Retornando sesión X2go...\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:576 +#, python-format +msgid "" +"Another client resumed X2go session\n" +"%s" +msgstr "" +"Otro cliente retornó a la sesión X2go\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:578 +#, python-format +msgid "%s - running" +msgstr "%s - en ejecución" + +#: ../pyhoca/wxgui/frontend.py:578 +#, python-format +msgid "" +"Found already running session\n" +"%s" +msgstr "" +"La sesión ya está en ejecución\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:580 +#, python-format +msgid "%s - suspend" +msgstr "%s - suspender" + +#: ../pyhoca/wxgui/frontend.py:580 +#, python-format +msgid "" +"X2go Session has been suspended\n" +"%s" +msgstr "" +"Se ha suspendido la Sesión X2go\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:588 +#, python-format +msgid "%s - terminate" +msgstr "%s - finalizar" + +#: ../pyhoca/wxgui/frontend.py:588 +#, python-format +msgid "" +"X2go Session has terminated\n" +"%s" +msgstr "" +"Se ha finalizado la sesión X2go\n" +"%s" + +#~ msgid "Arts" +#~ msgstr "Arts" diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..eaeb20b --- /dev/null +++ b/po/nl.po @@ -0,0 +1,840 @@ +# PyHoca-GUI / i18n. +# Copyright (C) 2010-2011 Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# Dick Kniep <dick.kniep@lindix.nl> +# This file is distributed under the same license as the PyHoca-GUI package. +# Mike Gabriel <m.gabriel@das-netzwerkteam.de>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: PyHoca-GUI VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-02-22 13:01+0100\n" +"PO-Revision-Date: 2011-01-10 17:32+0100\n" +"Last-Translator: Dick Kniep <dick.kniep@lindix.nl>\n" +"Language-Team: nl <dick.kniep@lindix.nl>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Dutch\n" +"X-Poedit-Country: NETHERLANDS\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../pyhoca/wxgui/logon.py:80 +#, python-format +msgid "%s (via %s)" +msgstr "%s (via %s)" + +#: ../pyhoca/wxgui/logon.py:82 ../pyhoca/wxgui/logon.py:92 +msgid "Username" +msgstr "Gebruiker" + +#: ../pyhoca/wxgui/logon.py:84 ../pyhoca/wxgui/logon.py:94 +msgid "Password" +msgstr "Wachtwoord" + +#: ../pyhoca/wxgui/logon.py:87 +msgid "Authenticate" +msgstr "Aanmelden" + +#: ../pyhoca/wxgui/logon.py:97 +msgid " Start SSH tunnel " +msgstr " Start SSH Tunnel " + +#: ../pyhoca/wxgui/logon.py:103 +msgid "Session login" +msgstr "Sessie login" + +#: ../pyhoca/wxgui/logon.py:104 +msgid "SSH proxy server login" +msgstr "Login via SSH Proxy" + +#: ../pyhoca/wxgui/logon.py:115 ../pyhoca/wxgui/profilemanager.py:258 +msgid "Cancel" +msgstr "Afbreken" + +#: ../pyhoca/wxgui/logon.py:235 ../pyhoca/wxgui/logon.py:267 +#: ../pyhoca/wxgui/frontend.py:309 +#, python-format +msgid "%s - connect failure" +msgstr "%s - verbinden mislukt" + +#: ../pyhoca/wxgui/logon.py:236 ../pyhoca/wxgui/frontend.py:309 +msgid "User is not allowed to start X2go sessions!" +msgstr "Gebruiker mag geen X2go sessie starten!" + +#: ../pyhoca/wxgui/logon.py:241 ../pyhoca/wxgui/frontend.py:313 +#, python-format +msgid "%s - connect" +msgstr "%s - verbinden" + +#: ../pyhoca/wxgui/logon.py:242 +msgid "Authentication has been successful." +msgstr "Authenticatie is gelukt." + +#: ../pyhoca/wxgui/logon.py:263 +msgid "SSH tunnel started" +msgstr "SSH Tunnel gestart" + +#: ../pyhoca/wxgui/logon.py:268 +msgid "Authentication failed!" +msgstr "Authenticatie mislukt!" + +#: ../pyhoca/wxgui/logon.py:273 +#, python-format +msgid "%s - ssh proxy" +msgstr "%s - SSH Proxy" + +#: ../pyhoca/wxgui/logon.py:274 +msgid "Authentication to the SSH proxy server failed!" +msgstr "Authenticatie via SSH Proxy Server mislukt!" + +#: ../pyhoca/wxgui/logon.py:280 ../pyhoca/wxgui/logon.py:286 +#: ../pyhoca/wxgui/logon.py:295 ../pyhoca/wxgui/frontend.py:326 +#: ../pyhoca/wxgui/frontend.py:329 ../pyhoca/wxgui/frontend.py:332 +#: ../pyhoca/wxgui/frontend.py:335 +#, python-format +msgid "%s - connect error" +msgstr "%s - Verbindingsfout" + +#: ../pyhoca/wxgui/logon.py:291 ../pyhoca/wxgui/frontend.py:338 +#, fuzzy, python-format +msgid "%s - key error" +msgstr "%s - Verbindingsfout" + +#: ../pyhoca/wxgui/logon.py:296 +msgid "An unknown error occured during authentication!" +msgstr "Een onbekende fout is bij de authenticatie opgetreden" + +#: ../pyhoca/wxgui/taskbar.py:94 +#, python-format +msgid "" +"PyHoca-GUI\n" +"Connecting you to ,,%s''" +msgstr "" +"PyHoca-GUI\n" +"Verbinden met ,,%s''" + +#: ../pyhoca/wxgui/taskbar.py:97 +#, python-format +msgid "" +"PyHoca-GUI (Python X2goClient)\n" +"Currently connecting you to remote X2go server ,,%s''" +msgstr "" +"PyHoca-GUI (Python X2goClient)\n" +"Verbinding met X2go server ,,%s'' wordt gemaakt" + +#: ../pyhoca/wxgui/taskbar.py:102 +msgid "" +"PyHoca-GUI\n" +"Connecting you to X2go..." +msgstr "Bezig je te verbinden met X2go ..." + +#: ../pyhoca/wxgui/taskbar.py:105 +msgid "" +"PyHoca-GUI (Python X2goClient)\n" +"Client for connecting you to a remote X2go server" +msgstr "" +"PyHoca-GUI (Python X2goClient)\n" +"Verbinding met remote X2go server aan het opbouwen" + +#: ../pyhoca/wxgui/profilemanager.py:61 +msgid "GNOME Desktop (GNOME)" +msgstr "GNOME Desktop (GNOME)" + +#: ../pyhoca/wxgui/profilemanager.py:62 +msgid "K Desktop Environment (KDE)" +msgstr "K Desktop Environment (KDE)" + +#: ../pyhoca/wxgui/profilemanager.py:63 +msgid "Lightweight X Desktop (LXDE)" +msgstr "Lightweight X Desktop (LXDE)" + +#: ../pyhoca/wxgui/profilemanager.py:64 +msgid "XDMCP Query" +msgstr "XDMCP Query" + +#. 'EMBEDDED_MENU': _(u'Embedded Application Menu'), +#: ../pyhoca/wxgui/profilemanager.py:66 +msgid "Windows Terminal Server (RDP-proxy)" +msgstr "Windows Terminalserver (RDP-proxy)" + +#. 'DirectRDP': 'Windows Terminal Server (RDP-direct)', +#: ../pyhoca/wxgui/profilemanager.py:68 +msgid "Single Application" +msgstr "Enkelvoudige Applicatie" + +#: ../pyhoca/wxgui/profilemanager.py:69 ../pyhoca/wxgui/profilemanager.py:152 +msgid "Custom command" +msgstr "Speciaal Commando" + +#: ../pyhoca/wxgui/profilemanager.py:72 +msgid "Internet Browser" +msgstr "Internetbrowser" + +#: ../pyhoca/wxgui/profilemanager.py:73 +msgid "Email Client" +msgstr "E-Mail Programma" + +#: ../pyhoca/wxgui/profilemanager.py:74 +msgid "Openoffice.org" +msgstr "Openoffice.org" + +#: ../pyhoca/wxgui/profilemanager.py:75 +msgid "Terminal" +msgstr "Terminal" + +#: ../pyhoca/wxgui/profilemanager.py:89 +msgid "Open file with system's default application" +msgstr "Open bestand met het geassocieerde programma" + +#: ../pyhoca/wxgui/profilemanager.py:90 +msgid "Open application chooser dialog" +msgstr "Open dialoog, om Applicatie te kiezen" + +#: ../pyhoca/wxgui/profilemanager.py:91 +msgid "Save incoming file as ..." +msgstr "Opslaan bestand als ..." + +#: ../pyhoca/wxgui/profilemanager.py:123 +msgid "Server" +msgstr "Server" + +#: ../pyhoca/wxgui/profilemanager.py:124 +msgid "Connection Link Speed" +msgstr "Verbindings snelheid" + +#: ../pyhoca/wxgui/profilemanager.py:125 +msgid "Compression" +msgstr "Compressie" + +#: ../pyhoca/wxgui/profilemanager.py:126 +msgid "Display" +msgstr "Display" + +#: ../pyhoca/wxgui/profilemanager.py:127 +msgid "Keyboard" +msgstr "Toetsenbord" + +#: ../pyhoca/wxgui/profilemanager.py:128 +msgid "Sound" +msgstr "Geluid" + +#: ../pyhoca/wxgui/profilemanager.py:129 +msgid "Printing" +msgstr "Afdrukken" + +#: ../pyhoca/wxgui/profilemanager.py:130 +msgid "Folder Exports" +msgstr "Map export" + +#: ../pyhoca/wxgui/profilemanager.py:131 +msgid "File Import" +msgstr "Bestands import" + +#. ## +#. ## widgets for the SESSION tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:136 +msgid "Profile name" +msgstr "Profile" + +#: ../pyhoca/wxgui/profilemanager.py:146 +msgid "Profile icon" +msgstr "Profile icon" + +#: ../pyhoca/wxgui/profilemanager.py:148 +msgid "Session type" +msgstr "Sessie type" + +#: ../pyhoca/wxgui/profilemanager.py:150 +msgid "Application" +msgstr "Applicatie" + +#: ../pyhoca/wxgui/profilemanager.py:154 +msgid "RDP settings" +msgstr "RDP instellingen" + +#: ../pyhoca/wxgui/profilemanager.py:155 +msgid "RDP server" +msgstr "RDP Server" + +#: ../pyhoca/wxgui/profilemanager.py:157 +msgid "RDP options" +msgstr "RDP Opties" + +#: ../pyhoca/wxgui/profilemanager.py:159 +msgid "XDMCP server" +msgstr "XDMCP Server" + +#. ## +#. ## widgets for the CONNECTION tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:165 ../pyhoca/wxgui/profilemanager.py:175 +msgid "User" +msgstr "Gebruiker" + +#: ../pyhoca/wxgui/profilemanager.py:167 +msgid "Host" +msgstr "Host" + +#: ../pyhoca/wxgui/profilemanager.py:169 +msgid "Port" +msgstr "Port" + +#: ../pyhoca/wxgui/profilemanager.py:171 +msgid "RSA/DSA private key" +msgstr "Private RSA/DSA Key" + +#: ../pyhoca/wxgui/profilemanager.py:174 +msgid "Server behind SSH proxy" +msgstr "Server achter SSH-Proxy" + +#: ../pyhoca/wxgui/profilemanager.py:177 +msgid "Key file" +msgstr "Key" + +#: ../pyhoca/wxgui/profilemanager.py:180 +msgid "Host[:Port]" +msgstr "Host[:Port]" + +#: ../pyhoca/wxgui/profilemanager.py:182 +msgid "SSH Proxy Tunnel" +msgstr "SSH Proxy Tunnel" + +#: ../pyhoca/wxgui/profilemanager.py:190 +msgid "Modem" +msgstr "Modem" + +#: ../pyhoca/wxgui/profilemanager.py:191 +msgid "ISDN" +msgstr "ISDN" + +#: ../pyhoca/wxgui/profilemanager.py:192 +msgid "ADSL" +msgstr "ADSL" + +#: ../pyhoca/wxgui/profilemanager.py:193 +msgid "WAN" +msgstr "WAN" + +#: ../pyhoca/wxgui/profilemanager.py:194 +msgid "LAN" +msgstr "LAN" + +#: ../pyhoca/wxgui/profilemanager.py:196 +msgid "Method" +msgstr "Methode" + +#: ../pyhoca/wxgui/profilemanager.py:198 +msgid "Image quality" +msgstr "Beeldkwaliteit" + +#. ## +#. ## wigdets for the SETTINGS tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:204 +msgid "Fullscreen" +msgstr "Fullscreen" + +#: ../pyhoca/wxgui/profilemanager.py:205 +msgid "Custom Size" +msgstr "Grootte instellen" + +#: ../pyhoca/wxgui/profilemanager.py:210 +msgid "Set display DPI" +msgstr "DPI-waarde instellen" + +#: ../pyhoca/wxgui/profilemanager.py:212 +msgid "Keep current keyboard settings" +msgstr "Huidige toetsenbord-instellingen behouden" + +#: ../pyhoca/wxgui/profilemanager.py:213 +msgid "Keyboard layout" +msgstr "Toetsenbord layout" + +#: ../pyhoca/wxgui/profilemanager.py:215 +msgid "Keyboard model" +msgstr "Toetsenbord model" + +#: ../pyhoca/wxgui/profilemanager.py:217 +msgid "Enable sound support" +msgstr "Geluid gebruiken" + +#: ../pyhoca/wxgui/profilemanager.py:218 +msgid "Pulse Audio" +msgstr "Pulse Audio" + +#. Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated. +#. However, config files can contain an Arts configuration, so we will honour this +#: ../pyhoca/wxgui/profilemanager.py:222 +msgid "Arts (not supported)" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:225 +msgid "esd" +msgstr "esd" + +#: ../pyhoca/wxgui/profilemanager.py:226 +msgid "Use default sound port" +msgstr "Standaard Audio-Port gebruiken" + +#: ../pyhoca/wxgui/profilemanager.py:227 +msgid "Custom sound port" +msgstr "Speciale Audio-Port" + +#: ../pyhoca/wxgui/profilemanager.py:229 +msgid "Client Side printing" +msgstr "Client Side printen" + +#: ../pyhoca/wxgui/profilemanager.py:231 +msgid "Use local folder sharing" +msgstr "Delen van lokale mappen" + +#: ../pyhoca/wxgui/profilemanager.py:232 +msgid "Path" +msgstr "Pad" + +#: ../pyhoca/wxgui/profilemanager.py:235 ../pyhoca/wxgui/profilemanager.py:252 +msgid "Add" +msgstr "Toevoegen" + +#: ../pyhoca/wxgui/profilemanager.py:237 +msgid "Delete" +msgstr "Verwijderen" + +#: ../pyhoca/wxgui/profilemanager.py:239 +msgid "Convert between client and server encodings" +msgstr "Encoding tussen client en server vertalen" + +#: ../pyhoca/wxgui/profilemanager.py:240 +msgid "Client encoding" +msgstr "Client encoding" + +#: ../pyhoca/wxgui/profilemanager.py:242 +msgid "Server encoding" +msgstr "Server encoding" + +#: ../pyhoca/wxgui/profilemanager.py:245 +msgid "Use file dropbox for local file import" +msgstr "Importeren lokale bestanden via dropbox" + +#: ../pyhoca/wxgui/profilemanager.py:246 +msgid "Extensions" +msgstr "Uitbreidingen" + +#: ../pyhoca/wxgui/profilemanager.py:248 +msgid "Action" +msgstr "Actie" + +#: ../pyhoca/wxgui/profilemanager.py:253 +msgid "Defaults" +msgstr "Standaardwaarden" + +#: ../pyhoca/wxgui/profilemanager.py:255 +msgid "Save" +msgstr "Opslaan" + +#: ../pyhoca/wxgui/profilemanager.py:256 +msgid "Reset" +msgstr "Reset" + +#: ../pyhoca/wxgui/profilemanager.py:293 +msgid "PyHoca-GUI Profile Manager - new profile" +msgstr "PyHoca-GUI Profile manager - nieuw profile" + +#: ../pyhoca/wxgui/profilemanager.py:295 +#, python-format +msgid "PyHoca-GUI Profile Manager - %s (connected)" +msgstr "PyHoca-GUI Profile manager - %s (verbonden)" + +#: ../pyhoca/wxgui/profilemanager.py:297 +#, python-format +msgid "PyHoca-GUI Profile Manager - %s" +msgstr "PyHoca-GUI Profile manager - %s" + +#: ../pyhoca/wxgui/profilemanager.py:613 +msgid "Session Profile" +msgstr "Sessie Profile" + +#: ../pyhoca/wxgui/profilemanager.py:614 +msgid "Connection" +msgstr "Verbinding" + +#: ../pyhoca/wxgui/profilemanager.py:615 +msgid "Settings" +msgstr "Instellingen" + +#: ../pyhoca/wxgui/profilemanager.py:616 +msgid "Sharing" +msgstr "Delen" + +#: ../pyhoca/wxgui/profilemanager.py:980 +msgid "Icon Files (*.png)|*.png|All files (*.*)|*" +msgstr "Icon Bestanden (*.png)|*.png|Alle Bestanden (*.*)|*" + +#: ../pyhoca/wxgui/profilemanager.py:983 +msgid "Choose an icon for this session profile" +msgstr "Icon voor dit Profile kiezen" + +#: ../pyhoca/wxgui/profilemanager.py:1091 +msgid "All files (*.*)|*" +msgstr "Alle Bestanden (*.*)|*" + +#: ../pyhoca/wxgui/profilemanager.py:1093 +#: ../pyhoca/wxgui/profilemanager.py:1108 +msgid "Choose a public SSH key" +msgstr "Kies een public SSH-key" + +#: ../pyhoca/wxgui/profilemanager.py:1242 +msgid "Choose a folder to share within a session" +msgstr "Kies een map om te delen" + +#: ../pyhoca/wxgui/profilemanager.py:1307 ../pyhoca/wxgui/menus_taskbar.py:86 +msgid "Profile Manager" +msgstr "Profile manager" + +#: ../pyhoca/wxgui/profilemanager.py:1307 +msgid "Profile name is missing, profile unusable!!!" +msgstr "Profile naam ontbreekt, kan niet gebruikt worden!!!" + +#: ../pyhoca/wxgui/profilemanager.py:1329 +#, python-format +msgid "%s - profile added" +msgstr "%s - Profile toegevoegd" + +#: ../pyhoca/wxgui/profilemanager.py:1330 +msgid "A new session profile has been added." +msgstr "Een nieuw Profile is toegevoegd" + +#: ../pyhoca/wxgui/profilemanager.py:1334 +#, python-format +msgid "%s - modified" +msgstr "%s - gewijzigd" + +#: ../pyhoca/wxgui/profilemanager.py:1335 +msgid "Changes to profile have been saved." +msgstr "Wijzigingen in het profile zijn opgeslagen." + +#: ../pyhoca/wxgui/menus_taskbar.py:55 +msgid "Edit Profile" +msgstr "Profile bijwerken" + +#: ../pyhoca/wxgui/menus_taskbar.py:57 +msgid "Delete Profile" +msgstr "Profile verwijderen" + +#: ../pyhoca/wxgui/menus_taskbar.py:79 ../pyhoca/wxgui/about.py:55 +#: ../pyhoca/wxgui/about.py:57 +#, python-format +msgid "About %s ..." +msgstr "About %s ..." + +#: ../pyhoca/wxgui/menus_taskbar.py:97 +msgid "Client Options" +msgstr "Opties" + +#: ../pyhoca/wxgui/menus_taskbar.py:105 ../pyhoca/wxgui/menus_taskbar.py:328 +msgid "E&xit" +msgstr "&Beeindigen" + +#: ../pyhoca/wxgui/menus_taskbar.py:142 +msgid "Resume Session" +msgstr "Sessie hervatten" + +#: ../pyhoca/wxgui/menus_taskbar.py:145 +msgid "Transfer Session" +msgstr "Sessie overnemen" + +#: ../pyhoca/wxgui/menus_taskbar.py:146 +msgid "Suspend Session" +msgstr "Suspend Sessie" + +#: ../pyhoca/wxgui/menus_taskbar.py:148 +msgid "Terminate Session" +msgstr "Sessie beeindigen" + +#: ../pyhoca/wxgui/menus_taskbar.py:186 +msgid "Start &new Session" +msgstr "&Nieuwe Sessie starten" + +#: ../pyhoca/wxgui/menus_taskbar.py:199 +msgid "Running" +msgstr "aktief" + +#: ../pyhoca/wxgui/menus_taskbar.py:201 +msgid "Suspended" +msgstr "hervatten" + +#: ../pyhoca/wxgui/menus_taskbar.py:211 +msgid "&Clean all sessions" +msgstr "Alle Sessies beeindigen" + +#: ../pyhoca/wxgui/menus_taskbar.py:213 +msgid "Customize &profile" +msgstr "Sessieprofile wijzigen" + +#: ../pyhoca/wxgui/menus_taskbar.py:215 +msgid "Share local &folder" +msgstr "Delen lokale &map" + +#: ../pyhoca/wxgui/menus_taskbar.py:220 +msgid "&Disconnect from Server" +msgstr "&Verbinding verbreken" + +#: ../pyhoca/wxgui/menus_taskbar.py:248 +msgid "Add Profile" +msgstr "Profile toevoegen" + +#: ../pyhoca/wxgui/menus_taskbar.py:274 +msgid "No session profiles defined" +msgstr "Geen Profile gedefinieerd" + +#: ../pyhoca/wxgui/menus_taskbar.py:305 +msgid "Start/Resume Session" +msgstr "Sessie starten/hervatten" + +#: ../pyhoca/wxgui/menus_taskbar.py:305 +msgid "Connect Server" +msgstr "Verbinden met Server" + +#: ../pyhoca/wxgui/frontend.py:313 +msgid "Public SSH key authentication has been successful." +msgstr "Public SSH-key authenticatie is gelukt." + +#: ../pyhoca/wxgui/frontend.py:335 +msgid "Authentication protocol communication incomplete! Try again..." +msgstr "Authenticatie was niet volledig! Opnieuw proberen..." + +#: ../pyhoca/wxgui/frontend.py:414 +msgid "Cleaning X2go sessions..." +msgstr "Eindig X2go Sessies..." + +#: ../pyhoca/wxgui/frontend.py:434 +#, python-format +msgid "%s - disconnect" +msgstr "%s - verbinding verbreken" + +#: ../pyhoca/wxgui/frontend.py:434 +msgid "X2go Profile is now disconnected." +msgstr "X2go Profil is nu niet meer verbonden." + +#: ../pyhoca/wxgui/frontend.py:442 +msgid "New Session Profile" +msgstr "Nieuw Profile" + +#: ../pyhoca/wxgui/frontend.py:471 +#, python-format +msgid "%s - profile deleted" +msgstr "%s - Profile verwijderd" + +#: ../pyhoca/wxgui/frontend.py:471 +msgid "The session profile has been deleted." +msgstr "Het Profile wordt verwijderd." + +#: ../pyhoca/wxgui/frontend.py:486 +#, python-format +msgid "%s - share local folder with sessions of this profile" +msgstr "%s - deel lokale map met dit Profile" + +#: ../pyhoca/wxgui/frontend.py:528 +#, python-format +msgid "%s - channel error" +msgstr "%s - Verbindingsfout" + +#: ../pyhoca/wxgui/frontend.py:528 +#, python-format +msgid "" +"Lost connection to server %s unexpectedly! Try to re-authenticate to the " +"server..." +msgstr "" +"De Verbinding met de server %s werd onverwacht verbroken! Probeer om u " +"opnieuw aan te melden..." + +#: ../pyhoca/wxgui/frontend.py:531 ../pyhoca/wxgui/frontend.py:535 +#, fuzzy, python-format +msgid "%s - session failure" +msgstr "%s - verbinden mislukt" + +#: ../pyhoca/wxgui/frontend.py:531 +#, python-format +msgid "" +"The command ,,%s'' is not available on X2go server\n" +"%s)." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:533 +#, fuzzy, python-format +msgid "%s - session warning" +msgstr "%s - verbinden mislukt" + +#: ../pyhoca/wxgui/frontend.py:533 +#, python-format +msgid "" +"Reverse TCP port forwarding request for session %s to server port %s has " +"been denied by the X2go server. This is a common issue with SSH, it might " +"help to restart the X2go server's SSH daemon." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:535 +#, python-format +msgid "" +"Forwarding tunnel request to [%s]:%s for session %s was denied by remote " +"X2go/SSH server. Session startup failed." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:537 +#, fuzzy, python-format +msgid "%s - audio warning" +msgstr "%s - verbinden mislukt" + +#: ../pyhoca/wxgui/frontend.py:537 +msgid "" +"The X2go PulseAudio system is not available within Remote Desktop sessions." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:539 ../pyhoca/wxgui/frontend.py:541 +#, fuzzy, python-format +msgid "%s - audio error" +msgstr "%s - Printfout" + +#: ../pyhoca/wxgui/frontend.py:539 +msgid "The X2go PulseAudio system could not be started." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:541 +msgid "The X2go PulseAudio system has died unexpectedly." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:543 +#, python-format +msgid "%s - audio problem" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:543 +#, python-format +msgid "" +"The audio connection could not be set up for this session.\n" +"%s" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:547 +#, python-format +msgid "%s - print job" +msgstr "%s - print job" + +#: ../pyhoca/wxgui/frontend.py:547 +#, python-format +msgid "" +"Opening print job dialog not implemented yet!!!\n" +"%s" +msgstr "" +"De Print job dialog is nog niet geimplementeerd!!!\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:568 +#, python-format +msgid "%s - print error" +msgstr "%s - Printfout" + +#: ../pyhoca/wxgui/frontend.py:568 +#, python-format +msgid "" +"%s\n" +"...caused by session\n" +"%s" +msgstr "" +"%s\n" +"...veroorzaakt door sessie\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:570 ../pyhoca/wxgui/frontend.py:572 +#, python-format +msgid "%s - start" +msgstr "%s - Start" + +#: ../pyhoca/wxgui/frontend.py:570 +#, python-format +msgid "" +"New X2go session starting up...\n" +"%s" +msgstr "" +"Neue X2go sessie wordt gestart...\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:572 +#, python-format +msgid "" +"Another client started X2go session\n" +"%s" +msgstr "" +"Een andere X2go-client heeft deze sessie gestart\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:574 ../pyhoca/wxgui/frontend.py:576 +#, python-format +msgid "%s - resume" +msgstr "%s - hervatten" + +#: ../pyhoca/wxgui/frontend.py:574 +#, python-format +msgid "" +"Resuming X2go session...\n" +"%s" +msgstr "" +"X2go Sessie wordt hervat...\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:576 +#, python-format +msgid "" +"Another client resumed X2go session\n" +"%s" +msgstr "" +"Een andere X2go-client heeft de Sessie hervat\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:578 +#, python-format +msgid "%s - running" +msgstr "%s - actief" + +#: ../pyhoca/wxgui/frontend.py:578 +#, python-format +msgid "" +"Found already running session\n" +"%s" +msgstr "" +"Reeds actieve sessie gevonden\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:580 +#, python-format +msgid "%s - suspend" +msgstr "%s - suspend" + +#: ../pyhoca/wxgui/frontend.py:580 +#, python-format +msgid "" +"X2go Session has been suspended\n" +"%s" +msgstr "" +"X2go Sessie is suspended\n" +"%s" + +#: ../pyhoca/wxgui/frontend.py:588 +#, python-format +msgid "%s - terminate" +msgstr "%s - beeindigen" + +#: ../pyhoca/wxgui/frontend.py:588 +#, python-format +msgid "" +"X2go Session has terminated\n" +"%s" +msgstr "" +"X2go Sessie wordt beeindigd\n" +"%s" + +#~ msgid "Arts" +#~ msgstr "Arts" diff --git a/po/pyhoca-gui.pot b/po/pyhoca-gui.pot new file mode 100644 index 0000000..4861bd7 --- /dev/null +++ b/po/pyhoca-gui.pot @@ -0,0 +1,807 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-02-22 13:03+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../pyhoca/wxgui/logon.py:80 +#, python-format +msgid "%s (via %s)" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:82 ../pyhoca/wxgui/logon.py:92 +msgid "Username" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:84 ../pyhoca/wxgui/logon.py:94 +msgid "Password" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:87 +msgid "Authenticate" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:97 +msgid " Start SSH tunnel " +msgstr "" + +#: ../pyhoca/wxgui/logon.py:103 +msgid "Session login" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:104 +msgid "SSH proxy server login" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:115 ../pyhoca/wxgui/profilemanager.py:258 +msgid "Cancel" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:235 ../pyhoca/wxgui/logon.py:267 +#: ../pyhoca/wxgui/frontend.py:309 +#, python-format +msgid "%s - connect failure" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:236 ../pyhoca/wxgui/frontend.py:309 +msgid "User is not allowed to start X2go sessions!" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:241 ../pyhoca/wxgui/frontend.py:313 +#, python-format +msgid "%s - connect" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:242 +msgid "Authentication has been successful." +msgstr "" + +#: ../pyhoca/wxgui/logon.py:263 +msgid "SSH tunnel started" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:268 +msgid "Authentication failed!" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:273 +#, python-format +msgid "%s - ssh proxy" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:274 +msgid "Authentication to the SSH proxy server failed!" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:280 ../pyhoca/wxgui/logon.py:286 +#: ../pyhoca/wxgui/logon.py:295 ../pyhoca/wxgui/frontend.py:326 +#: ../pyhoca/wxgui/frontend.py:329 ../pyhoca/wxgui/frontend.py:332 +#: ../pyhoca/wxgui/frontend.py:335 +#, python-format +msgid "%s - connect error" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:291 ../pyhoca/wxgui/frontend.py:338 +#, python-format +msgid "%s - key error" +msgstr "" + +#: ../pyhoca/wxgui/logon.py:296 +msgid "An unknown error occured during authentication!" +msgstr "" + +#: ../pyhoca/wxgui/taskbar.py:94 +#, python-format +msgid "" +"PyHoca-GUI\n" +"Connecting you to ,,%s''" +msgstr "" + +#: ../pyhoca/wxgui/taskbar.py:97 +#, python-format +msgid "" +"PyHoca-GUI (Python X2goClient)\n" +"Currently connecting you to remote X2go server ,,%s''" +msgstr "" + +#: ../pyhoca/wxgui/taskbar.py:102 +msgid "" +"PyHoca-GUI\n" +"Connecting you to X2go..." +msgstr "" + +#: ../pyhoca/wxgui/taskbar.py:105 +msgid "" +"PyHoca-GUI (Python X2goClient)\n" +"Client for connecting you to a remote X2go server" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:61 +msgid "GNOME Desktop (GNOME)" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:62 +msgid "K Desktop Environment (KDE)" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:63 +msgid "Lightweight X Desktop (LXDE)" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:64 +msgid "XDMCP Query" +msgstr "" + +#. 'EMBEDDED_MENU': _(u'Embedded Application Menu'), +#: ../pyhoca/wxgui/profilemanager.py:66 +msgid "Windows Terminal Server (RDP-proxy)" +msgstr "" + +#. 'DirectRDP': 'Windows Terminal Server (RDP-direct)', +#: ../pyhoca/wxgui/profilemanager.py:68 +msgid "Single Application" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:69 ../pyhoca/wxgui/profilemanager.py:152 +msgid "Custom command" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:72 +msgid "Internet Browser" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:73 +msgid "Email Client" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:74 +msgid "Openoffice.org" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:75 +msgid "Terminal" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:89 +msgid "Open file with system's default application" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:90 +msgid "Open application chooser dialog" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:91 +msgid "Save incoming file as ..." +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:123 +msgid "Server" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:124 +msgid "Connection Link Speed" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:125 +msgid "Compression" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:126 +msgid "Display" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:127 +msgid "Keyboard" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:128 +msgid "Sound" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:129 +msgid "Printing" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:130 +msgid "Folder Exports" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:131 +msgid "File Import" +msgstr "" + +#. ## +#. ## widgets for the SESSION tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:136 +msgid "Profile name" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:146 +msgid "Profile icon" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:148 +msgid "Session type" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:150 +msgid "Application" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:154 +msgid "RDP settings" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:155 +msgid "RDP server" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:157 +msgid "RDP options" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:159 +msgid "XDMCP server" +msgstr "" + +#. ## +#. ## widgets for the CONNECTION tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:165 ../pyhoca/wxgui/profilemanager.py:175 +msgid "User" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:167 +msgid "Host" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:169 +msgid "Port" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:171 +msgid "RSA/DSA private key" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:174 +msgid "Server behind SSH proxy" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:177 +msgid "Key file" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:180 +msgid "Host[:Port]" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:182 +msgid "SSH Proxy Tunnel" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:190 +msgid "Modem" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:191 +msgid "ISDN" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:192 +msgid "ADSL" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:193 +msgid "WAN" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:194 +msgid "LAN" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:196 +msgid "Method" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:198 +msgid "Image quality" +msgstr "" + +#. ## +#. ## wigdets for the SETTINGS tab +#. ## +#: ../pyhoca/wxgui/profilemanager.py:204 +msgid "Fullscreen" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:205 +msgid "Custom Size" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:210 +msgid "Set display DPI" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:212 +msgid "Keep current keyboard settings" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:213 +msgid "Keyboard layout" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:215 +msgid "Keyboard model" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:217 +msgid "Enable sound support" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:218 +msgid "Pulse Audio" +msgstr "" + +#. Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated. +#. However, config files can contain an Arts configuration, so we will honour this +#: ../pyhoca/wxgui/profilemanager.py:222 +msgid "Arts (not supported)" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:225 +msgid "esd" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:226 +msgid "Use default sound port" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:227 +msgid "Custom sound port" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:229 +msgid "Client Side printing" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:231 +msgid "Use local folder sharing" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:232 +msgid "Path" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:235 ../pyhoca/wxgui/profilemanager.py:252 +msgid "Add" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:237 +msgid "Delete" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:239 +msgid "Convert between client and server encodings" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:240 +msgid "Client encoding" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:242 +msgid "Server encoding" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:245 +msgid "Use file dropbox for local file import" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:246 +msgid "Extensions" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:248 +msgid "Action" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:253 +msgid "Defaults" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:255 +msgid "Save" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:256 +msgid "Reset" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:293 +msgid "PyHoca-GUI Profile Manager - new profile" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:295 +#, python-format +msgid "PyHoca-GUI Profile Manager - %s (connected)" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:297 +#, python-format +msgid "PyHoca-GUI Profile Manager - %s" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:613 +msgid "Session Profile" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:614 +msgid "Connection" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:615 +msgid "Settings" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:616 +msgid "Sharing" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:980 +msgid "Icon Files (*.png)|*.png|All files (*.*)|*" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:983 +msgid "Choose an icon for this session profile" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:1091 +msgid "All files (*.*)|*" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:1093 +#: ../pyhoca/wxgui/profilemanager.py:1108 +msgid "Choose a public SSH key" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:1242 +msgid "Choose a folder to share within a session" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:1307 ../pyhoca/wxgui/menus_taskbar.py:86 +msgid "Profile Manager" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:1307 +msgid "Profile name is missing, profile unusable!!!" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:1329 +#, python-format +msgid "%s - profile added" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:1330 +msgid "A new session profile has been added." +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:1334 +#, python-format +msgid "%s - modified" +msgstr "" + +#: ../pyhoca/wxgui/profilemanager.py:1335 +msgid "Changes to profile have been saved." +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:55 +msgid "Edit Profile" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:57 +msgid "Delete Profile" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:79 ../pyhoca/wxgui/about.py:55 +#: ../pyhoca/wxgui/about.py:57 +#, python-format +msgid "About %s ..." +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:97 +msgid "Client Options" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:105 ../pyhoca/wxgui/menus_taskbar.py:328 +msgid "E&xit" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:142 +msgid "Resume Session" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:145 +msgid "Transfer Session" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:146 +msgid "Suspend Session" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:148 +msgid "Terminate Session" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:186 +msgid "Start &new Session" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:199 +msgid "Running" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:201 +msgid "Suspended" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:211 +msgid "&Clean all sessions" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:213 +msgid "Customize &profile" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:215 +msgid "Share local &folder" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:220 +msgid "&Disconnect from Server" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:248 +msgid "Add Profile" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:274 +msgid "No session profiles defined" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:305 +msgid "Start/Resume Session" +msgstr "" + +#: ../pyhoca/wxgui/menus_taskbar.py:305 +msgid "Connect Server" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:313 +msgid "Public SSH key authentication has been successful." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:335 +msgid "Authentication protocol communication incomplete! Try again..." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:414 +msgid "Cleaning X2go sessions..." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:434 +#, python-format +msgid "%s - disconnect" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:434 +msgid "X2go Profile is now disconnected." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:442 +msgid "New Session Profile" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:471 +#, python-format +msgid "%s - profile deleted" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:471 +msgid "The session profile has been deleted." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:486 +#, python-format +msgid "%s - share local folder with sessions of this profile" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:528 +#, python-format +msgid "%s - channel error" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:528 +#, python-format +msgid "" +"Lost connection to server %s unexpectedly! Try to re-authenticate to the " +"server..." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:531 ../pyhoca/wxgui/frontend.py:535 +#, python-format +msgid "%s - session failure" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:531 +#, python-format +msgid "" +"The command ,,%s'' is not available on X2go server\n" +"%s)." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:533 +#, python-format +msgid "%s - session warning" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:533 +#, python-format +msgid "" +"Reverse TCP port forwarding request for session %s to server port %s has " +"been denied by the X2go server. This is a common issue with SSH, it might " +"help to restart the X2go server's SSH daemon." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:535 +#, python-format +msgid "" +"Forwarding tunnel request to [%s]:%s for session %s was denied by remote " +"X2go/SSH server. Session startup failed." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:537 +#, python-format +msgid "%s - audio warning" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:537 +msgid "" +"The X2go PulseAudio system is not available within Remote Desktop sessions." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:539 ../pyhoca/wxgui/frontend.py:541 +#, python-format +msgid "%s - audio error" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:539 +msgid "The X2go PulseAudio system could not be started." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:541 +msgid "The X2go PulseAudio system has died unexpectedly." +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:543 +#, python-format +msgid "%s - audio problem" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:543 +#, python-format +msgid "" +"The audio connection could not be set up for this session.\n" +"%s" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:547 +#, python-format +msgid "%s - print job" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:547 +#, python-format +msgid "" +"Opening print job dialog not implemented yet!!!\n" +"%s" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:568 +#, python-format +msgid "%s - print error" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:568 +#, python-format +msgid "" +"%s\n" +"...caused by session\n" +"%s" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:570 ../pyhoca/wxgui/frontend.py:572 +#, python-format +msgid "%s - start" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:570 +#, python-format +msgid "" +"New X2go session starting up...\n" +"%s" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:572 +#, python-format +msgid "" +"Another client started X2go session\n" +"%s" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:574 ../pyhoca/wxgui/frontend.py:576 +#, python-format +msgid "%s - resume" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:574 +#, python-format +msgid "" +"Resuming X2go session...\n" +"%s" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:576 +#, python-format +msgid "" +"Another client resumed X2go session\n" +"%s" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:578 +#, python-format +msgid "%s - running" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:578 +#, python-format +msgid "" +"Found already running session\n" +"%s" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:580 +#, python-format +msgid "%s - suspend" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:580 +#, python-format +msgid "" +"X2go Session has been suspended\n" +"%s" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:588 +#, python-format +msgid "%s - terminate" +msgstr "" + +#: ../pyhoca/wxgui/frontend.py:588 +#, python-format +msgid "" +"X2go Session has terminated\n" +"%s" +msgstr "" diff --git a/pyhoca-gui b/pyhoca-gui new file mode 100755 index 0000000..1438b88 --- /dev/null +++ b/pyhoca-gui @@ -0,0 +1,304 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca GUI is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# PyHoca GUI is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +modules ={} + +import gevent +import gevent.monkey +gevent.monkey.patch_all() + +import subprocess + +try: + import wxversion + wxversion.select('2.9') +except: pass +try: + import wxversion + wxversion.select('2.8') +except: pass + +import argparse +import os +import sys +import exceptions +import locale +import gettext + +PROG_NAME = os.path.basename(sys.argv[0]) +PROG_PID = os.getpid() + +from x2go import X2GOCLIENT_OS as _X2GOCLIENT_OS + +if _X2GOCLIENT_OS in ('Linux', 'Mac'): + import setproctitle + setproctitle.setproctitle(PROG_NAME) + +app = sys.argv[0] +if app.startswith('./') or os.path.dirname(PROG_NAME).endswith('trunk'): + sys.path.insert(0, os.path.join(os.path.dirname(PROG_NAME))) + os.environ['PYHOCAGUI_DEVELOPMENT'] = '1' + print '### PyHoca-GUI running in development mode ###' +else: + if _X2GOCLIENT_OS == 'Windows': + sys.stdout = open(os.path.join(os.environ['TEMP'], '%s_stdout.log' % PROG_NAME), 'w') + sys.stderr = open(os.path.join(os.environ['TEMP'], '%s_stderr.log' % PROG_NAME), 'w') + +from pyhoca.wxgui.basepath import locale_basepath + +# Python X2go modules +from x2go import CURRENT_LOCAL_USER as _CURRENT_LOCAL_USER +if _X2GOCLIENT_OS == 'Windows': + from x2go import X2goClientXConfig as _X2goClientXConfig +from x2go import X2goLogger as _X2goLogger +from x2go import x2go_cleanup as _x2go_cleanup + +# X2go backends +from x2go.defaults import BACKENDS_CONTROLSESSION, BACKEND_CONTROLSESSION_DEFAULT +from x2go.defaults import BACKENDS_TERMINALSESSION, BACKEND_TERMINALSESSION_DEFAULT +from x2go.defaults import BACKENDS_SERVERSESSIONINFO, BACKEND_SERVERSESSIONINFO_DEFAULT +from x2go.defaults import BACKENDS_SERVERSESSIONLIST, BACKEND_SERVERSESSIONLIST_DEFAULT +from x2go.defaults import BACKENDS_PROXY, BACKEND_PROXY_DEFAULT +from x2go.defaults import BACKENDS_SESSIONPROFILES, BACKEND_SESSIONPROFILES_DEFAULT +from x2go.defaults import BACKENDS_CLIENTSETTINGS, BACKEND_CLIENTSETTINGS_DEFAULT +from x2go.defaults import BACKENDS_CLIENTPRINTING, BACKEND_CLIENTPRINTING_DEFAULT + +from pyhoca.wxgui import __VERSION__ as _version +from pyhoca.wxgui import PyHocaGUI + +if _X2GOCLIENT_OS == 'Windows': + from pyhoca.wxgui.basepath import nxproxy_binary + os.environ.update({'NXPROXY_BINARY': nxproxy_binary, }) + +__author__ = "Mike Gabriel, Dick Kniep" +__version__ = _version + +# version information +VERSION=_version +VERSION_TEXT=""" +%s[%s] - an X2go GUI client written in Python +---------------------------------------------------------------------- +developed by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +sponsored by Dick Kniep <dick.kniep@lindix.nl> (2010-2011) + +VERSION: %s + +""" % (PROG_NAME, PROG_PID, VERSION) + +def check_running(): + if _X2GOCLIENT_OS in ('Linux', 'Mac'): + p = subprocess.Popen(['ps', '-A'], stdout=subprocess.PIPE) + psA_out = p.communicate() + return psA_out[0].count(PROG_NAME) > 1 + elif _X2GOCLIENT_OS == 'Windows': + import wmi + w = wmi.WMI() + _p_names = [] + for process in w.Win32_Process(): + _p_names.append(process.Name) + return len([ _p_name for _p_name in _p_names if _p_name == PROG_NAME]) > 1 + + +def version(): + # print version text and exit + sys.stderr.write ("%s\n" % VERSION_TEXT) + sys.exit(0) + + +# sometimes we have to fail... +def runtime_error(m, parser=None, exitcode=-1): + """\ + STILL UNDOCUMENTED + """ + if parser is not None: + parser.print_usage() + sys.stderr.write ("%s: error: %s\n" % (PROG_NAME, m)) + sys.exit(exitcode) + + +if _X2GOCLIENT_OS == 'Windows': + _x = _X2goClientXConfig() + _known_xservers = _x.known_xservers + _installed_xservers = _x.installed_xservers + + +if _X2GOCLIENT_OS == 'Windows': + _config_backends = ('FILE', 'WINREG') +elif _X2GOCLIENT_OS == 'Linux': + _config_backends = ('FILE', 'GCONF') +else: + _config_backends = ('FILE') + +for _profiles_backend_default in _config_backends: + if BACKENDS_SESSIONPROFILES[_profiles_backend_default] == BACKEND_SESSIONPROFILES_DEFAULT: + break +for _settings_backend_default in _config_backends: + if BACKENDS_CLIENTSETTINGS[_settings_backend_default] == BACKEND_CLIENTSETTINGS_DEFAULT: + break +for _printing_backend_default in _config_backends: + if BACKENDS_CLIENTPRINTING[_printing_backend_default] == BACKEND_CLIENTPRINTING_DEFAULT: + break + +# debug options... +debug_options = [ + {'args':['-d','--debug'], 'default': False, 'action': 'store_true', 'help': 'enable application debugging code', }, + {'args':['--quiet'], 'default': False, 'action': 'store_true', 'help': 'disable any kind of log output', }, + {'args':['--libdebug'], 'default': False, 'action': 'store_true', 'help': 'enable debugging code of the underlying Python X2go module', }, + {'args':['--libdebug-sftpxfer'], 'default': False, 'action': 'store_true', 'help': 'enable debugging code of Python X2go\'s sFTP server code (very verbose, and even promiscuous)', }, + {'args':['-V', '--version'], 'default': False, 'action': 'store_true', 'help': 'print version number and exit', }, + ] +x2go_gui_options = [ + {'args':['-u','--username'], 'default': None, 'help': 'username for the session (default: current user)', }, + {'args':['-P','--session-profile'], 'default': None, 'help': 'directly connect to a session profile', }, + {'args':['--auto-connect'], 'default': False, 'action': 'store_true', 'help': 'connect sessions via SSH pubkey authentication if possible', }, + {'args':['--show-profile-metatypes'], 'default': False, 'action': 'store_true', 'help': 'show descriptive meta information on session profiles in menus (NOTE: this makes menus appear a bit more sluggish, use it mostly for debugging)', }, + {'args':['--start-on-connect'], 'default': False, 'action': 'store_true', 'help': 'start a session directly after authentication', }, + {'args':['--resume-newest-on-connect', '--resume-on-connect'], 'default': False, 'action': 'store_true', 'help': ' on connect auto-resume the newest suspended session', }, + {'args':['--resume-oldest-on-connect'], 'default': False, 'action': 'store_true', 'help': ' on connect auto-resume the oldest suspended session', }, + {'args':['--resume-all-on-connect'], 'default': False, 'action': 'store_true', 'help': 'auto-resume all suspended session on connect', }, + {'args':['--disable-options'], 'default': False, 'action': 'store_true', 'help': 'disable the client options configuration window', }, + {'args':['--disable-profilemanager'], 'default': False, 'action': 'store_true', 'help': 'disable the session profile manager window', }, + {'args':['--display'], 'default': None, 'metavar': '<hostname>:<screennumber>', 'help': 'set the DISPLAY environment variable to <hostname>:<screennumber>', }, + ] +if _X2GOCLIENT_OS == 'Windows': + x2go_gui_options.append( + {'args':['--lang'], 'default': None, 'metavar': 'LANGUAGE', 'help': 'set the GUI language (currently available: en, de, nl, es)', }, + ) + +backend_options = [ + {'args':['--backend-controlsession'], 'default': None, 'metavar': 'CONTROLSESSION_BACKEND', 'choices': BACKENDS_CONTROLSESSION.keys(), 'help': 'force usage of a certain CONTROLSESSION_BACKEND (do not use this unless you know exactly what you are doing)', }, + {'args':['--backend-terminalsession'], 'default': None, 'metavar': 'TERMINALSESSION_BACKEND', 'choices': BACKENDS_TERMINALSESSION.keys(), 'help': 'force usage of a certain TERMINALSESSION_BACKEND (do not use this unless you know exactly what you are doing)', }, + {'args':['--backend-serversessioninfo'], 'default': None, 'metavar': 'SERVERSESSIONINFO_BACKEND', 'choices': BACKENDS_TERMINALSESSION.keys(), 'help': 'force usage of a certain SERVERSESSIONINFO_BACKEND (do not use this unless you know exactly what you are doing)', }, + {'args':['--backend-serversessionlist'], 'default': None, 'metavar': 'SERVERSESSIONLIST_BACKEND', 'choices': BACKENDS_TERMINALSESSION.keys(), 'help': 'force usage of a certain SERVERSESSIONLIST_BACKEND (do not use this unless you know exactly what you are doing)', }, + {'args':['--backend-proxy'], 'default': None, 'metavar': 'PROXY_BACKEND', 'choices': BACKENDS_PROXY.keys(), 'help': 'force usage of a certain PROXY_BACKEND (do not use this unless you know exactly what you are doing)', }, + {'args':['--backend-sessionprofiles'], 'default': None, 'metavar': 'SESSIONPROFILES_BACKEND', 'choices': _config_backends, 'help': 'use given backend for accessing session profiles, available backends on your system: %s (default: %s)' % (', '.join(_config_backends), _profiles_backend_default), }, + {'args':['--backend-clientsettings'], 'default': None, 'metavar': 'CLIENTSETTINGS_BACKEND', 'choices': _config_backends, 'help': 'use given backend for accessing the client settings configuration, available backends on your system: %s (default: %s)' % (', '.join(_config_backends), _settings_backend_default), }, + {'args':['--backend-clientprinting'], 'default': None, 'metavar': 'CLIENTPRINTING_BACKEND', 'choices': _config_backends, 'help': 'use given backend for accessing the client printing configuration, available backends on your system: %s (default: %s)' % (', '.join(_config_backends), _printing_backend_default), }, + ] + +if _X2GOCLIENT_OS == 'Windows': + contrib_options = [ + {'args':['--start-xserver'], 'default': False, 'action': 'store_true', 'help': 'start the XServer before starting PyHoca-GUI, detect best XServer automatically, if more than one XServer is installed on your system', }, + {'args':['-X', '--preferred-xserver'], 'default': None, 'metavar': 'XSERVER', 'choices': _known_xservers, 'help': 'start either of the currently supported XServers: %s -- make sure your preferred XServer is installed on your system' % _known_xservers, }, + {'args':['--start-pulseaudio'], 'default': False, 'action': 'store_true', 'help': 'start the PulseAudio server before starting PyHoca-GUI', }, + ] + +portable_options = [ + {'args':['--client-rootdir'], 'default': None, 'help': 'define an alternative location where to find plain text config files (default: <HOME>/.x2goclient). This option will set ,,--backend-profiles FILE\'\', ,,--backend-clientsettings FILE\'\' and ,,--backend-clientprinting FILE\'\'', }, + {'args':['--sessions-rootdir'], 'default': None, 'help': 'define an alternative location for session runtime files'}, + {'args':['--ssh-rootdir'], 'default': None, 'help': 'define an alternative location for SSH files', }, + ] + + +def parseargs(): + + global DEBUG + global print_action_args + + p = argparse.ArgumentParser(description='Graphical X2go client implemented in (wx)Python.',\ + formatter_class=argparse.RawDescriptionHelpFormatter, \ + add_help=True, argument_default=None) + p_debugopts = p.add_argument_group('Debug options') + p_guiopts = p.add_argument_group('PyHoca-GUI options') + p_portableopts = p.add_argument_group('Portable application support') + p_backendopts = p.add_argument_group('Python X2go backend options (for experts only)') + + if _X2GOCLIENT_OS == 'Windows': + p_contribopts = p.add_argument_group('XServer options (MS Windows only)') + p_portableopts = p.add_argument_group('File locations for portable setups (MS Windows only)') + _option_groups = ((p_guiopts, x2go_gui_options), (p_debugopts, debug_options), (p_contribopts, contrib_options), (p_portableopts, portable_options), (p_backendopts, backend_options), ) + else: + _option_groups = ((p_guiopts, x2go_gui_options), (p_debugopts, debug_options), (p_portableopts, portable_options), (p_backendopts, backend_options), ) + for (p_group, opts) in _option_groups: + required = False + for opt in opts: + + args = opt['args'] + del opt['args'] + p_group.add_argument(*args, **opt) + + a = p.parse_args() + + logger = _X2goLogger(tag='PyHoca-GUI') + liblogger = _X2goLogger() + + if a.debug: + logger.set_loglevel_debug() + + if a.libdebug: + liblogger.set_loglevel_debug() + + if a.quiet: + logger.set_loglevel_quiet() + liblogger.set_loglevel_quiet() + + if a.libdebug_sftpxfer: + liblogger.enable_debug_sftpxfer() + + if a.version: + version() + + if a.username is None: + a.username = _CURRENT_LOCAL_USER + + if _X2GOCLIENT_OS == 'Windows' and a.preferred_xserver: + if a.preferred_xserver not in _installed_xservers: + runtime_error('Xserver ,,%s\'\' is not installed on your Windows system' % a.preferred_xserver, parser=p) + a.start_xserver = a.preferred_xserver + + if _X2GOCLIENT_OS == 'Windows' and a.start_xserver and a.display: + runtime_error('You can tell PyHoca-GUI to handle XServer startup and then specify a DISPLAY environment variable!', parser=p) + + if a.display: + os.environ.update({'DISPLAY': a.display}) + else: + if _X2GOCLIENT_OS == 'Windows' and not a.start_xserver: + os.environ.update({'DISPLAY': 'localhost:0'}) + + if a.client_rootdir: + a.backend_sessionprofiles='FILE' + a.backend_clientsettings='FILE' + a.backend_clientprinting='FILE' + + return a, logger, liblogger + +def main(): + args, logger, liblogger = parseargs() + if _X2GOCLIENT_OS == 'Windows': + if args.lang: + lang = gettext.translation('pyhoca-gui', localedir=locale_basepath, languages=[args.lang], ) + else: + lang = gettext.translation('pyhoca-gui', localedir=locale_basepath, languages=['en'], ) + lang.install(unicode=True) + else: + gettext.install('pyhoca-gui', localedir=locale_basepath, unicode=True) + + if check_running(): + sys.stderr.write("\n###############################\n### %s: already running for user %s\n###############################\n" % (PROG_NAME, _CURRENT_LOCAL_USER)) + version() + try: + thisPyHocaGUI = PyHocaGUI(args, logger, liblogger) + thisPyHocaGUI.MainLoop() + except KeyboardInterrupt: + _x2go_cleanup() + +if __name__ == '__main__': + main() diff --git a/pyhoca/__init__.py b/pyhoca/__init__.py new file mode 100644 index 0000000..e7fc640 --- /dev/null +++ b/pyhoca/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca GUI is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# PyHoca GUI is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + diff --git a/pyhoca/__init__.pyc b/pyhoca/__init__.pyc new file mode 100644 index 0000000..a903da1 Binary files /dev/null and b/pyhoca/__init__.pyc differ diff --git a/pyhoca/wxgui/__init__.py b/pyhoca/wxgui/__init__.py new file mode 100644 index 0000000..14e27f4 --- /dev/null +++ b/pyhoca/wxgui/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca GUI is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# PyHoca GUI is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +__VERSION__ = '0.0.27' + +from frontend import * diff --git a/pyhoca/wxgui/__init__.pyc b/pyhoca/wxgui/__init__.pyc new file mode 100644 index 0000000..aae2f6a Binary files /dev/null and b/pyhoca/wxgui/__init__.pyc differ diff --git a/pyhoca/wxgui/about.py b/pyhoca/wxgui/about.py new file mode 100644 index 0000000..7014774 --- /dev/null +++ b/pyhoca/wxgui/about.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca GUI is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# PyHoca GUI is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +modules ={} + +import os + +try: + import wxversion + wxversion.select('2.9') +except: pass + +try: + import wxversion + wxversion.select('2.8') +except: pass + +# Python X2go +import x2go + +# wxPython +import wx + +# PyHoca-GUI modules +import basepath + +class PyHocaGUI_AboutFrame(wx.Frame): + """\ + STILL UNDOCUMENTED + + """ + def __init__(self, _PyHocaGUI, caller=None): + + self._PyHocaGUI = _PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + + if x2go.X2GOCLIENT_OS == 'Windows': + wx.Frame.__init__(self, None, -1, _('About %s ...') % 'PyHoca-GUI', size=(403,319)) + else: + wx.Frame.__init__(self, None, -1, _('About %s ...') % 'PyHoca-GUI', size=(400,298)) + self.Bind(wx.EVT_CLOSE, self.OnHide) + + _logo_bitmap = wx.StaticBitmap(self, wx.ID_ANY, wx.Bitmap(os.path.join(basepath.images_basepath, 'pyhoca-about-logo.png')), (0, 0)) + self.bitmap = _logo_bitmap + + if x2go.X2GOCLIENT_OS == 'Windows': + _icon = wx.Bitmap(os.path.join(basepath.icons_basepath, os.path.normpath('PyHoca/16x16/pyhoca-winicon.png'))) + elif x2go.X2GOCLIENT_OS == 'Mac': + _icon = wx.Bitmap(os.path.join(basepath.icons_basepath, os.path.normpath('PyHoca/128x128/pyhoca-winicon.png'))) + else: + _icon = wx.Bitmap(os.path.join(basepath.icons_basepath, os.path.normpath('PyHoca/22x22/pyhoca-winicon.png'))) + self.icon = self.SetIcon(wx.IconFromBitmap(_icon)) + + self.CenterOnScreen() + + def OnHide(self, evt): + self.Show(False) + + diff --git a/pyhoca/wxgui/about.pyc b/pyhoca/wxgui/about.pyc new file mode 100644 index 0000000..5843945 Binary files /dev/null and b/pyhoca/wxgui/about.pyc differ diff --git a/pyhoca/wxgui/basepath.py b/pyhoca/wxgui/basepath.py new file mode 100644 index 0000000..9b11e0a --- /dev/null +++ b/pyhoca/wxgui/basepath.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca GUI is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# PyHoca GUI is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +import os +from x2go import X2GOCLIENT_OS as _X2GOCLIENT_OS + +if os.environ.has_key('PYHOCAGUI_DEVELOPMENT') and os.environ['PYHOCAGUI_DEVELOPMENT'] == '1': + _base_location = os.path.abspath(os.path.curdir) + _icons_location = os.path.join(_base_location, 'icons') + _images_location = os.path.join(_base_location, 'img') + if _X2GOCLIENT_OS != 'Windows': + _locale_location = os.path.join(_base_location, 'locale') + else: + _locale_location = os.path.join(_base_location, 'build', 'mo') + _nxproxy_location = os.path.join(_base_location, 'contrib', 'nxproxy-mswin', 'nxproxy.exe') +else: + if _X2GOCLIENT_OS == 'Windows': + _base_location = os.path.abspath(os.path.curdir) + _icons_location = os.path.join(_base_location, 'icons') + _images_location = os.path.join(_base_location, 'img') + _locale_location = os.path.join(_base_location, 'mo') + _nxproxy_location = os.path.join(_base_location, 'nxproxy', 'nxproxy.exe') + else: + _icons_location = '/usr/share/icons' + _images_location = '/usr/share/pyhoca/img' + _locale_location = '/usr/share/locale' + +icons_basepath = _icons_location +images_basepath = _images_location +if _X2GOCLIENT_OS == 'Windows': + nxproxy_binary = _nxproxy_location +locale_basepath = _locale_location diff --git a/pyhoca/wxgui/basepath.pyc b/pyhoca/wxgui/basepath.pyc new file mode 100644 index 0000000..2c13bdc Binary files /dev/null and b/pyhoca/wxgui/basepath.pyc differ diff --git a/pyhoca/wxgui/frontend.py b/pyhoca/wxgui/frontend.py new file mode 100644 index 0000000..9201c1a --- /dev/null +++ b/pyhoca/wxgui/frontend.py @@ -0,0 +1,588 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca GUI is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# PyHoca GUI is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +modules ={} + +try: + import wxversion + wxversion.select('2.9') + #print 'USING wxPython 2.9' + +except: pass + +try: + import wxversion + wxversion.select('2.8') + #print 'USING wxPython 2.8' + +except: pass + + +# Python X2go +import x2go + +import os +import gevent +import gevent.monkey +gevent.monkey.patch_all() + +import wx + +import time +import sys +import platform +import types +import copy +import threading + +# PyHoca-GUI modules +import about +import logon +import taskbar +import menus_taskbar +import profilemanager +import notify +import basepath + +wx.SetDefaultPyEncoding("utf-8") + +class PyHocaGUI(wx.App, x2go.X2goClient): + + def __init__(self, args, logger, liblogger, + appname='PyHoca-GUI', + vendorname='Open Source Software Foundation',): + """\ + STILL UNDOCUMENTED + + """ + self.appname = appname + self.vendorname = vendorname + + self.args = args + if logger is None: + self._pyhoca_logger = x2go.X2goLogger(tag=self.appname) + else: + self._pyhoca_logger = copy.deepcopy(logger) + self._pyhoca_logger.tag = self.appname + + if liblogger is None: + self._pyhoca_liblogger = x2go.X2goLogger() + else: + self._pyhoca_liblogger = copy.deepcopy(liblogger) + + wx.App.__init__(self) + self.Bind(wx.EVT_IDLE, self.OnIdle) + + def OnInit(self): + """\ + STILL UNDOCUMENTED + + """ + wx.BeginBusyCursor() + + splash_bitmap = wx.Bitmap(os.path.join(basepath.images_basepath, 'pyhoca-splash.png'), wx.BITMAP_TYPE_PNG) + wx.SplashScreen(splash_bitmap, wx.SPLASH_CENTRE_ON_SCREEN|wx.SPLASH_TIMEOUT, 3000, None, style=wx.SIMPLE_BORDER|wx.STAY_ON_TOP) + wx.Yield() + + _x2goclient_kwargs = { + 'use_listsessions_cache': True, + 'auto_update_listsessions_cache': True, + 'auto_update_sessionregistry': True, + 'auto_register_sessions': True, + 'logger': self._pyhoca_liblogger, + } + if self.args.backend_controlsession is not None: + _x2goclient_kwargs['control_backend'] = self.args.backend_controlsession + if self.args.backend_terminalsession is not None: + _x2goclient_kwargs['terminal_backend'] = self.args.backend_terminalsession + if self.args.backend_serversessioninfo is not None: + _x2goclient_kwargs['info_backend'] = self.args.backend_serversessioninfo + if self.args.backend_serversessionlist is not None: + _x2goclient_kwargs['list_backend'] = self.args.backend_serversessionlist + if self.args.backend_proxy is not None: + _x2goclient_kwargs['proxy_backend'] = self.args.backend_proxy + if self.args.backend_sessionprofiles is not None: + _x2goclient_kwargs['profiles_backend'] = self.args.backend_sessionprofiles + if self.args.backend_clientsettings is not None: + _x2goclient_kwargs['settings_backend'] = self.args.backend_clientsettings + if self.args.backend_clientprinting is not None: + _x2goclient_kwargs['printing_backend'] = self.args.backend_clientprinting + + if self.args.client_rootdir is not None: + _x2goclient_kwargs['client_rootdir'] = self.args.client_rootdir + if self.args.sessions_rootdir is not None: + _x2goclient_kwargs['sessions_rootdir'] = self.args.sessions_rootdir + if self.args.ssh_rootdir is not None: + _x2goclient_kwargs['ssh_rootdir'] = self.args.ssh_rootdir + + if x2go.X2GOCLIENT_OS == 'Windows': + _x2goclient_kwargs['start_xserver'] = self.args.start_xserver + _x2goclient_kwargs['start_pulseaudio'] = self.args.start_pulseaudio + + if x2go.X2GOCLIENT_OS == 'Windows' and self.args.start_pulseaudio and os.environ.has_key('PYHOCAGUI_DEVELOPMENT') and os.environ['PYHOCAGUI_DEVELOPMENT'] == '1': + _x2goclient_kwargs['pulseaudio_installdir'] = os.path.normpath('../../contrib/pulseaudio-mswin/pulseaudio-0.9.6') + x2go.X2goClient.__init__(self, **_x2goclient_kwargs) + self.SetAppName(self.appname) + self.SetVendorName(self.vendorname) + self.startGUI() + wx.EndBusyCursor() + return True + + def OnIdle(self, evt): + """\ + STILL UNDOCUMENTED + + """ + gevent.sleep(.04) + evt.RequestMore() + return True + + def startGUI(self): + """\ + STILL UNDOCUMENTED + + """ + + # cmd line options + self.start_on_connect = self.args.start_on_connect + self.resume_newest_on_connect = self.args.resume_newest_on_connect + self.resume_oldest_on_connect = self.args.resume_oldest_on_connect + self.resume_all_on_connect = self.args.resume_all_on_connect + self.show_profile_metatypes = self.args.show_profile_metatypes + + self._pyhoca_logger('PyHoca GUI is starting up', loglevel=x2go.log.loglevel_INFO, ) + self._pyhoca_logger('registering PyHocaGUI control sessions', loglevel=x2go.log.loglevel_INFO, ) + + self.about = about.PyHocaGUI_AboutFrame(self) + self.about.Show(False) + + self.taskbar = taskbar.PyHocaGUI_TaskBarIcon(self.about) + self.taskbar.Bind(wx.EVT_TASKBAR_LEFT_DCLICK, lambda _Show: self.about.Show(True)) + self.taskbar.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.taskbar.CreateSessionManagerPopupMenu) + + if x2go.X2GOCLIENT_OS in ('Linux', 'Mac'): + self.notifier = notify.libnotify_NotifierPopup(self) + if x2go.X2GOCLIENT_OS in ('Windows'): + self.notifier = notify.notificationmessage_NotifierPopup(self.about) + + self._sub_windows = [] + self._hide_notifications_map = {} + self._eventid_profilenames_map = {} + self._eventid_sessionnames_map = {} + self._temp_disabled_profile_names = [] + + # We register one session per available session profile. + # These registered sessions will be used to access the profile's + # ,,control'' sessions at first. Later, any session can be used + # to access the profile's control session. + self.register_all_session_profiles(return_objects=True) + + if self.args.auto_connect: + + for session_uuid in self._X2goClient__client_registered_sessions: + self._pyhoca_logger('auto-connecting to %s session profile' % s.get_profile_name(), loglevel=x2go.log.loglevel_NOTICE) + gevent.spawn(self._auto_connect, session_uuid) + + self.profilemanager_disabled = self.args.disable_profilemanager + + ### + ### disable functionality for release versions + ### + if os.environ.has_key('PYHOCAGUI_DEVELOPMENT') and os.environ['PYHOCAGUI_DEVELOPMENT'] == '1': + self.options_disabled = self.args.disable_options + else: + self._pyhoca_logger('the current release of %s does not support client configuration' % self.appname, loglevel=x2go.log.loglevel_WARN) + self.options_disabled = True + + if self.args.session_profile: + for profile_name in self.args.session_profile.split(','): + if not self._X2goClient__client_registered_sessions_of_profile_name(profile_name): + continue + _dummy_id = wx.NewId() + self._eventid_profilenames_map[_dummy_id] = profile_name + evt = wx.CommandEvent() + evt.SetId(_dummy_id) + self.start_on_connect = True + self.resume_newest_on_connect = True + self._pyhoca_logger('opening default session profile %s' % profile_name, loglevel=x2go.log.loglevel_NOTICE) + self.OnSessionAuthenticate(evt) + + def _auto_connect(self, session_uuid): + + try: + self._X2goClient__connect_session(session_uuid) + self._pyhoca_logger('auto-connected session profile %s' % self._X2goClient__get_session_profile_name(session_uuid), loglevel=x2go.log.loglevel_NOTICE) + except x2go.AuthenticationException: + self._pyhoca_logger('no pubkey authentication available for session profile %s' % self._X2goClient__get_session_profile_name(session_uuid), loglevel=x2go.log.loglevel_NOTICE) + + # wx.App's OnExit method + def OnExit(self): + """\ + STILL UNDOCUMENTED + + """ + x2go.x2go_cleanup() + # close open password dialogs (or other remaining windows) + for _win in self._sub_windows: + _win.Close() + _win.Destroy() + self.taskbar.Close() + self.taskbar.Destroy() + self.about.Close() + self.about.Destroy() + + # the taskbar's OnExit method... + def OnTaskbarExit(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self._pyhoca_logger('exit application', loglevel=x2go.log.loglevel_INFO, ) + self.Exit() + + def _start_on_connect(self, evt, session_uuid): + if not self._X2goClient__list_sessions(session_uuid): + self.OnSessionStart(evt) + + def _resume_newest_on_connect(self, evt, session_uuid): + session_infos = self._X2goClient__list_sessions(session_uuid) + if session_infos: + newest_session_name = x2go.utils.session_names_by_timestamp(session_infos)[-1] + self._resume_on_connect(evt, session_uuid, newest_session_name) + return True + return False + + def _resume_oldest_on_connect(self, evt, session_uuid): + session_infos = self._X2goClient__list_sessions(session_uuid) + if session_infos: + newest_session_name = x2go.utils.session_names_by_timestamp(session_infos)[0] + self._resume_on_connect(evt, session_uuid, newest_session_name) + return True + return False + + def _resume_all_on_connect(self, evt, session_uuid): + session_infos = self._X2goClient__list_sessions(session_uuid) + if session_infos: + for session_name in session_infos.keys(): + self._resume_on_connect(evt, session_uuid, session_name) + return True + return False + + def _resume_on_connect(self, evt, session_uuid, session_name): + self._eventid_sessionnames_map[evt.GetId()] = session_name + self.OnSessionResume(evt) + + def _post_authenticate(self, evt, session_uuid): + + _resumed = False + if self.resume_newest_on_connect: + _resumed = self._resume_newest_on_connect(evt, session_uuid) + elif self.resume_oldest_on_connect: + _resumed = self._resume_oldest_on_connect(evt, session_uuid) + elif self.resume_all_on_connect: + _resumed = self._resume_all_on_connect(evt, session_uuid) + if not _resumed and self.start_on_connect: + self._start_on_connect(evt, session_uuid) + + def _do_authenticate(self, evt, session_uuid): + profile_name = self.current_profile_name + try: + self._X2goClient__connect_session(session_uuid, add_to_known_hosts=True) + if not self._X2goClient__server_valid_x2gouser(session_uuid): + self.notifier.send(_(u'%s - connect failure') % profile_name, _(u'User is not allowed to start X2go sessions!'), icon='session_warning', timeout=10000) + self._X2goClient__disconnect_profile(profile_name) + self._temp_disabled_profile_names.remove(profile_name) + else: + self.notifier.send(_(u'%s - connect') % profile_name, _(u'Public SSH key authentication has been successful.'), icon='auth_success', timeout=4000) + _dummy = self._X2goClient__list_sessions(session_uuid, refresh_cache=True) + self._post_authenticate(evt, session_uuid) + self._temp_disabled_profile_names.remove(profile_name) + except x2go.AuthenticationException: + self._pyhoca_logger('public SSH key authentication to server failed, trying next auth-mechanism', loglevel=x2go.log.loglevel_INFO, ) + _logon_window = logon.PyHocaGUI_DialogBoxPassword(self, profile_name, caller=self ) + self._sub_windows.append(_logon_window) + except x2go.X2goSSHProxyAuthenticationException: + self._pyhoca_logger('public SSH key authentication for SSH proxy failed, trying next auth-mechanism', loglevel=x2go.log.loglevel_INFO, ) + _logon_window = logon.PyHocaGUI_DialogBoxPassword(self, profile_name, caller=self, sshproxy_auth=True ) + self._sub_windows.append(_logon_window) + except x2go.SSHException, e: + self.notifier.send(_(u'%s - connect error') % profile_name, '%s!' % str(e), icon='auth_error', timeout=4000) + self._temp_disabled_profile_names.remove(profile_name) + except gevent.dns.DNSError, e: + self.notifier.send(_(u'%s - connect error') % profile_name, '%s!' % e.strerror, icon='auth_error', timeout=4000) + self._temp_disabled_profile_names.remove(profile_name) + except gevent.socket.error, e: + self.notifier.send(_(u'%s - connect error') % profile_name, '%s!' % e.strerror, icon='auth_error', timeout=4000) + self._temp_disabled_profile_names.remove(profile_name) + except EOFError, e: + self.notifier.send(_(u'%s - connect error') % profile_name, _(u'Authentication protocol communication incomplete! Try again...'), icon='auth_error', timeout=4000) + self._temp_disabled_profile_names.remove(profile_name) + except x2go.X2goSSHProxyException, e: + self.notifier.send(_(u'%s - key error') % profile_name, '%s!' % str(e), icon='auth_error', timeout=4000) + self._temp_disabled_profile_names.remove(profile_name) + except: + self.notifier.send('%s - connect error' % profile_name, 'An unknown error occurred during authentication!', icon='auth_error', timeout=4000) + self._temp_disabled_profile_names.remove(profile_name) + self.taskbar.SetIconIdle() + + + def OnSessionAuthenticate(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.current_profile_name = self._eventid_profilenames_map[evt.GetId()] + self.taskbar.SetIconConnecting(self.current_profile_name) + session_uuid = self._X2goClient__register_session(profile_name=self.current_profile_name) + self._temp_disabled_profile_names.append(self.current_profile_name) + gevent.spawn(self._do_authenticate, evt, session_uuid) + + def OnSessionStart(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.current_profile_name = self._eventid_profilenames_map[evt.GetId()] + _query_session = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0] + session_uuid = self._X2goClient__register_session(profile_name=self.current_profile_name) + if self._X2goClient__server_is_alive(session_uuid): + gevent.spawn(self._X2goClient__start_session, session_uuid) + _dummy = self._X2goClient__list_sessions(session_uuid, refresh_cache=True) + + def OnSessionResume(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.current_profile_name = self._eventid_profilenames_map[evt.GetId()] + session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0] + session_name = self._eventid_sessionnames_map[evt.GetId()] + if self._X2goClient__server_is_alive(session_uuid): + gevent.spawn(self._X2goClient__resume_session, session_name=session_name) + _dummy = self._X2goClient__list_sessions(session_uuid, refresh_cache=True) + self._eventid_sessionnames_map = {} + + def OnSessionSuspend(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.current_profile_name = self._eventid_profilenames_map[evt.GetId()] + session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0] + session_name = self._eventid_sessionnames_map[evt.GetId()] + gevent.spawn(self._X2goClient__suspend_session, session_uuid, session_name=session_name) + self._eventid_sessionnames_map = {} + + def OnSessionTerminate(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.current_profile_name = self._eventid_profilenames_map[evt.GetId()] + session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0] + session_name = self._eventid_sessionnames_map[evt.GetId()] + gevent.spawn(self._X2goClient__terminate_session, session_uuid, session_name=session_name) + self._eventid_sessionnames_map = {} + + def OnCleanSessions(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.current_profile_name = self._eventid_profilenames_map[evt.GetId()] + session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0] + session_names = self._X2goClient__server_running_sessions(session_uuid) + self._X2goClient__server_suspended_sessions(session_uuid) + if self._X2goClient__server_is_alive(session_uuid): + if session_names: + _notify_text = _(u'Cleaning X2go sessions...') + self._hide_notifications_map[self.current_profile_name] = [] + for session_name in session_names: + _notify_text += '\n%s' % session_name + self._hide_notifications_map[self.current_profile_name].append(session_name) + self.notifier.send(self.current_profile_name, _notify_text, icon='session_cleanall', timeout=10000) + gevent.spawn(self._X2goClient__clean_sessions, session_uuid) + + def OnSessionDisconnect(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.current_profile_name = self._eventid_profilenames_map[evt.GetId()] + session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0] + # disconnect all profile sessions + if self._X2goClient__server_is_alive(session_uuid): + self._X2goClient__disconnect_profile(self.current_profile_name) + gevent.sleep(2) + if not self._X2goClient__is_session_connected(session_uuid): + self.notifier.send(_(u'%s - disconnect') % self.current_profile_name, _(u'X2go Profile is now disconnected.'), icon='auth_disconnect', timeout=4000) + + def OnProfileAdd(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self._pyhoca_logger('adding new X2go session profile', loglevel=x2go.log.loglevel_INFO, ) + profilemanager.PyHocaGUI_ProfileManager(self, 'ADD', profile_name=_(u'New Session Profile')) + + def OnProfileEdit(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.current_profile_name = self._eventid_profilenames_map[evt.GetId()] + self._pyhoca_logger('editing session profile %s' % self.current_profile_name, loglevel=x2go.log.loglevel_INFO, ) + profilemanager.PyHocaGUI_ProfileManager(self, 'EDIT', profile_name=self.current_profile_name) + + def OnProfileEditWhileConnected(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.current_profile_name = self._eventid_profilenames_map[evt.GetId()] + self._pyhoca_logger('editing session profile %s' % self.current_profile_name, loglevel=x2go.log.loglevel_INFO, ) + profilemanager.PyHocaGUI_ProfileManager(self, 'EDIT_CONNECTED', profile_name=self.current_profile_name) + + def OnProfileDelete(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.current_profile_name = self._eventid_profilenames_map[evt.GetId()] + self._pyhoca_logger('deleting session profile %s' % self.current_profile_name, loglevel=x2go.log.loglevel_INFO, ) + try: + self.session_profiles.delete_profile(self.current_profile_name) + self.notifier.send(title=_(u'%s - profile deleted') % self.current_profile_name, text=_(u'The session profile has been deleted.'), icon='profile_delete') + except: + pass + + def OnShareLocalFolder(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.current_profile_name = self._eventid_profilenames_map[evt.GetId()] + self._pyhoca_logger('Evoking file dialog for ,,Share Local Folder\'\' menu item action', loglevel=x2go.log.loglevel_NOTICE, ) + shared_folder = os.path.expanduser('~') + if not os.path.exists(shared_folder): + shared_folder = os.getcwd() + dlg = wx.DirDialog( + self.about, message=_(u"%s - share local folder with sessions of this profile") % self.current_profile_name, style=1, defaultPath=shared_folder) + # Show the dialog and retrieve the user response. If it is the OK response, + # process the data. + if dlg.ShowModal() == wx.ID_OK: + # This returns a Python list of files that were selected. + self._X2goClient__share_local_folder_with_session(profile_name=self.current_profile_name, folder_name=str(dlg.GetPath())) + + def OnListSessions(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self._pyhoca_logger('The ,,List Sessions\'\' information window is not implemented yet', loglevel=x2go.log.loglevel_WARN, ) + + def OnAbout(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self._pyhoca_logger('Showing the ,,About...\'\' window', loglevel=x2go.log.loglevel_INFO, ) + self.about.Show(True) + + def OnOptions(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self._pyhoca_logger('The ,,Options\'\' configuration window is not implemented yet', loglevel=x2go.log.loglevel_WARN, ) + + def OnClose(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.OnExit(evt) + + ## + ## Python X2go (X2goClient) notification HOOK's... + ## + + # this hook gets called from Python X2go classes if profile_name's control session has died... + def HOOK_on_control_session_death(self, profile_name): + self.notifier.send(_(u'%s - channel error') % profile_name, _(u'Lost connection to server %s unexpectedly! Try to re-authenticate to the server...') % profile_name, icon='session_warning', timeout=10000) + + def HOOK_no_such_command(self, cmd, profile_name='UNKNOWN', session_name='UNKNOWN'): + self.notifier.send(_(u'%s - session failure') % profile_name, _('The command ,,%s\'\' is not available on X2go server\n%s).') % (cmd, session_name), icon='session_error', timeout=10000) + def HOOK_rforward_request_denied(self, profile_name='UNKNOWN', session_name='UNKNOWN', server_port=0): + self.notifier.send(_(u'%s - session warning') % profile_name, _(u'Reverse TCP port forwarding request for session %s to server port %s has been denied by the X2go server. This is a common issue with SSH, it might help to restart the X2go server\'s SSH daemon.') % (session_name, server_port), icon='session_warning', timeout=10000) + def HOOK_forwarding_tunnel_setup_failed(self, profile_name='UNKNOWN', session_name='UNKNOWN', chain_host='UNKNOWN', chain_port=0): + self.notifier.send(_(u'%s - session failure') % profile_name, _(u'Forwarding tunnel request to [%s]:%s for session %s was denied by remote X2go/SSH server. Session startup failed.') % (chain_host, chain_port, session_name), icon='session_error', timeout=10000) + def HOOK_pulseaudio_not_supported_in_RDPsession(self): + self.notifier.send(_(u'%s - audio warning') % self.appname, _(u'The X2go PulseAudio system is not available within Remote Desktop sessions.'), icon='audio_error', timeout=10000) + def HOOK_pulseaudio_server_startup_failed(self): + self.notifier.send(_(u'%s - audio error') % self.appname, _(u'The X2go PulseAudio system could not be started.'), icon='audio_error', timeout=10000) + def HOOK_pulseaudio_server_died(self): + self.notifier.send(_(u'%s - audio error') % self.appname, _(u'The X2go PulseAudio system has died unexpectedly.'), icon='audio_error', timeout=10000) + def HOOK_on_sound_tunnel_failed(self, profile_name='UNKNOWN', session_name='UNKNOWN'): + self.notifier.send(_(u'%s - audio problem') % profile_name, _(u'The audio connection could not be set up for this session.\n%s') % session_name, icon='session_warning', timeout=5000) + + # this hook gets called from Python X2go classes if a print job is coming in and the print action is ,,DIALOG''... + def HOOK_open_print_dialog(self, filename, profile_name='UNKNOWN', session_name='UNKNOWN'): + self.notifier.send(_(u'%s - print job') % profile_name, _(u'Opening print job dialog not implemented yet!!!\n%s') % session_name, icon='session_printing', timeout=5000) + + #_p = wx.Dialog(None, -1, '%s (%s)' % (session_name, profile_name), size=(450,380)) + #print 1 + #_p_data = wx.PrintData() + #print 2 + #_p_data.SetFilename(filename) + #print 3 + #_p_dialogdata = wx.PrintDialogData(_p_data) + #print 4 + ##_p_dialog = wx.PrintDialog(_p, _p_dialogdata) + #print 5 + ##_p_dialog.ShowModal() + #print 6 + ##_p.Fit() + #print 7 + ##_p.Layout() + #print 8 + ##_p.Show(True) + #print 9 + def HOOK_printaction_error(self, filename, profile_name='UNKNOWN', session_name='UNKNOWN', err_msg='GENERIC_ERROR'): + self.notifier.send(_(u'%s - print error') % profile_name, _(u'%s\n...caused by session\n%s') % (err_msg, session_name), icon='session_error', timeout=5000) + def HOOK_on_session_has_started_by_me(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'): + self.notifier.send(_(u'%s - start') % profile_name, _(u'New X2go session starting up...\n%s') % session_name, icon='session_start', timeout=5000) + def HOOK_on_session_has_started_by_other(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'): + self.notifier.send(_(u'%s - start') % profile_name, _(u'Another client started X2go session\n%s') % session_name, icon='session_start', timeout=5000) + def HOOK_on_session_has_resumed_by_me(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'): + self.notifier.send(_(u'%s - resume') % profile_name, _(u'Resuming X2go session...\n%s') % session_name, icon='session_resume', timeout=5000) + def HOOK_on_session_has_resumed_by_other(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'): + self.notifier.send(_(u'%s - resume') % profile_name, _(u'Another client resumed X2go session\n%s') % session_name, icon='session_resume', timeout=5000) + def HOOK_on_found_session_running_after_connect(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'): + gevent.spawn_later(5, self.notifier.send, _(u'%s - running') % profile_name, _(u'Found already running session\n%s') % session_name, icon='session_resume', timeout=5000) + def HOOK_on_session_has_been_suspended(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'): + self.notifier.send(_(u'%s - suspend') % profile_name, _(u'X2go Session has been suspended\n%s') % session_name, icon='session_suspend', timeout=5000) + def HOOK_on_session_has_terminated(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'): + # avoid notification if X2goClient.clean_sessions has been used to terminate sessions + if self._hide_notifications_map.has_key(profile_name) and session_name in self._hide_notifications_map[profile_name]: + self._hide_notifications_map[profile_name].remove(session_name) + if not self._hide_notifications_map[profile_name]: + del self._hide_notifications_map[profile_name] + else: + self.notifier.send(_(u'%s - terminate') % profile_name, _(u'X2go Session has terminated\n%s') % session_name, icon='session_terminate', timeout=5000) diff --git a/pyhoca/wxgui/frontend.pyc b/pyhoca/wxgui/frontend.pyc new file mode 100644 index 0000000..7cf3372 Binary files /dev/null and b/pyhoca/wxgui/frontend.pyc differ diff --git a/pyhoca/wxgui/logon.py b/pyhoca/wxgui/logon.py new file mode 100644 index 0000000..a42c238 --- /dev/null +++ b/pyhoca/wxgui/logon.py @@ -0,0 +1,323 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca GUI is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# PyHoca GUI is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +modules ={} + +try: + import wxversion + wxversion.select('2.9') +except: pass + +try: + import wxversion + wxversion.select('2.8') +except: pass + +# Python X2go +import x2go + +import gevent +import gevent.monkey +gevent.monkey.patch_all() + +import wx +import wx.lib.scrolledpanel as scrolled +import wx.lib.mixins.listctrl as listmix + +import time +import os +import sys +import platform +import types +import copy +import threading + +# PyHoca-GUI modules +# ... NONE ... + +if os.environ.has_key('DESKTOP_SESSION'): + WINDOW_MANAGER = os.environ['DESKTOP_SESSION'] +else: + WINDOW_MANAGER = 'generic' + +class PyHocaGUI_DialogBoxPassword(wx.Dialog): + """\ + STILL UNDOCUMENTED + + """ + def __init__(self, _PyHocaGUI, profile_name, caller=None, sshproxy_auth=False): + + self._PyHocaGUI = _PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + self._pyhoca_logger('password dialog box started', loglevel=x2go.loglevel_INFO, ) + + self.sshproxy_auth = sshproxy_auth + + self.current_profile_name = profile_name + self.current_profile_config = self._PyHocaGUI.session_profiles.get_profile_config(profile_name) + + wx.Dialog.__init__(self, None, -1, profile_name) + + if self.sshproxy_auth: + self.sshproxy_started = False + self.SetTitle(_(u'%s (via %s)') % (profile_name, self.current_profile_config['sshproxyhost'])) + + self.userLbl = wx.StaticText(self, wx.ID_ANY, _(u'Username')+':', size=(-1, -1)) + self.userTxt = wx.TextCtrl(self, wx.ID_ANY, '', style=wx.TE_PROCESS_ENTER, size=(120, -1)) + self.passwordLbl = wx.StaticText(self, wx.ID_ANY, _(u'Password')+':', size=(-1, -1)) + self.passwordTxt = wx.TextCtrl(self, wx.ID_ANY, '', style=wx.TE_PROCESS_ENTER|wx.TE_PASSWORD, size=(120, -1)) + self.passwordTxt.SetFocus() + self.loginBtn = wx.Button(self, wx.ID_OK, _(u'Authenticate')) + self.loginBtn.SetDefault() + + # widgets + if self.sshproxy_auth: + self.sshProxyUserLbl = wx.StaticText(self, wx.ID_ANY, _(u'Username')+':', size=(-1, -1)) + self.sshProxyUserTxt = wx.TextCtrl(self, wx.ID_ANY, '', style=wx.TE_PROCESS_ENTER, size=(120, -1)) + self.sshProxyPasswordLbl = wx.StaticText(self, wx.ID_ANY, _(u'Password')+':', size=(-1, -1)) + self.sshProxyPasswordTxt = wx.TextCtrl(self, wx.ID_ANY, '', style=wx.TE_PROCESS_ENTER|wx.TE_PASSWORD, size=(120, -1)) + self.sshProxyPasswordTxt.SetFocus() + self.sshProxyLoginBtn = wx.Button(self, wx.ID_OK, _(u' Start SSH tunnel ')) + self.sshProxyLoginBtn.SetDefault() + + headerWidth = max(self.userLbl.GetSize().GetWidth(), self.passwordLbl.GetSize().GetWidth()) + 150 + sshProxyHeaderWidth = max(self.sshProxyUserLbl.GetSize().GetWidth(), self.sshProxyPasswordLbl.GetSize().GetWidth()) + 150 + + self.headerLbl = wx.StaticText(self, wx.ID_ANY, _(u'Session login')+':', size=(headerWidth, -1)) + self.sshProxyHeaderLbl = wx.StaticText(self, wx.ID_ANY, _(u'SSH proxy server login')+':', size=(sshProxyHeaderWidth, -1)) + self.headerLbl.SetFont(wx.Font(-1, wx.DEFAULT, wx.NORMAL, wx.FONTWEIGHT_BOLD, 0, "")) + self.sshProxyHeaderLbl.SetFont(wx.Font(-1, wx.DEFAULT, wx.NORMAL, wx.FONTWEIGHT_BOLD, 0, "")) + + self.headerLbl.Enable(False) + self.userLbl.Enable(False) + self.userTxt.Enable(False) + self.passwordLbl.Enable(False) + self.passwordTxt.Enable(False) + self.loginBtn.Enable(False) + + self.cancelBtn = wx.Button(self, wx.ID_CANCEL, _(u'Cancel')) + + if self.sshproxy_auth: + self.Bind(wx.EVT_BUTTON, self.OnLogin, self.sshProxyLoginBtn) + self.Bind(wx.EVT_TEXT_ENTER, self.OnLogin, self.sshProxyUserTxt) + self.Bind(wx.EVT_TEXT_ENTER, self.OnLogin, self.sshProxyPasswordTxt) + + self.Bind(wx.EVT_BUTTON, self.OnLogin, self.loginBtn) + self.Bind(wx.EVT_TEXT_ENTER, self.OnLogin, self.userTxt) + self.Bind(wx.EVT_TEXT_ENTER, self.OnLogin, self.passwordTxt) + self.Bind(wx.EVT_BUTTON, self.OnCancel, self.cancelBtn) + + btnSizer = wx.BoxSizer(wx.HORIZONTAL) + if not self.sshproxy_auth: + credSizer = wx.GridBagSizer(hgap=2, vgap=2) + mainSizer = wx.BoxSizer(wx.VERTICAL) + + # sizer / layout + if self.sshproxy_auth: + + credSizer = wx.GridBagSizer(hgap=4, vgap=2) + + credSizer.Add(self.sshProxyHeaderLbl, pos=(0,0), span=(1,2), flag=wx.ALL|wx.EXPAND, border=5) + credSizer.Add(self.headerLbl, pos=(0,2), span=(1,2), flag=wx.ALL|wx.EXPAND, border=5) + + credSizer.Add(self.sshProxyUserLbl, pos=(1,0), flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border=5) + credSizer.Add(self.sshProxyUserTxt, pos=(1,1), flag=wx.ALL, border=5) + + credSizer.Add(self.userLbl, pos=(1,2), flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border=5) + credSizer.Add(self.userTxt, pos=(1,3), flag=wx.ALL, border=5) + + else: + credSizer.Add(self.userLbl, pos=(0,0), flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border=5) + credSizer.Add(self.userTxt, pos=(0,1), flag=wx.ALL, border=5) + + if self.sshproxy_auth: + + credSizer.Add(self.sshProxyPasswordLbl, pos=(2,0), flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border=5) + credSizer.Add(self.sshProxyPasswordTxt, pos=(2,1), flag=wx.ALL, border=5) + + credSizer.Add(self.passwordLbl, pos=(2,2), flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border=5) + credSizer.Add(self.passwordTxt, pos=(2,3), flag=wx.ALL, border=5) + + else: + credSizer.Add(self.passwordLbl, pos=(1,0), flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border=5) + credSizer.Add(self.passwordTxt, pos=(1,1), flag=wx.ALL, border=5) + + if self.sshproxy_auth: + btnSizer.Add(self.sshProxyLoginBtn, 0, wx.ALL, 5) + btnSizer.Add(self.loginBtn, 0, wx.ALL, 5) + btnSizer.Add(self.cancelBtn, 0, wx.ALL, 5) + + mainSizer.Add(credSizer, 0, wx.ALL, 5) + mainSizer.Add(btnSizer, 0, wx.ALL|wx.ALIGN_RIGHT, 5) + + if self.current_profile_config.has_key('user'): + self.userTxt.SetValue(self.current_profile_config['user']) + else: + self.userTxt.SetValue(self._PyHocaGUI.args.username) + + if self.sshproxy_auth: + + if self.current_profile_config.has_key('sshproxyuser'): + self.sshProxyUserTxt.SetValue(self.current_profile_config['sshproxyuser']) + + # Logged in variable + self.loggedIn = False + + self.SetSizerAndFit(mainSizer) + self.Layout() + + maxX, maxY = wx.GetDisplaySize() + + if (x2go.X2GOCLIENT_OS == 'Linux') and (WINDOW_MANAGER == 'gnome'): + self.Move((maxX - (self.GetSize().GetWidth() + 20), 35)) + else: + self.Move((maxX - (self.GetSize().GetWidth() + 20), maxY - (self.GetSize().GetHeight() + 70), )) + + self.Show() + + def OnLogin(self, evt): + """\ + STILL UNDOCUMENTED + + """ + username = self.userTxt.GetValue() + password = self.passwordTxt.GetValue() + if self.sshproxy_auth: + sshproxy_user = self.sshProxyUserTxt.GetValue() + sshproxy_password = self.sshProxyPasswordTxt.GetValue() + if len(sshproxy_user) == 0: + return + if len(sshproxy_password) == 0: + return + else: + sshproxy_user = sshproxy_password = None + + if (not self.sshproxy_auth) or self.sshproxy_started: + if len(username) == 0: + return + if len(password) == 0: + return + + if self.sshproxy_auth and (not self.sshproxy_started): + force_password_auth=False + else: + force_password_auth=True + + session_uuid = self._PyHocaGUI._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0] + try: + wx.BeginBusyCursor() + self._PyHocaGUI._X2goClient__connect_session(session_uuid, + username=username, + password=password, + force_password_auth=force_password_auth, + add_to_known_hosts=True, + sshproxy_user=sshproxy_user, + sshproxy_password=sshproxy_password) + if not self._PyHocaGUI._X2goClient__server_valid_x2gouser(session_uuid): + self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name, + title=_(u'%s - connect failure') % self.current_profile_name, + text=_(u'User is not allowed to start X2go sessions!'), + icon='auth_error') + self._PyHocaGUI._X2goClient__disconnect_profile(self.current_profile_name) + else: + self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name, + title=_(u'%s - connect') % self.current_profile_name, + text=_(u'Authentication has been successful.'), + icon='auth_success') + + except x2go.AuthenticationException: + if self.sshproxy_auth and (not self.sshproxy_started): + wx.EndBusyCursor() + self.sshproxy_started = True + self.headerLbl.Enable(True) + self.userLbl.Enable(True) + self.userTxt.Enable(True) + self.passwordLbl.Enable(True) + self.passwordTxt.Enable(True) + self.passwordTxt.SetFocus() + self.loginBtn.Enable(True) + self.loginBtn.SetDefault() + self.sshProxyHeaderLbl.Enable(False) + self.sshProxyUserLbl.Enable(False) + self.sshProxyUserTxt.Enable(False) + self.sshProxyPasswordLbl.Enable(False) + self.sshProxyPasswordTxt.Enable(False) + self.sshProxyLoginBtn.Enable(False) + self.sshProxyLoginBtn.SetLabel(_(u'SSH tunnel started')) + return + else: + self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name, + title=_(u'%s - connect failure') % self.current_profile_name, + text=_(u'Authentication failed!'), + icon='auth_failed') + except x2go.X2goSSHProxyAuthenticationException: + wx.EndBusyCursor() + self.sshProxyPasswordTxt.SetValue('') + self._PyHocaGUI.notifier.send(title=_(u'%s - ssh proxy') % self.current_profile_name, + text=_(u'Authentication to the SSH proxy server failed!'), + icon='auth_failed') + return + + except gevent.dns.DNSError, e: + self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name, + title=_(u'%s - connect error') % self.current_profile_name, + text='%s!' % e.strerror, + icon='auth_error') + + except gevent.socket.error, e: + self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name, + title=_(u'%s - connect error') % self.current_profile_name, + text='%s!' % e.strerror, + icon='auth_error') + + except x2go.X2goSSHProxyException, e: + self._PyHocaGUI.notifier.prepare(_(u'%s - key error') % profile_name, '%s!' % str(e), icon='auth_error', timeout=4000) + + except: + self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name, + title=_(u'%s - connect error') % self.current_profile_name, + text=_(u'An unknown error occured during authentication!'), + icon='auth_error') + + self._PyHocaGUI.notifier.send(self.current_profile_name, context='AUTH_%s' % self.current_profile_name, timeout=4000) + wx.SetCursor(wx.StockCursor(wx.CURSOR_ARROW)) + wx.EndBusyCursor() + if self._PyHocaGUI._X2goClient__is_session_connected(session_uuid): + _dummy = self._PyHocaGUI.list_sessions(session_uuid, refresh_cache=True) + self._PyHocaGUI._post_authenticate(evt, session_uuid) + self.sshproxy_started = False + self.Destroy() + + def OnCancel(self, evt): + self.Destroy() + + def Destroy(self): + try: + self._PyHocaGUI._sub_windows.remove(self) + except ValueError: + pass + try: + self._PyHocaGUI._temp_disabled_profile_names.remove(self.current_profile_name) + except ValueError: + pass + wx.Dialog.Destroy(self) + + + diff --git a/pyhoca/wxgui/logon.pyc b/pyhoca/wxgui/logon.pyc new file mode 100644 index 0000000..f93703a Binary files /dev/null and b/pyhoca/wxgui/logon.pyc differ diff --git a/pyhoca/wxgui/menus_taskbar.py b/pyhoca/wxgui/menus_taskbar.py new file mode 100644 index 0000000..4b8075c --- /dev/null +++ b/pyhoca/wxgui/menus_taskbar.py @@ -0,0 +1,331 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca GUI is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# PyHoca GUI is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +try: + import wxversion + wxversion.select('2.9') +except: pass + +try: + import wxversion + wxversion.select('2.8') +except: pass + +import wx + +class PyHocaGUI_Menu_TaskbarManageProfile(wx.Menu): + """\ + STILL UNDOCUMENTED + + """ + def __init__(self, _PyHocaGUI, caller=None, profile_name=None): + """\ + STILL UNDOCUMENTED + + """ + self._PyHocaGUI = _PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + + wx.Menu.__init__(self) + + ID_EDITPROFILE = wx.NewId() + ID_DELETEPROFILE = wx.NewId() + + # preparing profile_name information for the main PyHocaGUI instance + self._PyHocaGUI._eventid_profilenames_map[ID_EDITPROFILE] = \ + self._PyHocaGUI._eventid_profilenames_map[ID_DELETEPROFILE] = profile_name + + self.Append(text=_(u"Edit Profile"), id=ID_EDITPROFILE) + self.AppendSeparator() + self.Append(text=_(u"Delete Profile"), id=ID_DELETEPROFILE) + + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileEdit, id=ID_EDITPROFILE) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileDelete, id=ID_DELETEPROFILE) + + +class PyHocaGUI_Menu_TaskbarOptionsManager(wx.Menu): + """\ + STILL UNDOCUMENTED + + """ + def __init__(self, _PyHocaGUI, caller=None): + """\ + STILL UNDOCUMENTED + + """ + self._PyHocaGUI = _PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + + wx.Menu.__init__(self) + + ID_ABOUT = wx.NewId() + self.Append(id=ID_ABOUT, text=_(u"About %s ...") % self._PyHocaGUI.appname) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnAbout, id=ID_ABOUT) + + self.AppendSeparator() + + ID_PROFILEMANAGER = wx.NewId() + _maintain_profiles_item = self.AppendMenu(id=ID_PROFILEMANAGER, + text=_(u"Profile Manager"), + submenu=PyHocaGUI_Menu_TaskbarProfileNames(self._PyHocaGUI, + caller=self, + disabled_profiles=self._PyHocaGUI.client_connected_profiles(return_profile_names=True), + submenu=PyHocaGUI_Menu_TaskbarManageProfile)) + if self._PyHocaGUI.profilemanager_disabled: + _maintain_profiles_item.Enable(False) + + self.AppendSeparator() + + ID_OPTIONS = wx.NewId() + _options_item = self.Append(id=ID_OPTIONS, text=_(u"Client Options")) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnOptions, id=ID_OPTIONS) + if self._PyHocaGUI.options_disabled: + _options_item.Enable(False) + + self.AppendSeparator() + + ID_EXIT = wx.NewId() + self.Append(id=ID_EXIT, text=_("E&xit")) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnTaskbarExit, id=ID_EXIT) + + +class PyHocaGUI_Menu_TaskbarSessionActions(wx.Menu): + """\ + STILL UNDOCUMENTED + + """ + def __init__(self, _PyHocaGUI, caller=None, profile_name=None, session_name=None, status=None): + """\ + STILL UNDOCUMENTED + + """ + self._PyHocaGUI = _PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + + wx.Menu.__init__(self) + + ID_TRANSFERSESSION = wx.NewId() + ID_RESUMESESSION = wx.NewId() + ID_SUSPENDSESSION = wx.NewId() + ID_TERMINATESESSION = wx.NewId() + + # preparing profile_name information for the main PyHocaGUI instance + self._PyHocaGUI._eventid_profilenames_map[ID_TRANSFERSESSION] = \ + self._PyHocaGUI._eventid_profilenames_map[ID_RESUMESESSION] = \ + self._PyHocaGUI._eventid_profilenames_map[ID_SUSPENDSESSION] = \ + self._PyHocaGUI._eventid_profilenames_map[ID_TERMINATESESSION] = profile_name + + # preparing session_name information for the main PyHocaGUI instance + self._PyHocaGUI._eventid_sessionnames_map[ID_TRANSFERSESSION] = \ + self._PyHocaGUI._eventid_sessionnames_map[ID_RESUMESESSION] = \ + self._PyHocaGUI._eventid_sessionnames_map[ID_SUSPENDSESSION] = \ + self._PyHocaGUI._eventid_sessionnames_map[ID_TERMINATESESSION] = session_name + + if status == 'S': + self.Append(text=_("Resume Session"), id=ID_RESUMESESSION) + elif status == 'R': + if not session_name in self._PyHocaGUI.client_associated_sessions_of_profile_name(profile_name, return_session_names=True): + self.Append(text=_(u"Transfer Session"), id=ID_TRANSFERSESSION) + self.Append(text=_(u"Suspend Session"), id=ID_SUSPENDSESSION) + + self.Append(text=_(u"Terminate Session"), id=ID_TERMINATESESSION) + + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionResume, id=ID_RESUMESESSION) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionResume, id=ID_TRANSFERSESSION) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionSuspend, id=ID_SUSPENDSESSION) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionTerminate, id=ID_TERMINATESESSION) + + +class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu): + """\ + STILL UNDOCUMENTED + + """ + def __init__(self, _PyHocaGUI, caller=None, profile_name=None): + """\ + STILL UNDOCUMENTED + + """ + self._PyHocaGUI = _PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + + wx.Menu.__init__(self) + + ID_SESSIONSTART=wx.NewId() + ID_CLEANSESSIONS = wx.NewId() + ID_EDITPROFILEWHILECONNECTED = wx.NewId() + ID_SHARELOCALFOLDER = wx.NewId() + ID_DISCONNECT = wx.NewId() + + current_profile_config = self._PyHocaGUI.get_profile_config(profile_name) + + # preparing profile_name information for the main PyHocaGUI instance + self._PyHocaGUI._eventid_profilenames_map[ID_SESSIONSTART] = \ + self._PyHocaGUI._eventid_profilenames_map[ID_CLEANSESSIONS] = \ + self._PyHocaGUI._eventid_profilenames_map[ID_EDITPROFILEWHILECONNECTED] = \ + self._PyHocaGUI._eventid_profilenames_map[ID_SHARELOCALFOLDER] = \ + self._PyHocaGUI._eventid_profilenames_map[ID_DISCONNECT] = profile_name + + self.Append(id=ID_SESSIONSTART, text=_(u"Start &new Session")) + self.AppendSeparator() + + _query_session_uuid = self._PyHocaGUI.client_connected_sessions_of_profile_name(profile_name, return_objects=False)[0] + _session_list = self._PyHocaGUI.list_sessions(_query_session_uuid) + + if _session_list: + + for session_name in _session_list.keys(): + + _s_id = wx.NewId() + + if _session_list[session_name].status == 'R': + state = _(u'Running') + elif _session_list[session_name].status == 'S': + state = _(u'Suspended') + self.AppendMenu(id=_s_id, text=u'%s: »%s«' % (state, session_name), + submenu=PyHocaGUI_Menu_TaskbarSessionActions(self._PyHocaGUI, caller=self, + profile_name=profile_name, + session_name=session_name, + status=_session_list[session_name].status, + ) + ) + + if _session_list.keys(): + self.Append(id=ID_CLEANSESSIONS, text=_(u"&Clean all sessions")) + self.AppendSeparator() + self.Append(id=ID_EDITPROFILEWHILECONNECTED, text=_(u"Customize &profile")) + if current_profile_config['useexports']: + _share_folder = self.Append(id=ID_SHARELOCALFOLDER, text=_(u"Share local &folder")) + if not self._PyHocaGUI._X2goClient__client_associated_sessions_of_profile_name(profile_name, return_objects=False): + _share_folder.Enable(False) + + self.AppendSeparator() + self.Append(id=ID_DISCONNECT, text=_(u"&Disconnect from Server")) + + self._PyHocaGUI.current_profile_name = profile_name + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionStart, id=ID_SESSIONSTART) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnCleanSessions, id=ID_CLEANSESSIONS) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileEditWhileConnected, id=ID_EDITPROFILEWHILECONNECTED) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnShareLocalFolder, id=ID_SHARELOCALFOLDER) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionDisconnect, id=ID_DISCONNECT) + + +class PyHocaGUI_Menu_TaskbarProfileNames(wx.Menu): + """\ + STILL UNDOCUMENTED + + """ + def __init__(self, _PyHocaGUI, caller=None, filter_profiles=None, disabled_profiles=None, bind_method=None, submenu=None): + """\ + STILL UNDOCUMENTED + + """ + self._PyHocaGUI = _PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + + + wx.Menu.__init__(self) + + if type(caller) == PyHocaGUI_Menu_TaskbarOptionsManager: + ID_ADDPROFILE = wx.NewId() + self.Append(id=ID_ADDPROFILE, text=_(u"Add Profile")) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileAdd, id=ID_ADDPROFILE) + + self.AppendSeparator() + + _profile_names = self._PyHocaGUI.session_profiles.profile_names + _profile_names.sort() + if filter_profiles: + _profile_names = [ p for p in _profile_names if p not in filter_profiles ] + for profile_name in _profile_names: + _this_id = wx.NewId() + self._PyHocaGUI._eventid_profilenames_map[_this_id] = profile_name + _menu_profile_name = self._PyHocaGUI.show_profile_metatypes and '%s (%s)' % (profile_name, self._PyHocaGUI.get_profile_metatype(profile_name)) or profile_name + if submenu is not None: + _sub = self.AppendMenu(text=_menu_profile_name, id=_this_id, submenu=submenu(self._PyHocaGUI, caller=self, profile_name=profile_name)) + if disabled_profiles and profile_name in disabled_profiles: + _sub.Enable(False) + else: + _item = self.Append(text=_menu_profile_name, id=_this_id) + if disabled_profiles and profile_name in disabled_profiles: + _item.Enable(False) + if bind_method is not None: + self._PyHocaGUI.Bind(wx.EVT_MENU, bind_method, id=_this_id) + self._PyHocaGUI.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=_this_id) + + if not _profile_names: + _dummy = self.Append(text=_('No session profiles defined'), id=wx.NewId()) + _dummy.Enable(False) + + def OnUpdateUI(self, evt): + profile_name = self._PyHocaGUI._eventid_profilenames_map[evt.GetId()] + if profile_name in self._PyHocaGUI._temp_disabled_profile_names: + self._pyhoca_logger('Updating UI, temporarily disabling session profile %s' % profile_name) + self.Enable(id=evt.GetId(), enable=False) + elif profile_name not in self._PyHocaGUI._temp_disabled_profile_names: + self._pyhoca_logger('Updating UI, re-enabling session profile %s' % profile_name) + self.Enable(id=evt.GetId(), enable=True) + + +class PyHocaGUI_Menu_TaskbarSessionManager(wx.Menu): + """\ + STILL UNDOCUMENTED + + """ + def __init__(self, _PyHocaGUI, caller=None): + """\ + STILL UNDOCUMENTED + + """ + self._PyHocaGUI = _PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + + wx.Menu.__init__(self) + + ID_AUTHENTICATE = wx.NewId() + ID_EXIT = wx.NewId() + + _auth_menu_text = self._PyHocaGUI.start_on_connect and _(u'Start/Resume Session') or _(u'Connect Server') + self.AppendMenu(id=ID_AUTHENTICATE, + text=_auth_menu_text, + submenu=PyHocaGUI_Menu_TaskbarProfileNames(self._PyHocaGUI, + caller=self, + filter_profiles=self._PyHocaGUI.client_connected_sessions(return_profile_names=True), + bind_method=self._PyHocaGUI.OnSessionAuthenticate)) + self.AppendSeparator() + + _connected_sessions = False + for profile_name in self._PyHocaGUI.session_profiles.profile_names: + if profile_name in self._PyHocaGUI._X2goClient__client_connected_sessions(return_profile_names=True): + _connected_sessions = True + _this_id = wx.NewId() + + _menu_profile_name = self._PyHocaGUI.show_profile_metatypes and '%s (%s)' % (profile_name, self._PyHocaGUI.get_profile_metatype(profile_name)) or profile_name + self.AppendMenu(text=_menu_profile_name, + id=_this_id, + submenu=PyHocaGUI_Menu_TaskbarSessionProfile(self._PyHocaGUI, caller=self, profile_name=profile_name)) + + if _connected_sessions: + self.AppendSeparator() + + self.Append(id=ID_EXIT, text=_(u"E&xit")) + self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnTaskbarExit, id=ID_EXIT) + + diff --git a/pyhoca/wxgui/menus_taskbar.pyc b/pyhoca/wxgui/menus_taskbar.pyc new file mode 100644 index 0000000..eb0cdac Binary files /dev/null and b/pyhoca/wxgui/menus_taskbar.pyc differ diff --git a/pyhoca/wxgui/notify.py b/pyhoca/wxgui/notify.py new file mode 100644 index 0000000..5f17abc --- /dev/null +++ b/pyhoca/wxgui/notify.py @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca GUI is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# PyHoca GUI is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +import os +import wx +from x2go import X2GOCLIENT_OS +from x2go import log +if X2GOCLIENT_OS in ('Linux', 'Mac'): + import pynotify +import exceptions +import basepath + +_icons_location = basepath.icons_basepath + +class NotSupportedException(exceptions.StandardError): pass +class PyHocaNotificationException(exceptions.StandardError): pass + +class libnotify_NotifierPopup(object): + + title = {} + text = {} + icon = {} + + def __init__(self, _PyHocaGUI): + self._PyHocaGUI = _PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + + if not pynotify.init("PyHocaGUI"): + raise NotSupportedException + + def prepare(self, context, title=None, text=None, icon=None): + if title is not None: + self.title[context] = title + if text is not None: + self.text[context] = text + if icon is not None: + self.icon[context] = icon + + def send(self, title=None, text=None, context=None, icon=None, timeout=8000): + if context is not None: + try: + title = self.title[context] + del self.title[context] + except KeyError: + pass + try: + text = self.text[context] + del self.text[context] + except KeyError: + pass + try: + icon = self.icon[context] + del self.icon[context] + except KeyError: + pass + + icon = 'file://%s/PyHoca/32x32/%s.png' % (_icons_location, icon) + + n = pynotify.Notification(title, text, icon) + n.set_urgency(pynotify.URGENCY_NORMAL) + n.set_timeout(timeout) + + self._pyhoca_logger('[%s] %s' % (title, text), loglevel=log.loglevel_NOTICE) + if not n.show(): + raise PyHocaNotificationException('could not notify user') + + + def Close(self): + pass + + def Destroy(self): + pass + + +class notificationmessage_NotifierPopup(object): + + title = {} + text = {} + icon = {} + + def __init__(self, _about): + self._PyHocaGUI = _about._PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + self.taskbar = self._PyHocaGUI.taskbar + + def prepare(self, context, title=None, text=None, icon=None): + if title is not None: + self.title[context] = title + if text is not None: + self.text[context] = text + if icon is not None: + self.icon[context] = icon + + def send(self, title=None, text=None, context=None, icon=None, timeout=8000): + if context is not None: + try: + title = self.title[context] + del self.title[context] + except KeyError: + pass + try: + text = self.text[context] + del self.text[context] + except KeyError: + pass + try: + icon = self.icon[context] + del self.icon[context] + except KeyError: + pass + + _icon_map_wx = { + 'audio_error': wx.ICON_ERROR, + 'auth_success': wx.ICON_INFORMATION, + 'auth_failed': wx.ICON_WARNING, + 'auth_error': wx.ICON_ERROR, + 'auth_disconnect': wx.ICON_INFORMATION, + 'profile_add': wx.ICON_INFORMATION, + 'profile_delete': wx.ICON_INFORMATION, + 'profile_edit': wx.ICON_INFORMATION, + 'profile_save': wx.ICON_INFORMATION, + 'profile_error': wx.ICON_ERROR, + 'session_cleanall': wx.ICON_INFORMATION, + 'session_error': wx.ICON_ERROR, + 'session_pause': wx.ICON_INFORMATION, + 'session_printing': wx.ICON_INFORMATION, + 'session_resume': wx.ICON_INFORMATION, + 'session_start': wx.ICON_INFORMATION, + 'session_terminate': wx.ICON_INFORMATION, + 'session_warning': wx.ICON_WARNING, + } + if icon in _icon_map_wx.keys(): + icon = _icon_map_wx[icon] + else: + icon = wx.ICON_INFORMATION + + try: + # you will need wxPython >= 2.9 for this + _notification_msg = wx.NotificationMessage() + _notification_msg.SetTitle(title) + _notification_msg.SetMessage(text) + _notification_msg.SetParent(self._PyHocaGUI.about) + _notification_msg.SetFlags(icon) + _notification_msg.Show(timeout=1) + except: + # if we are running wxPython 2.8, we ignore missing + # wx.NotificationMessage class + pass + + self._pyhoca_logger('[%s] %s' % (title, text), loglevel=log.loglevel_NOTICE) + + def Close(self): + pass + + def Destroy(self): + pass diff --git a/pyhoca/wxgui/notify.pyc b/pyhoca/wxgui/notify.pyc new file mode 100644 index 0000000..bfbcbfa Binary files /dev/null and b/pyhoca/wxgui/notify.pyc differ diff --git a/pyhoca/wxgui/profilemanager.py b/pyhoca/wxgui/profilemanager.py new file mode 100644 index 0000000..aed9bf2 --- /dev/null +++ b/pyhoca/wxgui/profilemanager.py @@ -0,0 +1,1352 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca GUI is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# PyHoca GUI is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +import wx +import os +import copy + +import sys +import locale + +import x2go.log as log +import x2go.utils as utils +from x2go import X2GOCLIENT_OS + +from x2go import defaults + +import notify +import basepath + +_icons_location = basepath.icons_basepath +_known_encodings = utils.known_encodings() + +class PyHocaGUI_ProfileManager(wx.Dialog): + """\ + STILL UNDOCUMENTED + + """ + def __init__(self, _PyHocaGUI, action, profile_id=None, profile_name=None): + """\ + STILL UNDOCUMENTED + + """ + self._PyHocaGUI = _PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + + self._pyhoca_logger('starting profile manager, action is: %s' % action, loglevel=log.loglevel_INFO) + + wx.Dialog.__init__(self, None, -1, style=wx.DEFAULT_DIALOG_STYLE, size=wx.Size(550,450)) + + self.profileManagerDefaults = defaults.X2GO_SESSIONPROFILE_DEFAULTS + self.success = False + + self.sessionChoices = { + 'GNOME': _(u'GNOME Desktop (GNOME)'), + 'KDE': _(u'K Desktop Environment (KDE)'), + 'LXDE': _(u'Lightweight X Desktop (LXDE)'), + 'XDMCP': _(u'XDMCP Query'), + #'EMBEDDED_MENU': _(u'Embedded Application Menu'), + 'RDP': _(u'Windows Terminal Server (RDP-proxy)'), + #'DirectRDP': 'Windows Terminal Server (RDP-direct)', + 'APPLICATION': _(u'Single Application'), + 'CUSTOM': _(u'Custom command'), + } + self.applicationChoices = { + 'WWWBROWSER': _(u'Internet Browser'), + 'MAILCLIENT': _(u'Email Client'), + 'OFFICE': _(u'Openoffice.org'), + 'TERMINAL': _(u'Terminal'), + } + self.linkChoices = { + 0: 'MODEM', + 1: 'ISDN', + 2: 'ADSL', + 3: 'WAN', + 4: 'LAN', + } + self.audioPorts = { + 'esd': 16001, + 'pulse': 4713, + } + self.dropboxactionChoices = { + 'OPEN': _(u'Open file with system\'s default application'), + 'OPENWITH': _(u'Open application chooser dialog'), + 'SAVEAS': _(u'Save incoming file as ...'), + } + _compressions = ["4k-jpeg", "32k-jpeg", "64k-jpeg", "256k-jpeg", "2m-jpeg", "16m-jpeg"] + self.compressionChoices = {} + for _comp in _compressions: + self.compressionChoices[_comp] = _comp + + self.session_profiles = self._PyHocaGUI.session_profiles + self.action = action + + if self.action in ('EDIT', 'EDIT_CONNECTED'): + if profile_id is not None: + self.profile_id = profile_id + elif profile_name is not None: + self.profile_id = self.session_profiles.check_profile_id_or_name(profile_name) + self.profile_config = self.session_profiles.get_profile_config(self.profile_id) + + if self.action == 'ADD': + self.profile_config = self.session_profiles.default_profile_config() + + # we create a backup dict of our profile_config immediately (for being able to reset erroneously made changes) + self.profile_config_bak = copy.deepcopy(self.profile_config) + + self.X2goTabs = wx.Notebook(self, -1, style=0) + self.tab_Session = wx.Panel(self.X2goTabs, -1) + self.tab_Connection = wx.Panel(self.X2goTabs, -1) + self.tab_Settings = wx.Panel(self.X2goTabs, -1) + self.tab_SharedFilesAndFolders = wx.Panel(self.X2goTabs, -1) + + # boxes for all tabs + self.staticbox_Profile = wx.StaticBox(self.tab_Session, -1, '') + self.staticbox_SessionType = wx.StaticBox(self.tab_Session, -1, '') + self.staticbox_Server = wx.StaticBox(self.tab_Connection, -1, _(u"Server")) + self.staticbox_LinkSpeed = wx.StaticBox(self.tab_Connection, -1, _(u"Connection Link Speed")) + self.staticbox_Compression = wx.StaticBox(self.tab_Connection, -1, _(u"Compression")) + self.staticbox_Display = wx.StaticBox(self.tab_Settings, -1, _(u"Display")) + self.staticbox_Keyboard = wx.StaticBox(self.tab_Settings, -1, _(u"Keyboard")) + self.staticbox_Sound = wx.StaticBox(self.tab_Settings, -1, _(u"Sound")) + self.staticbox_Printing = wx.StaticBox(self.tab_Settings, -1, _(u"Printing")) + self.staticbox_FolderSharing = wx.StaticBox(self.tab_SharedFilesAndFolders, -1, _(u"Folder Exports")) + self.staticbox_FileDropbox = wx.StaticBox(self.tab_SharedFilesAndFolders, -1, _(u"File Import")) + + ### + ### widgets for the SESSION tab + ### + self.ProfileNameLabel = wx.StaticText(self.tab_Session, -1, _(u"Profile name")+":") + self.ProfileName = wx.TextCtrl(self.tab_Session, -1, "", size=wx.Size(200,20)) + _share_location = os.path.split(_icons_location)[0] + if 'icon' in self.profile_config: + path_to_icon = self.profile_config['icon'] + path_to_icon = path_to_icon.lstrip(':') + path_to_icon = os.path.join(os.path.normpath(_share_location), os.path.normpath(path_to_icon)) + if not os.path.exists(path_to_icon) or not 'icon' in self.profile_config: + path_to_icon = os.path.normpath('%s/icons/PyHoca/128x128/pyhoca-session.png' % _share_location) + self.IconPath = path_to_icon + self.IconButtonLabel = wx.StaticText(self.tab_Session, -1, _(u"Profile icon")+':') + self.IconButton = wx.BitmapButton(self.tab_Session, -1, wx.Bitmap(path_to_icon, wx.BITMAP_TYPE_ANY)) + self.SessionTypeLabel = wx.StaticText(self.tab_Session, -1, _(u"Session type")+':') + self.SessionType = wx.ComboBox(self.tab_Session, -1, choices=self.sessionChoices.values(), style=wx.CB_DROPDOWN|wx.CB_READONLY) + self.ApplicationLabel = wx.StaticText(self.tab_Session, -1, _(u"Application")+':') + self.Application = wx.ComboBox(self.tab_Session, -1, choices=self.applicationChoices.values(), style=wx.CB_DROPDOWN|wx.CB_READONLY) + self.CommandLabel = wx.StaticText(self.tab_Session, -1, _(u"Custom command")+':') + self.Command = wx.TextCtrl(self.tab_Session, -1, "", size=wx.Size(200,20)) + self.RDPSettingsLabel = wx.StaticText(self.tab_Session, -1, _(u"RDP settings")+':') + self.RDPServerLabel = wx.StaticText(self.tab_Session, -1, _(u"RDP server")+':') + self.RDPServer = wx.TextCtrl(self.tab_Session, -1, "", size=wx.Size(160,20)) + self.RDPOptionsLabel = wx.StaticText(self.tab_Session, -1, _(u"RDP options")+':') + self.RDPOptions = wx.TextCtrl(self.tab_Session, -1, "", size=wx.Size(160,20)) + self.XDMCPServerLabel = wx.StaticText(self.tab_Session, -1, _(u"XDMCP server")+':') + self.XDMCPServer = wx.TextCtrl(self.tab_Session, -1, "", size=wx.Size(160,20)) + + ### + ### widgets for the CONNECTION tab + ### + self.UserNameLabel = wx.StaticText(self.tab_Connection, -1, _(u"User")+':') + self.UserName = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(200,20)) + self.HostLabel = wx.StaticText(self.tab_Connection, -1, _(u"Host")+':') + self.Host = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(200,20)) + self.SSHPortLabel = wx.StaticText(self.tab_Connection, -1, _(u"Port")+':') + self.SSHPort = wx.SpinCtrl(self.tab_Connection, -1, "0", min=22, max=64000) + self.SSHKeyFileLabel = wx.StaticText(self.tab_Connection, -1, _(u"RSA/DSA private key")+':') + self.SSHKeyFile = wx.TextCtrl(self.tab_Connection, -1, style=wx.TE_PROCESS_ENTER) + self.SSHKeyFileBrowseButton = wx.BitmapButton(self.tab_Connection, -1, wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY)) + self.UseSSHProxy = wx.CheckBox(self.tab_Connection, -1, _(u"Server behind SSH proxy")) + self.SSHProxyUserLabel = wx.StaticText(self.tab_Connection, -1, _(u"User")+':') + self.SSHProxyUser = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(80,20)) + self.SSHProxyKeyFileLabel = wx.StaticText(self.tab_Connection, -1, _(u"Key file")+':') + self.SSHProxyKeyFile = wx.TextCtrl(self.tab_Connection, -1, style=wx.TE_PROCESS_ENTER) + self.SSHProxyKeyFileBrowseButton = wx.BitmapButton(self.tab_Connection, -1, wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY)) + self.SSHProxyHostLabel = wx.StaticText(self.tab_Connection, -1, _(u"Host[:Port]")+':') + self.SSHProxyHost = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(80,20)) + self.SSHProxyTunnelLabel = wx.StaticText(self.tab_Connection, -1, _(u"SSH Proxy Tunnel")+':') + self.SSHProxyTunnelFromHost = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(200,20)) + self.SSHProxyTunnelFromPort = wx.SpinCtrl(self.tab_Connection, -1, "0", min=22, max=64000) + self.SSHProxyTunnelBetweenLabel = wx.StaticText(self.tab_Connection, -1, " -> ") + self.SSHProxyTunnelToHost = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(200,20)) + self.SSHProxyTunnelToPort = wx.SpinCtrl(self.tab_Connection, -1, "0", min=22, max=64000) + + self.LinkSpeed = wx.Slider(self.tab_Connection, -1, 0, 0, 4) + self.ModemLabel = wx.StaticText(self.tab_Connection, -1, "|\n "+_(u"Modem"), style=wx.ALIGN_CENTRE) + self.ISDNLabel = wx.StaticText(self.tab_Connection, -1, "|\n "+_(u"ISDN"), style=wx.ALIGN_CENTRE) + self.ADSLLabel = wx.StaticText(self.tab_Connection, -1, "|\n"+_(u"ADSL"), style=wx.ALIGN_CENTRE) + self.WANLabel = wx.StaticText(self.tab_Connection, -1, "|\n"+_(u"WAN"), style=wx.ALIGN_CENTRE) + self.LANLabel = wx.StaticText(self.tab_Connection, -1, "|\n"+_(u"LAN"), style=wx.ALIGN_CENTRE) + + self.CompressionLabel = wx.StaticText(self.tab_Connection, -1, _(u"Method")+':') + self.Compression = wx.ComboBox(self.tab_Connection, -1, choices=self.compressionChoices.values(), style=wx.CB_DROPDOWN) + self.ImageQualityLabel = wx.StaticText(self.tab_Connection, -1, _(u"Image quality")+':') + self.ImageQuality = wx.SpinCtrl(self.tab_Connection, -1, "9", min=0, max=9) + + ### + ### wigdets for the SETTINGS tab + ### + self.DisplayTypeFullscreen = wx.RadioButton(self.tab_Settings, -1, _(u"Fullscreen"), style=wx.RB_GROUP) + self.DisplayTypeCustom = wx.RadioButton(self.tab_Settings, -1, _(u"Custom Size")+':') + self.ScreenWidthLabel = wx.StaticText(self.tab_Settings, -1, '') + self.ScreenWidth = wx.SpinCtrl(self.tab_Settings, -1, "800", min=400, max=3000) + self.ScreenHeightLabel = wx.StaticText(self.tab_Settings, -1, "x") + self.ScreenHeight = wx.SpinCtrl(self.tab_Settings, -1, "600", min=500, max=3000) + self.SetDisplayDPI = wx.CheckBox(self.tab_Settings, -1, _(u"Set display DPI")+':') + self.DisplayDPI = wx.SpinCtrl(self.tab_Settings, -1, "96", min=32, max=512) + self.CurrentKeyBoard = wx.CheckBox(self.tab_Settings, -1, _(u"Keep current keyboard settings")) + self.KeyboardLayoutLabel = wx.StaticText(self.tab_Settings, -1, _(u"Keyboard layout")+':') + self.KeyboardLayout = wx.TextCtrl(self.tab_Settings, -1, "") + self.KeyboardModelLabel = wx.StaticText(self.tab_Settings, -1, _(u"Keyboard model")+':') + self.KeyboardModel = wx.TextCtrl(self.tab_Settings, -1, "") + self.EnableSound = wx.CheckBox(self.tab_Settings, -1, _(u"Enable sound support")) + self.PulseAudio = wx.RadioButton(self.tab_Settings, -1, _(u"Pulse Audio"), style=wx.RB_GROUP) + + # Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated. + # However, config files can contain an Arts configuration, so we will honour this + self.Arts = wx.RadioButton(self.tab_Settings, -1, _(u"Arts (not supported)")) + self.Arts.Enable(False) + + self.Esd = wx.RadioButton(self.tab_Settings, -1, _(u"esd")) + self.DefaultSoundPort = wx.CheckBox(self.tab_Settings, -1, _(u"Use default sound port")) + self.SoundPortLabel = wx.StaticText(self.tab_Settings, -1, _(u"Custom sound port")+':') + self.SoundPort = wx.SpinCtrl(self.tab_Settings, -1, "4713", min=23, max=64889) + self.ClientSidePrinting = wx.CheckBox(self.tab_Settings, -1, _(u"Client Side printing")) + + self.UseLocalFolderSharing = wx.CheckBox(self.tab_SharedFilesAndFolders, -1, _(u"Use local folder sharing")) + self.SharedFolderPathLabel = wx.StaticText(self.tab_SharedFilesAndFolders, -1, _(u"Path")+':') + self.SharedFolderPath = wx.TextCtrl(self.tab_SharedFilesAndFolders, -1, "", style=wx.TE_PROCESS_ENTER) + self.SharedFolderPathBrowseButton = wx.BitmapButton(self.tab_SharedFilesAndFolders, -1, wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY)) + self.AddSharedFolderPathButton = wx.Button(self.tab_SharedFilesAndFolders, -1, _(u"Add")) + self.SharedFoldersList = wx.ListCtrl(self.tab_SharedFilesAndFolders, -1, style=wx.LC_LIST|wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL|wx.LC_VRULES) + self.DeleteSharedFolderPathButton = wx.Button(self.tab_SharedFilesAndFolders, -1, _(u"Delete")) + + self.UseEncodingConverter = wx.CheckBox(self.tab_SharedFilesAndFolders, -1, _(u"Convert between client and server encodings")) + self.ClientEncodingLabel = wx.StaticText(self.tab_SharedFilesAndFolders, -1, _(u"Client encoding")+':') + self.ClientEncoding = wx.ComboBox(self.tab_SharedFilesAndFolders, -1, choices=_known_encodings, style=wx.CB_DROPDOWN|wx.CB_READONLY) + self.ServerEncodingLabel = wx.StaticText(self.tab_SharedFilesAndFolders, -1, _(u"Server encoding")+':') + self.ServerEncoding = wx.ComboBox(self.tab_SharedFilesAndFolders, -1, choices=_known_encodings, style=wx.CB_DROPDOWN|wx.CB_READONLY) + + self.UseFileDropbox = wx.CheckBox(self.tab_SharedFilesAndFolders, -1, _(u"Use file dropbox for local file import")) + self.FileDropboxExtensionsLabel = wx.StaticText(self.tab_SharedFilesAndFolders, -1, _(u"Extensions")+':') + self.FileDropboxExtensions = wx.TextCtrl(self.tab_SharedFilesAndFolders, -1, "", style=wx.TE_PROCESS_ENTER) + self.FileDropboxActionLabel = wx.StaticText(self.tab_SharedFilesAndFolders, -1, _(u"Action")+':') + self.FileDropboxAction = wx.ComboBox(self.tab_SharedFilesAndFolders, -1, choices=self.dropboxactionChoices.values(), style=wx.CB_DROPDOWN|wx.CB_READONLY) + + if self.action == 'ADD': + self.OKButton = wx.Button(self, -1, _(u"Add")) + self.DefaultButton = wx.Button(self, -1, _(u'Defaults')) + else: + self.OKButton = wx.Button(self, -1, _(u"Save")) + self.DefaultButton = wx.Button(self, -1, _(u'Reset')) + self.OKButton.SetDefault() + self.CancelButton = wx.Button(self, -1, _(u"Cancel")) + + self.__set_properties() + self.__update_fields() + self.__do_layout() + + self.Bind(wx.EVT_BUTTON, self.OnIconChange, self.IconButton) + self.Bind(wx.EVT_COMBOBOX, self.OnSessionTypeSelected, self.SessionType) + self.Bind(wx.EVT_BUTTON, self.OnSSHKeyFileBrowse, self.SSHKeyFileBrowseButton) + self.Bind(wx.EVT_BUTTON, self.OnSSHProxyKeyFileBrowse, self.SSHProxyKeyFileBrowseButton) + self.Bind(wx.EVT_CHECKBOX, self.OnUseSSHProxy, self.UseSSHProxy) + self.Bind(wx.EVT_RADIOBUTTON, self.OnSetDisplayFullscreen, self.DisplayTypeFullscreen) + self.Bind(wx.EVT_RADIOBUTTON, self.OnSetDisplayCustom, self.DisplayTypeCustom) + self.Bind(wx.EVT_CHECKBOX, self.OnSetDisplayDPI, self.SetDisplayDPI) + self.Bind(wx.EVT_CHECKBOX, self.OnKeepKeyboard, self.CurrentKeyBoard) + self.Bind(wx.EVT_CHECKBOX, self.OnSoundEnable, self.EnableSound) + self.Bind(wx.EVT_CHECKBOX, self.OnDefaultSoundPort, self.DefaultSoundPort) + self.Bind(wx.EVT_RADIOBUTTON, self.OnPulseAudio, self.PulseAudio) + self.Bind(wx.EVT_RADIOBUTTON, self.OnEsd, self.Esd) + self.Bind(wx.EVT_BUTTON, self.OnSelectSharedFolderPath, self.SharedFolderPathBrowseButton) + self.Bind(wx.EVT_BUTTON, self.OnAddSharedFolderPath, self.AddSharedFolderPathButton) + self.Bind(wx.EVT_BUTTON, self.OnDeleteSharedFolderPath, self.DeleteSharedFolderPathButton) + self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSharedFolderListItemSelected, self.SharedFoldersList) + self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnSharedFolderListItemDeselected, self.SharedFoldersList) + self.Bind(wx.EVT_TEXT, self.OnSharedFolderPathKeyPressed, self.SharedFolderPath) + self.Bind(wx.EVT_TEXT_ENTER, self.OnAddSharedFolderPath, self.SharedFolderPath) + self.Bind(wx.EVT_CHECKBOX, self.OnToggleEncodingConverter, self.UseEncodingConverter) + self.Bind(wx.EVT_CHECKBOX, self.OnToggleLocalFolderSharing, self.UseLocalFolderSharing) + self.Bind(wx.EVT_CHECKBOX, self.OnToggleFileDropbox, self.UseFileDropbox) + self.Bind(wx.EVT_BUTTON, self.OnOKButton, self.OKButton) + self.Bind(wx.EVT_BUTTON, self.OnCancel, self.CancelButton) + self.Bind(wx.EVT_BUTTON, self.OnDefault, self.DefaultButton) + + def __set_properties(self): + if self.action == 'ADD': + self.SetTitle(_(u"PyHoca-GUI Profile Manager - new profile")) + elif self.action == 'EDIT_CONNECTED': + self.SetTitle(_(u"PyHoca-GUI Profile Manager - %s (connected)") % self.profile_config['name']) + else: + self.SetTitle(_(u"PyHoca-GUI Profile Manager - %s") % self.profile_config['name']) + self.SetFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "")) + _textfield_height = self.SSHKeyFileBrowseButton.GetBestSize().GetHeight()-2 + + self.ProfileNameLabel.SetMinSize((120, 16)) + self.ProfileName.SetMinSize((180, _textfield_height)) + self.IconButton.SetSize(self.IconButton.GetBestSize()) + self.SessionTypeLabel.SetMinSize((120, 16)) + self.SessionType.SetMinSize((-1, _textfield_height)) + self.SessionType.SetSelection(5) + self.ApplicationLabel.SetMinSize((120, 16)) + self.Application.SetMinSize((-1, _textfield_height)) + self.Application.SetSelection(0) + self.Command.SetMinSize((-1, _textfield_height)) + self.XDMCPServerLabel.SetMinSize((120, 16)) + self.XDMCPServer.SetMinSize((-1, _textfield_height)) + self.RDPSettingsLabel.SetMinSize((120, 16)) + self.RDPServerLabel.SetMinSize((180, 16)) + self.RDPServer.SetMinSize((180, _textfield_height)) + self.RDPOptionsLabel.SetMinSize((120, 16)) + self.RDPOptions.SetMinSize((120, _textfield_height)) + + self.HostLabel.SetMinSize((110, 16)) + self.Host.SetMinSize((180, _textfield_height)) + self.UserNameLabel.SetMinSize((110, 16)) + self.UserName.SetMinSize((180, _textfield_height)) + self.SSHPortLabel.SetMinSize((110, 16)) + self.SSHPort.SetMinSize((65, _textfield_height)) + self.SSHKeyFileLabel.SetMinSize((-1, 16)) + self.SSHKeyFile.SetMinSize((152, _textfield_height)) + self.SSHKeyFileBrowseButton.SetSize(self.SSHKeyFileBrowseButton.GetBestSize()) + self.SSHProxyUserLabel.SetMinSize((110, 16)) + self.SSHProxyUser.SetMinSize((180, _textfield_height)) + self.SSHProxyHostLabel.SetMinSize((110, 16)) + self.SSHProxyHost.SetMinSize((180, _textfield_height)) + self.SSHProxyKeyFile.SetMinSize((120, _textfield_height)) + self.SSHProxyKeyFileBrowseButton.SetSize(self.SSHProxyKeyFileBrowseButton.GetBestSize()) + self.SSHProxyTunnelLabel.SetMinSize((110, 16)) + self.SSHProxyTunnelFromPort.SetMinSize((60, _textfield_height)) + self.SSHProxyTunnelToPort.SetMinSize((60, _textfield_height)) + self.SSHProxyTunnelFromHost.SetMinSize((120, _textfield_height)) + self.SSHProxyTunnelToHost.SetMinSize((120, _textfield_height)) + if X2GOCLIENT_OS == 'Windows': + self.LinkSpeed.SetMinSize((425, _textfield_height)) + else: + self.LinkSpeed.SetMinSize((440, _textfield_height)) + self.ModemLabel.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "")) + self.ISDNLabel.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "")) + self.ADSLLabel.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "")) + self.WANLabel.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "")) + self.LANLabel.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "")) + self.CompressionLabel.SetMinSize((120, 16)) + self.Compression.SetMinSize((180, _textfield_height)) + self.Compression.SetSelection(0) + self.ImageQualityLabel.SetMinSize((120, 16)) + self.ImageQuality.SetMinSize((180, _textfield_height)) + self.DisplayTypeFullscreen.SetMinSize((-1, _textfield_height)) + self.ScreenWidth.SetMinSize((60, _textfield_height)) + self.ScreenHeight.SetMinSize((60, _textfield_height)) + self.SetDisplayDPI.SetMinSize((-1, _textfield_height)) + self.DisplayDPI.SetMinSize((60, _textfield_height)) + self.KeyboardLayoutLabel.SetMinSize((120, 16)) + self.KeyboardLayout.SetMinSize((120, _textfield_height)) + self.KeyboardModelLabel.SetMinSize((120, 16)) + self.KeyboardModel.SetMinSize((120, _textfield_height)) + self.PulseAudio.SetMinSize((-1, _textfield_height)) + self.Arts.SetMinSize((-1, _textfield_height)) + self.Esd.SetMinSize((-1, _textfield_height)) + self.DefaultSoundPort.SetMinSize((-1, _textfield_height)) + self.SoundPort.SetMinSize((-1, _textfield_height)) + self.ClientSidePrinting.SetMinSize((-1, _textfield_height)) + self.SharedFolderPath.SetMinSize((220, _textfield_height)) + self.SharedFolderPathBrowseButton.SetSize(self.SharedFolderPathBrowseButton.GetBestSize()) + self.SharedFoldersList.SetMinSize((-1, 180)) + + self.ClientEncoding.SetMinSize((140, _textfield_height)) + self.ServerEncoding.SetMinSize((140, _textfield_height)) + + self.FileDropboxExtensions.SetMinSize((140, _textfield_height)) + self.FileDropboxAction.SetMinSize((180, _textfield_height)) + + self.OKButton.SetMinSize((-1, 30)) + self.CancelButton.SetMinSize((-1, 30)) + self.DefaultButton.SetMinSize((-1, 30)) + + def __do_layout(self): + + # SESSION TAB + sizer_1 = wx.BoxSizer(wx.VERTICAL) + sizer_1_1 = wx.StaticBoxSizer(self.staticbox_Profile, wx.VERTICAL) + sizer_1_1_1 = wx.FlexGridSizer(2, 2, 7, 9) + sizer_1_1_1.Add(self.ProfileNameLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_1_1_1.Add(self.ProfileName, 0, 0, 0) + sizer_1_1_1.Add(self.IconButtonLabel, 0, wx.TOP, 0) + sizer_1_1_1.Add(self.IconButton, 0, 0, 0) + sizer_1_1.Add(sizer_1_1_1, 0, wx.EXPAND, 0) + + sizer_1_2 = wx.StaticBoxSizer(self.staticbox_SessionType, wx.VERTICAL) + sizer_1_2_1 = wx.GridBagSizer(hgap=3,vgap=6) + sizer_1_2_1.Add(self.SessionTypeLabel, pos=(0,0), flag=wx.ALIGN_CENTRE_VERTICAL, ) + sizer_1_2_1.Add(self.SessionType, pos=(0,1), span=(1,2), flag=wx.EXPAND, ) + sizer_1_2_1.Add(self.ApplicationLabel, pos=(1,0), flag=wx.ALIGN_CENTRE_VERTICAL, ) + sizer_1_2_1.Add(self.Application, pos=(1,1), span=(1,2), flag=wx.EXPAND, ) + sizer_1_2_1.Add(self.CommandLabel, pos=(2,0), flag=wx.ALIGN_CENTRE_VERTICAL, ) + sizer_1_2_1.Add(self.Command, pos=(2, 1), span=(1,2), flag=wx.EXPAND, ) + sizer_1_2_1.Add(self.XDMCPServerLabel, (3,0), flag=wx.ALIGN_CENTRE_VERTICAL, ) + sizer_1_2_1.Add(self.XDMCPServer, pos=(3,1), span=(1,2), flag=wx.EXPAND, ) + sizer_1_2_1.Add(self.RDPServerLabel, pos=(4,1), flag=wx.ALIGN_BOTTOM, ) + sizer_1_2_1.Add(self.RDPOptionsLabel, pos=(4,2), flag=wx.ALIGN_BOTTOM, ) + sizer_1_2_1.Add(self.RDPSettingsLabel, pos=(5,0), flag=wx.ALIGN_CENTRE_VERTICAL, ) + sizer_1_2_1.Add(self.RDPServer, pos=(5, 1), ) + sizer_1_2_1.Add(self.RDPOptions, pos=(5,2), ) + sizer_1_2.Add(sizer_1_2_1, 0, wx.EXPAND, 0) + + sizer_1.Add(sizer_1_1, 1, wx.EXPAND, 0) + sizer_1.Add(sizer_1_2, 1, wx.EXPAND, 0) + self.tab_Session.SetSizerAndFit(sizer_1) + self.tab_Session.Layout() + + ## CONNECTION TAB + sizer_2 = wx.BoxSizer(wx.VERTICAL) + sizer_2_1 = wx.StaticBoxSizer(self.staticbox_Server, wx.VERTICAL) + sizer_2_1_1 = wx.BoxSizer(wx.HORIZONTAL) + sizer_2_1_1.Add(self.UserNameLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_1.Add(self.UserName, 0, 0, 0) + sizer_2_1_1.Add((0,32)) + sizer_2_1_2 = wx.BoxSizer(wx.HORIZONTAL) + sizer_2_1_2.Add(self.HostLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_2.Add(self.Host, 0, 0, 0) + sizer_2_1_2.Add((0,32)) + sizer_2_1_3 = wx.BoxSizer(wx.HORIZONTAL) + sizer_2_1_3.Add(self.SSHPortLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_3.Add(self.SSHPort, 0, 0, 0) + sizer_2_1_3.Add((16,0)) + sizer_2_1_3.Add(self.SSHKeyFileLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_3.Add((8,0)) + sizer_2_1_3.Add(self.SSHKeyFile, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_3.Add(self.SSHKeyFileBrowseButton, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_3.Add((0,32)) + sizer_2_1_4 = wx.BoxSizer(wx.HORIZONTAL) + sizer_2_1_4.Add(self.UseSSHProxy, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_5 = wx.BoxSizer(wx.HORIZONTAL) + sizer_2_1_5.Add(self.SSHProxyUserLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_5.Add(self.SSHProxyUser, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_5.Add((16,0)) + sizer_2_1_5.Add(self.SSHProxyKeyFileLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_5.Add((8,0)) + sizer_2_1_5.Add(self.SSHProxyKeyFile, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_5.Add(self.SSHProxyKeyFileBrowseButton, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_5.Add((0,32)) + sizer_2_1_6 = wx.BoxSizer(wx.HORIZONTAL) + sizer_2_1_6.Add(self.SSHProxyHostLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_6.Add(self.SSHProxyHost, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_6.Add((0,32)) + sizer_2_1_7 = wx.BoxSizer(wx.HORIZONTAL) + sizer_2_1_7.Add(self.SSHProxyTunnelLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_7.Add(self.SSHProxyTunnelFromHost, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_7.Add((4, 0)) + sizer_2_1_7.Add(self.SSHProxyTunnelFromPort, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_7.Add((8, 0)) + sizer_2_1_7.Add(self.SSHProxyTunnelBetweenLabel, 0, wx.ALIGN_CENTRE_VERTICAL|wx.ALIGN_CENTRE_HORIZONTAL, 0) + sizer_2_1_7.Add((8, 0)) + sizer_2_1_7.Add(self.SSHProxyTunnelToHost, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_7.Add((4, 0)) + sizer_2_1_7.Add(self.SSHProxyTunnelToPort, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_1_7.Add((0,32)) + sizer_2_1.Add(sizer_2_1_1, 0, wx.EXPAND, 0) + sizer_2_1.Add(sizer_2_1_2, 0, wx.EXPAND, 0) + sizer_2_1.Add(sizer_2_1_3, 0, wx.EXPAND, 0) + sizer_2_1.Add(sizer_2_1_4, 0, wx.EXPAND, 0) + sizer_2_1.Add(sizer_2_1_5, 0, wx.EXPAND, 0) + sizer_2_1.Add(sizer_2_1_6, 0, wx.EXPAND, 0) + sizer_2_1.Add(sizer_2_1_7, 0, wx.EXPAND, 0) + + sizer_2_2 = wx.StaticBoxSizer(self.staticbox_LinkSpeed, wx.VERTICAL) + sizer_2_2_1 = wx.BoxSizer(wx.VERTICAL) + sizer_2_2_1.Add(self.LinkSpeed, 0, 0, 0) + sizer_2_2_2 = wx.GridSizer(1,5,0,0) + sizer_2_2_2.SetMinSize((454/5*6 - 30, -1)) + sizer_2_2_2.Add(self.ModemLabel, 0, wx.ALIGN_CENTRE_HORIZONTAL, 0) + sizer_2_2_2.Add(self.ISDNLabel, 0, wx.ALIGN_CENTRE_HORIZONTAL, 0) + sizer_2_2_2.Add(self.ADSLLabel, 0, wx.ALIGN_CENTRE_HORIZONTAL, 0) + sizer_2_2_2.Add(self.WANLabel, 0, wx.ALIGN_CENTRE_HORIZONTAL, 0) + sizer_2_2_2.Add(self.LANLabel, 0, wx.ALIGN_CENTRE_HORIZONTAL, 0) + sizer_2_2.Add(sizer_2_2_1, 0, wx.ALIGN_CENTRE_HORIZONTAL, 0) + sizer_2_2.Add(sizer_2_2_2, 0, wx.ALIGN_CENTRE_HORIZONTAL, 0) + + sizer_2_3 = wx.StaticBoxSizer(self.staticbox_Compression, wx.VERTICAL) + sizer_2_3_1 = wx.BoxSizer(wx.HORIZONTAL) + sizer_2_3_1.Add(self.CompressionLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_3_1.Add(self.Compression, 0, 0, 0) + sizer_2_3_1.Add((0,32)) + sizer_2_3_2 = wx.BoxSizer(wx.HORIZONTAL) + sizer_2_3_2.Add(self.ImageQualityLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_2_3_2.Add(self.ImageQuality, 0, 0, 0) + sizer_2_3.Add(sizer_2_3_1, 1, wx.EXPAND, 0) + sizer_2_3.Add(sizer_2_3_2, 1, wx.EXPAND, 0) + + sizer_2.Add(sizer_2_1, 0, wx.EXPAND, 0) + sizer_2.Add(sizer_2_2, 1, wx.EXPAND, 0) + sizer_2.Add(sizer_2_3, 0, wx.EXPAND, 0) + self.tab_Connection.SetSizerAndFit(sizer_2) + self.tab_Connection.Layout() + + ## SETTINGS TAB + sizer_3 = wx.BoxSizer(wx.VERTICAL) + sizer_3_1 = wx.StaticBoxSizer(self.staticbox_Display, wx.VERTICAL) + sizer_3_1_1 = wx.BoxSizer(wx.HORIZONTAL) + sizer_3_1_1.Add(self.DisplayTypeFullscreen, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_3_1_1.Add((16, 0)) + sizer_3_1_1.Add(self.DisplayTypeCustom, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_3_1_1.Add(self.ScreenWidthLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_3_1_1.Add((8,0)) + sizer_3_1_1.Add(self.ScreenWidth, 0, 0, 0) + sizer_3_1_1.Add((8,0)) + sizer_3_1_1.Add(self.ScreenHeightLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_3_1_1.Add((8,0)) + sizer_3_1_1.Add(self.ScreenHeight, 0, 0, 0) + sizer_3_1_2 = wx.BoxSizer(wx.HORIZONTAL) + sizer_3_1_2.Add((-1,48)) + sizer_3_1_2.Add(self.SetDisplayDPI, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_3_1_2.Add((8,0)) + sizer_3_1_2.Add(self.DisplayDPI, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_3_1.Add(sizer_3_1_1, 0, 0, 0) + sizer_3_1.Add(sizer_3_1_2, 0, 0, 0) + + sizer_3_2 = wx.StaticBoxSizer(self.staticbox_Keyboard, wx.VERTICAL) + sizer_3_2_1 = wx.BoxSizer(wx.HORIZONTAL) + sizer_3_2_1.Add(self.CurrentKeyBoard, 0, wx.ALIGN_TOP, 0) + sizer_3_2_1.Add((0, 32)) + sizer_3_2_2 = wx.BoxSizer(wx.HORIZONTAL) + sizer_3_2_2.Add((32,0)) + sizer_3_2_2_1 = wx.BoxSizer(wx.VERTICAL) + sizer_3_2_2_1.Add(self.KeyboardLayoutLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_3_2_2_1.Add(self.KeyboardLayout, 0, wx.EXPAND, 0) + sizer_3_2_2_2 = wx.BoxSizer(wx.VERTICAL) + sizer_3_2_2_2.Add(self.KeyboardModelLabel, 0, 0, 0) + sizer_3_2_2_2.Add(self.KeyboardModel, 0, wx.EXPAND, 0) + sizer_3_2_2.Add(sizer_3_2_2_1, 0, 0, 0) + sizer_3_2_2.Add((32,0)) + sizer_3_2_2.Add(sizer_3_2_2_2, 0, 0, 0) + sizer_3_2.Add(sizer_3_2_1, 0, 0, 0) + sizer_3_2.Add(sizer_3_2_2, 0, 0, 0) + + sizer_3_3 = wx.StaticBoxSizer(self.staticbox_Sound, wx.VERTICAL) + sizer_3_3_1 = wx.GridBagSizer(vgap=4, hgap=2) + sizer_3_3_1.Add(self.EnableSound, pos=(0,0), span=(1,2), border=16, ) + sizer_3_3_1.Add(self.PulseAudio, pos=(1,0), flag=wx.RIGHT, border=16, ) + sizer_3_3_1.Add(self.Arts, pos=(2,0), flag=wx.RIGHT, border=16, ) + sizer_3_3_1.Add(self.Esd, pos=(3,0), flag=wx.RIGHT, border=16, ) + sizer_3_3_1.Add(self.DefaultSoundPort, pos=(1,1), ) + sizer_3_3_1_1 = wx.BoxSizer(wx.HORIZONTAL) + sizer_3_3_1_1.Add(self.SoundPortLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_3_3_1_1.Add((8, -1)) + sizer_3_3_1_1.Add(self.SoundPort, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_3_3_1.Add(sizer_3_3_1_1, pos=(2,1), ) + sizer_3_3.Add(sizer_3_3_1, 0, 0, 0) + + sizer_3_4 = wx.StaticBoxSizer(self.staticbox_Printing, wx.VERTICAL) + sizer_3_4.Add(self.ClientSidePrinting, 0, 0, 0) + + sizer_3.Add(sizer_3_1, 0, wx.EXPAND, 0) + sizer_3.Add(sizer_3_2, 1, wx.EXPAND, 0) + sizer_3.Add(sizer_3_3, 1, wx.EXPAND, 0) + sizer_3.Add(sizer_3_4, 0, wx.EXPAND, 0) + self.tab_Settings.SetSizerAndFit(sizer_3) + self.tab_Settings.Layout() + + # FOLDERSHARING TAB + sizer_4 = wx.BoxSizer(wx.VERTICAL) + sizer_4_1 = wx.StaticBoxSizer(self.staticbox_FolderSharing, wx.VERTICAL) + sizer_4_1_1 = wx.BoxSizer(wx.HORIZONTAL) + sizer_4_1_1.Add(self.UseLocalFolderSharing, 0, 0, 0) + sizer_4_1_2 = wx.BoxSizer(wx.HORIZONTAL) + sizer_4_1_2.Add(self.SharedFolderPathLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_4_1_2.Add(self.SharedFolderPath, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_4_1_2.Add(self.SharedFolderPathBrowseButton, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_4_1_2.Add(self.AddSharedFolderPathButton, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_4_1_2.Add(self.DeleteSharedFolderPathButton, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_4_1_3 = wx.BoxSizer(wx.HORIZONTAL) + sizer_4_1_3.Add(self.SharedFoldersList, 1, wx.EXPAND, 0) + sizer_4_1_4 = wx.BoxSizer(wx.HORIZONTAL) + sizer_4_1_4.Add(self.UseEncodingConverter, 0, 0, 0) + sizer_4_1_5 = wx.BoxSizer(wx.HORIZONTAL) + sizer_4_1_5.Add(self.ClientEncodingLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_4_1_5.Add((8,0)) + sizer_4_1_5.Add(self.ClientEncoding, 0, 0, 0) + sizer_4_1_5.Add((16,0)) + sizer_4_1_5.Add(self.ServerEncodingLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_4_1_5.Add((8,0)) + sizer_4_1_5.Add(self.ServerEncoding, 0, 0, 0) + sizer_4_1.Add(sizer_4_1_1, 0, wx.EXPAND, 0) + sizer_4_1.Add(sizer_4_1_2, 0, wx.EXPAND, 0) + sizer_4_1.Add(sizer_4_1_3, 0, wx.EXPAND, 0) + sizer_4_1.Add(sizer_4_1_4, 0, wx.EXPAND, 0) + sizer_4_1.Add(sizer_4_1_5, 0, wx.EXPAND, 0) + + sizer_4_2 = wx.StaticBoxSizer(self.staticbox_FileDropbox, wx.VERTICAL) + sizer_4_2_1 = wx.BoxSizer(wx.HORIZONTAL) + sizer_4_2_1.Add(self.UseFileDropbox, 0, 0, 0) + sizer_4_2_2 = wx.BoxSizer(wx.HORIZONTAL) + sizer_4_2_2.Add(self.FileDropboxExtensionsLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_4_2_2.Add((8,0)) + sizer_4_2_2.Add(self.FileDropboxExtensions, 0, 0, 0) + sizer_4_2_2.Add((16,0)) + sizer_4_2_2.Add(self.FileDropboxActionLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0) + sizer_4_2_2.Add((8,0)) + sizer_4_2_2.Add(self.FileDropboxAction, 0, 0, 0) + sizer_4_2.Add(sizer_4_2_1, 0, wx.EXPAND, 0) + sizer_4_2.Add(sizer_4_2_2, 0, wx.EXPAND, 0) + + sizer_4.Add(sizer_4_1, 0, wx.EXPAND, 0) + sizer_4.Add(sizer_4_2, 1, wx.EXPAND, 0) + self.tab_SharedFilesAndFolders.SetSizerAndFit(sizer_4) + self.tab_SharedFilesAndFolders.Layout() + + self.X2goTabs.AddPage(self.tab_Session, _(u"Session Profile")) + self.X2goTabs.AddPage(self.tab_Connection, _(u"Connection")) + self.X2goTabs.AddPage(self.tab_Settings, _(u"Settings")) + self.X2goTabs.AddPage(self.tab_SharedFilesAndFolders, _(u"Sharing")) + + # the bottom area with OK, Defaults and Cancel buttons + sizer_B = wx.BoxSizer(wx.HORIZONTAL) + sizer_B_1 = wx.GridSizer(1, 3, 7, 14) + sizer_B_1.Add(self.OKButton, 0, 0, 0) + sizer_B_1.Add(self.DefaultButton, 0, 0, 0) + sizer_B_1.Add(self.CancelButton, 0, 0, 0) + sizer_B.Add(sizer_B_1, 1, wx.EXPAND, 0) + + # put it all together... + MainSizer = wx.BoxSizer(wx.VERTICAL) + MainSizer.Add(self.X2goTabs, 1, wx.EXPAND|wx.FIXED_MINSIZE, 0) + MainSizer.Add(sizer_B, 0, wx.ALIGN_RIGHT, 0) + self.SetSizerAndFit(MainSizer) + + max1_x, max1_y = self.tab_Session.GetBestSize() + max2_x, max2_y = self.tab_Connection.GetBestSize() + max3_x, max3_y = self.tab_Settings.GetBestSize() + max4_x, max4_y = self.tab_SharedFilesAndFolders.GetBestSize() + sizer_B_x, sizer_B_y = sizer_B.GetSize() + + self.SetSize((max(max1_x, max2_x, max3_x, max4_x) * 1.05, (max(max1_y, max2_y, max3_y, max4_y) + sizer_B_y) * 1.2)) + + self.SetAutoLayout(True) + self.Layout() + self.CentreOnScreen() + self.Show(True) + + def __update_fields(self): + + self.ProfileName.SetValue(self.profile_config['name']) + self.Host.SetValue(self.profile_config['host']) + self.UserName.SetValue(self.profile_config['user']) + self.SSHPort.SetValue(self.profile_config['sshport']) + self.SSHKeyFile.SetValue(self.profile_config['key']) + self.UseSSHProxy.SetValue(self.profile_config['usesshproxy']) + + _ssh_proxy = self.profile_config['usesshproxy'] + self.SSHProxyHost.SetValue(self.profile_config['sshproxyhost']) + self.SSHProxyUser.SetValue(self.profile_config['sshproxyuser']) + self.SSHProxyKeyFile.SetValue(self.profile_config['sshproxykeyfile']) + _from_host = _from_port = _to_host = _to_port = None + if self.profile_config['sshproxytunnel'].count(':') == 2: + _from_port, _to_host, _to_port = self.profile_config['sshproxytunnel'].split(':') + _from_host = 'localhost' + elif self.profile_config['sshproxytunnel'].count(':') == 3: + _from_host, _from_port, _to_host, _to_port = self.profile_config['sshproxytunnel'].split(':') + + if _from_host: self.SSHProxyTunnelFromHost.SetValue(_from_host) + if _from_port: self.SSHProxyTunnelFromPort.SetValue(int(_from_port)) + if _to_host: self.SSHProxyTunnelToHost.SetValue(_to_host) + if _to_port: self.SSHProxyTunnelToPort.SetValue(int(_to_port)) + if _ssh_proxy: + self.SSHProxyHostLabel.Enable(True) + self.SSHProxyHost.Enable(True) + self.SSHProxyUserLabel.Enable(True) + self.SSHProxyUser.Enable(True) + self.SSHProxyKeyFileLabel.Enable(True) + self.SSHProxyKeyFile.Enable(True) + self.SSHProxyKeyFileBrowseButton.Enable(True) + self.SSHProxyTunnelLabel.Enable(True) + self.SSHProxyTunnelFromHost.Enable(True) + self.SSHProxyTunnelFromPort.Enable(True) + self.SSHProxyTunnelBetweenLabel.Enable(True) + self.SSHProxyTunnelToHost.Enable(True) + self.SSHProxyTunnelToPort.Enable(True) + else: + self.SSHProxyHostLabel.Enable(False) + self.SSHProxyHost.Enable(False) + self.SSHProxyUserLabel.Enable(False) + self.SSHProxyUser.Enable(False) + self.SSHProxyKeyFileLabel.Enable(False) + self.SSHProxyKeyFile.Enable(False) + self.SSHProxyKeyFileBrowseButton.Enable(False) + self.SSHProxyTunnelLabel.Enable(False) + self.SSHProxyTunnelFromHost.Enable(False) + self.SSHProxyTunnelFromPort.Enable(False) + self.SSHProxyTunnelBetweenLabel.Enable(False) + self.SSHProxyTunnelToHost.Enable(False) + self.SSHProxyTunnelToPort.Enable(False) + + _command = self.profile_config['command'] + + # disable all command relevant widgets first + self.ApplicationLabel.Enable(False) + self.Application.Enable(False) + self.CommandLabel.Enable(False) + self.Command.Enable(False) + self.XDMCPServerLabel.Enable(False) + self.XDMCPServer.Enable(False) + + if _command in self.sessionChoices.keys(): + self.SessionType.SetValue(self.sessionChoices[_command]) + self.Application.SetValue('') + self.Command.SetValue('') + elif _command in self.applicationChoices.keys(): + self.SessionType.SetValue(self.sessionChoices['APPLICATION']) + self.ApplicationLabel.Enable(True) + self.Application.Enable(True) + self.Application.SetValue(self.applicationChoices[_command]) + self.Command.SetValue('') + else: + self.SessionType.SetValue(self.sessionChoices['CUSTOM']) + self.Command.Enable(True) + self.Command.SetValue(_command) + + if _command == 'XDMCP': + self.XDMCPServerLabel.Enable(True) + self.XDMCPServer.Enable(True) + + if _command in ('RDP', 'DirectRDP'): + self.RDPSettingsLabel.Enable(True) + self.RDPServerLabel.Enable(True) + self.RDPServer.Enable(True) + self.RDPOptionsLabel.Enable(True) + self.RDPOptions.Enable(True) + else: + self.RDPSettingsLabel.Enable(False) + self.RDPServerLabel.Enable(False) + self.RDPServer.Enable(False) + self.RDPOptionsLabel.Enable(False) + self.RDPOptions.Enable(False) + + if _command == 'DirectRDP': + self.enable_DirectRDP() + else: + self.disable_DirectRDP() + + self.RDPServer.SetValue(self.profile_config['rdpserver']) + self.RDPOptions.SetValue(self.profile_config['rdpoptions']) + + self.XDMCPServer.SetValue(self.profile_config['xdmcpserver']) + + if 0 < self.profile_config['speed'] <= 5: + _link_speed = self.profile_config['speed'] + else: + _link_speed = self.profileManagerDefaults['speed'] + self.LinkSpeed.SetValue(_link_speed) + + self.Compression.SetValue(self.profile_config['pack']) + self.ImageQuality.SetValue(self.profile_config['quality']) + self.DisplayTypeFullscreen.SetValue(self.profile_config['fullscreen']) + self.DisplayTypeCustom.SetValue(not self.profile_config['fullscreen']) + self.ScreenWidth.SetValue(self.profile_config['width']) + self.ScreenHeight.SetValue(self.profile_config['height']) + if self.profile_config['fullscreen']: + self.ScreenWidth.Enable(False) + self.ScreenHeight.Enable(False) + else: + self.ScreenWidth.Enable(True) + self.ScreenHeight.Enable(True) + + self.SetDisplayDPI.SetValue(self.profile_config['setdpi']) + self.DisplayDPI.SetValue(self.profile_config['dpi']) + if not self.profile_config['setdpi']: + self.DisplayDPI.Enable(False) + else: + self.DisplayDPI.Enable(True) + + # TODO Fill in the actual DPI + self.CurrentKeyBoard.SetValue(self.profile_config['usekbd']) + self.KeyboardLayout.SetValue(self.profile_config['layout']) + self.KeyboardModel.SetValue(self.profile_config['type']) + if self.profile_config['usekbd']: + self.KeyboardLayoutLabel.Enable(False) + self.KeyboardModelLabel.Enable(False) + self.KeyboardLayout.Enable(False) + self.KeyboardModel.Enable(False) + else: + self.KeyboardLayoutLabel.Enable(True) + self.KeyboardModelLabel.Enable(True) + self.KeyboardLayout.Enable(True) + self.KeyboardModel.Enable(True) + + self.EnableSound.SetValue(self.profile_config['sound']) + self.DefaultSoundPort.SetValue(self.profile_config['defsndport']) + self.SoundPort.SetValue(self.profile_config['sndport']) + if self.profile_config['soundsystem'] == 'pulse': + self.PulseAudio.SetValue(True) + elif self.profile_config['soundsystem'] == 'arts': + self.Arts.SetValue(True) + elif self.profile_config['soundsystem'] == 'esd': + self.Esd.SetValue(True) + if self.profile_config['sound']: + self.PulseAudio.Enable(True) + self.Esd.Enable(True) + self.DefaultSoundPort.Enable(True) + if not self.profile_config['defsndport']: + self.SoundPortLabel.Enable(True) + self.SoundPort.Enable(True) + else: + self.SoundPortLabel.Enable(False) + self.SoundPort.Enable(False) + else: + self.PulseAudio.Enable(False) + self.Esd.Enable(False) + self.DefaultSoundPort.Enable(False) + self.SoundPortLabel.Enable(False) + self.SoundPort.Enable(False) + + self.ClientSidePrinting.SetValue(self.profile_config['print']) + + self.UseLocalFolderSharing.SetValue(self.profile_config['useexports']) + self._toggle_localFolderSharing() + + self.SharedFoldersList.DeleteAllItems() + _shared_folders = self.profile_config['export'].strip().strip(',').strip() + for _shared_folder_path in [ sf.strip() for sf in _shared_folders.split(',') ]: + if self.SharedFoldersList.FindItem(0, _shared_folder_path) == -1: + _item = wx.ListItem() + _item.SetData(wx.NewId()) + _item.SetText(_shared_folder_path) + self.SharedFoldersList.InsertItem(_item) + self.AddSharedFolderPathButton.Enable(False) + self.DeleteSharedFolderPathButton.Enable(False) + + self.UseEncodingConverter.SetValue(self.profile_config['useiconv']) + self.ClientEncoding.SetValue(self.profile_config['iconvfrom']) + self.ServerEncoding.SetValue(self.profile_config['iconvto']) + self._toggle_useEncodingConverter() + + self.UseFileDropbox.SetValue(self.profile_config['usedropbox']) + self.FileDropboxExtensions.SetValue(self.profile_config['dropboxextensions']) + if self.profile_config['dropboxaction'] in self.dropboxactionChoices.keys(): + self.FileDropboxAction.SetValue(self.dropboxactionChoices[self.profile_config['dropboxaction']]) + else: + self.FileDropboxAction.SetValue(self.dropboxactionChoices['OPEN']) + self._toggle_useFileDropbox() + + self.disable_EditConnected_options() + + def disable_EditConnected_options(self): + # disable widgets when editing connected sessions + if self.action == 'EDIT_CONNECTED': + + self.staticbox_Profile.Enable(False) + self.ProfileNameLabel.Enable(False) + self.ProfileName.Enable(False) + self.IconButton.Enable(False) + self.IconButtonLabel.Enable(False) + self.HostLabel.Enable(False) + self.Host.Enable(False) + self.UserNameLabel.Enable(False) + self.UserName.Enable(False) + self.staticbox_Server.Enable(False) + self.SSHPortLabel.Enable(False) + self.SSHPort.Enable(False) + self.SSHKeyFileLabel.Enable(False) + self.SSHKeyFile.Enable(False) + self.UseSSHProxy.Enable(False) + self.SSHProxyHostLabel.Enable(False) + self.SSHProxyHost.Enable(False) + self.SSHProxyUserLabel.Enable(False) + self.SSHProxyUser.Enable(False) + self.SSHProxyKeyFileLabel.Enable(False) + self.SSHProxyKeyFile.Enable(False) + self.SSHProxyKeyFileBrowseButton.Enable(False) + self.SSHProxyTunnelLabel.Enable(False) + self.SSHProxyTunnelFromHost.Enable(False) + self.SSHProxyTunnelFromPort.Enable(False) + self.SSHProxyTunnelBetweenLabel.Enable(False) + self.SSHProxyTunnelToHost.Enable(False) + self.SSHProxyTunnelToPort.Enable(False) + self.tab_SharedFilesAndFolders.Enable(False) + + def __update_from_screen(self): + self.profile_config['name'] = self.ProfileName.GetValue() + self.profile_config['icon'] = self.IconPath + self.profile_config['host'] = self.Host.GetValue() + self.profile_config['user'] = self.UserName.GetValue() + self.profile_config['sshport'] = self.SSHPort.GetValue() + self.profile_config['key'] = self.SSHKeyFile.GetValue() + if self.UseSSHProxy.GetValue(): + self.profile_config['usesshproxy'] = True + else: + self.profile_config['usesshproxy'] = False + self.profile_config['sshproxyhost'] = self.SSHProxyHost.GetValue() + self.profile_config['sshproxyuser'] = self.SSHProxyUser.GetValue() + self.profile_config['sshproxytunnel'] = '%s:%s:%s:%s' % (self.SSHProxyTunnelFromHost.GetValue(), + self.SSHProxyTunnelFromPort.GetValue(), + self.SSHProxyTunnelToHost.GetValue(), + self.SSHProxyTunnelToPort.GetValue(), + ) + self.profile_config['sshproxykeyfile'] = self.SSHProxyKeyFile.GetValue() + + _session_type = [ s for s in self.sessionChoices.keys() if self.sessionChoices[s] == self.SessionType.GetValue() ][0] + if _session_type == 'APPLICATION': + _command = [ a for a in self.applicationChoices.keys() if self.applicationChoices[a] == self.Application.GetValue() ][0] + self.profile_config['rootless'] = True + elif _session_type == 'CUSTOM': + _command = self.Command.GetValue() + self.profile_config['rootless'] = True + elif _session_type in ('RDP', 'EMBEDDED_MENU'): + _command = _session_type + self.profile_config['rootless'] = True + else: + _command = _session_type + self.profile_config['command'] = _command + self.profile_config['rdpserver'] = self.RDPServer.GetValue() + self.profile_config['rdpoptions'] = self.RDPOptions.GetValue() + self.profile_config['xdmcpserver'] = self.XDMCPServer.GetValue() + + _link_idx = self.LinkSpeed.GetValue() + self.profile_config['speed'] = _link_idx + + self.profile_config['pack'] = self.Compression.GetValue() + self.profile_config['quality'] = self.ImageQuality.GetValue() + self.profile_config['fullscreen'] = self.DisplayTypeFullscreen.GetValue() + self.profile_config['width'] = self.ScreenWidth.GetValue() + self.profile_config['height'] = self.ScreenHeight.GetValue() + + self.profile_config['setdpi'] = self.SetDisplayDPI.GetValue() + self.profile_config['dpi'] = self.DisplayDPI.GetValue() + + self.profile_config['usekbd'] = self.CurrentKeyBoard.GetValue() + self.profile_config['layout'] = self.KeyboardLayout.GetValue() + self.profile_config['type'] = self.KeyboardModel.GetValue() + + self.profile_config['sound'] = self.EnableSound.GetValue() + self.profile_config['defsndport'] = self.DefaultSoundPort.GetValue() + self.profile_config['sndport'] = self.SoundPort.GetValue() + if self.PulseAudio.GetValue(): + self.profile_config['soundsystem'] = 'pulse' + elif self.Arts.GetValue(): + self.profile_config['soundsystem'] = 'arts' + elif self.Esd.GetValue(): + self.profile_config['soundsystem'] = 'esd' + + self.profile_config['print'] = self.ClientSidePrinting.GetValue() + + self.profile_config['useexports'] = self.UseLocalFolderSharing.GetValue() + _shared_folders = [] + _item_id = self.SharedFoldersList.GetTopItem() + while _item_id != -1 and self.SharedFoldersList.ItemCount > 0: + _item = self.SharedFoldersList.GetItem(_item_id) + _shared_folders.append(_item.GetText()) + _item_id = self.SharedFoldersList.GetNextItem(_item_id) + self.profile_config['export'] = ','.join([ f for f in _shared_folders if f ]) + self.profile_config['useiconv'] = self.UseEncodingConverter.GetValue() + self.profile_config['iconvfrom'] = self.ClientEncoding.GetValue() + self.profile_config['iconvto'] = self.ServerEncoding.GetValue() + + self.profile_config['usedropbox'] = self.UseFileDropbox.GetValue() + _extensions = self.FileDropboxExtensions.GetValue() + _extensions = _extensions.replace(' ', ',').replace(';', ',') + _normalized_exts = [] + for _ext in _extensions.split(','): + _ext = _ext.upper() + _ext = _ext.lstrip().lstrip('.').rstrip() + if _ext: + _normalized_exts.append(_ext) + self.profile_config['dropboxextensions'] = ','.join(_normalized_exts) + try: + _dropbox_action = [ a for a in self.dropboxactionChoices.keys() if self.dropboxactionChoices[a] == self.FileDropboxAction.GetValue() ][0] + except IndexError: + _dropbox_action = 'OPEN' + self.profile_config['dropboxaction'] = _dropbox_action + + def OnIconChange(self, event): + _share_location = os.path.split(_icons_location)[0] + iconsdir = _icons_location + if not os.path.exists(iconsdir): + iconsdir = os.getcwd() + wildcard = _(u"Icon Files (*.png)|*.png|" \ + "All files (*.*)|*") + dlg = wx.FileDialog( + self, message=_(u"Choose an icon for this session profile"), defaultDir=iconsdir, + defaultFile="", wildcard=wildcard, style=wx.OPEN | wx.CHANGE_DIR ) + # Show the dialog and retrieve the user response. If it is the OK response, + # process the data. + if dlg.ShowModal() == wx.ID_OK: + # This returns a Python list of files that were selected. + path_to_icon = dlg.GetPath() + self.IconButton.SetBitmapLabel(wx.Bitmap(path_to_icon, wx.BITMAP_TYPE_ANY)) + rel_path = path_to_icon.replace('%s/' % _share_location, ':') + rel_path = rel_path.replace( 'icons/PyHoca/128x128/pyhoca-session.png', 'icons/128x128/x2gosession.png') + self.IconPath = rel_path + + def enable_DirectRDP(self): + self.HostLabel.Enable(False) + self.Host.Enable(False) + self.SSHPortLabel.Enable(False) + self.SSHPort.Enable(False) + self.SSHKeyFileLabel.Enable(False) + self.SSHKeyFile.Enable(False) + self.staticbox_LinkSpeed.Enable(False) + self.LinkSpeed.Enable(False) + self.ModemLabel.Enable(False) + self.ISDNLabel.Enable(False) + self.ADSLLabel.Enable(False) + self.WANLabel.Enable(False) + self.LANLabel.Enable(False) + self.staticbox_Compression.Enable(False) + self.CompressionLabel.Enable(False) + self.Compression.Enable(False) + self.ImageQualityLabel.Enable(False) + self.ImageQuality.Enable(False) + self.tab_Settings.Enable(False) + self.tab_SharedFilesAndFolders.Enable(False) + + + def disable_DirectRDP(self): + self.HostLabel.Enable(True) + self.Host.Enable(True) + self.SSHPortLabel.Enable(True) + self.SSHPort.Enable(True) + self.SSHKeyFileLabel.Enable(True) + self.SSHKeyFile.Enable(True) + self.staticbox_LinkSpeed.Enable(True) + self.LinkSpeed.Enable(True) + self.ModemLabel.Enable(True) + self.ISDNLabel.Enable(True) + self.ADSLLabel.Enable(True) + self.WANLabel.Enable(True) + self.LANLabel.Enable(True) + self.staticbox_Compression.Enable(True) + self.CompressionLabel.Enable(True) + self.Compression.Enable(True) + self.ImageQualityLabel.Enable(True) + self.ImageQuality.Enable(True) + self.tab_Settings.Enable(True) + self.tab_SharedFilesAndFolders.Enable(True) + + def OnSessionTypeSelected(self, event): + _session_type = [ i for i in self.sessionChoices.keys() if self.sessionChoices[i] == self.SessionType.GetValue() ][0] + if _session_type == 'APPLICATION': + self.ApplicationLabel.Enable(True) + self.Application.Enable(True) + if not self.Application.GetValue(): + self.Application.SetValue(self.applicationChoices['TERMINAL']) + else: + self.ApplicationLabel.Enable(False) + self.Application.Enable(False) + + if _session_type == 'CUSTOM': + self.CommandLabel.Enable(True) + self.Command.Enable(True) + if not self.Command.GetValue(): + self.Command.SetValue('xterm') + else: + self.CommandLabel.Enable(False) + self.Command.Enable(False) + + if _session_type == 'XDMCP': + self.XDMCPServerLabel.Enable(True) + self.XDMCPServer.Enable(True) + else: + self.XDMCPServerLabel.Enable(False) + self.XDMCPServer.Enable(False) + + if _session_type in ('RDP', 'DirectRDP', ): + self.RDPSettingsLabel.Enable(True) + self.RDPServerLabel.Enable(True) + self.RDPServer.Enable(True) + self.RDPOptionsLabel.Enable(True) + self.RDPOptions.Enable(True) + else: + self.RDPSettingsLabel.Enable(False) + self.RDPServerLabel.Enable(False) + self.RDPServer.Enable(False) + self.RDPOptionsLabel.Enable(False) + self.RDPOptions.Enable(False) + + if _session_type == 'DirectRDP': + self.enable_DirectRDP() + else: + self.disable_DirectRDP() + + self.disable_EditConnected_options() + + def OnSSHKeyFileBrowse(self, event): + sshdir = os.path.expanduser('~/.ssh') + if not os.path.exists(sshdir): + sshdir = os.getcwd() + wildcard = _(u"All files (*.*)|*") + dlg = wx.FileDialog( + self, message=_(u"Choose a public SSH key"), defaultDir=sshdir, + defaultFile="", wildcard=wildcard, style=wx.OPEN | wx.CHANGE_DIR ) + # Show the dialog and retrieve the user response. If it is the OK response, + # process the data. + if dlg.ShowModal() == wx.ID_OK: + # This returns a Python list of files that were selected. + path = dlg.GetPath() + self.SSHKeyFile.SetValue(path) + + def OnSSHProxyKeyFileBrowse(self, event): + sshdir = os.path.expanduser('~/.ssh') + if not os.path.exists(sshdir): + sshdir = os.getcwd() + wildcard = "All files (*.*)|*" + dlg = wx.FileDialog( + self, message=_(u"Choose a public SSH key"), defaultDir=sshdir, + defaultFile="", wildcard=wildcard, style=wx.OPEN | wx.CHANGE_DIR ) + # Show the dialog and retrieve the user response. If it is the OK response, + # process the data. + if dlg.ShowModal() == wx.ID_OK: + # This returns a Python list of files that were selected. + path = dlg.GetPath() + self.SSHProxyKeyFile.SetValue(path) + + def OnUseSSHProxy(self, event): + if self.UseSSHProxy.GetValue(): + self.SSHProxyHostLabel.Enable(True) + self.SSHProxyHost.Enable(True) + self.SSHProxyUserLabel.Enable(True) + self.SSHProxyUser.Enable(True) + self.SSHProxyKeyFileLabel.Enable(True) + self.SSHProxyKeyFile.Enable(True) + self.SSHProxyKeyFileBrowseButton.Enable(True) + self.SSHProxyTunnelLabel.Enable(True) + self.SSHProxyTunnelFromHost.Enable(True) + self.SSHProxyTunnelBetweenLabel.Enable(True) + self.SSHProxyTunnelFromPort.Enable(True) + self.SSHProxyTunnelToHost.Enable(True) + self.SSHProxyTunnelToPort.Enable(True) + else: + self.SSHProxyHostLabel.Enable(False) + self.SSHProxyHost.Enable(False) + self.SSHProxyUserLabel.Enable(False) + self.SSHProxyUser.Enable(False) + self.SSHProxyKeyFileLabel.Enable(False) + self.SSHProxyKeyFile.Enable(False) + self.SSHProxyKeyFileBrowseButton.Enable(False) + self.SSHProxyTunnelLabel.Enable(False) + self.SSHProxyTunnelFromHost.Enable(False) + self.SSHProxyTunnelFromPort.Enable(False) + self.SSHProxyTunnelBetweenLabel.Enable(False) + self.SSHProxyTunnelToHost.Enable(False) + self.SSHProxyTunnelToPort.Enable(False) + + def OnKeepKeyboard(self, event): + if self.CurrentKeyBoard.GetValue(): + self.KeyboardLayoutLabel.Enable(False) + self.KeyboardModelLabel.Enable(False) + self.KeyboardLayout.Enable(False) + self.KeyboardModel.Enable(False) + else: + self.KeyboardLayoutLabel.Enable(True) + self.KeyboardModelLabel.Enable(True) + self.KeyboardLayout.Enable(True) + self.KeyboardModel.Enable(True) + + def OnSoundEnable(self, event): # wxGlade: X2goMaintProfile.<event_handler> + if self.EnableSound.GetValue(): + self.PulseAudio.Enable(True) + self.Esd.Enable(True) + self.DefaultSoundPort.Enable(True) + if self.DefaultSoundPort.GetValue() is False: + self.SoundPortLabel.Enable(True) + self.SoundPort.Enable(True) + else: + self.PulseAudio.Enable(False) + self.Esd.Enable(False) + self.DefaultSoundPort.Enable(False) + self.SoundPortLabel.Enable(False) + self.SoundPort.Enable(False) + + + def OnSetDisplayFullscreen(self, event): + self.ScreenWidthLabel.Enable(False) + self.ScreenWidth.Enable(False) + self.ScreenHeightLabel.Enable(False) + self.ScreenHeight.Enable(False) + + def OnSetDisplayCustom(self, event): + self.ScreenWidthLabel.Enable(True) + self.ScreenWidth.Enable(True) + self.ScreenHeightLabel.Enable(True) + self.ScreenHeight.Enable(True) + + def OnSetDisplayDPI(self, event): + if self.SetDisplayDPI.GetValue(): + self.DisplayDPI.Enable(True) + else: + self.DisplayDPI.Enable(False) + + def OnPulseAudio(self, event): + if self.DefaultSoundPort.GetValue(): + self.SoundPort.SetValue(self.audioPorts['pulse']) + + def OnEsd(self, event): + if self.DefaultSoundPort.GetValue(): + self.SoundPort.SetValue(self.audioPorts['esd']) + + def OnDefaultSoundPort(self, event): + if not self.DefaultSoundPort.GetValue(): + self.SoundPortLabel.Enable(True) + self.SoundPort.Enable(True) + else: + if self.PulseAudio.GetValue(): + self.SoundPort.SetValue(self.audioPorts['pulse']) + if self.Esd.GetValue(): + self.SoundPort.SetValue(self.audioPorts['esd']) + self.SoundPortLabel.Enable(False) + self.SoundPort.Enable(False) + + def _toggle_localFolderSharing(self): + if self.UseLocalFolderSharing.GetValue(): + self.SharedFolderPathLabel.Enable(True) + self.SharedFolderPath.Enable(True) + self.SharedFolderPathBrowseButton.Enable(True) + self.SharedFoldersList.Enable(True) + self.UseEncodingConverter.Enable(True) + self._toggle_useEncodingConverter() + else: + self.AddSharedFolderPathButton.Enable(False) + self.DeleteSharedFolderPathButton.Enable(False) + self.SharedFolderPathLabel.Enable(False) + self.SharedFolderPath.Enable(False) + self.SharedFolderPathBrowseButton.Enable(False) + self.SharedFoldersList.Enable(False) + self.UseEncodingConverter.Enable(False) + self.ClientEncodingLabel.Enable(False) + self.ClientEncoding.Enable(False) + self.ServerEncodingLabel.Enable(False) + self.ServerEncoding.Enable(False) + + def OnToggleLocalFolderSharing(self, event): + self._toggle_localFolderSharing() + + def OnSelectSharedFolderPath(self, event): + shared_folder = os.path.expanduser('~') + if not os.path.exists(shared_folder): + shared_folder = os.getcwd() + dlg = wx.DirDialog( + self, message=_(u"Choose a folder to share within a session"), style=1, defaultPath=shared_folder) + # Show the dialog and retrieve the user response. If it is the OK response, + # process the data. + if dlg.ShowModal() == wx.ID_OK: + # This returns a Python list of files that were selected. + self.SharedFolderPath.SetValue(dlg.GetPath()) + + def OnSharedFolderListItemSelected(self, event): + self.DeleteSharedFolderPathButton.Enable(True) + + def OnSharedFolderListItemDeselected(self, event): + self.DeleteSharedFolderPathButton.Enable(False) + + def OnSharedFolderPathKeyPressed(self, event): + self.AddSharedFolderPathButton.Enable(True) + + def OnAddSharedFolderPath(self, event): + _shared_folder_path = self.SharedFolderPath.GetValue() + if _shared_folder_path and (self.SharedFoldersList.FindItem(0, _shared_folder_path) == -1): + _item = wx.ListItem() + _item.SetData(wx.NewId()) + _item.SetText(_shared_folder_path) + self.SharedFoldersList.InsertItem(_item) + self.SharedFolderPath.SetValue('') + self.AddSharedFolderPathButton.Enable(False) + + def OnDeleteSharedFolderPath(self, event): + _item = self.SharedFoldersList.GetFocusedItem() + self.SharedFoldersList.DeleteItem(_item) + self.DeleteSharedFolderPathButton.Enable(False) + + def _toggle_useEncodingConverter(self): + if self.UseEncodingConverter.GetValue(): + self.ClientEncodingLabel.Enable(True) + self.ClientEncoding.Enable(True) + self.ServerEncodingLabel.Enable(True) + self.ServerEncoding.Enable(True) + else: + self.ClientEncodingLabel.Enable(False) + self.ClientEncoding.Enable(False) + self.ServerEncodingLabel.Enable(False) + self.ServerEncoding.Enable(False) + + def OnToggleEncodingConverter(self, event): + self._toggle_useEncodingConverter() + + def _toggle_useFileDropbox(self): + if self.UseFileDropbox.GetValue(): + self.FileDropboxExtensionsLabel.Enable(True) + self.FileDropboxExtensions.Enable(True) + self.FileDropboxActionLabel.Enable(True) + self.FileDropboxAction.Enable(True) + else: + self.FileDropboxExtensionsLabel.Enable(False) + self.FileDropboxExtensions.Enable(False) + self.FileDropboxActionLabel.Enable(False) + self.FileDropboxAction.Enable(False) + + def OnToggleFileDropbox(self, event): + self._toggle_useFileDropbox() + + def __validate(self): + validateOk = True + if len(self.profile_config['name'].strip()) == 0: + validateOk = False + self._PyHocaGUI.notifier.send(title=_(u'Profile Manager'), text=_(u'Profile name is missing, profile unusable!!!'), icon='profile_error') + return validateOk + + def OnOKButton(self, event): + wx.BeginBusyCursor() + self.__update_from_screen() + if self.__validate(): + + if self.profile_config != self.profile_config_bak: + + if self.action == 'ADD': + self.profile_id = self.session_profiles.add_profile() + + print self.profile_id + for k in self.profile_config.keys(): + self.session_profiles.update_value(self.profile_id, k, self.profile_config[k]) + + self.session_profiles.write_user_config = True + self.session_profiles.write() + + if self.action == 'ADD': + print + self._PyHocaGUI.notifier.send(title=_(u'%s - profile added') % self.profile_config['name'], + text=_(u'A new session profile has been added.'), + icon='profile_add', + ) + elif self.action == 'EDIT': + self._PyHocaGUI.notifier.send(title=_(u'%s - modified') % self.profile_config['name'], + text=_(u'Changes to profile have been saved.'), + icon='profile_save', + ) + + wx.EndBusyCursor() + self.Close() + self.Destroy() + else: + wx.EndBusyCursor() + + def OnCancel(self, event): + self.Close() + self.Destroy() + + def OnDefault(self, event): + self.profile_config = copy.deepcopy(self.profile_config_bak) + self.__update_fields() + diff --git a/pyhoca/wxgui/profilemanager.pyc b/pyhoca/wxgui/profilemanager.pyc new file mode 100644 index 0000000..b23c2d0 Binary files /dev/null and b/pyhoca/wxgui/profilemanager.pyc differ diff --git a/pyhoca/wxgui/taskbar.py b/pyhoca/wxgui/taskbar.py new file mode 100644 index 0000000..f90c99f --- /dev/null +++ b/pyhoca/wxgui/taskbar.py @@ -0,0 +1,144 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep@lindix.nl> +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca GUI is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# PyHoca GUI is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +modules ={} + +try: + import wxversion + wxversion.select('2.9') +except: pass + +try: + import wxversion + wxversion.select('2.8') +except: pass + +# Python X2go +import x2go + +import gevent +import gevent.monkey +gevent.monkey.patch_all() + +import wx +import wx.lib.scrolledpanel as scrolled +import wx.lib.mixins.listctrl as listmix + +if x2go.X2GOCLIENT_OS == 'Windows': + import win32gui + +import os +import sys +import copy + +# PyHoca-GUI modules +import menus_taskbar +import profilemanager +import basepath + +_icons_location = basepath.icons_basepath + + +try: + from agw import knobctrl as KC + knobctrlavailable = True +except ImportError: # if it's not there locally, try the wxPython lib. + try: + import wx.lib.agw.knobctrl as KC + knobctrlavailable = True + except ImportError: + knobctrlavailable = False + +import wx.lib.sized_controls as sc + + +class PyHocaGUI_TaskBarIcon(wx.TaskBarIcon): + """\ + STILL UNDOCUMENTED + + """ + def __init__(self, _about): + """\ + STILL UNDOCUMENTED + + """ + wx.TaskBarIcon.__init__(self) + self._PyHocaGUI = _about._PyHocaGUI + self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger + self._pyhoca_logger('start TaskBarIcon of type: %s' % (wx.PlatformInfo, ), loglevel=x2go.loglevel_INFO) + self.SetIconIdle() + self.imgidx = 1 + self.tooltip = "" + + def SetIconConnecting(self, profile_name): + self.icon = self.MakeIcon(icon_name='pyhoca-trayicon') + if x2go.X2GOCLIENT_OS == 'Windows': + self.icon = self.MakeIcon(icon_name='x2go-logo-ubuntu') + self.SetIcon(self.icon, _(u"PyHoca-GUI\nConnecting you to ,,%s\'\'") % profile_name) + else: + self.icon = self.MakeIcon(icon_name='pyhoca-trayicon') + self.SetIcon(self.icon, _(u"PyHoca-GUI (Python X2goClient)\nCurrently connecting you to remote X2go server ,,%s\'\'") % profile_name) + + def SetIconIdle(self): + if x2go.X2GOCLIENT_OS == 'Windows': + self.icon = self.MakeIcon(icon_name='x2go-logo-ubuntu') + self.SetIcon(self.icon, _(u"PyHoca-GUI\nConnecting you to X2go...")) + else: + self.icon = self.MakeIcon(icon_name='pyhoca-trayicon') + self.SetIcon(self.icon, _(u"PyHoca-GUI (Python X2goClient)\nClient for connecting you to a remote X2go server")) + + def CreateSessionManagerPopupMenu(self, evt): + """\ + STILL UNDOCUMENTED + + """ + self.menu_sessionmanager = self.PopupMenu(menus_taskbar.PyHocaGUI_Menu_TaskbarSessionManager(self._PyHocaGUI, caller=self)) + return self.menu_sessionmanager + + def CreatePopupMenu(self): + """\ + This method is called by the base class when it needs to popup + the menu for the default EVT_RIGHT_DOWN event. Just create + the menu how you want it and return it from this function, + the base class takes care of the rest. + """ + return self.CreateProfileManagerPopupMenu() + + def CreateProfileManagerPopupMenu(self): + self.menu_optionsmanager = self.PopupMenu(menus_taskbar.PyHocaGUI_Menu_TaskbarOptionsManager(self._PyHocaGUI, caller=self)) + return self.menu_optionsmanager + + def MakeIcon(self, icon_name): + """\ + The various platforms have different requirements for the + icon size... + """ + if "wxMSW" in wx.PlatformInfo: + img = wx.Image('%s/PyHoca/16x16/%s.png' % (_icons_location, icon_name)) + elif "wxGTK" in wx.PlatformInfo: + img = wx.Image('%s/PyHoca/22x22/%s.png' % (_icons_location, icon_name)) + elif "wxMAC" in wx.PlatformInfo: + img = wx.Image('%s/PyHoca/128x128/%s.png' % (_icons_location, icon_name)) + icon = wx.IconFromBitmap(img.ConvertToBitmap()) + return icon + + def Close(self): + self.RemoveIcon() + diff --git a/pyhoca/wxgui/taskbar.pyc b/pyhoca/wxgui/taskbar.pyc new file mode 100644 index 0000000..ec0b34a Binary files /dev/null and b/pyhoca/wxgui/taskbar.pyc differ diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..63018d2 --- /dev/null +++ b/setup.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010-2011 by Mike Gabriel <m.gabriel@das-netzwerkteam.de> +# +# PyHoca is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PyHoca is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +import gevent.monkey +gevent.monkey.patch_all() + +import platform +from setuptools import setup, find_packages +from distutils.core import setup +if platform.system() == 'Windows': + import py2exe +if platform.system() == 'Linux': + from DistUtilsExtra.command import * +from glob import glob + +import os + +# import the PyHoca-GUI +import pyhoca.wxgui + +# +# to build .exe file, run on Windows: +# ,,python setup.py py2exe'' +# +# to update i18n .mo files (and merge .pot file into .po files) run on Linux: +# ,,python setup.py build_i18n -m'' + +cmd_class = {} +data_files = [] + +if platform.system() == 'Windows': + # building from trunk + dll_data_files = [("Microsoft.VC90.CRT", glob(r'..\\pyhoca-contrib\\mswin\\ms-vc-runtime\\*.*'))] + nxproxy_files = [("nxproxy", glob(r'..\\pyhoca-contrib\\mswin\\nxproxy-mswin\\nxproxy-3.0.4-2\\*.*'))] + pulseaudio_files = [("pulseaudio", glob(r'..\\pyhoca-contrib\\mswin\\pulseaudio-mswin\\pulseaudio-0.9.6\\*.*'))] + + icon_files = [ + ("icons\\PyHoca\\16x16", glob(r'icons\\PyHoca\\16x16\\*.*')), + ("icons\\PyHoca\\22x22", glob(r'icons\\PyHoca\\22x22\\*.*')), + ("icons\\PyHoca\\32x32", glob(r'icons\\PyHoca\\32x32\\pyhoca-*.*')), + ("icons\\PyHoca\\32x32", glob(r'icons\\PyHoca\\32x32\\x2go*.*')), + ("icons\\PyHoca\\48x48", glob(r'icons\\PyHoca\\48x48\\*.*')), + ("icons\\PyHoca\\64x64", glob(r'icons\\PyHoca\\64x64\\*.*')), + ("icons\\PyHoca\\128x128", glob(r'icons\\PyHoca\\128x128\\*.*')), + ("PyHoca_GUI.egg-infocons\\PyHoca\\128x128", glob(r'icons\\PyHoca\\128x128\\*.*')), + ("icons", glob(r'pixmaps\\*.ico')), + ] + img_files = [("img", glob(r'img\\*.*'))] + i18n_files = [ + ("mo\\en\\LC_MESSAGES", glob(r'build\\mo\\en\\LC_MESSAGES\\*.*')), + ("mo\\de\\LC_MESSAGES", glob(r'build\\mo\\de\\LC_MESSAGES\\*.*')), + ("mo\\nl\\LC_MESSAGES", glob(r'build\\mo\\nl\\LC_MESSAGES\\*.*')), + ("mo\\es\\LC_MESSAGES", glob(r'build\\mo\\es\\LC_MESSAGES\\*.*')), + ] + + data_files.extend([ "pixmaps\\pyhoca-gui.ico", ] + + dll_data_files + + icon_files + + img_files + + nxproxy_files + + pulseaudio_files + + i18n_files + ) + +if platform.system() == 'Linux': + cmd_class.update( + { + "build" : build_extra.build_extra, + "build_i18n" : build_i18n.build_i18n, + "clean": clean_i18n.clean_i18n, + } + ) + + +setup( + name = "pyhoca-gui", + version = pyhoca.wxgui.__VERSION__, + description = "PyHoca-GUI is a cross-platform (Windows, MacOS X, Linux) graphical X2go client.", + license = 'GPL', + author = 'Mike Gabriel, Dick Kniep', + url = 'http://www.x2go.org', + packages = [ 'pyhoca.wxgui', ], + package_dir = {'': '.'}, + install_requires = [ 'setuptools', ], + cmdclass = cmd_class, + windows = [ + { + "script": "pyhoca-gui", + "icon_resources": [(0, "pixmaps/pyhoca_x2go-logo-ubuntu.ico")], + }, + ], + data_files=data_files, + options={ + 'py2exe': { + 'dll_excludes': ['MSVCP90.DLL'], + 'includes': ['greenlet'], + 'compressed': 1, + 'optimize': 2, + } + } +) diff --git a/x2go b/x2go new file mode 120000 index 0000000..f437981 --- /dev/null +++ b/x2go @@ -0,0 +1 @@ +../python-x2go/x2go \ No newline at end of file hooks/post-receive -- pyhoca-gui.git (Python X2Go Client (wxPython GUI)) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "pyhoca-gui.git" (Python X2Go Client (wxPython GUI)).