00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef PG_LABEL_H
00030 #define PG_LABEL_H
00031
00032 #include "pgwidget.h"
00033
00047 class DECLSPEC PG_Label : public PG_Widget {
00048 public:
00049
00050
00051 typedef enum {
00052 LEFT,
00053 CENTER,
00054 RIGHT
00055 } TextAlign;
00056
00063 PG_Label(PG_Widget* parent, const PG_Rect& r = PG_Rect::null, const std::string& text = PG_NULLSTR, const std::string& style="Label");
00064
00066 ~PG_Label();
00067
00069 void LoadThemeStyle(const std::string& widgettype);
00070
00072 void LoadThemeStyle(const std::string& widgettype, const std::string& objectname);
00073
00075 void SetAlignment(TextAlign a);
00076
00078 SDL_Surface* SetIcon(const std::string& filename);
00079
00081 SDL_Surface* SetIcon(SDL_Surface* icon);
00082
00083 SDL_Surface* GetIcon();
00084
00089 void SetIndent(Uint16 indent);
00090
00092 Uint16 GetIndent();
00093
00094 void SetSizeByText(int Width = 0, int Height = 0, const std::string& Text = PG_NULLSTR);
00095
00096 protected:
00097
00102 void eventDraw(SDL_Surface* surface, const PG_Rect& rect);
00103
00105 void eventBlit(SDL_Surface* surface, const PG_Rect& src, const PG_Rect& dst);
00106
00107 SDL_Surface* my_srfIcon;
00108
00109 private:
00110
00111 PG_Label(const PG_Label&);
00112
00113 PG_Label& operator=(const PG_Label&);
00114
00115 TextAlign my_alignment;
00116
00117 Uint16 my_indent;
00118
00119 bool my_freeicon;
00120 };
00121
00122 #endif // PG_LABEL_H