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

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * caret.h
  3.  *
  4.  * Text editor caret description.
  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: caret.h,v $
  30.  * Revision 1.14  1999/03/10 03:49:51  robertj
  31.  * More documentation adjustments.
  32.  *
  33.  * Revision 1.13  1999/03/09 08:01:47  robertj
  34.  * Changed comments for doc++ support (more to come).
  35.  *
  36.  * Revision 1.12  1998/09/23 06:22:57  robertj
  37.  * Added open source copyright license.
  38.  *
  39.  * Revision 1.11  1995/06/17 11:12:20  robertj
  40.  * Documentation update.
  41.  *
  42.  * Revision 1.10  1995/06/04 12:42:45  robertj
  43.  * Redesign of caret driver functions (made a lot more common).
  44.  *
  45.  * Revision 1.9  1995/03/14 12:41:02  robertj
  46.  * Updated documentation to use HTML codes.
  47.  *
  48.  * Revision 1.8  1994/11/26  03:44:23  robertj
  49.  * Documentation.
  50.  *
  51.  * Revision 1.7  1994/08/23  11:32:52  robertj
  52.  * Oops
  53.  *
  54.  * Revision 1.6  1994/08/22  00:46:48  robertj
  55.  * Added pragma fro GNU C++ compiler.
  56.  *
  57.  * Revision 1.5  1994/06/25  11:55:15  robertj
  58.  * Unix version synchronisation.
  59.  *
  60.  * Revision 1.4  1994/01/03  04:42:23  robertj
  61.  * Mass changes to common container classes and interactors etc etc etc.
  62.  *
  63.  * Revision 1.3  1993/08/21  01:50:33  robertj
  64.  * Made Clone() function optional, default will assert if called.
  65.  *
  66.  * Revision 1.2  1993/07/14  12:49:16  robertj
  67.  * Fixed RCS keywords.
  68.  *
  69.  */
  70. #define _PCARET
  71. #ifdef __GNUC__
  72. #pragma interface
  73. #endif
  74. class PInteractor;
  75. /**A class representing a caret indicator for text input. A caret is used to
  76.    indicate where the current insertion point is in a line of text.
  77.  */
  78. class PCaret : public PContainer
  79. {
  80.   PCONTAINERINFO(PCaret, PContainer);
  81.   public:
  82.    /**Create the default caret. This consists of a single vertical line.
  83.      */
  84.     PCaret();
  85.    /**Create a block caret of the specified dimensions.
  86.      */
  87.     PCaret(
  88.       PDIMENSION dx,  /// Width of the caret block.
  89.       PDIMENSION dy   /// Height of the caret block.
  90.     );
  91.     PCaret(
  92.       const PDim & dim  /// Width & height of the caret block.
  93.     );
  94.     /**@name Overrides from class PObject */
  95.    /**Get whether the caret object is of the same size as the current caret.
  96.        @return
  97.        #EqualTo# if they are of the same size,
  98.        #GreaterThan# otherwise.
  99.      */
  100.     virtual Comparison Compare(
  101.       const PObject & obj  /// Object to compare
  102.     ) const;
  103.   /**@name New functions for class */
  104.    /**Set the dimensions of the caret to the width and height specified.
  105.      */
  106.     void SetDimensions(
  107.       PDIMENSION dx,  /// Width of the caret block.
  108.       PDIMENSION dy   /// Height of the caret block.
  109.     );
  110.     void SetDimensions(
  111.       const PDim & dim  /// Width & height of the caret block.
  112.     );
  113.    /**Activate the caret displaying it in the interactor.
  114.        Note that the user does not normally call this function. It is called
  115.        by the Ref{PInteractor} class when it gains the focus.
  116.      */
  117.     void Activate(
  118.       PInteractor * activator,  /// Interactor activating the caret.
  119.       BOOL display              /// Display caret.
  120.     );
  121.    /**Deactivate the caret removing it from the interactor.
  122.        Note that the user does not normally call this function. It is called
  123.        by the Ref{PInteractor} class when it loses the focus.
  124.      */
  125.     void Deactivate(
  126.       PInteractor * activator  /// Interactor activating the caret.
  127.     );
  128.    /**Show the caret displaying it in the interactor, if it is active.
  129.        Note that the user does not normally call this function. It is called
  130.        by the Ref{PInteractor} class when it shows the caret.
  131.      */
  132.     void Show(
  133.       PInteractor * activator  /// Interactor activating the caret.
  134.     );
  135.    /**Hide the caret removing it from the interactor, if it is active.
  136.        Note that the user does not normally call this function. It is called
  137.        by the Ref{PInteractor} class when it hides the caret.
  138.      */
  139.     void Hide(
  140.       PInteractor * activator  /// Interactor activating the caret.
  141.     );
  142.    /**Set the position of the physical caret, if it is active.
  143.        Note that the user does not normally call this function. It is called
  144.        by the Ref{PInteractor} class for example when the
  145.        Ref{PInteractor::SetCaretPos()} function is called.
  146.      */
  147.     void SetPosition(
  148.       PInteractor * activator  /// Interactor activating the caret.
  149.     );
  150.   protected:
  151.     /**@name Member variables; */
  152.     /** Size of the caret. */
  153.     PDim caretSize;
  154.   private:
  155.     // Overrides from class PContainer
  156.     virtual BOOL SetSize(PINDEX newSize);
  157. #ifdef DOC_PLUS_PLUS
  158. };
  159. #endif
  160. // Class declaration continued in platform specific header file ///////////////