[tracker] TST: Added gradient effect to Metadata Tile



commit 6f991e3e3d25d043a9e4048f3b0085d1de467ba9
Author: Jamie McCracken <jamiemcc gnome org>
Date:   Sun Feb 14 23:59:19 2010 -0500

    TST: Added gradient effect to Metadata Tile

 src/tracker-search-tool/tracker-metadata-tile.gs |   68 ++++++++++++++++++-
 src/tracker-search-tool/tracker-search-tool.gs   |   11 +++-
 src/tracker-search-tool/tst.ui                   |   75 ++++++++++------------
 3 files changed, 108 insertions(+), 46 deletions(-)
---
diff --git a/src/tracker-search-tool/tracker-metadata-tile.gs b/src/tracker-search-tool/tracker-metadata-tile.gs
index e8aaf00..2dced8f 100644
--- a/src/tracker-search-tool/tracker-metadata-tile.gs
+++ b/src/tracker-search-tool/tracker-metadata-tile.gs
@@ -22,10 +22,11 @@
 
 uses
     Gtk
+    Cairo
     TrackerUtils
 
 
-class TrackerMetadataTile : HBox
+class TrackerMetadataTile : EventBox
     uri : string
     category : Categories
     image : Image
@@ -75,7 +76,12 @@ class TrackerMetadataTile : HBox
 
 
     init
-        border_width = 8
+
+        set_app_paintable (true)
+        
+        expose_event += expose
+   
+        border_width = 1
 
         table = new Table (3, 7, false)
         table.set_col_spacings (6)
@@ -84,6 +90,7 @@ class TrackerMetadataTile : HBox
         add (table)
 
         image = new Image.from_icon_name ("text-x-generic", IconSize.DIALOG)
+        image.set_pixel_size (62)
         table.attach (image, 0, 1, 0, 3, AttachOptions.FILL, AttachOptions.FILL, 12, 0)
 
         name_link = new LinkButton ("")
@@ -126,8 +133,61 @@ class TrackerMetadataTile : HBox
         info_value6 = CreateLabel ("-", true)
         AttachToTable (info_value6, 6, 7, 2, 3, true)
 
-        show_all ()
-
+        //show_all ()
+
+    def private expose (e : Gdk.EventExpose) : bool
+    
+        var cr = Gdk.cairo_create (self.window)
+
+        var style = self.get_style ()
+        var step1 = style.base [StateType.NORMAL]
+        var step2 = style.bg [StateType.SELECTED]
+        
+        w,h : double
+        w = self.allocation.width
+        h = self.allocation.height
+
+	    /* clear window to base[NORMAL] */
+        cr.set_operator (Operator.SOURCE)
+        Gdk.cairo_set_source_color (cr, step1)
+        cr.paint ()
+        cr.move_to (0, 0)
+        cr.set_line_width (1.0)
+        cr.set_operator (Operator.OVER)
+
+        /* main gradient */
+        var pat = new Pattern.linear (0.0, 0.0, 0.0, h)
+        
+        pat.add_color_stop_rgba (0.0, step2.red/65535.0,
+	                                  step2.green/65535.0,
+	                                  step2.blue/65535.0,
+	                                  0.05)
+	                                   
+        pat.add_color_stop_rgba (1.0, step2.red/65535.0,
+	                                  step2.green/65535.0,
+	                                  step2.blue/65535.0,
+	                                  0.5)
+
+        cr.rectangle (0, 0, w, h)
+        cr.set_source (pat)
+        cr.fill ()
+	
+        /* border line */
+        cr.set_source_rgba (step2.red/65535.0,
+	                        step2.green/65535.0,
+	                        step2.blue/65535.0,
+	                        0.7)
+        cr.move_to (0, 0)
+        cr.line_to (w, 0)
+        cr.stroke ()
+
+        /* highlight line */
+        cr.set_source_rgba (1.0, 1.0, 1.0, 0.5)
+        cr.move_to (0, 1)
+        cr.line_to (w, 1)
+        cr.stroke ()
+
+        return super.expose_event (e) 
 
 
     def private AttachToTable (lab : Label, l : int, r : int, t : int, b : int, e : bool)
