[chronojump] ChronojumpLogo now has its specific class



commit a3cad8ae8f7e83ab5b7e641aa8a7a0590c655f97
Author: Xavier de Blas <xaviblas gmail com>
Date:   Wed Mar 4 18:36:44 2020 +0100

    ChronojumpLogo now has its specific class

 glade/app1.glade               |  1 -
 src/gui/app1/chronojump.cs     |  7 ++--
 src/gui/app1/chronojumpLogo.cs | 81 ++++++++++++++++++++++--------------------
 3 files changed, 45 insertions(+), 44 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index d3b5b87d..0ba25b83 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -884,7 +884,6 @@
                         <property name="height_request">90</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <signal name="expose_event" handler="on_drawingarea_chronojump_logo_expose_event" 
swapped="no"/>
                       </widget>
                       <packing>
                         <property name="expand">False</property>
diff --git a/src/gui/app1/chronojump.cs b/src/gui/app1/chronojump.cs
index ee5652c9..479f7feb 100644
--- a/src/gui/app1/chronojump.cs
+++ b/src/gui/app1/chronojump.cs
@@ -472,6 +472,7 @@ public partial class ChronoJumpWindow
                
        ExecuteAutoWindow executeAutoWin;
 
+       private ChronojumpLogo chronojumpLogo;
        static Thread pingThread;
 
        private bool createdStatsWin;
@@ -723,8 +724,7 @@ public partial class ChronoJumpWindow
                        chronopicRegisterWin.Show();
                }
 
-               reset_chronojump_logo();
-               GLib.Timeout.Add(14, new GLib.TimeoutHandler(OnTimer_chronojump_logo));
+               chronojumpLogo = new ChronojumpLogo (drawingarea_chronojump_logo, viewport_chronojump_logo);
                LogB.Information("Chronojump window started");
        }
 
@@ -3091,8 +3091,7 @@ public partial class ChronoJumpWindow
 
                setApp1Title(tempSessionName, Constants.Menuitem_modes.UNDEFINED);
 
-               reset_chronojump_logo();
-               GLib.Timeout.Add(14, new GLib.TimeoutHandler(OnTimer_chronojump_logo));
+               chronojumpLogo = new ChronojumpLogo (drawingarea_chronojump_logo, viewport_chronojump_logo);
        }       
        
        private Constants.Menuitem_modes current_menuitem_mode;
diff --git a/src/gui/app1/chronojumpLogo.cs b/src/gui/app1/chronojumpLogo.cs
index 60c59150..71d825b0 100644
--- a/src/gui/app1/chronojumpLogo.cs
+++ b/src/gui/app1/chronojumpLogo.cs
@@ -27,72 +27,76 @@ using System.Diagnostics;  //Stopwatch
 //code based on puff
 //http://zetcode.com/gui/gtksharp/drawingII/
 
-//TODO: move all this to an specific class
-//excepte the exposes event: that will construct the thing
-
-public partial class ChronoJumpWindow 
+public class ChronojumpLogo
 {
-       private bool timer_chronojump_logo = true;
-       private double alpha_chronojump_logo = 1.0;
-       private double size_chronojump_logo = 1.0;
-       Stopwatch sw_chronojump_logo_pause_at_end;
+       private bool timer;
+       private double alpha;
+       private double size;
+       private Stopwatch stopwatch;
+
+       private Gtk.DrawingArea drawingarea;
+       private Gtk.Viewport viewport;
 
-       void reset_chronojump_logo()
+       //constructor
+       public ChronojumpLogo (Gtk.DrawingArea drawingarea, Gtk.Viewport viewport)
        {
-               timer_chronojump_logo = true;
-               alpha_chronojump_logo = 1.0;
-               size_chronojump_logo = 1.0;
-               sw_chronojump_logo_pause_at_end = new Stopwatch();
+               this.drawingarea = drawingarea;
+               this.viewport = viewport;
+
+               viewport.Visible = false;
+               drawingarea.Visible = true;
 
+               timer = true;
+               alpha = 1.0;
+               size = 1.0;
+               stopwatch = new Stopwatch();
 
-               viewport_chronojump_logo.Visible = false;
-               drawingarea_chronojump_logo.Visible = true;
+               GLib.Timeout.Add(12, new GLib.TimeoutHandler(onTimer));
        }
 
-       bool OnTimer_chronojump_logo()
+       private bool onTimer()
        { 
-                if (! timer_chronojump_logo)
+                if (! timer)
                {
-                       drawingarea_chronojump_logo.Visible = false;
-                       viewport_chronojump_logo.Visible = true;
+                       drawingarea.Visible = false;
+                       viewport.Visible = true;
 
                        return false;
                }
 
-               drawingarea_chronojump_logo.QueueDraw();
+               redraw();
                 return true;
         } 
 
-        void on_drawingarea_chronojump_logo_expose_event (object sender, ExposeEventArgs args)
-        {
-                DrawingArea area = (DrawingArea) sender;
-                Cairo.Context cr =  Gdk.CairoHelper.Create(area.GdkWindow);
+       private void redraw()
+       {
+                Cairo.Context cr =  Gdk.CairoHelper.Create(drawingarea.GdkWindow);
 
-                int x = area.Allocation.Width / 2;
-                int y = area.Allocation.Height / 2;
+                int x = drawingarea.Allocation.Width / 2;
+                int y = drawingarea.Allocation.Height / 2;
 
                 cr.SetSourceRGB(.055, .118, .275);
                 cr.Paint();
 
                //cr.SelectFontFace("Courier", FontSlant.Normal, FontWeight.Bold);
-                cr.SelectFontFace("Ubuntu", FontSlant.Normal, FontWeight.Bold);
+                cr.SelectFontFace("Ubuntu", FontSlant.Normal, FontWeight.Bold); //TODO: need to check if 
they have this font
 
                bool showVersion = false;
-               if (size_chronojump_logo <= 80)
-                       size_chronojump_logo += 0.7;
+               if (size <= 80)
+                       size += 0.6;
 
-               if(size_chronojump_logo > 20)
+               if(size > 20)
                {
-                       alpha_chronojump_logo -= 0.01;
-                       if(alpha_chronojump_logo < 0)
+                       alpha -= 0.01;
+                       if(alpha < 0)
                        {
-                               alpha_chronojump_logo = 0;
-                               sw_chronojump_logo_pause_at_end.Start();
+                               alpha = 0;
+                               stopwatch.Start();
                        }
                }
 
-               if (sw_chronojump_logo_pause_at_end.Elapsed.TotalMilliseconds >= 300)
-                       timer_chronojump_logo = false;
+               if (stopwatch.Elapsed.TotalMilliseconds >= 300)
+                       timer = false;
 
                chronojumpLogo_showChronojump (cr, x, y);
 
@@ -102,8 +106,7 @@ public partial class ChronoJumpWindow
 
        private void chronojumpLogo_showChronojump (Cairo.Context cr, int x, int y)
        {
-
-                cr.SetFontSize(size_chronojump_logo);
+                cr.SetFontSize(size);
                 cr.SetSourceRGB(1, 1, 1);
 
                string  message = "CHRONOJUMP   2.0";
@@ -113,7 +116,7 @@ public partial class ChronoJumpWindow
                 cr.TextPath(message);
                 cr.Clip();
                 cr.Stroke();
-                cr.PaintWithAlpha(alpha_chronojump_logo);
+                cr.PaintWithAlpha(alpha);
        }
 
 }


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