mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-08-13 12:46:16 +03:00
Added events: Node::onIdChange, UIWidget::onClassChange, UIWidget::onTagChange. UIItemContainer is now a widget (required for CSS). Fixes in UIListBox and UITable. CSS::StyleSheetStyle is now stored as a shared pointer. Fixes in UICheckBox, UIRadioButton, UISlider, UIScrollBar, UITab, UIWinMenu, and more. Better debug tooltips (now shows padding and margin). Fix in UISceneNode::loadLayoutNodes, ensures that the current SceneNode is the one that it's loading.
48 lines
1.2 KiB
C++
48 lines
1.2 KiB
C++
#ifndef EE_UI_CSS_STYLESHEETPROPERTIESPARSER_HPP
|
|
#define EE_UI_CSS_STYLESHEETPROPERTIESPARSER_HPP
|
|
|
|
#include <eepp/core/string.hpp>
|
|
#include <eepp/ui/css/stylesheetproperty.hpp>
|
|
#include <eepp/ui/css/stylesheetvariable.hpp>
|
|
#include <map>
|
|
#include <vector>
|
|
|
|
namespace EE { namespace UI { namespace CSS {
|
|
|
|
class EE_API StyleSheetPropertiesParser {
|
|
public:
|
|
StyleSheetPropertiesParser();
|
|
|
|
explicit StyleSheetPropertiesParser( const std::string& propsstr );
|
|
|
|
void parse( const std::string& propsstr );
|
|
|
|
void print();
|
|
|
|
const StyleSheetProperties& getProperties() const;
|
|
|
|
const StyleSheetVariables& getVariables() const;
|
|
|
|
protected:
|
|
enum ReadState { ReadingPropertyName, ReadingPropertyValue, ReadingComment };
|
|
|
|
ReadState mPrevRs;
|
|
|
|
StyleSheetProperties mProperties;
|
|
StyleSheetVariables mVariables;
|
|
|
|
int readPropertyName( ReadState& rs, std::size_t pos, std::string& buffer,
|
|
const std::string& str );
|
|
|
|
int readPropertyValue( ReadState& rs, std::size_t pos, std::string& buffer,
|
|
const std::string& str );
|
|
|
|
int readComment( ReadState& rs, std::size_t pos, std::string& buffer, const std::string& str );
|
|
|
|
void addProperty( std::string name, std::string value );
|
|
};
|
|
|
|
}}} // namespace EE::UI::CSS
|
|
|
|
#endif
|