Sophie

Sophie

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

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>FXScrollBar.h</h1><div class="fragment"><pre>00001 <span class="comment">/********************************************************************************</span>
00002 <span class="comment">*                                                                               *</span>
00003 <span class="comment">*                       S c r o l l   B a r   W i d g e t                       *</span>
00004 <span class="comment">*                                                                               *</span>
00005 <span class="comment">*********************************************************************************</span>
00006 <span class="comment">* Copyright (C) 1997,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: FXScrollBar.h,v 1.11 2004/02/08 17:17:34 fox Exp $                        *</span>
00023 <span class="comment">********************************************************************************/</span>
00024 <span class="preprocessor">#ifndef FXSCROLLBAR_H</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#define FXSCROLLBAR_H</span>
00026 <span class="preprocessor"></span>
00027 <span class="preprocessor">#ifndef FXWINDOW_H</span>
00028 <span class="preprocessor"></span><span class="preprocessor">#include "FXWindow.h"</span>
00029 <span class="preprocessor">#endif</span>
00030 <span class="preprocessor"></span>
00031 
00032 <span class="keyword">namespace </span>FX {
00033 
00034 
00035 <span class="comment"></span>
00036 <span class="comment">/// ScrollBar styles</span>
00037 <span class="comment"></span><span class="keyword">enum</span> {
00038   <a class="code" href="group__FXScrollBar__0.html#a0a1987">SCROLLBAR_VERTICAL</a>   = 0,             <span class="comment">/// Vertically oriented</span>
00039 <span class="comment"></span>  <a class="code" href="group__FXScrollBar__0.html#a0a1988">SCROLLBAR_HORIZONTAL</a> = 0x00020000,    <span class="comment">/// Horizontally oriented</span>
00040 <span class="comment"></span>  <a class="code" href="group__FXScrollBar__0.html#a0a1989">SCROLLBAR_WHEELJUMP</a>  = 0x00040000     <span class="comment">/// Mouse wheel jumps instead of sliding smoothly</span>
00041 <span class="comment"></span>  };
00042 
00043 
00044 <span class="comment"></span>
00045 <span class="comment">/**</span>
00046 <span class="comment">* The scroll bar is used when a document has a larger content than may be made</span>
00047 <span class="comment">* visible.  The range is the total size of the document, the page is the part</span>
00048 <span class="comment">* of the document which is visible.  The size of the scrollbar thumb is adjusted</span>
00049 <span class="comment">* to give feedback of the relative sizes of each.</span>
00050 <span class="comment">* The scroll bar may be manipulated by the left mouse (normal scrolling), right</span>
00051 <span class="comment">* mouse (vernier or fine-scrolling), or middle mouse (same as the left mouse only</span>
00052 <span class="comment">* the scroll position can hop to the place where the click is made).</span>
00053 <span class="comment">* Finally, if the mouse sports a wheel, the scroll bar can be manipulated by means</span>
00054 <span class="comment">* of the mouse wheel as well.  Holding down the Control-key during wheel motion</span>
00055 <span class="comment">* will cause the scrolling to go faster than normal.</span>
00056 <span class="comment">* While moving the scroll bar, a message of type SEL_CHANGED will be sent to the</span>
00057 <span class="comment">* target, and the message data will reflect the current position of type FXint.</span>
00058 <span class="comment">* At the end of the interaction, the scroll bar will send a message of type</span>
00059 <span class="comment">* SEL_COMMAND to notify the target of the final position.</span>
00060 <span class="comment">*/</span>
00061 <span class="keyword">class </span>FXAPI FXScrollBar : <span class="keyword">public</span> FXWindow {
00062   FXDECLARE(FXScrollBar)
00063 <span class="keyword">protected</span>:
00064   FXint      range;           <span class="comment">// Scrollable range</span>
00065   FXint      page;            <span class="comment">// Page size</span>
00066   FXint      line;            <span class="comment">// Line size</span>
00067   FXint      pos;             <span class="comment">// Position</span>
<a name="l00068"></a><a class="code" href="classFX_1_1FXScrollBar.html">00068</a>   FXint      thumbsize;       <span class="comment">// Thumb size</span>
00069   FXint      thumbpos;        <span class="comment">// Thumb position</span>
00070   FXColor    hiliteColor;     <span class="comment">// Hightlight color</span>
00071   FXColor    shadowColor;     <span class="comment">// Shadow color</span>
00072   FXColor    borderColor;     <span class="comment">// Border color</span>
00073   FXColor    arrowColor;      <span class="comment">// Arrow color</span>
00074   FXint      dragpoint;       <span class="comment">// Point where grabbed</span>
00075   FXuchar    mode;            <span class="comment">// Current mode of control</span>
00076 <span class="keyword">protected</span>:
00077   FXScrollBar();
00078   <span class="keywordtype">void</span> drawButton(<a class="code" href="classFX_1_1FXDCWindow.html">FXDCWindow</a>&amp; dc,FXint x,FXint y,FXint w,FXint h,FXbool down);
00079   <span class="keywordtype">void</span> drawLeftArrow(<a class="code" href="classFX_1_1FXDCWindow.html">FXDCWindow</a>&amp; dc,FXint x,FXint y,FXint w,FXint h,FXbool down);
00080   <span class="keywordtype">void</span> drawRightArrow(<a class="code" href="classFX_1_1FXDCWindow.html">FXDCWindow</a>&amp; dc,FXint x,FXint y,FXint w,FXint h,FXbool down);
00081   <span class="keywordtype">void</span> drawUpArrow(<a class="code" href="classFX_1_1FXDCWindow.html">FXDCWindow</a>&amp; dc,FXint x,FXint y,FXint w,FXint h,FXbool down);
00082   <span class="keywordtype">void</span> drawDownArrow(<a class="code" href="classFX_1_1FXDCWindow.html">FXDCWindow</a>&amp; dc,FXint x,FXint y,FXint w,FXint h,FXbool down);
00083 <span class="keyword">protected</span>:
00084   <span class="keyword">enum</span> {
00085     MODE_NONE,
00086     MODE_INC,
00087     MODE_DEC,
00088     MODE_PAGE_INC,
00089     MODE_PAGE_DEC,
00090     MODE_DRAG,
00091     MODE_FINE_DRAG
00092     };
00093 <span class="keyword">private</span>:
00094   FXScrollBar(<span class="keyword">const</span> FXScrollBar&amp;);
00095   FXScrollBar &amp;operator=(<span class="keyword">const</span> FXScrollBar&amp;);
00096 <span class="keyword">public</span>:
00097   <span class="keywordtype">long</span> onPaint(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00098   <span class="keywordtype">long</span> onMotion(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00099   <span class="keywordtype">long</span> onMouseWheel(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00100   <span class="keywordtype">long</span> onLeftBtnPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00101   <span class="keywordtype">long</span> onLeftBtnRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00102   <span class="keywordtype">long</span> onMiddleBtnPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00103   <span class="keywordtype">long</span> onMiddleBtnRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00104   <span class="keywordtype">long</span> onRightBtnPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00105   <span class="keywordtype">long</span> onRightBtnRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00106   <span class="keywordtype">long</span> onUngrabbed(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00107   <span class="keywordtype">long</span> onTimeWheel(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00108   <span class="keywordtype">long</span> onAutoScroll(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00109   <span class="keywordtype">long</span> onCmdSetValue(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00110   <span class="keywordtype">long</span> onCmdSetIntValue(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00111   <span class="keywordtype">long</span> onCmdGetIntValue(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
<a name="l00112"></a><a class="code" href="classFX_1_1FXScrollBar.html#a5">00112</a>   <span class="keywordtype">long</span> onCmdSetIntRange(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00113   <span class="keywordtype">long</span> onCmdGetIntRange(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*);
00114 <span class="keyword">public</span>:
00115   <span class="keyword">enum</span>{
00116     ID_TIMEWHEEL=FXWindow::ID_LAST,
00117     ID_AUTOSCROLL,
<a name="l00118"></a><a class="code" href="classFX_1_1FXScrollBar.html#a7">00118</a>     ID_LAST
00119     };
00120 <span class="keyword">public</span>:
00121 <span class="comment"></span>
00122 <span class="comment">  /// Construct scroll bar</span>
00123 <span class="comment"></span>  FXScrollBar(FXComposite* p,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=SCROLLBAR_VERTICAL,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
<a name="l00124"></a><a class="code" href="classFX_1_1FXScrollBar.html#a9">00124</a> <span class="comment"></span>
00125 <span class="comment">  /// Return default width</span>
00126 <span class="comment"></span>  <span class="keyword">virtual</span> FXint getDefaultWidth();
00127 <span class="comment"></span>
00128 <span class="comment">  /// Return default height</span>
00129 <span class="comment"></span>  <span class="keyword">virtual</span> FXint getDefaultHeight();
<a name="l00130"></a><a class="code" href="classFX_1_1FXScrollBar.html#a11">00130</a> <span class="comment"></span>
00131 <span class="comment">  /// Perform layout</span>
00132 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> layout();
00133 <span class="comment"></span>
00134 <span class="comment">  /// Set content size range</span>
00135 <span class="comment"></span>  <span class="keywordtype">void</span> setRange(FXint r);
<a name="l00136"></a><a class="code" href="classFX_1_1FXScrollBar.html#a13">00136</a> <span class="comment"></span>
00137 <span class="comment">  /// Return content size range</span>
00138 <span class="comment"></span>  FXint getRange()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> range; }
00139 <span class="comment"></span>
00140 <span class="comment">  /// Set viewport page size</span>
00141 <span class="comment"></span>  <span class="keywordtype">void</span> setPage(FXint p);
<a name="l00142"></a><a class="code" href="classFX_1_1FXScrollBar.html#a15">00142</a> <span class="comment"></span>
00143 <span class="comment">  /// Return page size</span>
00144 <span class="comment"></span>  FXint getPage()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> page; }
00145 <span class="comment"></span>
00146 <span class="comment">  /// Set scoll increment for line</span>
00147 <span class="comment"></span>  <span class="keywordtype">void</span> setLine(FXint l);
<a name="l00148"></a><a class="code" href="classFX_1_1FXScrollBar.html#a17">00148</a> <span class="comment"></span>
00149 <span class="comment">  /// Return line increment</span>
00150 <span class="comment"></span>  FXint getLine()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> line; }
00151 <span class="comment"></span>
00152 <span class="comment">  /// Change current scroll position</span>
00153 <span class="comment"></span>  <span class="keywordtype">void</span> setPosition(FXint p);
<a name="l00154"></a><a class="code" href="classFX_1_1FXScrollBar.html#a19">00154</a> <span class="comment"></span>
00155 <span class="comment">  /// return scroll position</span>
00156 <span class="comment"></span>  FXint getPosition()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> pos; }
00157 <span class="comment"></span>
00158 <span class="comment">  /// Change highlight color</span>
00159 <span class="comment"></span>  <span class="keywordtype">void</span> setHiliteColor(FXColor clr);
00160 <span class="comment"></span>
00161 <span class="comment">  /// Return highlight color</span>
00162 <span class="comment"></span>  FXColor getHiliteColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> hiliteColor; }
00163 <span class="comment"></span>
00164 <span class="comment">  /// Change shadow color</span>
00165 <span class="comment"></span>  <span class="keywordtype">void</span> setShadowColor(FXColor clr);
00166 <span class="comment"></span>
00167 <span class="comment">  /// Return shadow color</span>
00168 <span class="comment"></span>  FXColor getShadowColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> shadowColor; }
00169 <span class="comment"></span>
00170 <span class="comment">  /// Return border color</span>
00171 <span class="comment"></span>  <span class="keywordtype">void</span> setBorderColor(FXColor clr);
00172 <span class="comment"></span>
00173 <span class="comment">  /// Change border color</span>
00174 <span class="comment"></span>  FXColor getBorderColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> borderColor; }
00175 <span class="comment"></span>
00176 <span class="comment">  /// Return arrow color</span>
00177 <span class="comment"></span>  <span class="keywordtype">void</span> setArrowColor(FXColor clr);
<a name="l00178"></a><a class="code" href="classFX_1_1FXScrollCorner.html">00178</a> <span class="comment"></span>
00179 <span class="comment">  /// Return arrow color</span>
00180 <span class="comment"></span>  FXColor getArrowColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> arrowColor; }
00181 <span class="comment"></span>
00182 <span class="comment">  /// Change the scrollbar style</span>
00183 <span class="comment"></span>  FXuint getScrollbarStyle() <span class="keyword">const</span>;
00184 <span class="comment"></span>
00185 <span class="comment">  /// Get the current scrollbar style</span>
00186 <span class="comment"></span>  <span class="keywordtype">void</span> setScrollbarStyle(FXuint style);
00187 <span class="comment"></span>
00188 <span class="comment">  /// Save to stream</span>
00189 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> save(FXStream&amp; store) <span class="keyword">const</span>;
00190 <span class="comment"></span>
00191 <span class="comment">  /// Load from stream</span>
00192 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> load(FXStream&amp; store);
00193 <span class="comment"></span>
00194 <span class="comment">  /// Destructor</span>
00195 <span class="comment"></span>  <span class="keyword">virtual</span> ~FXScrollBar();
00196   };
00197 
00198 <span class="comment"></span>
00199 <span class="comment">/// Corner between scroll bars</span>
00200 <span class="comment"></span><span class="keyword">class </span>FXAPI FXScrollCorner : <span class="keyword">public</span> FXWindow {
00201   FXDECLARE(FXScrollCorner)
00202 <span class="keyword">protected</span>:
00203   FXScrollCorner();
00204 <span class="keyword">private</span>:
00205   FXScrollCorner(<span class="keyword">const</span> FXScrollCorner&amp;);
00206   FXScrollCorner &amp;operator=(<span class="keyword">const</span> FXScrollCorner&amp;);
00207 <span class="keyword">public</span>:
00208   <span class="keywordtype">long</span> onPaint(FXObject*,FXSelector,<span class="keywordtype">void</span>*);
00209 <span class="keyword">public</span>:
00210 <span class="comment"></span>
00211 <span class="comment">  /// Constructor</span>
00212 <span class="comment"></span>  FXScrollCorner(FXComposite* p);
00213 <span class="comment"></span>
00214 <span class="comment">  /// Can not be enabled</span>
00215 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> enable();
00216 <span class="comment"></span>
00217 <span class="comment">  /// Can not be disabled</span>
00218 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> disable();
00219   };
00220 
00221 }
00222 
00223 <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>