mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
204 lines
No EOL
3.3 KiB
C++
204 lines
No EOL
3.3 KiB
C++
#include "CtrlCore.h"
|
|
|
|
namespace Upp {
|
|
|
|
PackedData& Ctrl::Attrs()
|
|
{
|
|
if(layout_id_literal) {
|
|
String layout_id((const char *)attrs.GetRawPtr());
|
|
attrs.SetRawPtr(nullptr);
|
|
attrs.SetString(ATTR_LAYOUT_ID, layout_id);
|
|
layout_id_literal = false;
|
|
}
|
|
return attrs;
|
|
}
|
|
|
|
void Ctrl::SetTextAttr(int ii, const char *s)
|
|
{
|
|
Attrs().SetString(ii, s);
|
|
}
|
|
|
|
void Ctrl::SetTextAttr(int ii, const String& s)
|
|
{
|
|
Attrs().SetString(ii, s);
|
|
}
|
|
|
|
String Ctrl::GetTextAttr(int ii) const
|
|
{
|
|
return layout_id_literal ? String() : attrs.GetString(ii);
|
|
}
|
|
|
|
Ctrl& Ctrl::Tip(const char *txt)
|
|
{
|
|
SetTextAttr(ATTR_TIP, txt);
|
|
return *this;
|
|
}
|
|
|
|
Ctrl& Ctrl::HelpLine(const char *txt)
|
|
{
|
|
SetTextAttr(ATTR_HELPLINE, txt);
|
|
return *this;
|
|
}
|
|
|
|
Ctrl& Ctrl::Description(const char *txt)
|
|
{
|
|
SetTextAttr(ATTR_DESCRIPTION, txt);
|
|
return *this;
|
|
}
|
|
|
|
Ctrl& Ctrl::HelpTopic(const char *txt)
|
|
{
|
|
SetTextAttr(ATTR_HELPTOPIC, txt);
|
|
return *this;
|
|
}
|
|
|
|
Ctrl& Ctrl::LayoutId(const char *txt)
|
|
{
|
|
SetTextAttr(ATTR_LAYOUT_ID, txt);
|
|
return *this;
|
|
}
|
|
|
|
Ctrl& Ctrl::LayoutIdLiteral(const char *txt)
|
|
{
|
|
if(attrs.GetRawPtr() && !layout_id_literal)
|
|
LayoutId(txt);
|
|
else {
|
|
attrs.SetRawPtr((void *)txt);
|
|
layout_id_literal = true;
|
|
}
|
|
return *this;
|
|
}
|
|
|
|
String Ctrl::GetLayoutId() const
|
|
{
|
|
if(layout_id_literal)
|
|
return (const char *)attrs.GetRawPtr();
|
|
return GetTextAttr(ATTR_LAYOUT_ID);
|
|
}
|
|
|
|
String Ctrl::GetTip() const
|
|
{
|
|
return GetTextAttr(ATTR_TIP);
|
|
}
|
|
|
|
String Ctrl::GetHelpLine() const
|
|
{
|
|
return GetTextAttr(ATTR_HELPLINE);
|
|
}
|
|
|
|
String Ctrl::GetDescription() const
|
|
{
|
|
return GetTextAttr(ATTR_DESCRIPTION);
|
|
}
|
|
|
|
String Ctrl::GetHelpTopic() const
|
|
{
|
|
return GetTextAttr(ATTR_HELPTOPIC);
|
|
}
|
|
|
|
void Ctrl::ClearInfo()
|
|
{
|
|
if(layout_id_literal)
|
|
attrs.SetRawPtr(nullptr);
|
|
layout_id_literal = false;
|
|
attrs.Clear();
|
|
}
|
|
|
|
void Ctrl::SetColorAttr(int ii, Color c)
|
|
{
|
|
Attrs();
|
|
if(IsNull(c))
|
|
attrs.SetNull(ii);
|
|
else
|
|
attrs.SetDword(ii, c.GetRaw());
|
|
}
|
|
|
|
Color Ctrl::GetColorAttr(int ii) const
|
|
{
|
|
if(layout_id_literal)
|
|
return Null;
|
|
static dword nullval = Color(Null).GetRaw();
|
|
return Color::FromRaw(attrs.GetDword(ii, nullval));
|
|
}
|
|
|
|
void Ctrl::SetFontAttr(int ii, Font fnt)
|
|
{
|
|
Attrs();
|
|
if(IsNull(fnt))
|
|
attrs.SetNull(ii);
|
|
else
|
|
attrs.SetInt64(ii, fnt.AsInt64());
|
|
}
|
|
|
|
Font Ctrl::GetFontAttr(int ii) const
|
|
{
|
|
if(layout_id_literal)
|
|
return Null;
|
|
static int64 nullval = Font(Null).AsInt64();
|
|
return Font::FromInt64(attrs.GetInt64(ii, nullval));
|
|
}
|
|
|
|
void Ctrl::SetIntAttr(int ii, int val)
|
|
{
|
|
Attrs().SetInt(ii, val);
|
|
}
|
|
|
|
int Ctrl::GetIntAttr(int ii, int def) const
|
|
{
|
|
if(layout_id_literal)
|
|
return def;
|
|
return attrs.GetInt(ii, def);
|
|
}
|
|
|
|
void Ctrl::SetInt64Attr(int ii, int64 val)
|
|
{
|
|
Attrs().SetInt64(ii, val);
|
|
}
|
|
|
|
int64 Ctrl::GetInt64Attr(int ii, int64 def) const
|
|
{
|
|
if(layout_id_literal)
|
|
return def;
|
|
return attrs.GetInt64(ii, def);
|
|
}
|
|
|
|
void Ctrl::SetLogPosAttr(int ii, LogPos pos)
|
|
{
|
|
Attrs().Set(ii, pos);
|
|
}
|
|
|
|
Ctrl::LogPos Ctrl::GetLogPosAttr(int ii) const
|
|
{
|
|
if(layout_id_literal)
|
|
return LogPos();
|
|
return attrs.Get<LogPos>(ii, LogPos());
|
|
}
|
|
|
|
void Ctrl::SetRectAttr(int ii, const Rect& r)
|
|
{
|
|
Attrs().Set(ii, r);
|
|
}
|
|
|
|
Rect Ctrl::GetRectAttr(int ii) const
|
|
{
|
|
if(layout_id_literal)
|
|
return Null;
|
|
return attrs.Get<Rect>(ii, Rect(Null));
|
|
}
|
|
|
|
void Ctrl::SetVoidPtrAttr(int ii, const void *ptr)
|
|
{
|
|
if(ptr)
|
|
Attrs().SetPtr(ii, (void *)ptr);
|
|
else
|
|
Attrs().SetNull(ii);
|
|
}
|
|
|
|
void *Ctrl::GetVoidPtrAttr(int ii) const
|
|
{
|
|
if(layout_id_literal)
|
|
return NULL;
|
|
return attrs.GetPtr(ii);
|
|
}
|
|
|
|
}; |