<html> <head> <link rel="stylesheet" href="page.css" type="text/css"> <title>fox-toolkit.org - Documentation</title> </head> <body bgcolor=#ffffff link=#990033 vlink=#990033 alink=#990033 text=#000000> <font face='verdana,sans-serif' size=2 > <!---- TOPIC TITLE WITH LOGO---> <table border=0 cellpadding= cellspacing=2 width=100% ><tr><td><a href='http://www.fox-toolkit.org/doc.html'><img src='../art/foxlogo_small.jpg' border=0></a></td><td width=100% valign=bottom><font face='verdana,sans-serif' size=2 ><b> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <br><img src='../art/line.gif' width=100% height=1></b></font></td></tr></table> <p> <!--- TOPIC TITLE WITH LOGO ---> <!-- Generated by Doxygen 1.3.3 --> <h1>FXTable.h</h1><div class="fragment"><pre>00001 <span class="comment">/********************************************************************************</span> 00002 <span class="comment">* *</span> 00003 <span class="comment">* T a b l e W i d g e t *</span> 00004 <span class="comment">* *</span> 00005 <span class="comment">*********************************************************************************</span> 00006 <span class="comment">* Copyright (C) 1999,2004 by Jeroen van der Zijp. All Rights Reserved. *</span> 00007 <span class="comment">*********************************************************************************</span> 00008 <span class="comment">* This library is free software; you can redistribute it and/or *</span> 00009 <span class="comment">* modify it under the terms of the GNU Lesser General Public *</span> 00010 <span class="comment">* License as published by the Free Software Foundation; either *</span> 00011 <span class="comment">* version 2.1 of the License, or (at your option) any later version. *</span> 00012 <span class="comment">* *</span> 00013 <span class="comment">* This library is distributed in the hope that it will be useful, *</span> 00014 <span class="comment">* but WITHOUT ANY WARRANTY; without even the implied warranty of *</span> 00015 <span class="comment">* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *</span> 00016 <span class="comment">* Lesser General Public License for more details. *</span> 00017 <span class="comment">* *</span> 00018 <span class="comment">* You should have received a copy of the GNU Lesser General Public *</span> 00019 <span class="comment">* License along with this library; if not, write to the Free Software *</span> 00020 <span class="comment">* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *</span> 00021 <span class="comment">*********************************************************************************</span> 00022 <span class="comment">* $Id: FXTable.h,v 1.120 2004/02/08 16:33:17 fox Exp $ *</span> 00023 <span class="comment">********************************************************************************/</span> 00024 <span class="preprocessor">#ifndef FXTABLE_H</span> 00025 <span class="preprocessor"></span><span class="preprocessor">#define FXTABLE_H</span> 00026 <span class="preprocessor"></span> 00027 <span class="preprocessor">#ifndef FXSCROLLAREA_H</span> 00028 <span class="preprocessor"></span><span class="preprocessor">#include "FXScrollArea.h"</span> 00029 <span class="preprocessor">#endif</span> 00030 <span class="preprocessor"></span> 00031 <span class="keyword">namespace </span>FX { 00032 00033 <span class="comment"></span> 00034 <span class="comment">////////////////////////////// UNDER DEVELOPMENT //////////////////////////////</span> 00035 <span class="comment"></span> 00036 <span class="keyword">class </span>FXIcon; 00037 <span class="keyword">class </span>FXFont; 00038 <span class="keyword">class </span>FXTable; 00039 <span class="keyword">class </span>FXHeader; 00040 <span class="keyword">class </span>FXButton; 00041 00042 <span class="comment"></span> 00043 <span class="comment">/// Default cell margin</span> 00044 <span class="comment"></span><span class="keyword">enum</span> { DEFAULT_MARGIN = 2 }; 00045 00046 00047 <span class="comment"></span> 00048 <span class="comment">/// Table options</span> 00049 <span class="comment"></span><span class="keyword">enum</span> { 00050 <a class="code" href="group__FXTable__1.html#a0a2049">TABLE_COL_SIZABLE</a> = 0x00100000, <span class="comment">/// Columns are resizable</span> 00051 <span class="comment"></span> <a class="code" href="group__FXTable__1.html#a0a2050">TABLE_ROW_SIZABLE</a> = 0x00200000, <span class="comment">/// Rows are resizable</span> 00052 <span class="comment"></span> <a class="code" href="group__FXTable__1.html#a0a2051">TABLE_HEADERS_SIZABLE</a> = 0x00400000, <span class="comment">/// Headers are sizable</span> 00053 <span class="comment"></span> <a class="code" href="group__FXTable__1.html#a0a2052">TABLE_NO_COLSELECT</a> = 0x00900000, <span class="comment">/// Disallow column selections</span> 00054 <span class="comment"></span> <a class="code" href="group__FXTable__1.html#a0a2053">TABLE_NO_ROWSELECT</a> = 0x01000000 <span class="comment">/// Disallow row selections</span> 00055 <span class="comment"></span> }; 00056 00057 <span class="comment"></span> 00058 <span class="comment">/// Position in table</span> 00059 <span class="comment"></span><span class="keyword">struct </span>FXTablePos { 00060 FXint row; 00061 FXint col; 00062 }; 00063 00064 <span class="comment"></span> 00065 <span class="comment">/// Range of table cells</span> 00066 <span class="comment"></span><span class="keyword">struct </span>FXTableRange { <a name="l00067"></a><a class="code" href="structFX_1_1FXTablePos.html">00067</a> <a class="code" href="structFX_1_1FXTablePos.html">FXTablePos</a> fm; 00068 <a class="code" href="structFX_1_1FXTablePos.html">FXTablePos</a> to; 00069 }; 00070 00071 <span class="comment"></span> 00072 <span class="comment">/// Item in table</span> 00073 <span class="comment"></span><span class="keyword">class </span>FXAPI FXTableItem : <span class="keyword">public</span> FXObject { <a name="l00074"></a><a class="code" href="structFX_1_1FXTableRange.html">00074</a> FXDECLARE(FXTableItem) 00075 <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFX_1_1FXTable.html">FXTable</a>; 00076 <span class="keyword">protected</span>: 00077 <a class="code" href="classFX_1_1FXString.html">FXString</a> label; 00078 <a class="code" href="classFX_1_1FXIcon.html">FXIcon</a> *icon; 00079 <span class="keywordtype">void</span> *data; 00080 FXuint state; 00081 <span class="keyword">protected</span>: 00082 FXTableItem():icon(NULL),data(NULL),state(0){} 00083 FXint textWidth(<span class="keyword">const</span> FXTable* table) <span class="keyword">const</span>; 00084 FXint textHeight(<span class="keyword">const</span> FXTable* table) <span class="keyword">const</span>; 00085 <span class="keyword">virtual</span> <span class="keywordtype">void</span> draw(<span class="keyword">const</span> FXTable* table,FXDC& dc,FXint x,FXint y,FXint w,FXint h) <span class="keyword">const</span>; <a name="l00086"></a><a class="code" href="classFX_1_1FXTableItem.html">00086</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawBorders(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXTable.html">FXTable</a>* table,<a class="code" href="classFX_1_1FXDC.html">FXDC</a>& dc,FXint x,FXint y,FXint w,FXint h) <span class="keyword">const</span>; 00087 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawContent(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXTable.html">FXTable</a>* table,<a class="code" href="classFX_1_1FXDC.html">FXDC</a>& dc,FXint x,FXint y,FXint w,FXint h) <span class="keyword">const</span>; 00088 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawPattern(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXTable.html">FXTable</a>* table,<a class="code" href="classFX_1_1FXDC.html">FXDC</a>& dc,FXint x,FXint y,FXint w,FXint h) <span class="keyword">const</span>; 00089 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawBackground(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXTable.html">FXTable</a>* table,<a class="code" href="classFX_1_1FXDC.html">FXDC</a>& dc,FXint x,FXint y,FXint w,FXint h) <span class="keyword">const</span>; 00090 <span class="keyword">protected</span>: 00091 <span class="keyword">enum</span>{ 00092 SELECTED = 0x00000001, 00093 FOCUS = 0x00000002, 00094 DISABLED = 0x00000004, 00095 DRAGGABLE = 0x00000008, 00096 RESERVED1 = 0x00000010, 00097 RESERVED2 = 0x00000020, 00098 ICONOWNED = 0x00000040 00099 }; 00100 <span class="keyword">public</span>: 00101 <span class="keyword">enum</span>{ 00102 RIGHT = 0x00002000, <span class="comment">/// Align on right</span> 00103 <span class="comment"></span> LEFT = 0x00004000, <span class="comment">/// Align on left</span> 00104 <span class="comment"></span> CENTER_X = 0, <span class="comment">/// Aling centered horizontally (default)</span> 00105 <span class="comment"></span> TOP = 0x00008000, <span class="comment">/// Align on top</span> 00106 <span class="comment"></span> BOTTOM = 0x00010000, <span class="comment">/// Align on bottom</span> 00107 <span class="comment"></span> CENTER_Y = 0, <span class="comment">/// Aling centered vertically (default)</span> 00108 <span class="comment"></span> BEFORE = 0x00020000, <span class="comment">/// Icon before the text</span> 00109 <span class="comment"></span> AFTER = 0x00040000, <span class="comment">/// Icon after the text</span> 00110 <span class="comment"></span> ABOVE = 0x00080000, <span class="comment">/// Icon above the text</span> 00111 <span class="comment"></span> BELOW = 0x00100000, <span class="comment">/// Icon below the text</span> 00112 <span class="comment"></span> LBORDER = 0x00200000, <span class="comment">/// Draw left border</span> 00113 <span class="comment"></span> RBORDER = 0x00400000, <span class="comment">/// Draw right border</span> 00114 <span class="comment"></span> TBORDER = 0x00800000, <span class="comment">/// Draw top border</span> 00115 <span class="comment"></span> BBORDER = 0x01000000 <span class="comment">/// Draw bottom border</span> 00116 <span class="comment"></span> }; 00117 <span class="keyword">public</span>: 00118 FXTableItem(<span class="keyword">const</span> FXString& text,FXIcon* ic=NULL,<span class="keywordtype">void</span>* ptr=NULL):label(text),icon(ic),data(ptr),state(FXTableItem::RIGHT){} 00119 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setText(<span class="keyword">const</span> FXString& txt){ label=txt; } 00120 <span class="keyword">const</span> FXString& getText()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> label; } 00121 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setIcon(FXIcon* icn){ icon=icn; } 00122 FXIcon* getIcon()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> icon; } 00123 <span class="keywordtype">void</span> setData(<span class="keywordtype">void</span>* ptr){ data=ptr; } 00124 <span class="keywordtype">void</span>* getData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data; } 00125 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setFocus(FXbool focus); 00126 FXbool hasFocus()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (state&FOCUS)!=0; } 00127 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSelected(FXbool selected); 00128 FXbool isSelected()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (state&SELECTED)!=0; } 00129 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setEnabled(FXbool enabled); 00130 FXbool isEnabled()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (state&DISABLED)==0; } 00131 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setDraggable(FXbool draggable); 00132 FXbool isDraggable()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (state&DRAGGABLE)!=0; } 00133 <span class="keywordtype">void</span> setJustify(FXuint justify); 00134 FXuint getJustify()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> state&(RIGHT|LEFT|TOP|BOTTOM); } 00135 <span class="keywordtype">void</span> setIconPosition(FXuint mode); 00136 FXuint getIconPosition()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> state&(BEFORE|AFTER|ABOVE|BELOW); } 00137 <span class="keywordtype">void</span> setBorders(FXuint borders); 00138 FXuint getBorders()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> state&(LBORDER|RBORDER|TBORDER|BBORDER); } 00139 <span class="keywordtype">void</span> setStipple(FXStipplePattern pattern); 00140 <a class="code" href="group__FXDC__6.html#a0">FXStipplePattern</a> getStipple() <span class="keyword">const</span>; 00141 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setIconOwned(FXuint owned=ICONOWNED); 00142 FXuint isIconOwned()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (state&ICONOWNED); } 00143 <span class="keyword">virtual</span> FXint getWidth(<span class="keyword">const</span> FXTable* table) <span class="keyword">const</span>; 00144 <span class="keyword">virtual</span> FXint getHeight(<span class="keyword">const</span> FXTable* table) <span class="keyword">const</span>; 00145 <span class="keyword">virtual</span> <span class="keywordtype">void</span> create(); 00146 <span class="keyword">virtual</span> <span class="keywordtype">void</span> detach(); 00147 <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroy(); 00148 <span class="keyword">virtual</span> <span class="keywordtype">void</span> save(FXStream& store) <span class="keyword">const</span>; 00149 <span class="keyword">virtual</span> <span class="keywordtype">void</span> load(FXStream& store); <a name="l00150"></a><a class="code" href="classFX_1_1FXTable.html">00150</a> <span class="keyword">virtual</span> ~FXTableItem(); 00151 }; 00152 00153 00154 <span class="comment"></span> 00155 <span class="comment">/// Table Widget</span> 00156 <span class="comment"></span><span class="keyword">class </span>FXAPI FXTable : <span class="keyword">public</span> FXScrollArea { 00157 FXDECLARE(FXTable) 00158 <span class="keyword">protected</span>: 00159 FXHeader *colHeader; <span class="comment">// Column header</span> 00160 FXHeader *rowHeader; <span class="comment">// Row header</span> 00161 FXButton *cornerButton; <span class="comment">// Corner button</span> 00162 FXTableItem **cells; <span class="comment">// Cells</span> 00163 FXFont *font; <span class="comment">// Font</span> 00164 FXint nrows; <span class="comment">// Logically allocated rows</span> 00165 FXint ncols; <span class="comment">// Logically allocated columns</span> 00166 FXint visiblerows; <span class="comment">// Visible rows</span> 00167 FXint visiblecols; <span class="comment">// Visible columns</span> 00168 FXint margintop; <span class="comment">// Margin top</span> 00169 FXint marginbottom; <span class="comment">// Margin bottom</span> 00170 FXint marginleft; <span class="comment">// Margin left</span> 00171 FXint marginright; <span class="comment">// Margin right</span> 00172 FXColor textColor; <span class="comment">// Normal text color</span> 00173 FXColor baseColor; <span class="comment">// Base color</span> 00174 FXColor hiliteColor; <span class="comment">// Highlight color</span> 00175 FXColor shadowColor; <span class="comment">// Shadow color</span> 00176 FXColor borderColor; <span class="comment">// Border color</span> 00177 FXColor selbackColor; <span class="comment">// Select background color</span> 00178 FXColor seltextColor; <span class="comment">// Select text color</span> 00179 FXColor gridColor; <span class="comment">// Grid line color</span> 00180 FXColor stippleColor; <span class="comment">// Stipple color</span> 00181 FXColor cellBorderColor; <span class="comment">// Cell border color</span> 00182 FXint cellBorderWidth; <span class="comment">// Cell border width</span> 00183 FXColor cellBackColor[2][2]; <span class="comment">// Row/Column even/odd background color</span> 00184 FXint defColWidth; <span class="comment">// Default column width [if uniform columns]</span> 00185 FXint defRowHeight; <span class="comment">// Default row height [if uniform rows]</span> 00186 FXTablePos current; <span class="comment">// Current position</span> 00187 FXTablePos anchor; <span class="comment">// Anchor position</span> 00188 FXTableRange selection; <span class="comment">// Range of selected cells</span> 00189 FXint cellcursor; <span class="comment">// Cursor position in cell</span> 00190 FXint cellanchor; <span class="comment">// Anchor position in cell</span> 00191 FXint cellscroll; <span class="comment">// Scolled amount in cell</span> 00192 FXbool hgrid; <span class="comment">// Horizontal grid lines shown</span> 00193 FXbool vgrid; <span class="comment">// Vertical grid lines shown</span> 00194 FXuchar mode; <span class="comment">// Mode widget is in</span> 00195 FXint grabx; <span class="comment">// Grab point x</span> 00196 FXint graby; <span class="comment">// Grab point y</span> 00197 FXint rowcol; <span class="comment">// Row or column being resized</span> 00198 FXString help; 00199 <span class="keyword">public</span>: 00200 <span class="keyword">static</span> FXDragType csvType; 00201 <span class="keyword">static</span> <span class="keyword">const</span> FXchar csvTypeName[]; 00202 <span class="keyword">protected</span>: 00203 FXTable(); 00204 FXint startRow(FXint row,FXint col) <span class="keyword">const</span>; 00205 FXint startCol(FXint row,FXint col) <span class="keyword">const</span>; 00206 FXint endRow(FXint row,FXint col) <span class="keyword">const</span>; 00207 FXint endCol(FXint row,FXint col) <span class="keyword">const</span>; 00208 <span class="keywordtype">void</span> findExtent(FXint& sr,FXint& er,FXint& sc,FXint& ec,FXint anchrow,FXint anchcol,FXint currow,FXint curcol); 00209 <span class="keywordtype">void</span> drawCursor(FXuint state); 00210 <span class="keyword">virtual</span> <span class="keywordtype">void</span> moveContents(FXint x,FXint y); 00211 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawCell(FXDC& dc,FXint sr,FXint er,FXint sc,FXint ec); 00212 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawRange(FXDC& dc,FXint rlo,FXint rhi,FXint clo,FXint chi); 00213 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawHGrid(FXDC& dc,FXint rlo,FXint rhi,FXint clo,FXint chi); 00214 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawVGrid(FXDC& dc,FXint rlo,FXint rhi,FXint clo,FXint chi); 00215 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawContents(FXDC& dc,FXint x,FXint y,FXint w,FXint h); 00216 <span class="keyword">virtual</span> FXTableItem* createItem(<span class="keyword">const</span> FXString& text,FXIcon* icon,<span class="keywordtype">void</span>* ptr); 00217 <span class="keyword">protected</span>: 00218 <span class="keyword">enum</span> { 00219 MOUSE_NONE, 00220 MOUSE_SCROLL, 00221 MOUSE_DRAG, 00222 MOUSE_SELECT, 00223 MOUSE_COL_SIZE, 00224 MOUSE_ROW_SIZE 00225 }; 00226 <span class="keyword">private</span>: 00227 FXTable(<span class="keyword">const</span> FXTable&); 00228 FXTable& operator=(<span class="keyword">const</span> FXTable&); 00229 <span class="keyword">public</span>: 00230 <span class="keywordtype">long</span> onPaint(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00231 <span class="keywordtype">long</span> onFocusIn(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00232 <span class="keywordtype">long</span> onFocusOut(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00233 <span class="keywordtype">long</span> onMotion(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00234 <span class="keywordtype">long</span> onKeyPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00235 <span class="keywordtype">long</span> onKeyRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00236 <span class="keywordtype">long</span> onLeftBtnPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00237 <span class="keywordtype">long</span> onLeftBtnRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00238 <span class="keywordtype">long</span> onRightBtnPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00239 <span class="keywordtype">long</span> onRightBtnRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00240 <span class="keywordtype">long</span> onUngrabbed(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00241 <span class="keywordtype">long</span> onBlink(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00242 <span class="keywordtype">long</span> onSelectionLost(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00243 <span class="keywordtype">long</span> onSelectionGained(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00244 <span class="keywordtype">long</span> onSelectionRequest(FXObject*,FXSelector,<span class="keywordtype">void</span>* ptr); 00245 <span class="keywordtype">long</span> onClipboardLost(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00246 <span class="keywordtype">long</span> onClipboardGained(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00247 <span class="keywordtype">long</span> onClipboardRequest(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00248 <span class="keywordtype">long</span> onAutoScroll(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00249 <span class="keywordtype">long</span> onCommand(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00250 <span class="keywordtype">long</span> onClicked(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00251 <span class="keywordtype">long</span> onDoubleClicked(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00252 <span class="keywordtype">long</span> onTripleClicked(FXObject*,FXSelector,<span class="keywordtype">void</span>*); <a name="l00253"></a><a class="code" href="classFX_1_1FXTable.html#a8">00253</a> 00254 <span class="comment">// Visual characteristics</span> 00255 <span class="keywordtype">long</span> onCmdHorzGrid(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); <a name="l00256"></a><a class="code" href="classFX_1_1FXTable.html#a9">00256</a> <span class="keywordtype">long</span> onUpdHorzGrid(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00257 <span class="keywordtype">long</span> onCmdVertGrid(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00258 <span class="keywordtype">long</span> onUpdVertGrid(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00259 00260 <span class="comment">// Row/Column manipulations</span> 00261 <span class="keywordtype">long</span> onCmdDeleteColumn(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00262 <span class="keywordtype">long</span> onUpdDeleteColumn(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00263 <span class="keywordtype">long</span> onCmdDeleteRow(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00264 <span class="keywordtype">long</span> onUpdDeleteRow(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00265 <span class="keywordtype">long</span> onCmdInsertColumn(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00266 <span class="keywordtype">long</span> onCmdInsertRow(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00267 <a name="l00268"></a><a class="code" href="classFX_1_1FXTable.html#a15">00268</a> <span class="comment">// Movement</span> 00269 <span class="keywordtype">long</span> onCmdMoveRight(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00270 <span class="keywordtype">long</span> onCmdMoveLeft(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00271 <span class="keywordtype">long</span> onCmdMoveUp(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00272 <span class="keywordtype">long</span> onCmdMoveDown(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00273 <span class="keywordtype">long</span> onCmdMoveHome(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); <a name="l00274"></a><a class="code" href="classFX_1_1FXTable.html#a17">00274</a> <span class="keywordtype">long</span> onCmdMoveEnd(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00275 <span class="keywordtype">long</span> onCmdMoveTop(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00276 <span class="keywordtype">long</span> onCmdMoveBottom(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00277 <span class="keywordtype">long</span> onCmdMovePageDown(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00278 <span class="keywordtype">long</span> onCmdMovePageUp(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00279 00280 <span class="comment">// Mark and extend</span> 00281 <span class="keywordtype">long</span> onCmdMark(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00282 <span class="keywordtype">long</span> onCmdExtend(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00283 00284 <span class="comment">// Changing Selection</span> 00285 <span class="keywordtype">long</span> onCmdSelectCell(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00286 <span class="keywordtype">long</span> onCmdSelectRow(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00287 <span class="keywordtype">long</span> onCmdSelectColumn(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00288 <span class="keywordtype">long</span> onCmdSelectRowIndex(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00289 <span class="keywordtype">long</span> onCmdSelectColumnIndex(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); <a name="l00290"></a><a class="code" href="classFX_1_1FXTable.html#a23">00290</a> <span class="keywordtype">long</span> onCmdSelectAll(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00291 <span class="keywordtype">long</span> onCmdDeselectAll(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00292 <a name="l00293"></a><a class="code" href="classFX_1_1FXTable.html#a24">00293</a> <span class="keyword">public</span>: 00294 00295 <span class="keyword">enum</span> { 00296 ID_HORZ_GRID=FXScrollArea::ID_LAST, 00297 ID_VERT_GRID, 00298 ID_DELETE_COLUMN, <a name="l00299"></a><a class="code" href="classFX_1_1FXTable.html#a26">00299</a> ID_DELETE_ROW, 00300 ID_INSERT_COLUMN, 00301 ID_INSERT_ROW, 00302 ID_SELECT_COLUMN_INDEX, 00303 ID_SELECT_ROW_INDEX, 00304 ID_SELECT_COLUMN, <a name="l00305"></a><a class="code" href="classFX_1_1FXTable.html#a28">00305</a> ID_SELECT_ROW, 00306 ID_SELECT_CELL, 00307 ID_SELECT_ALL, 00308 ID_DESELECT_ALL, 00309 ID_MOVE_LEFT, 00310 ID_MOVE_RIGHT, <a name="l00311"></a><a class="code" href="classFX_1_1FXTable.html#a30">00311</a> ID_MOVE_UP, 00312 ID_MOVE_DOWN, 00313 ID_MOVE_HOME, 00314 ID_MOVE_END, 00315 ID_MOVE_TOP, 00316 ID_MOVE_BOTTOM, <a name="l00317"></a><a class="code" href="classFX_1_1FXTable.html#a32">00317</a> ID_MOVE_PAGEDOWN, 00318 ID_MOVE_PAGEUP, 00319 ID_MARK, 00320 ID_EXTEND, 00321 ID_CUT_SEL, 00322 ID_COPY_SEL, 00323 ID_PASTE_SEL, 00324 ID_BLINK, 00325 ID_LAST 00326 }; 00327 00328 <span class="keyword">public</span>: 00329 <span class="comment"></span> 00330 <span class="comment"> /**</span> 00331 <span class="comment"> * Construct a new table.</span> 00332 <span class="comment"> * The table is initially empty, and reports a default size based on</span> 00333 <span class="comment"> * the scroll areas's scrollbar placement policy.</span> 00334 <span class="comment"> */</span> 00335 FXTable(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); 00336 <span class="comment"></span> 00337 <span class="comment"> /// Create the server-side resources</span> 00338 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> create(); 00339 <span class="comment"></span> 00340 <span class="comment"> /// Detach the server-side resources</span> 00341 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> detach(); 00342 <span class="comment"></span> 00343 <span class="comment"> /// Perform layout</span> 00344 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> layout(); 00345 <span class="comment"></span> 00346 <span class="comment"> /// Mark this window's layout as dirty</span> 00347 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> recalc(); 00348 <span class="comment"></span> 00349 <span class="comment"> /// Table widget can receive focus</span> 00350 <span class="comment"></span> <span class="keyword">virtual</span> FXbool canFocus() <span class="keyword">const</span>; 00351 <span class="comment"></span> 00352 <span class="comment"> /// Move the focus to this window</span> 00353 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setFocus(); 00354 <span class="comment"></span> 00355 <span class="comment"> /// Remove the focus from this window</span> 00356 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> killFocus(); 00357 <span class="comment"></span> 00358 <span class="comment"> /// Return column header control</span> 00359 <span class="comment"></span> FXHeader* getColumnHeader()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> colHeader; } 00360 <span class="comment"></span> 00361 <span class="comment"> /// Return row header control</span> 00362 <span class="comment"></span> FXHeader* getRowHeader()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rowHeader; } 00363 <span class="comment"></span> 00364 <span class="comment"> /// Change visible rows/columns</span> 00365 <span class="comment"></span> <span class="keywordtype">void</span> setVisibleRows(FXint nvrows); 00366 FXint getVisibleRows()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> visiblerows; } 00367 <span class="keywordtype">void</span> setVisibleColumns(FXint nvcols); 00368 FXint getVisibleColumns()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> visiblecols; } 00369 <span class="comment"></span> 00370 <span class="comment"> /// Show or hide horizontal grid</span> 00371 <span class="comment"></span> <span class="keywordtype">void</span> showHorzGrid(FXbool on=TRUE); 00372 <span class="comment"></span> 00373 <span class="comment"> /// Is horizontal grid shown</span> 00374 <span class="comment"></span> FXbool isHorzGridShown()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> hgrid; } 00375 <span class="comment"></span> 00376 <span class="comment"> /// Show or hide vertical grid</span> 00377 <span class="comment"></span> <span class="keywordtype">void</span> showVertGrid(FXbool on=TRUE); 00378 <span class="comment"></span> 00379 <span class="comment"> /// Is vertical grid shown</span> 00380 <span class="comment"></span> FXbool isVertGridShown()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vgrid; } 00381 <span class="comment"></span> 00382 <span class="comment"> /// Return default width</span> 00383 <span class="comment"></span> <span class="keyword">virtual</span> FXint getDefaultWidth(); 00384 <span class="comment"></span> 00385 <span class="comment"> /// Return default height</span> 00386 <span class="comment"></span> <span class="keyword">virtual</span> FXint getDefaultHeight(); 00387 <span class="comment"></span> 00388 <span class="comment"> /// Compute content size</span> 00389 <span class="comment"></span> <span class="keyword">virtual</span> FXint getContentWidth(); 00390 <span class="keyword">virtual</span> FXint getContentHeight(); 00391 <span class="comment"></span> 00392 <span class="comment"> /// Set the table size to nr rows and nc columns; all existing items will be removed</span> 00393 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setTableSize(FXint nr,FXint nc,FXbool notify=FALSE); 00394 <span class="comment"></span> 00395 <span class="comment"> /// Get number of rows</span> 00396 <span class="comment"></span> FXint getNumRows()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> nrows; } 00397 <span class="comment"></span> 00398 <span class="comment"> /// Get number of columns</span> 00399 <span class="comment"></span> FXint getNumColumns()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ncols; } 00400 <span class="comment"></span> 00401 <span class="comment"> /// Change top cell margin</span> 00402 <span class="comment"></span> <span class="keywordtype">void</span> setMarginTop(FXint pt); 00403 <span class="comment"></span> 00404 <span class="comment"> /// Return top cell margin</span> 00405 <span class="comment"></span> FXint getMarginTop()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> margintop; } 00406 <span class="comment"></span> 00407 <span class="comment"> /// Change bottom cell margin</span> 00408 <span class="comment"></span> <span class="keywordtype">void</span> setMarginBottom(FXint pb); 00409 <span class="comment"></span> 00410 <span class="comment"> /// Return bottom cell margin</span> 00411 <span class="comment"></span> FXint getMarginBottom()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> marginbottom; } 00412 <span class="comment"></span> 00413 <span class="comment"> /// Change left cell margin</span> 00414 <span class="comment"></span> <span class="keywordtype">void</span> setMarginLeft(FXint pl); 00415 <span class="comment"></span> 00416 <span class="comment"> /// Return left cell margin</span> 00417 <span class="comment"></span> FXint getMarginLeft()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> marginleft; } 00418 <span class="comment"></span> 00419 <span class="comment"> /// Change right cell margin</span> 00420 <span class="comment"></span> <span class="keywordtype">void</span> setMarginRight(FXint pr); 00421 <span class="comment"></span> 00422 <span class="comment"> /// Return right cell margin</span> 00423 <span class="comment"></span> FXint getMarginRight()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> marginright; } 00424 <span class="comment"></span> 00425 <span class="comment"> /// Change table style</span> 00426 <span class="comment"></span> FXuint getTableStyle() <span class="keyword">const</span>; 00427 <span class="keywordtype">void</span> setTableStyle(FXuint style); 00428 <span class="comment"></span> 00429 <span class="comment"> /**</span> 00430 <span class="comment"> * Determine row containing y.</span> 00431 <span class="comment"> * Returns -1 if y above first row, and nrows if y below last row;</span> 00432 <span class="comment"> * otherwise, returns row in table containing y.</span> 00433 <span class="comment"> */</span> 00434 FXint rowAtY(FXint y) <span class="keyword">const</span>; 00435 <span class="comment"></span> 00436 <span class="comment"> /**</span> 00437 <span class="comment"> * Determine column containing x.</span> 00438 <span class="comment"> * Returns -1 if x left of first column, and ncols if x right of last column;</span> 00439 <span class="comment"> * otherwise, returns columns in table containing x.</span> 00440 <span class="comment"> */</span> 00441 FXint colAtX(FXint x) <span class="keyword">const</span>; 00442 <span class="comment"></span> 00443 <span class="comment"> /// Return the item at the given index</span> 00444 <span class="comment"></span> FXTableItem *getItem(FXint row,FXint col) <span class="keyword">const</span>; 00445 <span class="comment"></span> 00446 <span class="comment"> /// Replace the item with a [possibly subclassed] item</span> 00447 <span class="comment"></span> <span class="keywordtype">void</span> setItem(FXint row,FXint col,FXTableItem* item,FXbool notify=FALSE); 00448 <span class="comment"></span> 00449 <span class="comment"> /// Insert new row</span> 00450 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> insertRows(FXint row,FXint nr=1,FXbool notify=FALSE); 00451 <span class="comment"></span> 00452 <span class="comment"> /// Insert new column</span> 00453 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> insertColumns(FXint col,FXint nc=1,FXbool notify=FALSE); 00454 <span class="comment"></span> 00455 <span class="comment"> /// Remove rows of cells</span> 00456 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> removeRows(FXint row,FXint nr=1,FXbool notify=FALSE); 00457 <span class="comment"></span> 00458 <span class="comment"> /// Remove column of cells</span> 00459 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> removeColumns(FXint col,FXint nc=1,FXbool notify=FALSE); 00460 <span class="comment"></span> 00461 <span class="comment"> /// Remove single cell</span> 00462 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> removeItem(FXint row,FXint col,FXbool notify=FALSE); 00463 <span class="comment"></span> 00464 <span class="comment"> /// Remove all items from table</span> 00465 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearItems(FXbool notify=FALSE); 00466 <span class="comment"></span> 00467 <span class="comment"> /// Scroll to make cell at r,c fully visible</span> 00468 <span class="comment"></span> <span class="keywordtype">void</span> makePositionVisible(FXint r,FXint c); 00469 <span class="comment"></span> 00470 <span class="comment"> /// Change column width</span> 00471 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setColumnWidth(FXint col,FXint cwidth); 00472 FXint getColumnWidth(FXint col) <span class="keyword">const</span>; 00473 <span class="comment"></span> 00474 <span class="comment"> /// Change row height</span> 00475 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRowHeight(FXint row,FXint rheight); <a name="l00476"></a><a class="code" href="classFX_1_1FXTable.html#a91">00476</a> FXint getRowHeight(FXint row) <span class="keyword">const</span>; 00477 <span class="comment"></span> 00478 <span class="comment"> /// Change X coordinate of column c</span> <a name="l00479"></a><a class="code" href="classFX_1_1FXTable.html#a92">00479</a> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setColumnX(FXint col,FXint x); 00480 FXint getColumnX(FXint col) <span class="keyword">const</span>; 00481 <span class="comment"></span> 00482 <span class="comment"> /// Change Y coordinate of row r</span> 00483 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRowY(FXint row,FXint y); 00484 FXint getRowY(FXint row) <span class="keyword">const</span>; <a name="l00485"></a><a class="code" href="classFX_1_1FXTable.html#a94">00485</a> <span class="comment"></span> 00486 <span class="comment"> /// Change default column width</span> 00487 <span class="comment"></span> <span class="keywordtype">void</span> setDefColumnWidth(FXint cwidth); <a name="l00488"></a><a class="code" href="classFX_1_1FXTable.html#a95">00488</a> FXint getDefColumnWidth()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> defColWidth; } 00489 <span class="comment"></span> 00490 <span class="comment"> /// Change default row height</span> <a name="l00491"></a><a class="code" href="classFX_1_1FXTable.html#a96">00491</a> <span class="comment"></span> <span class="keywordtype">void</span> setDefRowHeight(FXint rheight); 00492 FXint getDefRowHeight()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> defRowHeight; } 00493 <span class="comment"></span> <a name="l00494"></a><a class="code" href="classFX_1_1FXTable.html#a97">00494</a> <span class="comment"> /// Return minimum row height</span> 00495 <span class="comment"></span> FXint getMinRowHeight(FXint r) <span class="keyword">const</span>; 00496 <span class="comment"></span> <a name="l00497"></a><a class="code" href="classFX_1_1FXTable.html#a98">00497</a> <span class="comment"> /// Return minimum column width</span> 00498 <span class="comment"></span> FXint getMinColumnWidth(FXint c) <span class="keyword">const</span>; 00499 <span class="comment"></span> <a name="l00500"></a><a class="code" href="classFX_1_1FXTable.html#a99">00500</a> <span class="comment"> /// Change column header</span> 00501 <span class="comment"></span> <span class="keywordtype">void</span> setColumnText(FXint index,<span class="keyword">const</span> <a class="code" href="classFX_1_1FXString.html">FXString</a>& text); 00502 <span class="comment"></span> 00503 <span class="comment"> /// Return text of column header at index</span> 00504 <span class="comment"></span> <a class="code" href="classFX_1_1FXString.html">FXString</a> getColumnText(FXint index) <span class="keyword">const</span>; 00505 <span class="comment"></span> 00506 <span class="comment"> /// Change row header</span> 00507 <span class="comment"></span> <span class="keywordtype">void</span> setRowText(FXint index,<span class="keyword">const</span> <a class="code" href="classFX_1_1FXString.html">FXString</a>& text); 00508 <span class="comment"></span> 00509 <span class="comment"> /// Return text of row header at index</span> 00510 <span class="comment"></span> <a class="code" href="classFX_1_1FXString.html">FXString</a> getRowText(FXint index) <span class="keyword">const</span>; 00511 <span class="comment"></span> 00512 <span class="comment"> /// Modify cell text</span> 00513 <span class="comment"></span> <span class="keywordtype">void</span> setItemText(FXint r,FXint c,<span class="keyword">const</span> <a class="code" href="classFX_1_1FXString.html">FXString</a>& text); 00514 <a class="code" href="classFX_1_1FXString.html">FXString</a> getItemText(FXint r,FXint c) <span class="keyword">const</span>; 00515 <span class="comment"></span> <a name="l00516"></a><a class="code" href="classFX_1_1FXTable.html#a105">00516</a> <span class="comment"> /// Modify cell icon</span> 00517 <span class="comment"></span> <span class="keywordtype">void</span> setItemIcon(FXint r,FXint c,<a class="code" href="classFX_1_1FXIcon.html">FXIcon</a>* icon); 00518 <a class="code" href="classFX_1_1FXIcon.html">FXIcon</a>* getItemIcon(FXint r,FXint c) <span class="keyword">const</span>; 00519 <span class="comment"></span> 00520 <span class="comment"> /// Modify cell user-data</span> 00521 <span class="comment"></span> <span class="keywordtype">void</span> setItemData(FXint r,FXint c,<span class="keywordtype">void</span>* ptr); 00522 <span class="keywordtype">void</span>* getItemData(FXint r,FXint c) <span class="keyword">const</span>; 00523 <span class="comment"></span> 00524 <span class="comment"> /// Is cell selected, current, visible, enabled</span> 00525 <span class="comment"></span> FXbool isItemSelected(FXint r,FXint c) <span class="keyword">const</span>; 00526 FXbool isItemCurrent(FXint r,FXint c) <span class="keyword">const</span>; 00527 FXbool isItemVisible(FXint r,FXint c) <span class="keyword">const</span>; 00528 FXbool isItemEnabled(FXint r,FXint c) <span class="keyword">const</span>; 00529 <span class="comment"></span> 00530 <span class="comment"> /// Return TRUE if its a spanning cell</span> 00531 <span class="comment"></span> FXbool isItemSpanning(FXint r,FXint c) <span class="keyword">const</span>; 00532 <span class="comment"></span> 00533 <span class="comment"> /// Repaint cells between grid lines sr,er and grid lines sc,ec</span> 00534 <span class="comment"></span> <span class="keywordtype">void</span> updateRange(FXint sr,FXint er,FXint sc,FXint ec) <span class="keyword">const</span>; 00535 <span class="comment"></span> 00536 <span class="comment"> /// Repaint cell at r,c</span> 00537 <span class="comment"></span> <span class="keywordtype">void</span> updateItem(FXint r,FXint c) <span class="keyword">const</span>; 00538 <span class="comment"></span> 00539 <span class="comment"> /// Enable item</span> 00540 <span class="comment"></span> FXbool enableItem(FXint r,FXint c); 00541 <span class="comment"></span> 00542 <span class="comment"> /// Disable item</span> 00543 <span class="comment"></span> FXbool disableItem(FXint r,FXint c); 00544 <span class="comment"></span> 00545 <span class="comment"> /// Select item</span> 00546 <span class="comment"></span> <span class="keyword">virtual</span> FXbool selectItem(FXint r,FXint c,FXbool notify=FALSE); 00547 <span class="comment"></span> 00548 <span class="comment"> /// Deselect item</span> <a name="l00549"></a><a class="code" href="classFX_1_1FXTable.html#a128">00549</a> <span class="comment"></span> <span class="keyword">virtual</span> FXbool deselectItem(FXint r,FXint c,FXbool notify=FALSE); 00550 <span class="comment"></span> 00551 <span class="comment"> /// Toggle item</span> 00552 <span class="comment"></span> <span class="keyword">virtual</span> FXbool toggleItem(FXint r,FXint c,FXbool notify=FALSE); 00553 <span class="comment"></span> 00554 <span class="comment"> /// Change item justification</span> 00555 <span class="comment"></span> <span class="keywordtype">void</span> setItemJustify(FXint r,FXint c,FXuint justify); 00556 <span class="comment"></span> 00557 <span class="comment"> /// Return item justification</span> 00558 <span class="comment"></span> FXuint getItemJustify(FXint r,FXint c) <span class="keyword">const</span>; 00559 <span class="comment"></span> 00560 <span class="comment"> /// Change relative position of icon and text of item</span> 00561 <span class="comment"></span> <span class="keywordtype">void</span> setItemIconPosition(FXint r,FXint c,FXuint mode); 00562 <span class="comment"></span> 00563 <span class="comment"> /// Return relative icon and text position</span> 00564 <span class="comment"></span> FXuint getItemIconPosition(FXint r,FXint c) <span class="keyword">const</span>; 00565 <span class="comment"></span> 00566 <span class="comment"> /// Change item border style</span> 00567 <span class="comment"></span> <span class="keywordtype">void</span> setItemBorders(FXint r,FXint c,FXuint borders); 00568 <span class="comment"></span> 00569 <span class="comment"> /// Return item border style</span> 00570 <span class="comment"></span> FXuint getItemBorders(FXint r,FXint c) <span class="keyword">const</span>; 00571 <span class="comment"></span> 00572 <span class="comment"> /// Change item background stipple style</span> 00573 <span class="comment"></span> <span class="keywordtype">void</span> setItemStipple(FXint r,FXint c,FXStipplePattern pat); 00574 <span class="comment"></span> 00575 <span class="comment"> /// return item background stipple style</span> 00576 <span class="comment"></span> <a class="code" href="group__FXDC__6.html#a0">FXStipplePattern</a> getItemStipple(FXint r,FXint c) <span class="keyword">const</span>; 00577 <span class="comment"></span> 00578 <span class="comment"> /// Change current item</span> 00579 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCurrentItem(FXint r,FXint c,FXbool notify=FALSE); 00580 <span class="comment"></span> 00581 <span class="comment"> /// Get row number of current item</span> 00582 <span class="comment"></span> FXint getCurrentRow()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> current.row; } 00583 <span class="comment"></span> 00584 <span class="comment"> /// Get column number of current item</span> 00585 <span class="comment"></span> FXint getCurrentColumn()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> current.col; } 00586 <span class="comment"></span> 00587 <span class="comment"> /// Change anchor item</span> 00588 <span class="comment"></span> <span class="keywordtype">void</span> setAnchorItem(FXint r,FXint c); 00589 <span class="comment"></span> 00590 <span class="comment"> /// Get row number of anchor item</span> 00591 <span class="comment"></span> FXint getAnchorRow()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> anchor.row; } 00592 <span class="comment"></span> 00593 <span class="comment"> /// Get column number of anchor item</span> 00594 <span class="comment"></span> FXint getAnchorColumn()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> anchor.col; } 00595 <span class="comment"></span> 00596 <span class="comment"> /// Get selection start row; returns -1 if no selection</span> 00597 <span class="comment"></span> FXint getSelStartRow()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> selection.fm.row; } 00598 <span class="comment"></span> 00599 <span class="comment"> /// Get selection start column; returns -1 if no selection</span> 00600 <span class="comment"></span> FXint getSelStartColumn()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> selection.fm.col; } 00601 <span class="comment"></span> 00602 <span class="comment"> /// Get selection end row; returns -1 if no selection</span> 00603 <span class="comment"></span> FXint getSelEndRow()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> selection.to.row; } 00604 <span class="comment"></span> 00605 <span class="comment"> /// Get selection end column; returns -1 if no selection</span> 00606 <span class="comment"></span> FXint getSelEndColumn()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> selection.to.col; } 00607 <span class="comment"></span> 00608 <span class="comment"> /// Select range</span> 00609 <span class="comment"></span> <span class="keyword">virtual</span> FXbool selectRange(FXint sr,FXint er,FXint sc,FXint ec,FXbool notify=FALSE); 00610 <span class="comment"></span> 00611 <span class="comment"> /// Extend selection</span> 00612 <span class="comment"></span> <span class="keyword">virtual</span> FXbool extendSelection(FXint r,FXint c,FXbool notify=FALSE); 00613 <span class="comment"></span> 00614 <span class="comment"> /// Kill selection</span> 00615 <span class="comment"></span> <span class="keyword">virtual</span> FXbool killSelection(FXbool notify=FALSE); 00616 <span class="comment"></span> 00617 <span class="comment"> /// Change font</span> 00618 <span class="comment"></span> <span class="keywordtype">void</span> setFont(FXFont* fnt); 00619 FXFont* getFont()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> font; } 00620 <span class="comment"></span> 00621 <span class="comment"> /// Obtain colors of various parts</span> 00622 <span class="comment"></span> FXColor getTextColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> textColor; } 00623 FXColor getBaseColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> baseColor; } 00624 FXColor getHiliteColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> hiliteColor; } 00625 FXColor getShadowColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> shadowColor; } 00626 FXColor getBorderColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> borderColor; } 00627 FXColor getSelBackColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> selbackColor; } 00628 FXColor getSelTextColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> seltextColor; } 00629 FXColor getGridColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> gridColor; } 00630 FXColor getStippleColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stippleColor; } 00631 FXColor getCellBorderColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> cellBorderColor; } 00632 <span class="comment"></span> 00633 <span class="comment"> /// Change colors of various parts</span> 00634 <span class="comment"></span> <span class="keywordtype">void</span> setTextColor(FXColor clr); 00635 <span class="keywordtype">void</span> setBaseColor(FXColor clr); 00636 <span class="keywordtype">void</span> setHiliteColor(FXColor clr); 00637 <span class="keywordtype">void</span> setShadowColor(FXColor clr); 00638 <span class="keywordtype">void</span> setBorderColor(FXColor clr); 00639 <span class="keywordtype">void</span> setSelBackColor(FXColor clr); 00640 <span class="keywordtype">void</span> setSelTextColor(FXColor clr); 00641 <span class="keywordtype">void</span> setGridColor(FXColor clr); 00642 <span class="keywordtype">void</span> setStippleColor(FXColor clr); 00643 <span class="keywordtype">void</span> setCellBorderColor(FXColor clr); 00644 <span class="comment"></span> 00645 <span class="comment"> /// Change cell background color for even/odd rows/columns</span> 00646 <span class="comment"></span> <span class="keywordtype">void</span> setCellColor(FXint r,FXint c,FXColor clr); 00647 <span class="comment"></span> 00648 <span class="comment"> /// Obtain cell background color for even/odd rows/columns</span> 00649 <span class="comment"></span> FXColor getCellColor(FXint r,FXint c) <span class="keyword">const</span>; 00650 <span class="comment"></span> 00651 <span class="comment"> /// Change cell border width</span> 00652 <span class="comment"></span> <span class="keywordtype">void</span> setCellBorderWidth(FXint borderwidth); 00653 <span class="comment"></span> 00654 <span class="comment"> /// Return cell border width</span> 00655 <span class="comment"></span> FXint getCellBorderWidth()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> cellBorderWidth; } 00656 <span class="comment"></span> 00657 <span class="comment"> /// Change help text</span> 00658 <span class="comment"></span> <span class="keywordtype">void</span> setHelpText(<span class="keyword">const</span> FXString& text); 00659 FXString getHelpText()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> help; } 00660 <span class="comment"></span> 00661 <span class="comment"> /// Serialize</span> 00662 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> save(FXStream& store) <span class="keyword">const</span>; 00663 <span class="keyword">virtual</span> <span class="keywordtype">void</span> load(FXStream& store); 00664 00665 <span class="keyword">virtual</span> ~FXTable(); 00666 }; 00667 00668 } 00669 00670 <span class="preprocessor">#endif</span> </pre></div></font> <!--- COPYRIGHT --> <p> <table width=100% cellpadding=0 cellspacing=0><tr><td width=100% valign=top id=HEADLINE align=right> <img src='../art/line.gif' width=100% height=1><font size=-1> Copyright © 1997-2004 Jeroen van der Zijp</font> </td></tr></table> </p> <!--- COPYRIGHT --> </body> </html>