mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-08-18 06:55:48 +03:00
More CSS work.
--HG-- branch : dev-css
This commit is contained in:
@@ -95,6 +95,8 @@ class NodeAttribute {
|
||||
|
||||
int asDpDimensionI( const std::string& defaultValue = "" ) const;
|
||||
|
||||
Uint32 asDpDimensionUint( const std::string& defaultValue = "" ) const;
|
||||
|
||||
OriginPoint asOriginPoint() const;
|
||||
|
||||
BlendMode asBlendMode() const;
|
||||
|
||||
@@ -9,15 +9,24 @@ class StyleSheetElement;
|
||||
|
||||
class EE_API StyleSheet {
|
||||
public:
|
||||
typedef std::map<std::string, StyleSheetNode> StyleSheetNodeList;
|
||||
StyleSheet();
|
||||
|
||||
void addNode( StyleSheetNode node );
|
||||
void addNode( const StyleSheetNode& node );
|
||||
|
||||
void combineNode( const StyleSheetNode& node );
|
||||
|
||||
bool isEmpty() const;
|
||||
|
||||
void print();
|
||||
|
||||
void combineStyleSheet( const StyleSheet& styleSheet );
|
||||
|
||||
StyleSheetProperties getElementProperties( StyleSheetElement * element, const std::string& pseudoClass = "" );
|
||||
|
||||
std::vector<StyleSheetNode> nodes;
|
||||
const StyleSheetNodeList& getNodes() const;
|
||||
protected:
|
||||
StyleSheetNodeList mNodes;
|
||||
};
|
||||
|
||||
}}}
|
||||
|
||||
@@ -8,12 +8,20 @@ namespace EE { namespace UI { namespace CSS {
|
||||
|
||||
class EE_API StyleSheetNode {
|
||||
public:
|
||||
StyleSheetNode();
|
||||
|
||||
explicit StyleSheetNode( const std::string& selector, const StyleSheetProperties& properties );
|
||||
|
||||
void print();
|
||||
|
||||
StyleSheetSelector selector;
|
||||
StyleSheetProperties properties;
|
||||
const StyleSheetSelector& getSelector() const;
|
||||
|
||||
const StyleSheetProperties& getProperties() const;
|
||||
|
||||
void setProperty( const StyleSheetProperty& property );
|
||||
protected:
|
||||
StyleSheetSelector mSelector;
|
||||
StyleSheetProperties mProperties;
|
||||
};
|
||||
|
||||
}}}
|
||||
|
||||
@@ -16,7 +16,8 @@ class EE_API StyleSheetPropertiesParser {
|
||||
|
||||
void print();
|
||||
|
||||
StyleSheetProperties properties;
|
||||
const StyleSheetProperties& getProperties() const;
|
||||
|
||||
protected:
|
||||
enum ReadState {
|
||||
ReadingPropertyName,
|
||||
@@ -27,6 +28,8 @@ class EE_API StyleSheetPropertiesParser {
|
||||
|
||||
ReadState prevRs;
|
||||
|
||||
StyleSheetProperties mProperties;
|
||||
|
||||
void parse( std::string propsstr );
|
||||
|
||||
int readPropertyName( ReadState& rs, std::size_t pos, std::string& buffer, const std::string& str );
|
||||
|
||||
@@ -13,9 +13,15 @@ class EE_API StyleSheetProperty {
|
||||
|
||||
explicit StyleSheetProperty( const std::string& name, const std::string& value );
|
||||
|
||||
std::string name;
|
||||
std::string value;
|
||||
Uint32 specificity;
|
||||
const std::string& getName() const;
|
||||
|
||||
const std::string& getValue() const;
|
||||
|
||||
const Uint32& getSpecificity() const;
|
||||
protected:
|
||||
std::string mName;
|
||||
std::string mValue;
|
||||
Uint32 mSpecificity;
|
||||
};
|
||||
|
||||
typedef std::map<std::string, StyleSheetProperty> StyleSheetProperties;
|
||||
|
||||
@@ -22,9 +22,11 @@ class EE_API StyleSheetSelector {
|
||||
SpecificityGlobal = 1
|
||||
};
|
||||
|
||||
StyleSheetSelector();
|
||||
|
||||
explicit StyleSheetSelector( const std::string& selectorName );
|
||||
|
||||
Uint32 getRequiredFlags();
|
||||
Uint32 getRequiredFlags() const;
|
||||
|
||||
const std::string& getName() const;
|
||||
|
||||
@@ -32,28 +34,31 @@ class EE_API StyleSheetSelector {
|
||||
|
||||
const std::string getId() const;
|
||||
|
||||
const std::vector<std::string> getClasses() const;
|
||||
const std::vector<std::string>& getClasses() const;
|
||||
|
||||
const std::string& getPseudoClass() const;
|
||||
|
||||
bool hasTagName();
|
||||
bool hasTagName() const;
|
||||
|
||||
bool hasId();
|
||||
bool hasId() const;
|
||||
|
||||
bool hasClasses();
|
||||
bool hasClasses() const;
|
||||
|
||||
bool hasClass( std::string cls );
|
||||
bool hasClass( std::string cls ) const;
|
||||
|
||||
bool hasPseudoClass();
|
||||
bool hasPseudoClass() const;
|
||||
|
||||
Uint32 getSpecificity();
|
||||
bool isGlobal() const;
|
||||
|
||||
const Uint32& getSpecificity() const;
|
||||
protected:
|
||||
std::string name;
|
||||
std::string tagName;
|
||||
std::string id;
|
||||
std::vector<std::string> classes;
|
||||
std::string pseudoClass;
|
||||
Uint32 specificity;
|
||||
std::string mName;
|
||||
std::string mTagName;
|
||||
std::string mId;
|
||||
std::vector<std::string> mClasses;
|
||||
std::string mPseudoClass;
|
||||
Uint32 mSpecificity;
|
||||
bool mGlobal;
|
||||
|
||||
void parseSelector( const std::string& selector );
|
||||
};
|
||||
|
||||
@@ -58,8 +58,6 @@ class EE_API UIMenu : public UIWidget {
|
||||
|
||||
virtual bool hide();
|
||||
|
||||
const Rectf& getPadding() const;
|
||||
|
||||
Uint32 getMinRightMargin() const;
|
||||
|
||||
void setMinRightMargin(const Uint32 & minRightMargin);
|
||||
@@ -69,6 +67,8 @@ class EE_API UIMenu : public UIWidget {
|
||||
void setFontStyleConfig(const UITooltipStyleConfig & fontStyleConfig);
|
||||
|
||||
virtual void loadFromXmlNode( const pugi::xml_node& node );
|
||||
|
||||
virtual bool setAttribute( const NodeAttribute& attribute, const Uint32& state = UIState::StateFlagNormal );
|
||||
protected:
|
||||
friend class UIMenuItem;
|
||||
friend class UIMenuCheckBox;
|
||||
|
||||
@@ -19,11 +19,9 @@ class EE_API UIMenuItem : public UIPushButton {
|
||||
|
||||
virtual void setTheme( UITheme * Theme );
|
||||
protected:
|
||||
UIMenuItem( const std::string& tag );
|
||||
explicit UIMenuItem( const std::string& tag );
|
||||
|
||||
virtual Uint32 onMouseEnter( const Vector2i &position, const Uint32 flags );
|
||||
|
||||
virtual void onStateChange();
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
@@ -42,7 +42,9 @@ class EE_API UISceneNode : public SceneNode {
|
||||
|
||||
UIWidget * loadLayoutNodes( pugi::xml_node node, Node * parent );
|
||||
|
||||
void setStyleSheet( CSS::StyleSheet styleSheet );
|
||||
void setStyleSheet( const CSS::StyleSheet& styleSheet );
|
||||
|
||||
void combineStyleSheet( const CSS::StyleSheet& styleSheet );
|
||||
|
||||
CSS::StyleSheet& getStyleSheet();
|
||||
|
||||
@@ -68,6 +70,8 @@ class EE_API UISceneNode : public SceneNode {
|
||||
bool windowExists( UIWindow * win );
|
||||
|
||||
virtual void setInternalSize(const Sizef& size );
|
||||
|
||||
void reloadStyle();
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include <eepp/ui/uithemeconfig.hpp>
|
||||
#include <eepp/ui/uihelper.hpp>
|
||||
#include <eepp/ui/uiskin.hpp>
|
||||
#include <eepp/ui/css/stylesheet.hpp>
|
||||
#include <eepp/system/resourcemanager.hpp>
|
||||
|
||||
namespace EE { namespace Graphics {
|
||||
@@ -27,9 +28,9 @@ class EE_API UITheme : protected ResourceManager<UISkin> {
|
||||
|
||||
static UITheme * loadFromTextureAtlas( UITheme * tTheme, Graphics::TextureAtlas * getTextureAtlas );
|
||||
|
||||
static UITheme * loadFromDirectroy( UITheme * tTheme, const std::string& Path, const Float& pixelDensity = 1 );
|
||||
static UITheme * loadFromTextureAtlas( Graphics::TextureAtlas * getTextureAtlas, const std::string& Name, const std::string& NameAbbr );
|
||||
|
||||
static UITheme * loadFromTextureAtlas( Graphics::TextureAtlas * getTextureAtlas, const std::string& Name, const std::string NameAbbr );
|
||||
static UITheme * loadFromDirectroy( UITheme * tTheme, const std::string& Path, const Float& pixelDensity = 1 );
|
||||
|
||||
static UITheme * loadFromDirectroy( const std::string& Path, const std::string& Name, const std::string& NameAbbr, const Float& pixelDensity = 1 );
|
||||
|
||||
@@ -59,29 +60,24 @@ class EE_API UITheme : protected ResourceManager<UISkin> {
|
||||
|
||||
void setFontStyleConfig(UIFontStyleConfig fontConfig);
|
||||
|
||||
virtual UITabWidgetStyleConfig getTabWidgetStyleConfig();
|
||||
|
||||
virtual UIProgressBarStyleConfig getProgressBarStyleConfig();
|
||||
|
||||
virtual UIWinMenuStyleConfig getWinMenuStyleConfig();
|
||||
|
||||
virtual UIDropDownListStyleConfig getDropDownListStyleConfig();
|
||||
|
||||
virtual UIWindowStyleConfig getWindowStyleConfig();
|
||||
|
||||
virtual UIMenuStyleConfig getMenuStyleConfig();
|
||||
|
||||
virtual UIPushButtonStyleConfig getPushButtonStyleConfig();
|
||||
|
||||
virtual UISliderStyleConfig getSliderStyleConfig();
|
||||
|
||||
virtual UITooltipStyleConfig getTooltipStyleConfig();
|
||||
|
||||
const CSS::StyleSheet& getStyleSheet() const;
|
||||
|
||||
void setStyleSheet(const CSS::StyleSheet & styleSheet);
|
||||
protected:
|
||||
std::string mName;
|
||||
Uint32 mNameHash;
|
||||
std::string mAbbr;
|
||||
Graphics::TextureAtlas *mTextureAtlas;
|
||||
UIFontStyleConfig mFontStyleConfig;
|
||||
CSS::StyleSheet mStyleSheet;
|
||||
|
||||
void setTextureAtlas( Graphics::TextureAtlas * SG );
|
||||
};
|
||||
|
||||
@@ -11,18 +11,8 @@ class EE_API UIThemeDefault : public UITheme {
|
||||
|
||||
UIThemeDefault( const std::string& name, const std::string& abbr, Graphics::Font * defaultFont = NULL );
|
||||
|
||||
UITabWidgetStyleConfig getTabWidgetStyleConfig();
|
||||
|
||||
UIProgressBarStyleConfig getProgressBarStyleConfig();
|
||||
|
||||
UIWinMenuStyleConfig getWinMenuStyleConfig();
|
||||
|
||||
UIWindowStyleConfig getWindowStyleConfig();
|
||||
|
||||
UIMenuStyleConfig getMenuStyleConfig();
|
||||
|
||||
UISliderStyleConfig getSliderStyleConfig();
|
||||
|
||||
UITooltipStyleConfig getTooltipStyleConfig();
|
||||
};
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ class EE_API UIWidget : public UINode, public CSS::StyleSheetElement {
|
||||
|
||||
virtual void popState( const Uint32& State, bool emitEvent = true );
|
||||
|
||||
void reloadStyle();
|
||||
void reloadStyle( const bool& reloadChilds = true );
|
||||
protected:
|
||||
friend class UIManager;
|
||||
friend class UISceneNode;
|
||||
|
||||
@@ -34,10 +34,24 @@ class EE_API UIWinMenu : public UIWidget {
|
||||
|
||||
void setMarginBetweenButtons(const Uint32 & marginBetweenButtons);
|
||||
|
||||
Uint32 getButtonMargin() const;
|
||||
|
||||
void setButtonMargin( const Uint32& buttonMargin );
|
||||
|
||||
Uint32 getMenuHeight() const;
|
||||
|
||||
void setMenuHeight( const Uint32& menuHeight );
|
||||
|
||||
Uint32 getFirstButtonMargin() const;
|
||||
|
||||
void setFirstButtonMargin( const Uint32& buttonMargin );
|
||||
|
||||
UIWinMenuStyleConfig getStyleConfig() const;
|
||||
|
||||
void setStyleConfig(const UIWinMenuStyleConfig & styleConfig);
|
||||
|
||||
virtual bool setAttribute( const NodeAttribute& attribute, const Uint32& state = UIState::StateFlagNormal );
|
||||
|
||||
virtual void loadFromXmlNode( const pugi::xml_node& node );
|
||||
protected:
|
||||
typedef std::list< std::pair< UISelectButton *, UIPopUpMenu * > > WinMenuList;
|
||||
@@ -63,6 +77,8 @@ class EE_API UIWinMenu : public UIWidget {
|
||||
void unselectButtons();
|
||||
|
||||
void destroyMenues();
|
||||
|
||||
void autoHeight();
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user