header.c 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. class Header: LayoutHolder
  2. {
  3. protected int m_DefaultColor;
  4. protected int m_DefaultFontSize;
  5. protected EntityAI m_Entity;
  6. protected Widget m_CollapseButton;
  7. protected Widget m_UpArrowButton;
  8. protected Widget m_DownArrowButton;
  9. protected TextWidget m_HeaderText;
  10. void Header( LayoutHolder parent, string function_name )
  11. {
  12. m_CollapseButton = GetMainWidget().FindAnyWidget( "collapse_button" );
  13. m_UpArrowButton = GetMainWidget().FindAnyWidget( "opened" );
  14. m_DownArrowButton = GetMainWidget().FindAnyWidget( "closed" );
  15. #ifdef PLATFORM_CONSOLE
  16. m_CollapseButton.Show( false );
  17. #else
  18. WidgetEventHandler.GetInstance().RegisterOnMouseButtonDown( m_CollapseButton, m_Parent, function_name );
  19. WidgetEventHandler.GetInstance().RegisterOnDropReceived( m_CollapseButton, m_Parent, "OnDropReceivedFromHeader" );
  20. #endif
  21. WidgetEventHandler.GetInstance().RegisterOnDropReceived( GetMainWidget(), m_Parent, "OnDropReceivedFromHeader" );
  22. WidgetEventHandler.GetInstance().RegisterOnDraggingOver( GetMainWidget(), this, "DraggingOverHeader" );
  23. m_HeaderText = TextWidget.Cast( GetMainWidget().FindAnyWidget( "TextWidget0" ) );
  24. m_DefaultColor = GetRootWidget().GetColor();
  25. }
  26. void SetName( string name )
  27. {
  28. name.ToUpper();
  29. m_HeaderText.SetText( name );
  30. }
  31. void SetItemPreview( EntityAI entity_ai )
  32. {
  33. #ifndef PLATFORM_CONSOLE
  34. m_Entity = entity_ai;
  35. ItemPreviewWidget item_preview = ItemPreviewWidget.Cast( GetMainWidget().FindAnyWidget( "Render" ) );
  36. item_preview.SetItem(entity_ai);
  37. item_preview.SetView( entity_ai.GetViewIndex() );
  38. #endif
  39. }
  40. void DraggingOverHeader( Widget w, int x, int y, Widget receiver )
  41. {
  42. if ( w == null )
  43. return;
  44. Container parent_container = Container.Cast( m_Parent );
  45. parent_container.DraggingOverHeader( w, x, y, receiver );
  46. }
  47. void OnDropReceivedFromHeader( Widget w, int x, int y, Widget receiver )
  48. {
  49. Container parent_container = Container.Cast( m_Parent );
  50. parent_container.OnDropReceivedFromHeader( w, x, y, receiver );
  51. }
  52. override void SetActive( bool active )
  53. {
  54. super.SetActive( active );
  55. if ( active )
  56. GetMainWidget().SetColor( ARGBF( 1, 1, 0, 0 ) );
  57. else
  58. GetMainWidget().SetColor( m_DefaultColor );
  59. }
  60. void ShowCollapseButton(bool state)
  61. {
  62. m_CollapseButton.Show(state);
  63. }
  64. }