SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MFXEditableTable.h
Go to the documentation of this file.
1 /****************************************************************************/
7 // missing_desc
8 /****************************************************************************/
9 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/
10 // Copyright (C) 2001-2013 DLR (http://www.dlr.de/) and contributors
11 /****************************************************************************/
12 //
13 // This file is part of SUMO.
14 // SUMO is free software: you can redistribute it and/or modify
15 // it under the terms of the GNU General Public License as published by
16 // the Free Software Foundation, either version 3 of the License, or
17 // (at your option) any later version.
18 //
19 /****************************************************************************/
20 #ifndef MFXEditableTable_h
21 #define MFXEditableTable_h
22 
23 
24 // ===========================================================================
25 // included modules
26 // ===========================================================================
27 #ifdef _MSC_VER
28 #include <windows_config.h>
29 #else
30 #include <config.h>
31 #endif
32 
33 #include <fx.h>
34 #include <set>
35 
37  FXTableItem* item;
38  int row;
39  int col;
40  bool updateOnly;
41 };
42 
43 enum {
44  EDITTABLE_NEXTROW = 0x02000000
45 };
46 
47 
48 class MFXEditableTable : public FXTable {
49  FXDECLARE(MFXEditableTable)
50 public:
51  enum {
52  ID_LABELEDIT = FXTable::ID_LAST,
58  };
59  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);
61 
62 public:
63  long onLeftBtnPress(FXObject* sender, FXSelector sel, void* ptr);
64  long onLeftBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
65  long onLeftBtnClicked(FXObject* sender, FXSelector sel, void* ptr);
66 
67  virtual void editItem(FXTableItem* item, FXint how);
68  virtual void editEnd();
69  long onEditEnd(FXObject*, FXSelector, void*);
70  virtual void editCancel();
71  long onEditKeyPress(FXObject*, FXSelector, void* ptr);
72  long onKeyRelease(FXObject* sender, FXSelector sel, void* ptr);
73  long onEditFocusOut(FXObject*, FXSelector, void*);
74 // long onTipTimer(FXObject* sender, FXSelector sel, void* ptr);
75  long onRightBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
76 
77 
78  long onHScrollerChanged(FXObject* o, FXSelector s, void* d);
79  long onVScrollerChanged(FXObject* o, FXSelector s, void* d);
80  long onHScrollerDragged(FXObject* o, FXSelector s, void* d);
81  long onVScrollerDragged(FXObject* o, FXSelector s, void* d);
82 
83  long onAutoScroll(FXObject* o, FXSelector s, void* d);
84  long onUngrabbed(FXObject* o, FXSelector s, void* d);
85  long onRightBtnPress(FXObject* o, FXSelector s, void* d);
86  long onTabKeyPress(FXObject* o, FXSelector s, void* d);
87  long onTabKeyRelease(FXObject* o, FXSelector s, void* d);
88  long onFocusIn(FXObject* o, FXSelector s, void* d);
89  long onFocusOut(FXObject* o, FXSelector s, void* d);
90  long onSelectionLost(FXObject* o, FXSelector s, void* d);
91  long onSelectionGained(FXObject* o, FXSelector s, void* d);
92  long onSelectionRequest(FXObject* o, FXSelector s, void* d);
93  long onClipboardLost(FXObject* o, FXSelector s, void* d);
94  long onClipboardGained(FXObject* o, FXSelector s, void* d);
95  long onClipboardRequest(FXObject* o, FXSelector s, void* d);
96  long onDoubleClicked(FXObject* o, FXSelector s, void* d);
97  long onTripleClicked(FXObject* o, FXSelector s, void* d);
98  long onCommand(FXObject* o, FXSelector s, void* d);
99  long onUpdHorzGrid(FXObject* o, FXSelector s, void* d);
100  long onUpdVertGrid(FXObject* o, FXSelector s, void* d);
101  long onCmdHorzGrid(FXObject* o, FXSelector s, void* d);
102  long onCmdVertGrid(FXObject* o, FXSelector s, void* d);
103  long onCmdDeleteColumn(FXObject* o, FXSelector s, void* d);
104  long onUpdDeleteColumn(FXObject* o, FXSelector s, void* d);
105  long onCmdDeleteRow(FXObject* o, FXSelector s, void* d);
106  long onUpdDeleteRow(FXObject* o, FXSelector s, void* d);
107  long onCmdInsertColumn(FXObject* o, FXSelector s, void* d);
108  long onCmdInsertRow(FXObject* o, FXSelector s, void* d);
109 
110  long onCmdMoveLeft(FXObject* o, FXSelector s, void* d);
111  long onCmdMoveRight(FXObject* o, FXSelector s, void* d);
112  long onCmdMoveUp(FXObject* o, FXSelector s, void* d);
113  long onCmdMoveDown(FXObject* o, FXSelector s, void* d);
114  long onCmdMoveHome(FXObject* o, FXSelector s, void* d);
115  long onCmdMoveEnd(FXObject* o, FXSelector s, void* d);
116  long onCmdMoveTop(FXObject* o, FXSelector s, void* d);
117  long onCmdMoveBottom(FXObject* o, FXSelector s, void* d);
118  long onCmdMovePageDown(FXObject* o, FXSelector s, void* d);
119  long onCmdMovePageUp(FXObject* o, FXSelector s, void* d);
120 
121  long onCmdSelectRowIndex(FXObject* o, FXSelector s, void* d);
122  long onCmdSelectColumnIndex(FXObject* o, FXSelector s, void* d);
123  long onCmdSelectColumn(FXObject* o, FXSelector s, void* d);
124  long onCmdSelectRow(FXObject* o, FXSelector s, void* d);
125  long onCmdSelectCell(FXObject* o, FXSelector s, void* d);
126  long onCmdSelectAll(FXObject* o, FXSelector s, void* d);
127  long onCmdDeselectAll(FXObject* o, FXSelector s, void* d);
128  long onCmdMark(FXObject* o, FXSelector s, void* d);
129  long onCmdExtend(FXObject* o, FXSelector s, void* d);
130 
131 
132  void writeProtectCol(int col, bool val = true);
133 
134 
135 protected:
137  FXTableItem* myEditedItem;
139  std::set<int> myWriteProtectedCols;
140  FXString myPreviousText;
141 
142 protected:
144 
145 };
146 
147 
148 #endif
149 
150 /****************************************************************************/
151