Ver código fonte

Minor changes

nordsoft 2 anos atrás
pai
commit
c7ded69edc
3 arquivos alterados com 9 adições e 10 exclusões
  1. 2 0
      client/CMakeLists.txt
  2. 7 9
      client/widgets/ComboBox.cpp
  3. 0 1
      client/widgets/ComboBox.h

+ 2 - 0
client/CMakeLists.txt

@@ -95,6 +95,7 @@ set(client_SRCS
 	widgets/CComponent.cpp
 	widgets/CGarrisonInt.cpp
 	widgets/CreatureCostBox.cpp
+	widgets/ComboBox.cpp
 	widgets/Images.cpp
 	widgets/MiscWidgets.cpp
 	widgets/ObjectLists.cpp
@@ -253,6 +254,7 @@ set(client_HEADERS
 	widgets/CComponent.h
 	widgets/CGarrisonInt.h
 	widgets/CreatureCostBox.h
+	widgets/ComboBox.h
 	widgets/Images.h
 	widgets/MiscWidgets.h
 	widgets/ObjectLists.h

+ 7 - 9
client/widgets/ComboBox.cpp

@@ -35,7 +35,8 @@ void ComboBox::DropDown::Item::updateItem(int idx, const void * _item)
 	if(auto w = widget<CLabel>("labelName"))
 	{
 		item = _item;
-		w->setText(dropDown.comboBox.getItemText(idx, item));
+		if(dropDown.comboBox.getItemText)
+			w->setText(dropDown.comboBox.getItemText(idx, item));
 	}
 }
 
@@ -71,7 +72,8 @@ ComboBox::DropDown::DropDown(const JsonNode & config, ComboBox & _comboBox):
 {
 	REGISTER_BUILDER("item", &ComboBox::DropDown::buildItem);
 	
-	comboBox.onConstructItems(curItems);
+	if(comboBox.onConstructItems)
+		comboBox.onConstructItems(curItems);
 	
 	addCallback("sliderMove", std::bind(&ComboBox::DropDown::sliderMove, this, std::placeholders::_1));
 	
@@ -153,11 +155,6 @@ void ComboBox::DropDown::setItem(const void * item)
 	GH.windows().popWindows(1);
 }
 
-void ComboBox::DropDown::constructItems()
-{
-	comboBox.onConstructItems(curItems);
-}
-
 ComboBox::ComboBox(Point position, const std::string & defName, const std::pair<std::string, std::string> & help, const JsonNode & dropDownDescriptor, EShortcut key, bool playerColoredButton):
 	CButton(position, defName, help, 0, key, playerColoredButton)
 {
@@ -169,8 +166,9 @@ ComboBox::ComboBox(Point position, const std::string & defName, const std::pair<
 
 void ComboBox::setItem(const void * item)
 {
-	if(auto w = std::dynamic_pointer_cast<CLabel>(overlay))
+	if(auto w = std::dynamic_pointer_cast<CLabel>(overlay); getItemText)
 		addTextOverlay(getItemText(0, item), w->font, w->color);
 	
-	onSetItem(item);
+	if(onSetItem)
+		onSetItem(item);
 }

+ 0 - 1
client/widgets/ComboBox.h

@@ -34,7 +34,6 @@ class ComboBox : public CButton
 	public:
 		DropDown(const JsonNode &, ComboBox &);
 		
-		void constructItems();
 		bool receiveEvent(const Point & position, int eventType) const override;
 		void clickPressed(const Point & cursorPosition) override;
 		void setItem(const void *);