1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-19 21:10:12 +02:00

Buttons with text tooltip for artifact sorting screen

This commit is contained in:
Ivan Savenko 2025-02-08 16:31:37 +00:00
parent 2beb4c6aa4
commit 52d72c75fc
13 changed files with 162 additions and 40 deletions

View File

@ -422,11 +422,11 @@
"vcmi.heroWindow.openBackpack.hover" : "开启宝物背包界面",
"vcmi.heroWindow.openBackpack.help" : "用更大的界面显示所有获得的宝物",
"vcmi.heroWindow.sortBackpackByCost.hover" : "按价格排序",
"vcmi.heroWindow.sortBackpackByCost.help" : "将行囊里的宝物按价格排序。",
"vcmi.heroWindow.sortBackpackByCost.help" : "{按价格排序}\n\n将行囊里的宝物按价格排序。",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "按装备槽排序",
"vcmi.heroWindow.sortBackpackBySlot.help" : "将行囊里的宝物按装备槽排序。",
"vcmi.heroWindow.sortBackpackBySlot.help" : "{按装备槽排序}\n\n将行囊里的宝物按装备槽排序。",
"vcmi.heroWindow.sortBackpackByClass.hover" : "按类型排序",
"vcmi.heroWindow.sortBackpackByClass.help" : "将行囊里的宝物按装备槽排序:低级宝物、中级宝物、高级宝物、圣物。",
"vcmi.heroWindow.sortBackpackByClass.help" : "{按类型排序}\n\n将行囊里的宝物按装备槽排序:低级宝物、中级宝物、高级宝物、圣物。",
"vcmi.heroWindow.fusingArtifact.fusing" : "你已拥有融合%s所需的全部组件,想现在进行融合吗?{所有组件在融合后将被消耗。}",
"vcmi.tavernWindow.inviteHero" : "邀请英雄",

View File

@ -424,11 +424,11 @@
"vcmi.heroWindow.openBackpack.hover" : "Otevřít okno s artefakty",
"vcmi.heroWindow.openBackpack.help" : "Otevře okno, které umožňuje snadnější správu artefaktů v batohu.",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Seřadit podle ceny",
"vcmi.heroWindow.sortBackpackByCost.help" : "Seřadí artefakty v batohu podle ceny.",
"vcmi.heroWindow.sortBackpackByCost.help" : "{Seřadit podle ceny}\n\nSeřadí artefakty v batohu podle ceny.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Seřadit podle slotu",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Seřadí artefakty v batohu podle přiřazeného slotu.",
"vcmi.heroWindow.sortBackpackBySlot.help" : "{Seřadit podle slotu}\n\nSeřadí artefakty v batohu podle přiřazeného slotu.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Seřadit podle třídy",
"vcmi.heroWindow.sortBackpackByClass.help" : "Seřadí artefakty v batohu podle třídy artefaktu. Poklad, Menší, Větší, Relikvie.",
"vcmi.heroWindow.sortBackpackByClass.help" : "{Seřadit podle třídy}\n\nSeřadí artefakty v batohu podle třídy artefaktu. Poklad, Menší, Větší, Relikvie.",
"vcmi.heroWindow.fusingArtifact.fusing" : "Máte všechny potřebné části k vytvoření %s. Chcete provést sloučení? {Při sloučení budou použity všechny části.}",
"vcmi.tavernWindow.inviteHero" : "Pozvat hrdinu",

View File

