SUMO - Simulation of Urban MObility
MFXEditableTable.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2004-2017 German Aerospace Center (DLR) and others.
4 /****************************************************************************/
5 //
6 // This program and the accompanying materials
7 // are made available under the terms of the Eclipse Public License v2.0
8 // which accompanies this distribution, and is available at
9 // http://www.eclipse.org/legal/epl-v20.html
10 //
11 /****************************************************************************/
17 // missing_desc
18 /****************************************************************************/
19 #ifndef MFXEditableTable_h
20 #define MFXEditableTable_h
21 
22 
23 // ===========================================================================
24 // included modules
25 // ===========================================================================
26 #ifdef _MSC_VER
27 #include <windows_config.h>
28 #else
29 #include <config.h>
30 #endif
31 
32 #include <fx.h>
33 #include <set>
34 
36  FXTableItem* item;
37  int row;
38  int col;
39  bool updateOnly;
40 };
41 
42 enum {
43  EDITTABLE_NEXTROW = 0x02000000
44 };
45 
46 
47 class MFXEditableTable : public FXTable {
48  FXDECLARE(MFXEditableTable)
49 public:
50  enum {
51  ID_LABELEDIT = FXTable::ID_LAST,
56  ID_LAST
57  };
58  MFXEditableTable(FXComposite* p, FXObject* tgt = NULL, FXSelector sel = 0, FXuint opts = 0, FXint x = 0, FXint y = 0, FXint w = 0, FXint h = 0, FXint pl = DEFAULT_MARGIN, FXint pr = DEFAULT_MARGIN, FXint pt = DEFAULT_MARGIN, FXint pb = DEFAULT_MARGIN);
60 
61 public:
62  long onLeftBtnPress(FXObject* sender, FXSelector sel, void* ptr);
63  long onLeftBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
64  long onLeftBtnClicked(FXObject* sender, FXSelector sel, void* ptr);
65 
66  virtual void editItem(FXTableItem* item, FXint how);
67  virtual void editEnd();
68  long onEditEnd(FXObject*, FXSelector, void*);
69  virtual void editCancel();
70  long onEditKeyPress(FXObject*, FXSelector, void* ptr);
71  long onKeyRelease(FXObject* sender, FXSelector sel, void* ptr);
72  long onEditFocusOut(FXObject*, FXSelector, void*);
73 // long onTipTimer(FXObject* sender, FXSelector sel, void* ptr);
74  long onRightBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
75 
76 
77  long onHScrollerChanged(FXObject* o, FXSelector s, void* d);
78  long onVScrollerChanged(FXObject* o, FXSelector s, void* d);
79  long onHScrollerDragged(FXObject* o, FXSelector s, void* d);
80  long onVScrollerDragged(FXObject* o, FXSelector s, void* d);
81 
82  long onAutoScroll(FXObject* o, FXSelector s, void* d);
83  long onUngrabbed(FXObject* o, FXSelector s, void* d);
84  long onRightBtnPress(FXObject* o, FXSelector s, void* d);
85  long onTabKeyPress(FXObject* o, FXSelector s, void* d);
86  long onTabKeyRelease(FXObject* o, FXSelector s, void* d);
87  long onFocusIn(FXObject* o, FXSelector s, void* d);
88  long onFocusOut(FXObject* o, FXSelector s, void* d);
89  long onSelectionLost(FXObject* o, FXSelector s, void* d);
90  long onSelectionGained(FXObject* o, FXSelector s, void* d);
91  long onSelectionRequest(FXObject* o, FXSelector s, void* d);
92  long onClipboardLost(FXObject* o, FXSelector s, void* d);
93  long onClipboardGained(FXObject* o, FXSelector s, void* d);
94  long onClipboardRequest(FXObject* o, FXSelector s, void* d);
95  long onDoubleClicked(FXObject* o, FXSelector s, void* d);
96  long onTripleClicked(FXObject* o, FXSelector s, void* d);
97  long onCommand(FXObject* o, FXSelector s, void* d);
98  long onUpdHorzGrid(FXObject* o, FXSelector s, void* d);
99  long onUpdVertGrid(FXObject* o, FXSelector s, void* d);
100  long onCmdHorzGrid(FXObject* o, FXSelector s, void* d);
101  long onCmdVertGrid(FXObject* o, FXSelector s, void* d);
102  long onCmdDeleteColumn(FXObject* o, FXSelector s, void* d);
103  long onUpdDeleteColumn(FXObject* o, FXSelector s, void* d);
104  long onCmdDeleteRow(FXObject* o, FXSelector s, void* d);
105  long onUpdDeleteRow(FXObject* o, FXSelector s, void* d);
106  long onCmdInsertColumn(FXObject* o, FXSelector s, void* d);
107  long onCmdInsertRow(FXObject* o, FXSelector s, void* d);
108 
109  long onCmdMoveLeft(FXObject* o, FXSelector s, void* d);
110  long onCmdMoveRight(FXObject* o, FXSelector s, void* d);
111  long onCmdMoveUp(FXObject* o, FXSelector s, void* d);
112  long onCmdMoveDown(FXObject* o, FXSelector s, void* d);
113  long onCmdMoveHome(FXObject* o, FXSelector s, void* d);
114  long onCmdMoveEnd(FXObject* o, FXSelector s, void* d);
115  long onCmdMoveTop(FXObject* o, FXSelector s, void* d);
116  long onCmdMoveBottom(FXObject* o, FXSelector s, void* d);
117  long onCmdMovePageDown(FXObject* o, FXSelector s, void* d);
118  long onCmdMovePageUp(FXObject* o, FXSelector s, void* d);
119 
120  long onCmdSelectRowIndex(FXObject* o, FXSelector s, void* d);
121  long onCmdSelectColumnIndex(FXObject* o, FXSelector s, void* d);
122  long onCmdSelectColumn(FXObject* o, FXSelector s, void* d);
123  long onCmdSelectRow(FXObject* o, FXSelector s, void* d);
124  long onCmdSelectCell(FXObject* o, FXSelector s, void* d);
125  long onCmdSelectAll(FXObject* o, FXSelector s, void* d);
126  long onCmdDeselectAll(FXObject* o, FXSelector s, void* d);
127  long onCmdMark(FXObject* o, FXSelector s, void* d);
128  long onCmdExtend(FXObject* o, FXSelector s, void* d);
129 
130 
131  void writeProtectCol(int col, bool val = true);
132 
133 
134 protected:
135  FXTextField* myEditor;
136  FXTableItem* myEditedItem;
137  FXint myEditedCol, myEditedRow;
138  std::set<int> myWriteProtectedCols;
139  FXString myPreviousText;
140 
141 protected:
143 
144 };
145 
146 
147 #endif
148 
149 /****************************************************************************/
150 
FXTableItem * myEditedItem
FXTableItem * item
FXTextField * myEditor
std::set< int > myWriteProtectedCols