filedlg.h
上传用户:hzhsqp
上传日期:2007-01-06
资源大小:1600k
文件大小:6k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * filedlg.h
  3.  *
  4.  * File selection dialog ancestor class.
  5.  *
  6.  * Portable Windows Library
  7.  *
  8.  * Copyright (c) 1993-1998 Equivalence Pty. Ltd.
  9.  *
  10.  * The contents of this file are subject to the Mozilla Public License
  11.  * Version 1.0 (the "License"); you may not use this file except in
  12.  * compliance with the License. You may obtain a copy of the License at
  13.  * http://www.mozilla.org/MPL/
  14.  *
  15.  * Software distributed under the License is distributed on an "AS IS"
  16.  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
  17.  * the License for the specific language governing rights and limitations
  18.  * under the License.
  19.  *
  20.  * The Original Code is Portable Windows Library.
  21.  *
  22.  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
  23.  *
  24.  * Portions are Copyright (C) 1993 Free Software Foundation, Inc.
  25.  * All Rights Reserved.
  26.  *
  27.  * Contributor(s): ______________________________________.
  28.  *
  29.  * $Log: filedlg.h,v $
  30.  * Revision 1.16  1999/03/10 03:49:51  robertj
  31.  * More documentation adjustments.
  32.  *
  33.  * Revision 1.15  1999/03/09 08:01:48  robertj
  34.  * Changed comments for doc++ support (more to come).
  35.  *
  36.  * Revision 1.14  1999/02/16 08:08:45  robertj
  37.  * MSVC 6.0 compatibility changes.
  38.  *
  39.  * Revision 1.13  1998/09/23 06:23:27  robertj
  40.  * Added open source copyright license.
  41.  *
  42.  * Revision 1.12  1995/06/17 11:12:35  robertj
  43.  * Documentation update.
  44.  *
  45.  * Revision 1.11  1995/03/14 12:41:24  robertj
  46.  * Updated documentation to use HTML codes.
  47.  *
  48.  * Revision 1.10  1995/01/22  07:29:36  robertj
  49.  * Added font & colour standard dialogs.
  50.  *
  51.  * Revision 1.9  1994/12/21  11:52:56  robertj
  52.  * Documentation and variable normalisation.
  53.  *
  54.  * Revision 1.8  1994/08/23  11:32:52  robertj
  55.  * Oops
  56.  *
  57.  * Revision 1.7  1994/08/22  00:46:48  robertj
  58.  * Added pragma fro GNU C++ compiler.
  59.  *
  60.  * Revision 1.6  1994/04/20  12:17:44  robertj
  61.  * Split name into PFilePath
  62.  *
  63.  * Revision 1.5  1994/01/13  03:36:48  robertj
  64.  * Created intermediate class PInteractorLayout for dialog-ish windows.
  65.  *
  66.  * Revision 1.4  1994/01/03  04:42:23  robertj
  67.  * Mass changes to common container classes and interactors etc etc etc.
  68.  *
  69.  * Revision 1.3  1993/12/01  16:09:05  robertj
  70.  * Windows NT port.
  71.  *
  72.  * Revision 1.2  1993/07/14  12:49:16  robertj
  73.  * Fixed RCS keywords.
  74.  *
  75.  */
  76. #define _PFILEDIALOG
  77. #ifdef __GNUC__
  78. #pragma interface
  79. #endif
  80. /**A standard dialog for obtaining a file name to load or save. This is really
  81.    an abstract class for the descendents that get file names for loading and
  82.    saving, or get a directory name. The exact appearance of the dialog is
  83.    platform specific, however they all consists of the same basic functions.
  84.    Note that unlike most dialogs, most operations such as
  85.    Ref{PInteractor::Show()}, Ref{PInteractorLayout::GetControl()} etc may
  86.    {bf not} be executed before the Ref{PModalDialog::RunModal()} function
  87.    has been executed. Furthermore, they are not available {bf after}
  88.    Ref{PModalDialog::RunModal()} has returned. Similarly some functions such
  89.    as Ref{SetDirectory()} are not available {bf within} the centext of
  90.    Ref{PModalDialog::RunModal()}. This is due to the implementation on some
  91.    platforms which goes to great lengths to use the actual standard file
  92.    dialog for the platform.
  93.  */
  94. class PFileDialog : public PModalDialog
  95. {
  96.   PCLASSINFO(PFileDialog, PModalDialog);
  97.   public:
  98.    /**Create a new standard dile dialog. The actual appearence is platform
  99.        dependent and is displayed using the standard resource for loading or
  100.        saving a file. This resource may be overridden by the #resID#
  101.        parameter but must still contain all of the controls of the standard
  102.        resource.
  103.      */
  104.     PFileDialog(
  105.       PInteractor * parent,   /// Owner interactor for the dialog.
  106.       PRESOURCE_ID resID
  107.                     /// Resource identifier for the dialog description resource.
  108.     );
  109.     /** Destroy the standard file dialog. */
  110.     ~PFileDialog();
  111.     /**@name New functions for class */
  112.    /**Set the title to the standard file dialog.
  113.      */
  114.     void SetTitle(
  115.       const PString & title   /// New title for the dialog.
  116.     );
  117.    /**Set the initial directory before the dialog is presented.
  118.        This function should be called {bf before} the
  119.        Ref{PModalDialog::RunModal()} function is called. Afterwards it will
  120.        have no effect.
  121.      */
  122.     void SetDirectory(
  123.       const PDirectory & dir  /// Initial directory for the dialog.
  124.     );
  125.    /**Get the directory that was selected in the dialog.
  126.        This function may be called at any time for the life of the object.
  127.        @return
  128.        selected directory.
  129.      */
  130.     const PDirectory & GetDirectory() const;
  131.    /**Set the initial file name before the dialog is presented.
  132.        This function should be called {bf before} the
  133.        Ref{PModalDialog::RunModal()} function is called. Afterwards it will
  134.        have no effect.
  135.      */
  136.           void SetDefaultFilename(const PString & fname);
  137.    /**Get the file that was selected in the dialog.
  138.        This function may be called at any time for the life of the object.
  139.        @return
  140.        selected file description.
  141.      */
  142.           const PFilePath & GetFile() const;
  143.   /**@name Callback functions */
  144.    /**A file has been selected from the list presented to the user but the
  145.        user has not pressed OK. The application specific file select dialog
  146.        may use this to display some extra information in the dialog when the
  147.        user clicks on a file (e.g. size, time of creation etc).
  148.      */
  149.     virtual void OnFileSelect(
  150.       const PFilePath & file   /// File that has been selected.
  151.     );
  152.   protected:
  153.     // Member variables
  154.       /** The current directory for the dialog. */
  155.     PDirectory directory;
  156.       /** The final, selected file name for the dialog. */
  157.     PFilePath file;
  158.       /** The initial file name to be used. */
  159.     PFilePath defaultFilename;
  160.     
  161. #ifdef DOC_PLUS_PLUS
  162.     };
  163. #endif
  164. // Class declaration continued in platform specific header file ///////////////