79 lines
1.7 KiB
Ucode
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
|
|
}
|