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

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * meditbox.h,
  3.  *
  4.  * Multi-line edit box.
  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: meditbox.h,v $
  30.  * Revision 1.17  1999/03/10 03:49:52  robertj
  31.  * More documentation adjustments.
  32.  *
  33.  * Revision 1.16  1999/03/09 08:01:48  robertj
  34.  * Changed comments for doc++ support (more to come).
  35.  *
  36.  * Revision 1.15  1999/02/16 08:08:45  robertj
  37.  * MSVC 6.0 compatibility changes.
  38.  *
  39.  * Revision 1.14  1998/09/23 06:24:17  robertj
  40.  * Added open source copyright license.
  41.  *
  42.  * Revision 1.13  1995/06/04 08:49:10  robertj
  43.  * Removed redundent destructor.
  44.  *
  45.  * Revision 1.12  1995/04/22 00:39:16  robertj
  46.  * Added common construct code.
  47.  *
  48.  * Revision 1.11  1995/03/14 12:41:45  robertj
  49.  * Updated documentation to use HTML codes.
  50.  *
  51.  * Revision 1.10  1995/01/03  09:36:14  robertj
  52.  * Documentation.
  53.  *
  54.  * Revision 1.9  1994/10/30  11:46:49  robertj
  55.  * Changed mechanism for doing notification callback functions.
  56.  *
  57.  * Revision 1.8  1994/08/23  11:32:52  robertj
  58.  * Oops
  59.  *
  60.  * Revision 1.7  1994/08/22  00:46:48  robertj
  61.  * Added pragma fro GNU C++ compiler.
  62.  *
  63.  * Revision 1.6  1994/03/07  07:38:19  robertj
  64.  * Major enhancementsacross the board.
  65.  *
  66.  * Revision 1.5  1994/01/03  04:42:23  robertj
  67.  * Mass changes to common container classes and interactors etc etc etc.
  68.  *
  69.  * Revision 1.4  1993/09/27  16:35:25  robertj
  70.  * Removed special constructor for dialog resource loading.
  71.  *
  72.  * Revision 1.3  1993/08/21  01:50:33  robertj
  73.  * Made Clone() function optional, default will assert if called.
  74.  *
  75.  * Revision 1.2  1993/07/14  12:49:16  robertj
  76.  * Fixed RCS keywords.
  77.  *
  78.  */
  79. #define _PMULTILINEEDITBOX
  80. #ifdef __GNUC__
  81. #pragma interface
  82. #endif
  83. /**This control is a text editing box that allows multiple lines to be entered.
  84.    The usual capabilities for editing text are available, though the exact
  85.    features are platform dependent.
  86.  */
  87. class PMultiLineEditBox : public PEditBox
  88. {
  89.   PCLASSINFO(PMultiLineEditBox, PEditBox);
  90.   public:
  91.     /** Create a multi-line edit box control. */
  92.     PMultiLineEditBox(
  93.       PInteractor * parent  /// Interactor into which the control is placed.
  94.     );
  95.     /** Create control from interactor layout with the specified control ID. */
  96.     PMultiLineEditBox(
  97.       PInteractorLayout * parent, /// Interactor into which the box is placed.
  98.       PRESOURCE_ID ctlID,         /// Identifier for the control in the layout.
  99.       const PNotifier & notify,   /// Function to call when changes state.
  100.       PString * valuePtr          /// Variable to change to the editor value.
  101.     );
  102.   /**@name New functions for class */
  103.    /**Get the text of the line specified in the control. If the line number
  104.        requested is beyond all lines in the control, then an empty string is
  105.        returned.
  106.        @return
  107.        string containing the specified line.
  108.      */
  109.     PINDEX GetLineCount();
  110.     /** Return the number of lines of text in the edit box. */
  111.     PString GetLine(
  112.       PINDEX linenum   /// Line number to get.
  113.     );
  114.    /**Determine the line number (first line zero) given an index into the
  115.        character array buffer of all lines in the edit box.
  116.        
  117.        @return
  118.        line number for character offset.
  119.      */
  120.     PINDEX GetLineFromOffset(
  121.       PINDEX offset   /// Character offset into text to find line number.
  122.     );
  123.    /**Determine the offset index into the character array buffer of all the
  124.        text in the edit box that is the start of the specified line number.
  125.        
  126.        @return
  127.        offset for line number.
  128.      */
  129.     PINDEX GetOffsetFromLine(
  130.       PINDEX linenum   /// Line number to find offset of.
  131.     );
  132.   private:
  133.     void Construct();
  134.       // Common contructor code.
  135. #ifdef DOC_PLUS_PLUS
  136. };
  137. #endif
  138. // Class declaration continued in platform specific header file ///////////////