Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.8 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #ifndef DOD_MOUSE_OVER_BUTTON_H
  8. #define DOD_MOUSE_OVER_BUTTON_H
  9. #include "dodbutton.h"
  10. #include "mouseoverpanelbutton.h"
  11. template <class T>
  12. class CDODMouseOverButton : public MouseOverButton<T>, public CDODButtonShape
  13. {
  14. private:
  15. //DECLARE_CLASS_SIMPLE( CDODMouseOverButton, MouseOverButton );
  16. public:
  17. CDODMouseOverButton(vgui::Panel *parent, const char *panelName, T *templatePanel ) :
  18. MouseOverButton<T>( parent, panelName, templatePanel )
  19. {
  20. }
  21. protected:
  22. virtual void PaintBackground();
  23. virtual void PaintBorder();
  24. public:
  25. virtual void ShowPage( void );
  26. virtual void HidePage( void );
  27. };
  28. //===============================================
  29. // CDODMouseOverButton - shaped mouseover button
  30. //===============================================
  31. template <class T>
  32. void CDODMouseOverButton<T>::PaintBackground()
  33. {
  34. int wide, tall;
  35. this->GetSize(wide,tall);
  36. DrawShapedBackground( 0, 0, wide, tall, this->GetBgColor() );
  37. }
  38. template <class T>
  39. void CDODMouseOverButton<T>::PaintBorder()
  40. {
  41. int wide, tall;
  42. this->GetSize(wide,tall);
  43. DrawShapedBorder( 0, 0, wide, tall, this->GetFgColor() );
  44. }
  45. template <class T>
  46. void CDODMouseOverButton<T>::ShowPage( void )
  47. {
  48. MouseOverButton<T>::ShowPage();
  49. // send message to parent that we triggered something
  50. this->PostActionSignal( new KeyValues("ShowPage", "page", this->GetName() ) );
  51. }
  52. template <class T>
  53. void CDODMouseOverButton<T>::HidePage( void )
  54. {
  55. MouseOverButton<T>::HidePage();
  56. // send message to parent that we triggered something
  57. this->PostActionSignal( new KeyValues("ShowPage", "page", this->GetName() ) );
  58. }
  59. #endif // DOD_MOUSE_OVER_BUTTON_H