diff frontends/primitivus/primitivus @ 112:f551e44adb25

Primitivus first draft - Sortilège is recoded using urwid, and renamed in Primitivus as it is no more based on curses - soritlege code moved to sortilege_old, and deprecated - Primitivus first draft, begining of ProfileManager widget
author Goffi <goffi@goffi.org>
date Wed, 30 Jun 2010 14:24:24 +0800
parents
children e5ca22113280
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/frontends/primitivus/primitivus	Wed Jun 30 14:24:24 2010 +0800
@@ -0,0 +1,78 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+"""
+Primitivus: a SAT frontend
+Copyright (C) 2009, 2010  Jérôme Poisson (goffi@goffi.org)
+
+This program 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 program 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, see <http://www.gnu.org/licenses/>.
+"""
+
+
+from quick_frontend.quick_app import QuickApp
+from quick_frontend.quick_chat_list import QuickChatList
+from quick_frontend.quick_contact_list import QuickContactList
+from quick_frontend.quick_contact_management import QuickContactManagement
+import urwid
+from profile_manager import ProfileManager
+import pdb
+"""from window import Window
+from editbox import EditBox
+from statusbar import StatusBar
+from chat import Chat
+from tools.jid  import JID"""
+import logging
+from logging import debug, info, error
+#import locale
+import sys, os
+#from curses import ascii
+#import locale
+#from signal import signal, SIGWINCH 
+#import fcntl
+#import struct
+#import termios
+#from boxsizer import BoxSizer
+
+
+### logging configuration FIXME: put this elsewhere ###
+logging.basicConfig(level=logging.CRITICAL,  #TODO: configure it to put messages in a log file
+                    format='%(message)s')
+###
+
+const_APP_NAME      = "Primitivus"
+const_PALETTE = [('title', 'black', 'light gray', 'standout,underline'),]
+            
+class PrimitivusApp(QuickApp):
+    
+    def __init__(self):
+        QuickApp.__init__(self)  #XXX: yes it's an unusual place for the constructor of a parent class, but the init order is important
+        
+        ## main loop setup ##
+        self.main_widget = self.__buildMainWidget()
+        self.loop = urwid.MainLoop(self.main_widget, const_PALETTE, event_loop=urwid.GLibEventLoop(), unhandled_input=self.key_handler)
+
+    def start(self):
+        self.loop.run()
+
+    def key_handler(self, input):
+        if input in ('q', 'Q') or input == 'ctrl x':
+            raise urwid.ExitMainLoop()
+
+    def __buildMainWidget(self):
+        main_widget = ProfileManager(self)
+        return main_widget
+
+
+sat = PrimitivusApp()
+sat.start()