mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-14 02:27:40 -04:00
Add functions to fix KI Chat scrolling issue.
These two Python/Plasma functions are used in the moul-scripts fix for the scrolling KI Chat issue.
This commit is contained in:
@ -308,6 +308,13 @@ void pfGUIMultiLineEditCtrl::SetScrollPosition( Int32 topLine )
|
|||||||
fDialog->GetHandler()->DoSomething(this);
|
fDialog->GetHandler()->DoSomething(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//// GetScrollPosition ///////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
Int32 pfGUIMultiLineEditCtrl::GetScrollPosition()
|
||||||
|
{
|
||||||
|
return fScrollPos;
|
||||||
|
}
|
||||||
|
|
||||||
//// MoveCursor - by direction command////////////////////////////////////////////////
|
//// MoveCursor - by direction command////////////////////////////////////////////////
|
||||||
void pfGUIMultiLineEditCtrl::MoveCursor( Direction dir )
|
void pfGUIMultiLineEditCtrl::MoveCursor( Direction dir )
|
||||||
{
|
{
|
||||||
@ -2064,4 +2071,4 @@ void pfGUIMultiLineEditCtrl::DeleteLinesFromTop(int numLines)
|
|||||||
SetBuffer(buffer, bufferLen);
|
SetBuffer(buffer, bufferLen);
|
||||||
delete [] buffer;
|
delete [] buffer;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -225,6 +225,7 @@ class pfGUIMultiLineEditCtrl : public pfGUIControlMod
|
|||||||
};
|
};
|
||||||
|
|
||||||
void SetScrollPosition( Int32 topLine );
|
void SetScrollPosition( Int32 topLine );
|
||||||
|
Int32 GetScrollPosition();
|
||||||
void MoveCursor( Direction dir );
|
void MoveCursor( Direction dir );
|
||||||
|
|
||||||
void InsertChar( char c );
|
void InsertChar( char c );
|
||||||
|
@ -80,6 +80,30 @@ void pyGUIControlMultiLineEdit::SetScrollPosition( Int32 topLine )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Int32 pyGUIControlMultiLineEdit::GetScrollPosition()
|
||||||
|
{
|
||||||
|
if ( fGCkey )
|
||||||
|
{
|
||||||
|
// get the pointer to the modifier
|
||||||
|
pfGUIMultiLineEditCtrl* pbmod = pfGUIMultiLineEditCtrl::ConvertNoRef(fGCkey->ObjectIsLoaded());
|
||||||
|
if ( pbmod )
|
||||||
|
return pbmod->GetScrollPosition();
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
hsBool pyGUIControlMultiLineEdit::IsAtEnd()
|
||||||
|
{
|
||||||
|
if ( fGCkey )
|
||||||
|
{
|
||||||
|
// get the pointer to the modifier
|
||||||
|
pfGUIMultiLineEditCtrl* pbmod = pfGUIMultiLineEditCtrl::ConvertNoRef(fGCkey->ObjectIsLoaded());
|
||||||
|
if ( pbmod )
|
||||||
|
return pbmod->ShowingEndOfBuffer();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void pyGUIControlMultiLineEdit::MoveCursor( Int32 dir)
|
void pyGUIControlMultiLineEdit::MoveCursor( Int32 dir)
|
||||||
{
|
{
|
||||||
if ( fGCkey )
|
if ( fGCkey )
|
||||||
@ -557,4 +581,4 @@ void pyGUIControlMultiLineEdit::SetFontSize( UInt32 fontsize )
|
|||||||
if ( pbmod )
|
if ( pbmod )
|
||||||
pbmod->SetFontSize((UInt8)fontsize);
|
pbmod->SetFontSize((UInt8)fontsize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,8 @@ public:
|
|||||||
virtual void Clickable( void );
|
virtual void Clickable( void );
|
||||||
virtual void Unclickable( void );
|
virtual void Unclickable( void );
|
||||||
virtual void SetScrollPosition( Int32 topLine );
|
virtual void SetScrollPosition( Int32 topLine );
|
||||||
|
virtual Int32 GetScrollPosition();
|
||||||
|
virtual hsBool IsAtEnd();
|
||||||
virtual void MoveCursor( Int32 dir );
|
virtual void MoveCursor( Int32 dir );
|
||||||
virtual void ClearBuffer( void );
|
virtual void ClearBuffer( void );
|
||||||
virtual void SetText( const char *asciiText );
|
virtual void SetText( const char *asciiText );
|
||||||
|
@ -87,6 +87,16 @@ PYTHON_METHOD_DEFINITION(ptGUIControlMultiLineEdit, setScrollPosition, args)
|
|||||||
PYTHON_RETURN_NONE;
|
PYTHON_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PYTHON_METHOD_DEFINITION_NOARGS(ptGUIControlMultiLineEdit, getScrollPosition)
|
||||||
|
{
|
||||||
|
return PyLong_FromLong(self->fThis->GetScrollPosition());
|
||||||
|
}
|
||||||
|
|
||||||
|
PYTHON_METHOD_DEFINITION_NOARGS(ptGUIControlMultiLineEdit, isAtEnd)
|
||||||
|
{
|
||||||
|
PYTHON_RETURN_BOOL(self->fThis->IsAtEnd());
|
||||||
|
}
|
||||||
|
|
||||||
PYTHON_METHOD_DEFINITION(ptGUIControlMultiLineEdit, moveCursor, args)
|
PYTHON_METHOD_DEFINITION(ptGUIControlMultiLineEdit, moveCursor, args)
|
||||||
{
|
{
|
||||||
long dir;
|
long dir;
|
||||||
@ -394,6 +404,8 @@ PYTHON_START_METHODS_TABLE(ptGUIControlMultiLineEdit)
|
|||||||
PYTHON_BASIC_METHOD(ptGUIControlMultiLineEdit, unclickable, "Makes this listbox not clickable by the user.\n"
|
PYTHON_BASIC_METHOD(ptGUIControlMultiLineEdit, unclickable, "Makes this listbox not clickable by the user.\n"
|
||||||
"Useful when just displaying a list that is not really selectable."),
|
"Useful when just displaying a list that is not really selectable."),
|
||||||
PYTHON_METHOD(ptGUIControlMultiLineEdit, setScrollPosition, "Params: topLine\nSets the what line is the top line."),
|
PYTHON_METHOD(ptGUIControlMultiLineEdit, setScrollPosition, "Params: topLine\nSets the what line is the top line."),
|
||||||
|
PYTHON_METHOD_NOARGS(ptGUIControlMultiLineEdit, getScrollPosition, "Gets what line is the top line."),
|
||||||
|
PYTHON_METHOD_NOARGS(ptGUIControlMultiLineEdit, isAtEnd, "Returns true if the end of the buffer has been reached."),
|
||||||
PYTHON_METHOD(ptGUIControlMultiLineEdit, moveCursor, "Params: direction\nMove the cursor in the specified direction (see PtGUIMultiLineDirection)"),
|
PYTHON_METHOD(ptGUIControlMultiLineEdit, moveCursor, "Params: direction\nMove the cursor in the specified direction (see PtGUIMultiLineDirection)"),
|
||||||
PYTHON_BASIC_METHOD(ptGUIControlMultiLineEdit, clearBuffer, "Clears all text from the multi-line edit control."),
|
PYTHON_BASIC_METHOD(ptGUIControlMultiLineEdit, clearBuffer, "Clears all text from the multi-line edit control."),
|
||||||
PYTHON_METHOD(ptGUIControlMultiLineEdit, setString, "Params: asciiText\nSets the multi-line edit control string."),
|
PYTHON_METHOD(ptGUIControlMultiLineEdit, setString, "Params: asciiText\nSets the multi-line edit control string."),
|
||||||
|
Reference in New Issue
Block a user