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