123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421 |
- #ifndef __LAYOUTPARMETER_H__
- #define __LAYOUTPARMETER_H__
- #include <string>
- #include "base/CCRef.h"
- #include "ui/GUIExport.h"
- NS_CC_BEGIN
- namespace ui {
- class CC_GUI_DLL Margin
- {
- public:
-
- float left;
-
- float top;
-
- float right;
-
- float bottom;
-
- public:
-
- Margin();
-
- Margin(float l, float t, float r, float b);
-
- Margin(const Margin& other);
-
- Margin& operator= (const Margin& other);
-
- void setMargin(float l, float t, float r, float b);
-
- bool equals(const Margin& target) const;
-
-
- static const Margin ZERO;
- };
- #if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
- #ifdef RELATIVE
- #undef RELATIVE
- #endif
- #endif
- class CC_GUI_DLL LayoutParameter : public Ref
- {
- public:
-
- enum class Type
- {
- NONE = 0,
- LINEAR,
- RELATIVE
- };
-
- LayoutParameter() : _margin(Margin())
- {
- _layoutParameterType = Type::NONE;
- }
-
-
- virtual ~LayoutParameter(){};
-
-
- static LayoutParameter* create();
-
-
- void setMargin(const Margin& margin);
-
-
- const Margin& getMargin() const;
-
-
- Type getLayoutType() const;
-
-
- LayoutParameter* clone();
-
- virtual LayoutParameter* createCloneInstance();
-
-
- virtual void copyProperties(LayoutParameter* model);
- protected:
- Margin _margin;
- Type _layoutParameterType;
- };
-
- class CC_GUI_DLL LayoutParameterProtocol
- {
- public:
-
- virtual ~LayoutParameterProtocol(){}
-
- virtual LayoutParameter* getLayoutParameter() const= 0;
- };
-
- class CC_GUI_DLL LinearLayoutParameter : public LayoutParameter
- {
- public:
-
- enum class LinearGravity
- {
- NONE,
- LEFT,
- TOP,
- RIGHT,
- BOTTOM,
- CENTER_VERTICAL,
- CENTER_HORIZONTAL
- };
-
- LinearLayoutParameter()
- : _linearGravity(LinearGravity::NONE)
- {
- _layoutParameterType = Type::LINEAR;
- }
-
-
- virtual ~LinearLayoutParameter(){};
-
-
- static LinearLayoutParameter* create();
-
-
- void setGravity(LinearGravity gravity);
-
-
- LinearGravity getGravity() const;
-
- virtual LayoutParameter* createCloneInstance() override;
- virtual void copyProperties(LayoutParameter* model) override;
- protected:
- LinearGravity _linearGravity;
- int i;
- };
-
-
- class CC_GUI_DLL RelativeLayoutParameter : public LayoutParameter
- {
- public:
-
- enum class RelativeAlign
- {
- NONE,
- PARENT_TOP_LEFT,
- PARENT_TOP_CENTER_HORIZONTAL,
- PARENT_TOP_RIGHT,
- PARENT_LEFT_CENTER_VERTICAL,
-
- CENTER_IN_PARENT,
-
- PARENT_RIGHT_CENTER_VERTICAL,
- PARENT_LEFT_BOTTOM,
- PARENT_BOTTOM_CENTER_HORIZONTAL,
- PARENT_RIGHT_BOTTOM,
-
- LOCATION_ABOVE_LEFTALIGN,
- LOCATION_ABOVE_CENTER,
- LOCATION_ABOVE_RIGHTALIGN,
- LOCATION_LEFT_OF_TOPALIGN,
- LOCATION_LEFT_OF_CENTER,
- LOCATION_LEFT_OF_BOTTOMALIGN,
- LOCATION_RIGHT_OF_TOPALIGN,
- LOCATION_RIGHT_OF_CENTER,
- LOCATION_RIGHT_OF_BOTTOMALIGN,
- LOCATION_BELOW_LEFTALIGN,
- LOCATION_BELOW_CENTER,
- LOCATION_BELOW_RIGHTALIGN
- };
-
- RelativeLayoutParameter()
- : _relativeAlign(RelativeAlign::NONE),
- _relativeWidgetName(""),
- _relativeLayoutName(""),
- _put(false)
- {
- _layoutParameterType = Type::RELATIVE;
- }
-
-
- virtual ~RelativeLayoutParameter(){};
-
-
- static RelativeLayoutParameter* create();
-
-
- void setAlign(RelativeAlign align);
-
-
- RelativeAlign getAlign() const;
-
-
- void setRelativeToWidgetName(const std::string& name);
-
-
- const std::string& getRelativeToWidgetName() const;
-
-
- void setRelativeName(const std::string& name);
-
-
- const std::string& getRelativeName() const;
-
-
- virtual LayoutParameter* createCloneInstance() override;
- virtual void copyProperties(LayoutParameter* model) override;
- protected:
- RelativeAlign _relativeAlign;
- std::string _relativeWidgetName;
- std::string _relativeLayoutName;
- bool _put;
- friend class RelativeLayoutManager;
- };
- }
- NS_CC_END
- #endif
|