CHANGED: #1471 Implemented CCtrlTextButton property querying.

--HG--
branch : gsoc2012-gui-editor
This commit is contained in:
dfighter1985 2012-07-28 23:12:22 +02:00
parent 0afe418b1c
commit 50d3dce8f7
6 changed files with 259 additions and 1 deletions

View file

@ -42,6 +42,8 @@ namespace NLGUI
/// Constructor /// Constructor
CCtrlTextButton(const TCtorParam &param); CCtrlTextButton(const TCtorParam &param);
std::string getProperty( const std::string &name ) const;
// Init part // Init part
virtual bool parse (xmlNodePtr cur,CInterfaceGroup * parentGroup); virtual bool parse (xmlNodePtr cur,CInterfaceGroup * parentGroup);

View file

@ -328,6 +328,8 @@ public:
static CRGBA stringToRGBA( const char *ptr ); static CRGBA stringToRGBA( const char *ptr );
std::string toString() const;
/// Swap the B and R components, to simulate a CBRGA /// Swap the B and R components, to simulate a CBRGA
void swapBR() void swapBR()

View file

@ -60,6 +60,130 @@ namespace NLGUI
_ForceTextOver = false; _ForceTextOver = false;
} }
std::string CCtrlTextButton::getProperty( const std::string &name ) const
{
if( name == "tx_normal" )
{
std::string tex;
tex = CViewRenderer::getInstance()->getTextureNameFromId( _TextureIdNormal[ 0 ] );
std::string::size_type i = tex.rfind( "_l.tga" );
if( i != std::string::npos )
tex = tex.substr( 0, i );
return tex;
}
else
if( name == "tx_pushed" )
{
std::string tex;
tex = CViewRenderer::getInstance()->getTextureNameFromId( _TextureIdPushed[ 0 ] );
std::string::size_type i = tex.rfind( "_l.tga" );
if( i != std::string::npos )
tex = tex.substr( 0, i );
return tex;
}
else
if( name == "tx_over" )
{
std::string tex;
tex = CViewRenderer::getInstance()->getTextureNameFromId( _TextureIdOver[ 0 ] );
std::string::size_type i = tex.rfind( "_l.tga" );
if( i != std::string::npos )
tex = tex.substr( 0, i );
return tex;
}
else
if( name == "wmargin" )
{
return toString( _WMargin );
}
else
if( name == "wmin" )
{
return toString( _WMin );
}
else
if( name == "text_y" )
{
return toString( _TextY );
}
else
if( name == "text_x" )
{
return toString( _TextX );
}
else
if( name == "text_underlined" )
{
return toString( _ViewText->getUnderlined() );
}
else
if( name == "text_posref" )
{
std::string pr;
pr = CInterfaceElement::HotSpotToString( _TextParentPosRef );
pr += " ";
pr += CInterfaceElement::HotSpotToString( _TextPosRef );
return pr;
}
else
if( name == "text_color_normal" )
{
return toString( _TextColorNormal );
}
else
if( name == "text_color_pushed" )
{
return toString( _TextColorPushed );
}
else
if( name == "text_color_over" )
{
return toString( _TextColorOver );
}
else
if( name == "text_shadow_color_normal" )
{
return toString( _TextShadowColorNormal );
}
else
if( name == "text_shadow_color_pushed" )
{
return toString( _TextShadowColorPushed );
}
else
if( name == "text_shadow_color_over" )
{
return toString( _TextShadowColorOver );
}
else
if( name == "text_global_color_normal" )
{
return toString( _TextModulateGlobalColorNormal );
}
else
if( name == "text_global_color_pushed" )
{
return toString( _TextModulateGlobalColorPushed );
}
else
if( name == "text_global_color_over" )
{
return toString( _TextModulateGlobalColorOver );
}
else
if( name == "force_text_over" )
{
return toString( _ForceTextOver );
}
else
if( name == "text_header_color" )
{
return toString( _TextHeaderColor );
}
else
return CCtrlBaseButton::getProperty( name );
}
// *************************************************************************** // ***************************************************************************
bool CCtrlTextButton::parse(xmlNodePtr cur, CInterfaceGroup * parentGroup) bool CCtrlTextButton::parse(xmlNodePtr cur, CInterfaceGroup * parentGroup)
{ {

View file

@ -219,7 +219,7 @@ namespace NLGUI
{ {
if( name == "id" ) if( name == "id" )
{ {
return getId(); return stripId( getId() );
} }
else else
if( name == "active" ) if( name == "active" )

View file

@ -743,6 +743,19 @@ CRGBA CRGBA::stringToRGBA( const char *ptr )
return CRGBA( r,g,b,a ); return CRGBA( r,g,b,a );
} }
std::string CRGBA::toString() const
{
std::string s;
s = NLMISC::toString( R );
s += " ";
s += NLMISC::toString( G );
s += " ";
s += NLMISC::toString( B );
s += " ";
s += NLMISC::toString( A );
return s;
}
// *************************************************************************** // ***************************************************************************
// *************************************************************************** // ***************************************************************************

View file

@ -0,0 +1,117 @@
<widget>
<header>
<name>CtrlTextButton</name>
<guiname>CCtrlTextButton</guiname>
<ancestor>CtrlBaseButton</ancestor>
<description></description>
<abstract>false</abstract>
<icon></icon>
</header>
<properties>
<property>
<name>tx_normal</name>
<type>string</type>
<default></default>
</property>
<property>
<name>tx_pushed</name>
<type>string</type>
<default></default>
</property>
<property>
<name>tx_over</name>
<type>string</type>
<default></default>
</property>
<property>
<name>hardtext</name>
<type>string</type>
<default></default>
</property>
<property>
<name>wmargin</name>
<type>int</type>
<default>0</default>
</property>
<property>
<name>wmin</name>
<type>int</type>
<default>0</default>
</property>
<property>
<name>text_y</name>
<type>int</type>
<default>-2</default>
</property>
<property>
<name>text_x</name>
<type>int</type>
<default>-2</default>
</property>
<property>
<name>text_underlined</name>
<type>bool</type>
<default>false</default>
</property>
<property>
<name>text_posref</name>
<type>string</type>
<default>MM MM</default>
</property>
<property>
<name>text_color_normal</name>
<type>string</type>
<default>255 255 255 255</default>
</property>
<property>
<name>text_color_pushed</name>
<type>string</type>
<default>255 255 255 255</default>
</property>
<property>
<name>text_color_over</name>
<type>string</type>
<default>255 255 255 255</default>
</property>
<property>
<name>text_shadow_color_normal</name>
<type>string</type>
<default>0 0 0 255</default>
</property>
<property>
<name>text_shadow_color_pushed</name>
<type>string</type>
<default>0 0 0 255</default>
</property>
<property>
<name>text_shadow_color_over</name>
<type>string</type>
<default>0 0 0 255</default>
</property>
<property>
<name>text_global_color_normal</name>
<type>bool</type>
<default>true</default>
</property>
<property>
<name>text_global_color_pushed</name>
<type>bool</type>
<default>true</default>
</property>
<property>
<name>text_global_color_over</name>
<type>bool</type>
<default>true</default>
</property>
<property>
<name>force_text_over</name>
<type>bool</type>
<default>false</default>
</property>
<property>
<name>text_header_color</name>
<type>bool</type>
<default>false</default>
</property>
</properties>
</widget>