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

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

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