Eclipse SUMO - Simulation of Urban MObility
MFXEditableTable.cpp
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 
17 
18 // ===========================================================================
19 // included modules
20 // ===========================================================================
21 #include <config.h>
22 
23 #include <fx.h>
24 #include <fxkeys.h>
25 #include "MFXEditableTable.h"
26 
27 FXDEFMAP(MFXEditableTable) MFXEditableTableMap[] = {
28  FXMAPFUNC(SEL_LEFTBUTTONPRESS, 0, MFXEditableTable::onLeftBtnPress),
29  FXMAPFUNC(SEL_LEFTBUTTONRELEASE, 0, MFXEditableTable::onLeftBtnRelease),
30  FXMAPFUNC(SEL_CLICKED, 0, MFXEditableTable::onLeftBtnClicked),
31  FXMAPFUNC(SEL_RIGHTBUTTONRELEASE, 0, MFXEditableTable::onRightBtnRelease),
32  FXMAPFUNC(SEL_KEYRELEASE, 0, MFXEditableTable::onKeyRelease),
34  // FXMAPFUNC(SEL_TIMEOUT,FXTable::ID_TIPTIMER, MFXEditableTable::onTipTimer),
37 
38  FXMAPFUNC(SEL_COMMAND, FXWindow::ID_HSCROLLED, MFXEditableTable::onHScrollerChanged),
39  FXMAPFUNC(SEL_COMMAND, FXWindow::ID_VSCROLLED, MFXEditableTable::onVScrollerChanged),
40  FXMAPFUNC(SEL_CHANGED, FXWindow::ID_HSCROLLED, MFXEditableTable::onHScrollerDragged),
41  FXMAPFUNC(SEL_CHANGED, FXWindow::ID_VSCROLLED, MFXEditableTable::onVScrollerDragged),
42  /*
43  FXMAPFUNC(SEL_TIMEOUT,FXWindow::ID_AUTOSCROLL,MFXEditableTable::onAutoScroll),
44  FXMAPFUNC(SEL_UNGRABBED,0,MFXEditableTable::onUngrabbed),
45  FXMAPFUNC(SEL_RIGHTBUTTONPRESS,0,MFXEditableTable::onRightBtnPress),
46  FXMAPFUNC(SEL_KEYPRESS,0,MFXEditableTable::onTabKeyPress),
47  FXMAPFUNC(SEL_KEYRELEASE,0,MFXEditableTable::onTabKeyRelease),
48  FXMAPFUNC(SEL_CLIPBOARD_LOST,0,MFXEditableTable::onClipboardLost),
49  FXMAPFUNC(SEL_CLIPBOARD_GAINED,0,MFXEditableTable::onClipboardGained),
50  FXMAPFUNC(SEL_CLIPBOARD_REQUEST,0,MFXEditableTable::onClipboardRequest),
51  FXMAPFUNC(SEL_DOUBLECLICKED,0,MFXEditableTable::onDoubleClicked),
52  FXMAPFUNC(SEL_TRIPLECLICKED,0,MFXEditableTable::onTripleClicked),
53  FXMAPFUNC(SEL_COMMAND,0,MFXEditableTable::onCommand),
54  */
55  /*
56  FXMAPFUNC(SEL_FOCUSIN,0,MFXEditableTable::onFocusIn),
57  FXMAPFUNC(SEL_FOCUSOUT,0,MFXEditableTable::onFocusOut),
58  FXMAPFUNC(SEL_SELECTION_LOST,0,MFXEditableTable::onSelectionLost),
59  FXMAPFUNC(SEL_SELECTION_GAINED,0,MFXEditableTable::onSelectionGained),
60  FXMAPFUNC(SEL_SELECTION_REQUEST,0,MFXEditableTable::onSelectionRequest),
61  */
62 
63  FXMAPFUNC(SEL_UPDATE, FXTable::ID_HORZ_GRID, MFXEditableTable::onUpdHorzGrid),
64  FXMAPFUNC(SEL_UPDATE, FXTable::ID_VERT_GRID, MFXEditableTable::onUpdVertGrid),
65  FXMAPFUNC(SEL_COMMAND, FXTable::ID_HORZ_GRID, MFXEditableTable::onCmdHorzGrid),
66  FXMAPFUNC(SEL_COMMAND, FXTable::ID_VERT_GRID, MFXEditableTable::onCmdVertGrid),
67  FXMAPFUNC(SEL_COMMAND, FXTable::ID_DELETE_COLUMN, MFXEditableTable::onCmdDeleteColumn),
68  FXMAPFUNC(SEL_UPDATE, FXTable::ID_DELETE_COLUMN, MFXEditableTable::onUpdDeleteColumn),
69  FXMAPFUNC(SEL_COMMAND, FXTable::ID_DELETE_ROW, MFXEditableTable::onCmdDeleteRow),
70  FXMAPFUNC(SEL_UPDATE, FXTable::ID_DELETE_ROW, MFXEditableTable::onUpdDeleteRow),
71  FXMAPFUNC(SEL_COMMAND, FXTable::ID_INSERT_COLUMN, MFXEditableTable::onCmdInsertColumn),
72  FXMAPFUNC(SEL_COMMAND, FXTable::ID_INSERT_ROW, MFXEditableTable::onCmdInsertRow),
73 
74  FXMAPFUNC(SEL_COMMAND, FXTable::ID_MOVE_LEFT, MFXEditableTable::onCmdMoveLeft),
75  FXMAPFUNC(SEL_COMMAND, FXTable::ID_MOVE_RIGHT, MFXEditableTable::onCmdMoveRight),
76  FXMAPFUNC(SEL_COMMAND, FXTable::ID_MOVE_UP, MFXEditableTable::onCmdMoveUp),
77  FXMAPFUNC(SEL_COMMAND, FXTable::ID_MOVE_DOWN, MFXEditableTable::onCmdMoveDown),
78  FXMAPFUNC(SEL_COMMAND, FXTable::ID_MOVE_HOME, MFXEditableTable::onCmdMoveHome),
79  FXMAPFUNC(SEL_COMMAND, FXTable::ID_MOVE_END, MFXEditableTable::onCmdMoveEnd),
80  FXMAPFUNC(SEL_COMMAND, FXTable::ID_MOVE_TOP, MFXEditableTable::onCmdMoveTop),
81  FXMAPFUNC(SEL_COMMAND, FXTable::ID_MOVE_BOTTOM, MFXEditableTable::onCmdMoveBottom),
82  FXMAPFUNC(SEL_COMMAND, FXTable::ID_MOVE_PAGEDOWN, MFXEditableTable::onCmdMovePageDown),
83  FXMAPFUNC(SEL_COMMAND, FXTable::ID_MOVE_PAGEUP, MFXEditableTable::onCmdMovePageUp),
84 
85  FXMAPFUNC(SEL_COMMAND, FXTable::ID_SELECT_ROW_INDEX, MFXEditableTable::onCmdSelectRowIndex),
86  FXMAPFUNC(SEL_COMMAND, FXTable::ID_SELECT_COLUMN_INDEX, MFXEditableTable::onCmdSelectColumnIndex),
87  FXMAPFUNC(SEL_COMMAND, FXTable::ID_SELECT_COLUMN, MFXEditableTable::onCmdSelectColumn),
88  FXMAPFUNC(SEL_COMMAND, FXTable::ID_SELECT_ROW, MFXEditableTable::onCmdSelectRow),
89  // FXMAPFUNC(SEL_COMMAND,FXTable::ID_SELECT_CELL,MFXEditableTable::onCmdSelectCell),
90  FXMAPFUNC(SEL_COMMAND, FXTable::ID_SELECT_ALL, MFXEditableTable::onCmdSelectAll),
91  FXMAPFUNC(SEL_COMMAND, FXTable::ID_DESELECT_ALL, MFXEditableTable::onCmdDeselectAll),
92  FXMAPFUNC(SEL_COMMAND, FXTable::ID_MARK, MFXEditableTable::onCmdMark),
93  FXMAPFUNC(SEL_COMMAND, FXTable::ID_EXTEND, MFXEditableTable::onCmdExtend),
94 };
95 
96 
97 // Object implementation
98 FXIMPLEMENT(MFXEditableTable, FXTable, MFXEditableTableMap, ARRAYNUMBER(MFXEditableTableMap))
99 
100 
101 MFXEditableTable::MFXEditableTable(FXComposite* p, FXObject* tgt,
102  FXSelector sel, FXuint opts,
103  FXint x, FXint y, FXint w, FXint h,
104  FXint pl, FXint pr, FXint pt, FXint pb)
105  : FXTable(p, tgt, sel, opts, x, y, w, h, pl, pr, pt, pb),
106  myEditedItem(nullptr) {
107  myEditor =
108  new FXTextField((FXComposite*)getParent(), 1, this,
109  ID_EDITOR, FRAME_NORMAL | LAYOUT_EXPLICIT);
110  myEditor->hide();
111  flags |= FLAG_ENABLED | FLAG_DROPTARGET;
112 }
113 
114 
116 
117 
118 long
119 MFXEditableTable::onLeftBtnPress(FXObject* sender, FXSelector sel, void* ptr) {
120  editEnd();
121  FXTable::onLeftBtnPress(sender, sel, ptr);
122  return 1;
123 }
124 
125 
126 long
127 MFXEditableTable::onLeftBtnClicked(FXObject*, FXSelector, void* ptr) {
128  FXTablePos* e = (FXTablePos*)ptr;
129  int r = e->row;
130  int c = e->col;
131  if (c == -1 || r == -1) {
132  return 1;
133  }
134  killSelection(false);
135  myEditedItem = getItem(r, c);
136  myEditedCol = c;
137  myEditedRow = r;
138  if (c >= 0 && r >= 0) {
140  } else {
141  editEnd();
142  }
143  return 1;
144 }
145 
146 
147 long
148 MFXEditableTable::onLeftBtnRelease(FXObject* sender, FXSelector sel, void* ptr) {
149  FXTable::onLeftBtnRelease(sender, sel, ptr);
150  /* FXEvent* e= (FXEvent*)ptr;
151  if(flgEditTimer) {
152  flgEditTimer = FALSE;
153  if(!e->moved) getApp()->addTimeout(this,ID_EDITTIMER,600);
154  }*/
155  return 1;
156 }
157 
158 
159 void
160 MFXEditableTable::editItem(FXTableItem* item, FXint how) {
161  if (item == nullptr) {
162  editEnd();
163  return;
164  }
166  editEnd();
167  return;
168  }
169  FXTableItem* it = item;
170  myPreviousText = item->getText();
171  FXint x = getColumnX(myEditedCol) + getRowHeader()->getWidth() + xpos;
172  FXint y = getRowY(myEditedRow) + getColumnHeader()->getHeight() + ypos;
173  FXIcon* icon = item->getIcon();
174  if (icon) {
175  x += icon->getWidth() + 4;
176  }
177  FXint vw = getViewportWidth();
178  if (vertical->shown()) {
179  vw -= vertical->getWidth();
180  }
181  if (vw > getColumnWidth(myEditedCol)) {
182  vw = getColumnWidth(myEditedCol) + x;
183  }
184  myEditor->setText(it->getText());
185  myEditor->move(x, y);
186  myEditor->resize(vw - x + 1, getRowHeight(myEditedRow) + 1);
187  myEditor->show();
188  myEditor->raise();
189  myEditor->setFocus();
190  if (how == 'I') {
191  myEditor->killSelection();
192  myEditor->setCursorPos(0);
193  } else if (how == 'A') {
194  myEditor->killSelection();
195  myEditor->setCursorPos(myEditor->getText().length());
196  } else {
197  myEditor->selectAll();
198  }
199  myEditedItem = it;
200 }
201 
202 
203 void
205  if (!myEditedItem) {
206  return;
207  }
208  FXTableItem* item = myEditedItem;
209  myEditedItem = nullptr;
210  myEditor->hide();
211  setFocus();
212  FXString text = myEditor->getText();
213  myEditedItem = nullptr;
214  if (item->getText() == text) {
215  return;
216  }
217  if (handle(item, FXSEL(SEL_COMMAND, ID_EDITEND), &text)) {
218  item->setText(text);
219  handle(this, FXSEL(SEL_CHANGED, 0), item);
220  }
221  killSelection(true);
222  if (target) {
223  MFXEditedTableItem edited;
224  edited.item = item;
225  edited.row = myEditedRow;
226  edited.col = myEditedCol;
227  if (!target->handle(this, FXSEL(SEL_CHANGED, ID_TEXT_CHANGED), (void*) &edited)) {
228  item->setText(myPreviousText);
229  }
230  }
231 }
232 
233 
234 long
235 MFXEditableTable::onEditEnd(FXObject*, FXSelector, void*) {
236  delete myEditedItem;
237  myEditedItem = nullptr;
238  return 1;
239 }
240 
241 
242 void
244  if (!myEditedItem) {
245  return;
246  }
247  myEditedItem = nullptr;
248  myEditor->hide();
249  setFocus();
250  killSelection(true);
251 }
252 
253 
254 long
255 MFXEditableTable::onEditKeyPress(FXObject*, FXSelector, void* ptr) {
256  FXEvent* e = (FXEvent*)ptr;
257  switch (e->code) {
258  case KEY_Escape:
259  editCancel();
260  return 1;
261  case KEY_Return:
262  case KEY_KP_Enter:
263  editEnd();
264 // flgEnter = TRUE;
265 // if(e->state & SHIFTMASK) handle(this, FXSEL(SEL_COMMAND,ID_NEXTLINE), NULL);
266  return 1;
267  case KEY_Up:
268  case KEY_Down:
269 // editEnd();
270  // handle(this, FXSEL(SEL_KEYPRESS,0), ptr);
271  return 1;
272  }
273  return 0;
274 }
275 
276 
277 long
278 MFXEditableTable::onKeyRelease(FXObject* sender, FXSelector sel, void* ptr) {
279  FXint key = ((FXEvent*)ptr)->code;
280  if (/*flgEnter &&*/ key == KEY_Return || key == KEY_KP_Enter) {
281 // flgEnter = FALSE;
282  return 1;
283  }
284 // flgEnter = FALSE;
285  return FXTable::onKeyRelease(sender, sel, ptr);
286 }
287 
288 
289 long
290 MFXEditableTable::onEditFocusOut(FXObject*, FXSelector, void*) {
291  editEnd();
292  return 0;
293 }
294 
295 /*
296 long
297 MFXEditableTable::onTipTimer(FXObject* sender, FXSelector sel, void* ptr)
298 {
299  if(myEditedItem) return 0;
300  return FXTable::onTipTimer(sender, sel, ptr);
301 }
302 */
303 
304 long
305 MFXEditableTable::onRightBtnRelease(FXObject* sender, FXSelector sel, void* ptr) {
306  /* if(dragItem) {
307  flags &= ~(FLAG_PRESSED | FLAG_TRYDRAG | FLAG_DODRAG);
308  endDrag(FALSE);
309  setDragCursor(getDefaultCursor());
310  dragItem = NULL;
311  }*/
312  return FXTable::onRightBtnRelease(sender, sel, ptr);
313 }
314 
315 
316 
317 long
318 MFXEditableTable::onHScrollerChanged(FXObject* o, FXSelector s, void* d) {
319  editEnd();
320  return FXScrollArea::onHScrollerChanged(o, s, d);
321 }
322 
323 
324 long
325 MFXEditableTable::onVScrollerChanged(FXObject* o, FXSelector s, void* d) {
326  editEnd();
327  return FXScrollArea::onVScrollerChanged(o, s, d);
328 }
329 
330 
331 long
332 MFXEditableTable::onHScrollerDragged(FXObject* o, FXSelector s, void* d) {
333  editEnd();
334  return FXScrollArea::onHScrollerDragged(o, s, d);
335 }
336 
337 
338 long
339 MFXEditableTable::onVScrollerDragged(FXObject* o, FXSelector s, void* d) {
340  editEnd();
341  return FXScrollArea::onVScrollerDragged(o, s, d);
342 }
343 
344 
345 long
346 MFXEditableTable::onAutoScroll(FXObject* o, FXSelector s, void* d) {
347  editEnd();
348  return FXTable::onAutoScroll(o, s, d);
349 }
350 
351 
352 long
353 MFXEditableTable::onUngrabbed(FXObject* o, FXSelector s, void* d) {
354  editEnd();
355  return FXTable::onUngrabbed(o, s, d);
356 }
357 
358 
359 long
360 MFXEditableTable::onRightBtnPress(FXObject* o, FXSelector s, void* d) {
361  editEnd();
362  return FXTable::onRightBtnPress(o, s, d);
363 }
364 
365 
366 long
367 MFXEditableTable::onTabKeyPress(FXObject* o, FXSelector s, void* d) {
368  editEnd();
369  return FXTable::onKeyPress(o, s, d);
370 }
371 
372 
373 long
374 MFXEditableTable::onTabKeyRelease(FXObject* o, FXSelector s, void* d) {
375  editEnd();
376  return FXTable::onKeyRelease(o, s, d);
377 }
378 
379 
380 long
381 MFXEditableTable::onFocusIn(FXObject* o, FXSelector s, void* d) {
382 // editEnd();
383  return FXTable::onFocusIn(o, s, d);
384 }
385 
386 
387 long
388 MFXEditableTable::onFocusOut(FXObject* o, FXSelector s, void* d) {
389 // editEnd();
390  return FXTable::onFocusOut(o, s, d);
391 }
392 
393 
394 long
395 MFXEditableTable::onSelectionLost(FXObject* o, FXSelector s, void* d) {
396 // editEnd();
397  return FXTable::onSelectionLost(o, s, d);
398 }
399 
400 
401 long
402 MFXEditableTable::onSelectionGained(FXObject* o, FXSelector s, void* d) {
403 // editEnd();
404  return FXTable::onSelectionGained(o, s, d);
405 }
406 
407 
408 long
409 MFXEditableTable::onSelectionRequest(FXObject* o, FXSelector s, void* d) {
410 // editEnd();
411  return FXTable::onSelectionRequest(o, s, d);
412 }
413 
414 
415 long
416 MFXEditableTable::onClipboardLost(FXObject* o, FXSelector s, void* d) {
417  editEnd();
418  return FXTable::onClipboardLost(o, s, d);
419 }
420 
421 
422 long
423 MFXEditableTable::onClipboardGained(FXObject* o, FXSelector s, void* d) {
424  editEnd();
425  return FXTable::onClipboardGained(o, s, d);
426 }
427 
428 
429 long
430 MFXEditableTable::onClipboardRequest(FXObject* o, FXSelector s, void* d) {
431  editEnd();
432  return FXTable::onClipboardRequest(o, s, d);
433 }
434 
435 
436 long
437 MFXEditableTable::onDoubleClicked(FXObject*, FXSelector, void*) {
438  editEnd();
439  return 1;
440 // return FXTable::onUngrabbed(o, s, d);
441 }
442 
443 
444 long
445 MFXEditableTable::onTripleClicked(FXObject*, FXSelector, void*) {
446  editEnd();
447  return 1;
448 // return FXTable::onUngrabbed(o, s, d);
449 }
450 
451 
452 long
453 MFXEditableTable::onCommand(FXObject* o, FXSelector s, void* d) {
454  editEnd();
455  return FXTable::onCommand(o, s, d);
456 }
457 
458 
459 long
460 MFXEditableTable::onUpdHorzGrid(FXObject* o, FXSelector s, void* d) {
461  editEnd();
462  return FXTable::onUpdHorzGrid(o, s, d);
463 }
464 
465 
466 long
467 MFXEditableTable::onUpdVertGrid(FXObject* o, FXSelector s, void* d) {
468  editEnd();
469  return FXTable::onUpdVertGrid(o, s, d);
470 }
471 
472 
473 long
474 MFXEditableTable::onCmdHorzGrid(FXObject* o, FXSelector s, void* d) {
475  editEnd();
476  return FXTable::onCmdHorzGrid(o, s, d);
477 }
478 
479 
480 long
481 MFXEditableTable::onCmdVertGrid(FXObject* o, FXSelector s, void* d) {
482  editEnd();
483  return FXTable::onCmdVertGrid(o, s, d);
484 }
485 
486 
487 long
488 MFXEditableTable::onCmdDeleteColumn(FXObject*, FXSelector, void*) {
489  editEnd();
490  return 1;
491 // return FXTable::onUngrabbed(o, s, d);
492 }
493 
494 
495 long
496 MFXEditableTable::onUpdDeleteColumn(FXObject*, FXSelector, void*) {
497  editEnd();
498  return 1;
499 // return FXTable::onUngrabbed(o, s, d);
500 }
501 
502 
503 long
504 MFXEditableTable::onCmdDeleteRow(FXObject*, FXSelector, void*) {
505  editEnd();
506  return 1;
507 // return FXTable::onUngrabbed(o, s, d);
508 }
509 
510 
511 long
512 MFXEditableTable::onUpdDeleteRow(FXObject*, FXSelector, void*) {
513  editEnd();
514  return 1;
515 // return FXTable::onUngrabbed(o, s, d);
516 }
517 
518 
519 long
520 MFXEditableTable::onCmdInsertColumn(FXObject*, FXSelector, void*) {
521  editEnd();
522  return 1;
523 // return FXTable::onUngrabbed(o, s, d);
524 }
525 
526 
527 long
528 MFXEditableTable::onCmdInsertRow(FXObject*, FXSelector, void*) {
529  editEnd();
530  return 1;
531 // return FXTable::onUngrabbed(o, s, d);
532 }
533 
534 
535 
536 long
537 MFXEditableTable::onCmdMoveLeft(FXObject* o, FXSelector s, void* d) {
538  editEnd();
539  return FXTable::onCmdMoveLeft(o, s, d);
540 }
541 
542 
543 long
544 MFXEditableTable::onCmdMoveRight(FXObject* o, FXSelector s, void* d) {
545  editEnd();
546  return FXTable::onCmdMoveRight(o, s, d);
547 }
548 
549 
550 long
551 MFXEditableTable::onCmdMoveUp(FXObject* o, FXSelector s, void* d) {
552  editEnd();
553  return FXTable::onCmdMoveUp(o, s, d);
554 }
555 
556 
557 long
558 MFXEditableTable::onCmdMoveDown(FXObject* o, FXSelector s, void* d) {
559  editEnd();
560  return FXTable::onCmdMoveDown(o, s, d);
561 }
562 
563 
564 long
565 MFXEditableTable::onCmdMoveHome(FXObject* o, FXSelector s, void* d) {
566  editEnd();
567  return FXTable::onCmdMoveHome(o, s, d);
568 }
569 
570 
571 long
572 MFXEditableTable::onCmdMoveEnd(FXObject* o, FXSelector s, void* d) {
573  editEnd();
574  return FXTable::onCmdMoveEnd(o, s, d);
575 }
576 
577 
578 long
579 MFXEditableTable::onCmdMoveTop(FXObject* o, FXSelector s, void* d) {
580  editEnd();
581  return FXTable::onCmdMoveTop(o, s, d);
582 }
583 
584 
585 long
586 MFXEditableTable::onCmdMoveBottom(FXObject* o, FXSelector s, void* d) {
587  editEnd();
588  return FXTable::onCmdMoveBottom(o, s, d);
589 }
590 
591 
592 long
593 MFXEditableTable::onCmdMovePageDown(FXObject* o, FXSelector s, void* d) {
594  editEnd();
595  return FXTable::onCmdMovePageDown(o, s, d);
596 }
597 
598 
599 long
600 MFXEditableTable::onCmdMovePageUp(FXObject* o, FXSelector s, void* d) {
601  editEnd();
602  return FXTable::onCmdMovePageUp(o, s, d);
603 }
604 
605 
606 
607 long
608 MFXEditableTable::onCmdSelectRowIndex(FXObject* o, FXSelector s, void* d) {
609  editEnd();
610  return FXTable::onCmdSelectRowIndex(o, s, d);
611 }
612 
613 
614 long
615 MFXEditableTable::onCmdSelectColumnIndex(FXObject*, FXSelector, void*) {
616  editEnd();
617  return 1;
618 // return FXTable::onUngrabbed(o, s, d);
619 }
620 
621 
622 long
623 MFXEditableTable::onCmdSelectColumn(FXObject*, FXSelector, void*) {
624  editEnd();
625  return 1;
626 // return FXTable::onUngrabbed(o, s, d);
627 }
628 
629 
630 long
631 MFXEditableTable::onCmdSelectRow(FXObject* o, FXSelector s, void* d) {
632  editEnd();
633  return FXTable::onCmdSelectRow(o, s, d);
634 }
635 
636 
637 long
638 MFXEditableTable::onCmdSelectCell(FXObject*, FXSelector, void*) {
639 // editEnd();
640  return 1;
641 // return FXTable::onUngrabbed(o, s, d);
642 }
643 
644 
645 long
646 MFXEditableTable::onCmdSelectAll(FXObject*, FXSelector, void*) {
647  editEnd();
648  return 1;
649 // return FXTable::onUngrabbed(o, s, d);
650 }
651 
652 
653 long
654 MFXEditableTable::onCmdDeselectAll(FXObject*, FXSelector, void*) {
655  editEnd();
656  return 1;
657 // return FXTable::onUngrabbed(o, s, d);
658 }
659 
660 
661 long
662 MFXEditableTable::onCmdMark(FXObject* o, FXSelector s, void* d) {
663  editEnd();
664  return FXTable::onCmdMark(o, s, d);
665 }
666 
667 
668 long
669 MFXEditableTable::onCmdExtend(FXObject* o, FXSelector s, void* d) {
670  editEnd();
671  return FXTable::onCmdExtend(o, s, d);
672 }
673 
674 
675 void
677  if (val) {
678  myWriteProtectedCols.insert(col);
679  } else {
680  std::set<int>::iterator i = myWriteProtectedCols.find(col);
681  if (i != myWriteProtectedCols.end()) {
682  myWriteProtectedCols.erase(i);
683  }
684  }
685 }
686 
687 
688 
689 /****************************************************************************/
690 
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
MFXEditableTable::onCmdInsertColumn
long onCmdInsertColumn(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:520
MFXEditableTable::ID_EDITEND
@ 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
@ 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
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::onFocusOut
long onFocusOut(FXObject *o, FXSelector s, void *d)
Definition: MFXEditableTable.cpp:388
MFXEditableTable::myWriteProtectedCols
std::set< int > myWriteProtectedCols
Definition: MFXEditableTable.h:131
FXDEFMAP
FXDEFMAP(MFXEditableTable) MFXEditableTableMap[]
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::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.h
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
@ 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