diff --git a/src/tracker-search-tool/tracker-search-tool.gs b/src/tracker-search-tool/tracker-search-tool.gs
index ea5770c..58d210c 100644
--- a/src/tracker-search-tool/tracker-search-tool.gs
+++ b/src/tracker-search-tool/tracker-search-tool.gs
@@ -116,6 +116,8 @@ init
 
     window = builder.get_object ("window") as Window
     window.destroy += Gtk.main_quit
+    
+    window.set_app_paintable (true)
 
     /* create tracker widgets */
 
@@ -129,7 +131,7 @@ init
         entry_box = builder.get_object ("EntryBox") as Container
         grid_box = builder.get_object ("GridBox") as Container
         category_box = builder.get_object ("CategoryBox") as Container
-        detail_box = builder.get_object ("DetailBox") as Container
+        main_box = builder.get_object ("MainBox") as VBox
 
 
     query.Connect ()
@@ -144,7 +146,12 @@ init
 
     tile.ResultGrid = grid
     tile.Query = query
-    detail_box.add (tile)
+    main_box.pack_end (tile, false, false, 0)
+   
+    var s = new Statusbar ()
+    s.has_resize_grip = true
+    window.add (s)
+    
 
     window.show_all ()
 
diff --git a/src/tracker-search-tool/tst.ui b/src/tracker-search-tool/tst.ui
index 96b7d77..4818507 100644
--- a/src/tracker-search-tool/tst.ui
+++ b/src/tracker-search-tool/tst.ui
@@ -8,7 +8,7 @@
     <property name="default_width">800</property>
     <property name="default_height">600</property>
     <child>
-      <object class="GtkVBox" id="vbox1">
+      <object class="GtkVBox" id="VBox">
         <property name="visible">True</property>
         <property name="border_width">6</property>
         <property name="orientation">vertical</property>
@@ -47,34 +47,49 @@
           </packing>
         </child>
         <child>
-          <object class="GtkHPaned" id="hpaned1">
+          <object class="GtkVBox" id="MainBox">
             <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="position">130</property>
-            <property name="position_set">True</property>
+            <property name="orientation">vertical</property>
             <child>
-              <object class="GtkHBox" id="CategoryBox">
-                <property name="visible">True</property>
-                <child>
-                  <placeholder/>
-                </child>
-              </object>
-              <packing>
-                <property name="resize">False</property>
-                <property name="shrink">True</property>
-              </packing>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
             </child>
             <child>
-              <object class="GtkVBox" id="GridBox">
+              <object class="GtkHPaned" id="hpaned1">
                 <property name="visible">True</property>
-                <property name="orientation">vertical</property>
+                <property name="can_focus">True</property>
+                <property name="position">130</property>
+                <property name="position_set">True</property>
                 <child>
-                  <placeholder/>
+                  <object class="GtkHBox" id="CategoryBox">
+                    <property name="visible">True</property>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="resize">False</property>
+                    <property name="shrink">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="GridBox">
+                    <property name="visible">True</property>
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="resize">True</property>
+                    <property name="shrink">True</property>
+                  </packing>
                 </child>
               </object>
               <packing>
-                <property name="resize">True</property>
-                <property name="shrink">True</property>
+                <property name="position">1</property>
               </packing>
             </child>
           </object>
@@ -82,26 +97,6 @@
             <property name="position">1</property>
           </packing>
         </child>
-        <child>
-          <object class="GtkExpander" id="DetailBox">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="expanded">True</property>
-            <child>
-              <placeholder/>
-            </child>
-            <child type="label">
-              <object class="GtkLabel" id="label2">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes">Details</property>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
       </object>
     </child>
   </object>



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