[chronojump] Improvements on chronojumpLogo animation



commit 9abc5b802b02df95db6751a354944a748358ace7
Author: Xavier de Blas <xaviblas gmail com>
Date:   Wed Mar 4 17:37:31 2020 +0100

    Improvements on chronojumpLogo animation

 glade/app1.glade               | 30 ++++++++++++++++-----------
 src/gui/app1/chronojumpLogo.cs | 46 +++++++++++++++++++++++++++++++-----------
 2 files changed, 52 insertions(+), 24 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index 260c6b7b..d3b5b87d 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -23306,6 +23306,9 @@ Concentric</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -25601,6 +25604,18 @@ Concentric</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">6</property>
                                                             <child>
+                                                            <widget class="GtkLabel" 
id="label_video_encoder_tests_will_be_filmed">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" translatable="yes">Tests 
will be filmed</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="pack_type">end</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
                                                             <widget class="GtkHBox" 
id="hbox_video_encoder_capturing">
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">4</property>
@@ -25637,18 +25652,6 @@ Concentric</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_video_encoder_tests_will_be_filmed">
-                                                            <property name="can_focus">False</property>
-                                                            <property name="label" translatable="yes">Tests 
will be filmed</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="pack_type">end</property>
-                                                            <property name="position">0</property>
-                                                            </packing>
-                                                            </child>
-                                                            <child>
                                                             <widget class="GtkHBox" 
id="hbox_video_encoder_no_capturing">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
@@ -33016,6 +33019,9 @@ then click this button.</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
diff --git a/src/gui/app1/chronojumpLogo.cs b/src/gui/app1/chronojumpLogo.cs
index 07359885..e9ac3b42 100644
--- a/src/gui/app1/chronojumpLogo.cs
+++ b/src/gui/app1/chronojumpLogo.cs
@@ -21,28 +21,43 @@
 using Gtk;
 using Cairo;
 using System;
+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 
 {
        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;
 
        void reset_chronojump_logo()
        {
                timer_chronojump_logo = true;
                alpha_chronojump_logo = 1.0;
                size_chronojump_logo = 1.0;
+               sw_chronojump_logo_pause_at_end = new Stopwatch();
+
+
+               viewport_chronojump_logo.Visible = false;
+               drawingarea_chronojump_logo.Visible = true;
        }
 
        bool OnTimer_chronojump_logo()
        { 
                 if (! timer_chronojump_logo)
+               {
+                       drawingarea_chronojump_logo.Visible = false;
+                       viewport_chronojump_logo.Visible = true;
+
                        return false;
+               }
 
                drawingarea_chronojump_logo.QueueDraw();
                 return true;
@@ -62,29 +77,36 @@ public partial class ChronoJumpWindow
                //cr.SelectFontFace("Courier", FontSlant.Normal, FontWeight.Bold);
                 cr.SelectFontFace("Ubuntu", FontSlant.Normal, FontWeight.Bold);
 
+               if (size_chronojump_logo > 20)
+                       alpha_chronojump_logo -= 0.01;
+               if (alpha_chronojump_logo <= 0)
+                       sw_chronojump_logo_pause_at_end.Start();
+               if (sw_chronojump_logo_pause_at_end.Elapsed.TotalMilliseconds >= 100)
+                       timer_chronojump_logo = false;
+
                 size_chronojump_logo += 0.8;
 
-                if (size_chronojump_logo > 20) {
-                        alpha_chronojump_logo -= 0.01;
-                }
+               chronojumpLogo_showChronojump (cr, x, y);
+
+                ((IDisposable) cr.Target).Dispose();
+                ((IDisposable) cr).Dispose();
+        }
+
+       private void chronojumpLogo_showChronojump (Cairo.Context cr, int x, int y)
+       {
 
                 cr.SetFontSize(size_chronojump_logo);
                 cr.SetSourceRGB(1, 1, 1);
 
-                string message = "Chronojump";
+               string message = "CHRONOJUMP - 2.0";
                 TextExtents extents = cr.TextExtents(message);
 
-                cr.MoveTo(x - extents.Width/2, y + extents.Height/4);
+                cr.MoveTo(x - extents.Width/2, y + extents.Height/2);
                 cr.TextPath(message);
                 cr.Clip();
                 cr.Stroke();
                 cr.PaintWithAlpha(alpha_chronojump_logo);
+                //cr.Paint();
+       }
 
-                if (alpha_chronojump_logo <= 0) {
-                        timer_chronojump_logo = false;
-                }
-
-                ((IDisposable) cr.Target).Dispose();
-                ((IDisposable) cr).Dispose();
-        }
 }


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