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

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * tbutton.h
  3.  *
  4.  * Text button control.
  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: tbutton.h,v $
  30.  * Revision 1.16  1999/03/10 03:49:53  robertj
  31.  * More documentation adjustments.
  32.  *
  33.  * Revision 1.15  1999/03/09 08:01:50  robertj
  34.  * Changed comments for doc++ support (more to come).
  35.  *
  36.  * Revision 1.14  1999/02/16 08:08:46  robertj
  37.  * MSVC 6.0 compatibility changes.
  38.  *
  39.  * Revision 1.13  1998/09/23 06:29:25  robertj
  40.  * Added open source copyright license.
  41.  *
  42.  * Revision 1.12  1995/06/17 11:13:30  robertj
  43.  * Documentation update.
  44.  *
  45.  * Revision 1.11  1995/03/14 12:42:45  robertj
  46.  * Updated documentation to use HTML codes.
  47.  *
  48.  * Revision 1.10  1994/12/21  11:54:40  robertj
  49.  * Documentation and variable normalisation.
  50.  *
  51.  * Revision 1.9  1994/10/30  11:47:24  robertj
  52.  * Changed mechanism for doing notification callback functions.
  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/03  08:34:18  robertj
  61.  * Added help and focus functionality.
  62.  *
  63.  * Revision 1.5  1994/03/07  07:38:19  robertj
  64.  * Major enhancementsacross the board.
  65.  *
  66.  * Revision 1.4  1994/01/15  02:50:29  robertj
  67.  * Moved control contructors to common and added a platform dependent Construct() function.
  68.  *
  69.  * Revision 1.3  1994/01/03  04:42:23  robertj
  70.  * Mass changes to common container classes and interactors etc etc etc.
  71.  *
  72.  * Revision 1.2  1993/09/27  16:35:25  robertj
  73.  * Removed special constructor for dialog resource loading.
  74.  *
  75.  * Revision 1.1  1993/08/24  00:27:59  robertj
  76.  * Initial revision
  77.  *
  78.  */
  79. #define _PTEXTBUTTON
  80. #ifdef __GNUC__
  81. #pragma interface
  82. #endif
  83. class PTextButton : public PPushButton
  84. {
  85.   PCLASSINFO(PTextButton, PPushButton)
  86. /* A simple push button control with text in it, which is used to initiate an
  87.    action.
  88.    The exact appearence of an instance of a PTextButton is platform dependent.
  89.    The implementation may not be completely orthoganal to other descendents of
  90.    PPushButton. This is to yield maximum caompatibility with the native
  91.    platforms button controls. For example, in MS-Windows the
  92.    Ref{PPushButton::DrawButtonSurround()} and
  93.    Ref{PPushButton::OnDrawFace()} functions are never actually called so the
  94.    correct button is drawn. Thus if in a later version of the operating system
  95.    the standard push buttons visual appearance is changed, PWLib applications
  96.    will chane with it. Other button types such as Ref{PImageButtons} will
  97.    remain as they were.
  98.    
  99.    A consequence of this is that the application should never descend from this
  100.    class if the appearance is to be changed. Descend directly from PPushButton
  101.    and draw the text contents. This could simply consist of the line:
  102.         #canvas.DrawString(rect, GetName(), PCanvas::Centred);#
  103.  */
  104.   public:
  105.     /** Create a push button control with the specified attributes. */
  106.     PTextButton(
  107.       PInteractor * parent,    /// Interactor into which the control is placed.
  108.       ButtonType deflt = OrdinaryButton  /// Flag for is the default button.
  109.     );
  110.     PTextButton(
  111.       PInteractor * parent,    /// Interactor into which the control is placed.
  112.       const PString & name,    /// Name to be placed next in the button.
  113.       ButtonType deflt = OrdinaryButton  /// Flag for is the default button.
  114.     );
  115.     PTextButton(
  116.       PInteractor * parent,    /// Interactor into which the control is placed.
  117.       const PString & name,    /// Name to be placed next in the button.
  118.       const PNotifier & notify,  /// Function to call when changes state.
  119.       ButtonType deflt = OrdinaryButton  /// Flag for is the default button.
  120.     );
  121.    /**Create control from interactor layout with the specified control ID.
  122.        This is mainly used in support of resource based dialogs.
  123.      */
  124.     PTextButton(
  125.       PInteractorLayout * parent, /// Interactor into which the box is placed.
  126.       PRESOURCE_ID ctlID,         /// Identifier for the control in the layout.
  127.       const PNotifier & notify,   /// Function to call when changes state.
  128.       void * valuePtr             /// Variable to change to the button state.
  129.     );
  130.     /** Destroy the text push button control. */
  131.     virtual ~PTextButton();
  132.   /**@name New functions for class */
  133.     /** Set the default (minimum) dimensions for the control */
  134.     void DefaultDimensions();
  135.     /**@name System callback functions. */
  136.    /**Draw the contents (face) of the pushbutton.
  137.        On some platforms this may be a dummy function which does nothing and
  138.        is never called.
  139.      */
  140.     virtual void OnDrawFace(
  141.       PCanvas & canvas,   /// Canvas into which to draw the button face.
  142.       const PRect & rect, /// Bounds in which to draw the button face.
  143.       BOOL hasFocus,      /// Flag indicating that the button has the focus.
  144.       BOOL isSelected     /// Flag indicating the button is currently down.
  145.     );
  146. #ifdef DOC_PLUS_PLUS
  147. };
  148. #endif
  149. // Class declaration continued in platform specific header file ///////////////