From eb58c172018120754c63c87a6195b0a29aac543a Mon Sep 17 00:00:00 2001 From: GenevensiS <66968533+G-e-n-e-v-e-n-s-i-S@users.noreply.github.com> Date: Mon, 29 Dec 2025 01:05:00 +0100 Subject: [PATCH] display stat dimension descriptions --- doc/type/tagged_string.txt | 2 ++ resource/tool/dark_reminder.png | Bin 4594 -> 4592 bytes resource/tool/reminder.png | Bin 4584 -> 4578 bytes src/gui/set/stats_panel.cpp | 29 ++++++++++++++++++++++++----- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/doc/type/tagged_string.txt b/doc/type/tagged_string.txt index 30d88752..a48ee46c 100644 --- a/doc/type/tagged_string.txt +++ b/doc/type/tagged_string.txt @@ -14,6 +14,8 @@ This is written as the character with code 1 in files. ! Tag Description | @@ The text inside the tag is bold. | @@ The text inside the tag is italic. +| @@ The text inside the tag is underlined. +| @@ The text inside the tag is struck through. | @@ The text inside the tag is rendered as symbols, if a [[prop:style:symbol font]] is set for the text box. | @@ The text inside the tag is rendered with the given [[type:color]]. | @@ The text inside the tag is rendered with the given font size in points, for example @"text"@ makes the text 12 points. The text is scaled down proportionally when it does not fit in a text box and the @scale down to@ attribute allows it. diff --git a/resource/tool/dark_reminder.png b/resource/tool/dark_reminder.png index 7ad36fdcade3502fe86acf048a98639c48887a7f..bcd335f67ed0531e2a74ed385fae620f94aa97d2 100644 GIT binary patch delta 547 zcmV+;0^I%bBk&`TPJf7bgyYb)lXin0e*r>Os#?NzV&sOnl3zvR>(N65pvHyL+*9Ry1hMW6U+xZNF*6ZV*s=h9jY3v%n-fk zkyTS?U{0b7dD_#2`vcs?SsnFLOSZA`9t0#fGBh$`GB9Kc3 z25A8#GdN^8IA%9wEjVL1HZ3$TGc+wZV>o0jGGaM5He)z7IAl3ylRyVa4lyz90kEsSbV3t|L lS>$!lNPo9-C&Tos-2t~qz0i!qPy+w}002ovPDHLkV1iZT+sgm| delta 549 zcmV+=0^0rXBl07VPJdoNavZvL(r&QhFF;zAX_0Up8@VCr_`F}~(Th-$Y|ip6NS|SBt6>uP`V$mC;yw{M*(1mz zh-n%a0c}1DifO$+VLM8WStPOvVRfG~Ei^DPIW0LeGh;0_ zWiVnhV>xAJI5abpGX<;)Gcz_YHZ?LaHaU~&1#|~BIy5;tF*%cD1}6tKIy5;tF*&o6 z25A8#F<~(_W;Zi9Ei*JUH7zt^W;QKiWHK}@GcsZ@Gcq?gV`MfklRyVa4lyz-6!f_p2><{9zDYzuR5;76ld%oLFc3u_h>k^o zG6hnkh$$!-fd%O4nSh>xIS@)o3p-E)9gpTBMG=S?a?Sm-|9#tEXXq-_iTY6UFT6Z> zljcUL?phwUQ_H5R>a?Z6H28V7uvIUKPrj(ze$)kUNVM$$6qUdjIEC^^-Cjq2i=*cR zj0aKlfNS6tFb{nDfEU5<4Qf}qN8SKKU>)@*e6JhwRF{b+F4bq{!5PRBP0WCEC2$00 ni2}3e>tK-n9_3Cx)35OYj{?1a4`c~p00000NkvXXu0mjf^N8Ks diff --git a/resource/tool/reminder.png b/resource/tool/reminder.png index c772e137da6c7c94db658081e6f29e954621990c..31173743ad03fc7bb276b3f9ad41bea303044d2f 100644 GIT binary patch delta 540 zcmV+%0^|MYBjO{FBmu*bB_DrV4#OY}`_CzMguH-o9J+SWZm{DoKw6b)mT;Xoav^Yh z-YQ535p*{zY)9GBdA7@@H8j_+I$w~YUTcf?Z6c_4|I|;vagWeT8k}jZ%^J7=0ix( zStQR3NIwarxxvmX=7S`~H4dgRN^>Fq_H+Wi+`(BL2rN#!vGX1TBse%`FfunWH7zqS zGBzzVF*Rl_IWlE4EjeXnGcsgiWMyPHIFmI6tO__VGd4IfG&eLclj{X^2RAw}H##vk zlV%1d2RAw}H##vkvy=vE0V6eIH8(LfFfBDWFfuJPH)dijVKOx_EihwZH#1^lFgZ3k zG?O6+PzN_UFgH3eHnVsLXb1#JgYWN?8{j1yphLnh#WK?1aJ3Ejs} zCUTt?{#NISc#S;AH1xSf&yqg@Ds)4y(8D6?I^B&va73B;1|^Q^4R)Ah0w&Sd%pmHQB!a delta 553 zcmV+^0@nTFBj_WLBmu^eB_Dr54#OY}yYq@YA;bZ~bLiSh`@x>SP|~VYwS?=$$PEeG z@B0a_4vrEe70oqgGDwxm&4kiG+c}c#>;)ZS>W9-{Yr(!4rDnf>^dn74v6)JjAbq>B z%tjT@*ISVP2z??pv3gMTAn-7v2ek1l%2mtt3Cl(^bezx$WzRlC?zJ!!+uoY23FZwE zWDMjn0QyM*%?vhXs9lUmrUliwk3S}{g*@%)K==dPgIOE1?vv=T@E!ytVK`+pG&MA3 zEi*PZH!U{Gc7bYIbf0p zF*h_}lRpPZ4lyz?Ws~6$Gk*>-19xhk&Hw-avPnci zR5;76(=iSKQ4j{;Z$;-KC>4@T#3>Yxuouwloj|W}4iTl6JE+m2nH3}(``Bsb|MUL$ zznRHA8jL=!$iL|F(DgqLc39PXY!&)9*E@za4ThnAR=dP8vE?I{tso<85)C#Ol?FZR z19!2GT!n?c*HR9W;S_j=N#Jt@o`ybazm#-|yg&!@;8pnY+RqI|;tUGh${8FmNHiGW rP#SD8PBa+Dy=E5a?^SN(GyN0~n#U^=hHL?J00000NkvXXu0mjfPa@<< diff --git a/src/gui/set/stats_panel.cpp b/src/gui/set/stats_panel.cpp index 963a7d3e..ff14c08d 100644 --- a/src/gui/set/stats_panel.cpp +++ b/src/gui/set/stats_panel.cpp @@ -30,7 +30,7 @@ public: StatCategoryList(Window* parent, int id) : GalleryList(parent, id, wxVERTICAL) { - item_size = subcolumns[0].size = wxSize(150, 23); + item_size = subcolumns[0].size = wxSize(NAME_COLUMN_WIDTH, COLUMN_HEIGHT); } void show(const GameP&); @@ -105,7 +105,7 @@ public: , prefered_dimension_count(dimension_count) , show_empty(show_empty) { - subcolumns[0].size = wxSize(210, 23); + subcolumns[0].size = wxSize(NAME_COLUMN_WIDTH, COLUMN_HEIGHT); if (dimension_count > 0) { subcolumns[0].selection = NO_SELECTION; subcolumns[0].can_select = false; @@ -116,13 +116,13 @@ public: col.selection = show_empty ? NO_SELECTION : 0; col.can_select = true; col.offset.x = subcolumns[0].size.x + SPACING; - col.size = wxSize(18,23); + col.size = wxSize(DIMENSION_COLUMN_WIDTH, COLUMN_HEIGHT); for (int i = 0 ; i < dimension_count ; ++i) { subcolumns.push_back(col); col.offset.x += col.size.x + SPACING; } // total - item_size = wxSize(col.offset.x - SPACING, 23); + item_size = wxSize(col.offset.x - SPACING, COLUMN_HEIGHT); } void show(const GameP&); @@ -185,7 +185,22 @@ protected: private: GameP game; bool show_empty; - vector dimensions; ///< Dimensions, sorted by position_hint + vector dimensions; ///< Dimensions, sorted by position_hint + + static const int NAME_COLUMN_WIDTH = 210; + static const int DIMENSION_COLUMN_WIDTH = 18; + static const int COLUMN_HEIGHT = 23; + + DECLARE_EVENT_TABLE(); + + void onMotion(wxMouseEvent& ev) { + wxFrame* frame = dynamic_cast( wxGetTopLevelParent(this) ); + if (frame) { + String description = ev.GetX() > NAME_COLUMN_WIDTH + dimension_count * (DIMENSION_COLUMN_WIDTH + 1) ? + String() : dimensions[findItem(ev)]->description.get(); + frame->SetStatusText(description); + } + } }; struct ComparePositionHint2{ @@ -576,6 +591,10 @@ void StatsPanel::filterCards() { BEGIN_EVENT_TABLE(StatsPanel, wxPanel) EVT_GRAPH_SELECT(wxID_ANY, StatsPanel::onGraphSelect) END_EVENT_TABLE() + +BEGIN_EVENT_TABLE(StatDimensionList, GalleryList) + EVT_MOTION(StatDimensionList::onMotion) +END_EVENT_TABLE() // ----------------------------------------------------------------------------- : Selection