Sophie

Sophie

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

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>FXVisual.h</h1><div class="fragment"><pre>00001 <span class="comment">/********************************************************************************</span>
00002 <span class="comment">*                                                                               *</span>
00003 <span class="comment">*                            V i s u a l   C l a s s                            *</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: FXVisual.h,v 1.31 2004/02/08 17:17:34 fox Exp $                          *</span>
00023 <span class="comment">********************************************************************************/</span>
00024 <span class="preprocessor">#ifndef FXVISUAL_H</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#define FXVISUAL_H</span>
00026 <span class="preprocessor"></span>
00027 <span class="preprocessor">#ifndef FXID_H</span>
00028 <span class="preprocessor"></span><span class="preprocessor">#include "FXId.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">/// Construction options for FXVisual class</span>
00035 <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="group__FXVisual__0.html#a0">FXVisualOptions</a> {
00036   <a class="code" href="group__FXVisual__0.html#a0a2116">VISUAL_DEFAULT</a>      = 0,            <span class="comment">/// Default visual</span>
00037 <span class="comment"></span>  <a class="code" href="group__FXVisual__0.html#a0a2117">VISUAL_MONOCHROME</a>   = 1,            <span class="comment">/// Must be monochrome visual</span>
<a name="l00038"></a><a class="code" href="group__FXVisual__0.html#a0">00038</a> <span class="comment"></span>  <a class="code" href="group__FXVisual__0.html#a0a2118">VISUAL_BEST</a>         = 2,            <span class="comment">/// Best (deepest) visual</span>
00039 <span class="comment"></span>  <a class="code" href="group__FXVisual__0.html#a0a2119">VISUAL_INDEXCOLOR</a>   = 4,            <span class="comment">/// Palette visual</span>
00040 <span class="comment"></span>  <a class="code" href="group__FXVisual__0.html#a0a2120">VISUAL_GRAYSCALE</a>    = 8,            <span class="comment">/// Gray scale visual</span>
00041 <span class="comment"></span>  <a class="code" href="group__FXVisual__0.html#a0a2121">VISUAL_TRUECOLOR</a>    = 16,           <span class="comment">/// Must be true color visual</span>
00042 <span class="comment"></span>  <a class="code" href="group__FXVisual__0.html#a0a2122">VISUAL_OWNCOLORMAP</a>  = 32,           <span class="comment">/// Allocate private colormap</span>
00043 <span class="comment"></span>  <a class="code" href="group__FXVisual__0.html#a0a2123">VISUAL_DOUBLEBUFFER</a> = 64,           <span class="comment">/// Double-buffered [FXGLVisual]</span>
00044 <span class="comment"></span>  <a class="code" href="group__FXVisual__0.html#a0a2124">VISUAL_STEREO</a>       = 128,          <span class="comment">/// Stereo [FXGLVisual]</span>
00045 <span class="comment"></span>  <a class="code" href="group__FXVisual__0.html#a0a2125">VISUAL_NOACCEL</a>      = 256           <span class="comment">/// No hardware acceleration [for broken h/w]</span>
00046 <span class="comment"></span>  };
00047 
00048 <span class="comment"></span>
00049 <span class="comment">/// Visual type</span>
00050 <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="group__FXVisual__1.html#a0">FXVisualType</a> {
00051   <a class="code" href="group__FXVisual__1.html#a0a2126">VISUALTYPE_UNKNOWN</a>,                 <span class="comment">/// Undetermined visual type</span>
00052 <span class="comment"></span>  <a class="code" href="group__FXVisual__1.html#a0a2127">VISUALTYPE_MONO</a>,                    <span class="comment">/// Visual for drawing into 1-bpp surfaces</span>
00053 <span class="comment"></span>  <a class="code" href="group__FXVisual__1.html#a0a2128">VISUALTYPE_TRUE</a>,                    <span class="comment">/// True color</span>
00054 <span class="comment"></span>  <a class="code" href="group__FXVisual__1.html#a0a2129">VISUALTYPE_INDEX</a>,                   <span class="comment">/// Index [palette] color</span>
00055 <span class="comment"></span>  <a class="code" href="group__FXVisual__1.html#a0a2130">VISUALTYPE_GRAY</a>                     <span class="comment">/// Gray scale</span>
00056 <span class="comment"></span>  };
<a name="l00057"></a><a class="code" href="group__FXVisual__1.html#a0">00057</a> 
00058 
00059 <span class="keyword">class </span>FXApp;
00060 <span class="keyword">class </span>FXWindow;
00061 <span class="keyword">class </span>FXGLContext;
00062 <span class="keyword">class </span>FXGLCanvas;
00063 <span class="keyword">class </span>FXImage;
00064 <span class="keyword">class </span>FXIcon;
00065 <span class="keyword">class </span>FXBitmap;
00066 <span class="keyword">class </span>FXDCWindow;
00067 
00068 <span class="comment"></span>
00069 <span class="comment">/// Visual describes pixel format of a drawable</span>
00070 <span class="comment"></span><span class="keyword">class </span>FXAPI FXVisual : <span class="keyword">public</span> FXId {
00071   FXDECLARE(FXVisual)
00072   <span class="keyword">friend</span> <span class="keyword">class </span>FXApp;
00073   <span class="keyword">friend</span> <span class="keyword">class </span>FXWindow;
00074   <span class="keyword">friend</span> <span class="keyword">class </span>FXGLContext;
00075   <span class="keyword">friend</span> <span class="keyword">class </span>FXGLCanvas;
00076   <span class="keyword">friend</span> <span class="keyword">class </span>FXImage;
00077   <span class="keyword">friend</span> <span class="keyword">class </span>FXIcon;
00078   <span class="keyword">friend</span> <span class="keyword">class </span>FXBitmap;
00079   <span class="keyword">friend</span> <span class="keyword">class </span>FXDCWindow;
00080 <span class="keyword">protected</span>:
00081   FXuint        flags;                  <span class="comment">// Visual flags</span>
00082   FXuint        hint;                   <span class="comment">// Depth Hint</span>
<a name="l00083"></a><a class="code" href="classFX_1_1FXVisual.html">00083</a>   FXuint        depth;                  <span class="comment">// Visual depth, significant bits/pixel</span>
00084   FXuint        numred;                 <span class="comment">// Number of reds</span>
00085   FXuint        numgreen;               <span class="comment">// Number of greens</span>
00086   FXuint        numblue;                <span class="comment">// Number of blues</span>
00087   FXuint        numcolors;              <span class="comment">// Total number of colors</span>
00088   FXuint        maxcolors;              <span class="comment">// Maximum number of colors</span>
00089   <a class="code" href="group__FXVisual__1.html#a0">FXVisualType</a>  type;                   <span class="comment">// Visual type</span>
00090 <span class="preprocessor">#ifndef WIN32</span>
00091 <span class="preprocessor"></span><span class="keyword">protected</span>:
00092   <span class="keywordtype">void</span>         *visual;                 <span class="comment">// Application visual [Visual]</span>
00093   <span class="keywordtype">void</span>         *info;                   <span class="comment">// XVisualInfo, if any</span>
00094   FXID          colormap;               <span class="comment">// Color map, if any</span>
00095   <span class="keywordtype">void</span>*         gc;                     <span class="comment">// Drawing GC</span>
00096   <span class="keywordtype">void</span>*         scrollgc;               <span class="comment">// Scrolling GC</span>
00097   FXPixel       rpix[16][256];          <span class="comment">// Mapping from red -&gt; pixel</span>
00098   FXPixel       gpix[16][256];          <span class="comment">// Mapping from green -&gt; pixel</span>
00099   FXPixel       bpix[16][256];          <span class="comment">// Mapping from blue -&gt; pixel</span>
00100   FXPixel       lut[256];               <span class="comment">// Color lookup table</span>
00101   FXbool        freemap;                <span class="comment">// We allocated the map</span>
00102 <span class="keyword">protected</span>:
00103   <span class="keywordtype">void</span>* makegc(FXbool gex);
00104   <span class="keywordtype">void</span> setuptruecolor();
00105   <span class="keywordtype">void</span> setupdirectcolor();
00106   <span class="keywordtype">void</span> setuppseudocolor();
00107   <span class="keywordtype">void</span> setupstaticcolor();
<a name="l00108"></a><a class="code" href="classFX_1_1FXVisual.html#a4">00108</a>   <span class="keywordtype">void</span> setupgrayscale();
00109   <span class="keywordtype">void</span> setupstaticgray();
00110   <span class="keywordtype">void</span> setuppixmapmono();
<a name="l00111"></a><a class="code" href="classFX_1_1FXVisual.html#a5">00111</a>   <span class="keywordtype">void</span> setupcolormap();
00112 <span class="preprocessor">#else</span>
00113 <span class="preprocessor"></span><span class="keyword">protected</span>:
<a name="l00114"></a><a class="code" href="classFX_1_1FXVisual.html#a6">00114</a>   FXID          hPalette;               <span class="comment">// Palette, if any</span>
00115   <span class="keywordtype">void</span>         *info;                   <span class="comment">// PIXELFORMATDESCRIPTOR, if any</span>
00116   <span class="keywordtype">int</span>           pixelformat;            <span class="comment">// PIXELFORMAT number</span>
<a name="l00117"></a><a class="code" href="classFX_1_1FXVisual.html#a7">00117</a> <span class="preprocessor">#endif</span>
00118 <span class="preprocessor"></span><span class="keyword">protected</span>:
00119   FXVisual();
<a name="l00120"></a><a class="code" href="classFX_1_1FXVisual.html#a8">00120</a> <span class="keyword">private</span>:
00121   FXVisual(<span class="keyword">const</span> FXVisual&amp;);
00122   FXVisual &amp;operator=(<span class="keyword">const</span> FXVisual&amp;);
<a name="l00123"></a><a class="code" href="classFX_1_1FXVisual.html#a9">00123</a> <span class="keyword">public</span>:
00124 <span class="comment"></span>
00125 <span class="comment">  /// Construct default visual</span>
00126 <span class="comment"></span>  FXVisual(<a class="code" href="classFX_1_1FXApp.html">FXApp</a>* a,FXuint flgs,FXuint d=32);
00127 <span class="comment"></span>
00128 <span class="comment">  /// Create visual</span>
00129 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> create();
00130 <span class="comment"></span>
00131 <span class="comment">  /// Detach visual</span>
00132 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> detach();
00133 <span class="comment"></span>
00134 <span class="comment">  /// Destroy visual</span>
<a name="l00135"></a><a class="code" href="classFX_1_1FXVisual.html#a13">00135</a> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroy();
00136 <span class="comment"></span>
00137 <span class="comment">  /// Get flags (see FXVisualOptions)</span>
<a name="l00138"></a><a class="code" href="classFX_1_1FXVisual.html#a14">00138</a> <span class="comment"></span>  FXuint getFlags()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> flags; }
00139 <span class="comment"></span>
00140 <span class="comment">  /// Get depth, i.e. number of significant bits in color representation</span>
00141 <span class="comment"></span>  FXuint getDepth()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> depth; }
00142 <span class="comment"></span>
00143 <span class="comment">  /// Get number of colors</span>
00144 <span class="comment"></span>  FXuint getNumColors()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> numcolors; }
00145 <span class="comment"></span>
00146 <span class="comment">  /// Get number of reds</span>
00147 <span class="comment"></span>  FXuint getNumRed()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> numred; }
00148 <span class="comment"></span>
00149 <span class="comment">  /// Get number of greens</span>
00150 <span class="comment"></span>  FXuint getNumGreen()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> numred; }
00151 <span class="comment"></span>
00152 <span class="comment">  /// Get number of blues</span>
00153 <span class="comment"></span>  FXuint getNumBlue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> numred; }
00154 <span class="comment"></span>
00155 <span class="comment">  /// Get device pixel value for color</span>
00156 <span class="comment"></span>  FXPixel getPixel(FXColor clr);
00157 <span class="comment"></span>
00158 <span class="comment">  /// Get color value for device pixel value</span>
00159 <span class="comment"></span>  FXColor getColor(FXPixel pix);
00160 <span class="comment"></span>
00161 <span class="comment">  /// Set maximum number of colors to allocate</span>
00162 <span class="comment"></span>  <span class="keywordtype">void</span> setMaxColors(FXuint maxcols);
00163 <span class="comment"></span>
00164 <span class="comment">  /// Get maximum number of colors</span>
00165 <span class="comment"></span>  FXuint getMaxColors()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> maxcolors; }
00166 <span class="comment"></span>
00167 <span class="comment">  /// Get visual type</span>
00168 <span class="comment"></span>  <a class="code" href="group__FXVisual__1.html#a0">FXVisualType</a> getType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type; }
00169 <span class="comment"></span>
00170 <span class="comment">  /// Save visual information to a stream</span>
00171 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> save(FXStream&amp; store) <span class="keyword">const</span>;
00172 <span class="comment"></span>
00173 <span class="comment">  /// Load visual information from a stream</span>
00174 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> load(FXStream&amp; store);
00175 <span class="comment"></span>
00176 <span class="comment">  /// Destructor</span>
00177 <span class="comment"></span>  <span class="keyword">virtual</span> ~FXVisual();
00178   };
00179 
00180 }
00181 
00182 <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>