class KFGUI_Clickable extends KFGUI_Base abstract; var() int IntIndex; // More user variables. var() string ToolTip; var KFGUI_Tooltip ToolTipItem; var byte PressedDown[2]; var bool bPressedDown; var bool bHoverSound; function InitMenu() { Super.InitMenu(); bClickable = !bDisabled; } function MouseClick(bool bRight) { if (!bDisabled) { PressedDown[byte(bRight)] = 1; bPressedDown = true; } } function MouseRelease(bool bRight) { if (!bDisabled && PressedDown[byte(bRight)] == 1) { PlayMenuSound(MN_ClickButton); PressedDown[byte(bRight)] = 0; bPressedDown = (PressedDown[0] != 0 || PressedDown[1] != 0); HandleMouseClick(bRight); } } function MouseLeave() { Super.MouseLeave(); PressedDown[0] = 0; PressedDown[1] = 0; bPressedDown = false; } function MouseEnter() { Super.MouseEnter(); if (!bDisabled && bHoverSound) PlayMenuSound(MN_FocusHover); } function SetDisabled(bool bDisable) { Super.SetDisabled(bDisable); bClickable = !bDisable; PressedDown[0] = 0; PressedDown[1] = 0; bPressedDown = false; } function NotifyMousePaused() { if (Owner.InputFocus == None && ToolTip != "") { if (ToolTipItem == None) { ToolTipItem = New(None)Class'KFGUI_Tooltip'; ToolTipItem.Owner = Owner; ToolTipItem.ParentComponent = Self; ToolTipItem.InitMenu(); ToolTipItem.SetText(ToolTip); } ToolTipItem.ShowMenu(); ToolTipItem.CompPos[0] = Owner.MousePosition.X; ToolTipItem.CompPos[1] = Owner.MousePosition.Y; ToolTipItem.GetInputFocus(); } } final function ChangeToolTip(string S) { if (ToolTipItem != None) ToolTipItem.SetText(S); else ToolTip = S; } function SetVisibility(bool Visible) { Super.SetVisibility(Visible); SetDisabled(!Visible); } function HandleMouseClick(bool bRight); defaultproperties { bHoverSound=true }