explorer: misc. fixed tree panel by hack until Stacker is improved.
[ede] / explorer / src / ExplorerWindow.ec
index 6641431..a235a05 100644 (file)
@@ -149,13 +149,36 @@ class ExplorerWindow : Window
             case panelTree:
                // TODO TOFIX : need to fix Stacker for this to work
                tree.visible = button.checked;
+               split.visible = button.checked;
+               if(button.checked)
+               {
+                  split.rightPane = view;
+                  view.anchor = { top = 0, bottom = 0, right = 0 };
+                  tree.SelectLocation(view.path);
+               }
+               else
+               {
+                  split.rightPane = null;
+                  view.anchor = { left = 0, top = 0, bottom = 0, right = 0 };
+               }
                //search.visible = !button.checked;
                panels.size = { panels.size.w, panels.size.h }; // TOFIX : another Stacker fix needed
                break;
             case panelSearch:
                // TODO TOFIX : need to fix Stacker for this to work
                //search.visible = button.checked;
-               tree.visible = !button.checked;
+               tree.visible = false; //!button.checked;
+               split.visible = false; //!button.checked;
+               if(false/*button.checked*/)
+               {
+                  split.rightPane = view;
+                  view.anchor = { top = 0, bottom = 0, right = 0 };
+               }
+               else
+               {
+                  split.rightPane = null;
+                  view.anchor = { left = 0, top = 0, bottom = 0, right = 0 };
+               }
                panels.size = { panels.size.w, panels.size.h }; // TOFIX : another Stacker fix needed
                break;
             case refresh:
@@ -276,29 +299,56 @@ class ExplorerWindow : Window
       panels, this;
    };*/
 
-   /*Tree*/FileSystemBox tree;
-   /*{
+   Window hack
+   {
       panels, this;
-      size = { w = 240 };
       anchor.top = 0;
       anchor.bottom = 0;
-      navigateFolders = true;
+      anchor.right = 0;
+      borderStyle = deep;
+   };
+
+   /*Tree*/FileSystemBox tree//;
+   {
+      hack, this;
+      size = { w = 240 };
+      borderStyle = none;
+      visible = false;
+      /*anchor.top = 0;
+      anchor.bottom = 0;*/
+      anchor = { left = 0, top = 0, bottom = 0 };
+
       treeBranches = true;
       foldersOnly = true;
-      borderStyle = none;
+
+      bool NotifyNodeSelect(FileSystemBox box, FileSystemNode node)
+      {
+         char p[MAX_LOCATION];
+         node.GetPath(p);
+         view.path = node.path;
+         return true;
+      }
+   };
+
+   PaneSplitter split
+   {
+      hack, this;
       visible = false;
-   };*/
+      leftPane = tree;//, rightPane = view;
+      split = 300;
+   };
 
    FileSystemBox view
    {
-      panels, this;
-      anchor.top = 0;
+      hack, this;
+      borderStyle = none;
+      /*anchor.top = 0;
       anchor.bottom = 0;
-      anchor.right = 0;
+      anchor.right = 0;*/
+      anchor = { left = 0, top = 0, bottom = 0, right = 0 };
+
       locationBox = addressBar;
       navigateFolders = true;
-      borderStyle = none;
-
       multiSelect = true;
 
       bool NotifyNodeOpen(FileSystemBox box, FileSystemNode node)
@@ -321,6 +371,8 @@ class ExplorerWindow : Window
             ShellOpen(node.path);
          #endif
          }
+         else if(node.type.isFolder && tree.visible)
+            tree.SelectLocation(node.path);
          return true;
       }
    };
@@ -341,13 +393,6 @@ class ExplorerWindow : Window
       parent = deep, master = this;
       tabCycle = true;
       anchor = Anchor { top = 0, bottom = 0, right = 0 };
-   };
-
-   SplitWindow split
-   {
-      deep, this;
-      leftPane = tree, rightPane = viewHolder;
-      split = 300;
    };*/
 
    // Preview / Showcase
@@ -464,6 +509,7 @@ class ExplorerWindow : Window
    {
       //userMode = true;
       addressBar.path = view.path;
+      tree.path = "/"; // this should be available as a parameter
       return true;
    }