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

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * progress.h
  3.  *
  4.  * Progress bar control for GUI classes.
  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: progress.h,v $
  30.  * Revision 1.4  1999/03/09 08:01:47  robertj
  31.  * Changed comments for doc++ support (more to come).
  32.  *
  33.  * Revision 1.3  1999/02/16 08:08:28  robertj
  34.  * MSVC 6.0 compatibility changes.
  35.  *
  36.  * Revision 1.2  1998/09/23 06:19:45  robertj
  37.  * Added open source copyright license.
  38.  *
  39.  * Revision 1.1  1995/08/12 22:49:49  robertj
  40.  * Initial revision
  41.  *
  42.  */
  43. #ifndef _PPROGRESS_H
  44. #define _PPROGRESS_H
  45. #ifdef __GNUC__
  46. #pragma interface
  47. #endif
  48. /**A bar graph progress meter control.
  49.  */
  50. class PProgressMeter : public PControl
  51. {
  52.   PCLASSINFO(PProgressMeter, PControl);
  53.   public:
  54.   /**@name Construction */
  55.   //@{
  56.     /**Create meter bar.
  57.       This class implements a horizontal bar graph display suitable for showing
  58.       the progress of some lengthy task. The values corresponding to the
  59.       minimum and maximum positions can be set, and the percentage complete can
  60.       be displayed as an option
  61.     */
  62.     PProgressMeter(
  63.       PInteractor * parent, /// parent interactor
  64.       unsigned min = 0,        /// minimum value
  65.       unsigned max = 100, /// maximum value
  66.       BOOL showPercent = FALSE /// if TRUE, percentage complete will be shown
  67.     );
  68.     /** Create control from interactor layout with the specified control ID. */
  69.     PProgressMeter(
  70.       PInteractorLayout * parent, /// Interactor into which the box is placed.
  71.       PRESOURCE_ID ctlID,         /// Identifier for the control in the layout.
  72.       const PNotifier & notify,   /// Function to call when changes state.
  73.       void * valuePtr             /// Unused value pointer for static control.
  74.     );
  75.   //@}
  76.   /**@name Construction */
  77.   //@{
  78.     /**Set the position of the meter. The value will be clamped to the minimum
  79.       and maximum ranges set for the meter. If the update parameter is set to
  80.       TRUE, the meter display will be updated via the ref{PInteractor::Update()}
  81.       function.
  82.     */
  83.     void SetValue(
  84.       unsigned value, /// new value vfor the meter
  85.       BOOL update = TRUE /// If TRUE, update the display with the new value
  86.     );
  87.     /**Get the current meter value.
  88.       @return current meter value.
  89.     */
  90.      unsigned GetValue() const;
  91.     /**Set the minimum meter value.
  92.     */
  93.     void SetMin(
  94.       unsigned value    // New value for minimum position.
  95.     );
  96.    
  97.     /**Get the current minimum meter value.
  98.       @return minimum value.
  99.     */
  100.     unsigned GetMin() const;
  101.    
  102.     /**Set the maximum meter value.
  103.     */
  104.     void SetMax(
  105.       unsigned value    // New value for maximum position.
  106.     );
  107.    
  108.     /**Get the current maximum meter value.
  109.       @return maximum value.
  110.     */
  111.     unsigned GetMax() const;
  112.   //@}
  113.   protected:
  114.   /**@name Overrides from class PInteractor */
  115.   //@{
  116.     /**Redraw the meter using the current value.
  117.     */
  118.     void OnRedraw(
  119.       PCanvas & canvas
  120.     );
  121.   //@}
  122.     /// current minimum value
  123.     unsigned minimum;     
  124.     /// current maximum value
  125.     unsigned maximum;     
  126.     /// current value
  127.     unsigned value;       
  128.     /// if TRUE, display the percentage complete
  129.     BOOL     showPercent; 
  130. };
  131. #endif
  132. // End Of File ///////////////////////////////////////////////////////////////