View Single Post
  #2  
Old 07-18-2006, 03:45 PM
Omini Omini is offline
Millenium Owner
Join Date: Feb 2006
Location: N.Ireland
Posts: 293
Omini is on a distinguished road
Send a message via AIM to Omini Send a message via MSN to Omini Send a message via Yahoo to Omini
All I know about a Client RC is that you need a weapon, reading folder names and what not I don't know.

PHP Code:
//#CLIENTSIDE

public function openFileBrowser() {
  
requesttext("folders","") ;
  new 
GuiWindowCtrl(FileBrowser_Screen) {
    
profile "GuiWindowProfile";
    
5050;
    
width 500height 450;
    
canMove true;
    
canResize true;
    
canClose true;
    
text "File Browser";
    
tile true;
    
destroyonhide true;

    new 
GuiScrollCtrl(FileBrowser_TreeScroll) {
      
profile "GuiScrollProfile";
      
horizSizing "right";
      
vertSizing "height";
      
5;
      
y  23;
      
width 136;
      
height 335;
      
hScrollBar "dynamic";
      
vScrollBar "dynamic";
      
tile true;

      new 
GuiTreeViewCtrl(FileBrowser_Tree) {
        
profile "GuiTreeViewProfile";
        
horizSizing "width";
        
0;
        
width 120;
        
fitParentWidth false;
        
sortmode "name";
        
thiso.catchevent(name,"onSelect","onTreeView");
      }
    }
    new 
GuiTextCtrl(FileBrowser_NameLabel) {
      
profile "GuiDarkTextProfile";
      
position "170 24";
      
extent "60 22";
      
minExtent "8 22";
      
text "Name";
    }
    new 
GuiTextCtrl(FileBrowser_RightsLabel) {
      
profile "GuiDarkTextProfile";
      
position "285 24";
      
extent "40 22";
      
minExtent "8 22";
      
text "Rights";
    }
    new 
GuiTextCtrl(FileBrowser_SizeLabel) {
      
profile "GuiDarkTextProfile";
      
position "325 24";
      
extent "50 22";
      
minExtent "8 22";
      
text "Size";
    }
    new 
GuiTextCtrl(FileBrowser_ModifiedLabel) {
      
profile "GuiDarkTextProfile";
      
position "375 24";
      
extent "60 22";
      
minExtent "8 22";
      
text "Modified";
    }

    new 
GuiScrollCtrl(FileBrowser_FilesScroll) {
      
profile "GuiScrollProfile";
      
horizSizing "width";
      
vertSizing "height";
      
144;
      
y  44;
      
width 351;
      
height 311;
      
hScrollBar "alwaysOff";
      
vScrollBar "dynamic";
      
tile true;

      new 
GuiTextListCtrl(FileBrowser_FilesList) {
        
profile "GuiTextListProfile";
        
horizSizing "width";
        
vertSizing "height";
        
0;
        
width 330;
        
fitParentWidth true;
        
sortMode "name";
        
clipColumnText true;
        
lineSpacing 20;
        
fontSize 18;
        
setIconSize(16,18);
        
columns = {0,120,160,230};
      }
    }
    new 
GuiScrollCtrl(FileBrowser_Scroll) {
      
profile "GuiScrollProfile";
      
5;
      
360;
      
width 490;
      
height 85;
      
horizSizing "width";
      
vertSizing "top";
      
hScrollBar "alwaysOff";
      
vScrollBar "dynamic";

      new 
GuiMLTextCtrl(FileBrowser_DebugText) {
        
profile "GuiMLTextProfile";
        
horizSizing "width";
        
0;
        
width 470;
      }
    }
  }
  new 
GuiContextMenuCtrl(FileBrowser_Menu) {
    
profile "GuiPopUpMenuProfile";
    
textprofile "GuiTextListProfile";
    
width 20;
//    setIconSize(16,16);

    
clearRows();
    
addRow(0,"Download");
    
addRow(1,"Edit As Text");
    
addRow(2,"Upload File(s)");
    
addRow(-1,"-");
    
addRow(3,"Reload");
    
addRow(4,"Move");
    
addRow(5,"Rename");
    
addRow(-1,"-");
    
addRow(6,"Delete");
  }

  
FileBrowser_DebugText.addText("Welcome to the filebrowser!"true);
  
FileBrowser_Screen.bringToFront();
}

