[chronojump] hpaned_contacts_main resize/shrinks ok when menu/changes



commit fe1ae7f929b4c11692f3774fc1fe2d008313266e
Author: Xavier de Blas <xaviblas gmail com>
Date:   Tue Mar 24 11:41:53 2020 +0100

    hpaned_contacts_main resize/shrinks ok when menu/changes

 glade/app1.glade           | 25 +++++++++++++----
 src/gui/app1/chronojump.cs |  6 ++--
 src/gui/app1/menu.cs       | 69 ++++++++++++++++++++++++++++++++++++----------
 src/gui/preferences.cs     |  8 ------
 4 files changed, 76 insertions(+), 32 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index 454639a1..9e6ce2c2 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -756,7 +756,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <child>
-                              <widget class="GtkAlignment" id="alignment13">
+                              <widget class="GtkAlignment" id="alignment_viewport_menu_top">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="bottom_padding">2</property>
@@ -985,12 +985,12 @@
                                                             <property name="top_padding">6</property>
                                                             <property name="left_padding">16</property>
                                                             <child>
-                                                            <widget class="GtkVBox" 
id="vbox_manage_persons2">
+                                                            <widget class="GtkVBox" 
id="vbox_manage_sessions">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">6</property>
                                                             <child>
-                                                            <widget class="GtkButton" 
id="button_person_add_single2">
+                                                            <widget class="GtkButton" 
id="button_menu_session_new">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">True</property>
                                                             <property name="can_default">True</property>
@@ -1038,7 +1038,7 @@
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkButton" 
id="button_person_add_multiple2">
+                                                            <widget class="GtkButton" 
id="button_menu_session_load">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">True</property>
                                                             <property name="can_default">True</property>
@@ -1086,7 +1086,7 @@
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkButton" 
id="button_edit_session">
+                                                            <widget class="GtkButton" 
id="button_menu_session_edit">
                                                             <property name="visible">True</property>
                                                             <property name="sensitive">False</property>
                                                             <property name="can_focus">True</property>
@@ -1135,7 +1135,7 @@
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkButton" 
id="button_delete_session">
+                                                            <widget class="GtkButton" 
id="button_menu_session_delete">
                                                             <property name="visible">True</property>
                                                             <property name="sensitive">False</property>
                                                             <property name="can_focus">True</property>
@@ -1535,6 +1535,7 @@
                                                             </child>
                                                             <child>
                                                             <widget class="GtkAlignment" 
id="alignment_menu_help_options">
+                                                            <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="top_padding">8</property>
                                                             <property name="left_padding">16</property>
@@ -24546,6 +24547,12 @@ Concentric</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -34386,6 +34393,12 @@ then click this button.</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
diff --git a/src/gui/app1/chronojump.cs b/src/gui/app1/chronojump.cs
index ce3f4dae..691c9348 100644
--- a/src/gui/app1/chronojump.cs
+++ b/src/gui/app1/chronojump.cs
@@ -206,8 +206,6 @@ public partial class ChronoJumpWindow
        //menu session
        [Widget] Gtk.MenuItem menuitem_edit_session;
        [Widget] Gtk.MenuItem menuitem_delete_session;
-       [Widget] Gtk.Button button_edit_session;
-       [Widget] Gtk.Button button_delete_session;
        [Widget] Gtk.MenuItem menuitem_export_csv;
        [Widget] Gtk.MenuItem menuitem_encoder_session_overview;
        [Widget] Gtk.Button button_menu_encoder_session_overview;
