MFXEditableTable.cpp

Go to the documentation of this file.
00001 /****************************************************************************/
00007 // missing_desc
00008 /****************************************************************************/
00009 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/
00010 // Copyright 2001-2010 DLR (http://www.dlr.de/) and contributors
00011 /****************************************************************************/
00012 //
00013 //   This program is free software; you can redistribute it and/or modify
00014 //   it under the terms of the GNU General Public License as published by
00015 //   the Free Software Foundation; either version 2 of the License, or
00016 //   (at your option) any later version.
00017 //
00018 /****************************************************************************/
00019 
00020 
00021 // ===========================================================================
00022 // included modules
00023 // ===========================================================================
00024 #ifdef _MSC_VER
00025 #include <windows_config.h>
00026 #else
00027 #include <config.h>
00028 #endif
00029 
00030 #include <fx.h>
00031 #include <fxkeys.h>
00032 #include "MFXEditableTable.h"
00033 
00034 #ifdef CHECK_MEMORY_LEAKS
00035 #include <foreign/nvwa/debug_new.h>
00036 #endif // CHECK_MEMORY_LEAKS
00037 
00038 FXDEFMAP(MFXEditableTable) MFXEditableTableMap[]= {
00039     FXMAPFUNC(SEL_LEFTBUTTONPRESS,0,MFXEditableTable::onLeftBtnPress),
00040     FXMAPFUNC(SEL_LEFTBUTTONRELEASE,0,MFXEditableTable::onLeftBtnRelease),
00041     FXMAPFUNC(SEL_CLICKED,0,MFXEditableTable::onLeftBtnClicked),
00042     FXMAPFUNC(SEL_RIGHTBUTTONRELEASE,0,MFXEditableTable::onRightBtnRelease),
00043     FXMAPFUNC(SEL_KEYRELEASE,0,MFXEditableTable::onKeyRelease),
00044     FXMAPFUNC(SEL_KEYPRESS,MFXEditableTable::ID_EDITOR, MFXEditableTable::onEditKeyPress),
00045     //    FXMAPFUNC(SEL_TIMEOUT,FXTable::ID_TIPTIMER, MFXEditableTable::onTipTimer),
00046     FXMAPFUNC(SEL_FOCUSOUT,MFXEditableTable::ID_EDITOR, MFXEditableTable::onEditFocusOut),
00047     FXMAPFUNC(SEL_COMMAND,MFXEditableTable::ID_EDITEND, MFXEditableTable::onEditEnd),
00048 
00049     FXMAPFUNC(SEL_COMMAND,FXWindow::ID_HSCROLLED,MFXEditableTable::onHScrollerChanged),
00050     FXMAPFUNC(SEL_COMMAND,FXWindow::ID_VSCROLLED,MFXEditableTable::onVScrollerChanged),
00051     FXMAPFUNC(SEL_CHANGED,FXWindow::ID_HSCROLLED,MFXEditableTable::onHScrollerDragged),
00052     FXMAPFUNC(SEL_CHANGED,FXWindow::ID_VSCROLLED,MFXEditableTable::onVScrollerDragged),
00053     /*
00054       FXMAPFUNC(SEL_TIMEOUT,FXWindow::ID_AUTOSCROLL,MFXEditableTable::onAutoScroll),
00055       FXMAPFUNC(SEL_UNGRABBED,0,MFXEditableTable::onUngrabbed),
00056       FXMAPFUNC(SEL_RIGHTBUTTONPRESS,0,MFXEditableTable::onRightBtnPress),
00057       FXMAPFUNC(SEL_KEYPRESS,0,MFXEditableTable::onTabKeyPress),
00058       FXMAPFUNC(SEL_KEYRELEASE,0,MFXEditableTable::onTabKeyRelease),
00059       FXMAPFUNC(SEL_CLIPBOARD_LOST,0,MFXEditableTable::onClipboardLost),
00060       FXMAPFUNC(SEL_CLIPBOARD_GAINED,0,MFXEditableTable::onClipboardGained),
00061       FXMAPFUNC(SEL_CLIPBOARD_REQUEST,0,MFXEditableTable::onClipboardRequest),
00062       FXMAPFUNC(SEL_DOUBLECLICKED,0,MFXEditableTable::onDoubleClicked),
00063       FXMAPFUNC(SEL_TRIPLECLICKED,0,MFXEditableTable::onTripleClicked),
00064       FXMAPFUNC(SEL_COMMAND,0,MFXEditableTable::onCommand),
00065       */
00066     /*
00067       FXMAPFUNC(SEL_FOCUSIN,0,MFXEditableTable::onFocusIn),
00068       FXMAPFUNC(SEL_FOCUSOUT,0,MFXEditableTable::onFocusOut),
00069       FXMAPFUNC(SEL_SELECTION_LOST,0,MFXEditableTable::onSelectionLost),
00070       FXMAPFUNC(SEL_SELECTION_GAINED,0,MFXEditableTable::onSelectionGained),
00071       FXMAPFUNC(SEL_SELECTION_REQUEST,0,MFXEditableTable::onSelectionRequest),
00072     */
00073 
00074     FXMAPFUNC(SEL_UPDATE,FXTable::ID_HORZ_GRID,MFXEditableTable::onUpdHorzGrid),
00075     FXMAPFUNC(SEL_UPDATE,FXTable::ID_VERT_GRID,MFXEditableTable::onUpdVertGrid),
00076     FXMAPFUNC(SEL_COMMAND,FXTable::ID_HORZ_GRID,MFXEditableTable::onCmdHorzGrid),
00077     FXMAPFUNC(SEL_COMMAND,FXTable::ID_VERT_GRID,MFXEditableTable::onCmdVertGrid),
00078     FXMAPFUNC(SEL_COMMAND,FXTable::ID_DELETE_COLUMN,MFXEditableTable::onCmdDeleteColumn),
00079     FXMAPFUNC(SEL_UPDATE,FXTable::ID_DELETE_COLUMN,MFXEditableTable::onUpdDeleteColumn),
00080     FXMAPFUNC(SEL_COMMAND,FXTable::ID_DELETE_ROW,MFXEditableTable::onCmdDeleteRow),
00081     FXMAPFUNC(SEL_UPDATE,FXTable::ID_DELETE_ROW,MFXEditableTable::onUpdDeleteRow),
00082     FXMAPFUNC(SEL_COMMAND,FXTable::ID_INSERT_COLUMN,MFXEditableTable::onCmdInsertColumn),
00083     FXMAPFUNC(SEL_COMMAND,FXTable::ID_INSERT_ROW,MFXEditableTable::onCmdInsertRow),
00084 
00085     FXMAPFUNC(SEL_COMMAND,FXTable::ID_MOVE_LEFT,MFXEditableTable::onCmdMoveLeft),
00086     FXMAPFUNC(SEL_COMMAND,FXTable::ID_MOVE_RIGHT,MFXEditableTable::onCmdMoveRight),
00087     FXMAPFUNC(SEL_COMMAND,FXTable::ID_MOVE_UP,MFXEditableTable::onCmdMoveUp),
00088     FXMAPFUNC(SEL_COMMAND,FXTable::ID_MOVE_DOWN,MFXEditableTable::onCmdMoveDown),
00089     FXMAPFUNC(SEL_COMMAND,FXTable::ID_MOVE_HOME,MFXEditableTable::onCmdMoveHome),
00090     FXMAPFUNC(SEL_COMMAND,FXTable::ID_MOVE_END,MFXEditableTable::onCmdMoveEnd),
00091     FXMAPFUNC(SEL_COMMAND,FXTable::ID_MOVE_TOP,MFXEditableTable::onCmdMoveTop),
00092     FXMAPFUNC(SEL_COMMAND,FXTable::ID_MOVE_BOTTOM,MFXEditableTable::onCmdMoveBottom),
00093     FXMAPFUNC(SEL_COMMAND,FXTable::ID_MOVE_PAGEDOWN,MFXEditableTable::onCmdMovePageDown),
00094     FXMAPFUNC(SEL_COMMAND,FXTable::ID_MOVE_PAGEUP,MFXEditableTable::onCmdMovePageUp),
00095 
00096     FXMAPFUNC(SEL_COMMAND,FXTable::ID_SELECT_ROW_INDEX,MFXEditableTable::onCmdSelectRowIndex),
00097     FXMAPFUNC(SEL_COMMAND,FXTable::ID_SELECT_COLUMN_INDEX,MFXEditableTable::onCmdSelectColumnIndex),
00098     FXMAPFUNC(SEL_COMMAND,FXTable::ID_SELECT_COLUMN,MFXEditableTable::onCmdSelectColumn),
00099     FXMAPFUNC(SEL_COMMAND,FXTable::ID_SELECT_ROW,MFXEditableTable::onCmdSelectRow),
00100     //  FXMAPFUNC(SEL_COMMAND,FXTable::ID_SELECT_CELL,MFXEditableTable::onCmdSelectCell),
00101     FXMAPFUNC(SEL_COMMAND,FXTable::ID_SELECT_ALL,MFXEditableTable::onCmdSelectAll),
00102     FXMAPFUNC(SEL_COMMAND,FXTable::ID_DESELECT_ALL,MFXEditableTable::onCmdDeselectAll),
00103     FXMAPFUNC(SEL_COMMAND,FXTable::ID_MARK,MFXEditableTable::onCmdMark),
00104     FXMAPFUNC(SEL_COMMAND,FXTable::ID_EXTEND,MFXEditableTable::onCmdExtend),
00105 };
00106 
00107 
00108 // Object implementation
00109 FXIMPLEMENT(MFXEditableTable,FXTable,MFXEditableTableMap,ARRAYNUMBER(MFXEditableTableMap))
00110 
00111 
00112 MFXEditableTable::MFXEditableTable(FXComposite *p, FXObject* tgt,
00113                                    FXSelector sel, FXuint opts,
00114                                    FXint x, FXint y, FXint w, FXint h,
00115                                    FXint pl,FXint pr,FXint pt,FXint pb)
00116         : FXTable(p, tgt, sel, opts, x, y, w, h, pl, pr, pt, pb),
00117         myEditedItem(0) {
00118     myEditor=
00119         new FXTextField((FXComposite*)getParent(),1,this,
00120                         ID_EDITOR,FRAME_NORMAL|LAYOUT_EXPLICIT);
00121     myEditor->hide();
00122     flags |= FLAG_ENABLED|FLAG_DROPTARGET;
00123 }
00124 
00125 
00126 MFXEditableTable::~MFXEditableTable() {}
00127 
00128 
00129 long
00130 MFXEditableTable::onLeftBtnPress(FXObject* sender, FXSelector sel, void* ptr) {
00131     editEnd();
00132     FXTable::onLeftBtnPress(sender, sel, ptr);
00133     return 1;
00134 }
00135 
00136 
00137 long
00138 MFXEditableTable::onLeftBtnClicked(FXObject* , FXSelector , void* ptr) {
00139     FXTablePos* e= (FXTablePos*)ptr;
00140     int r = e->row;
00141     int c = e->col;
00142     if (c==-1||r==-1) {
00143         return 1;
00144     }
00145     killSelection(false);
00146     myEditedItem = getItem(r, c);
00147     myEditedCol = c;
00148     myEditedRow = r;
00149     if (c>=0&&r>=0) {
00150         editItem(myEditedItem, 0);
00151     } else {
00152         editEnd();
00153     }
00154     return 1;
00155 }
00156 
00157 
00158 long
00159 MFXEditableTable::onLeftBtnRelease(FXObject* sender, FXSelector sel, void* ptr) {
00160     FXTable::onLeftBtnRelease(sender, sel, ptr);
00161     /*    FXEvent* e= (FXEvent*)ptr;
00162         if(flgEditTimer) {
00163             flgEditTimer = FALSE;
00164             if(!e->moved) getApp()->addTimeout(this,ID_EDITTIMER,600);
00165         }*/
00166     return 1;
00167 }
00168 
00169 
00170 void
00171 MFXEditableTable::editItem(FXTableItem* item,FXint how) {
00172     if (item==0) {
00173         editEnd();
00174         return;
00175     }
00176     if (myWriteProtectedCols.find(myEditedCol)!=myWriteProtectedCols.end()) {
00177         editEnd();
00178         return;
00179     }
00180     FXTableItem* it= item;
00181     myPreviousText = item->getText();
00182     FXint x = getColumnX(myEditedCol) + getRowHeader()->getWidth() + xpos;
00183     FXint y = getRowY(myEditedRow) + getColumnHeader()->getHeight() + ypos;
00184     FXIcon* icon = item->getIcon();
00185     if (icon) x += icon->getWidth() + 4;
00186     FXint vw = getViewportWidth();
00187     if (vertical->shown()) vw -= vertical->getWidth();
00188     if (vw>getColumnWidth(myEditedCol)) {
00189         vw = getColumnWidth(myEditedCol) + x;
00190     }
00191     myEditor->setText(it->getText());
00192     myEditor->move(x, y);
00193     myEditor->resize(vw - x + 1, getRowHeight(myEditedRow) + 1);
00194     myEditor->show();
00195     myEditor->raise();
00196     myEditor->setFocus();
00197     if (how == 'I') {
00198         myEditor->killSelection();
00199         myEditor->setCursorPos(0);
00200     } else if (how == 'A') {
00201         myEditor->killSelection();
00202         myEditor->setCursorPos(myEditor->getText().length());
00203     } else myEditor->selectAll();
00204     myEditedItem = it;
00205 }
00206 
00207 
00208 void
00209 MFXEditableTable::editEnd() {
00210     if (!myEditedItem) return;
00211     FXTableItem* item= myEditedItem;
00212     myEditedItem = NULL;
00213     myEditor->hide();
00214     setFocus();
00215     FXString text = myEditor->getText();
00216     myEditedItem = 0;
00217     if (item->getText() == text) return;
00218     if (handle(item, FXSEL(SEL_COMMAND,ID_EDITEND), &text)) {
00219         item->setText(text);
00220         handle(this, FXSEL(SEL_CHANGED,0), item);
00221     }
00222     killSelection(true);
00223     if (target) {
00224         MFXEditedTableItem edited;
00225         edited.item = item;
00226         edited.row = myEditedRow;
00227         edited.col = myEditedCol;
00228         if (!target->handle(this,FXSEL(SEL_CHANGED, ID_TEXT_CHANGED), (void*) &edited)) {
00229             item->setText(myPreviousText);
00230         }
00231     }
00232 }
00233 
00234 
00235 long
00236 MFXEditableTable::onEditEnd(FXObject *,FXSelector ,void *) {
00237     delete myEditedItem;
00238     myEditedItem = 0;
00239     return 1;
00240 }
00241 
00242 
00243 void
00244 MFXEditableTable::editCancel() {
00245     if (!myEditedItem) return;
00246     myEditedItem = 0;
00247     myEditor->hide();
00248     setFocus();
00249     killSelection(true);
00250 }
00251 
00252 
00253 long
00254 MFXEditableTable::onEditKeyPress(FXObject*,FXSelector,void* ptr) {
00255     FXEvent* e= (FXEvent*)ptr;
00256     switch (e->code) {
00257     case KEY_Escape:
00258         editCancel();
00259         return 1;
00260     case KEY_Return:
00261     case KEY_KP_Enter:
00262         editEnd();
00263 //        flgEnter = TRUE;
00264 //        if(e->state & SHIFTMASK) handle(this, FXSEL(SEL_COMMAND,ID_NEXTLINE), NULL);
00265         return 1;
00266     case KEY_Up:
00267     case KEY_Down:
00268 //        editEnd();
00269         //      handle(this, FXSEL(SEL_KEYPRESS,0), ptr);
00270         return 1;
00271     }
00272     return 0;
00273 }
00274 
00275 
00276 long
00277 MFXEditableTable::onKeyRelease(FXObject* sender, FXSelector sel, void* ptr) {
00278     FXint key= ((FXEvent*)ptr)->code;
00279     if (/*flgEnter &&*/ key == KEY_Return || key == KEY_KP_Enter) {
00280 //        flgEnter = FALSE;
00281         return 1;
00282     }
00283 //    flgEnter = FALSE;
00284     return FXTable::onKeyRelease(sender, sel, ptr);
00285 }
00286 
00287 
00288 long
00289 MFXEditableTable::onEditFocusOut(FXObject *,FXSelector ,void *) {
00290     editEnd();
00291     return 0;
00292 }
00293 
00294 /*
00295 long
00296 MFXEditableTable::onTipTimer(FXObject* sender, FXSelector sel, void* ptr)
00297 {
00298     if(myEditedItem) return 0;
00299     return FXTable::onTipTimer(sender, sel, ptr);
00300 }
00301 */
00302 
00303 long
00304 MFXEditableTable::onRightBtnRelease(FXObject* sender, FXSelector sel, void* ptr) {
00305     /*  if(dragItem) {
00306         flags &= ~(FLAG_PRESSED | FLAG_TRYDRAG | FLAG_DODRAG);
00307         endDrag(FALSE);
00308         setDragCursor(getDefaultCursor());
00309         dragItem = NULL;
00310         }*/
00311     return FXTable::onRightBtnRelease(sender, sel, ptr);
00312 }
00313 
00314 
00315 
00316 long
00317 MFXEditableTable::onHScrollerChanged(FXObject *o,FXSelector s,void *d) {
00318     editEnd();
00319     return FXScrollArea::onHScrollerChanged(o, s, d);
00320 }
00321 
00322 
00323 long
00324 MFXEditableTable::onVScrollerChanged(FXObject *o,FXSelector s,void *d) {
00325     editEnd();
00326     return FXScrollArea::onVScrollerChanged(o, s, d);
00327 }
00328 
00329 
00330 long
00331 MFXEditableTable::onHScrollerDragged(FXObject *o,FXSelector s,void *d) {
00332     editEnd();
00333     return FXScrollArea::onHScrollerDragged(o, s, d);
00334 }
00335 
00336 
00337 long
00338 MFXEditableTable::onVScrollerDragged(FXObject *o,FXSelector s,void *d) {
00339     editEnd();
00340     return FXScrollArea::onVScrollerDragged(o, s, d);
00341 }
00342 
00343 
00344 long
00345 MFXEditableTable::onAutoScroll(FXObject *o,FXSelector s,void *d) {
00346     editEnd();
00347     return FXTable::onAutoScroll(o, s, d);
00348 }
00349 
00350 
00351 long
00352 MFXEditableTable::onUngrabbed(FXObject *o,FXSelector s,void *d) {
00353     editEnd();
00354     return FXTable::onUngrabbed(o, s, d);
00355 }
00356 
00357 
00358 long
00359 MFXEditableTable::onRightBtnPress(FXObject *o,FXSelector s,void *d) {
00360     editEnd();
00361     return FXTable::onRightBtnPress(o, s, d);
00362 }
00363 
00364 
00365 long
00366 MFXEditableTable::onTabKeyPress(FXObject *o,FXSelector s,void *d) {
00367     editEnd();
00368     return FXTable::onKeyPress(o, s, d);
00369 }
00370 
00371 
00372 long
00373 MFXEditableTable::onTabKeyRelease(FXObject *o,FXSelector s,void *d) {
00374     editEnd();
00375     return FXTable::onKeyRelease(o, s, d);
00376 }
00377 
00378 
00379 long
00380 MFXEditableTable::onFocusIn(FXObject *o,FXSelector s,void *d) {
00381 //    editEnd();
00382     return FXTable::onFocusIn(o, s, d);
00383 }
00384 
00385 
00386 long
00387 MFXEditableTable::onFocusOut(FXObject *o,FXSelector s,void *d) {
00388 //    editEnd();
00389     return FXTable::onFocusOut(o, s, d);
00390 }
00391 
00392 
00393 long
00394 MFXEditableTable::onSelectionLost(FXObject *o,FXSelector s,void *d) {
00395 //    editEnd();
00396     return FXTable::onSelectionLost(o, s, d);
00397 }
00398 
00399 
00400 long
00401 MFXEditableTable::onSelectionGained(FXObject *o,FXSelector s,void *d) {
00402 //    editEnd();
00403     return FXTable::onSelectionGained(o, s, d);
00404 }
00405 
00406 
00407 long
00408 MFXEditableTable::onSelectionRequest(FXObject *o,FXSelector s,void *d) {
00409 //    editEnd();
00410     return FXTable::onSelectionRequest(o, s, d);
00411 }
00412 
00413 
00414 long
00415 MFXEditableTable::onClipboardLost(FXObject *o,FXSelector s,void *d) {
00416     editEnd();
00417     return FXTable::onClipboardLost(o, s, d);
00418 }
00419 
00420 
00421 long
00422 MFXEditableTable::onClipboardGained(FXObject *o,FXSelector s,void *d) {
00423     editEnd();
00424     return FXTable::onClipboardGained(o, s, d);
00425 }
00426 
00427 
00428 long
00429 MFXEditableTable::onClipboardRequest(FXObject *o,FXSelector s,void *d) {
00430     editEnd();
00431     return FXTable::onClipboardRequest(o, s, d);
00432 }
00433 
00434 
00435 long
00436 MFXEditableTable::onDoubleClicked(FXObject *,FXSelector ,void *) {
00437     editEnd();
00438     return 1;
00439 //    return FXTable::onUngrabbed(o, s, d);
00440 }
00441 
00442 
00443 long
00444 MFXEditableTable::onTripleClicked(FXObject *,FXSelector ,void *) {
00445     editEnd();
00446     return 1;
00447 //    return FXTable::onUngrabbed(o, s, d);
00448 }
00449 
00450 
00451 long
00452 MFXEditableTable::onCommand(FXObject *o,FXSelector s,void *d) {
00453     editEnd();
00454     return FXTable::onCommand(o, s, d);
00455 }
00456 
00457 
00458 long
00459 MFXEditableTable::onUpdHorzGrid(FXObject *o,FXSelector s,void *d) {
00460     editEnd();
00461     return FXTable::onUpdHorzGrid(o, s, d);
00462 }
00463 
00464 
00465 long
00466 MFXEditableTable::onUpdVertGrid(FXObject *o,FXSelector s,void *d) {
00467     editEnd();
00468     return FXTable::onUpdVertGrid(o, s, d);
00469 }
00470 
00471 
00472 long
00473 MFXEditableTable::onCmdHorzGrid(FXObject *o,FXSelector s,void *d) {
00474     editEnd();
00475     return FXTable::onCmdHorzGrid(o, s, d);
00476 }
00477 
00478 
00479 long
00480 MFXEditableTable::onCmdVertGrid(FXObject *o,FXSelector s,void *d) {
00481     editEnd();
00482     return FXTable::onCmdVertGrid(o, s, d);
00483 }
00484 
00485 
00486 long
00487 MFXEditableTable::onCmdDeleteColumn(FXObject *,FXSelector ,void *) {
00488     editEnd();
00489     return 1;
00490 //    return FXTable::onUngrabbed(o, s, d);
00491 }
00492 
00493 
00494 long
00495 MFXEditableTable::onUpdDeleteColumn(FXObject *,FXSelector ,void *) {
00496     editEnd();
00497     return 1;
00498 //    return FXTable::onUngrabbed(o, s, d);
00499 }
00500 
00501 
00502 long
00503 MFXEditableTable::onCmdDeleteRow(FXObject *,FXSelector ,void *) {
00504     editEnd();
00505     return 1;
00506 //    return FXTable::onUngrabbed(o, s, d);
00507 }
00508 
00509 
00510 long
00511 MFXEditableTable::onUpdDeleteRow(FXObject *,FXSelector ,void *) {
00512     editEnd();
00513     return 1;
00514 //    return FXTable::onUngrabbed(o, s, d);
00515 }
00516 
00517 
00518 long
00519 MFXEditableTable::onCmdInsertColumn(FXObject *,FXSelector ,void *) {
00520     editEnd();
00521     return 1;
00522 //    return FXTable::onUngrabbed(o, s, d);
00523 }
00524 
00525 
00526 long
00527 MFXEditableTable::onCmdInsertRow(FXObject *,FXSelector ,void *) {
00528     editEnd();
00529     return 1;
00530 //    return FXTable::onUngrabbed(o, s, d);
00531 }
00532 
00533 
00534 
00535 long
00536 MFXEditableTable::onCmdMoveLeft(FXObject *o,FXSelector s,void *d) {
00537     editEnd();
00538     return FXTable::onCmdMoveLeft(o, s, d);
00539 }
00540 
00541 
00542 long
00543 MFXEditableTable::onCmdMoveRight(FXObject *o,FXSelector s,void *d) {
00544     editEnd();
00545     return FXTable::onCmdMoveRight(o, s, d);
00546 }
00547 
00548 
00549 long
00550 MFXEditableTable::onCmdMoveUp(FXObject *o,FXSelector s,void *d) {
00551     editEnd();
00552     return FXTable::onCmdMoveUp(o, s, d);
00553 }
00554 
00555 
00556 long
00557 MFXEditableTable::onCmdMoveDown(FXObject *o,FXSelector s,void *d) {
00558     editEnd();
00559     return FXTable::onCmdMoveDown(o, s, d);
00560 }
00561 
00562 
00563 long
00564 MFXEditableTable::onCmdMoveHome(FXObject *o,FXSelector s,void *d) {
00565     editEnd();
00566     return FXTable::onCmdMoveHome(o, s, d);
00567 }
00568 
00569 
00570 long
00571 MFXEditableTable::onCmdMoveEnd(FXObject *o,FXSelector s,void *d) {
00572     editEnd();
00573     return FXTable::onCmdMoveEnd(o, s, d);
00574 }
00575 
00576 
00577 long
00578 MFXEditableTable::onCmdMoveTop(FXObject *o,FXSelector s,void *d) {
00579     editEnd();
00580     return FXTable::onCmdMoveTop(o, s, d);
00581 }
00582 
00583 
00584 long
00585 MFXEditableTable::onCmdMoveBottom(FXObject *o,FXSelector s,void *d) {
00586     editEnd();
00587     return FXTable::onCmdMoveBottom(o, s, d);
00588 }
00589 
00590 
00591 long
00592 MFXEditableTable::onCmdMovePageDown(FXObject *o,FXSelector s,void *d) {
00593     editEnd();
00594     return FXTable::onCmdMovePageDown(o, s, d);
00595 }
00596 
00597 
00598 long
00599 MFXEditableTable::onCmdMovePageUp(FXObject *o,FXSelector s,void *d) {
00600     editEnd();
00601     return FXTable::onCmdMovePageUp(o, s, d);
00602 }
00603 
00604 
00605 
00606 long
00607 MFXEditableTable::onCmdSelectRowIndex(FXObject *o,FXSelector s,void *d) {
00608     editEnd();
00609     return FXTable::onCmdSelectRowIndex(o, s, d);
00610 }
00611 
00612 
00613 long
00614 MFXEditableTable::onCmdSelectColumnIndex(FXObject *,FXSelector ,void *) {
00615     editEnd();
00616     return 1;
00617 //    return FXTable::onUngrabbed(o, s, d);
00618 }
00619 
00620 
00621 long
00622 MFXEditableTable::onCmdSelectColumn(FXObject *,FXSelector ,void *) {
00623     editEnd();
00624     return 1;
00625 //    return FXTable::onUngrabbed(o, s, d);
00626 }
00627 
00628 
00629 long
00630 MFXEditableTable::onCmdSelectRow(FXObject *o,FXSelector s,void *d) {
00631     editEnd();
00632     return FXTable::onCmdSelectRow(o, s, d);
00633 }
00634 
00635 
00636 long
00637 MFXEditableTable::onCmdSelectCell(FXObject *,FXSelector ,void *) {
00638 //    editEnd();
00639     return 1;
00640 //    return FXTable::onUngrabbed(o, s, d);
00641 }
00642 
00643 
00644 long
00645 MFXEditableTable::onCmdSelectAll(FXObject *,FXSelector ,void *) {
00646     editEnd();
00647     return 1;
00648 //    return FXTable::onUngrabbed(o, s, d);
00649 }
00650 
00651 
00652 long
00653 MFXEditableTable::onCmdDeselectAll(FXObject *,FXSelector ,void *) {
00654     editEnd();
00655     return 1;
00656 //    return FXTable::onUngrabbed(o, s, d);
00657 }
00658 
00659 
00660 long
00661 MFXEditableTable::onCmdMark(FXObject *o,FXSelector s,void *d) {
00662     editEnd();
00663     return FXTable::onCmdMark(o, s, d);
00664 }
00665 
00666 
00667 long
00668 MFXEditableTable::onCmdExtend(FXObject *o,FXSelector s,void *d) {
00669     editEnd();
00670     return FXTable::onCmdExtend(o, s, d);
00671 }
00672 
00673 
00674 void
00675 MFXEditableTable::writeProtectCol(int col, bool val) {
00676     if (val) {
00677         myWriteProtectedCols.insert(col);
00678     } else {
00679         std::set<int>::iterator i = myWriteProtectedCols.find(col);
00680         if (i!=myWriteProtectedCols.end()) {
00681             myWriteProtectedCols.erase(i);
00682         }
00683     }
00684 }
00685 
00686 
00687 
00688 /****************************************************************************/
00689 

Generated on Wed May 5 00:06:30 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6