From 52d72c75fcc12aceb0d4dfbfd36047a02e1c2df7 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sat, 8 Feb 2025 16:31:37 +0000 Subject: [PATCH] Buttons with text tooltip for artifact sorting screen --- Mods/vcmi/Content/config/chinese.json | 6 +- Mods/vcmi/Content/config/czech.json | 6 +- Mods/vcmi/Content/config/english.json | 12 +- Mods/vcmi/Content/config/german.json | 6 +- Mods/vcmi/Content/config/hungarian.json | 6 +- Mods/vcmi/Content/config/polish.json | 6 +- Mods/vcmi/Content/config/portuguese.json | 6 +- Mods/vcmi/Content/config/swedish.json | 6 +- Mods/vcmi/Content/config/ukrainian.json | 12 +- Mods/vcmi/Content/config/vietnamese.json | 6 +- client/windows/CHeroBackpackWindow.cpp | 14 ++- client/windows/CHeroBackpackWindow.h | 2 +- config/widgets/buttons/heroBackpackSort.json | 114 +++++++++++++++++++ 13 files changed, 162 insertions(+), 40 deletions(-) create mode 100644 config/widgets/buttons/heroBackpackSort.json diff --git a/Mods/vcmi/Content/config/chinese.json b/Mods/vcmi/Content/config/chinese.json index 671011845..a6b95120c 100644 --- a/Mods/vcmi/Content/config/chinese.json +++ b/Mods/vcmi/Content/config/chinese.json @@ -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" : "邀请英雄", diff --git a/Mods/vcmi/Content/config/czech.json b/Mods/vcmi/Content/config/czech.json index 05e1e02da..d823f2e60 100644 --- a/Mods/vcmi/Content/config/czech.json +++ b/Mods/vcmi/Content/config/czech.json @@ -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", diff --git a/Mods/vcmi/Content/config/english.json b/Mods/vcmi/Content/config/english.json index 8384c2009..bf71a2467 100644 --- a/Mods/vcmi/Content/config/english.json +++ b/Mods/vcmi/Content/config/english.json @@ -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", diff --git a/Mods/vcmi/Content/config/german.json b/Mods/vcmi/Content/config/german.json index aa34553b1..2c176adfe 100644 --- a/Mods/vcmi/Content/config/german.json +++ b/Mods/vcmi/Content/config/german.json @@ -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", diff --git a/Mods/vcmi/Content/config/hungarian.json b/Mods/vcmi/Content/config/hungarian.json index 90a81c54d..83ef79f44 100644 --- a/Mods/vcmi/Content/config/hungarian.json +++ b/Mods/vcmi/Content/config/hungarian.json @@ -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", diff --git a/Mods/vcmi/Content/config/polish.json b/Mods/vcmi/Content/config/polish.json index f81927b27..c3718a09c 100644 --- a/Mods/vcmi/Content/config/polish.json +++ b/Mods/vcmi/Content/config/polish.json @@ -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", diff --git a/Mods/vcmi/Content/config/portuguese.json b/Mods/vcmi/Content/config/portuguese.json index 5f712a6d1..badc83ce0 100644 --- a/Mods/vcmi/Content/config/portuguese.json +++ b/Mods/vcmi/Content/config/portuguese.json @@ -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", diff --git a/Mods/vcmi/Content/config/swedish.json b/Mods/vcmi/Content/config/swedish.json index 73b4a6ed5..78943dfcb 100644 --- a/Mods/vcmi/Content/config/swedish.json +++ b/Mods/vcmi/Content/config/swedish.json @@ -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", diff --git a/Mods/vcmi/Content/config/ukrainian.json b/Mods/vcmi/Content/config/ukrainian.json index 0de82e320..ad7f737ac 100644 --- a/Mods/vcmi/Content/config/ukrainian.json +++ b/Mods/vcmi/Content/config/ukrainian.json @@ -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" : "Запросити героя", diff --git a/Mods/vcmi/Content/config/vietnamese.json b/Mods/vcmi/Content/config/vietnamese.json index dd5b390a0..b451739b7 100644 --- a/Mods/vcmi/Content/config/vietnamese.json +++ b/Mods/vcmi/Content/config/vietnamese.json @@ -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", diff --git a/client/windows/CHeroBackpackWindow.cpp b/client/windows/CHeroBackpackWindow.cpp index 94b7a622f..3dd28dbbd 100644 --- a/client/windows/CHeroBackpackWindow.cpp +++ b/client/windows/CHeroBackpackWindow.cpp @@ -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 & artsSets) : CWindowWithArtifacts(&artsSets) @@ -43,16 +44,23 @@ CHeroBackpackWindow::CHeroBackpackWindow(const CGHeroInstance * hero, const std: }; addSet(arts); arts->setHero(hero); + + 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_unique(Point(), AnimationPath::builtin("ALTFILL.DEF"), + buttons.emplace_back(std::make_shared(Point(), AnimationPath::builtin("heroBackpackSort"), CButton::tooltipLocalized("vcmi.heroWindow.sortBackpackByCost"), [hero]() { LOCPLINT->cb->sortBackpackArtifactsByCost(hero->id); })); - buttons.emplace_back(std::make_unique(Point(), AnimationPath::builtin("ALTFILL.DEF"), + buttons.back()->setTextOverlay(sortByValue, EFonts::FONT_SMALL, Colors::YELLOW); + buttons.emplace_back(std::make_shared(Point(), AnimationPath::builtin("heroBackpackSort"), CButton::tooltipLocalized("vcmi.heroWindow.sortBackpackBySlot"), [hero]() { LOCPLINT->cb->sortBackpackArtifactsBySlot(hero->id); })); - buttons.emplace_back(std::make_unique(Point(), AnimationPath::builtin("ALTFILL.DEF"), + buttons.back()->setTextOverlay(sortBySlot, EFonts::FONT_SMALL, Colors::YELLOW); + buttons.emplace_back(std::make_shared(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; diff --git a/client/windows/CHeroBackpackWindow.h b/client/windows/CHeroBackpackWindow.h index 239a3fa0a..1506f04ca 100644 --- a/client/windows/CHeroBackpackWindow.h +++ b/client/windows/CHeroBackpackWindow.h @@ -21,7 +21,7 @@ public: protected: std::shared_ptr arts; - std::vector> buttons; + std::vector> buttons; std::shared_ptr stretchedBackground; const int windowMargin = 5; diff --git a/config/widgets/buttons/heroBackpackSort.json b/config/widgets/buttons/heroBackpackSort.json new file mode 100644 index 000000000..e9a47406c --- /dev/null +++ b/config/widgets/buttons/heroBackpackSort.json @@ -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 ] }, + ] + } + ] + }, +}