conduit r1621 - in trunk: . conduit/gtkui



Author: jstowers
Date: Sat Aug  2 07:31:49 2008
New Revision: 1621
URL: http://svn.gnome.org/viewvc/conduit?rev=1621&view=rev

Log:
	* conduit/gtkui/Canvas.py: Refactor out the hint handling code to be
	more generic and extensible.


Modified:
   trunk/   (props changed)
   trunk/ChangeLog
   trunk/conduit/gtkui/Canvas.py

Modified: trunk/conduit/gtkui/Canvas.py
==============================================================================
--- trunk/conduit/gtkui/Canvas.py	(original)
+++ trunk/conduit/gtkui/Canvas.py	Sat Aug  2 07:31:49 2008
@@ -23,6 +23,16 @@
 
 log.info("Module Information: %s" % Utils.get_module_information(goocanvas, "pygoocanvas_version"))
 
+HINT_BLANK_CANVAS       = -100
+HINT_ADD_DATAPROVIDER   = -101
+HINT_ADD_CONDUIT        = -102
+
+HINT_TEXT = {
+    HINT_BLANK_CANVAS:      ("Drag a dataprovder to continue", None),
+    HINT_ADD_DATAPROVIDER:  ("Conduit Created", "Add additional dataprovider"),
+    HINT_ADD_CONDUIT:       ("Welcome","Create a conduit")
+}
+
 class _StyleMixin:
 
     def _get_colors_and_state(self, styleName, stateName):
@@ -197,21 +207,29 @@
         self.welcome = None
         self._maybe_show_welcome()
         
+    def _do_hint(self, msgarea, respid):
+        if respid == HINT_ADD_DATAPROVIDER:
+            print "ADD DATAPROVIDER"
+            
+    def _make_hint(self, hint, timeout=4):
+        h = self.msg.new_from_text_and_icon(
+                            gtk.STOCK_INFO,
+                            HINT_TEXT[hint][0],
+                            HINT_TEXT[hint][1],
+                            buttons=[("Show me",hint)],
+                            timeout=timeout)
+        h.connect("response", self._do_hint)
+        h.show_all()    
+        
     def _show_hint(self, conduitCanvasItem, dataproviderCanvasItem, newItem):
         if not self.msg:
             return
             
         if newItem == conduitCanvasItem:
-            self.msg.new_from_text_and_icon(
-                            gtk.STOCK_INFO,
-                            "Conduit Created",
-                            timeout=4).show_all()
+            self._make_hint(HINT_ADD_DATAPROVIDER)
         elif newItem == dataproviderCanvasItem:
-            self.msg.new_from_text_and_icon(
-                            gtk.STOCK_INFO,
-                            "Dataprovider Created",
-                            timeout=4).show_all()
-        
+            pass
+            
     def _update_for_theme(self, *args):
         if not self.get_gtk_style() or self._changing_style:
             return
@@ -289,10 +307,7 @@
             if self.welcome == None:
                 self._create_welcome()
             if self.msg:
-                self.msg.new_from_text_and_icon(
-                                gtk.STOCK_INFO,
-                                self.WELCOME_MESSAGE,
-                                timeout=0).show_all()
+                self._make_hint(HINT_BLANK_CANVAS, timeout=0)
 
         elif self.welcome:
             self._delete_welcome()



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]