@ -423,12 +423,12 @@
"vcmi.heroWindow.openCommander.help" : "Shows details about the commander of this hero.",
"vcmi.heroWindow.openBackpack.hover" : "Open artifact backpack window",
"vcmi.heroWindow.openBackpack.help" : "Opens window that allows easier artifact backpack management.",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Sort by cost",
"vcmi.heroWindow.sortBackpackByCost.help" : "Sort artifacts in backpack by cost.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Sort by slot",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Sort artifacts in backpack by equipped slot.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Sort by class",
"vcmi.heroWindow.sortBackpackByClass.help" : "Sort artifacts in backpack by artifact class. Treasure, Minor, Major, Relic",
"vcmi.heroWindow.sortBackpackByCost.hover" : "By value",
"vcmi.heroWindow.sortBackpackByCost.help" : "{Sort by cost}\n\nSort artifacts in backpack by cost.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "By slot",
"vcmi.heroWindow.sortBackpackBySlot.help" : "{Sort by slot}\n\nSort artifacts in backpack by equipped slot.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "By class",
"vcmi.heroWindow.sortBackpackByClass.help" : "{Sort by class}\n\nSort artifacts in backpack by artifact class. Treasure, Minor, Major, Relic",
"vcmi.heroWindow.fusingArtifact.fusing" : "You possess all of the components needed for the fusion of the %s. Do you wish to perform the fusion? {All components will be consumed upon fusion.}",
"vcmi.tavernWindow.inviteHero" : "Invite hero",

View File

@ -424,11 +424,11 @@
"vcmi.heroWindow.openBackpack.hover" : "Artefakt-Rucksack-Fenster öffnen",
"vcmi.heroWindow.openBackpack.help" : "Öffnet ein Fenster, das die Verwaltung des Artefakt-Rucksacks erleichtert",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Nach Kosten sortieren",
"vcmi.heroWindow.sortBackpackByCost.help" : "Artefakte im Rucksack nach Kosten sortieren.",
"vcmi.heroWindow.sortBackpackByCost.help" : "{Nach Kosten sortieren}\n\nArtefakte im Rucksack nach Kosten sortieren.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Nach Slot sortieren",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Artefakte im Rucksack nach Ausrüstungsslot sortieren.",
"vcmi.heroWindow.sortBackpackBySlot.help" : "{Nach Slot sortieren}\n\nArtefakte im Rucksack nach Ausrüstungsslot sortieren.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Nach Klasse sortieren",
"vcmi.heroWindow.sortBackpackByClass.help" : "Artefakte im Rucksack nach Artefaktklasse sortieren. Schatz, Klein, Groß, Relikt",
"vcmi.heroWindow.sortBackpackByClass.help" : "{Nach Klasse sortieren}\n\nArtefakte im Rucksack nach Artefaktklasse sortieren. Schatz, Klein, Groß, Relikt",
"vcmi.heroWindow.fusingArtifact.fusing" : "Ihr verfügt über alle Komponenten, die für die Fusion der %s benötigt werden. Möchtet Ihr die Verschmelzung durchführen? {Alle Komponenten werden bei der Fusion verbraucht.}",
"vcmi.tavernWindow.inviteHero" : "Helden einladen",

View File

@ -424,11 +424,11 @@
"vcmi.heroWindow.openBackpack.hover" : "Műtárgy hátizsák ablak megnyitása",
"vcmi.heroWindow.openBackpack.help" : "Az ablak megnyitása, amely megkönnyíti a műtárgy hátizsák kezelését.",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Rendezés ár szerint",
"vcmi.heroWindow.sortBackpackByCost.help" : "A műtárgyak ár szerinti rendezése a hátizsákban.",
"vcmi.heroWindow.sortBackpackByCost.help" : "{Rendezés ár szerint}\n\nA műtárgyak ár szerinti rendezése a hátizsákban.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Rendezés nyílás szerint",
"vcmi.heroWindow.sortBackpackBySlot.help" : "A műtárgyak nyílás szerinti rendezése a hátizsákban.",
"vcmi.heroWindow.sortBackpackBySlot.help" : "{Rendezés nyílás szerint}\n\nA műtárgyak nyílás szerinti rendezése a hátizsákban.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Rendezés osztály szerint",
"vcmi.heroWindow.sortBackpackByClass.help" : "A műtárgyak osztály szerinti rendezése a hátizsákban. Kincs, Kisebb, Nagyobb, Relikvia",
"vcmi.heroWindow.sortBackpackByClass.help" : "{Rendezés osztály szerint}\n\nA műtárgyak osztály szerinti rendezése a hátizsákban. Kincs, Kisebb, Nagyobb, Relikvia",
"vcmi.heroWindow.fusingArtifact.fusing" : "Ön birtokában van az összes szükséges komponensnek a(z) %s összeolvasztásához. Szeretné elvégezni az összeolvasztást? {Minden komponens elfogy az összeolvasztás során.}",
"vcmi.tavernWindow.inviteHero" : "Hős meghívása",

