explorer: implemented go home feature. depends on environment definition of HOME...
[ede] / explorer / src / ExplorerWindow.ec
index 6d6ee59..13406f1 100644 (file)
@@ -16,7 +16,11 @@ enum ExplorerToolId
 
 class ExplorerWindow : Window
 {
 
 class ExplorerWindow : Window
 {
+#ifdef _DEBUG
+   text = "Ecere Explorer (Debug)";
+#else
    text = "Ecere Explorer";
    text = "Ecere Explorer";
+#endif
    background = activeBorder;
    borderStyle = sizable;
    hasMaximize = true;
    background = activeBorder;
    borderStyle = sizable;
    hasMaximize = true;
@@ -121,11 +125,23 @@ class ExplorerWindow : Window
             case goBack:
             case goForward:
                break;
             case goBack:
             case goForward:
                break;
+            case goHome:
+            {
+               char * home = getenv("HOME");
+               if(home && home[0] && FileExists(home).isDirectory)
+                  view.path = home;
+               break;
+            }
             case goUp:
             {
                char * path = view.path;
                char * newPath = new char[strlen(path)];
                StripLastDirectory(path, newPath);
             case goUp:
             {
                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;
                view.path = newPath;
                delete newPath;
                break;
@@ -282,6 +298,27 @@ class ExplorerWindow : Window
       locationBox = addressBar;
       navigateFolders = true;
       borderStyle = none;
       locationBox = addressBar;
       navigateFolders = true;
       borderStyle = none;
+
+      multiSelect = true;
+
+      bool NotifyNodeOpen(FileSystemBox box, FileSystemNode node)
+      {
+         if(node.type.isFile)
+         {
+            char command[MAX_LOCATION];
+            /*_FileType t = node.type;
+            if(t == ewsFile || t == epjFile ||
+                  t == ecFile || t == ehFile ||
+                  t == cppFile || t == hppFile ||
+                  t == cFile || t == hFile ||
+                  t == textFile || t == webFile)*/
+               sprintf(command, "ide %s", node.path);
+            /*else
+               sprintf(command, "%s", node.path);*/
+            ShellOpen(command);
+         }
+         return true;
+      }
    };
 
    /*ExplorerSearch search
    };
 
    /*ExplorerSearch search