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; 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 ) { PressedDown[byte(bRight)] = 0; bPressedDown = (PressedDown[0]!=0 || PressedDown[1]!=0); HandleMouseClick(bRight); } } function MouseLeave() { Super.MouseLeave(); if( !bDisabled ) PlayMenuSound(MN_LostFocus); PressedDown[0] = 0; PressedDown[1] = 0; bPressedDown = false; } function MouseEnter() { Super.MouseEnter(); if( !bDisabled ) PlayMenuSound(MN_Focus); } 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 HandleMouseClick( bool bRight ); defaultproperties { }