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 /****************************************************************************/
14 // missing_desc
15 /****************************************************************************/
16 #ifndef MFXEditableTable_h
17 #define MFXEditableTable_h
18 
19 
20 // ===========================================================================
21 // included modules
22 // ===========================================================================
23 #include <config.h>
24 
25 #include <fx.h>
26 #include <set>
27 
29  FXTableItem* item;
30  int row;
31  int col;
32  bool updateOnly;
33 };
34 
35 enum {
36  EDITTABLE_NEXTROW = 0x02000000
37 };
38 
39 
40 class MFXEditableTable : public FXTable {
41  FXDECLARE(MFXEditableTable)
42 public:
43  enum {
44  ID_LABELEDIT = FXTable::ID_LAST,
50  };
51  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);
53 
54 public:
55  long onLeftBtnPress(FXObject* sender, FXSelector sel, void* ptr);
56  long onLeftBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
57  long onLeftBtnClicked(FXObject* sender, FXSelector sel, void* ptr);
58 
59  virtual void editItem(FXTableItem* item, FXint how);
60  virtual void editEnd();
61  long onEditEnd(FXObject*, FXSelector, void*);
62  virtual void editCancel();
63  long onEditKeyPress(FXObject*, FXSelector, void* ptr);
64  long onKeyRelease(FXObject* sender, FXSelector sel, void* ptr);
65  long onEditFocusOut(FXObject*, FXSelector, void*);
66 // long onTipTimer(FXObject* sender, FXSelector sel, void* ptr);
67  long onRightBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
68 
69 
70  long onHScrollerChanged(FXObject* o, FXSelector s, void* d);
71  long onVScrollerChanged(FXObject* o, FXSelector s, void* d);
72  long onHScrollerDragged(FXObject* o, FXSelector s, void* d);
73  long onVScrollerDragged(FXObject* o, FXSelector s, void* d);
74 
75  long onAutoScroll(FXObject* o, FXSelector s, void* d);
76  long onUngrabbed(FXObject* o, FXSelector s, void* d);
77  long onRightBtnPress(FXObject* o, FXSelector s, void* d);
78  long onTabKeyPress(FXObject* o, FXSelector s, void* d);
79  long onTabKeyRelease(FXObject* o, FXSelector s, void* d);
80  long onFocusIn(FXObject* o, FXSelector s, void* d);
81  long onFocusOut(FXObject* o, FXSelector s, void* d);
82  long onSelectionLost(FXObject* o, FXSelector s, void* d);
83  long onSelectionGained(FXObject* o, FXSelector s, void* d);
84  long onSelectionRequest(FXObject* o, FXSelector s, void* d);
85  long onClipboardLost(FXObject* o, FXSelector s, void* d);
86  long onClipboardGained(FXObject* o, FXSelector s, void* d);
87  long onClipboardRequest(FXObject* o, FXSelector s, void* d);
88  long onDoubleClicked(FXObject* o, FXSelector s, void* d);
89  long onTripleClicked(FXObject* o, FXSelector s, void* d);
90  long onCommand(FXObject* o, FXSelector s, void* d);
91  long onUpdHorzGrid(FXObject* o, FXSelector s, void* d);
92  long onUpdVertGrid(FXObject* o, FXSelector s, void* d);
93  long onCmdHorzGrid(FXObject* o, FXSelector s, void* d);
94  long onCmdVertGrid(FXObject* o, FXSelector s, void* d);
95  long onCmdDeleteColumn(FXObject* o, FXSelector s, void* d);
96  long onUpdDeleteColumn(FXObject* o, FXSelector s, void* d);
97  long onCmdDeleteRow(FXObject* o, FXSelector s, void* d);
98  long onUpdDeleteRow(FXObject* o, FXSelector s, void* d);
99  long onCmdInsertColumn(FXObject* o, FXSelector s, void* d);
100  long onCmdInsertRow(FXObject* o, FXSelector s, void* d);
101 
102  long onCmdMoveLeft(FXObject* o, FXSelector s, void* d);
103  long onCmdMoveRight(FXObject* o, FXSelector s, void* d);
104  long onCmdMoveUp(FXObject* o, FXSelector s, void* d);
105  long onCmdMoveDown(FXObject* o, FXSelector s, void* d);
106  long onCmdMoveHome(FXObject* o, FXSelector s, void* d);
107  long onCmdMoveEnd(FXObject* o, FXSelector s, void* d);
108  long onCmdMoveTop(FXObject* o, FXSelector s, void* d);
109  long onCmdMoveBottom(FXObject* o, FXSelector s, void* d);
110  long onCmdMovePageDown(FXObject* o, FXSelector s, void* d);
111  long onCmdMovePageUp(FXObject* o, FXSelector s, void* d);
112 
113  long onCmdSelectRowIndex(FXObject* o, FXSelector s, void* d);
114  long onCmdSelectColumnIndex(FXObject* o, FXSelector s, void* d);
115  long onCmdSelectColumn(FXObject* o, FXSelector s, void* d);
116  long onCmdSelectRow(FXObject* o, FXSelector s, void* d);
117  long onCmdSelectCell(FXObject* o, FXSelector s, void* d);
118  long onCmdSelectAll(FXObject* o, FXSelector s, void* d);
119  long onCmdDeselectAll(FXObject* o, FXSelector s, void* d);
120  long onCmdMark(FXObject* o, FXSelector s, void* d);
121  long onCmdExtend(FXObject* o, FXSelector s, void* d);
122 
123 
124  void writeProtectCol(int col, bool val = true);
125 
126 
127 protected:
128  FXTextField* myEditor;
129  FXTableItem* myEditedItem;
131  std::set<int> myWriteProtectedCols;
132  FXString myPreviousText;
133 
134 protected:
136 
137 };
138 
139 
140 #endif
141 
142 /****************************************************************************/
143 
MFXEditableTable::onCmdMovePageDown
long onCmdMovePageDown(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:593
MFXEditableTable::onCmdDeleteColumn
long onCmdDeleteColumn(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:488
MFXEditableTable::onCmdSelectCell
long onCmdSelectCell(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:638
MFXEditableTable::onCmdMoveBottom
long onCmdMoveBottom(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:586
MFXEditableTable::myEditedItem
FXTableItem * myEditedItem
Definition: MFXEditableTable.h:129
MFXEditableTable::onCmdInsertRow
long onCmdInsertRow(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:528
MFXEditableTable::onAutoScroll
long onAutoScroll(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:346
MFXEditedTableItem::updateOnly
bool updateOnly
Definition: MFXEditableTable.h:32
MFXEditableTable::onCmdInsertColumn
long onCmdInsertColumn(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:520
MFXEditableTable::MFXEditableTable
MFXEditableTable()
Definition: MFXEditableTable.h:135
MFXEditableTable::ID_LAST
Definition: MFXEditableTable.h:49
MFXEditableTable::ID_EDITEND
Definition: MFXEditableTable.h:45
MFXEditableTable::onUpdVertGrid
long onUpdVertGrid(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:467
MFXEditableTable::onCmdExtend
long onCmdExtend(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:669
MFXEditableTable::onCmdMark
long onCmdMark(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:662
MFXEditableTable::onCmdMoveUp
long onCmdMoveUp(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:551
MFXEditedTableItem::item
FXTableItem * item
Definition: MFXEditableTable.h:29
MFXEditedTableItem::col
int col
Definition: MFXEditableTable.h:31
MFXEditableTable::onCmdMovePageUp
long onCmdMovePageUp(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:600
MFXEditableTable::onCmdMoveHome
long onCmdMoveHome(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:565
MFXEditableTable::writeProtectCol
void writeProtectCol(int col, bool val=true)
Definition: MFXEditableTable.cpp:676
MFXEditableTable::onVScrollerChanged
long onVScrollerChanged(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:325
MFXEditableTable::onCmdMoveTop
long onCmdMoveTop(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:579
MFXEditableTable::onFocusIn
long onFocusIn(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:381
MFXEditableTable::onLeftBtnClicked
long onLeftBtnClicked(FXObject *sender, FXSelector sel, void *ptr)
Definition: MFXEditableTable.cpp:127
MFXEditableTable::ID_TEXT_CHANGED
Definition: MFXEditableTable.h:48
MFXEditableTable::onCommand
long onCommand(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:453
MFXEditableTable::onRightBtnRelease
long onRightBtnRelease(FXObject *sender, FXSelector sel, void *ptr)
Definition: MFXEditableTable.cpp:305
MFXEditableTable::onHScrollerDragged
long onHScrollerDragged(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:332
MFXEditableTable::editCancel
virtual void editCancel()
Definition: MFXEditableTable.cpp:243
MFXEditableTable::onUpdHorzGrid
long onUpdHorzGrid(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:460
MFXEditableTable::onEditEnd
long onEditEnd(FXObject *, FXSelector, void *)
Definition: MFXEditableTable.cpp:235
EDITTABLE_NEXTROW
Definition: MFXEditableTable.h:36
MFXEditableTable::onClipboardRequest
long onClipboardRequest(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:430
MFXEditableTable::onCmdHorzGrid
long onCmdHorzGrid(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:474
MFXEditableTable::onCmdMoveEnd
long onCmdMoveEnd(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:572
MFXEditableTable::onUpdDeleteRow
long onUpdDeleteRow(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:512
MFXEditableTable::myEditor
FXTextField * myEditor
Definition: MFXEditableTable.h:128
MFXEditableTable::onDoubleClicked
long onDoubleClicked(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:437
MFXEditableTable::onTabKeyPress
long onTabKeyPress(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:367
MFXEditableTable::onEditKeyPress
long onEditKeyPress(FXObject *, FXSelector, void *ptr)
Definition: MFXEditableTable.cpp:255
MFXEditableTable::ID_NEXTLINE
Definition: MFXEditableTable.h:46
MFXEditableTable::onFocusOut
long onFocusOut(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:388
MFXEditableTable::myWriteProtectedCols
std::set< int > myWriteProtectedCols
Definition: MFXEditableTable.h:131
MFXEditableTable::onCmdSelectRow
long onCmdSelectRow(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:631
MFXEditableTable::onCmdSelectColumn
long onCmdSelectColumn(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:623
MFXEditableTable::onCmdDeselectAll
long onCmdDeselectAll(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:654
MFXEditableTable::onCmdDeleteRow
long onCmdDeleteRow(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:504
MFXEditableTable::onTabKeyRelease
long onTabKeyRelease(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:374
MFXEditableTable::onSelectionRequest
long onSelectionRequest(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:409
MFXEditableTable::ID_LABELEDIT
Definition: MFXEditableTable.h:44
MFXEditableTable::onCmdSelectAll
long onCmdSelectAll(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:646
MFXEditableTable::onKeyRelease
long onKeyRelease(FXObject *sender, FXSelector sel, void *ptr)
Definition: MFXEditableTable.cpp:278
MFXEditableTable::onLeftBtnRelease
long onLeftBtnRelease(FXObject *sender, FXSelector sel, void *ptr)
Definition: MFXEditableTable.cpp:148
MFXEditableTable::onRightBtnPress
long onRightBtnPress(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:360
MFXEditableTable::myPreviousText
FXString myPreviousText
Definition: MFXEditableTable.h:132
MFXEditableTable::onLeftBtnPress
long onLeftBtnPress(FXObject *sender, FXSelector sel, void *ptr)
Definition: MFXEditableTable.cpp:119
MFXEditableTable::onHScrollerChanged
long onHScrollerChanged(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:318
MFXEditableTable::onVScrollerDragged
long onVScrollerDragged(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:339
MFXEditableTable::onUpdDeleteColumn
long onUpdDeleteColumn(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:496
MFXEditableTable::onCmdMoveLeft
long onCmdMoveLeft(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:537
MFXEditableTable::~MFXEditableTable
~MFXEditableTable()
Definition: MFXEditableTable.cpp:115
MFXEditableTable::onTripleClicked
long onTripleClicked(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:445
MFXEditableTable::myEditedCol
FXint myEditedCol
Definition: MFXEditableTable.h:130
config.h
MFXEditableTable::onEditFocusOut
long onEditFocusOut(FXObject *, FXSelector, void *)
Definition: MFXEditableTable.cpp:290
MFXEditableTable::onCmdSelectRowIndex
long onCmdSelectRowIndex(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:608
MFXEditableTable::onClipboardGained
long onClipboardGained(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:423
MFXEditedTableItem
Definition: MFXEditableTable.h:28
MFXEditableTable::onCmdMoveRight
long onCmdMoveRight(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:544
MFXEditableTable::onSelectionGained
long onSelectionGained(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:402
MFXEditableTable::editItem
virtual void editItem(FXTableItem *item, FXint how)
Definition: MFXEditableTable.cpp:160
MFXEditableTable::editEnd
virtual void editEnd()
Definition: MFXEditableTable.cpp:204
MFXEditableTable::myEditedRow
FXint myEditedRow
Definition: MFXEditableTable.h:130
MFXEditableTable::onSelectionLost
long onSelectionLost(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:395
MFXEditableTable::onCmdMoveDown
long onCmdMoveDown(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:558
MFXEditableTable::onCmdSelectColumnIndex
long onCmdSelectColumnIndex(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:615
MFXEditedTableItem::row
int row
Definition: MFXEditableTable.h:30
MFXEditableTable::ID_EDITOR
Definition: MFXEditableTable.h:47
MFXEditableTable::onClipboardLost
long onClipboardLost(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:416
MFXEditableTable::onUngrabbed
long onUngrabbed(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:353
MFXEditableTable::onCmdVertGrid
long onCmdVertGrid(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:481
MFXEditableTable
Definition: MFXEditableTable.h:40