View File

@ -422,11 +422,11 @@
"vcmi.heroWindow.openBackpack.hover" : "Otwórz okno sakwy",
"vcmi.heroWindow.openBackpack.help" : "Otwiera okno pozwalające łatwiej zarządzać artefaktami w sakwie",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Sortuj wg. wartości",
"vcmi.heroWindow.sortBackpackByCost.help" : "Sortuj artefakty w sakwie według wartości",
"vcmi.heroWindow.sortBackpackByCost.help" : "{Sortuj wg. wartości}\n\nSortuj artefakty w sakwie według wartości",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Sortuj wg. miejsc",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Sortuj artefakty w sakwie według umiejscowienia na ciele",
"vcmi.heroWindow.sortBackpackBySlot.help" : "{Sortuj wg. miejsc}\n\nSortuj artefakty w sakwie według umiejscowienia na ciele",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Sortuj wg. jakości",
"vcmi.heroWindow.sortBackpackByClass.help" : "Sortuj artefakty w sakwie według jakości: Skarb, Pomniejszy, Potężny, Relikt",
"vcmi.heroWindow.sortBackpackByClass.help" : "{Sortuj wg. jakości}\n\nSortuj artefakty w sakwie według jakości: Skarb, Pomniejszy, Potężny, Relikt",
"vcmi.heroWindow.fusingArtifact.fusing" : "Posiadasz wszystkie niezbędne komponenty do stworzenia %s. Czy chcesz wykonać fuzję? {Wszystkie komponenty zostaną użyte}",
"vcmi.tavernWindow.inviteHero" : "Zaproś bohatera",

View File

@ -422,11 +422,11 @@
"vcmi.heroWindow.openBackpack.hover" : "Abrir janela da mochila de artefatos",
"vcmi.heroWindow.openBackpack.help" : "Abre a janela que facilita o gerenciamento da mochila de artefatos.",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Ordenar por custo",
"vcmi.heroWindow.sortBackpackByCost.help" : "Ordena artefatos na mochila por custo.",
"vcmi.heroWindow.sortBackpackByCost.help" : "{Ordenar por custo}\n\nOrdena artefatos na mochila por custo.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Ordenar por espaço",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Ordena artefatos na mochila por espaço equipado.",
"vcmi.heroWindow.sortBackpackBySlot.help" : "{Ordenar por espaço}\n\nOrdena artefatos na mochila por espaço equipado.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Ordenar por classe",
"vcmi.heroWindow.sortBackpackByClass.help" : "Ordena artefatos na mochila por classe de artefato. Tesouro, Menor, Maior, Relíquia.",
"vcmi.heroWindow.sortBackpackByClass.help" : "{Ordenar por classe}\n\nOrdena artefatos na mochila por classe de artefato. Tesouro, Menor, Maior, Relíquia.",
"vcmi.heroWindow.fusingArtifact.fusing" : "Você possui todos os componentes necessários para a fusão de %s. Deseja realizar a fusão? {Todos os componentes serão consumidos após a fusão.}",
"vcmi.tavernWindow.inviteHero" : "Convidar herói",

View File

