//--- OBJECT WRITE BEGIN --- new GuiControl(SaveFileDlgEx) { profile = "GuiDialogProfile"; horizSizing = "right"; vertSizing = "bottom"; fitParentWidth = "0"; fitParentHeight = "0"; position = "0 0"; extent = "800 600"; minExtent = "8 8"; visible = "1"; helpTag = "0"; new GuiWindowCtrl() { profile = "GuiWindowProfile"; horizSizing = "center"; vertSizing = "center"; fitParentWidth = "0"; fitParentHeight = "0"; position = "73 61"; extent = "653 478"; minExtent = "8 8"; visible = "1"; text = "Save File..."; maxLength = "255"; resizeWidth = "1"; resizeHeight = "1"; canMove = "1"; canClose = "1"; canMinimize = "1"; canMaximize = "1"; MinSize = "50 50"; closeCommand = "Canvas.popDialog(SaveFileDlgEx);"; helpTag = "0"; new GuiButtonCtrl() { profile = "GuiButtonProfile"; horizSizing = "left"; vertSizing = "top"; fitParentWidth = "0"; fitParentHeight = "0"; position = "513 449"; extent = "60 20"; minExtent = "8 8"; visible = "1"; command = "DoSaveFileExCallback();"; text = "Save"; groupNum = "-1"; buttonType = "PushButton"; helpTag = "0"; }; new GuiButtonCtrl() { profile = "GuiButtonProfile"; horizSizing = "left"; vertSizing = "top"; fitParentWidth = "0"; fitParentHeight = "0"; position = "583 449"; extent = "60 20"; minExtent = "8 8"; visible = "1"; command = "Canvas.popDialog(SaveFileDlgEx);"; text = "Cancel"; groupNum = "-1"; buttonType = "PushButton"; helpTag = "0"; }; new GuiTextCtrl() { profile = "GuiTextProfile"; horizSizing = "right"; vertSizing = "top"; position = "10 449"; extent = "89 18"; minExtent = "8 2"; visible = "1"; text = "File name:"; maxLength = "255"; }; new GuiTextEditCtrl(SaveFileExEdit) { profile = "GuiTextEditProfile"; horizSizing = "right"; vertSizing = "top"; position = "60 449"; extent = "286 16"; minExtent = "8 8"; visible = "1"; helpTag = "0"; maxLength = "255"; historySize = "0"; password = "0"; tabComplete = "0"; }; new GuiFrameSetCtrl() { profile = "GuiDefaultProfile"; horizSizing = "width"; vertSizing = "height"; fitParentWidth = "0"; fitParentHeight = "0"; position = "4 24"; extent = "643 416"; minExtent = "8 2"; visible = "1"; columns = "0 245"; rows = "0"; borderWidth = "7"; borderColor = "206 206 206 206"; borderEnable = "dynamic"; borderMovable = "dynamic"; autoBalance = "0"; fudgeFactor = "0"; new GuiScrollCtrl() { profile = "GuiScrollProfile"; horizSizing = "right"; vertSizing = "bottom"; fitParentWidth = "0"; fitParentHeight = "1"; position = "0 0"; extent = "238 416"; minExtent = "8 2"; visible = "1"; willFirstRespond = "1"; hScrollBar = "dynamic"; vScrollBar = "dynamic"; constantThumbHeight = "0"; childMargin = "0 0"; new GuiDirectoryTreeCtrl(SaveDirTreeEx) { profile = "GuiDirectoryTreeProfile"; horizSizing = "right"; vertSizing = "bottom"; fitParentWidth = "0"; fitParentHeight = "0"; position = "2 -670"; extent = "206 1470"; minExtent = "8 2"; visible = "1"; tabSize = "16"; textOffset = "2"; fullRowSelect = "0"; itemHeight = "21"; destroyTreeOnSleep = "0"; MouseDragging = "0"; MultipleSelections = "0"; }; }; new GuiScrollCtrl() { profile = "GuiScrollProfile"; horizSizing = "right"; vertSizing = "bottom"; fitParentWidth = "1"; fitParentHeight = "1"; position = "245 0"; extent = "643 416"; minExtent = "8 2"; visible = "1"; willFirstRespond = "1"; hScrollBar = "alwaysOn"; vScrollBar = "alwaysOn"; constantThumbHeight = "0"; childMargin = "0 0"; new GuiDirectoryFileListCtrl(SaveFileListEx) { profile = "GuiDirectoryFileListProfile"; horizSizing = "right"; vertSizing = "bottom"; fitParentWidth = "0"; fitParentHeight = "0"; position = "2 2"; extent = "621 224"; minExtent = "8 2"; visible = "1"; enumerate = "0"; resizeCell = "1"; columns = "0"; fitParentWidth = "1"; clipColumnText = "0"; }; }; }; }; }; //--- OBJECT WRITE END --- //------------------------------------------------------------------------------ // ex: getSaveFilenameEx("~/stuff/*.*", saveStuff); // -- calls 'saveStuff(%filename)' on ok //------------------------------------------------------------------------------ function getSaveFilename(%filespec, %callback, %currentFile) { $GuiSaveDialogCallback = %callback; if( %filespec $= "" ) $SaveFileExFileSpec = "*.*"; else $SaveFileExFileSpec = %filespec; Canvas.pushDialog(SaveFileDlgEx, 99); $SaveFileExFile = %currentFile; // If we have a current path, set the tree to it if( filePath( %currentFile ) !$= "" ) SaveDirTreeEx.setSelectedPath( filePath( %currentFile ) ); else if ( $pref::Constructor::lastPath !$= "" ) SaveDirTreeEx.setSelectedPath( $pref::Constructor::lastPath ); // Update our file view to reflect the changes SaveFileListEx.setPath( SaveDirTreeEx.getSelectedPath(), $SaveFileExFileSpec ); // Update the file edit control SaveFileExEdit.setText(fileName($SaveFileExFile)); } //-------------------------------------- function DoSaveFileExCallback() { %path = SaveDirTreeEx.getSelectedPath(); %file = SaveFileExEdit.getValue(); %cat = %path @ "/" @ %file; // MEOW echo(%cat); eval( $GuiSaveDialogCallback @ "(\"" @ %cat @"\");" ); Canvas.popDialog(SaveFileDlgEx); } function SaveDirTreeEx::onSelectPath( %this, %path ) { // Update our file view to reflect the changes SaveFileListEx.setPath( %path, $SaveFileExFileSpec ); $pref::Constructor::lastPath = %path; } function SaveFileListEx::onSelect( %this, %listid, %file ) { // Update our file name to the one selected SaveFileExEdit.setText( %file ); }