1 /***********************************************************************/ 2 /* Open Visualization Data Explorer */ 3 /* (C) Copyright IBM Corp. 1989,1999 */ 4 /* ALL RIGHTS RESERVED */ 5 /* This code licensed under the */ 6 /* "IBM PUBLIC LICENSE - Open Visualization Data Explorer" */ 7 /***********************************************************************/ 8 9 #include <dxconfig.h> 10 #include "../base/defines.h" 11 12 13 14 #ifndef _TickLabelList_h 15 #define _TickLabelList_h 16 17 18 #include "UIComponent.h" 19 #include "List.h" 20 21 // 22 // Class name definition: 23 // 24 #define ClassTickLabelList "TickLabelList" 25 26 extern "C" void TickLabelList_ButtonEH(Widget, XtPointer, XEvent*, Boolean*); 27 extern "C" void TickLabelList_DeleteAllCB(Widget, XtPointer, XtPointer); 28 extern "C" void TickLabelList_AppendCB(Widget, XtPointer, XtPointer); 29 extern "C" void TickLabelList_ResizeTicksCB(Widget, XtPointer, XtPointer); 30 31 extern "C" void TickLabelList_AppendAfterSelCB(Widget, XtPointer, XtPointer); 32 extern "C" void TickLabelList_InsertAboveSelCB(Widget, XtPointer, XtPointer); 33 extern "C" void TickLabelList_DeleteSelCB(Widget, XtPointer, XtPointer); 34 35 extern "C" void TickLabelList_SortUpCB(Widget, XtPointer, XtPointer); 36 extern "C" void TickLabelList_SortDownCB(Widget, XtPointer, XtPointer); 37 38 extern "C" int TickLabelList_SortFunc (const void* e1, const void* e2); 39 40 class TickLabel; 41 class TickLabelList; 42 typedef void (*TickListModifyCB) (TickLabelList*, void*); 43 44 // Used only in the AutoAxesDialog 45 class TickLabelList : public UIComponent 46 { 47 private: 48 49 static boolean ClassInitialized; 50 static String DefaultResources[]; 51 52 char *header; 53 54 Widget header_label; 55 Widget header_button; 56 Widget listRC; 57 58 Widget popupMenu; 59 Widget aasButton; // append after selection 60 Widget iasButton; // insert above selection 61 Widget dsButton; // delete selection 62 Widget ntiButton; // new top item 63 Widget daButton; // delete all 64 #if UI_SHOULD_SORT_TICKS 65 Widget suButton; // sort in ascending order 66 Widget sdButton; // sort in descending order 67 #endif 68 Widget labelLabel; 69 70 List ticks; 71 72 int highest_set_number; 73 74 int dirty; 75 76 double *oldDvals; 77 String oldString; 78 79 static void SelectCB (TickLabel*, void*); 80 TickListModifyCB tlmcb; 81 void *clientData; 82 83 void resizeCallback(); 84 85 protected: 86 friend void TickLabelList_ButtonEH(Widget, XtPointer, XEvent*, Boolean*); 87 friend void TickLabelList_DeleteAllCB(Widget, XtPointer, XtPointer); 88 friend void TickLabelList_AppendCB(Widget, XtPointer, XtPointer); 89 friend void TickLabelList_ResizeTicksCB(Widget, XtPointer, XtPointer); 90 91 friend void TickLabelList_AppendAfterSelCB(Widget, XtPointer, XtPointer); 92 friend void TickLabelList_InsertAboveSelCB(Widget, XtPointer, XtPointer); 93 friend void TickLabelList_DeleteSelCB(Widget, XtPointer, XtPointer); 94 friend void TickLabelList_SortUpCB(Widget, XtPointer, XtPointer); 95 friend void TickLabelList_SortDownCB(Widget, XtPointer, XtPointer); 96 97 friend int TickLabelList_SortFunc (const void* e1, const void* e2); 98 99 void sortList(boolean up); 100 101 static boolean SortUp; 102 103 public: 104 105 void setNumber (int pos, double dval); 106 void setText (int pos, char *str); 107 void setListSize (int size); 108 109 void createList (Widget parent); 110 void createLine (double dval, const char *str, int pos); 111 112 void clear(); 113 114 boolean isModified(); 115 boolean isNumberModified(); 116 boolean isTextModified(); 117 void markClean(); 118 void markNumbersClean(); 119 void markTextClean(); 120 121 double * getTickNumbers(); 122 123 // should be const. ImageNode is misdefined. 124 /*const*/ char * getTickTextString(); getTickCount()125 int getTickCount() { return this->ticks.getSize(); }; 126 127 virtual void initialize(); 128 129 TickLabelList (const char *header, TickListModifyCB, void *); 130 ~TickLabelList (); 131 getClassName()132 const char* getClassName() { return ClassTickLabelList; }; 133 }; 134 135 136 #endif // _TickLabelList_h 137