summaryrefslogtreecommitdiff
path: root/inc/Message_ProgressIndicator.hxx
blob: af9990a1a6f2cfde3c84ba284ca92b3d07a6e47c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _Message_ProgressIndicator_HeaderFile
#define _Message_ProgressIndicator_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_Message_ProgressIndicator_HeaderFile
#include <Handle_Message_ProgressIndicator.hxx>
#endif

#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Message_SequenceOfProgressScale_HeaderFile
#include <Message_SequenceOfProgressScale.hxx>
#endif
#ifndef _MMgt_TShared_HeaderFile
#include <MMgt_TShared.hxx>
#endif
#ifndef _Standard_CString_HeaderFile
#include <Standard_CString.hxx>
#endif
#ifndef _Handle_TCollection_HAsciiString_HeaderFile
#include <Handle_TCollection_HAsciiString.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
class TCollection_HAsciiString;
class Message_ProgressScale;


//! Defines abstract interface from program to the "user". <br>
//!          That includes progress indication and user break mechanisms <br>
class Message_ProgressIndicator : public MMgt_TShared {

public:

  //! Drops all scopes and sets scale from 0 to 100, step 1 <br>
//!          This scale has name "Step" <br>
  Standard_EXPORT   virtual  void Reset() ;
  
        void SetName(const Standard_CString name) ;
  //! Set (optional) name for scale <br>
        void SetName(const Handle(TCollection_HAsciiString)& name) ;
  //! Set range for current scale <br>
        void SetRange(const Standard_Real min,const Standard_Real max) ;
  //! Set step for current scale <br>
        void SetStep(const Standard_Real step) ;
  //! Set or drop infinite mode for the current scale <br>
        void SetInfinite(const Standard_Boolean isInf = Standard_True) ;
  
        void SetScale(const Standard_CString name,const Standard_Real min,const Standard_Real max,const Standard_Real step,const Standard_Boolean isInf = Standard_False) ;
  //! Set all parameters for current scale <br>
  Standard_EXPORT     void SetScale(const Standard_Real min,const Standard_Real max,const Standard_Real step,const Standard_Boolean isInf = Standard_False) ;
  //! Returns all parameters for current scale <br>
  Standard_EXPORT     void GetScale(Standard_Real& min,Standard_Real& max,Standard_Real& step,Standard_Boolean& isInf) const;
  
  Standard_EXPORT     void SetValue(const Standard_Real val) ;
  //! Set and get progress value at current scale <br>
//!          If the value to be set is more than currently set one, or out <br>
//!          of range for the current scale, it is limited by that range <br>
  Standard_EXPORT     Standard_Real GetValue() const;
  
        void Increment() ;
  //! Increment the progress value by the default of specified step <br>
        void Increment(const Standard_Real step) ;
  
        Standard_Boolean NewScope(const Standard_CString name = 0) ;
  
        Standard_Boolean NewScope(const Handle(TCollection_HAsciiString)& name) ;
  
        Standard_Boolean NewScope(const Standard_Real span,const Standard_CString name = 0) ;
  //! Creates new scope on a part of a current scale from current <br>
//!          position with span either equal to default step, or specified <br>
//!          The scale for the new scope will have specified name and <br>
//!          ranged from 0 to 100 with step 1 <br>
//!          Returns False if something is wrong in arguments or in current <br>
//!          position of progress indicator; scope is opened anyway <br>
  Standard_EXPORT     Standard_Boolean NewScope(const Standard_Real span,const Handle(TCollection_HAsciiString)& name) ;
  //! Close the current scope and thus return to previous scale <br>
//!          Updates position to be at the end of the closing scope <br>
//!          Returns False if no scope is opened <br>
  Standard_EXPORT     Standard_Boolean EndScope() ;
  
        Standard_Boolean NextScope(const Standard_CString name = 0) ;
  //! Optimized version of { return EndScope() && NewScope(); } <br>
  Standard_EXPORT     Standard_Boolean NextScope(const Standard_Real span,const Standard_CString name = 0) ;
  //! Should return True if user has send a break signal. <br>
//!          Default implementation returns False. <br>
  Standard_EXPORT   virtual  Standard_Boolean UserBreak() ;
  //! Update presentation of the progress indicator <br>
//!          Called when progress position is changed <br>
//!          Flag force is intended for forcing update in case if it is <br>
//!          optimized; all internal calls from ProgressIndicator are <br>
//!          done with this flag equal to False <br>
  Standard_EXPORT   virtual  Standard_Boolean Show(const Standard_Boolean force = Standard_True)  = 0;
  //! Returns total progress position on the basic scale <br>
//!          ranged from 0. to 1. <br>
        Standard_Real GetPosition() const;
  //! Returns current number of opened scopes <br>
//!          This number is always >=1 as top-level scale is always present <br>
  Standard_EXPORT     Standard_Integer GetNbScopes() const;
  //! Returns data for scale of index-th scope <br>
//!          The first scope is current one, the last is the top-level one <br>
  Standard_EXPORT    const Message_ProgressScale& GetScope(const Standard_Integer index) const;




  DEFINE_STANDARD_RTTI(Message_ProgressIndicator)

protected:

  //! Constructor, just calls own Reset() (not yet redefined) <br>
  Standard_EXPORT   Message_ProgressIndicator();



private: 


Standard_Real myPosition;
Message_SequenceOfProgressScale myScopes;


};


#include <Message_ProgressIndicator.lxx>



// other Inline functions and methods (like "C++: function call" methods)


#endif