File: vtkKWProgressCommand.h

package info (click to toggle)
volview 3.4-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 25,204 kB
  • sloc: cpp: 132,585; ansic: 11,612; tcl: 236; sh: 64; makefile: 25; xml: 8
file content (115 lines) | stat: -rw-r--r-- 3,823 bytes parent folder | download
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
/*=========================================================================

  Copyright (c) Kitware, Inc.
  All rights reserved.
  See Copyright.txt or http://www.kitware.com/VolViewCopyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notice for more information.

=========================================================================*/
// .NAME vtkKWProgressCommand - a progress callback
// .SECTION Description
// This class can be used on the Start, End, and Progress events of
// a process object to update the status text and progress gauge on
// the window.

#ifndef __vtkKWProgressCommand_h
#define __vtkKWProgressCommand_h

#include "vtkCommand.h"

class vtkKWWindowBase;

class VTK_EXPORT vtkKWProgressCommand : public vtkCommand
{
public:
  static vtkKWProgressCommand *New() {return new vtkKWProgressCommand;};
  
  void Execute(vtkObject *caller, unsigned long event, void *callData);

  // Description:
  // Set the window this progress command will be attached to.
  // It will be used to retrieve GUI elements like a progress gauge 
  // for example.
  void SetWindow(vtkKWWindowBase *Window);

  // Description:
  // Set start/end message. 
  // As a convenience, if EndMessage is NULL, it is assigned to
  // StartMessage + " -- Done" when StartMessage is set.
  void SetStartMessage(const char *message);
  void SetEndMessage(const char *message);

  // Description:
  // Set/Get if the start/end message should be retrieved from the 
  // calldata pointer associated to the event. Default is OFF, see
  // SetStartMessage and SetEndMessage too.
  void SetRetrieveStartMessageFromCallData(int v);
  int GetRetrieveStartMessageFromCallData();
  void RetrieveStartMessageFromCallDataOn() 
    { this->SetRetrieveStartMessageFromCallData(1); };
  void RetrieveStartMessageFromCallDataOff() 
    { this->SetRetrieveStartMessageFromCallData(0); };
  void SetRetrieveEndMessageFromCallData(int v);
  int GetRetrieveEndMessageFromCallData();
  void RetrieveEndMessageFromCallDataOn() 
    { this->SetRetrieveEndMessageFromCallData(1); };
  void RetrieveEndMessageFromCallDataOff() 
    { this->SetRetrieveEndMessageFromCallData(0); };

  // Description:
  // Set/Get start/progress/event to listen to.
  // Default to vtkCommand's StartEvent, EndEvent, ProgressEvent
  void SetStartEvent(unsigned long event);
  void SetEndEvent(unsigned long event);
  void SetProgressEvent(unsigned long event);
  unsigned long GetStartEvent();
  unsigned long GetEndEvent();
  unsigned long GetProgressEvent();

  // Description:
  // Set the way the progress value is retrieved. Either from:
  // - the vtkProcessObject's GetProgress() method (default), or 
  // - the calldata (cast to a double)
  enum 
  {
    GET_PROGRESS     = 0,
    CALLDATA         = 1
  };
  void SetRetrieveProgressMethod(int value);
  int GetRetrieveProgressMethod();
  void SetRetrieveProgressMethodToGetProgress()
    { this->SetRetrieveProgressMethod(vtkKWProgressCommand::GET_PROGRESS); };
  void SetRetrieveProgressMethodToCallData()
    { this->SetRetrieveProgressMethod(vtkKWProgressCommand::CALLDATA); };

protected:
  vtkKWProgressCommand();
  ~vtkKWProgressCommand();
  
  vtkKWWindowBase   *Window;

  char          *StartMessage;
  char          *EndMessage;

  unsigned long StartEvent;
  unsigned long EndEvent;
  unsigned long ProgressEvent;

  unsigned long StartClock;

  int           RetrieveProgressMethod;
  int           RetrieveStartMessageFromCallData;
  int           RetrieveEndMessageFromCallData;

private:
  vtkKWProgressCommand(const vtkKWProgressCommand&); // Not implemented
  void operator=(const vtkKWProgressCommand&); // Not implemented
};


#endif