function 
FileBrowser_FilesList.onResize(newwidthnewheight) {
  if (
newwidth<320newwidth 320;
  
FileBrowser_FilesList.columns = {0,newwidth-210,newwidth-170,newwidth-100};
  
widthdiff newwidth-330;
  
FileBrowser_RightsLabel.285+widthdiff;
  
FileBrowser_SizeLabel.325+widthdiff;
  
FileBrowser_ModifiedLabel.395+widthdiff;
}

function 
FileBrowser_FilesList.onRightMouseDown(modifier,mx,my,mcount) {
  
this.fileid FileBrowser_FilesList.getRowIdAtPoint(mx,my);
  if (
this.fileid>=0) {
    
FileBrowser_FilesList.setSelectedById(this.fileid);
    
this.selectedfile FileBrowser_FilesList.getSelectedText();
    
this.selectedfile.pos("\t");
    if (
i>=0)
      
this.selectedfile this.selectedfile.substring(0,i);
    
FileBrowser_Menu.open(mx,my);
  }
}

function 
FileBrowser_Menu.onSelect(entryid,text) {
  switch (
text) {
    case 
"Download": {
        
selectFileForDownload(this.selectedfile);
        break;
      }
    case 
"Edit As Text": {
        break;
      }
    case 
"Upload File(s)": {
        
selectFileForUpload();
        break;
      }
    case 
"Reload": {
        
triggerserver("gui","Editor","updatefile",this.selectedfile);
        break;
      }
    case 
"Move": {
        
TextEditor.openTextInput("MoveFiles","Move Files","Enter the target folder:","Move");
        if (
MoveFiles_Field.text=="")
          
MoveFiles_Field.text this.showfolder;
        if (!
MoveFiles_Field.text.ends("/"))
          
MoveFiles_Field.text @= "/";
        break;
      }
    case 
"Rename": {
        
TextEditor.openTextInput("RenameFile","Rename File","Enter the new filename:","Rename");
        
RenameFile_Field.text this.selectedfile;
        break;
      }
    case 
"Delete": {
        
requestFileDeletion(this.selectedfile);
        
requesttext("folder",this.showfolder);
        break;
      }
  }
}

function 
MoveFiles_Button.onAction() {
  
targetfolder MoveFiles_Field.text;
  if (!
targetfolder.ends("/"))
    
targetfolder @= "/";
  echo(
"moving files to : " targetfolder);
  
requestFilesMove(targetfolder,this.selectedfile);
  
requesttext("folder",this.showfolder);
  
MoveFiles_Window.hide();
}

function 
RenameFile_Button.onAction() {
  
newfilename RenameFile_Field.text;
  echo(
"renaming file to: " newfilename);
  
requestFileRename(this.selectedfile,newfilename);
  
requesttext("folder",this.showfolder);
  
RenameFile_Window.hide();
}

function 
onFolderLog(text) {
  echo(
"folderlog: " text);
  
FileBrowser_DebugText.addText("\n" texttrue);
  
FileBrowser_DebugText.scrollToBottom();
}

function 
onReceiveText(texttype,textoption,textlines) { 
  switch (
texttype) {
    case 
"folders":
      
FileBrowser_Tree.clearNodes();
      for (
foldernametextlines) {
        
subnode FileBrowser_Tree.addNodeByPath(foldername,"/");
        
subnode.sortgroup 1;
        
subnode.expanded false;
      }
      
FileBrowser_Tree.sort();
      break;
    case 
"folder":
      
FileBrowser_FilesList.clearRows();
      
this.displayedfiles textlines;
      for (
i=0i<textlines.size(); i++) {
        
fileentry textlines[i];

        
// Add the file entry
        
str fileentry[0] @ '\t' fileentry[1] @ '\t' fileentry[2] @ '\t' fileentry[3];
        
FileBrowser_FilesList.addRow(i,str);

        
// Set icon
        
dotpos fileentry[0].positions(".");
        
imgfilename dotpos.size() > "fileicon_" fileentry[0].substring(dotpos[dotpos.size()-1] + 1, -1) @ ".png" "";
        
lastRow().icon.drawimagerectangle(0,0,imgfilename,0,0,16,16);
      }
      
FileBrowser_FilesList.sort();
      break;
  }
}

function 
onTreeView(obj,node,path,dot) {
  
this.showfolder path;
  
requesttext("folder",path);
}

function 
lastRow() return FileBrowser_FilesList.rows[FileBrowser_FilesList.rows.size()-1]; 
I have that in a weapon called -FileBrowser
__________________



Reply With Quote