2013-09-13 22:20:20 +08:00
|
|
|
/****************************************************************************
|
|
|
|
Copyright (c) 2013 cocos2d-x.org
|
|
|
|
|
|
|
|
http://www.cocos2d-x.org
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
|
|
in the Software without restriction, including without limitation the rights
|
|
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
|
|
all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
|
THE SOFTWARE.
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
#ifndef __LAYOUTPARMETER_H__
|
|
|
|
#define __LAYOUTPARMETER_H__
|
|
|
|
|
2013-10-16 16:48:39 +08:00
|
|
|
#include "gui/UILayoutDefine.h"
|
2013-09-13 22:20:20 +08:00
|
|
|
|
2013-10-15 18:00:03 +08:00
|
|
|
namespace gui {
|
2013-09-13 22:20:20 +08:00
|
|
|
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
LAYOUT_PARAMETER_NONE,
|
|
|
|
LAYOUT_PARAMETER_LINEAR,
|
|
|
|
LAYOUT_PARAMETER_RELATIVE
|
|
|
|
}LayoutParameterType;
|
2013-11-20 12:04:47 +08:00
|
|
|
|
2013-11-06 16:04:06 +08:00
|
|
|
class UILayoutParameter : public cocos2d::Object
|
2013-09-13 22:20:20 +08:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* Default constructor
|
2013-11-20 12:04:47 +08:00
|
|
|
* @js ctor
|
2013-09-13 22:20:20 +08:00
|
|
|
*/
|
2013-11-06 16:04:06 +08:00
|
|
|
UILayoutParameter() : _margin(UIMargin()){_layoutParameterType = LAYOUT_PARAMETER_NONE;};
|
2013-09-13 22:20:20 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Default destructor
|
2013-11-20 12:04:47 +08:00
|
|
|
* @js NA
|
|
|
|
* @lua NA
|
2013-09-13 22:20:20 +08:00
|
|
|
*/
|
2013-11-06 16:04:06 +08:00
|
|
|
virtual ~UILayoutParameter(){};
|
2013-09-13 22:20:20 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Allocates and initializes.
|
|
|
|
* @return A initialized LayoutParameter which is marked as "autorelease".
|
|
|
|
*/
|
2013-11-06 16:04:06 +08:00
|
|
|
static UILayoutParameter* create();
|
2013-09-13 22:20:20 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets Margin parameter for LayoutParameter.
|
|
|
|
*
|
|
|
|
* @see UIMargin
|
|
|
|
*
|
|
|
|
* @param margin
|
2013-11-20 12:04:47 +08:00
|
|
|
* @js NA
|
|
|
|
* @lua NA
|
2013-09-13 22:20:20 +08:00
|
|
|
*/
|
|
|
|
void setMargin(const UIMargin& margin);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets Margin parameter of LayoutParameter.
|
|
|
|
*
|
|
|
|
* @see UIMargin
|
|
|
|
*
|
|
|
|
* @return const UIMargin&
|
2013-11-20 12:04:47 +08:00
|
|
|
* @js NA
|
|
|
|
* @lua NA
|
2013-09-13 22:20:20 +08:00
|
|
|
*/
|
|
|
|
const UIMargin& getMargin() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets LayoutParameterType of LayoutParameter.
|
|
|
|
*
|
|
|
|
* @see LayoutParameterType
|
|
|
|
*
|
|
|
|
* @return LayoutParameterType
|
|
|
|
*/
|
|
|
|
LayoutParameterType getLayoutType() const;
|
|
|
|
protected:
|
2013-09-16 20:54:13 +08:00
|
|
|
UIMargin _margin;
|
|
|
|
LayoutParameterType _layoutParameterType;
|
2013-09-13 22:20:20 +08:00
|
|
|
};
|
2013-11-06 16:04:06 +08:00
|
|
|
/**
|
|
|
|
* @js NA
|
|
|
|
* @lua NA
|
|
|
|
*/
|
|
|
|
class UILinearLayoutParameter : public UILayoutParameter
|
2013-09-13 22:20:20 +08:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* Default constructor
|
|
|
|
*/
|
2013-11-06 16:04:06 +08:00
|
|
|
UILinearLayoutParameter() : _linearGravity(LINEAR_GRAVITY_NONE){_layoutParameterType = LAYOUT_PARAMETER_LINEAR;};
|
2013-09-13 22:20:20 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Default destructor
|
|
|
|
*/
|
2013-11-06 16:04:06 +08:00
|
|
|
virtual ~UILinearLayoutParameter(){};
|
2013-09-13 22:20:20 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Allocates and initializes.
|
|
|
|
* @return A initialized LayoutParameter which is marked as "autorelease".
|
|
|
|
*/
|
2013-11-06 16:04:06 +08:00
|
|
|
static UILinearLayoutParameter* create();
|
2013-09-13 22:20:20 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets UILinearGravity parameter for LayoutParameter.
|
|
|
|
*
|
|
|
|
* @see UILinearGravity
|
|
|
|
*
|
|
|
|
* @param UILinearGravity
|
|
|
|
*/
|
|
|
|
void setGravity(UILinearGravity gravity);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets UILinearGravity parameter for LayoutParameter.
|
|
|
|
*
|
|
|
|
* @see UILinearGravity
|
|
|
|
*
|
|
|
|
* @return UILinearGravity
|
|
|
|
*/
|
|
|
|
UILinearGravity getGravity() const;
|
|
|
|
protected:
|
2013-09-25 19:04:37 +08:00
|
|
|
UILinearGravity _linearGravity;
|
2013-09-13 22:20:20 +08:00
|
|
|
};
|
2013-11-06 16:04:06 +08:00
|
|
|
/**
|
|
|
|
* @js NA
|
|
|
|
* @lua NA
|
|
|
|
*/
|
|
|
|
|
|
|
|
class UILayout;
|
2013-09-13 22:20:20 +08:00
|
|
|
|
2013-11-06 16:04:06 +08:00
|
|
|
class UIRelativeLayoutParameter : public UILayoutParameter
|
2013-09-13 22:20:20 +08:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* Default constructor
|
|
|
|
*/
|
2013-11-06 16:04:06 +08:00
|
|
|
UIRelativeLayoutParameter() : _relativeAlign(RELATIVE_ALIGN_NONE),_relativeWidgetName(""),_relativeLayoutName(""),_put(false){_layoutParameterType = LAYOUT_PARAMETER_RELATIVE;};
|
2013-09-13 22:20:20 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Default destructor
|
|
|
|
*/
|
2013-11-06 16:04:06 +08:00
|
|
|
virtual ~UIRelativeLayoutParameter(){};
|
2013-09-13 22:20:20 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Allocates and initializes.
|
|
|
|
* @return A initialized LayoutParameter which is marked as "autorelease".
|
|
|
|
*/
|
2013-11-06 16:04:06 +08:00
|
|
|
static UIRelativeLayoutParameter* create();
|
2013-09-13 22:20:20 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets UIRelativeAlign parameter for LayoutParameter.
|
|
|
|
*
|
|
|
|
* @see UIRelativeAlign
|
|
|
|
*
|
|
|
|
* @param UIRelativeAlign
|
|
|
|
*/
|
|
|
|
void setAlign(UIRelativeAlign align);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets UIRelativeAlign parameter for LayoutParameter.
|
|
|
|
*
|
|
|
|
* @see UIRelativeAlign
|
|
|
|
*
|
|
|
|
* @return UIRelativeAlign
|
|
|
|
*/
|
|
|
|
UIRelativeAlign getAlign() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets a key for LayoutParameter. Witch widget named this is relative to.
|
|
|
|
*
|
|
|
|
* @param name
|
|
|
|
*/
|
|
|
|
void setRelativeToWidgetName(const char* name);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets the key of LayoutParameter. Witch widget named this is relative to.
|
|
|
|
*
|
|
|
|
* @return name
|
|
|
|
*/
|
|
|
|
const char* getRelativeToWidgetName() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets a name in Relative Layout for LayoutParameter.
|
|
|
|
*
|
|
|
|
* @param name
|
|
|
|
*/
|
|
|
|
void setRelativeName(const char* name);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets a name in Relative Layout of LayoutParameter.
|
|
|
|
*
|
|
|
|
* @return name
|
|
|
|
*/
|
|
|
|
const char* getRelativeName() const;
|
|
|
|
protected:
|
2013-09-25 19:04:37 +08:00
|
|
|
UIRelativeAlign _relativeAlign;
|
|
|
|
std::string _relativeWidgetName;
|
|
|
|
std::string _relativeLayoutName;
|
2013-11-06 16:04:06 +08:00
|
|
|
bool _put;
|
|
|
|
friend class UILayout;
|
2013-09-13 22:20:20 +08:00
|
|
|
};
|
|
|
|
|
2013-10-15 18:00:03 +08:00
|
|
|
}
|
2013-09-13 22:20:20 +08:00
|
|
|
|
|
|
|
#endif /* defined(__LayoutParameter__) */
|