conduit r1613 - in trunk: . conduit/gtkui conduit/hildonui



Author: jstowers
Date: Fri Aug  1 14:51:36 2008
New Revision: 1613
URL: http://svn.gnome.org/viewvc/conduit?rev=1613&view=rev

Log:
	* conduit/gtkui/Canvas.py:
	* conduit/hildonui/Canvas.py: Implement a divider, and a flat box
	paint style. See ConduitCanvasItem.DIVIDER and ConduitCanvasItem.FLAT_BOX.


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

Modified: trunk/conduit/gtkui/Canvas.py
==============================================================================
--- trunk/conduit/gtkui/Canvas.py	(original)
+++ trunk/conduit/gtkui/Canvas.py	Fri Aug  1 14:51:36 2008
@@ -686,7 +686,6 @@
                                 y=0, 
                                 width=self.WIDGET_WIDTH-(2*LINE_WIDTH), 
                                 height=self.WIDGET_HEIGHT-(2*LINE_WIDTH),
-                                line_width=LINE_WIDTH, 
                                 radius_y=RECTANGLE_RADIUS, 
                                 radius_x=RECTANGLE_RADIUS,
                                 **self.get_style_properties("box")
@@ -738,6 +737,7 @@
             if self.model.module == None:
                 insensitive = self.get_style_color_int_rgba("mid","insensitive")
                 kwargs = {
+                    "line_width":1.5,
                     "stroke_color_rgba":insensitive,
                     "fill_color_rgba":insensitive
                 }
@@ -749,11 +749,12 @@
                                         *self.get_style_color_rgb("dark","active")
                                         );
                 pattern.add_color_stop_rgb(
-                                        0.7,
+                                        0.5,
                                         *self.get_style_color_rgb("dark","prelight")
                                         );
             
                 kwargs = {
+                    "line_width":2.0,
                     "stroke_color":"black",
                     "fill_pattern":pattern
                 }
@@ -798,6 +799,8 @@
     
 class ConduitCanvasItem(_CanvasItem):
 
+    DIVIDER = False
+    FLAT_BOX = False
     WIDGET_HEIGHT = 100
 
     def __init__(self, parent, model, width):
@@ -811,9 +814,15 @@
         self.sinkDpItems = []
         self.connectorItems = {}
 
-        self.boundingBox = None
         self.l = None
         self.progressText = None
+        self.boundingBox = None        
+
+        #if self.DIVIDER, show an transparent bouding box, and a
+        #simple dividing line
+        self.divider = None
+        #goocanvas.Points need a list of tuples, not a list of lists. Yuck
+        self.dividerPoints = [(),()]
 
         #Build the widget
         self._build_widget(width)
@@ -871,12 +880,22 @@
                                 y=5, 
                                 width=true_width,     
                                 height=ConduitCanvasItem.WIDGET_HEIGHT,
-                                line_width=LINE_WIDTH, 
                                 radius_y=RECTANGLE_RADIUS, 
                                 radius_x=RECTANGLE_RADIUS,
                                 **self.get_style_properties("boundingBox")
                                 )
         self.add_child(self.boundingBox)
+        if self.DIVIDER:
+            #draw an underline
+            #from point
+            self.dividerPoints[0] = (true_width*0.33,5+ConduitCanvasItem.WIDGET_HEIGHT)
+            self.dividerPoints[1] = (2*(true_width*0.33),5+ConduitCanvasItem.WIDGET_HEIGHT)
+            
+            self.divider = goocanvas.Polyline(
+                                    points=goocanvas.Points(self.dividerPoints),
+                                    **self.get_style_properties("divider")
+                                    )
+            self.add_child(self.divider)
 
     def _resize_height(self):
         sourceh =   0.0
@@ -892,7 +911,7 @@
             sourceh += self.sourceItem.get_height()
 
         self.set_height(
-                    max(sourceh, sinkh)+    #expand to the largest
+                    max(sourceh, sinkh)+        #expand to the largest
                     (1.5*SIDE_PADDING)        #padding at the top and bottom
                     )
 
@@ -963,29 +982,48 @@
                         break
 
     def get_styled_item_names(self):
-        return "boundingBox","progressText"
+        return "boundingBox","progressText","divider"
 
     def get_style_properties(self, specifier):
         if specifier == "boundingBox":
