00001 /*========================================================================= 00002 00003 Module: $RCSfile: vtkKWKeyBindingsWidget.h,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 vtkKWKeyBindingsWidget - a key bindings widget. 00015 // .SECTION Description 00016 // This widget can be used to display key bindings stored in a key bindings 00017 // manager class (vtkKWKeyBindingsManager). 00018 // .SECTION See Also 00019 // vtkKWKeyBindingsManager 00020 00021 #ifndef __vtkKWKeyBindingsWidget_h 00022 #define __vtkKWKeyBindingsWidget_h 00023 00024 #include "vtkKWCompositeWidget.h" 00025 00026 class vtkKWMultiColumnListWithScrollbars; 00027 class vtkKWKeyBindingsWidgetInternals; 00028 class vtkKWToolbar; 00029 class vtkKWPushButton; 00030 class vtkKWLoadSaveButton; 00031 class vtkKWTextWithScrollbars; 00032 class vtkKWFrameWithLabel; 00033 class vtkKWKeyBindingsManager; 00034 00035 class KWWidgets_EXPORT vtkKWKeyBindingsWidget : public vtkKWCompositeWidget 00036 { 00037 public: 00038 static vtkKWKeyBindingsWidget* New(); 00039 vtkTypeRevisionMacro(vtkKWKeyBindingsWidget,vtkKWCompositeWidget); 00040 void PrintSelf(ostream& os, vtkIndent indent); 00041 00042 // Description: 00043 // Set/Get the key bindings manager. 00044 vtkGetObjectMacro(KeyBindingsManager,vtkKWKeyBindingsManager); 00045 virtual void SetKeyBindingsManager(vtkKWKeyBindingsManager *mgr); 00046 00047 // Description: 00048 // Write all keybindings to a stream or text file (tab delimited). 00049 // Return 1 on success, 0 otherwise 00050 virtual int WriteKeyBindingsToStream(ostream& os); 00051 virtual int WriteKeyBindingsToFile(const char *filename); 00052 00053 // Description: 00054 // Update the "enable" state of the object and its internal parts. 00055 // Depending on different Ivars (this->Enabled, the application's 00056 // Limited Edition Mode, etc.), the "enable" state of the object 00057 // is updated and propagated to its internal parts/subwidgets. 00058 // This will, for example, enable/disable parts of the widget UI, 00059 // enable/disable the visibility of 3D widgets, etc. 00060 virtual void UpdateEnableState(); 00061 virtual void Update(); 00062 00063 // Description: 00064 // Callback, do NOT use. 00065 virtual void SelectionChangedCallback(); 00066 virtual void WriteKeyBindingsToFileCallback(); 00067 00068 protected: 00069 vtkKWKeyBindingsWidget(); 00070 ~vtkKWKeyBindingsWidget(); 00071 00072 // Description: 00073 // Create the widget. 00074 virtual void CreateWidget(); 00075 00076 // Description: 00077 // Member variables 00078 vtkKWKeyBindingsWidgetInternals *Internals; 00079 vtkKWMultiColumnListWithScrollbars *KeyBindingsList; 00080 vtkKWToolbar *Toolbar; 00081 vtkKWLoadSaveButton *SaveButton; 00082 vtkKWFrameWithLabel *DetailFrame; 00083 vtkKWTextWithScrollbars *DetailText; 00084 vtkKWKeyBindingsManager *KeyBindingsManager; 00085 00086 private: 00087 00088 vtkKWKeyBindingsWidget(const vtkKWKeyBindingsWidget&); // Not implemented 00089 void operator=(const vtkKWKeyBindingsWidget&); // Not implemented 00090 }; 00091 #endif