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

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * stattext.h
  3.  *
  4.  * Static text 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: stattext.h,v $
  30.  * Revision 1.18  1999/03/10 03:49:53  robertj
  31.  * More documentation adjustments.
  32.  *
  33.  * Revision 1.17  1999/03/09 08:01:50  robertj
  34.  * Changed comments for doc++ support (more to come).
  35.  *
  36.  * Revision 1.16  1999/02/16 08:08:46  robertj
  37.  * MSVC 6.0 compatibility changes.
  38.  *
  39.  * Revision 1.15  1998/09/23 06:29:22  robertj
  40.  * Added open source copyright license.
  41.  *
  42.  * Revision 1.14  1995/06/17 11:13:28  robertj
  43.  * Documentation update.
  44.  *
  45.  * Revision 1.13  1995/03/14 12:42:43  robertj
  46.  * Updated documentation to use HTML codes.
  47.  *
  48.  * Revision 1.12  1995/01/27  11:16:57  robertj
  49.  * Changed alignment mask from enum to int.
  50.  *
  51.  * Revision 1.11  1995/01/16  09:42:11  robertj
  52.  * Documentation.
  53.  *
  54.  * Revision 1.10  1994/10/30  11:47:22  robertj
  55.  * Changed mechanism for doing notification callback functions.
  56.  *
  57.  * Revision 1.9  1994/08/23  11:32:52  robertj
  58.  * Oops
  59.  *
  60.  * Revision 1.8  1994/08/22  00:46:48  robertj
  61.  * Added pragma fro GNU C++ compiler.
  62.  *
  63.  * Revision 1.7  1994/03/07  07:38:19  robertj
  64.  * Major enhancementsacross the board.
  65.  *
  66.  * Revision 1.6  1994/01/03  04:42:23  robertj
  67.  * Mass changes to common container classes and interactors etc etc etc.
  68.  *
  69.  * Revision 1.5  1993/09/27  16:35:25  robertj
  70.  * Removed special constructor for dialog resource loading.
  71.  *
  72.  * Revision 1.4  1993/08/21  01:50:33  robertj
  73.  * Made Clone() function optional, default will assert if called.
  74.  *
  75.  * Revision 1.3  1993/07/14  12:49:16  robertj
  76.  * Fixed RCS keywords.
  77.  *
  78.  */
  79. #define _PSTATICTEXT
  80. #ifdef __GNUC__
  81. #pragma interface
  82. #endif
  83. class PStaticText : public PNamedControl
  84. {
  85.   PCLASSINFO(PStaticText, PNamedControl)
  86. /* A simple control to display some text. This draws the text without any
  87.    borders in the specified alignment and in the current foreground and
  88.    background colours for the interactor.
  89.    
  90.    This control is display only and normally does not permit any further
  91.    interaction.
  92.  */
  93.   public:
  94.    /**Create a static text control containing the specified string and
  95.        using the specified alignment options.
  96.      */
  97.     PStaticText(
  98.       PInteractor * parent,   /// Interactor into which the control is placed.
  99.       int align = PCanvas::LeftAlign
  100.      /**Alignment for the text in the control. This is an or combination of
  101.          values from the Ref{PCanvas::DrawStringOptions enum}.
  102.        */
  103.     );
  104.     PStaticText(
  105.       PInteractor * parent,   /// Interactor into which the control is placed.
  106.       const PString & name,   /// Text string contents of the static control.
  107.       int align = PCanvas::LeftAlign
  108.      /**Alignment for the text in the control. This is an or combination of
  109.          value from the Ref{Pcanvas::DrawStringOptions enum}.
  110.        */
  111.     );
  112.     /** Create control from interactor layout with the specified control ID. */
  113.     PStaticText(
  114.       PInteractorLayout * parent, /// Interactor into which the box is placed.
  115.       PRESOURCE_ID ctlID,         /// Identifier for the control in the layout.
  116.       const PNotifier & notify,   /// Function to call when changes state.
  117.       void * valuePtr             /// Unused value pointer for static control.
  118.     );
  119.     /** Destroy the static text control. */
  120.     virtual ~PStaticText();
  121.   /**@name Overrides from class PInteractor */
  122.    /**This function is called by the system whenever the control requires
  123.        redrawing.
  124.        
  125.        The bahaviour here is to draw the name of the control with the
  126.        alignment specified. It uses the Ref{PCanvas::DrawString()} function.
  127.      */
  128.     virtual void OnRedraw(
  129.       PCanvas & canvas    /// Canvas used for to draw the static text.
  130.     );
  131.     /**@name New functions for class */
  132.    /**Set the default (minimum) dimensions for the control. This is
  133.        determined by the current font of the control and the text being
  134.        displayed.
  135.      */
  136.     void DefaultDimensions();
  137.    /**Set the current alignment for the static text control. This is an or
  138.        combination of values from the Ref{PCanvas::DrawStringOptions enum}.
  139.      */
  140.     void SetAlignment(
  141.       int newAlign   /// New text alignment options.
  142.     );
  143.    /**Get the current alignment for the static text control.
  144.     
  145.        @return
  146.        alignment of the text in the control.
  147.      */
  148.     int GetAlignment() const;
  149.   protected:
  150.     /** The current alignment used by the control. */
  151.     int alignment;
  152. #ifdef DOC_PLUS_PLUS
  153. };
  154. #endif
  155. // Class declaration continued in platform specific header file ///////////////