-            pattern = cairo.LinearGradient(0, -30, 0, 100)
-            pattern.add_color_stop_rgb(
-                                    0,
-                                    *self.get_style_color_rgb("dark","selected")
-                                    );
-            pattern.add_color_stop_rgb(
-                                    0.7,
-                                    *self.get_style_color_rgb("mid","selected")
-                                    );
+            if self.DIVIDER:
+                kwargs = {
+                    "line_width":0
+                }
+            else: 
+                if self.FLAT_BOX:
+                    kwargs = {
+                        "line_width":0,
+                        "fill_color_rgba":self.get_style_color_int_rgba("base","prelight")
+                    }
+                else:
+                    pattern = cairo.LinearGradient(0, -30, 0, 100)
+                    pattern.add_color_stop_rgb(
+                                            0,
+                                            *self.get_style_color_rgb("dark","selected")
+                                            );
+                    pattern.add_color_stop_rgb(
+                                            0.7,
+                                            *self.get_style_color_rgb("mid","selected")
+                                            );
+                    
+                    kwargs = {
+                        "line_width":2.0, 
+                        "fill_pattern":pattern,
+                        "stroke_color_rgba":self.get_style_color_int_rgba("text","normal")
+                    }
 
-            kwargs = {
-                "fill_pattern":pattern,
-                "stroke_color_rgba":self.get_style_color_int_rgba("text","normal")
-            }
         elif specifier == "progressText":
             kwargs = {
                 "font":"Sans 7",
                 "fill_color_rgba":self.get_style_color_int_rgba("text","normal")
             }
+        elif specifier == "divider":
+            kwargs = {
+                "line_width":3.0,
+                "line_cap":cairo.LINE_CAP_ROUND,
+                "stroke_color_rgba":self.get_style_color_int_rgba("text_aa","normal")
+            }
         else:
             kwargs = {}
 
@@ -1071,11 +1109,24 @@
     def set_height(self, h):
         self.boundingBox.set_property("height",h)
 
+        if self.DIVIDER:
+            #update height points for the divider line
+            self.dividerPoints[0] = (self.dividerPoints[0][0],h+10)
+            self.dividerPoints[1] = (self.dividerPoints[0][0],h+10)
+            self.divider.set_property("points", 
+                                goocanvas.Points(self.dividerPoints))        
+
     def set_width(self, w):
         true_width = w-LINE_WIDTH
-
-        #resize the box
         self.boundingBox.set_property("width",true_width)
+
+        if self.DIVIDER:
+            #update width points for the divider line
+            self.dividerPoints[0] = (true_width*0.33,self.dividerPoints[0][1])
+            self.dividerPoints[1] = (2*(true_width*0.33),self.dividerPoints[1][1])
+            self.divider.set_property("points", 
+                                goocanvas.Points(self.dividerPoints))
+
         #resize the spacer
         p = goocanvas.Points([(0.0, 0.0), (true_width, 0.0)])
         self.l.set_property("points",p)
@@ -1089,7 +1140,7 @@
             #resize arrow (if exists)
             if self.sourceItem != None:
                 self.connectorItems[d].resize_connector_width(change)
-
+                
 class ConnectorCanvasItem(_CanvasItem):
 
     CONNECTOR_RADIUS = 30

Modified: trunk/conduit/hildonui/Canvas.py
==============================================================================
--- trunk/conduit/hildonui/Canvas.py	(original)
+++ trunk/conduit/hildonui/Canvas.py	Fri Aug  1 14:51:36 2008
@@ -295,6 +295,7 @@
                     color = None
         
             kwargs = {
+                "line_width":LINE_WIDTH,
                 "stroke_color":"black",
                 "fill_color_rgba":color
             }
@@ -312,12 +313,15 @@
 
 class ConduitCanvasItem(conduit.gtkui.Canvas.ConduitCanvasItem):
 
+    DIVIDER = False
+
     def get_styled_item_names(self):
         return ()
 
     def get_style_properties(self, specifier):
         if specifier == "boundingBox":
             kwargs = {
+                "line_width":LINE_WIDTH, 
                 "fill_color_rgba":GtkUtil.TANGO_COLOR_ALUMINIUM1_LIGHT, 
                 "stroke_color":"black"
             }



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