00001 /*========================================================================= 00002 00003 Module: $RCSfile: vtkKWWidgetWithLabelSubclass.h.in,v $ 00004 00005 Copyright (c) Kitware, Inc. 00006 All rights reserved. 00007 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notice for more information. 00012 00013 =========================================================================*/ 00014 // .NAME vtkKWRadioButtonSetWithLabel - a vtkKWRadioButtonSet associated to a vtkKWLabel 00015 // .SECTION Description 00016 // This class creates a composite widget associating a vtkKWRadioButtonSet to a 00017 // vtkKWLabel. 00018 // As a subclass of vtkKWWidgetWithLabel, it inherits a label and methods to 00019 // set its position and visibility. Note that the default label position 00020 // implemented in this class is on the left of the vtkKWRadioButtonSet, but 00021 // specific positions listed in vtkKWWidgetWithLabel are supported as well. 00022 // @ingroup kwwidgets_autogenerated_widget_with_label_group 00023 // .SECTION Note 00024 // This class and the corresponding code were 00025 // \subpage kwwidgets_autogenerated_page "generated automatically" by 00026 // instantiating the <tt>Templates/vtkKWWidgetWithLabelSubclass.h.in</tt> 00027 // and <tt>Templates/vtkKWWidgetWithLabelSubclass.cxx.in</tt> files for 00028 // the type vtkKWRadioButtonSet. Classes related to the same template can be found 00029 // in the \ref kwwidgets_autogenerated_widget_with_label_group section. 00030 // .SECTION See Also 00031 // vtkKWWidgetWithLabel vtkKWRadioButtonSet 00032 00033 #ifndef __vtkKWRadioButtonSetWithLabel_h 00034 #define __vtkKWRadioButtonSetWithLabel_h 00035 00036 #include "vtkKWWidgetWithLabel.h" 00037 00038 class vtkKWRadioButtonSet; 00039 00040 class KWWidgets_EXPORT vtkKWRadioButtonSetWithLabel : public vtkKWWidgetWithLabel 00041 { 00042 public: 00043 static vtkKWRadioButtonSetWithLabel* New(); 00044 vtkTypeRevisionMacro(vtkKWRadioButtonSetWithLabel, vtkKWWidgetWithLabel); 00045 void PrintSelf(ostream& os, vtkIndent indent); 00046 00047 // Description: 00048 // Get the vtkKWRadioButtonSet that is being labeled 00049 virtual vtkKWRadioButtonSet* GetWidget(); 00050 00051 // Description: 00052 // Set the layout to allow the widget that is labeled to expand 00053 // horizontally automatically 00054 virtual void SetExpandWidget(int); 00055 vtkBooleanMacro(ExpandWidget, int); 00056 vtkGetMacro(ExpandWidget, int); 00057 00058 // Description: 00059 // Set the string that enables balloon help for this widget. 00060 // Override to pass down to children. 00061 virtual void SetBalloonHelpString(const char *str); 00062 00063 // Description: 00064 // Update the "enable" state of the object and its internal parts. 00065 // Depending on different Ivars (this->Enabled, the application's 00066 // Limited Edition Mode, etc.), the "enable" state of the object is updated 00067 // and propagated to its internal parts/subwidgets. This will, for example, 00068 // enable/disable parts of the widget UI, enable/disable the visibility 00069 // of 3D widgets, etc. 00070 virtual void UpdateEnableState(); 00071 00072 protected: 00073 vtkKWRadioButtonSetWithLabel(); 00074 ~vtkKWRadioButtonSetWithLabel(); 00075 00076 // Description: 00077 // Create the widget 00078 virtual void CreateWidget(); 00079 00080 // Description: 00081 // Expand the widget that is being labeled 00082 int ExpandWidget; 00083 00084 // Description: 00085 // Pack or repack the widget. To be implemented by subclasses. 00086 virtual void Pack(); 00087 00088 // Description: 00089 // Internal widget 00090 vtkKWRadioButtonSet *Widget; 00091 00092 private: 00093 00094 vtkKWRadioButtonSetWithLabel(const vtkKWRadioButtonSetWithLabel&); // Not implemented 00095 void operator=(const vtkKWRadioButtonSetWithLabel&); // Not implemented 00096 }; 00097 00098 #endif