Main Page   Namespace List   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Globals  

/cygdrive/d/Eigene Dateien/!DProcs/code_gen/QLookAndFeel.cpp

Go to the documentation of this file.
00001 // Class QLookAndFeel 
00002 // Defines Look and Feel. Colors, Textures, default Font size and so on.
00003 // Filename QLookAndFeel.cpp
00004 // FaPra 2003-2004, A5,  Alexander Kramer
00005 
00006 
00007 #include "QLookAndFeel.h"
00008 #include "tga.h"
00009 #include <GL/glut.h>
00010 #include <iostream>
00011 using namespace std;
00012 
00013 // ----------------------------------------------------------
00014 
00015 //! draws bevel from x,y-x+w,y+h. State : up,down,disabled
00016 void QLookAndFeel::drawBevel( float  x , float  y , float  w , float  h , QBevelState  state )
00017 {
00018  glBegin(GL_LINES);
00019   switch (state)
00020   {
00021     case bsUp: BevelRaisedColor->setAsCurrent();
00022     break;
00023     case bsDown:BevelLoweredColor->setAsCurrent();
00024     break;
00025     case bsDisabled : BevelDisabledColor->setAsCurrent();
00026     break;
00027   }
00028 
00029 
00030   glVertex2f(x,y+h);
00031   glVertex2f(x,y);
00032 
00033   glVertex2f(x,y);
00034   glVertex2f(x+w,y);
00035 
00036   switch (state)
00037   {
00038     case bsDown: BevelRaisedColor->setAsCurrent();
00039     break;
00040     case bsUp: BevelLoweredColor->setAsCurrent();
00041     break;
00042     case bsDisabled : BevelDisabledColor->setAsCurrent();
00043     break;
00044   }
00045 
00046   glVertex2f(x+w,y);
00047   glVertex2f(x+w,y+h);
00048 
00049   glVertex2f(x+w,y+h);
00050   glVertex2f(x,y+h);
00051 
00052   glEnd();
00053 } // end of drawBevel()
00054 
00055 //! draws bevel from x,y-x+w,y+h. State : up,down,disabled
00056 void QLookAndFeel::drawRect( float  x , float  y , float  w , float  h )
00057 {
00058   glVertex2f(x,y+h);
00059   glVertex2f(x,y);
00060   glVertex2f(x+w,y);
00061   glVertex2f(x+w,y+h);
00062 } // end of drawRect()
00063 
00064 //! draws given texture with given size
00065 void QLookAndFeel::drawTexture( unsigned  int  texID , int  width , int  height )
00066 {
00067   glEnable(GL_BLEND);                               // For transparent background
00068   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
00069 
00070   glEnable(GL_TEXTURE_2D);
00071   glBindTexture(GL_TEXTURE_2D, texID);
00072   glBegin(GL_QUADS);
00073   glTexCoord2f(0.0, 0.0); glVertex2i(0, height);
00074   glTexCoord2f(0.0, 1.0); glVertex2i(0, 0);
00075   glTexCoord2f(1.0, 1.0); glVertex2i(width, 0);
00076   glTexCoord2f(1.0, 0.0); glVertex2i(width, height);
00077   glEnd();
00078   glDisable(GL_TEXTURE_2D);
00079 
00080   glDisable(GL_BLEND);
00081 } // end of drawTexture()
00082 
00083 //! draws checkbox texture
00084 void QLookAndFeel::drawCheckBox( bool  checked )
00085 {
00086   BackGroundColor->setAsCurrent();
00087   if (checked)
00088     drawTexture(CheckBoxCheckedTexID,16,16);
00089   else
00090     drawTexture(CheckBoxTexID,16,16);
00091 } // end of drawCheckBox()
00092 
00093 //! draws radio button texture
00094 void QLookAndFeel::drawRadioButton( bool  checked )
00095 {
00096   BackGroundColor->setAsCurrent();
00097   if (checked)
00098   {
00099     drawTexture(RadioButtonCheckedTexID,16,16);
00100   }
00101   else
00102   {
00103     drawTexture(RadioButtonTexID,16,16);
00104   }
00105 } // end of drawRadioButton()
00106 
00107 //! draws close button texture
00108 void QLookAndFeel::drawCloseButton( bool  down , int  width , int  height )
00109 {
00110   if (down)
00111     drawTexture(CloseButtonDownTexID,width,height);
00112   else
00113     drawTexture(CloseButtonTexID,width,height);
00114 } // end of drawCloseButton()
00115 
00116 //! draws maximize button texture
00117 void QLookAndFeel::drawMaximizeButton( bool  down , int  width , int  height )
00118 {
00119  if (down)
00120     drawTexture(MaximizeButtonDownTexID,width,height);
00121   else
00122     drawTexture(MaximizeButtonTexID,width,height);
00123 } // end of drawMaximizeButton()
00124 
00125 //! initialization code
00126 void QLookAndFeel::Init()
00127 {
00128 
00129   Font->getColor()->set(0,0,0,1);
00130   Font->setSize(16);
00131   BackGroundColor->set(0.8,0.8,0.8,1);
00132   BevelLoweredColor->set(0.5,0.5,0.5,1);
00133   BevelRaisedColor->set(1,1,1,1);
00134   BevelDisabledColor->set(0.7,0.7,0.7,1);
00135   HighlightColor->set(198.0/255.0,245.0/255.0,1.0,1.0);
00136   DisabledColor->set(0.5,0.5,0.5,1.0);
00137 
00138   CheckBoxTexID           = createTexture("checkbox.tga");
00139   CheckBoxCheckedTexID    = createTexture("checkboxchecked.tga");
00140   RadioButtonTexID        = createTexture("radio.tga");
00141   RadioButtonCheckedTexID = createTexture("radiochecked.tga");
00142   CloseButtonTexID        = createTexture("closebutton.tga");
00143   CloseButtonDownTexID    = createTexture("closebutton_down.tga");
00144   MaximizeButtonTexID     = createTexture("maximizebutton.tga");
00145   MaximizeButtonDownTexID = createTexture("maximizebutton_down.tga");
00146 } // end of Init()
00147 
00148 //! clean up code
00149 void QLookAndFeel::CleanUp()
00150 {
00151   glDeleteTextures(1,&CheckBoxTexID);
00152   glDeleteTextures(1,&CheckBoxCheckedTexID);
00153   glDeleteTextures(1,&RadioButtonTexID);
00154   glDeleteTextures(1,&RadioButtonCheckedTexID);
00155   glDeleteTextures(1,&CloseButtonTexID);
00156   glDeleteTextures(1,&CloseButtonDownTexID);
00157   glDeleteTextures(1,&MaximizeButtonTexID);
00158   glDeleteTextures(1,&MaximizeButtonDownTexID);
00159 
00160 } // end of CleanUp()
00161 
00162 //! getter method for BackGroundColor
00163 QColor* QLookAndFeel::getBackGroundColor()
00164 {
00165 return BackGroundColor;
00166 } // end of getBackGroundColor()
00167 
00168 //! getter method for DisabledColor
00169 QColor* QLookAndFeel::getDisabledColor()
00170 {
00171 return DisabledColor;
00172 } // end of getDisabledColor()
00173 
00174 //! getter method for BevelRaisedColor
00175 QColor* QLookAndFeel::getBevelRaisedColor()
00176 {
00177 return BevelRaisedColor;
00178 } // end of getBevelRaisedColor()
00179 
00180 //! getter method for BevelLoweredColor
00181 QColor* QLookAndFeel::getBevelLoweredColor()
00182 {
00183 return BevelLoweredColor;
00184 } // end of getBevelLoweredColor()
00185 
00186 //! getter method for BevelDisabledColor
00187 QColor* QLookAndFeel::getBevelDisabledColor()
00188 {
00189 return BevelDisabledColor;
00190 } // end of getBevelDisabledColor()
00191 
00192 //! getter method for HighlightColor
00193 QColor* QLookAndFeel::getHighlightColor()
00194 {
00195 return HighlightColor;
00196 } // end of getHighlightColor()
00197 
00198 //! getter method for Font
00199 QFont* QLookAndFeel::getFont()
00200 {
00201 return Font;
00202 } // end of getFont()
00203 
00204 // WARNING : The implementation of this method will be automatically generated with code generator.
00205 // To prevent this add '//KEEP' at the first line of the implementation.(first line after '{')
00206 //! prints itself to the cout
00207 void QLookAndFeel::print()
00208 {
00209 cout << "Class : QLookAndFeel" << endl;
00210 } // end of print()
00211 
00212 // WARNING : The implementation of this method will be automatically generated with code generator.
00213 // To prevent this add '//KEEP' at the first line of the implementation.(first line after '{')
00214 //! Constructor
00215  QLookAndFeel::QLookAndFeel(  )
00216 {
00217 CheckBoxTexID = 0;
00218 CheckBoxCheckedTexID = 0;
00219 RadioButtonCheckedTexID = 0;
00220 RadioButtonTexID = 0;
00221 CloseButtonTexID = 0;
00222 CloseButtonDownTexID = 0;
00223 MaximizeButtonTexID = 0;
00224 MaximizeButtonDownTexID = 0;
00225 RestoreButtonTexID = 0;
00226 RestoreButtonDownTexID = 0;
00227 MinimizeButtonTexID = 0;
00228 MinimizeButtonDownTexID = 0;
00229 BackGroundColor = new QColor;
00230 DisabledColor = new QColor;
00231 BevelRaisedColor = new QColor;
00232 BevelLoweredColor = new QColor;
00233 BevelDisabledColor = new QColor;
00234 HighlightColor = new QColor;
00235 Font = new QFont;
00236 Init();
00237 } // end of QLookAndFeel()
00238 
00239 // WARNING : The implementation of this method will be automatically generated with code generator.
00240 // To prevent this add '//KEEP' at the first line of the implementation.(first line after '{')
00241 //! Destructor
00242  QLookAndFeel::~QLookAndFeel()
00243 {
00244 delete Font;
00245 delete HighlightColor;
00246 delete BevelDisabledColor;
00247 delete BevelLoweredColor;
00248 delete BevelRaisedColor;
00249 delete DisabledColor;
00250 delete BackGroundColor;
00251 CleanUp();
00252 } // end of ~QLookAndFeel()
00253 
00254 // end of implementation of QLookAndFeel
00255 
00256 

Generated on Thu Mar 18 18:33:48 2004 for miniQT by doxygen1.2.18