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

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