00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00023 #ifndef __vtkKWMenu_h
00024 #define __vtkKWMenu_h
00025
00026 #include "vtkKWCoreWidget.h"
00027
00028 class vtkKWMenuInternals;
00029
00030 class KWWidgets_EXPORT vtkKWMenu : public vtkKWCoreWidget
00031 {
00032
00033 public:
00034 static vtkKWMenu* New();
00035 vtkTypeRevisionMacro(vtkKWMenu,vtkKWCoreWidget);
00036 void PrintSelf(ostream& os, vtkIndent indent);
00037
00039
00046 virtual int AddCommand(const char *label);
00047 virtual int AddCommand(const char *label,
00048 vtkObject *object, const char *method);
00049 virtual int InsertCommand(int index, const char *label);
00050 virtual int InsertCommand(int index, const char *label,
00051 vtkObject *object, const char *method);
00053
00055
00060 virtual void SetItemCommand(
00061 int index, vtkObject *object, const char *method);
00062 virtual const char* GetItemCommand(int index);
00064
00068 virtual int GetIndexOfCommandItem(vtkObject *object, const char *method);
00069
00071
00074 virtual int AddCheckButton(const char *label);
00075 virtual int AddCheckButton(const char *label,
00076 vtkObject *object, const char *method);
00077 virtual int InsertCheckButton(int index, const char *label);
00078 virtual int InsertCheckButton(int index, const char *label,
00079 vtkObject *object, const char *method);
00081
00083
00089 virtual void SetItemSelectedState(int index, int state);
00090 virtual void SetItemSelectedState(const char *label, int state);
00091 virtual int GetItemSelectedState(int index);
00092 virtual int GetItemSelectedState(const char *label);
00094
00096
00101 virtual void SelectItem(int index);
00102 virtual void SelectItem(const char *label);
00103 virtual void DeselectItem(int index);
00104 virtual void DeselectItem(const char *label);
00106
00108
00114 virtual int AddRadioButton(const char *label);
00115 virtual int AddRadioButton(const char *label,
00116 vtkObject *object, const char *method);
00117 virtual int InsertRadioButton(int index, const char *label);
00118 virtual int InsertRadioButton(int index, const char *label,
00119 vtkObject *object, const char *method);
00121
00123
00130 virtual int AddRadioButtonImage(const char *imgname);
00131 virtual int AddRadioButtonImage(const char *imgname,
00132 vtkObject *object, const char *method);
00133 virtual int InsertRadioButtonImage(int index, const char *imgname);
00134 virtual int InsertRadioButtonImage(int index, const char *imgname,
00135 vtkObject *object, const char *method);
00137
00153 virtual void PutItemInGroup(int index, int index_g);
00154
00156
00171 virtual const char* GetItemGroupName(int index);
00172 virtual void SetItemGroupName(int index, const char *group_name);
00174
00176
00184 virtual void SetItemSelectedValue(int index, const char *value);
00185 virtual const char* GetItemSelectedValue(int index);
00186 virtual void SetItemSelectedValueAsInt(int index, int value);
00187 virtual int GetItemSelectedValueAsInt(int index);
00189
00191
00193 virtual int GetIndexOfItemWithSelectedValue(const char *value);
00194 virtual int GetIndexOfItemWithSelectedValueAsInt(int value);
00196
00198
00202 virtual int SelectItemWithSelectedValue(const char *value);
00203 virtual int SelectItemWithSelectedValueAsInt(int value);
00205
00207
00211 virtual int SelectItemInGroupWithSelectedValue(
00212 const char *group_name, const char *value);
00213 virtual int SelectItemInGroupWithSelectedValueAsInt(
00214 const char *group_name, int value);
00216
00218
00221 virtual int GetIndexOfSelectedItemInGroup(const char *group_name);
00222 virtual int GetIndexOfSelectedItem();
00224
00226
00238 virtual void SetItemDeselectedValue(int index, const char *value);
00239 virtual void SetItemDeselectedValueAsInt(int index, int value);
00240 virtual int GetItemDeselectedValueAsInt(int index);
00241 virtual const char* GetItemDeselectedValue(int index);
00243
00245
00248 virtual int AddSeparator();
00249 virtual int InsertSeparator(int index);
00251
00253
00256 virtual int AddCascade(const char *label, vtkKWMenu *menu);
00257 virtual int InsertCascade(int index, const char *label, vtkKWMenu *menu);
00259
00262 virtual int GetIndexOfCascadeItem(vtkKWMenu *menu);
00263
00265
00266 virtual void SetItemCascade(int index, vtkKWMenu*);
00267 virtual void SetItemCascade(int index, const char *menu_name);
00268 virtual vtkKWMenu* GetItemCascade(int index);
00270
00274 virtual int GetIndexOfItem(const char *label);
00275
00277 virtual int HasItem(const char *label);
00278
00280
00281 enum
00282 {
00283 UnknownItemType = 0,
00284 RadioButtonItemType,
00285 CheckButtonItemType,
00286 CommandItemType,
00287 SeparatorItemType,
00288 CascadeItemType
00289 };
00290
00291 virtual int GetItemType(int index);
00293
00295
00298 virtual int SetItemLabel(int index, const char *label);
00299 virtual const char* GetItemLabel(int index);
00301
00304 virtual void InvokeItem(int index);
00305
00307
00310 virtual void DeleteItem(int index);
00311 virtual void DeleteAllItems();
00313
00315 virtual int GetNumberOfItems();
00316
00318
00320 virtual void SetItemState(int index, int state);
00321 virtual void SetItemStateToDisabled(int index);
00322 virtual void SetItemStateToNormal(int index);
00323 virtual void SetItemState(const char *label, int state);
00324 virtual void SetItemStateToDisabled(const char *label);
00325 virtual void SetItemStateToNormal(const char *label);
00326 virtual int GetItemState(int index);
00327 virtual int GetItemState(const char *label);
00329
00334 virtual void SetState(int state);
00335
00337
00341 virtual void SetItemImage(int index, const char *imgname);
00342 virtual void SetItemImageToPredefinedIcon(int index, int icon_index);
00343 virtual void SetItemImageToIcon(int index, vtkKWIcon *icon);
00345
00347
00351 virtual void SetItemSelectImage(int index, const char *imgname);
00352 virtual void SetItemSelectImageToPredefinedIcon(int index, int icon_index);
00353 virtual void SetItemSelectImageToIcon(int index, vtkKWIcon *icon);
00355
00357
00363 virtual void SetItemCompoundMode(int index, int mode);
00364 virtual int GetItemCompoundMode(int index);
00365 virtual void SetItemCompoundModeToNone(int index);
00366 virtual void SetItemCompoundModeToLeft(int index);
00367 virtual void SetItemCompoundModeToCenter(int index);
00368 virtual void SetItemCompoundModeToRight(int index);
00369 virtual void SetItemCompoundModeToTop(int index);
00370 virtual void SetItemCompoundModeToBottom(int index);
00372
00376 virtual void SetItemMarginVisibility(int index, int flag);
00377
00380 virtual void SetItemIndicatorVisibility(int index, int flag);
00381
00390 virtual void SetItemAccelerator(int index, const char *accelerator);
00391
00393
00410 virtual void SetBindingForItemAccelerator(int index, vtkKWWidget*);
00411 virtual void RemoveBindingForItemAccelerator(int index, vtkKWWidget*);
00413
00415
00420 virtual void SetItemHelpString(int index, const char *help);
00421 virtual const char* GetItemHelpString(int index);
00423
00428 virtual void SetItemUnderline(int index, int underline_index);
00429
00431 virtual void SetItemColumnBreak(int index, int flag);
00432
00434
00462 virtual const char* GetItemVariable(int index);
00463 virtual void SetItemVariable(int index, const char *varname);
00464 virtual void SetItemVariable(
00465 int index, vtkKWObject *object, const char *suffix);
00467
00469
00477 virtual char* CreateItemVariableName(
00478 vtkKWObject *object, const char *suffix);
00480
00482
00488 virtual const char* GetItemVariableValue(const char *varname);
00489 virtual void SetItemVariableValue(const char *varname, const char *value);
00490 virtual int GetItemVariableValueAsInt(const char *varname);
00491 virtual void SetItemVariableValueAsInt(const char *varname, int value);
00493
00495
00497 virtual int GetIndexOfItemWithVariableAndSelectedValue(
00498 const char *varname, const char *value);
00499 virtual int GetIndexOfItemWithVariableAndSelectedValueAsInt(
00500 const char *varname, int value);
00502
00504
00506 virtual void SetTearOff(int val);
00507 vtkGetMacro(TearOff, int);
00508 vtkBooleanMacro(TearOff, int);
00510
00512 virtual void PopUp(int x, int y);
00513
00515
00518 virtual int HasItemOption(int index, const char *option);
00519 virtual const char* GetItemOption(int index, const char *option);
00521
00523
00529 enum
00530 {
00531 RadioButtonItemAddedEvent = 10000,
00532 CheckButtonItemAddedEvent,
00533 CommandItemAddedEvent,
00534 SeparatorItemAddedEvent,
00535 CascadeItemAddedEvent,
00536 MenuItemInvokedEvent
00537 };
00538
00540
00542
00543 virtual void GetBackgroundColor(double *r, double *g, double *b);
00544 virtual double* GetBackgroundColor();
00545 virtual void SetBackgroundColor(double r, double g, double b);
00546 virtual void SetBackgroundColor(double rgb[3])
00547 { this->SetBackgroundColor(rgb[0], rgb[1], rgb[2]); };
00549
00551
00552 virtual void GetForegroundColor(double *r, double *g, double *b);
00553 virtual double* GetForegroundColor();
00554 virtual void SetForegroundColor(double r, double g, double b);
00555 virtual void SetForegroundColor(double rgb[3])
00556 { this->SetForegroundColor(rgb[0], rgb[1], rgb[2]); };
00558
00560
00564 virtual void GetActiveBackgroundColor(double *r, double *g, double *b);
00565 virtual double* GetActiveBackgroundColor();
00566 virtual void SetActiveBackgroundColor(double r, double g, double b);
00567 virtual void SetActiveBackgroundColor(double rgb[3])
00568 { this->SetActiveBackgroundColor(rgb[0], rgb[1], rgb[2]); };
00570
00572
00576 virtual void GetActiveForegroundColor(double *r, double *g, double *b);
00577 virtual double* GetActiveForegroundColor();
00578 virtual void SetActiveForegroundColor(double r, double g, double b);
00579 virtual void SetActiveForegroundColor(double rgb[3])
00580 { this->SetActiveForegroundColor(rgb[0], rgb[1], rgb[2]); };
00582
00584
00585 virtual void GetDisabledForegroundColor(double *r, double *g, double *b);
00586 virtual double* GetDisabledForegroundColor();
00587 virtual void SetDisabledForegroundColor(double r, double g, double b);
00588 virtual void SetDisabledForegroundColor(double rgb[3])
00589 { this->SetDisabledForegroundColor(rgb[0], rgb[1], rgb[2]); };
00591
00593
00594 virtual void GetSelectColor(double *r, double *g, double *b);
00595 virtual double* GetSelectColor();
00596 virtual void SetSelectColor(double r, double g, double b);
00597 virtual void SetSelectColor(double rgb[3])
00598 { this->SetSelectColor(rgb[0], rgb[1], rgb[2]); };
00600
00602
00605 virtual void SetBorderWidth(int);
00606 virtual int GetBorderWidth();
00608
00610
00613 virtual void SetRelief(int);
00614 virtual int GetRelief();
00615 virtual void SetReliefToRaised();
00616 virtual void SetReliefToSunken();
00617 virtual void SetReliefToFlat();
00618 virtual void SetReliefToRidge();
00619 virtual void SetReliefToSolid();
00620 virtual void SetReliefToGroove();
00622
00624
00635 virtual void SetFont(const char *font);
00636 virtual const char* GetFont();
00638
00644 virtual void SetEnabled(int);
00645
00654 virtual void UpdateEnableState();
00655
00657
00658 virtual void DisplayHelpCallback(const char *widget_name);
00659 virtual void CommandInvokedCallback(const char *command);
00661
00662
00663
00664 protected:
00665 vtkKWMenu();
00666 ~vtkKWMenu();
00667
00669 virtual void CreateWidget();
00670
00672
00674 virtual int AddGeneric(const char *type, const char *label,
00675 const char* extra);
00676 virtual int InsertGeneric(int index, const char *type, const char *label,
00677 const char* extra);
00679
00681
00690 virtual int GetLabelWithoutUnderline(
00691 const char *label, char **clean_label, int *underline_index);
00693
00694 int TearOff;
00695
00711 virtual int GetIndexOfActiveItem(const char *widget_name);
00712
00715 const char* GetSuffixOutOfCreatedItemVariableName(const char *varname);
00716
00718
00719 virtual void ConvertItemAcceleratorToKeyBinding(
00720 const char *accelerator, char **keybinding);
00722
00724 vtkKWMenuInternals *Internals;
00725
00726
00727
00728 private:
00729
00730 vtkKWMenu(const vtkKWMenu&);
00731 void operator=(const vtkKWMenu&);
00732 };
00733
00734 #endif
00735