SUMO - Simulation of Urban MObility

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 (C) 2001-2011 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) {
00186         x += icon->getWidth() + 4;
00187     }
00188     FXint vw = getViewportWidth();
00189     if (vertical->shown()) {
00190         vw -= vertical->getWidth();
00191     }
00192     if (vw>getColumnWidth(myEditedCol)) {
00193         vw = getColumnWidth(myEditedCol) + x;
00194     }
00195     myEditor->setText(it->getText());
00196     myEditor->move(x, y);
00197     myEditor->resize(vw - x + 1, getRowHeight(myEditedRow) + 1);
00198     myEditor->show();
00199     myEditor->raise();
00200     myEditor->setFocus();
00201     if (how == 'I') {
00202         myEditor->killSelection();
00203         myEditor->setCursorPos(0);
00204     } else if (how == 'A') {
00205         myEditor->killSelection();
00206         myEditor->setCursorPos(myEditor->getText().length());
00207     } else {
00208         myEditor->selectAll();
00209     }
00210     myEditedItem = it;
00211 }
00212 
00213 
00214 void
00215 MFXEditableTable::editEnd() {
00216     if (!myEditedItem) {
00217         return;
00218     }
00219     FXTableItem* item= myEditedItem;
00220     myEditedItem = NULL;
00221     myEditor->hide();
00222     setFocus();
00223     FXString text = myEditor->getText();
00224     myEditedItem = 0;
00225     if (item->getText() == text) {
00226         return;
00227     }
00228     if (handle(item, FXSEL(SEL_COMMAND,ID_EDITEND), &text)) {
00229         item->setText(text);
00230         handle(this, FXSEL(SEL_CHANGED,0), item);
00231     }
00232     killSelection(true);
00233     if (target) {
00234         MFXEditedTableItem edited;
00235         edited.item = item;
00236         edited.row = myEditedRow;
00237         edited.col = myEditedCol;
00238         if (!target->handle(this,FXSEL(SEL_CHANGED, ID_TEXT_CHANGED), (void*) &edited)) {
00239             item->setText(myPreviousText);
00240         }
00241     }
00242 }
00243 
00244 
00245 long
00246 MFXEditableTable::onEditEnd(FXObject*,FXSelector ,void*) {
00247     delete myEditedItem;
00248     myEditedItem = 0;
00249     return 1;
00250 }
00251 
00252 
00253 void
00254 MFXEditableTable::editCancel() {
00255     if (!myEditedItem) {
00256         return;
00257     }
00258     myEditedItem = 0;
00259     myEditor->hide();
00260     setFocus();
00261     killSelection(true);
00262 }
00263 
00264 
00265 long
00266 MFXEditableTable::onEditKeyPress(FXObject*,FXSelector,void* ptr) {
00267     FXEvent* e= (FXEvent*)ptr;
00268     switch (e->code) {
00269     case KEY_Escape:
00270         editCancel();
00271         return 1;
00272     case KEY_Return:
00273     case KEY_KP_Enter:
00274         editEnd();
00275 //        flgEnter = TRUE;
00276 //        if(e->state & SHIFTMASK) handle(this, FXSEL(SEL_COMMAND,ID_NEXTLINE), NULL);
00277         return 1;
00278     case KEY_Up:
00279     case KEY_Down:
00280 //        editEnd();
00281         //      handle(this, FXSEL(SEL_KEYPRESS,0), ptr);
00282         return 1;
00283     }
00284     return 0;
00285 }
00286 
00287 
00288 long
00289 MFXEditableTable::onKeyRelease(FXObject* sender, FXSelector sel, void* ptr) {
00290     FXint key= ((FXEvent*)ptr)->code;
00291     if (/*flgEnter &&*/ key == KEY_Return || key == KEY_KP_Enter) {
00292 //        flgEnter = FALSE;
00293         return 1;
00294     }
00295 //    flgEnter = FALSE;
00296     return FXTable::onKeyRelease(sender, sel, ptr);
00297 }
00298 
00299 
00300 long
00301 MFXEditableTable::onEditFocusOut(FXObject*,FXSelector ,void*) {
00302     editEnd();
00303     return 0;
00304 }
00305 
00306 /*
00307 long
00308 MFXEditableTable::onTipTimer(FXObject* sender, FXSelector sel, void* ptr)
00309 {
00310     if(myEditedItem) return 0;
00311     return FXTable::onTipTimer(sender, sel, ptr);
00312 }
00313 */
00314 
00315 long
00316 MFXEditableTable::onRightBtnRelease(FXObject* sender, FXSelector sel, void* ptr) {
00317     /*  if(dragItem) {
00318         flags &= ~(FLAG_PRESSED | FLAG_TRYDRAG | FLAG_DODRAG);
00319         endDrag(FALSE);
00320         setDragCursor(getDefaultCursor());
00321         dragItem = NULL;
00322         }*/
00323     return FXTable::onRightBtnRelease(sender, sel, ptr);
00324 }
00325 
00326 
00327 
00328 long
00329 MFXEditableTable::onHScrollerChanged(FXObject* o,FXSelector s,void* d) {
00330     editEnd();
00331     return FXScrollArea::onHScrollerChanged(o, s, d);
00332 }
00333 
00334 
00335 long
00336 MFXEditableTable::onVScrollerChanged(FXObject* o,FXSelector s,void* d) {
00337     editEnd();
00338     return FXScrollArea::onVScrollerChanged(o, s, d);
00339 }
00340 
00341 
00342 long
00343 MFXEditableTable::onHScrollerDragged(FXObject* o,FXSelector s,void* d) {
00344     editEnd();
00345     return FXScrollArea::onHScrollerDragged(o, s, d);
00346 }
00347 
00348 
00349 long
00350 MFXEditableTable::onVScrollerDragged(FXObject* o,FXSelector s,void* d) {
00351     editEnd();
00352     return FXScrollArea::onVScrollerDragged(o, s, d);
00353 }
00354 
00355 
00356 long
00357 MFXEditableTable::onAutoScroll(FXObject* o,FXSelector s,void* d) {
00358     editEnd();
00359     return FXTable::onAutoScroll(o, s, d);
00360 }
00361 
00362 
00363 long
00364 MFXEditableTable::onUngrabbed(FXObject* o,FXSelector s,void* d) {
00365     editEnd();
00366     return FXTable::onUngrabbed(o, s, d);
00367 }
00368 
00369 
00370 long
00371 MFXEditableTable::onRightBtnPress(FXObject* o,FXSelector s,void* d) {
00372     editEnd();
00373     return FXTable::onRightBtnPress(o, s, d);
00374 }
00375 
00376 
00377 long
00378 MFXEditableTable::onTabKeyPress(FXObject* o,FXSelector s,void* d) {
00379     editEnd();
00380     return FXTable::onKeyPress(o, s, d);
00381 }
00382 
00383 
00384 long
00385 MFXEditableTable::onTabKeyRelease(FXObject* o,FXSelector s,void* d) {
00386     editEnd();
00387     return FXTable::onKeyRelease(o, s, d);
00388 }
00389 
00390 
00391 long
00392 MFXEditableTable::onFocusIn(FXObject* o,FXSelector s,void* d) {
00393 //    editEnd();
00394     return FXTable::onFocusIn(o, s, d);
00395 }
00396 
00397 
00398 long
00399 MFXEditableTable::onFocusOut(FXObject* o,FXSelector s,void* d) {
00400 //    editEnd();
00401     return FXTable::onFocusOut(o, s, d);
00402 }
00403 
00404 
00405 long
00406 MFXEditableTable::onSelectionLost(FXObject* o,FXSelector s,void* d) {
00407 //    editEnd();
00408     return FXTable::onSelectionLost(o, s, d);
00409 }
00410 
00411 
00412 long
00413 MFXEditableTable::onSelectionGained(FXObject* o,FXSelector s,void* d) {
00414 //    editEnd();
00415     return FXTable::onSelectionGained(o, s, d);
00416 }
00417 
00418 
00419 long
00420 MFXEditableTable::onSelectionRequest(FXObject* o,FXSelector s,void* d) {
00421 //    editEnd();
00422     return FXTable::onSelectionRequest(o, s, d);
00423 }
00424 
00425 
00426 long
00427 MFXEditableTable::onClipboardLost(FXObject* o,FXSelector s,void* d) {
00428     editEnd();
00429     return FXTable::onClipboardLost(o, s, d);
00430 }
00431 
00432 
00433 long
00434 MFXEditableTable::onClipboardGained(FXObject* o,FXSelector s,void* d) {
00435     editEnd();
00436     return FXTable::onClipboardGained(o, s, d);
00437 }
00438 
00439 
00440 long
00441 MFXEditableTable::onClipboardRequest(FXObject* o,FXSelector s,void* d) {
00442     editEnd();
00443     return FXTable::onClipboardRequest(o, s, d);
00444 }
00445 
00446 
00447 long
00448 MFXEditableTable::onDoubleClicked(FXObject*,FXSelector ,void*) {
00449     editEnd();
00450     return 1;
00451 //    return FXTable::onUngrabbed(o, s, d);
00452 }
00453 
00454 
00455 long
00456 MFXEditableTable::onTripleClicked(FXObject*,FXSelector ,void*) {
00457     editEnd();
00458     return 1;
00459 //    return FXTable::onUngrabbed(o, s, d);
00460 }
00461 
00462 
00463 long
00464 MFXEditableTable::onCommand(FXObject* o,FXSelector s,void* d) {
00465     editEnd();
00466     return FXTable::onCommand(o, s, d);
00467 }
00468 
00469 
00470 long
00471 MFXEditableTable::onUpdHorzGrid(FXObject* o,FXSelector s,void* d) {
00472     editEnd();
00473     return FXTable::onUpdHorzGrid(o, s, d);
00474 }
00475 
00476 
00477 long
00478 MFXEditableTable::onUpdVertGrid(FXObject* o,FXSelector s,void* d) {
00479     editEnd();
00480     return FXTable::onUpdVertGrid(o, s, d);
00481 }
00482 
00483 
00484 long
00485 MFXEditableTable::onCmdHorzGrid(FXObject* o,FXSelector s,void* d) {
00486     editEnd();
00487     return FXTable::onCmdHorzGrid(o, s, d);
00488 }
00489 
00490 
00491 long
00492 MFXEditableTable::onCmdVertGrid(FXObject* o,FXSelector s,void* d) {
00493     editEnd();
00494     return FXTable::onCmdVertGrid(o, s, d);
00495 }
00496 
00497 
00498 long
00499 MFXEditableTable::onCmdDeleteColumn(FXObject*,FXSelector ,void*) {
00500     editEnd();
00501     return 1;
00502 //    return FXTable::onUngrabbed(o, s, d);
00503 }
00504 
00505 
00506 long
00507 MFXEditableTable::onUpdDeleteColumn(FXObject*,FXSelector ,void*) {
00508     editEnd();
00509     return 1;
00510 //    return FXTable::onUngrabbed(o, s, d);
00511 }
00512 
00513 
00514 long
00515 MFXEditableTable::onCmdDeleteRow(FXObject*,FXSelector ,void*) {
00516     editEnd();
00517     return 1;
00518 //    return FXTable::onUngrabbed(o, s, d);
00519 }
00520 
00521 
00522 long
00523 MFXEditableTable::onUpdDeleteRow(FXObject*,FXSelector ,void*) {
00524     editEnd();
00525     return 1;
00526 //    return FXTable::onUngrabbed(o, s, d);
00527 }
00528 
00529 
00530 long
00531 MFXEditableTable::onCmdInsertColumn(FXObject*,FXSelector ,void*) {
00532     editEnd();
00533     return 1;
00534 //    return FXTable::onUngrabbed(o, s, d);
00535 }
00536 
00537 
00538 long
00539 MFXEditableTable::onCmdInsertRow(FXObject*,FXSelector ,void*) {
00540     editEnd();
00541     return 1;
00542 //    return FXTable::onUngrabbed(o, s, d);
00543 }
00544 
00545 
00546 
00547 long
00548 MFXEditableTable::onCmdMoveLeft(FXObject* o,FXSelector s,void* d) {
00549     editEnd();
00550     return FXTable::onCmdMoveLeft(o, s, d);
00551 }
00552 
00553 
00554 long
00555 MFXEditableTable::onCmdMoveRight(FXObject* o,FXSelector s,void* d) {
00556     editEnd();
00557     return FXTable::onCmdMoveRight(o, s, d);
00558 }
00559 
00560 
00561 long
00562 MFXEditableTable::onCmdMoveUp(FXObject* o,FXSelector s,void* d) {
00563     editEnd();
00564     return FXTable::onCmdMoveUp(o, s, d);
00565 }
00566 
00567 
00568 long
00569 MFXEditableTable::onCmdMoveDown(FXObject* o,FXSelector s,void* d) {
00570     editEnd();
00571     return FXTable::onCmdMoveDown(o, s, d);
00572 }
00573 
00574 
00575 long
00576 MFXEditableTable::onCmdMoveHome(FXObject* o,FXSelector s,void* d) {
00577     editEnd();
00578     return FXTable::onCmdMoveHome(o, s, d);
00579 }
00580 
00581 
00582 long
00583 MFXEditableTable::onCmdMoveEnd(FXObject* o,FXSelector s,void* d) {
00584     editEnd();
00585     return FXTable::onCmdMoveEnd(o, s, d);
00586 }
00587 
00588 
00589 long
00590 MFXEditableTable::onCmdMoveTop(FXObject* o,FXSelector s,void* d) {
00591     editEnd();
00592     return FXTable::onCmdMoveTop(o, s, d);
00593 }
00594 
00595 
00596 long
00597 MFXEditableTable::onCmdMoveBottom(FXObject* o,FXSelector s,void* d) {
00598     editEnd();
00599     return FXTable::onCmdMoveBottom(o, s, d);
00600 }
00601 
00602 
00603 long
00604 MFXEditableTable::onCmdMovePageDown(FXObject* o,FXSelector s,void* d) {
00605     editEnd();
00606     return FXTable::onCmdMovePageDown(o, s, d);
00607 }
00608 
00609 
00610 long
00611 MFXEditableTable::onCmdMovePageUp(FXObject* o,FXSelector s,void* d) {
00612     editEnd();
00613     return FXTable::onCmdMovePageUp(o, s, d);
00614 }
00615 
00616 
00617 
00618 long
00619 MFXEditableTable::onCmdSelectRowIndex(FXObject* o,FXSelector s,void* d) {
00620     editEnd();
00621     return FXTable::onCmdSelectRowIndex(o, s, d);
00622 }
00623 
00624 
00625 long
00626 MFXEditableTable::onCmdSelectColumnIndex(FXObject*,FXSelector ,void*) {
00627     editEnd();
00628     return 1;
00629 //    return FXTable::onUngrabbed(o, s, d);
00630 }
00631 
00632 
00633 long
00634 MFXEditableTable::onCmdSelectColumn(FXObject*,FXSelector ,void*) {
00635     editEnd();
00636     return 1;
00637 //    return FXTable::onUngrabbed(o, s, d);
00638 }
00639 
00640 
00641 long
00642 MFXEditableTable::onCmdSelectRow(FXObject* o,FXSelector s,void* d) {
00643     editEnd();
00644     return FXTable::onCmdSelectRow(o, s, d);
00645 }
00646 
00647 
00648 long
00649 MFXEditableTable::onCmdSelectCell(FXObject*,FXSelector ,void*) {
00650 //    editEnd();
00651     return 1;
00652 //    return FXTable::onUngrabbed(o, s, d);
00653 }
00654 
00655 
00656 long
00657 MFXEditableTable::onCmdSelectAll(FXObject*,FXSelector ,void*) {
00658     editEnd();
00659     return 1;
00660 //    return FXTable::onUngrabbed(o, s, d);
00661 }
00662 
00663 
00664 long
00665 MFXEditableTable::onCmdDeselectAll(FXObject*,FXSelector ,void*) {
00666     editEnd();
00667     return 1;
00668 //    return FXTable::onUngrabbed(o, s, d);
00669 }
00670 
00671 
00672 long
00673 MFXEditableTable::onCmdMark(FXObject* o,FXSelector s,void* d) {
00674     editEnd();
00675     return FXTable::onCmdMark(o, s, d);
00676 }
00677 
00678 
00679 long
00680 MFXEditableTable::onCmdExtend(FXObject* o,FXSelector s,void* d) {
00681     editEnd();
00682     return FXTable::onCmdExtend(o, s, d);
00683 }
00684 
00685 
00686 void
00687 MFXEditableTable::writeProtectCol(int col, bool val) {
00688     if (val) {
00689         myWriteProtectedCols.insert(col);
00690     } else {
00691         std::set<int>::iterator i = myWriteProtectedCols.find(col);
00692         if (i!=myWriteProtectedCols.end()) {
00693             myWriteProtectedCols.erase(i);
00694         }
00695     }
00696 }
00697 
00698 
00699 
00700 /****************************************************************************/
00701 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines