Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > af7a4b7f1ee5a4a084c41b9005da5527 > files > 326

libfox1.1_46-devel-1.1.46-1mdk.i586.rpm

<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> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <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>FXDataTarget.h</h1><div class="fragment"><pre>00001 <span class="comment">/********************************************************************************</span>
00002 <span class="comment">*                                                                               *</span>
00003 <span class="comment">*                              D a t a   T a r g e t                            *</span>
00004 <span class="comment">*                                                                               *</span>
00005 <span class="comment">*********************************************************************************</span>
00006 <span class="comment">* Copyright (C) 1998,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: FXDataTarget.h,v 1.19 2004/02/08 17:17:33 fox Exp $                      *</span>
00023 <span class="comment">********************************************************************************/</span>
00024 <span class="preprocessor">#ifndef FXDATATARGET_H</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#define FXDATATARGET_H</span>
00026 <span class="preprocessor"></span>
00027 <span class="preprocessor">#ifndef FXOBJECT_H</span>
00028 <span class="preprocessor"></span><span class="preprocessor">#include "FXObject.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">/**</span>
00035 <span class="comment">* A Data Target allows a valuator widget such as a Slider or Text Field</span>
00036 <span class="comment">* to be directly connected with a variable in the program.</span>
00037 <span class="comment">* Whenever the valuator control changes, the variable connected through</span>
00038 <span class="comment">* the data target is automatically updated; conversely, whenever the program</span>
00039 <span class="comment">* changes a variable, all the connected valuator widgets will be updated</span>
00040 <span class="comment">* to reflect this new value on the display.</span>
00041 <span class="comment">* Data Targets also allow connecting Radio Buttons, Menu Commands, and so on</span>
00042 <span class="comment">* to a variable.  In this case, the new value of the connected variable is computed</span>
00043 <span class="comment">* by substracting ID_OPTION from the message ID.</span>
00044 <span class="comment">*/</span>
<a name="l00045"></a><a class="code" href="classFX_1_1FXDataTarget.html">00045</a> <span class="keyword">class </span>FXAPI FXDataTarget : <span class="keyword">public</span> <a class="code" href="classFX_1_1FXObject.html">FXObject</a> {
00046   FXDECLARE(FXDataTarget)
00047 <span class="keyword">protected</span>:
00048   <a class="code" href="classFX_1_1FXObject.html">FXObject</a>     *target;                 <span class="comment">// Target object</span>
00049   <span class="keywordtype">void</span>         *data;                   <span class="comment">// Associated data</span>
00050   FXSelector    message;                <span class="comment">// Message ID</span>
00051   FXuint        type;                   <span class="comment">// Type of data</span>
00052 <span class="keyword">public</span>:
00053   <span class="keywordtype">long</span> onCmdValue(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00054   <span class="keywordtype">long</span> onUpdValue(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00055   <span class="keywordtype">long</span> onCmdOption(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00056   <span class="keywordtype">long</span> onUpdOption(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00057 <span class="keyword">public</span>:
00058   <span class="keyword">enum</span> {
00059     DT_VOID=0,
00060     DT_CHAR,
00061     DT_UCHAR,
<a name="l00062"></a><a class="code" href="classFX_1_1FXDataTarget.html#a0">00062</a>     DT_SHORT,
00063     DT_USHORT,
00064     DT_INT,
<a name="l00065"></a><a class="code" href="classFX_1_1FXDataTarget.html#a1">00065</a>     DT_UINT,
00066     DT_FLOAT,
00067     DT_DOUBLE,
<a name="l00068"></a><a class="code" href="classFX_1_1FXDataTarget.html#a2">00068</a>     DT_STRING,
00069     DT_LAST
00070     };
<a name="l00071"></a><a class="code" href="classFX_1_1FXDataTarget.html#a3">00071</a> <span class="keyword">public</span>:
00072   <span class="keyword">enum</span> {
00073     ID_VALUE=1,                   <span class="comment">/// Will cause the FXDataTarget to ask sender for value</span>
<a name="l00074"></a><a class="code" href="classFX_1_1FXDataTarget.html#a4">00074</a> <span class="comment"></span>    ID_OPTION=ID_VALUE+10001,     <span class="comment">/// ID_OPTION+i will set the value to i where -10000&lt;=i&lt;=10000</span>
00075 <span class="comment"></span>    ID_LAST=ID_OPTION+10000
00076     };
<a name="l00077"></a><a class="code" href="classFX_1_1FXDataTarget.html#a5">00077</a> <span class="keyword">public</span>:
00078 <span class="comment"></span>
00079 <span class="comment">  /// Associate with nothing</span>
<a name="l00080"></a><a class="code" href="classFX_1_1FXDataTarget.html#a6">00080</a> <span class="comment"></span>  FXDataTarget(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>* tgt=NULL,FXSelector sel=0):target(tgt),data(NULL),message(sel),type(DT_VOID){}
00081 <span class="comment"></span>
00082 <span class="comment">  /// Associate with character variable</span>
<a name="l00083"></a><a class="code" href="classFX_1_1FXDataTarget.html#a7">00083</a> <span class="comment"></span>  FXDataTarget(FXchar&amp; value,<a class="code" href="classFX_1_1FXObject.html">FXObject</a>* tgt=NULL,FXSelector sel=0):target(tgt),data(&amp;value),message(sel),type(DT_CHAR){}
00084 <span class="comment"></span>
00085 <span class="comment">  /// Associate with unsigned character variable</span>
<a name="l00086"></a><a class="code" href="classFX_1_1FXDataTarget.html#a8">00086</a> <span class="comment"></span>  FXDataTarget(FXuchar&amp; value,<a class="code" href="classFX_1_1FXObject.html">FXObject</a>* tgt=NULL,FXSelector sel=0):target(tgt),data(&amp;value),message(sel),type(DT_UCHAR){}
00087 <span class="comment"></span>
00088 <span class="comment">  /// Associate with signed short variable</span>
<a name="l00089"></a><a class="code" href="classFX_1_1FXDataTarget.html#a9">00089</a> <span class="comment"></span>  FXDataTarget(FXshort&amp; value,<a class="code" href="classFX_1_1FXObject.html">FXObject</a>* tgt=NULL,FXSelector sel=0):target(tgt),data(&amp;value),message(sel),type(DT_SHORT){}
00090 <span class="comment"></span>
00091 <span class="comment">  /// Associate with unsigned short variable</span>
00092 <span class="comment"></span>  FXDataTarget(FXushort&amp; value,FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&amp;value),message(sel),type(DT_USHORT){}
<a name="l00093"></a><a class="code" href="classFX_1_1FXDataTarget.html#a10">00093</a> <span class="comment"></span>
00094 <span class="comment">  /// Associate with int variable</span>
00095 <span class="comment"></span>  FXDataTarget(FXint&amp; value,<a class="code" href="classFX_1_1FXObject.html">FXObject</a>* tgt=NULL,FXSelector sel=0):target(tgt),data(&amp;value),message(sel),type(DT_INT){}
<a name="l00096"></a><a class="code" href="classFX_1_1FXDataTarget.html#a11">00096</a> <span class="comment"></span>
00097 <span class="comment">  /// Associate with unsigned int variable</span>
00098 <span class="comment"></span>  FXDataTarget(FXuint&amp; value,<a class="code" href="classFX_1_1FXObject.html">FXObject</a>* tgt=NULL,FXSelector sel=0):target(tgt),data(&amp;value),message(sel),type(DT_UINT){}
<a name="l00099"></a><a class="code" href="classFX_1_1FXDataTarget.html#a12">00099</a> <span class="comment"></span>
00100 <span class="comment">  /// Associate with float variable</span>
00101 <span class="comment"></span>  FXDataTarget(FXfloat&amp; value,<a class="code" href="classFX_1_1FXObject.html">FXObject</a>* tgt=NULL,FXSelector sel=0):target(tgt),data(&amp;value),message(sel),type(DT_FLOAT){}
<a name="l00102"></a><a class="code" href="classFX_1_1FXDataTarget.html#a13">00102</a> <span class="comment"></span>
00103 <span class="comment">  /// Associate with double variable</span>
00104 <span class="comment"></span>  FXDataTarget(FXdouble&amp; value,<a class="code" href="classFX_1_1FXObject.html">FXObject</a>* tgt=NULL,FXSelector sel=0):target(tgt),data(&amp;value),message(sel),type(DT_DOUBLE){}
00105 <span class="comment"></span>
<a name="l00106"></a><a class="code" href="classFX_1_1FXDataTarget.html#a14">00106</a> <span class="comment">  /// Associate with string variable</span>
00107 <span class="comment"></span>  FXDataTarget(<a class="code" href="classFX_1_1FXString.html">FXString</a>&amp; value,<a class="code" href="classFX_1_1FXObject.html">FXObject</a>* tgt=NULL,FXSelector sel=0):target(tgt),data(&amp;value),message(sel),type(DT_STRING){}
00108 
<a name="l00109"></a><a class="code" href="classFX_1_1FXDataTarget.html#a15">00109</a> <span class="comment"></span>
00110 <span class="comment">  /// Set the message target object for this data target</span>
00111 <span class="comment"></span>  <span class="keywordtype">void</span> setTarget(<a class="code" href="classFX_1_1FXObject.html">FXObject</a> *t){ target=t; }
00112 <span class="comment"></span>
<a name="l00113"></a><a class="code" href="classFX_1_1FXDataTarget.html#a16">00113</a> <span class="comment">  /// Get the message target object for this data target, if any</span>
00114 <span class="comment"></span>  <a class="code" href="classFX_1_1FXObject.html">FXObject</a>* getTarget()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> target; }
00115 <span class="comment"></span>
<a name="l00116"></a><a class="code" href="classFX_1_1FXDataTarget.html#a17">00116</a> <span class="comment">  /// Set the message identifier for this data target</span>
00117 <span class="comment"></span>  <span class="keywordtype">void</span> setSelector(FXSelector sel){ message=sel; }
00118 <span class="comment"></span>
<a name="l00119"></a><a class="code" href="classFX_1_1FXDataTarget.html#a18">00119</a> <span class="comment">  /// Get the message identifier for this data target</span>
00120 <span class="comment"></span>  FXSelector getSelector()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> message; }
00121 
<a name="l00122"></a><a class="code" href="classFX_1_1FXDataTarget.html#a19">00122</a> <span class="comment"></span>
00123 <span class="comment">  /// Return type of data its connected to</span>
00124 <span class="comment"></span>  FXuint getType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type; }
<a name="l00125"></a><a class="code" href="classFX_1_1FXDataTarget.html#a20">00125</a> <span class="comment"></span>
00126 <span class="comment">  /// Return pointer to data its connected to</span>
00127 <span class="comment"></span>  <span class="keywordtype">void</span>* getData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data; }
<a name="l00128"></a><a class="code" href="classFX_1_1FXDataTarget.html#a21">00128</a> 
00129 <span class="comment"></span>
00130 <span class="comment">  /// Associate with nothing</span>
<a name="l00131"></a><a class="code" href="classFX_1_1FXDataTarget.html#a22">00131</a> <span class="comment"></span>  <span class="keywordtype">void</span> connect(){ type=DT_VOID; data=NULL; }
00132 <span class="comment"></span>
00133 <span class="comment">  /// Associate with character variable</span>
<a name="l00134"></a><a class="code" href="classFX_1_1FXDataTarget.html#a23">00134</a> <span class="comment"></span>  <span class="keywordtype">void</span> connect(FXchar&amp; value){ type=DT_CHAR; data=&amp;value; }
00135 <span class="comment"></span>
00136 <span class="comment">  /// Associate with unsigned character variable</span>
<a name="l00137"></a><a class="code" href="classFX_1_1FXDataTarget.html#a24">00137</a> <span class="comment"></span>  <span class="keywordtype">void</span> connect(FXuchar&amp; value){ type=DT_UCHAR; data=&amp;value; }
00138 <span class="comment"></span>
00139 <span class="comment">  /// Associate with signed short variable</span>
<a name="l00140"></a><a class="code" href="classFX_1_1FXDataTarget.html#a25">00140</a> <span class="comment"></span>  <span class="keywordtype">void</span> connect(FXshort&amp; value){ type=DT_SHORT; data=&amp;value; }
00141 <span class="comment"></span>
00142 <span class="comment">  /// Associate with unsigned short variable</span>
00143 <span class="comment"></span>  <span class="keywordtype">void</span> connect(FXushort&amp; value){ type=DT_USHORT; data=&amp;value; }
00144 <span class="comment"></span>
00145 <span class="comment">  /// Associate with int variable</span>
00146 <span class="comment"></span>  <span class="keywordtype">void</span> connect(FXint&amp; value){ type=DT_INT; data=&amp;value; }
00147 <span class="comment"></span>
00148 <span class="comment">  /// Associate with unsigned int variable</span>
00149 <span class="comment"></span>  <span class="keywordtype">void</span> connect(FXuint&amp; value){ type=DT_UINT; data=&amp;value; }
00150 <span class="comment"></span>
00151 <span class="comment">  /// Associate with float variable</span>
00152 <span class="comment"></span>  <span class="keywordtype">void</span> connect(FXfloat&amp; value){ type=DT_FLOAT; data=&amp;value; }
00153 <span class="comment"></span>
00154 <span class="comment">  /// Associate with double variable</span>
00155 <span class="comment"></span>  <span class="keywordtype">void</span> connect(FXdouble&amp; value){ type=DT_DOUBLE; data=&amp;value; }
00156 <span class="comment"></span>
00157 <span class="comment">  /// Associate with string variable</span>
00158 <span class="comment"></span>  <span class="keywordtype">void</span> connect(FXString&amp; value){ type=DT_STRING; data=&amp;value; }
00159 <span class="comment"></span>
00160 <span class="comment">  /// Destroy</span>
00161 <span class="comment"></span>  <span class="keyword">virtual</span> ~FXDataTarget();
00162   };
00163 
00164 }
00165 
00166 <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 &copy; 1997-2004 Jeroen van der Zijp</font>
</td></tr></table>
</p>
<!--- COPYRIGHT -->
</body>
</html>