@ -423,11 +423,11 @@
"vcmi.heroWindow.openBackpack.hover" : "Öppna artefaktryggsäcksfönster",
"vcmi.heroWindow.openBackpack.help" : "Öppnar fönster som gör det enklare att hantera artefaktryggsäcken.",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Sortera efter kostnad",
"vcmi.heroWindow.sortBackpackByCost.help" : "Sorterar artefakter i ryggsäcken efter kostnad.",
"vcmi.heroWindow.sortBackpackByCost.help" : "{Sortera efter kostnad}\n\nSorterar artefakter i ryggsäcken efter kostnad.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Sortera efter plats",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Sorterar artefakter i ryggsäcken efter utrustad plats.",
"vcmi.heroWindow.sortBackpackBySlot.help" : "{Sortera efter plats}\n\nSorterar artefakter i ryggsäcken efter utrustad plats.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Sortera efter klass",
"vcmi.heroWindow.sortBackpackByClass.help" : "Sorterar artefakter i ryggsäcken efter artefaktklass (skatt, mindre, större, relik)",
"vcmi.heroWindow.sortBackpackByClass.help" : "{Sortera efter klass}\n\nSorterar artefakter i ryggsäcken efter artefaktklass (skatt, mindre, större, relik)",
"vcmi.heroWindow.fusingArtifact.fusing" : "Du har alla komponenterna som behövs för en sammanslagning av %s. Vill du utföra sammanslagningen? {Alla komponenter kommer att förbrukas vid sammanslagningen.}",
"vcmi.tavernWindow.inviteHero" : "Bjud in hjälte",

View File

@ -423,12 +423,12 @@
"vcmi.heroWindow.openCommander.help" : "Показує інформацію про командира героя",
"vcmi.heroWindow.openBackpack.hover" : "Відкрити вікно рюкзака з артефактами",
"vcmi.heroWindow.openBackpack.help" : "Відкриває вікно, що дозволяє легше керувати рюкзаком артефактів",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Сортувати за вартістю",
"vcmi.heroWindow.sortBackpackByCost.help" : "Сортувати артефакти в рюкзаку за вартістю.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Сортувати за типом",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Сортувати артефакти в рюкзаку за слотом, в який цей артефакт може бути екіпірований",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Сортування за рідкістю",
"vcmi.heroWindow.sortBackpackByClass.help" : "Сортувати артефакти в рюкзаку за класом рідкісності артефакту. Скарб, Малий, Великий, Реліквія",
"vcmi.heroWindow.sortBackpackByCost.hover" : "За вартістю",
"vcmi.heroWindow.sortBackpackByCost.help" : "{Сортування за вартістю}\n\nСортувати артефакти в рюкзаку за вартістю.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "За слотом",
"vcmi.heroWindow.sortBackpackBySlot.help" : "{Сортування за слотом}\n\nСортувати артефакти в рюкзаку за слотом, в який цей артефакт може бути екіпірований",
"vcmi.heroWindow.sortBackpackByClass.hover" : "За рідкістю",
"vcmi.heroWindow.sortBackpackByClass.help" : "{Сортування за рідкістю}\n\nСортувати артефакти в рюкзаку за класом рідкісності артефакту. Скарб, Малий, Великий, Реліквія",
"vcmi.heroWindow.fusingArtifact.fusing" : "Ви володієте всіма компонентами, необхідними для злиття %s. Ви бажаєте виконати злиття? {Всі компоненти буде спожито під час злиття.}",
"vcmi.tavernWindow.inviteHero" : "Запросити героя",

View File

