Explorar o código

Merge pull request #5194 from Laserlicht/patch-3

[1.6.x] add scrollbar for hero overview descriptions if necessary
Ivan Savenko hai 9 meses
pai
achega
fa1683c889
Modificáronse 2 ficheiros con 10 adicións e 4 borrados
  1. 8 2
      client/windows/CHeroOverview.cpp
  2. 2 2
      client/windows/CHeroOverview.h

+ 8 - 2
client/windows/CHeroOverview.cpp

@@ -19,9 +19,11 @@
 #include "../render/IImage.h"
 #include "../renderSDL/RenderHandler.h"
 #include "../widgets/CComponentHolder.h"
+#include "../widgets/Slider.h"
 #include "../widgets/Images.h"
 #include "../widgets/TextControls.h"
 #include "../widgets/GraphicalPrimitiveCanvas.h"
+#include "../eventsSDL/InputHandler.h"
 
 #include "../../lib/IGameSettings.h"
 #include "../../lib/entities/hero/CHeroHandler.h"
@@ -99,7 +101,9 @@ void CHeroOverview::genControls()
     // hero biography
     r = Rect(borderOffset, 5 * borderOffset + yOffset + 148, 284, 130);
     backgroundRectangles.push_back(std::make_shared<TransparentFilledRectangle>(r.resize(1), rectangleColor, borderColor));
-    labelHeroBiography = std::make_shared<CMultiLineLabel>(r.resize(-borderOffset), FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, (*CGI->heroh)[heroIdx]->getBiographyTranslated());
+    labelHeroBiography = std::make_shared<CTextBox>((*CGI->heroh)[heroIdx]->getBiographyTranslated(), r.resize(-borderOffset), CSlider::EStyle::BROWN, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE);
+    if(labelHeroBiography->slider && GH.input().getCurrentInputMode() != InputMode::TOUCH)
+        labelHeroBiography->slider->clearScrollBounds();
 
     // speciality name
     r = Rect(2 * borderOffset + 44, 6 * borderOffset + yOffset + 278, 235, 44);
@@ -115,7 +119,9 @@ void CHeroOverview::genControls()
     // speciality description
     r = Rect(borderOffset, 7 * borderOffset + yOffset + 322, 284, 85);
     backgroundRectangles.push_back(std::make_shared<TransparentFilledRectangle>(r.resize(1), rectangleColor, borderColor));
-	labelSpecialityDescription = std::make_shared<CMultiLineLabel>(r.resize(-borderOffset), FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, (*CGI->heroh)[heroIdx]->getSpecialtyDescriptionTranslated());
+	labelSpecialityDescription = std::make_shared<CTextBox>((*CGI->heroh)[heroIdx]->getSpecialtyDescriptionTranslated(), r.resize(-borderOffset), CSlider::EStyle::BROWN, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE);
+    if(labelSpecialityDescription->slider && GH.input().getCurrentInputMode() != InputMode::TOUCH)
+        labelSpecialityDescription->slider->clearScrollBounds();
 
     // army title
     r = Rect(302, borderOffset + yOffset, 292, 30);

+ 2 - 2
client/windows/CHeroOverview.h

@@ -39,7 +39,7 @@ class CHeroOverview : public CWindowObject
     std::shared_ptr<CLabel> labelTitle;
     std::shared_ptr<CAnimImage> imageHero;
     std::shared_ptr<CLabel> labelHeroName;
-    std::shared_ptr<CMultiLineLabel> labelHeroBiography;
+    std::shared_ptr<CTextBox> labelHeroBiography;
     std::shared_ptr<CLabel> labelHeroClass;
     std::shared_ptr<CLabel> labelHeroSpeciality;
     std::shared_ptr<CAnimImage> imageSpeciality;
@@ -47,7 +47,7 @@ class CHeroOverview : public CWindowObject
     std::vector<std::shared_ptr<CAnimImage>> imageSkill;
     std::vector<std::shared_ptr<CLabel>> labelSkillFooter;
     std::shared_ptr<CLabel> labelSpecialityName;
-    std::shared_ptr<CMultiLineLabel> labelSpecialityDescription;
+    std::shared_ptr<CTextBox> labelSpecialityDescription;
 
     std::shared_ptr<CLabel> labelArmyTitle;
     std::vector<std::shared_ptr<CAnimImage>> imageArmy;