bannerhandlerbase.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. class BannerHandlerBase extends ScriptedWidgetEventHandler
  2. {
  3. protected Widget m_Root;
  4. protected Widget m_Parent; //frame
  5. protected Widget m_BannerBody;
  6. protected Widget m_BannerWedge;
  7. protected TextWidget m_BannerText;
  8. void BannerHandlerBase(Widget parent)
  9. {
  10. m_Parent = parent;
  11. m_Root = GetGame().GetWorkspace().CreateWidgets("gui/layouts/new_ui/dlc_panels/BannerTemplate.layout", m_Parent);
  12. m_Root.SetHandler(this);
  13. m_BannerBody = m_Root.FindAnyWidget("BadgeBody");
  14. m_BannerWedge = m_Root.FindAnyWidget("BadgeWedge");
  15. m_BannerText = TextWidget.Cast(m_Root.FindAnyWidget("BadgeText"));
  16. m_BannerBody.SetAlpha(1.0);
  17. m_BannerWedge.SetAlpha(1.0);
  18. }
  19. void SetBannerColor(int argb)
  20. {
  21. m_BannerBody.SetColor(argb);
  22. m_BannerWedge.SetColor(argb);
  23. }
  24. void SetBannerText(string text)
  25. {
  26. m_BannerText.SetText(text);
  27. }
  28. override bool OnUpdate(Widget w)
  29. {
  30. if (w == m_BannerText)
  31. {
  32. float w0,h0,x0,y0;
  33. m_BannerText.GetScreenSize(w0,h0);
  34. float bannerBodyWidth = w0 + 20;
  35. m_BannerBody.SetScreenSize(bannerBodyWidth,h0);
  36. m_BannerBody.GetScreenPos(x0,y0);
  37. m_BannerWedge.GetScreenSize(w0,h0);
  38. m_BannerWedge.SetScreenPos(Math.Ceil(x0 - w0),y0);
  39. }
  40. return super.OnUpdate(w);
  41. }
  42. }