tabber.c 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // -----------------------------------------------------------
  2. class Tabber : ScriptedWidgetEventHandler
  3. {
  4. Widget ButtonsPanel;
  5. Widget ContentPanel;
  6. reference int SelectedTab;
  7. // -----------------------------------------------------------
  8. void OnWidgetScriptInit(Widget w)
  9. {
  10. w.SetHandler(this);
  11. SelectTab(SelectedTab);
  12. }
  13. // -----------------------------------------------------------
  14. override bool OnClick(Widget w, int x, int y, int button)
  15. {
  16. if (w && w.GetParent() == ButtonsPanel)
  17. {
  18. SelectedTab = 0;
  19. Widget iw = ButtonsPanel.GetChildren();
  20. while(iw)
  21. {
  22. if (iw == w) break;
  23. SelectedTab++;
  24. iw = iw.GetSibling();
  25. }
  26. SelectTab(SelectedTab);
  27. }
  28. return false;
  29. }
  30. // -----------------------------------------------------------
  31. protected void SelectTab(int index)
  32. {
  33. Print(index);
  34. int n = 0;
  35. Widget w = ContentPanel.GetChildren();
  36. while(w)
  37. {
  38. if (n == index)
  39. {
  40. w.Show(true);
  41. }
  42. else
  43. {
  44. w.Show(false);
  45. }
  46. n++;
  47. w = w.GetSibling();
  48. }
  49. }
  50. };