54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
|  | local PopupMenuItem = {} | ||
|  | local UIUtils = require("UI.Utils") | ||
|  | 
 | ||
|  | function PopupMenuItem:ctor() | ||
|  |     self.on_click_callback = nil | ||
|  | end | ||
|  | 
 | ||
|  | function PopupMenuItem:PreConstruct(IsDesignTime) | ||
|  |     if not IsDesignTime then return end | ||
|  |     self.TxtMenuName:SetText(self.MenuText) | ||
|  | end | ||
|  | 
 | ||
|  | function PopupMenuItem:OnInitialized() | ||
|  |     self:BindEvent("OnClicked", function() self:OnMenuItemClicked() end) | ||
|  |     self:BindEvent("OnHovered", function() self:OnHoverStateChange(true) end) | ||
|  |     self:BindEvent("OnUnhovered", function() self:OnHoverStateChange(false) end) | ||
|  | end | ||
|  | 
 | ||
|  | function PopupMenuItem:Construct() | ||
|  |     self.TxtMenuName:SetText(self.MenuText) | ||
|  | end | ||
|  | 
 | ||
|  | function PopupMenuItem:OnDestroy() | ||
|  |     print(self, "PopupMenuItem:OnDestroy") | ||
|  | end | ||
|  | 
 | ||
|  | function PopupMenuItem:SetContent(name, callback) | ||
|  |     self.TxtMenuName:SetText(name) | ||
|  |     self.on_click_callback = callback | ||
|  |     print(self.TxtMenuName:GetText()) | ||
|  | end | ||
|  | 
 | ||
|  | function PopupMenuItem:BindEvent(event_name, callback) | ||
|  |     self.BtnMain[event_name]:Add(callback) | ||
|  | end | ||
|  | 
 | ||
|  | function PopupMenuItem:OnHoverStateChange(is_hoverd) | ||
|  |     if is_hoverd then | ||
|  |         self.ImgBackground.Brush.TintColor = self.ItemHoverdColor | ||
|  |     else | ||
|  |         self.ImgBackground.Brush.TintColor = self.ItemNormalColor | ||
|  |     end | ||
|  | end | ||
|  | 
 | ||
|  | function PopupMenuItem:OnMenuItemClicked() | ||
|  |     print("OnMenuItemClicked") | ||
|  |     if self.on_click_callback ~= nil then | ||
|  |         self.on_click_callback() | ||
|  |     end | ||
|  |     UIUtils.HideWidgetByName(self, "MenuPanel") | ||
|  | end | ||
|  | 
 | ||
|  | 
 | ||
|  | return Class(nil, nil, PopupMenuItem) |