libede:FileSystemBox: isFile is now fixed in ecere, removed tocheck comments.
[ede] / explorer / src / ExplorerWindow.ec
index ad9314d..82c991e 100644 (file)
@@ -10,7 +10,7 @@ enum ExplorerToolId
    panelTree, panelSearch,
    addressBar,
    refresh,
-   viewList, viewDetails, viewIcons, viewCards, viewShowcase, viewCustom,
+   viewList, viewDetails, viewIcons, viewCards, viewShowcase, viewTree, viewCustom,
    previewPictures
 };
 
@@ -82,6 +82,7 @@ class ExplorerWindow : Window
          ":view-icons.png",                                       /* viewIcons */
          ":view-cards.png",                                       /* viewCards */
          ":view-showcase-right.png",                              /* viewShowcase */
+         ":panel-tree.png",                                       /* viewTree */
          ":view-custom.png",                                      /* viewCustom */
          
          "<:ecere>mimeTypes/image.png"     /* previewPictures */
@@ -125,6 +126,11 @@ class ExplorerWindow : Window
                char * path = view.path;
                char * newPath = new char[strlen(path)];
                StripLastDirectory(path, newPath);
+               if(!newPath[0])
+               {
+                  newPath[0] = '/';
+                  newPath[1] = 0;
+               }
                view.path = newPath;
                delete newPath;
                break;
@@ -156,6 +162,12 @@ class ExplorerWindow : Window
             case viewCards:
             case viewShowcase:
                //SwitchViews(toolId);
+               view.treeBranches = false;
+               view.Refresh();
+               break;
+            case viewTree:
+               view.treeBranches = button.checked;
+               view.Refresh();
                break;
          }
       }
@@ -207,6 +219,7 @@ class ExplorerWindow : Window
    OptionToolButton viewIcons    { toolBar, this, id = ExplorerToolId::viewIcons, selected = &selectedView };
    OptionToolButton viewTiles    { toolBar, this, id = ExplorerToolId::viewCards, selected = &selectedView };
    OptionToolButton viewShowcase { toolBar, this, id = ExplorerToolId::viewShowcase, selected = &selectedView };
+   OptionToolButton viewTree     { toolBar, this, id = ExplorerToolId::viewTree, selected = &selectedView };
    selectedView = viewList;
    Window s9 { toolBar, size = { w = 8 } };
    ToggleToolButton previewPictures { toolBar, this, id = ExplorerToolId::previewPictures };
@@ -252,8 +265,8 @@ class ExplorerWindow : Window
       panels, this;
    };*/
 
-   /*Tree*/FileSystemBox tree
-   {
+   /*Tree*/FileSystemBox tree;
+   /*{
       panels, this;
       size = { w = 240 };
       anchor.top = 0;
@@ -263,7 +276,7 @@ class ExplorerWindow : Window
       foldersOnly = true;
       borderStyle = none;
       visible = false;
-   };
+   };*/
 
    FileSystemBox view
    {
@@ -274,6 +287,18 @@ class ExplorerWindow : Window
       locationBox = addressBar;
       navigateFolders = true;
       borderStyle = none;
+
+      bool NotifyNodeOpen(FileSystemBox box, FileSystemNode node)
+      {
+         if(node.type.isFile)
+         {
+            char command[MAX_LOCATION];
+            char * t = node.path;
+            sprintf(command, "ide %s", node.path);
+            ShellOpen(command);
+         }
+         return true;
+      }
    };
 
    /*ExplorerSearch search