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-2023 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials are made available under the
5 // terms of the Eclipse Public License 2.0 which is available at
6 // https://www.eclipse.org/legal/epl-2.0/
7 // This Source Code may also be made available under the following Secondary
8 // Licenses when the conditions for such availability set forth in the Eclipse
9 // Public License 2.0 are satisfied: GNU General Public License, version 2
10 // or later which is available at
11 // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 /****************************************************************************/
18 // missing_desc
19 /****************************************************************************/
20 #pragma once
21 #include <config.h>
22 
23 #include "fxheader.h"
24 #include <set>
25 
27  FXTableItem* item;
28  int row;
29  int col;
30  bool updateOnly;
31 };
32 
33 enum {
34  EDITTABLE_NEXTROW = 0x02000000
35 };
36 
37 
38 class MFXEditableTable : public FXTable {
39  FXDECLARE(MFXEditableTable)
40 public:
41  enum {
42  ID_LABELEDIT = FXTable::ID_LAST,
47  ID_LAST
48  };
49  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);
51 
52 public:
53  long onLeftBtnPress(FXObject* sender, FXSelector sel, void* ptr);
54  long onLeftBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
55  long onLeftBtnClicked(FXObject* sender, FXSelector sel, void* ptr);
56 
57  virtual void editItem(FXTableItem* item, FXint how);
58  virtual void editEnd();
59  long onEditEnd(FXObject*, FXSelector, void*);
60  virtual void editCancel();
61  long onEditKeyPress(FXObject*, FXSelector, void* ptr);
62  long onKeyRelease(FXObject* sender, FXSelector sel, void* ptr);
63  long onEditFocusOut(FXObject*, FXSelector, void*);
64 // long onTipTimer(FXObject* sender, FXSelector sel, void* ptr);
65  long onRightBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
66 
67 
68  long onHScrollerChanged(FXObject* o, FXSelector s, void* d);
69  long onVScrollerChanged(FXObject* o, FXSelector s, void* d);
70  long onHScrollerDragged(FXObject* o, FXSelector s, void* d);
71  long onVScrollerDragged(FXObject* o, FXSelector s, void* d);
72 
73  long onAutoScroll(FXObject* o, FXSelector s, void* d);
74  long onUngrabbed(FXObject* o, FXSelector s, void* d);
75  long onRightBtnPress(FXObject* o, FXSelector s, void* d);
76  long onTabKeyPress(FXObject* o, FXSelector s, void* d);
77  long onTabKeyRelease(FXObject* o, FXSelector s, void* d);
78  long onFocusIn(FXObject* o, FXSelector s, void* d);
79  long onFocusOut(FXObject* o, FXSelector s, void* d);
80  long onSelectionLost(FXObject* o, FXSelector s, void* d);
81  long onSelectionGained(FXObject* o, FXSelector s, void* d);
82  long onSelectionRequest(FXObject* o, FXSelector s, void* d);
83  long onClipboardLost(FXObject* o, FXSelector s, void* d);
84  long onClipboardGained(FXObject* o, FXSelector s, void* d);
85  long onClipboardRequest(FXObject* o, FXSelector s, void* d);
86  long onDoubleClicked(FXObject* o, FXSelector s, void* d);
87  long onTripleClicked(FXObject* o, FXSelector s, void* d);
88  long onCommand(FXObject* o, FXSelector s, void* d);
89  long onUpdHorzGrid(FXObject* o, FXSelector s, void* d);
90  long onUpdVertGrid(FXObject* o, FXSelector s, void* d);
91  long onCmdHorzGrid(FXObject* o, FXSelector s, void* d);
92  long onCmdVertGrid(FXObject* o, FXSelector s, void* d);
93  long onCmdDeleteColumn(FXObject* o, FXSelector s, void* d);
94  long onUpdDeleteColumn(FXObject* o, FXSelector s, void* d);
95  long onCmdDeleteRow(FXObject* o, FXSelector s, void* d);
96  long onUpdDeleteRow(FXObject* o, FXSelector s, void* d);
97  long onCmdInsertColumn(FXObject* o, FXSelector s, void* d);
98  long onCmdInsertRow(FXObject* o, FXSelector s, void* d);
99 
100  long onCmdMoveLeft(FXObject* o, FXSelector s, void* d);
101  long onCmdMoveRight(FXObject* o, FXSelector s, void* d);
102  long onCmdMoveUp(FXObject* o, FXSelector s, void* d);
103  long onCmdMoveDown(FXObject* o, FXSelector s, void* d);
104  long onCmdMoveHome(FXObject* o, FXSelector s, void* d);
105  long onCmdMoveEnd(FXObject* o, FXSelector s, void* d);
106  long onCmdMoveTop(FXObject* o, FXSelector s, void* d);
107  long onCmdMoveBottom(FXObject* o, FXSelector s, void* d);
108  long onCmdMovePageDown(FXObject* o, FXSelector s, void* d);
109  long onCmdMovePageUp(FXObject* o, FXSelector s, void* d);
110 
111  long onCmdSelectRowIndex(FXObject* o, FXSelector s, void* d);
112  long onCmdSelectColumnIndex(FXObject* o, FXSelector s, void* d);
113  long onCmdSelectColumn(FXObject* o, FXSelector s, void* d);
114  long onCmdSelectRow(FXObject* o, FXSelector s, void* d);
115  long onCmdSelectCell(FXObject* o, FXSelector s, void* d);
116  long onCmdSelectAll(FXObject* o, FXSelector s, void* d);
117  long onCmdDeselectAll(FXObject* o, FXSelector s, void* d);
118  long onCmdMark(FXObject* o, FXSelector s, void* d);
119  long onCmdExtend(FXObject* o, FXSelector s, void* d);
120 
121 
122  void writeProtectCol(int col, bool val = true);
123 
124 
125 protected:
126  FXTextField* myEditor;
127  FXTableItem* myEditedItem;
129  std::set<int> myWriteProtectedCols;
130  FXString myPreviousText;
131 
132 protected:
133  FOX_CONSTRUCTOR(MFXEditableTable)
134 
135 };
@ EDITTABLE_NEXTROW
long onCmdSelectRow(FXObject *o, FXSelector s, void *d)
long onTripleClicked(FXObject *o, FXSelector s, void *d)
long onEditFocusOut(FXObject *, FXSelector, void *)
long onRightBtnRelease(FXObject *sender, FXSelector sel, void *ptr)
long onCmdMoveHome(FXObject *o, FXSelector s, void *d)
long onCmdMoveEnd(FXObject *o, FXSelector s, void *d)
long onAutoScroll(FXObject *o, FXSelector s, void *d)
FXTextField * myEditor
long onVScrollerDragged(FXObject *o, FXSelector s, void *d)
long onCmdMoveLeft(FXObject *o, FXSelector s, void *d)
void writeProtectCol(int col, bool val=true)
long onSelectionRequest(FXObject *o, FXSelector s, void *d)
long onClipboardLost(FXObject *o, FXSelector s, void *d)
long onCmdMoveTop(FXObject *o, FXSelector s, void *d)
long onCmdExtend(FXObject *o, FXSelector s, void *d)
long onUpdVertGrid(FXObject *o, FXSelector s, void *d)
long onSelectionLost(FXObject *o, FXSelector s, void *d)
long onCmdSelectColumnIndex(FXObject *o, FXSelector s, void *d)
long onCmdMoveRight(FXObject *o, FXSelector s, void *d)
long onVScrollerChanged(FXObject *o, FXSelector s, void *d)
long onLeftBtnPress(FXObject *sender, FXSelector sel, void *ptr)
virtual void editCancel()
long onCmdMovePageUp(FXObject *o, FXSelector s, void *d)
long onCmdSelectCell(FXObject *o, FXSelector s, void *d)
long onSelectionGained(FXObject *o, FXSelector s, void *d)
long onUngrabbed(FXObject *o, FXSelector s, void *d)
std::set< int > myWriteProtectedCols
long onCmdVertGrid(FXObject *o, FXSelector s, void *d)
long onUpdDeleteColumn(FXObject *o, FXSelector s, void *d)
long onCmdMoveDown(FXObject *o, FXSelector s, void *d)
long onCmdInsertRow(FXObject *o, FXSelector s, void *d)
long onClipboardGained(FXObject *o, FXSelector s, void *d)
long onCmdDeleteColumn(FXObject *o, FXSelector s, void *d)
long onHScrollerChanged(FXObject *o, FXSelector s, void *d)
long onCommand(FXObject *o, FXSelector s, void *d)
long onCmdSelectAll(FXObject *o, FXSelector s, void *d)
long onTabKeyRelease(FXObject *o, FXSelector s, void *d)
long onCmdSelectColumn(FXObject *o, FXSelector s, void *d)
long onEditEnd(FXObject *, FXSelector, void *)
long onTabKeyPress(FXObject *o, FXSelector s, void *d)
long onLeftBtnClicked(FXObject *sender, FXSelector sel, void *ptr)
long onCmdSelectRowIndex(FXObject *o, FXSelector s, void *d)
long onLeftBtnRelease(FXObject *sender, FXSelector sel, void *ptr)
long onUpdHorzGrid(FXObject *o, FXSelector s, void *d)
long onCmdMark(FXObject *o, FXSelector s, void *d)
long onDoubleClicked(FXObject *o, FXSelector s, void *d)
long onCmdDeselectAll(FXObject *o, FXSelector s, void *d)
long onCmdMoveBottom(FXObject *o, FXSelector s, void *d)
long onCmdMovePageDown(FXObject *o, FXSelector s, void *d)
long onCmdMoveUp(FXObject *o, FXSelector s, void *d)
long onCmdInsertColumn(FXObject *o, FXSelector s, void *d)
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)
long onUpdDeleteRow(FXObject *o, FXSelector s, void *d)
virtual void editEnd()
long onHScrollerDragged(FXObject *o, FXSelector s, void *d)
long onFocusOut(FXObject *o, FXSelector s, void *d)
FXTableItem * myEditedItem
long onCmdDeleteRow(FXObject *o, FXSelector s, void *d)
long onKeyRelease(FXObject *sender, FXSelector sel, void *ptr)
long onEditKeyPress(FXObject *, FXSelector, void *ptr)
long onCmdHorzGrid(FXObject *o, FXSelector s, void *d)
long onClipboardRequest(FXObject *o, FXSelector s, void *d)
long onRightBtnPress(FXObject *o, FXSelector s, void *d)
virtual void editItem(FXTableItem *item, FXint how)
long onFocusIn(FXObject *o, FXSelector s, void *d)
FXTableItem * item