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
#ifndef UITEM_HPP
00029
#define UITEM_HPP
00030
00031
#include "../uobject.hpp"
00032
00033
#include "../util/udimension.hpp"
00034
#include "../util/urectangle.hpp"
00035
00036
namespace ufo {
00037
00038
class UGraphics;
00039
class UColor;
00040
class UWidget;
00041
class UStyleHints;
00042
00050 class UFO_EXPORT UItem :
public virtual UObject {
00051 UFO_DECLARE_ABSTRACT_CLASS(UItem)
00052
public:
00055
virtual void paintItem(
00056
UGraphics * g,
00057
const URectangle & rect,
00058
const UStyleHints * hints,
00059 uint32_t state,
00060
const UWidget * parent = NULL) = 0;
00062
virtual UDimension getItemSize(
00063
const UDimension & maxSize,
00064
const UStyleHints * hints,
00065
const UWidget * parent = NULL)
const = 0;
00066
00070
virtual std::string itemToString()
const = 0;
00071
00072
virtual void install(
UWidget * parent) = 0;
00073
virtual void uninstall(
UWidget * parent) = 0;
00074 };
00075
00076
class UIcon;
00080 class UFO_EXPORT UStringItem :
public UItem {
00081 UFO_DECLARE_DYNAMIC_CLASS(UStringItem)
00082
public:
00083 UStringItem();
00084 UStringItem(
const std::string & str);
00085 UStringItem(
UIcon * i);
00086 UStringItem(
const std::string & str,
UIcon * icon);
00087
00088
public:
00089
virtual void paintItem(
00090
UGraphics * g,
00091
const URectangle & rect,
00092
const UStyleHints * hints,
00093 uint32_t state,
00094
const UWidget * parent = NULL);
00095
00096
virtual UDimension getItemSize(
00097
const UDimension & maxSize,
00098
const UStyleHints * hints,
00099
const UWidget * parent = NULL)
const;
00100
00101
virtual std::string itemToString()
const;
00102
00103
virtual void install(
UWidget * parent);
00104
virtual void uninstall(
UWidget * parent);
00105
00106
protected:
00107
virtual std::ostream & paramString(std::ostream & os)
const;
00108
private:
00109
UIcon * m_icon;
00110 std::string m_text;
00111 };
00112
00113 }
00114
00115
#endif // UITEM_HPP