added new files
authorMax Usachev <maxusachev@gmail.com>
Tue, 8 Jun 2010 12:46:03 +0000 (15:46 +0300)
committerMax Usachev <maxusachev@gmail.com>
Tue, 8 Jun 2010 12:46:03 +0000 (15:46 +0300)
12 files changed:
__init__.py [new file with mode: 0644]
factory.py [new file with mode: 0644]
meabook [new file with mode: 0755]
meabook-debug [new symlink]
ui/__init__.py [new file with mode: 0644]
ui/__init__.pyc [new file with mode: 0644]
ui/__init__.pyo [new file with mode: 0644]
ui/hildon_ui.py [new file with mode: 0644]
ui/hildon_ui.pyc [new file with mode: 0644]
ui/hildon_ui.pyo [new file with mode: 0644]
ui/text_ui.py [new file with mode: 0644]
ui/text_ui.pyo [new file with mode: 0644]

diff --git a/__init__.py b/__init__.py
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/factory.py b/factory.py
new file mode 100644 (file)
index 0000000..6b2a6b3
--- /dev/null
@@ -0,0 +1,13 @@
+"""
+UI factory
+"""
+
+def app_factory(basedir, interface=None):
+    if not interface or interface == 'hildon':
+        from meabook.ui.hildon_ui import HildonMeabook
+        return HildonMeabook(basedir)
+    elif interface == 'text':
+        from meabook.ui.text_ui import TextMeabook
+        return TextMeabook(basedir)
+    else:
+        raise ValueError('%s: unsupported UI type' % interface)
diff --git a/meabook b/meabook
new file mode 100755 (executable)
index 0000000..ebe4a1c
--- /dev/null
+++ b/meabook
@@ -0,0 +1,48 @@
+#!/usr/bin/python
+
+import os
+import sys
+from optparse import OptionParser
+
+# add meabook directory to Python path in debug mode
+if os.path.basename(sys.argv[0]).endswith("debug"):
+    sys.path.insert(0, "../../")
+    sys.path.insert(0, "../")
+
+from meabook.factory import app_factory
+
+try:
+    import osso
+except ImportError:
+    pass
+else:
+    #SERV = osso.Context("org.maemo.meabook", version, False)
+    pass
+
+
+def parse_command_line(argv):
+    """Parse command line options."""
+
+    parser = OptionParser(usage='%prog [options]')
+    parser.add_option('-u', '--ui', action='store', \
+        help='set user interface type', default='hildon')
+    return parser.parse_args(argv)
+
+
+def main(argv):
+    opts, argv = parse_command_line(argv)
+
+    if 'MYDOCSDIR' in os.environ and os.path.exists(os.path.join(\
+        os.environ['MYDOCSDIR'], '.documents')):
+        basedir = os.path.join(os.environ['MYDOCSDIR'], '.documents/meabook')
+    elif os.path.exists(os.path.join(os.getcwdu(), '.meabook')):
+        basedir = os.path.abspath(os.path.join(os.getcwdu(), '.meabook'))
+    else:
+        basedir = os.path.join(os.environ['HOME'], '.meabook')
+
+    app = app_factory(basedir, opts.ui)
+    app.start()
+
+
+if __name__ == "__main__":
+    sys.exit(main(sys.argv))
diff --git a/meabook-debug b/meabook-debug
new file mode 120000 (symlink)
index 0000000..29b52b1
--- /dev/null
@@ -0,0 +1 @@
+meabook
\ No newline at end of file
diff --git a/ui/__init__.py b/ui/__init__.py
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/ui/__init__.pyc b/ui/__init__.pyc
new file mode 100644 (file)
index 0000000..4505dc3
Binary files /dev/null and b/ui/__init__.pyc differ
diff --git a/ui/__init__.pyo b/ui/__init__.pyo
new file mode 100644 (file)
index 0000000..0830c1e
Binary files /dev/null and b/ui/__init__.pyo differ
diff --git a/ui/hildon_ui.py b/ui/hildon_ui.py
new file mode 100644 (file)
index 0000000..3cc1605
--- /dev/null
@@ -0,0 +1,43 @@
+"""
+Hildon UI for Meabook
+"""
+
+import gtk
+import hildon
+import gettext
+
+_ = gettext.gettext
+
+class HildonMeabook(Meabook):
+    def __init__(self, basedir):
+        self.window = hildon.StackableWindow()
+        self.window.set_title(_('Meabook'))
+        self.window.connect('destroy', self.exit)
+        # creating menu
+        menu = hildon.AppMenu()
+        self.window.set_app_menu(menu)
+        settings_button = hildon.Button(gtk.HILDON_SIZE_AUTO, \
+            hildon.BUTTON_ARRANGEMENT_HORIZONTAL, _('Settings'))
+        settings_button.connect('clicked', self.show_settings_dialog)
+        about_button = hildon.Button(gtk.HILDON_SIZE_AUTO, \
+            hildon.BUTTON_ARRANGEMENT_HORIZONTAL, _('About'))
+        about_button.connect('clicked', self.show_about_dialog)
+        menu.append(settings_button)
+        menu.append(about_button)
+        menu.show_all()
+        self.parea = hildon.PannableArea()
+        self.window.add(self.parea)
+        self.window.show_all()
+
+    def start(self):
+        gtk.main()
+
+    def exit(self, event):
+        # add here DB disconnect
+        gtk.main_quit()
+
+    def show_settings_dialog(self, widget):
+        print 'settings'
+
+    def show_about_dialog(self, widget):
+        print 'about'
diff --git a/ui/hildon_ui.pyc b/ui/hildon_ui.pyc
new file mode 100644 (file)
index 0000000..a6aae52
Binary files /dev/null and b/ui/hildon_ui.pyc differ
diff --git a/ui/hildon_ui.pyo b/ui/hildon_ui.pyo
new file mode 100644 (file)
index 0000000..d647345
Binary files /dev/null and b/ui/hildon_ui.pyo differ
diff --git a/ui/text_ui.py b/ui/text_ui.py
new file mode 100644 (file)
index 0000000..ed9cd45
--- /dev/null
@@ -0,0 +1,3 @@
+class TextMeabook:
+    def __init__(self, basedir):
+        print 'I am text Meabook'
diff --git a/ui/text_ui.pyo b/ui/text_ui.pyo
new file mode 100644 (file)
index 0000000..706143c
Binary files /dev/null and b/ui/text_ui.pyo differ