[gtk+/wip/csoriano/pathbar-bin-view-window] tail management testing



commit 353a23fb08dc326b36499e6f8db40480e2d71d4a
Author: Carlos Soriano <csoriano gnome org>
Date:   Thu Jul 14 15:05:10 2016 +0200

    tail management testing

 gtk/gtkpathbar.c             |   20 +++++++++++++++-----
 gtk/gtkpathbarcontainer.c    |   28 +++++++++++++++++++++-------
 gtk/gtkpathbarcontainer.h    |    6 ++++--
 tests/testpathbarcontainer.c |    8 ++++----
 4 files changed, 44 insertions(+), 18 deletions(-)
---
diff --git a/gtk/gtkpathbar.c b/gtk/gtkpathbar.c
index 168e707..b94ca7d 100644
--- a/gtk/gtkpathbar.c
+++ b/gtk/gtkpathbar.c
@@ -428,7 +428,7 @@ fill_path_bar (GtkPathBar  *self,
 
       path_chunk = create_path_chunk (self, current_path->str, splitted_path[i],
                                       NULL, TRUE);
-      gtk_path_bar_container_add (GTK_PATH_BAR_CONTAINER (path_bar_container), path_chunk);
+      gtk_path_bar_container_add (GTK_PATH_BAR_CONTAINER (path_bar_container), path_chunk, FALSE);
     }
 
   g_string_free (current_path, TRUE);
@@ -514,7 +514,7 @@ update_path_bar (GtkPathBar  *self,
               if (i < g_strv_length (splitted_old_path))
                 continue;
 
-              gtk_path_bar_container_remove (GTK_PATH_BAR_CONTAINER (path_bar_container), l->data);
+              gtk_path_bar_container_remove (GTK_PATH_BAR_CONTAINER (path_bar_container), l->data, TRUE);
             }
         }
       /* Completely different path */
@@ -554,7 +554,7 @@ on_invert_animation_done (GtkPathBarContainer *container,
       gtk_widget_hide (tail_button);
       path_chunk = create_path_chunk (self, "/meeh", "The tail",
                                       NULL, TRUE);
-      gtk_path_bar_container_add (GTK_PATH_BAR_CONTAINER (container), path_chunk);
+      gtk_path_bar_container_add (GTK_PATH_BAR_CONTAINER (container), path_chunk, FALSE);
     }
 }
 
