explorer: implemented go home feature. depends on environment definition of HOME...
[ede] / explorer / src / ExplorerWindow.ec
index 5e41a21..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;
@@ -283,13 +299,22 @@ class ExplorerWindow : Window
       navigateFolders = true;
       borderStyle = none;
 
       navigateFolders = true;
       borderStyle = none;
 
+      multiSelect = true;
+
       bool NotifyNodeOpen(FileSystemBox box, FileSystemNode node)
       {
          if(node.type.isFile)
          {
             char command[MAX_LOCATION];
       bool NotifyNodeOpen(FileSystemBox box, FileSystemNode node)
       {
          if(node.type.isFile)
          {
             char command[MAX_LOCATION];
-            char * t = node.path;
-            sprintf(command, "ide %s", node.path);
+            /*_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;
             ShellOpen(command);
          }
          return true;