rott/kf_sources/XInterface/Classes/GUITabButton.uc
2026-07-14 20:27:09 +07:00

79 lines
1.7 KiB
Ucode

// ====================================================================
// GUITabButton - A Tab Button has an associated Tab Control, and
// TabPanel.
//
// Written by Joe Wilcox
// (c) 2002, Epic Games, Inc. All Rights Reserved
// ====================================================================
class GUITabButton extends GUIButton
Native;
var bool bForceFlash; // Lets you get a tab to flash even if its not focused
var bool bActive; // Is this the active tab
var GUITabPanel MyPanel; // This is the panel I control
cpptext
{
UBOOL MousePressed(UBOOL IsRepeat); // The Mouse was pressed
UBOOL MouseReleased(); // The Mouse was released
void Draw(UCanvas* Canvas);
UGUIComponent* UnderCursor(FLOAT MouseX, FLOAT MouseY);
}
event SetFocus(GUIComponent Who)
{
}
function bool ChangeActiveState(bool IsActive, bool bFocusPanel)
{
if ( MyPanel == None)
return false;
if ( IsActive )
{
if ( !CanShowPanel() )
return false;
MyPanel.ShowPanel(true);
if ( bFocusPanel )
{
if ( !MyPanel.FocusFirst(None) )
{
MyPanel.ShowPanel(bActive);
return false;
}
bActive = true;
return true;
}
bActive = true;
return true;
}
MyPanel.ShowPanel(false);
bActive = false;
return true;
}
function bool CanShowPanel()
{
// Only return false if tabbutton is disabled, but allow it if only !bVisible
if ( MenuState == MSAT_Disabled || MyPanel == None )
return false;
return MyPanel.CanShowPanel();
}
defaultproperties
{
StyleName="TabButton"
bActive=false
bBoundToParent=True
bNeverFocus=true
WinHeight=0.075
OnClickSound=CS_Edit
FontScale=FNS_Medium
}