[gnome-games/glchess-vala] Render the time box



commit bc200190d2293fcb3a436b0ad41a2a39a3f8e112
Author: Robert Ancell <robert ancell canonical com>
Date:   Wed Jan 5 08:56:12 2011 +1100

    Render the time box

 glchess/data/glchess.ui  |  172 ++++++++++++++++++++++++----------------------
 glchess/src/glchess.vala |   31 ++++++++-
 2 files changed, 119 insertions(+), 84 deletions(-)
---
diff --git a/glchess/data/glchess.ui b/glchess/data/glchess.ui
index 76d1a20..294691e 100644
--- a/glchess/data/glchess.ui
+++ b/glchess/data/glchess.ui
@@ -2,45 +2,75 @@
 <interface>
   <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkSizeGroup" id="nav_bar_sizegroup">
+      <widgets>
+          <widget name="left_nav_box"/>
+          <widget name="right_nav_box"/>
+      </widgets>
+  </object>
+  <object class="GtkListStore" id="history_model">
+    <columns>
+      <!-- column-name label -->
+      <column type="gchararray"/>
+      <!-- column-name move-number -->
+      <column type="gint"/>
+    </columns>
+  </object>
+  <object class="GtkImage" id="help_image">
+    <property name="visible">True</property>
+    <property name="stock">gtk-help</property>
+    <property name="icon-size">1</property>
+  </object>
+  <object class="GtkImage" id="warning_image">
+    <property name="visible">True</property>
+    <property name="stock">gtk-dialog-warning</property>
+    <property name="icon-size">1</property>
+  </object>
+  <object class="GtkImage" id="undo_move_image">
+    <property name="visible">True</property>
+    <property name="stock">gtk-undo</property>
+    <property name="icon-size">1</property>
+  </object>
+  <object class="GtkAccelGroup" id="accelgroup"/>
   <object class="GtkWindow" id="glchess_app">
     <property name="title">Chess</property>
     <property name="default_width">400</property>
     <accel-groups>
-      <group name="accelgroup1"/>
+      <group name="accelgroup"/>
     </accel-groups>
-    <signal name="delete_event" handler="glchess_app_delete_event_cb"/>
-    <signal name="window_state_event" handler="glchess_app_window_state_event_cb"/>
+    <signal name="window-state-event" handler="glchess_app_window_state_event_cb" swapped="no"/>
+    <signal name="delete-event" handler="glchess_app_delete_event_cb" swapped="no"/>
     <child>
-      <object class="GtkVBox" id="vbox1">
+      <object class="GtkVBox" id="main_vbox">
         <property name="visible">True</property>
         <child>
-          <object class="GtkMenuBar" id="menubar1">
+          <object class="GtkMenuBar" id="menubar">
             <property name="visible">True</property>
             <child>
-              <object class="GtkMenuItem" id="menuitem1">
+              <object class="GtkMenuItem" id="game_menu_item">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">_Game</property>
                 <property name="use_underline">True</property>
                 <child type="submenu">
-                  <object class="GtkMenu" id="menuitem1_menu">
+                  <object class="GtkMenu" id="game_menu">
                     <child>
                       <object class="GtkImageMenuItem" id="new_menu_item">
                         <property name="label">gtk-new</property>
                         <property name="visible">True</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
-                        <property name="accel_group">accelgroup1</property>
-                        <signal name="activate" handler="new_game_cb"/>
+                        <property name="accel_group">accelgroup</property>
+                        <signal name="activate" handler="new_game_cb" swapped="no"/>
                       </object>
                     </child>
                     <child>
-                      <object class="GtkImageMenuItem" id="open1">
+                      <object class="GtkImageMenuItem" id="open_menu_item">
                         <property name="label">gtk-open</property>
                         <property name="visible">True</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
-                        <property name="accel_group">accelgroup1</property>
-                        <signal name="activate" handler="open_game_cb"/>
+                        <property name="accel_group">accelgroup</property>
+                        <signal name="activate" handler="open_game_cb" swapped="no"/>
                       </object>
                     </child>
                     <child>
@@ -50,8 +80,8 @@
                         <property name="sensitive">False</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
-                        <property name="accel_group">accelgroup1</property>
-                        <signal name="activate" handler="save_game_cb"/>
+                        <property name="accel_group">accelgroup</property>
+                        <signal name="activate" handler="save_game_cb" swapped="no"/>
                       </object>
                     </child>
                     <child>
@@ -60,8 +90,8 @@
                         <property name="visible">True</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