@ -423,11 +423,11 @@
"vcmi.heroWindow.openBackpack.hover" : "Mở cửa sổ ba lô báu vật",
"vcmi.heroWindow.openBackpack.help" : "Mở cửa sổ để quản lý ba lô báu vật dễ dàng hơn.",
"vcmi.heroWindow.sortBackpackByCost.hover" : "Sắp xếp theo giá",
"vcmi.heroWindow.sortBackpackByCost.help" : "Sắp xếp các báu vật trong ba lô theo giá.",
"vcmi.heroWindow.sortBackpackByCost.help" : "{Sắp xếp theo giá}\n\nSắp xếp các báu vật trong ba lô theo giá.",
"vcmi.heroWindow.sortBackpackBySlot.hover" : "Sắp xếp theo vị trí",
"vcmi.heroWindow.sortBackpackBySlot.help" : "Sắp xếp báu vật trong ba lô theo ô được trang bị.",
"vcmi.heroWindow.sortBackpackBySlot.help" : "{Sắp xếp theo vị trí}\n\nSắp xếp báu vật trong ba lô theo ô được trang bị.",
"vcmi.heroWindow.sortBackpackByClass.hover" : "Sắp xếp theo loại",
"vcmi.heroWindow.sortBackpackByClass.help" : "Sắp xếp các báu vật trong ba lô theo loại: Chính, Phụ, Cổ đại và Quý hiếm.",
"vcmi.heroWindow.sortBackpackByClass.help" : "{Sắp xếp theo loại}\n\nSắp xếp các báu vật trong ba lô theo loại: Chính, Phụ, Cổ đại và Quý hiếm.",
"vcmi.heroWindow.fusingArtifact.fusing" : "Bạn đã sở hữu tất cả các món đồ cần thiết để hợp nhất %s. Bạn có muốn hợp nhất không? {Tất cả các món đồ sẽ được sử dụng khi hợp nhất.}",
"vcmi.tavernWindow.inviteHero" : "Mới thêm tướng",

View File