@@ -7276,8 +7274,8 @@ LogB.Debug("mc finished 5");
        {
                //menuitem_edit_session.Sensitive = option;
                //menuitem_delete_session.Sensitive = option;
-               button_edit_session.Sensitive = option;
-               button_delete_session.Sensitive = option;
+               button_menu_session_edit.Sensitive = option;
+               button_menu_session_delete.Sensitive = option;
                menuitem_export_csv.Sensitive = option;
                //menuitem_export_xml.Sensitive = option; not implemented yet
                menuitem_encoder_session_overview.Sensitive = option;
diff --git a/src/gui/app1/menu.cs b/src/gui/app1/menu.cs
index f6e37da4..39cc160e 100644
--- a/src/gui/app1/menu.cs
+++ b/src/gui/app1/menu.cs
@@ -24,6 +24,7 @@ using System;
 using Gtk;
 //using Gdk;
 using Glade;
+using System.Collections.Generic; //List
 
 //provar checkbuttons enlloc dels togglebuttons que igual no van be
 
@@ -39,7 +40,8 @@ public partial class ChronoJumpWindow
        [Widget] Gtk.Arrow arrow_menu_show_help_down;
        [Widget] Gtk.Button button_show_menu;
        [Widget] Gtk.Button button_show_modes;
-       //[Widget] Gtk.HPaned hpaned_contacts_main;
+       [Widget] Gtk.HPaned hpaned_contacts_main;
+       [Widget] Gtk.Alignment alignment_viewport_menu_top;
        [Widget] Gtk.Viewport viewport_hpaned_contacts_main;
        [Widget] Gtk.Viewport viewport_start_modes;
        [Widget] Gtk.Viewport viewport_menu_top;
@@ -60,6 +62,15 @@ public partial class ChronoJumpWindow
        [Widget] Gtk.Alignment alignment_menu_encoder_options;
        [Widget] Gtk.Alignment alignment_menu_help_options;
 
+       [Widget] Gtk.Button button_menu_session_new;
+       [Widget] Gtk.Button button_menu_session_load;
+       [Widget] Gtk.Button button_menu_session_edit;
+       [Widget] Gtk.Button button_menu_session_delete;
+       [Widget] Gtk.Button button_menu_preferences;
+       [Widget] Gtk.Button button_menu_help_documents;
+       [Widget] Gtk.Button button_menu_help_accelerators;
+       [Widget] Gtk.Button button_menu_help_about;
+
        //menu icons
        [Widget] Gtk.Image image_button_show_menu;
        [Widget] Gtk.Image image_button_show_modes;
@@ -95,6 +106,38 @@ public partial class ChronoJumpWindow
        {
                menuSetTextAndIcons();
                menuSetColors();
+
+               //LogB.Information("hpaned MinPosition: " + hpaned_contacts_main.MinPosition.ToString());
+
+               //unselect menu_help if selected
+               if(check_menu_help.Active)
+                       check_menu_help.Active = false;
+               alignment_menu_help_options.Visible = false;
+
+               /*
+               //do 1 and then 2 to ensure menu is shrinked after changing to icons
+               //1
+               hpaned_contacts_main = new Gtk.HPaned();
+               hpaned_contacts_main.Pack1(alignment_viewport_menu_top, false, false);
+               hpaned_contacts_main.Pack2(notebook_sup, true, false);
+               hpaned_contacts_main.Show();
+               */
+
+               //2 (1 seems not needed)
+               //this is done to ensure hidden buttons will be shown (because also submenu items seems to 
have Allocation=1)
+               //if we need it, pass also the other buttons but without the +16
+               List <Gtk.Button> l = new List<Gtk.Button>();
+               l.Add(button_menu_session_new);
+               l.Add(button_menu_session_load);
+               l.Add(button_menu_session_edit);
+               l.Add(button_menu_session_delete);
+               l.Add(button_menu_help_documents);
+               l.Add(button_menu_help_accelerators);
+               l.Add(button_menu_help_about);
+               int maxWidth = getMenuButtonsMaxWidth(l);
+               viewport_menu_top.SetSizeRequest(maxWidth + 16 + 4 + 6, -1); //16, 4, 6 are alignements 
spaces. -1 is height
+
+               //TODO: check also viewport_persons.Width (at least at preferences.MenuTypes.ALL and ICONS)
        }
 
        private void menuSetTextAndIcons ()
@@ -179,7 +222,6 @@ public partial class ChronoJumpWindow
                        viewport_persons.Visible = false;
                else
                        viewport_persons.Visible = (currentSession != null);
-               //hpaned_contacts_main.Show();
        }
 
        private void on_check_menu_session_clicked (object o, EventArgs args)
@@ -190,6 +232,7 @@ public partial class ChronoJumpWindow
                        check_menu_encoder.Active = false;
                        check_menu_help.Active = false;
                        alignment_menu_session_options.Visible = true;
+
                        alignment_menu_session_options.Show();
                } else
                        alignment_menu_session_options.Visible = false;
@@ -218,22 +261,20 @@ public partial class ChronoJumpWindow
                        alignment_menu_help_options.Visible = false;
        }
 
+       private int getMenuButtonsMaxWidth(List<Gtk.Button> l)
+       {
+               int max = 0;
+               foreach(Gtk.Button b in l)
+                       if(b.SizeRequest().Width > max)
+                               max = b.SizeRequest().Width;
+
+               return max;
+       }
+
        private void on_button_show_modes_clicked (object o, EventArgs args)
        {
                show_start_page();
                button_show_modes.Sensitive = false;
-
-               /*
-               //to care about viewport_menu_top being lower width allocated and a bit hidden by 
hpaned_contacts_main
-               LogB.Information("viewport_menu_top.Allocation.Width: " + 
viewport_menu_top.Allocation.Width.ToString());
-               LogB.Information("viewport_menu_top.SizeRequest.Width: " + 
viewport_menu_top.SizeRequest().Width.ToString());
-
-               LogB.Information("button_show_menu.Allocation.Width: " + 
button_show_menu.Allocation.Width.ToString());
-               LogB.Information("button_show_menu.SizeRequest.Width: " + 
button_show_menu.SizeRequest().Width.ToString());
-
-               LogB.Information("button_show_modes.Allocation.Width: " + 
button_show_modes.Allocation.Width.ToString());
-               LogB.Information("button_show_modes.SizeRequest.Width: " + 
button_show_modes.SizeRequest().Width.ToString());
-               */
        }
 
 }
diff --git a/src/gui/preferences.cs b/src/gui/preferences.cs
index c0559932..f852485b 100644
--- a/src/gui/preferences.cs
+++ b/src/gui/preferences.cs
@@ -656,14 +656,6 @@ public class PreferencesWindow
 
        private void on_radio_menu_show_toggled (object o, EventArgs args)
        {
-               /*
-               if(radio_menu_show_all.Active)
-               {
-                       check_example_menu_all.Visible = true;
-                       check_example_menu_text.Visible = false;
-                       check_example_menu_icons.Visible = false;
-               }
-               */
                check_example_menu_all.Visible = (o == (object) radio_menu_show_all && 
radio_menu_show_all.Active);
                check_example_menu_text.Visible = (o == (object) radio_menu_show_text && 
radio_menu_show_text.Active);
                check_example_menu_icons.Visible = (o == (object) radio_menu_show_icons && 
radio_menu_show_icons.Active);


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