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)