SpinButtonWithPicture Class Reference

#include <spin_button_picture.h>

Inheritance diagram for SpinButtonWithPicture:

Inheritance graph
[legend]
Collaboration diagram for SpinButtonWithPicture:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SpinButtonWithPicture (const std::string &label, const std::string &resource_id, const Rectanglei &rect, int value=0, int step=1, int min_value=-1, int max_value=-1)
virtual ~SpinButtonWithPicture ()
void SetSizePosition (const Rectanglei &rect)
void Draw (const Point2i &mousePosition, Surface &surf) const
WidgetClic (const Point2i &mousePosition, uint button)
int GetValue () const
void SetValue (int value)

Protected Attributes

Texttxt_label
Texttxt_value
int m_value
int m_min_value
int m_max_value
int m_step

Private Attributes

Surface m_image

Detailed Description

Definition at line 31 of file spin_button_picture.h.


Constructor & Destructor Documentation

SpinButtonWithPicture::SpinButtonWithPicture ( const std::string &  label,
const std::string &  resource_id,
const Rectanglei rect,
int  value = 0,
int  step = 1,
int  min_value = -1,
int  max_value = -1 
)

Definition at line 28 of file spin_button_picture.cpp.

00031 {
00032   position =  rect.GetPosition();
00033   size = rect.GetSize();
00034 
00035   Profile *res = resource_manager.LoadXMLProfile( "graphism.xml", false); 
00036   m_image = resource_manager.LoadImage(res, resource_id);
00037   resource_manager.UnLoadXMLProfile( res); 
00038 
00039   txt_label = new Text(label, dark_gray_color, Font::GetInstance(Font::FONT_NORMAL, Font::BOLD), false);
00040   txt_label->SetMaxWidth(GetSizeX());
00041 
00042   if ( min_value != -1 && min_value <= value)
00043     m_min_value = min_value;
00044   else m_min_value = value/2;
00045 
00046   if ( max_value != -1 && max_value >= value)
00047     m_max_value = max_value;
00048   else m_max_value = value*2;
00049 
00050   txt_value = new Text("", dark_gray_color, Font::GetInstance(Font::FONT_LARGE), false);
00051   SetValue(value);
00052 
00053   m_step = step;
00054 }

Here is the call graph for this function:

SpinButtonWithPicture::~SpinButtonWithPicture (  )  [virtual]

Definition at line 56 of file spin_button_picture.cpp.

00057 {
00058   delete txt_label;
00059   delete txt_value;
00060 }


Member Function Documentation

Widget * SpinButtonWithPicture::Clic ( const Point2i mousePosition,
uint  button 
) [virtual]

Reimplemented from Widget.

Definition at line 87 of file spin_button_picture.cpp.

00088 {
00089   need_redrawing = true;
00090 
00091   if (button == SDL_BUTTON_LEFT && Contains(mousePosition)) {  
00092     
00093     m_value += m_step;
00094     if (m_value > m_max_value) SetValue(m_min_value);
00095     else SetValue(m_value);
00096 
00097   } else if (button == SDL_BUTTON_RIGHT && Contains(mousePosition)) {  
00098     
00099     m_value -= m_step;
00100     if (m_value < m_min_value) SetValue(m_max_value);
00101     else SetValue(m_value);
00102 
00103   } else if( button == SDL_BUTTON_WHEELDOWN && Contains(mousePosition) ) {
00104     
00105     SetValue(m_value - m_step);
00106     return this;
00107     
00108   } else if( button == SDL_BUTTON_WHEELUP && Contains(mousePosition) ) {
00109     
00110     SetValue(m_value + m_step);
00111     return this;
00112   }
00113   return NULL;
00114 }

Here is the call graph for this function:

void SpinButtonWithPicture::Draw ( const Point2i mousePosition,
Surface surf 
) const [virtual]

Implements Widget.

Definition at line 68 of file spin_button_picture.cpp.

00069 {
00070   // center the image on the first half
00071   uint tmp_x = GetPositionX() + (GetSizeX() - m_image.GetWidth())/4 ;
00072   uint tmp_y = GetPositionY() + (GetSizeY() - m_image.GetHeight() - txt_label->GetHeight() - 5) /2;
00073 
00074   AppWormux::GetInstance()->video.window.Blit(m_image, Point2i(tmp_x, tmp_y));
00075 
00076   tmp_x = GetPositionX() + (3*GetSizeX()/4);
00077   tmp_y = GetPositionY() + (GetSizeY()/2) - txt_label->GetHeight()/2;
00078 
00079   uint value_h = Font::GetInstance(Font::FONT_HUGE)->GetHeight();
00080 
00081   txt_value->DrawCenterTop(tmp_x, tmp_y - value_h/2);
00082 
00083   txt_label->DrawCenterTop( GetPositionX() + GetSizeX()/2, 
00084                             GetPositionY() + GetSizeY() - txt_label->GetHeight() );
00085 }

Here is the call graph for this function:

int SpinButtonWithPicture::GetValue (  )  const

Definition at line 116 of file spin_button_picture.cpp.

00117 {
00118   return m_value;
00119 }

Here is the caller graph for this function:

void SpinButtonWithPicture::SetSizePosition ( const Rectanglei rect  )  [virtual]

Implements Widget.

Definition at line 62 of file spin_button_picture.cpp.

00063 {
00064   StdSetSizePosition(rect);
00065   txt_label->SetMaxWidth(GetSizeX());
00066 }

Here is the call graph for this function:

void SpinButtonWithPicture::SetValue ( int  value  ) 

Definition at line 121 of file spin_button_picture.cpp.

00122 {
00123   m_value = BorneLong(value, m_min_value, m_max_value);  
00124 
00125   std::ostringstream value_s;
00126   value_s << m_value ;
00127 
00128   std::string s(value_s.str());
00129   txt_value->Set(s);
00130 
00131   ForceRedraw();
00132 }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Surface SpinButtonWithPicture::m_image [private]

Definition at line 34 of file spin_button_picture.h.

int SpinButtonWithPicture::m_max_value [protected]

Definition at line 40 of file spin_button_picture.h.

int SpinButtonWithPicture::m_min_value [protected]

Definition at line 40 of file spin_button_picture.h.

int SpinButtonWithPicture::m_step [protected]

Definition at line 40 of file spin_button_picture.h.

int SpinButtonWithPicture::m_value [protected]

Definition at line 39 of file spin_button_picture.h.

Text* SpinButtonWithPicture::txt_label [protected]

Definition at line 37 of file spin_button_picture.h.

Text * SpinButtonWithPicture::txt_value [protected]

Definition at line 37 of file spin_button_picture.h.


The documentation for this class was generated from the following files:
Generated on Mon Jan 1 14:16:44 2007 for Wormux by  doxygen 1.4.7