@ -24,6 +24,7 @@
#include "../../lib/mapObjects/CGHeroInstance.h"
#include "../../lib/networkPacks/ArtifactLocation.h"
#include "../../lib/texts/CGeneralTextHandler.h"
CHeroBackpackWindow::CHeroBackpackWindow(const CGHeroInstance * hero, const std::vector<CArtifactsOfHeroPtr> & artsSets)
: CWindowWithArtifacts(&artsSets)
@ -44,15 +45,22 @@ CHeroBackpackWindow::CHeroBackpackWindow(const CGHeroInstance * hero, const std:
addSet(arts);
arts->setHero(hero);
buttons.emplace_back(std::make_unique<CButton>(Point(), AnimationPath::builtin("ALTFILL.DEF"),
std::string sortByValue = VLC->generaltexth->translate("vcmi.heroWindow.sortBackpackByCost.hover");
std::string sortBySlot = VLC->generaltexth->translate("vcmi.heroWindow.sortBackpackBySlot.hover");
std::string sortByClass = VLC->generaltexth->translate("vcmi.heroWindow.sortBackpackByClass.hover");
buttons.emplace_back(std::make_shared<CButton>(Point(), AnimationPath::builtin("heroBackpackSort"),
CButton::tooltipLocalized("vcmi.heroWindow.sortBackpackByCost"),
[hero]() { LOCPLINT->cb->sortBackpackArtifactsByCost(hero->id); }));
buttons.emplace_back(std::make_unique<CButton>(Point(), AnimationPath::builtin("ALTFILL.DEF"),
buttons.back()->setTextOverlay(sortByValue, EFonts::FONT_SMALL, Colors::YELLOW);
buttons.emplace_back(std::make_shared<CButton>(Point(), AnimationPath::builtin("heroBackpackSort"),
CButton::tooltipLocalized("vcmi.heroWindow.sortBackpackBySlot"),
[hero]() { LOCPLINT->cb->sortBackpackArtifactsBySlot(hero->id); }));
buttons.emplace_back(std::make_unique<CButton>(Point(), AnimationPath::builtin("ALTFILL.DEF"),
buttons.back()->setTextOverlay(sortBySlot, EFonts::FONT_SMALL, Colors::YELLOW);
buttons.emplace_back(std::make_shared<CButton>(Point(), AnimationPath::builtin("heroBackpackSort"),
CButton::tooltipLocalized("vcmi.heroWindow.sortBackpackByClass"),
[hero]() { LOCPLINT->cb->sortBackpackArtifactsByClass(hero->id); }));
buttons.back()->setTextOverlay(sortByClass, EFonts::FONT_SMALL, Colors::YELLOW);
pos.w = stretchedBackground->pos.w = arts->pos.w + 2 * windowMargin;
pos.h = stretchedBackground->pos.h = arts->pos.h + buttons.back()->pos.h + 3 * windowMargin;

View File

@ -21,7 +21,7 @@ public:
protected:
std::shared_ptr<CArtifactsOfHeroBackpack> arts;
std::vector<std::unique_ptr<CButton>> buttons;
std::vector<std::shared_ptr<CButton>> buttons;
std::shared_ptr<CFilledTexture> stretchedBackground;
const int windowMargin = 5;

View File

@ -0,0 +1,114 @@
{
"normal" : {
"width": 115,
"height": 24,
"items" : [
{
"type": "texture",
"image": "DiBoxBck",
"rect": {"x": 0, "y": 0, "w": 115, "h": 24}
},
{
"type": "graphicalPrimitive",
"rect": {"x": 0, "y": 0, "w": 115, "h": 24},
"primitives" : [
{ "type" : "filledBox", "a" : { "x" : 2, "y" : 2}, "b" : { "x" : -3, "y" : -3}, "color" : [ 0, 0, 0, 80 ] },
{ "type" : "line", "a" : { "x" : 0, "y" : 0}, "b" : { "x" : 0, "y" : -1}, "color" : [ 255, 255, 255, 64 ] },
{ "type" : "line", "a" : { "x" : 0, "y" : 0}, "b" : { "x" : -1, "y" : 0}, "color" : [ 255, 255, 255, 128 ] },
{ "type" : "line", "a" : { "x" : 1, "y" : 1}, "b" : { "x" : 1, "y" : -2}, "color" : [ 255, 255, 255, 80 ] },
{ "type" : "line", "a" : { "x" : 1, "y" : 1}, "b" : { "x" : -2, "y" : 1}, "color" : [ 255, 255, 255, 1115 ] },
{ "type" : "line", "a" : { "x" : 1, "y" : -2}, "b" : { "x" : -2, "y" : -2}, "color" : [ 0, 0, 0, 192 ] },
{ "type" : "line", "a" : { "x" : -2, "y" : 1}, "b" : { "x" : -2, "y" : -2}, "color" : [ 0, 0, 0, 192 ] },
{ "type" : "line", "a" : { "x" : 0, "y" : -1}, "b" : { "x" : -1, "y" : -1}, "color" : [ 0, 0, 0, 255 ] },
{ "type" : "line", "a" : { "x" : -1, "y" : 0}, "b" : { "x" : -1, "y" : -1}, "color" : [ 0, 0, 0, 255 ] },
]
}
]
},
"pressed" : {
"width": 115,
"height": 24,
"items" : [
{
"type": "texture",
"image": "DiBoxBck",
"rect": {"x": 1, "y": 1, "w": 114, "h": 23}
},
{
"type": "graphicalPrimitive",
"rect": {"x": 0, "y": 0, "w": 115, "h": 24},
"primitives" : [
{ "type" : "filledBox", "a" : { "x" : 3, "y" : 3}, "b" : { "x" : -3, "y" : -3}, "color" : [ 0, 0, 0, 96 ] },
{ "type" : "rectangle", "a" : { "x" : 0, "y" : 0}, "b" : { "x" : -1, "y" : -1}, "color" : [ 0, 0, 0, 255 ] },
{ "type" : "line", "a" : { "x" : 1, "y" : 1}, "b" : { "x" : 1, "y" : -2}, "color" : [ 255, 255, 255, 48 ] },
{ "type" : "line", "a" : { "x" : 1, "y" : 1}, "b" : { "x" : -2, "y" : 1}, "color" : [ 255, 255, 255, 96 ] },
{ "type" : "line", "a" : { "x" : 2, "y" : 2}, "b" : { "x" : 2, "y" : -3}, "color" : [ 255, 255, 255, 64 ] },
{ "type" : "line", "a" : { "x" : 2, "y" : 2}, "b" : { "x" : -3, "y" : 2}, "color" : [ 255, 255, 255, 128 ] },
]
}
]
},
"blocked" : {
"width": 115,
"height": 24,
"items" : [
{
"type": "texture",
"image": "DiBoxBck",
"rect": {"x": 0, "y": 0, "w": 115, "h": 24}
},
{
"type": "graphicalPrimitive",
"rect": {"x": 0, "y": 0, "w": 115, "h": 24},
"primitives" : [
{ "type" : "filledBox", "a" : { "x" : 2, "y" : 2}, "b" : { "x" : -3, "y" : -3}, "color" : [ 0, 0, 0, 80 ] },
{ "type" : "line", "a" : { "x" : 0, "y" : 0}, "b" : { "x" : 0, "y" : -1}, "color" : [ 255, 255, 255, 64 ] },
{ "type" : "line", "a" : { "x" : 0, "y" : 0}, "b" : { "x" : -1, "y" : 0}, "color" : [ 255, 255, 255, 128 ] },
{ "type" : "line", "a" : { "x" : 1, "y" : 1}, "b" : { "x" : 1, "y" : -2}, "color" : [ 255, 255, 255, 80 ] },
{ "type" : "line", "a" : { "x" : 1, "y" : 1}, "b" : { "x" : -2, "y" : 1}, "color" : [ 255, 255, 255, 1115 ] },
{ "type" : "line", "a" : { "x" : 1, "y" : -2}, "b" : { "x" : -2, "y" : -2}, "color" : [ 0, 0, 0, 192 ] },
{ "type" : "line", "a" : { "x" : -2, "y" : 1}, "b" : { "x" : -2, "y" : -2}, "color" : [ 0, 0, 0, 192 ] },
{ "type" : "line", "a" : { "x" : 0, "y" : -1}, "b" : { "x" : -1, "y" : -1}, "color" : [ 0, 0, 0, 255 ] },
{ "type" : "line", "a" : { "x" : -1, "y" : 0}, "b" : { "x" : -1, "y" : -1}, "color" : [ 0, 0, 0, 255 ] },
]
}
]
},
"highlighted" : {
"width": 115,
"height": 24,
"items" : [
{
"type": "texture",
"image": "DiBoxBck",
"rect": {"x": 0, "y": 0, "w": 115, "h": 24}
},
{
"type": "graphicalPrimitive",
"rect": {"x": 0, "y": 0, "w": 115, "h": 24},
"primitives" : [
{ "type" : "filledBox", "a" : { "x" : 2, "y" : 2}, "b" : { "x" : -3, "y" : -3}, "color" : [ 0, 0, 0, 80 ] },
{ "type" : "rectangle", "a" : { "x" : 2, "y" : 2}, "b" : { "x" : -3, "y" : -3}, "color" : [ 255, 255, 255, 255 ] },
{ "type" : "line", "a" : { "x" : 1, "y" : -2}, "b" : { "x" : -2, "y" : -2}, "color" : [ 0, 0, 0, 255 ] },
{ "type" : "line", "a" : { "x" : -2, "y" : 1}, "b" : { "x" : -2, "y" : -2}, "color" : [ 0, 0, 0, 255 ] },
{ "type" : "line", "a" : { "x" : 1, "y" : 1}, "b" : { "x" : 1, "y" : -2}, "color" : [ 255, 255, 255, 1115 ] },
{ "type" : "line", "a" : { "x" : 1, "y" : 1}, "b" : { "x" : -2, "y" : 1}, "color" : [ 255, 255, 255, 1115 ] },
]
}
]
},
}