-                        <property name="accel_group">accelgroup1</property>
-                        <signal name="activate" handler="save_game_as_cb"/>
+                        <property name="accel_group">accelgroup</property>
+                        <signal name="activate" handler="save_game_as_cb" swapped="no"/>
                       </object>
                     </child>
                     <child>
@@ -70,34 +100,34 @@
                       </object>
                     </child>
                     <child>
-                      <object class="GtkImageMenuItem" id="menu_undo_move">
+                      <object class="GtkImageMenuItem" id="undo_move_item">
                         <property name="label" translatable="yes">_Undo Move</property>
                         <property name="visible">True</property>
                         <property name="use_underline">True</property>
-                        <property name="image">image1</property>
+                        <property name="image">undo_move_image</property>
                         <property name="use_stock">False</property>
-                        <property name="accel_group">accelgroup1</property>
+                        <property name="accel_group">accelgroup</property>
                         <accelerator key="Z" signal="activate" modifiers="GDK_CONTROL_MASK"/>
-                        <signal name="activate" handler="undo_move_cb"/>
+                        <signal name="activate" handler="undo_move_cb" swapped="no"/>
                       </object>
                     </child>
                     <child>
-                      <object class="GtkImageMenuItem" id="menu_resign">
+                      <object class="GtkImageMenuItem" id="resign_item">
                         <property name="label" translatable="yes">_Resign</property>
                         <property name="visible">True</property>
                         <property name="use_underline">True</property>
-                        <property name="image">image3</property>
+                        <property name="image">warning_image</property>
                         <property name="use_stock">False</property>
-                        <property name="accel_group">accelgroup1</property>
-                        <signal name="activate" handler="resign_cb"/>
+                        <property name="accel_group">accelgroup</property>
+                        <signal name="activate" handler="resign_cb" swapped="no"/>
                       </object>
                     </child>
                     <child>
-                      <object class="GtkMenuItem" id="menu_claim_draw">
+                      <object class="GtkMenuItem" id="claim_draw_item">
                         <property name="visible">True</property>
                         <property name="label" translatable="yes">Claim _Draw</property>
                         <property name="use_underline">True</property>
-                        <signal name="activate" handler="claim_draw_cb"/>
+                        <signal name="activate" handler="claim_draw_cb" swapped="no"/>
                       </object>
                     </child>
                     <child>
@@ -106,13 +136,13 @@
                       </object>
                     </child>
                     <child>
-                      <object class="GtkImageMenuItem" id="quit1">
+                      <object class="GtkImageMenuItem" id="quit_item">
                         <property name="label">gtk-quit</property>
                         <property name="visible">True</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
-                        <property name="accel_group">accelgroup1</property>
-                        <signal name="activate" handler="quit_cb"/>
+                        <property name="accel_group">accelgroup</property>
+                        <signal name="activate" handler="quit_cb" swapped="no"/>
                       </object>
                     </child>
                   </object>
@@ -120,31 +150,31 @@
               </object>
             </child>
             <child>
-              <object class="GtkMenuItem" id="settings">
+              <object class="GtkMenuItem" id="settings_menu_item">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">_Settings</property>
                 <property name="use_underline">True</property>
                 <child type="submenu">
                   <object class="GtkMenu" id="settings_menu">
                     <child>
-                      <object class="GtkImageMenuItem" id="menu_fullscreen">
+                      <object class="GtkImageMenuItem" id="fullscreen_item">
                         <property name="label">gtk-fullscreen</property>
                         <property name="visible">True</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
-                        <property name="accel_group">accelgroup1</property>
+                        <property name="accel_group">accelgroup</property>
                         <accelerator key="F11" signal="activate"/>
-                        <signal name="activate" handler="toggle_fullscreen_cb"/>
+                        <signal name="activate" handler="toggle_fullscreen_cb" swapped="no"/>
                       </object>
                     </child>
                     <child>
-                      <object class="GtkImageMenuItem" id="preferences">
+                      <object class="GtkImageMenuItem" id="preferences_item">
                         <property name="label">gtk-preferences</property>
                         <property name="visible">True</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
-                        <property name="accel_group">accelgroup1</property>
-                        <signal name="activate" handler="preferences_cb"/>
+                        <property name="accel_group">accelgroup</property>
+                        <signal name="activate" handler="preferences_cb" swapped="no"/>
                       </object>
                     </child>
                   </object>
@@ -152,32 +182,32 @@
               </object>
             </child>
             <child>
