Trying to understand this combobox

This commit is contained in:
Malcolm Roberts 2024-02-07 11:12:52 -06:00
parent 8ef47d79ff
commit 59c496305a
5 changed files with 239 additions and 498 deletions

View File

@ -26,15 +26,11 @@
"margin": [5, 5, 5, 5]
},
"mr.quest_writer.run_path_properties.quest_item": {
"type": "itemview",
"content": {
"type": "stackpanel",
"children": [
{
"type": "textblock",
"text": "test"
}
]
"type": "textblock",
"padding": 2,
"textBinding": {
"pullFormat": "${_CONTEXTITEMDATA_.Get[name]}",
"pullReplaceNull": ""
}
}
},
@ -194,28 +190,30 @@
{
"type": "stackpanel",
"orientation": "horizontal",
"widthFactor": 1,
"children": [
{
"type": "combobox",
"widthFactor": 0.8,
"margin": [0, 0, 5, 0],
"itemViewGenerators": {
"default": {
"type": "template",
"template": "mr.quest_writer.run_path_properties.quest_item"
}
},
"itemsBinding": {
"pullFormat": "${MRKillMobsPropertiesController.QuestList}",
"pullReplaceNull": "",
"autoPull": "false",
"pushFormat": [
"MRKillMobsPropertiesController.SelectedQuest:Set[",
"]"
]
}
"items": [
{
"name": "abc"
},
{
"name": "123"
},
{
"name": "def"
},
{
"name": "456"
}
]
},
{
"type": "button",
@ -234,6 +232,7 @@
},
{
"type": "combobox",
"itemsBinding": {
"pullFormat": "${MRKillMobsPropertiesController.QuestStepList}",
"pullReplaceNull": "",

View File

@ -86,172 +86,171 @@ objectdef MRBotApi
echo "waiting for path to complete ${Math.Distance[${Me.X},${Me.Y},${Me.Z},${location.X},${location.Y},${location.Z}]}"
wait 5
}
function ActivateSpecial(string ActorName, float X, float Y, float Z)
{
call TestArrivalCoord ${X} ${Y} ${Z}
if (!${Return})
call MoveTo "${ActorName}" ${X} ${Y} ${Z}
MR:Special["${Me.Name}"]
wait 50
}
function ActivateVerbOn(string ActorName, string verb, bool UseID)
{
echo do ${verb} on ${ActorName} (${UseID})
if ${UseID}
eq2execute apply_verb ${Actor[Query,Name=="${ActorName}"].ID} "${verb}"
else
MR:ApplyVerbForWho["${Me.Name}","${ActorName}","${verb}"]
wait 50
}
;===================================================================================
;long list below
;
function DescribeActor(int ActorID)
{
echo ID: ${ActorID}
echo Name: ${Actor[${ActorID}].Name}
echo LastName: ${Actor[${ActorID}].LastName}
echo Health: ${Actor[${ActorID}].Health}
echo Power: ${Actor[${ActorID}].Power}
echo Level: ${Actor[${ActorID}].Level}
echo EffectiveLevel: ${Actor[${ActorID}].EffectiveLevel}
echo TintFlags: ${Actor[${ActorID}].TintFlags}
echo VisualVariant: ${Actor[${ActorID}].VisualVariant}
echo Mood: ${Actor[${ActorID}].Mood}
echo CurrentAnimation: ${Actor[${ActorID}].CurrentAnimation}
echo Overlay: ${Actor[${ActorID}].Overlay}
echo Aura: ${Actor[${ActorID}].Aura}
echo Gender: ${Actor[${ActorID}].Gender}
echo Race: ${Actor[${ActorID}].Race}
echo Class: ${Actor[${ActorID}].Class}
echo Guild: ${Actor[${ActorID}].Guild}
echo Type: ${Actor[${ActorID}].Type}
echo SuffixTitle: ${Actor[${ActorID}].SuffixTitle}
echo ConColor: ${Actor[${ActorID}].ConColor}
echo Distance: ${Actor[${ActorID}].Distance}
echo X ${Actor[${ActorID}].Loc.X}
echo Y ${Actor[${ActorID}].Loc.Y}
echo Z ${Actor[${ActorID}].Loc.Z}
}
;===================================================================================
;long list below
;
function get_Archetype(string ToonClass)
{
switch ${ToonClass}
{
case warrior
{
return fighter
break
}
case berserker
{
return fighter
break
}
case guardian
{
return fighter
break
}
case paladin
{
return fighter
break
}
case shadowknight
{
return fighter
break
}
case monk
{
return fighter
break
}
case bruiser
{
return fighter
break
}
case warden
{
return priest
break
}
case mystic
{
return priest
break
}
case defiler
{
return priest
break
}
case fury
{
return priest
break
}
case templar
{
return priest
break
}
case inquisitor
{
return priest
break
}
case conjuror
{
return mage
break
}
case necromancer
{
return mage
break
}
case warlock
{
return mage
break
}
case wizard
{
return mage
break
}
case illusionist
{
return mage
break
}
case coercer
{
return mage
break
}
Default
{
return scout
break
}
}
}
function ActivateSpecial(string ActorName, float X, float Y, float Z)
{
call TestArrivalCoord ${X} ${Y} ${Z}
if (!${Return})
call MoveTo "${ActorName}" ${X} ${Y} ${Z}
MR:Special["${Me.Name}"]
wait 50
}
function ActivateVerbOn(string ActorName, string verb, bool UseID)
{
echo do ${verb} on ${ActorName} (${UseID})
if ${UseID}
eq2execute apply_verb ${Actor[Query,Name=="${ActorName}"].ID} "${verb}"
else
MR:ApplyVerbForWho["${Me.Name}","${ActorName}","${verb}"]
wait 50
}
;===================================================================================
;long list below
;
function DescribeActor(int ActorID)
{
echo ID: ${ActorID}
echo Name: ${Actor[${ActorID}].Name}
echo LastName: ${Actor[${ActorID}].LastName}
echo Health: ${Actor[${ActorID}].Health}
echo Power: ${Actor[${ActorID}].Power}
echo Level: ${Actor[${ActorID}].Level}
echo EffectiveLevel: ${Actor[${ActorID}].EffectiveLevel}
echo TintFlags: ${Actor[${ActorID}].TintFlags}
echo VisualVariant: ${Actor[${ActorID}].VisualVariant}
echo Mood: ${Actor[${ActorID}].Mood}
echo CurrentAnimation: ${Actor[${ActorID}].CurrentAnimation}
echo Overlay: ${Actor[${ActorID}].Overlay}
echo Aura: ${Actor[${ActorID}].Aura}
echo Gender: ${Actor[${ActorID}].Gender}
echo Race: ${Actor[${ActorID}].Race}
echo Class: ${Actor[${ActorID}].Class}
echo Guild: ${Actor[${ActorID}].Guild}
echo Type: ${Actor[${ActorID}].Type}
echo SuffixTitle: ${Actor[${ActorID}].SuffixTitle}
echo ConColor: ${Actor[${ActorID}].ConColor}
echo Distance: ${Actor[${ActorID}].Distance}
echo X ${Actor[${ActorID}].Loc.X}
echo Y ${Actor[${ActorID}].Loc.Y}
echo Z ${Actor[${ActorID}].Loc.Z}
}
;===================================================================================
;long list below
;
function get_Archetype(string ToonClass)
{
switch ${ToonClass}
{
case warrior
{
return fighter
break
}
case berserker
{
return fighter
break
}
case guardian
{
return fighter
break
}
case paladin
{
return fighter
break
}
case shadowknight
{
return fighter
break
}
case monk
{
return fighter
break
}
case bruiser
{
return fighter
break
}
case warden
{
return priest
break
}
case mystic
{
return priest
break
}
case defiler
{
return priest
break
}
case fury
{
return priest
break
}
case templar
{
return priest
break
}
case inquisitor
{
return priest
break
}
case conjuror
{
return mage
break
}
case necromancer
{
return mage
break
}
case warlock
{
return mage
break
}
case wizard
{
return mage
break
}
case illusionist
{
return mage
break
}
case coercer
{
return mage
break
}
Default
{
return scout
break
}
}
}
;===================================================================================
}
}

View File

@ -1,268 +0,0 @@
{
"$schema": "http://www.lavishsoft.com/schema/lgui2Skin.json",
"type": "skin",
"name": "mr.dark",
"brushes": {
"background": {
"color": [0.15, 0.15, 0.15]
},
"controlBackground": {
"color": [0.3, 0.3, 0.3]
},
"selectedBackgroundBrush": {
"color": [0.5, 0.5, 0.5]
},
"titleBarBackground": {
"color": [0.1, 0.1, 0.1]
},
"text": {
"color": [0.9, 0.9, 0.9]
},
"border": {
"color": [0.5, 0.5, 0.5]
},
"titleBarCloseTexture": {
"color": [1.0, 1.0, 1.0],
"opacity": 0.7,
"imageFile": "${LavishScript.HomeDirectory}/Scripts/mr/ui/icons/close_button_3.png"
},
"titleBarMinimizeTexture": {
"color": [1.0, 1.0, 1.0],
"opacity": 0.7,
"imageFile": "${LavishScript.HomeDirectory}/Scripts/mr/ui/icons/minimize_button_3.png"
}
},
"templates": {
"window": {
"backgroundBrush": "background",
"titleBar": {
"jsonTemplate": "window.titleBar"
}
},
"window.titleBar": {
"backgroundBrush": "titleBarBackground",
"font": {
"face": "Tahoma",
"height": 16,
"bold": true
},
"children": [
{
"type": "button",
"jsonTemplate": "button",
"_dock": "right",
"borderThickness": 0,
"borderColor": [0],
"content": {
"type": "imagebox",
"margin": [0],
"width": 20,
"imageBrush": "titleBarCloseTexture"
},
"padding": 0,
"eventHandlers": {
"onMouse1Release": {
"type": "forward",
"elementType": "window",
"event": "onCloseButtonClick"
}
}
},
{
"type": "button",
"jsonTemplate": "button",
"_dock": "right",
"borderThickness": 0,
"borderColor": [0],
"content": {
"type": "imagebox",
"margin": [0],
"width": 20,
"imageBrush": "titleBarMinimizeTexture"
},
"padding": 0,
"eventHandlers": {
"onMouse1Release": {
"type": "forward",
"elementType": "window",
"event": "onShadeButtonClick"
}
}
}
]
},
"textblock": {
"color": "text",
"font": {
"face": "Tahoma",
"height": 14,
"bold": false
}
},
"button": {
"type": "button",
"backgroundBrush": "controlBackground",
"borderRounding": 0.3,
"color": "text",
"opacity": 0.8,
"styles": {
"gotMouseOver": {
"opacity": 1.0
},
"lostMouseOver": {
"opacity": 0.8
},
"onPress": {
"opacity": 0.8
},
"onRelease": {
"opacity": 1.0
}
}
},
"itemview": {
"type": "itemview",
"acceptsKeyboardFocus": false,
"contentContainer": {
"type": "border",
"horizontalContentAlignment": "stretch",
"verticalContentAlignment": "stretch"
},
"padding": [2, 2, 2, 2],
"margin": [1, 1, 1, 1],
"backgroundBrush": "controlBackground",
"styles": {
"onSelected": {
"backgroundBrush": "selectedBackgroundBrush"
},
"onDeselected": {
"backgroundBrush": "controlBackground"
}
}
},
"listboxitem.gotMouseOver": {
"font": {
"bold": true
},
"opacity": 1.0
},
"listboxitem.lostMouseOver": {
"font": {
"bold": false
},
"opacity": 0.8
},
"listboxitem": {
"jsonTemplate": "itemview",
"padding": [1, 125, 1, 125],
"styles": {
"gotMouseOver": {
"jsonTemplate": "listboxitem.gotMouseOver"
},
"lostMouseOver": {
"jsonTemplate": "listboxitem.lostMouseOver"
}
}
},
"listbox.contentContainer": {
"jsonTemplate": "scrollviewer",
"type": "scrollviewer",
"acceptsMouseFocus": false,
"contentContainer": {
"type": "border",
"horizontalContentAlignment": "stretch",
"verticalContentAlignment": "stretch"
}
},
"listbox.contentContainerFitWidth": {
"jsonTemplate": "listbox.contentContainer",
"horizontalScroll": "fit"
},
"listbox.content": {
"type": "stackpanel",
"uniform": true,
"backgroundBrush": "background"
},
"listbox": {
"defaultItemViewTemplate": "listboxitem",
"acceptsKeyboardFocus": true,
"borderThickness": 1,
"borderBrush": "border",
"contentContainer": {
"jsonTemplate": "listbox.contentContainer"
},
"content": {
"jsonTemplate": "listbox.content"
}
},
"comboboxselection": {
"jsonTemplate": "itemview",
"padding": [2, 2, 2, 2],
"margin": [1, 1, 1, 1],
"horizontalAlignment": "left",
"verticalAlignment": "center",
"eventHandlers": {}
},
"popup.panel": {
"type": "panel",
"borderBrush": "border",
"backgroundBrush": "controlBackground"
},
"popup": {
"type": "popup",
"strata": 1.1,
"acceptsMouseFocus": false,
"backgroundBrush": "controlBackground",
"contentContainer": {
"jsonTemplate": "popup.panel"
}
},
"combobox.popup.content": {
"jsonTemplate": "listbox",
"type": "listbox",
"borderThickness": 0
},
"combobox.popup": {
"type": "popup",
"jsonTemplate": "popup",
"backgroundBrush": "controlBackground",
"contentContainer": {
"jsonTemplate": "popup.panel",
"type": "anchor",
"anchorToElement": {
"elementType": "combobox",
"elementTree": "logical",
"flags": "ancestor"
},
"clipToParent": false,
"anchorLocationFactor": [0.0, 1.0]
},
"content": {
"jsonTemplate": "combobox.popup.content"
}
},
"combobox": {
"type": "combobox",
"backgroundBrush": "controlBackground",
"borderBrush": "border",
"borderRounding": 0.3,
"padding": [5, 3, 5, 3],
"acceptsKeyboardFocus": true,
"minSize": [40, 0],
"fitContentContainer": false,
"headerContainer": {
"type": "border",
"verticalAlignment": "center"
},
"selectedItemViewTemplate": "comboboxselection",
"popup": {
"jsonTemplate": "combobox.popup"
},
"contentContainer": {
"type": "panel"
}
}
}
}

View File

@ -3,6 +3,11 @@ objectdef MRTestController
method Initialize()
{
LGUI2:LoadPackageFile["window.json"]
variable jsonvalue editor_ui
editor_ui:ParseFile["${LavishScript.HomeDirectory}/Scripts/mr/auto_quest/property_editors/kill_mobs_properties/editor_ui.json"]
; LGUI2.Element["mr.test.test_panel"]:AddChild[editor_ui]
}
method Shutdown()
@ -21,13 +26,10 @@ variable(global) MRTestController TestController
function main()
{
LGUI2:LoadSkinFile["${LavishScript.HomeDirectory}/Scripts/mr/ui/mr.dark.skin.json"]
LGUI2:PushSkin["mr.dark"]
while 1
{
wait 5
}
LGUI2:PopSkin
}

View File

@ -1,67 +1,76 @@
{
"$schema": "http://www.lavishsoft.com/schema/lgui2Package.json",
"templates": {
"mr.templates.combobox_item": {
"jsonTemplate": "listboxitem",
"padding": 2,
"content": {
"type": "textblock",
"textBinding": {
"pullFormat": "${_CONTEXTITEMDATA_.Get[name]}",
"pullReplaceNull": ""
}
}
}
},
"elements": [
{
"type": "window",
"title": "Test",
"name": "mr.test.window",
"hideOnClose": false,
"minSize": {
"width": 650,
"height": 350
},
"maxSize": {
"width": 950,
"height": 650
"width": 500,
"height": 500
},
"eventHandlers": {
"onCloseButtonClick": ["method", "TestController", "OnClose"]
},
"content": {
"type": "stackpanel",
"orientation": "horizontal",
"orientation": "vertical",
"children": [
{
"type": "stackpanel",
"name": "mr.test.test_panel",
"orientation": "vertical",
"margin": [0, 0, 15, 0],
"children": [
{
"type": "stackpanel",
"orientation": "horizontal",
"children": [
{
"type": "combobox",
"itemViewGenerators": {
"default": {
"type": "template",
"template": "mr.templates.combobox_item"
}
},
"items": [
{
"name": "abc"
},
{
"name": "123"
},
{
"name": "def"
},
{
"name": "456"
}
]
}
]
},
{
"type": "textblock",
"text": "Test Window",
"margin": [0, 0, 0, 15]
},
{
"type": "button",
"content": "Click me",
"margin": [0, 0, 0, 15]
},
{
"type": "combobox",
"minSize": {
"width": 100
},
"items": ["Item 1", "Item 2", "Item 3"],
"margin": [0, 0, 0, 15]
}
]
},
{
"type": "stackpanel",
"orientation": "vertical",
"children": [
{
"type": "listbox",
"minSize": {
"width": 100
},
"items": [
"Item 1111111111111111111111111111111111111111111111111111111111111111111111111111111",
"Item 2",
"Item 3"
]
"text": "Test Text"
}
]
}