From a984b1159ff8a2dfda5e3d3912085acba834936c Mon Sep 17 00:00:00 2001 From: John Johns Date: Sat, 13 Mar 2021 19:47:03 -0800 Subject: [PATCH] chat name completion by boq https://github.com/H-uru/Plasma/commit/2807fb455b1b1fc4c7c3e22747106f8fadee9206 --- .../FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.cpp | 10 ++++++++++ .../FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.h | 1 + .../Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp | 5 +++++ .../Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.h | 3 ++- .../Plasma/FeatureLib/pfMessage/pfGUINotifyMsg.h | 2 ++ 5 files changed, 20 insertions(+), 1 deletion(-) diff --git a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.cpp b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.cpp index 544ad293..0393f74b 100644 --- a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.cpp +++ b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.cpp @@ -97,6 +97,16 @@ void pfGUIDialogNotifyProc::DoSomething( pfGUIControlMod *ctrl ) ISendNotify( ctrl->GetKey(), pfGUINotifyMsg::kValueChanged ); } +void pfGUIDialogNotifyProc::HandleExtendedEvent( pfGUIControlMod *ctrl, UInt32 event ) +{ + pfGUIEditBoxMod *edit = pfGUIEditBoxMod::ConvertNoRef( ctrl ); + if(edit != nil && event == pfGUIEditBoxMod::kWantAutocomplete) + { + //send notify, somebody will do something with that (like python script) + ISendNotify( ctrl->GetKey(), pfGUINotifyMsg::kSpecialAction ); + } +} + void pfGUIDialogNotifyProc::OnInit( void ) { if ( fDialog ) diff --git a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.h b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.h index f04e2fcd..8f5fa64f 100644 --- a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.h +++ b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.h @@ -70,6 +70,7 @@ class pfGUIDialogNotifyProc : public pfGUIDialogProc pfGUIDialogNotifyProc( plKey &r ); virtual void DoSomething( pfGUIControlMod *ctrl ); + virtual void HandleExtendedEvent( pfGUIControlMod *ctrl, UInt32 event ); virtual void OnInit( void ); virtual void OnShow( void ); virtual void OnHide( void ); diff --git a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp index ba5412fa..689fc539 100644 --- a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp +++ b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp @@ -502,6 +502,11 @@ hsBool pfGUIEditBoxMod::HandleKeyEvent( pfGameGUIMgr::EventType event, plKeyDef DoSomething(); // Query WasEscaped() to see if it was escape vs enter return true; } + else if (key == KEY_TAB) + { + //Send notify for python scripts + HandleExtendedEvent(kWantAutocomplete); + } else if (modifiers & pfGameGUIMgr::kCtrlDown) { if (key == KEY_C) diff --git a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.h b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.h index 7216968e..3cf9d2fe 100644 --- a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.h +++ b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.h @@ -134,7 +134,8 @@ class pfGUIEditBoxMod : public pfGUIControlMod // Extended event types enum ExtendedEvents { - kValueChanging + kValueChanging, + kWantAutocomplete }; }; diff --git a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfGUINotifyMsg.h b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfGUINotifyMsg.h index 901207e2..ae12754c 100644 --- a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfGUINotifyMsg.h +++ b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfGUINotifyMsg.h @@ -83,6 +83,7 @@ public: kFocusChange, // when one of its controls loses focus to another kExitMode, // GUI Exit Mode key was pressed kInterestingEvent, // GUI interesting-ness has changed + kSpecialAction, // meaning depends on control functionality (see below) kEndEventList }; @@ -97,6 +98,7 @@ public: // kAction - single click on item(s) // kEditBox // kAction - enter key hit +// kSpecialAction - tab key hit (for autocompletion on Python side) // kUpDownPair // kValueChanged - the value of the pair has been changed // kKnob