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

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * modaldlg.h
  3.  *
  4.  * Modal Dialog 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: modaldlg.h,v $
  30.  * Revision 1.21  1999/03/10 03:49:52  robertj
  31.  * More documentation adjustments.
  32.  *
  33.  * Revision 1.20  1999/03/09 08:01:49  robertj
  34.  * Changed comments for doc++ support (more to come).
  35.  *
  36.  * Revision 1.19  1999/02/16 08:08:46  robertj
  37.  * MSVC 6.0 compatibility changes.
  38.  *
  39.  * Revision 1.18  1998/09/23 06:24:25  robertj
  40.  * Added open source copyright license.
  41.  *
  42.  * Revision 1.17  1995/10/14 15:00:03  robertj
  43.  * Moved standard button code from modal to non-modal dialogs.
  44.  *
  45.  * Revision 1.16  1995/06/17 11:12:45  robertj
  46.  * Documentation update.
  47.  *
  48.  * Revision 1.15  1995/03/14 12:41:50  robertj
  49.  * Updated documentation to use HTML codes.
  50.  *
  51.  * Revision 1.14  1995/01/03  11:39:26  robertj
  52.  * Documentation.
  53.  *
  54.  * Revision 1.13  1994/10/30  11:46:52  robertj
  55.  * Changed mechanism for doing notification callback functions.
  56.  *
  57.  * Revision 1.12  1994/08/23  11:32:52  robertj
  58.  * Oops
  59.  *
  60.  * Revision 1.11  1994/08/22  00:46:48  robertj
  61.  * Added pragma fro GNU C++ compiler.
  62.  *
  63.  * Revision 1.10  1994/06/25  11:55:15  robertj
  64.  * Unix version synchronisation.
  65.  *
  66.  * Revision 1.9  1994/04/03  08:34:18  robertj
  67.  * Added help and focus functionality.
  68.  *
  69.  * Revision 1.8  1994/04/01  14:13:06  robertj
  70.  * Added OnInit function to all modal dialogs.
  71.  *
  72.  * Revision 1.7  1994/03/07  07:38:19  robertj
  73.  * Major enhancementsacross the board.
  74.  *
  75.  * Revision 1.6  1994/01/13  03:36:48  robertj
  76.  * Created intermediate class PInteractorLayout for dialog-ish windows.
  77.  *
  78.  * Revision 1.5  1994/01/03  04:42:23  robertj
  79.  * Mass changes to common container classes and interactors etc etc etc.
  80.  *
  81.  * Revision 1.4  1993/12/01  16:09:05  robertj
  82.  * Windows NT port.
  83.  *
  84.  * Revision 1.3  1993/07/14  12:49:16  robertj
  85.  * Fixed RCS keywords.
  86.  *
  87.  */
  88. #define _PMODALDIALOG
  89. #ifdef __GNUC__
  90. #pragma interface
  91. #endif
  92. /**This class is as for PDialog but can be modal. A modal dialog is one that
  93.    will not allow other interactors of the application to operate until it has
  94.    been closed.
  95.  */
  96. class PModalDialog : public PDialog
  97. {
  98.   PCLASSINFO(PModalDialog, PDialog);
  99.   public:
  100.    /**Create a new empty dialog. There are no controls contained within the
  101.        dialog and it is expected that these are to added manually by the
  102.        application.
  103.      */
  104.     PModalDialog(
  105.       PInteractor * parent  /// Interactor that owns the dialog.
  106.     );
  107.    /**Create a new dialog by loading it from a resource. The resource
  108.        description determines the position, dimensions and title of the dialog
  109.        as well as the position, dimensions, title and other options for all of
  110.        the controls in the dialog.
  111.      */
  112.     PModalDialog(
  113.       PInteractor * parent,  /// Interactor that owns the dialog.
  114.       PRESOURCE_ID resID     /// Resource identifier for loading controls.
  115.     );
  116.    /**Destroy the dialog, releasing its data and all of its associated
  117.        controls.
  118.      */
  119.     virtual ~PModalDialog();
  120.   /**@name New functions for class */
  121.    /**Execute the dialog in a mode. The dialog has its Ref{OnInit()}
  122.        function called, then the dialog is shown and an event loop is entered.
  123.        All other interactors not owned by this interactor are disabled.
  124.        Note that this function will not exit until the dialog is ended via the
  125.        Ref{EndModal()} function. The value passed into the Ref{EndModal()}
  126.        function as a parameter is the return value of this function.
  127.        @return
  128.        value passed to the Ref{EndModal()} function.
  129.      */
  130.     virtual int RunModal();
  131.    /**End the modal dialog, and pass back the specified value as the return
  132.        value in the Ref{RunModal()} call.
  133.      */
  134.     void EndModal(
  135.       int retVal  /// Value to return for the modal dialog.
  136.     );
  137.   protected:
  138.   /**@name Overrides from class PDialog */
  139.    /**Function called when the dialog OK button has been pressed. The default
  140.        behaviour is to end the modal dialog returning TRUE.
  141.      */
  142.     virtual void OnOk();
  143.    /**Function called when the dialog Cancel button has been pressed. The
  144.        default behaviour is to end the modal dialog returning FALSE.
  145.      */
  146.     virtual void OnCancel();
  147.   /**@name New functions for class */
  148.    /**This function is called within the Ref{RunModal()} function before
  149.        the dialog is made visible to allow any initialisation of user fields
  150.        in the dialog.
  151.      */
  152.     virtual void OnInit();
  153.    /**Save the values of controls. This function is generated by the PWRC
  154.        compiler and is called by the default OnInit() function.
  155.      */
  156.     virtual void Save();
  157.    /**Restore values saved with the Sve() function. This function is generated
  158.        by the PWRC compiler and is called by the default OnCancel() function.
  159.      */
  160.     virtual void Restore();
  161.   private:
  162.     void Construct();
  163.     // Common constructor code.
  164. #ifdef DOC_PLUS_PLUS
  165. };
  166. #endif
  167. // Class declaration continued in platform specific header file ///////////////