class Header: LayoutHolder { protected int m_DefaultColor; protected int m_DefaultFontSize; protected EntityAI m_Entity; protected Widget m_CollapseButton; protected Widget m_UpArrowButton; protected Widget m_DownArrowButton; protected TextWidget m_HeaderText; void Header( LayoutHolder parent, string function_name ) { m_CollapseButton = GetMainWidget().FindAnyWidget( "collapse_button" ); m_UpArrowButton = GetMainWidget().FindAnyWidget( "opened" ); m_DownArrowButton = GetMainWidget().FindAnyWidget( "closed" ); #ifdef PLATFORM_CONSOLE m_CollapseButton.Show( false ); #else WidgetEventHandler.GetInstance().RegisterOnMouseButtonDown( m_CollapseButton, m_Parent, function_name ); WidgetEventHandler.GetInstance().RegisterOnDropReceived( m_CollapseButton, m_Parent, "OnDropReceivedFromHeader" ); #endif WidgetEventHandler.GetInstance().RegisterOnDropReceived( GetMainWidget(), m_Parent, "OnDropReceivedFromHeader" ); WidgetEventHandler.GetInstance().RegisterOnDraggingOver( GetMainWidget(), this, "DraggingOverHeader" ); m_HeaderText = TextWidget.Cast( GetMainWidget().FindAnyWidget( "TextWidget0" ) ); m_DefaultColor = GetRootWidget().GetColor(); } void SetName( string name ) { name.ToUpper(); m_HeaderText.SetText( name ); } void SetItemPreview( EntityAI entity_ai ) { #ifndef PLATFORM_CONSOLE m_Entity = entity_ai; ItemPreviewWidget item_preview = ItemPreviewWidget.Cast( GetMainWidget().FindAnyWidget( "Render" ) ); item_preview.SetItem(entity_ai); item_preview.SetView( entity_ai.GetViewIndex() ); #endif } void DraggingOverHeader( Widget w, int x, int y, Widget receiver ) { if ( w == null ) return; Container parent_container = Container.Cast( m_Parent ); parent_container.DraggingOverHeader( w, x, y, receiver ); } void OnDropReceivedFromHeader( Widget w, int x, int y, Widget receiver ) { Container parent_container = Container.Cast( m_Parent ); parent_container.OnDropReceivedFromHeader( w, x, y, receiver ); } override void SetActive( bool active ) { super.SetActive( active ); if ( active ) GetMainWidget().SetColor( ARGBF( 1, 1, 0, 0 ) ); else GetMainWidget().SetColor( m_DefaultColor ); } void ShowCollapseButton(bool state) { m_CollapseButton.Show(state); } }