@@ -626,14 +626,14 @@ on_overflow_clicked (GtkButton *button,
   GList *last;
 
   get_path_bar_widgets (GTK_PATH_BAR (self), NULL, &overflow_button, &tail_button, &path_bar_container, 
TRUE);
-  if (!priv->inverted)
+  if (priv->inverted)
     {
       gtk_widget_show (overflow_button);
       gtk_widget_show (tail_button);
       children = gtk_path_bar_container_get_children (path_bar_container);
       last = g_list_last (children);
       if (last)
-        gtk_path_bar_container_remove (path_bar_container, last->data);
+        gtk_path_bar_container_remove (path_bar_container, last->data, FALSE);
     }
 
   gtk_path_bar_set_inverted (self, !gtk_path_bar_get_inverted (self));
@@ -1023,7 +1023,17 @@ gtk_path_bar_set_inverted (GtkPathBar *self,
 
   if (priv->inverted != inverted)
     {
+      GtkWidget *path_chunk;
+      GtkWidget *overflow_button;
+      GtkWidget *tail_button;
+      GtkWidget *path_bar_container;
+
       priv->inverted = inverted != FALSE;
+
+      g_print ("###### set inverted\n");
+
+      get_path_bar_widgets (GTK_PATH_BAR (self), &path_bar_container, &overflow_button, &tail_button, NULL, 
TRUE);
+
       gtk_path_bar_container_set_inverted (GTK_PATH_BAR_CONTAINER (priv->path_bar_container_1), inverted);
       gtk_path_bar_container_set_inverted (GTK_PATH_BAR_CONTAINER (priv->path_bar_container_2), inverted);
 
diff --git a/gtk/gtkpathbarcontainer.c b/gtk/gtkpathbarcontainer.c
index ca0ada0..add0583 100644
--- a/gtk/gtkpathbarcontainer.c
+++ b/gtk/gtkpathbarcontainer.c
@@ -33,8 +33,8 @@
 //TODO remove
 #include "gtkbutton.h"
 
-#define REVEALER_ANIMATION_TIME 250 //ms
-#define INVERT_ANIMATION_SPEED 1.2 //px/ms
+#define REVEALER_ANIMATION_TIME 0 //ms
+#define INVERT_ANIMATION_SPEED 0.2 //px/ms
 #define INVERT_ANIMATION_MAX_TIME 10000 //ms
 
 struct _GtkPathBarContainerPrivate
@@ -122,7 +122,8 @@ gtk_path_bar_container_get_property (GObject    *object,
 
 void
 gtk_path_bar_container_add (GtkPathBarContainer *self,
-                           GtkWidget           *widget)
+                            GtkWidget           *widget,
+                            gboolean             animate)
 {
   GtkPathBarContainer *children_box = GTK_PATH_BAR_CONTAINER (self);
   GtkWidget *revealer;
@@ -135,8 +136,16 @@ gtk_path_bar_container_add (GtkPathBarContainer *self,
                                     GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT);
   gtk_container_add (GTK_CONTAINER (revealer), widget);
   gtk_container_add (GTK_CONTAINER (priv->children_box), revealer);
-  gtk_revealer_set_transition_duration (GTK_REVEALER (revealer),
-                                        REVEALER_ANIMATION_TIME);
+  if (animate)
+    {
+      gtk_revealer_set_transition_duration (GTK_REVEALER (revealer),
+                                            REVEALER_ANIMATION_TIME);
+    }
+  else
+    {
+      gtk_revealer_set_transition_duration (GTK_REVEALER (revealer),
+                                            0);
+    }
   priv->children = g_list_append (priv->children, widget);
   gtk_widget_show_all (revealer);
 
@@ -184,7 +193,8 @@ unrevealed_really_remove_child (GObject    *widget,
 
 void
 gtk_path_bar_container_remove (GtkPathBarContainer *self,
-                               GtkWidget    *widget)
+                               GtkWidget           *widget,
+                               gboolean             animate)
 {
   GtkPathBarContainerPrivate *priv = gtk_path_bar_container_get_instance_private (self);
   GtkWidget *to_remove;
@@ -194,7 +204,11 @@ gtk_path_bar_container_remove (GtkPathBarContainer *self,
   else
     to_remove = widget;
 
-  priv->children_to_remove = g_list_append (priv->children_to_remove, to_remove);
+  if (animate)
+    priv->children_to_remove = g_list_append (priv->children_to_remove, to_remove);
+  else
+    really_remove_child (self, widget);
+
   priv->children = g_list_remove (priv->children, to_remove);
 
   gtk_widget_queue_resize (GTK_WIDGET (self));
diff --git a/gtk/gtkpathbarcontainer.h b/gtk/gtkpathbarcontainer.h
index e9d0e94..80b0a64 100644
--- a/gtk/gtkpathbarcontainer.h
+++ b/gtk/gtkpathbarcontainer.h
@@ -91,11 +91,13 @@ GList             *gtk_path_bar_container_get_overflow_children  (GtkPathBarCont
 
 GDK_AVAILABLE_IN_3_20
 void              gtk_path_bar_container_add                     (GtkPathBarContainer      *self,
-                                                                  GtkWidget                *widget);
+                                                                  GtkWidget                *widget,
+                                                                  gboolean                  animate);
 
 GDK_AVAILABLE_IN_3_20
 void              gtk_path_bar_container_remove                  (GtkPathBarContainer      *self,
-                                                                  GtkWidget                *widget);
+                                                                  GtkWidget                *widget,
+                                                                  gboolean                  animate);
 
 GDK_AVAILABLE_IN_3_20
 void              gtk_path_bar_container_remove_all_children     (GtkPathBarContainer      *self);
diff --git a/tests/testpathbarcontainer.c b/tests/testpathbarcontainer.c
index 1798d4f..4d91b68 100644
--- a/tests/testpathbarcontainer.c
+++ b/tests/testpathbarcontainer.c
@@ -33,7 +33,7 @@ on_button_clicked (GtkWidget *button,
                    gpointer   user_data)
 {
   g_print ("button clicked\n");
-  gtk_path_bar_container_remove (GTK_PATH_BAR_CONTAINER (user_data), button);
+  gtk_path_bar_container_remove (GTK_PATH_BAR_CONTAINER (user_data), button, TRUE);
 }
 
 static void
@@ -47,7 +47,7 @@ on_reset_button_clicked (GtkButton *reset_button)
     {
       button = gtk_button_new_with_label (get_lorem_ipsum ());
       g_signal_connect (button, "clicked", (GCallback) on_button_clicked, path_bar_container);
-      gtk_path_bar_container_add (GTK_PATH_BAR_CONTAINER (path_bar_container), button);
+      gtk_path_bar_container_add (GTK_PATH_BAR_CONTAINER (path_bar_container), button, FALSE);
     }
 
   gtk_widget_show_all (path_bar_container);
@@ -61,7 +61,7 @@ on_add_button (gint line)
   button = gtk_button_new_with_label (get_lorem_ipsum ());
   gtk_widget_show (button);
   g_signal_connect (button, "clicked", (GCallback) on_button_clicked, path_bar_container);
-  gtk_path_bar_container_add (GTK_PATH_BAR_CONTAINER (path_bar_container), button);
+  gtk_path_bar_container_add (GTK_PATH_BAR_CONTAINER (path_bar_container), button, TRUE);
   gtk_container_add (GTK_CONTAINER (path_bar_box), gtk_button_new_with_label ("eeeeoo"));
 }
 
@@ -75,7 +75,7 @@ on_remove_button (gint line)
   last = g_list_last (children);
   if (last)
     gtk_path_bar_container_remove (GTK_PATH_BAR_CONTAINER (path_bar_container),
-                                   last->data);
+                                   last->data, TRUE);
 
   g_list_free (children);
 }


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