1
0
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-20 12:19:10 +00:00

Merged in cwalther/cwe/textrendering (pull request #36)

Shadowed Chat and Player List Text

This implements the (existing but unimplemented) plDynamicTextMap::kFontShadowed flag, making the text of the mini KI (player list and chat) better readable on light and patterned backgrounds.

For best results, an additional Python change is recommended: MOULSCRIPT-ou PR #23.

From H-uru/Plasma#392.
This commit is contained in:
Christian Walther
2015-04-03 23:09:00 +02:00
23 changed files with 453 additions and 107 deletions

View File

@ -491,4 +491,10 @@ void pyDynamicText::AddPlasmaConstantsClasses(PyObject *m)
PYTHON_ENUM_ELEMENT(PtJustify, kLeftJustify, plDynamicTextMap::Justify::kLeftJustify);
PYTHON_ENUM_ELEMENT(PtJustify, kRightJustify, plDynamicTextMap::Justify::kRightJustify);
PYTHON_ENUM_END(m, PtJustify);
PYTHON_ENUM_START(PtFontFlags);
PYTHON_ENUM_ELEMENT(PtFontFlags, kFontBold, plDynamicTextMap::kFontBold);
PYTHON_ENUM_ELEMENT(PtFontFlags, kFontItalic, plDynamicTextMap::kFontItalic);
PYTHON_ENUM_ELEMENT(PtFontFlags, kFontShadowed, plDynamicTextMap::kFontShadowed);
PYTHON_ENUM_END(m, PtFontFlags);
}

View File

