SUMO - Simulation of Urban MObility
MFXEditableTable.h
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-2012 DLR (http://www.dlr.de/) and contributors
00011 /****************************************************************************/
00012 //
00013 //   This file is part of SUMO.
00014 //   SUMO is free software: you can redistribute it and/or modify
00015 //   it under the terms of the GNU General Public License as published by
00016 //   the Free Software Foundation, either version 3 of the License, or
00017 //   (at your option) any later version.
00018 //
00019 /****************************************************************************/
00020 #ifndef MFXEditableTable_h
00021 #define MFXEditableTable_h
00022 
00023 
00024 // ===========================================================================
00025 // included modules
00026 // ===========================================================================
00027 #ifdef _MSC_VER
00028 #include <windows_config.h>
00029 #else
00030 #include <config.h>
00031 #endif
00032 
00033 #include <fx.h>
00034 #include <set>
00035 
00036 struct MFXEditedTableItem {
00037     FXTableItem* item;
00038     int row;
00039     int col;
00040     bool updateOnly;
00041 };
00042 
00043 enum {
00044     EDITTABLE_NEXTROW     = 0x02000000   
00045 };
00046 
00047 
00048 class MFXEditableTable : public FXTable {
00049     FXDECLARE(MFXEditableTable)
00050 public:
00051     enum {
00052         ID_LABELEDIT = FXTable::ID_LAST,
00053         ID_EDITEND,
00054         ID_NEXTLINE,
00055         ID_EDITOR,
00056         ID_TEXT_CHANGED,
00057         ID_LAST
00058     };
00059     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);
00060     ~MFXEditableTable();
00061 
00062 public:
00063     long onLeftBtnPress(FXObject* sender, FXSelector sel, void* ptr);
00064     long onLeftBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
00065     long onLeftBtnClicked(FXObject* sender, FXSelector sel, void* ptr);
00066 
00067     virtual void editItem(FXTableItem* item, FXint how);
00068     virtual void editEnd();
00069     long onEditEnd(FXObject*, FXSelector, void*);
00070     virtual void editCancel();
00071     long onEditKeyPress(FXObject*, FXSelector, void* ptr);
00072     long onKeyRelease(FXObject* sender, FXSelector sel, void* ptr);
00073     long onEditFocusOut(FXObject*, FXSelector, void*);
00074 //    long onTipTimer(FXObject* sender, FXSelector sel, void* ptr);
00075     long onRightBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
00076 
00077 
00078     long onHScrollerChanged(FXObject* o, FXSelector s, void* d);
00079     long onVScrollerChanged(FXObject* o, FXSelector s, void* d);
00080     long onHScrollerDragged(FXObject* o, FXSelector s, void* d);
00081     long onVScrollerDragged(FXObject* o, FXSelector s, void* d);
00082 
00083     long onAutoScroll(FXObject* o, FXSelector s, void* d);
00084     long onUngrabbed(FXObject* o, FXSelector s, void* d);
00085     long onRightBtnPress(FXObject* o, FXSelector s, void* d);
00086     long onTabKeyPress(FXObject* o, FXSelector s, void* d);
00087     long onTabKeyRelease(FXObject* o, FXSelector s, void* d);
00088     long onFocusIn(FXObject* o, FXSelector s, void* d);
00089     long onFocusOut(FXObject* o, FXSelector s, void* d);
00090     long onSelectionLost(FXObject* o, FXSelector s, void* d);
00091     long onSelectionGained(FXObject* o, FXSelector s, void* d);
00092     long onSelectionRequest(FXObject* o, FXSelector s, void* d);
00093     long onClipboardLost(FXObject* o, FXSelector s, void* d);
00094     long onClipboardGained(FXObject* o, FXSelector s, void* d);
00095     long onClipboardRequest(FXObject* o, FXSelector s, void* d);
00096     long onDoubleClicked(FXObject* o, FXSelector s, void* d);
00097     long onTripleClicked(FXObject* o, FXSelector s, void* d);
00098     long onCommand(FXObject* o, FXSelector s, void* d);
00099     long onUpdHorzGrid(FXObject* o, FXSelector s, void* d);
00100     long onUpdVertGrid(FXObject* o, FXSelector s, void* d);
00101     long onCmdHorzGrid(FXObject* o, FXSelector s, void* d);
00102     long onCmdVertGrid(FXObject* o, FXSelector s, void* d);
00103     long onCmdDeleteColumn(FXObject* o, FXSelector s, void* d);
00104     long onUpdDeleteColumn(FXObject* o, FXSelector s, void* d);
00105     long onCmdDeleteRow(FXObject* o, FXSelector s, void* d);
00106     long onUpdDeleteRow(FXObject* o, FXSelector s, void* d);
00107     long onCmdInsertColumn(FXObject* o, FXSelector s, void* d);
00108     long onCmdInsertRow(FXObject* o, FXSelector s, void* d);
00109 
00110     long onCmdMoveLeft(FXObject* o, FXSelector s, void* d);
00111     long onCmdMoveRight(FXObject* o, FXSelector s, void* d);
00112     long onCmdMoveUp(FXObject* o, FXSelector s, void* d);
00113     long onCmdMoveDown(FXObject* o, FXSelector s, void* d);
00114     long onCmdMoveHome(FXObject* o, FXSelector s, void* d);
00115     long onCmdMoveEnd(FXObject* o, FXSelector s, void* d);
00116     long onCmdMoveTop(FXObject* o, FXSelector s, void* d);
00117     long onCmdMoveBottom(FXObject* o, FXSelector s, void* d);
00118     long onCmdMovePageDown(FXObject* o, FXSelector s, void* d);
00119     long onCmdMovePageUp(FXObject* o, FXSelector s, void* d);
00120 
00121     long onCmdSelectRowIndex(FXObject* o, FXSelector s, void* d);
00122     long onCmdSelectColumnIndex(FXObject* o, FXSelector s, void* d);
00123     long onCmdSelectColumn(FXObject* o, FXSelector s, void* d);
00124     long onCmdSelectRow(FXObject* o, FXSelector s, void* d);
00125     long onCmdSelectCell(FXObject* o, FXSelector s, void* d);
00126     long onCmdSelectAll(FXObject* o, FXSelector s, void* d);
00127     long onCmdDeselectAll(FXObject* o, FXSelector s, void* d);
00128     long onCmdMark(FXObject* o, FXSelector s, void* d);
00129     long onCmdExtend(FXObject* o, FXSelector s, void* d);
00130 
00131 
00132     void writeProtectCol(int col, bool val = true);
00133 
00134 
00135 protected:
00136     FXTextField* myEditor;
00137     FXTableItem* myEditedItem;
00138     FXint myEditedCol, myEditedRow;
00139     std::set<int> myWriteProtectedCols;
00140     FXString myPreviousText;
00141 
00142 protected:
00143     MFXEditableTable() { }
00144 
00145 };
00146 
00147 
00148 #endif
00149 
00150 /****************************************************************************/
00151 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines