![]() |
Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members
![]() |
00001 /******************************************************************************** 00002 * * 00003 * F i l e S e l e c t i o n D i a l o g * 00004 * * 00005 ********************************************************************************* 00006 * Copyright (C) 1998,2002 by Jeroen van der Zijp. All Rights Reserved. * 00007 ********************************************************************************* 00008 * This library is free software; you can redistribute it and/or * 00009 * modify it under the terms of the GNU Lesser General Public * 00010 * License as published by the Free Software Foundation; either * 00011 * version 2.1 of the License, or (at your option) any later version. * 00012 * * 00013 * This library is distributed in the hope that it will be useful, * 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00016 * Lesser General Public License for more details. * 00017 * * 00018 * You should have received a copy of the GNU Lesser General Public * 00019 * License along with this library; if not, write to the Free Software * 00020 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * 00021 ********************************************************************************* 00022 * $Id: FXFileDialog.h,v 1.20 2002/03/12 07:11:30 fox Exp $ * 00023 ********************************************************************************/ 00024 #ifndef FXFILEDIALOG_H 00025 #define FXFILEDIALOG_H 00026 00027 #ifndef FXDIALOGBOX_H 00028 #include "FXDialogBox.h" 00029 #endif 00030 00031 namespace FX { 00032 00033 00034 class FXFileSelector; 00035 00036 00037 /// File selection dialog 00038 class FXAPI FXFileDialog : public FXDialogBox { 00039 FXDECLARE(FXFileDialog) 00040 protected: 00041 FXFileSelector *filebox; 00042 protected: 00043 FXFileDialog(){} 00044 private: 00045 FXFileDialog(const FXFileDialog&); 00046 FXFileDialog &operator=(const FXFileDialog&); 00047 public: 00048 00049 /// Construct File Dialog Box 00050 FXFileDialog(FXWindow* owner,const FXString& name,FXuint opts=0,FXint x=0,FXint y=0,FXint w=500,FXint h=300); 00051 00052 /// Change file name 00053 void setFilename(const FXString& path); 00054 00055 /// Return file name, if any 00056 FXString getFilename() const; 00057 00058 /// Return empty-string terminated list of selected file names, or NULL if none selected 00059 FXString* getFilenames() const; 00060 00061 /// Change file pattern 00062 void setPattern(const FXString& ptrn); 00063 00064 /// Return file pattern 00065 FXString getPattern() const; 00066 00067 /** 00068 * Change the list of file patterns shown in the file dialog. 00069 * Each pattern comprises an optional name, followed by a pattern in 00070 * parentheses. The patterns are separated by newlines. 00071 * For example, 00072 * 00073 * "*\n*.cpp,*.cc\n*.hpp,*.hh,*.h" 00074 * 00075 * and 00076 * 00077 * "All Files (*)\nC++ Sources (*.cpp,*.cc)\nC++ Headers (*.hpp,*.hh,*.h)" 00078 * 00079 * will set the same three patterns, but the former shows no pattern names. 00080 */ 00081 void setPatternList(const FXString& patterns); 00082 00083 /** 00084 * Set list of patterns as name,pattern pairs. 00085 * The list should be terminated with a final NULL string. 00086 * (DEPRECATED) 00087 */ 00088 void setPatternList(const FXchar **ptrns); 00089 00090 /// Return list of patterns 00091 FXString getPatternList() const; 00092 00093 /** 00094 * After setting the list of patterns, this call will 00095 * initially select pattern n as the active one. 00096 */ 00097 void setCurrentPattern(FXint n); 00098 00099 /// Return current pattern number 00100 FXint getCurrentPattern() const; 00101 00102 /// Get pattern text for given pattern number 00103 FXString getPatternText(FXint patno) const; 00104 00105 /// Change pattern text for pattern number 00106 void setPatternText(FXint patno,const FXString& text); 00107 00108 /// Change directory 00109 void setDirectory(const FXString& path); 00110 00111 /// Return directory 00112 FXString getDirectory() const; 00113 00114 /// Set the inter-item spacing (in pixels) 00115 void setItemSpace(FXint s); 00116 00117 /// Return the inter-item spacing (in pixels) 00118 FXint getItemSpace() const; 00119 00120 /// Change File List style 00121 void setFileBoxStyle(FXuint style); 00122 00123 /// Return File List style 00124 FXuint getFileBoxStyle() const; 00125 00126 /// Change file selection mode 00127 void setSelectMode(FXuint mode); 00128 00129 /// Return file selection mode 00130 FXuint getSelectMode() const; 00131 00132 /// Show readonly button 00133 void showReadOnly(FXbool show); 00134 00135 /// Return TRUE if readonly is shown 00136 FXbool shownReadOnly() const; 00137 00138 /// Set initial state of readonly button 00139 void setReadOnly(FXbool state); 00140 00141 /// Get readonly state 00142 FXbool getReadOnly() const; 00143 00144 /// Open existing filename 00145 static FXString getOpenFilename(FXWindow* owner,const FXString& caption,const FXString& path,const FXString& patterns="*",FXint initial=0); 00146 00147 /// Open multiple existing files 00148 static FXString* getOpenFilenames(FXWindow* owner,const FXString& caption,const FXString& path,const FXString& patterns="*",FXint initial=0); 00149 00150 /// Save to filename 00151 static FXString getSaveFilename(FXWindow* owner,const FXString& caption,const FXString& path,const FXString& patterns="*",FXint initial=0); 00152 00153 /// Open directory name 00154 static FXString getOpenDirectory(FXWindow* owner,const FXString& caption,const FXString& path); 00155 00156 /// Save to stream 00157 virtual void save(FXStream& store) const; 00158 00159 /// Load from stream 00160 virtual void load(FXStream& store); 00161 00162 /// Destructor 00163 virtual ~FXFileDialog(); 00164 }; 00165 00166 } 00167 00168 #endif