-              <object class="GtkMenuItem" id="help2">
+              <object class="GtkMenuItem" id="help_menu_item">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">_Help</property>
                 <property name="use_underline">True</property>
                 <child type="submenu">
-                  <object class="GtkMenu" id="help2_menu">
+                  <object class="GtkMenu" id="help_menu">
                     <child>
-                      <object class="GtkImageMenuItem" id="menu_help">
+                      <object class="GtkImageMenuItem" id="help_item">
                         <property name="label" translatable="yes">_Contents</property>
                         <property name="visible">True</property>
                         <property name="use_underline">True</property>
-                        <property name="image">image4</property>
+                        <property name="image">help_image</property>
                         <property name="use_stock">False</property>
-                        <property name="accel_group">accelgroup1</property>
+                        <property name="accel_group">accelgroup</property>
                         <accelerator key="F1" signal="activate"/>
-                        <signal name="activate" handler="help_cb"/>
+                        <signal name="activate" handler="help_cb" swapped="no"/>
                       </object>
                     </child>
                     <child>
-                      <object class="GtkImageMenuItem" id="about2">
+                      <object class="GtkImageMenuItem" id="about_item">
                         <property name="label">gtk-about</property>
                         <property name="visible">True</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
-                        <property name="accel_group">accelgroup1</property>
-                        <signal name="activate" handler="about_cb"/>
+                        <property name="accel_group">accelgroup</property>
+                        <signal name="activate" handler="about_cb" swapped="no"/>
                       </object>
                     </child>
                   </object>
@@ -202,7 +232,7 @@
                 <property name="label" translatable="yes" comments="The New Game toolbar button">New Game</property>
                 <property name="use_underline">True</property>
                 <property name="stock_id">gtk-new</property>
-                <signal name="clicked" handler="new_game_cb"/>
+                <signal name="clicked" handler="new_game_cb" swapped="no"/>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -216,7 +246,7 @@
                 <property name="label" translatable="yes">Undo Move</property>
                 <property name="use_underline">True</property>
                 <property name="stock_id">gtk-undo</property>
-                <signal name="clicked" handler="undo_move_cb"/>
+                <signal name="clicked" handler="undo_move_cb" swapped="no"/>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -230,7 +260,7 @@
                 <property name="label" translatable="yes" comments="The tooltip for the Resign toolbar button">Resign</property>
                 <property name="use_underline">True</property>
                 <property name="stock_id">gtk-dialog-warning</property>
-                <signal name="clicked" handler="resign_cb"/>
+                <signal name="clicked" handler="resign_cb" swapped="no"/>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -275,9 +305,9 @@
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="tooltip_text" translatable="yes">Rewind to the game start</property>
-                        <signal name="clicked" handler="history_start_clicked_cb"/>
+                        <signal name="clicked" handler="history_start_clicked_cb" swapped="no"/>
                         <child>
-                          <object class="GtkImage" id="image6">
+                          <object class="GtkImage" id="first_move_image">
                             <property name="visible">True</property>
                             <property name="stock">gtk-goto-first</property>
                             <property name="icon-size">1</property>
@@ -295,9 +325,9 @@
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="tooltip_text" translatable="yes">Show the previous move</property>
-                        <signal name="clicked" handler="history_previous_clicked_cb"/>
+                        <signal name="clicked" handler="history_previous_clicked_cb" swapped="no"/>
                         <child>
-                          <object class="GtkImage" id="image7">
+                          <object class="GtkImage" id="prev_move_image">
                             <property name="visible">True</property>
                             <property name="stock">gtk-go-back</property>
                           </object>
@@ -314,9 +344,9 @@
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="tooltip_text" translatable="yes">Show the next move</property>
-                        <signal name="clicked" handler="history_next_clicked_cb"/>
+                        <signal name="clicked" handler="history_next_clicked_cb" swapped="no"/>
                         <child>
-                          <object class="GtkImage" id="image8">
+                          <object class="GtkImage" id="next_move_image">
                             <property name="visible">True</property>
                             <property name="stock">gtk-go-forward</property>
                           </object>
@@ -333,9 +363,9 @@
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="tooltip_text" translatable="yes">Show the current move</property>
-                        <signal name="clicked" handler="history_latest_clicked_cb"/>
+                        <signal name="clicked" handler="history_latest_clicked_cb" swapped="no"/>
                         <child>
-                          <object class="GtkImage" id="image5">
+                          <object class="GtkImage" id="last_move_image">
                             <property name="visible">True</property>
                             <property name="stock">gtk-goto-last</property>
                           </object>
