forked from townforge/townforge
game: add a search box to the scripts list
This commit is contained in:
parent
302ca386ef
commit
780435ab3e
@ -7,6 +7,7 @@ TBLayout: distribution: "gravity"
|
||||
TBToggleContainer: id: "list-container", toggle: "expanded", gravity: "all"
|
||||
TBLayout: axis: y, distribution-position: "left top", distribution: "gravity", gravity: "all"
|
||||
TBSelectList: id: "scripts-list", gravity: "all"
|
||||
TBEditField: id: "search", placeholder: "search", type: "search", gravity: "left right", autofocus: 1
|
||||
TBLayout: axis: x
|
||||
TBClickLabel: text: "Show all"
|
||||
TBCheckBox: id: "show-all"
|
||||
|
@ -147,6 +147,7 @@ UIScriptsDialog::UIScriptsDialog(Context *ctx, const GameState *game, mode_t mod
|
||||
scriptsList = GetWidgetByIDAndType<TBSelectList>("scripts-list");
|
||||
showAllWidget = GetWidgetByIDAndType<TBCheckBox>("show-all");
|
||||
reallyShowAllWidget = GetWidgetByIDAndType<TBCheckBox>("really-show-all");
|
||||
searchWidget = GetWidgetByIDAndType<TBEditField>("search");
|
||||
choicesLayout = GetWidgetByIDAndType<TBLayout>("choices-layout");
|
||||
choiceMadeMessageWidget = GetWidgetByIDAndType<TBEditField>("choice-made-message");
|
||||
scriptRowPlayingWidget = GetWidgetByIDAndType<TBWidget>("script-row-playing");
|
||||
@ -585,6 +586,11 @@ void UIScriptsDialog::HandleChoiceMade(StringHash eventType, VariantMap& eventDa
|
||||
waitingContainer->SetValue(1);
|
||||
}
|
||||
|
||||
void UIScriptsDialog::HandleSearch(StringHash eventType, VariantMap& eventData)
|
||||
{
|
||||
scriptsList->SetFilter(searchWidget->GetText());
|
||||
}
|
||||
|
||||
void UIScriptsDialog::HandleTBMessage(StringHash eventType, VariantMap& eventData)
|
||||
{
|
||||
#define CONNECT(name, function) do { if (ev->target->GetID() == TBIDC(name)) function(eventType, eventData); } while(0)
|
||||
@ -603,6 +609,7 @@ void UIScriptsDialog::HandleTBMessage(StringHash eventType, VariantMap& eventDat
|
||||
else if (ev->type == EVENT_TYPE_CHANGED)
|
||||
{
|
||||
CONNECT("scripts-list", HandleScriptSelected);
|
||||
CONNECT("search", HandleSearch);
|
||||
}
|
||||
|
||||
#undef CONNECT
|
||||
|
@ -56,6 +56,7 @@ private:
|
||||
void HandleScriptSelected(Urho3D::StringHash eventType, Urho3D::VariantMap& eventData);
|
||||
void HandleConnect(Urho3D::StringHash eventType, Urho3D::VariantMap& eventData);
|
||||
void HandleEnableScriptConfirmation(Urho3D::StringHash eventType, Urho3D::VariantMap& eventData);
|
||||
void HandleSearch(Urho3D::StringHash eventType, Urho3D::VariantMap& eventData);
|
||||
void HandleTBMessage(Urho3D::StringHash eventType, Urho3D::VariantMap& eventData);
|
||||
void HandleClose(Urho3D::StringHash eventType, Urho3D::VariantMap& eventData);
|
||||
|
||||
@ -70,6 +71,9 @@ private:
|
||||
void ViewSource(const std::shared_ptr<GameWallet> &w, uint32_t script);
|
||||
void RequestEnableScript(uint32_t script, bool enable);
|
||||
|
||||
class ScriptItem;
|
||||
void RequestPlay(const ScriptItem *item);
|
||||
|
||||
private:
|
||||
class ScriptItem: public tb::TBGenericStringItem
|
||||
{
|
||||
@ -121,6 +125,7 @@ private:
|
||||
tb::TBEditField *choiceMadeMessageWidget;
|
||||
tb::TBSelectList *scriptsList;
|
||||
tb::TBLayout *choicesLayout;
|
||||
tb::TBEditField *searchWidget;
|
||||
tb::TBCheckBox *showAllWidget;
|
||||
tb::TBCheckBox *reallyShowAllWidget;
|
||||
tb::TBWidget *scriptRowPlayingWidget;
|
||||
|
Loading…
Reference in New Issue
Block a user