00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00036 #ifndef __vtkKWLogWidget_h
00037 #define __vtkKWLogWidget_h
00038
00039 #include "vtkKWCompositeWidget.h"
00040
00041 class vtkKWMultiColumnListWithScrollbars;
00042 class vtkKWLogWidgetInternals;
00043 class vtkKWToolbar;
00044 class vtkKWLoadSaveButton;
00045 class vtkKWPushButton;
00046 class vtkKWTextWithScrollbars;
00047 class vtkKWFrameWithLabel;
00048
00049 class KWWidgets_EXPORT vtkKWLogWidget : public vtkKWCompositeWidget
00050 {
00051
00052 public:
00053 static vtkKWLogWidget* New();
00054 vtkTypeRevisionMacro(vtkKWLogWidget,vtkKWCompositeWidget);
00055 void PrintSelf(ostream& os, vtkIndent indent);
00056
00058
00060 virtual int AddErrorRecord(const char *description);
00061 virtual int AddWarningRecord(const char *description);
00062 virtual int AddInformationRecord(const char *description);
00063 virtual int AddDebugRecord(const char *description);
00065
00067 virtual int GetNumberOfRecords();
00068
00070 virtual void RemoveAllRecords();
00071
00073
00074 virtual void SetMaximumNumberOfRecords(int);
00075 vtkGetMacro(MaximumNumberOfRecords, int);
00077
00079
00081 virtual int WriteRecordsToStream(ostream& os);
00082 virtual int WriteRecordsToFile(const char *filename);
00084
00086 virtual int EmailRecords(const char *recipient);
00087
00091 virtual char *GetFormatTimeStringCallback(const char *celltext);
00092
00094 virtual void WriteRecordsToFileCallback();
00095
00097
00098 virtual void RemoveSelectedRecordsCallback();
00099 virtual void RemoveAllRecordsCallback();
00100 virtual void EmailRecordsCallback();
00102
00104 virtual void SelectionChangedCallback();
00105
00107
00113 virtual void UpdateEnableState();
00114 virtual void Update();
00116
00118
00120 enum
00121 {
00122 RecordsClearedEvent = 15000
00123 };
00124
00126
00127
00128
00129 protected:
00130 vtkKWLogWidget();
00131 ~vtkKWLogWidget();
00132
00134 virtual void CreateWidget();
00135
00137
00138 enum
00139 {
00140 ErrorType = 0,
00141 WarningType,
00142 InformationType,
00143 DebugType
00144 };
00145
00147
00149 virtual void CreateRecordList();
00150
00152 virtual unsigned int GetCurrentTimeInSeconds();
00153
00155 virtual void RemoveInternalRecord(int record_id);
00156
00158 virtual const char* GetRecordDescription(int record_id);
00159
00162 virtual int AddRecord(const char *description, int type);
00163
00167 virtual void PruneRecords();
00168
00171 virtual void RemoveRowWithRecordId(int record_id);
00172
00174 virtual int GetIndexOfRowWithRecordId(int record_id);
00175
00177
00178 vtkKWLogWidgetInternals *Internals;
00179 vtkKWMultiColumnListWithScrollbars *RecordList;
00180 vtkKWToolbar *Toolbar;
00181 vtkKWLoadSaveButton *SaveButton;
00182 vtkKWPushButton *RemoveSelectedButton;
00183 vtkKWPushButton *RemoveAllButton;
00184 vtkKWPushButton *EmailButton;
00185 vtkKWFrameWithLabel *DescriptionFrame;
00186 vtkKWTextWithScrollbars *DescriptionText;
00188
00189 int MaximumNumberOfRecords;
00190
00191
00192
00193 private:
00194
00195 static vtkIdType IdCounter;
00196
00197 vtkKWLogWidget(const vtkKWLogWidget&);
00198 void operator=(const vtkKWLogWidget&);
00199 };
00200 #endif
00201