KWWidgets
vtkKWTkcon.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Module: $RCSfile: vtkKWTkcon.h,v $
4 
5  Copyright (c) Kitware, Inc.
6  All rights reserved.
7  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notice for more information.
12 
13 =========================================================================*/
14 // .NAME vtkKWTkcon - a wrapper around a tkcon console.
15 // .SECTION Description
16 // A widget to interactively execute Tcl commands using a tkcon console.
17 // .SECTION Thanks
18 // This work is part of the National Alliance for Medical Image
19 // Computing (NAMIC), funded by the National Institutes of Health
20 // through the NIH Roadmap for Medical Research, Grant U54 EB005149.
21 // Information on the National Centers for Biomedical Computing
22 // can be obtained from http://nihroadmap.nih.gov/bioinformatics.
23 
24 #ifndef __vtkKWTkcon_h
25 #define __vtkKWTkcon_h
26 
27 #include "vtkKWTclInteractor.h"
28 
29 class vtkKWTkconInternals;
30 
32 {
33 public:
34  static vtkKWTkcon* New();
35  vtkTypeRevisionMacro(vtkKWTkcon, vtkKWTclInteractor);
36  void PrintSelf(ostream& os, vtkIndent indent);
37 
38  // Description:
39  // Append text to the display window.
40  virtual void AppendText(const char* text);
41 
42  // Description:
43  // Set focus to this widget.
44  // Override the superclass to focus on the console.
45  virtual void Focus();
46 
47  // Description:
48  // Specifies the font to use when drawing text inside the widget.
49  // You can use predefined font names (e.g. 'system'), or you can specify
50  // a set of font attributes with a platform-independent name, for example,
51  // 'times 12 bold'. In this example, the font is specified with a three
52  // element list: the first element is the font family, the second is the
53  // size, the third is a list of style parameters (normal, bold, roman,
54  // italic, underline, overstrike). Example: 'times 12 {bold italic}'.
55  // The Times, Courier and Helvetica font families are guaranteed to exist
56  // and will be matched to the corresponding (closest) font on your system.
57  // If you are familiar with the X font names specification, you can also
58  // describe the font that way (say, '*times-medium-r-*-*-12*').
59  virtual void SetFont(const char *font);
60  virtual const char* GetFont();
61 
62  // Description:
63  // Update the "enable" state of the object and its internal parts.
64  // Depending on different Ivars (this->Enabled, the application's
65  // Limited Edition Mode, etc.), the "enable" state of the object is updated
66  // and propagated to its internal parts/subwidgets. This will, for example,
67  // enable/disable parts of the widget UI, enable/disable the visibility
68  // of 3D widgets, etc.
69  virtual void UpdateEnableState();
70 
71 protected:
72  vtkKWTkcon();
73  ~vtkKWTkcon();
74 
75  // Description:
76  // Create the widget.
77  virtual void CreateWidget();
78 
79  // PIMPL Encapsulation for STL containers
80  //BTX
81  vtkKWTkconInternals *Internals;
82  //ETX
83 
84 private:
85  vtkKWTkcon(const vtkKWTkcon&); // Not implemented
86  void operator=(const vtkKWTkcon&); // Not implemented
87 };
88 
89 #endif
90