@ -278,7 +278,7 @@ PyObject* pyGUIControl::GetOwnerDlg( void )
}
// get color schemes
PyObject* pyGUIControl::GetForeColor()
PyObject* pyGUIControl::GetForeColor() const
{
if ( fGCkey )
{
@ -292,7 +292,7 @@ PyObject* pyGUIControl::GetForeColor()
PYTHON_RETURN_NONE;
}
PyObject* pyGUIControl::GetSelColor()
PyObject* pyGUIControl::GetSelColor() const
{
if ( fGCkey )
{
@ -306,7 +306,7 @@ PyObject* pyGUIControl::GetSelColor()
PYTHON_RETURN_NONE;
}
PyObject* pyGUIControl::GetBackColor()
PyObject* pyGUIControl::GetBackColor() const
{
if ( fGCkey )
{
@ -320,7 +320,7 @@ PyObject* pyGUIControl::GetBackColor()
PYTHON_RETURN_NONE;
}
PyObject* pyGUIControl::GetBackSelColor()
PyObject* pyGUIControl::GetBackSelColor() const
{
if ( fGCkey )
{
@ -334,7 +334,7 @@ PyObject* pyGUIControl::GetBackSelColor()
PYTHON_RETURN_NONE;
}
UInt32 pyGUIControl::GetFontSize()
UInt32 pyGUIControl::GetFontSize() const
{
if ( fGCkey )
{
@ -444,3 +444,34 @@ void pyGUIControl::SetFontSize(UInt32 fontsize)
}
}
}
void pyGUIControl::SetFontFlags(UInt8 fontFlags)
{
if (fGCkey)
{
// get the pointer to the modifier
pfGUIControlMod* pdmod = pfGUIControlMod::ConvertNoRef(fGCkey->ObjectIsLoaded());
if (pdmod)
{
pfGUIColorScheme* colorscheme = pdmod->GetColorScheme();
colorscheme->fFontFlags = fontFlags;
pdmod->UpdateColorScheme();
}
}
}
UInt8 pyGUIControl::GetFontFlags() const
{
if (fGCkey)
{
// get the pointer to the modifier
pfGUIControlMod* pdmod = pfGUIControlMod::ConvertNoRef(fGCkey->ObjectIsLoaded());
if (pdmod)
{
pfGUIColorScheme* colorscheme = pdmod->GetColorScheme();
return colorscheme->fFontFlags;
}
}
return 0;
}

View File

@ -116,17 +116,19 @@ public:
virtual PyObject* GetOwnerDlg( void ); // returns pyGUIDialog
// get color schemes
virtual PyObject* GetForeColor(); // returns pyColor
virtual PyObject* GetSelColor(); // returns pyColor
virtual PyObject* GetBackColor(); // returns pyColor
virtual PyObject* GetBackSelColor(); // returns pyColor
virtual UInt32 GetFontSize();
virtual PyObject* GetForeColor() const; // returns pyColor
virtual PyObject* GetSelColor() const; // returns pyColor
virtual PyObject* GetBackColor() const; // returns pyColor
virtual PyObject* GetBackSelColor() const; // returns pyColor
virtual UInt32 GetFontSize() const;
virtual UInt8 GetFontFlags() const;
// set color scheme
virtual void SetForeColor( hsScalar r, hsScalar g, hsScalar b, hsScalar a );
virtual void SetSelColor( hsScalar r, hsScalar g, hsScalar b, hsScalar a );
virtual void SetBackColor( hsScalar r, hsScalar g, hsScalar b, hsScalar a );
virtual void SetBackSelColor( hsScalar r, hsScalar g, hsScalar b, hsScalar a );
virtual void SetFontSize(UInt32 fontsize);
virtual void SetFontFlags(UInt8 fontflags);
};

View File

@ -244,6 +244,23 @@ PYTHON_METHOD_DEFINITION_NOARGS(ptGUIControl, getFontSize)
return PyLong_FromUnsignedLong(self->fThis->GetFontSize());
}
PYTHON_METHOD_DEFINITION_NOARGS(ptGUIControl, getFontFlags)
{
return PyInt_FromLong(self->fThis->GetFontFlags());
}
PYTHON_METHOD_DEFINITION(ptGUIControl, setFontFlags, args)
{
unsigned char fontflags;
if (!PyArg_ParseTuple(args, "b", &fontflags))
{
PyErr_SetString(PyExc_TypeError, "setFontFlags expects an unsigned 8-bit int");
PYTHON_RETURN_ERROR;
}
self->fThis->SetFontFlags(fontflags);
PYTHON_RETURN_NONE;
}
PYTHON_METHOD_DEFINITION(ptGUIControl, setForeColor, args)
{
float r, g, b, a;
@ -329,11 +346,13 @@ PYTHON_START_METHODS_TABLE(ptGUIControl)
PYTHON_METHOD_NOARGS(ptGUIControl, getBackColor, "Returns the background color"),
PYTHON_METHOD_NOARGS(ptGUIControl, getBackSelectColor, "Returns the background selection color"),
PYTHON_METHOD_NOARGS(ptGUIControl, getFontSize, "Returns the font size"),
PYTHON_METHOD_NOARGS(ptGUIControl, getFontFlags, "Returns the current fontflags"),
PYTHON_METHOD(ptGUIControl, setForeColor, "Params: r,g,b,a\nSets the foreground color"),
PYTHON_METHOD(ptGUIControl, setSelectColor, "Params: r,g,b,a\nSets the selection color"),
PYTHON_METHOD(ptGUIControl, setBackColor, "Params: r,g,b,a\nSets the background color"),
PYTHON_METHOD(ptGUIControl, setBackSelectColor, "Params: r,g,b,a\nSets the selection background color"),
PYTHON_METHOD(ptGUIControl, setFontSize, "Params: fontSize\nSets the font size"),
PYTHON_METHOD(ptGUIControl, setFontFlags, "Params: fontflags\nSets current fontflags"),
PYTHON_END_METHODS_TABLE;
// Type structure definition

View File

@ -214,3 +214,4 @@ UInt8 pyGUIControlTextBox::GetJustify()
}
return pfGUIListText::kLeftJustify;
}

View File

@ -88,6 +88,7 @@ public:
virtual void SetForeColor( pyColor& color );
virtual void SetBackColor( pyColor& color );
virtual void SetJustify( UInt8 justify );
virtual UInt8 GetJustify();
virtual PyObject* GetForeColor(); // returns pyColor
};

View File

@ -185,6 +185,8 @@ PYTHON_METHOD_DEFINITION(ptGUIControlTextBox, setStringJustify, args)
PYTHON_RETURN_NONE;
}
PYTHON_METHOD_DEFINITION_NOARGS(ptGUIControlTextBox, getStringJustify)
{
return PyInt_FromLong(self->fThis->GetJustify());