@@ -355,7 +385,7 @@
                   <object class="GtkComboBox" id="history_combo">
                     <property name="visible">True</property>
                     <property name="model">history_model</property>
-                    <signal name="changed" handler="history_combo_changed_cb"/>
+                    <signal name="changed" handler="history_combo_changed_cb" swapped="no"/>
                     <child>
                       <object class="GtkCellRendererText" id="history_combo_cellrenderer"/>
                       <attributes>
@@ -376,7 +406,7 @@
                       <object class="GtkDrawingArea" id="white_time_label">
                         <property name="width_request">20</property>
                         <property name="visible">True</property>
-                        <signal name="draw" handler="white_time_draw_cb"/>
+                        <signal name="draw" handler="white_time_draw_cb" swapped="no"/>
                       </object>
                       <packing>
                         <property name="position">0</property>
@@ -386,7 +416,7 @@
                       <object class="GtkDrawingArea" id="black_time_label">
                         <property name="width_request">20</property>
                         <property name="visible">True</property>
-                        <signal name="draw" handler="black_time_draw_cb"/>
+                        <signal name="draw" handler="black_time_draw_cb" swapped="no"/>
                       </object>
                       <packing>
                         <property name="position">1</property>
@@ -413,28 +443,4 @@
       </object>
     </child>
   </object>
-  <object class="GtkAccelGroup" id="accelgroup1"/>
-  <object class="GtkImage" id="image1">
-    <property name="visible">True</property>
-    <property name="stock">gtk-undo</property>
-    <property name="icon-size">1</property>
-  </object>
-  <object class="GtkImage" id="image3">
-    <property name="visible">True</property>
-    <property name="stock">gtk-dialog-warning</property>
-    <property name="icon-size">1</property>
-  </object>
-  <object class="GtkImage" id="image4">
-    <property name="visible">True</property>
-    <property name="stock">gtk-help</property>
-    <property name="icon-size">1</property>
-  </object>
-  <object class="GtkListStore" id="history_model">
-    <columns>
-      <!-- column-name label -->
-      <column type="gchararray"/>
-      <!-- column-name move-number -->
-      <column type="gint"/>
-    </columns>
-  </object>
 </interface>
diff --git a/glchess/src/glchess.vala b/glchess/src/glchess.vala
index f6d7bd2..c3b60e6 100644
--- a/glchess/src/glchess.vala
+++ b/glchess/src/glchess.vala
@@ -609,13 +609,42 @@ public class Application
     [CCode (cname = "G_MODULE_EXPORT black_time_draw_cb", instance_pos = -1)]
     public bool black_time_draw_cb (Gtk.Widget widget, Cairo.Context c)
     {
+        double fg[3] = { 0.0, 0.0, 0.0 };
+        double bg[3] = { 1.0, 1.0, 1.0 };
+
+        draw_time (widget, c, "â??", fg, bg);
         return false;
     }
 
     [CCode (cname = "G_MODULE_EXPORT white_time_draw_cb", instance_pos = -1)]
     public bool white_time_draw_cb (Gtk.Widget widget, Cairo.Context c)
     {
-        return false;    
+        double fg[3] = { 1.0, 1.0, 1.0 };
+        double bg[3] = { 0.0, 0.0, 0.0 };
+
+        draw_time (widget, c, "â??", fg, bg);
+        return false;
+    }
+
+    private void draw_time (Gtk.Widget widget, Cairo.Context c, string text, double[] fg, double[] bg)
+    {
+        double alpha = 1.0;
+
+        if (widget.get_state () == Gtk.StateType.INSENSITIVE)
+            alpha = 0.5;
+        c.set_source_rgba (bg[0], bg[1], bg[2], alpha);
+        c.paint ();
+
+        c.set_source_rgba (fg[0], fg[1], fg[2], alpha);
+        c.select_font_face ("fixed", Cairo.FontSlant.NORMAL, Cairo.FontWeight.BOLD);
+        c.set_font_size (0.6 * widget.get_allocated_height ());
+        Cairo.TextExtents extents;
+        c.text_extents (text, out extents);
+        c.move_to ((widget.get_allocated_width () - extents.width) / 2 - extents.x_bearing,
+                   (widget.get_allocated_height () - extents.height) / 2 - extents.y_bearing);
+        c.show_text (text);
+
+        widget.set_size_request ((int) extents.width + 6, -1);
     }
 
     [CCode (cname = "G_MODULE_EXPORT history_combo_changed_cb", instance_pos = -1)]



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