MainUnit.pas 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. unit MainUnit;
  2. {$mode ObjFPC}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, Fresnel.Forms, Fresnel.Controls, Fresnel.Events,
  6. FCL.Events, Fresnel.DemoRadioButton, Fresnel.DemoCheckbox;
  7. type
  8. { TMainForm }
  9. TMainForm = class(TFresnelForm)
  10. Body1: TBody;
  11. ScrollDiv1: TDiv;
  12. Div2: TDiv;
  13. Label1: TLabel;
  14. Label2: TLabel;
  15. Label3: TLabel;
  16. OptionsDiv: TDiv;
  17. OverflowXDiv: TDiv;
  18. OverflowXLabel: TLabel;
  19. OverflowXVisible: TDemoRadioButton;
  20. OverflowXHidden: TDemoRadioButton;
  21. OverflowXClip: TDemoRadioButton;
  22. OverflowXScroll: TDemoRadioButton;
  23. OverflowXAuto: TDemoRadioButton;
  24. OverflowYDiv: TDiv;
  25. OverflowYLabel: TLabel;
  26. OverflowYVisible: TDemoRadioButton;
  27. OverflowYHidden: TDemoRadioButton;
  28. OverflowYClip: TDemoRadioButton;
  29. OverflowYScroll: TDemoRadioButton;
  30. OverflowYAuto: TDemoRadioButton;
  31. AutoHideCheckBox: TDemoCheckBox;
  32. OverlayCheckBox: TDemoCheckBox;
  33. ThinCheckBox: TDemoCheckBox;
  34. RTLCheckBox: TDemoCheckBox;
  35. BothEdgesCheckBox: TDemoCheckBox;
  36. procedure MainFormCreate(Sender: TObject);
  37. procedure OnAutoHideClicked(Event : TAbstractEvent);
  38. procedure OnOverflowXClicked(Event : TAbstractEvent);
  39. procedure OnOverflowYClicked(Event : TAbstractEvent);
  40. procedure OnOverlayClicked(Event : TAbstractEvent);
  41. procedure OnThinClicked(Event : TAbstractEvent);
  42. procedure OnRTLClicked(Event : TAbstractEvent);
  43. procedure OnBothEdgesClicked(Event : TAbstractEvent);
  44. private
  45. public
  46. procedure ApplyScrollbarGutter;
  47. end;
  48. var
  49. MainForm: TMainForm;
  50. implementation
  51. {$R *.lfm}
  52. { TMainForm }
  53. procedure TMainForm.MainFormCreate(Sender: TObject);
  54. begin
  55. Label1.Caption:='Fresnel is a visual component library based on CSS and custom drawn components.';
  56. ScrollDiv1.Style:='overflow: auto; width: 200px; height: 50px;';
  57. OverflowXAuto.Checked:=true;
  58. OverflowYAuto.Checked:=true;
  59. OverlayCheckBox.Checked:=ScrollbarsOverlay;
  60. AutoHideCheckBox.Checked:=ScrollbarsAutoHide;
  61. // todo: step buttons
  62. // todo: stable
  63. // todo: scrollbar-color: red #f004
  64. end;
  65. procedure TMainForm.OnAutoHideClicked(Event: TAbstractEvent);
  66. begin
  67. ScrollbarsAutoHide:=AutoHideCheckBox.Checked;
  68. end;
  69. procedure TMainForm.OnOverflowXClicked(Event: TAbstractEvent);
  70. var
  71. El: TDemoRadioButton;
  72. begin
  73. El:=Event.Sender as TDemoRadioButton;
  74. //writeln('TMainForm.OnOverflowXClicked ',El.Caption);
  75. ScrollDiv1.SetStyleAttr('overflow-x',El.Caption);
  76. end;
  77. procedure TMainForm.OnOverflowYClicked(Event: TAbstractEvent);
  78. var
  79. El: TDemoRadioButton;
  80. begin
  81. El:=Event.Sender as TDemoRadioButton;
  82. //writeln('TMainForm.OnOverflowYClicked ',El.Caption);
  83. ScrollDiv1.SetStyleAttr('overflow-y',El.Caption);
  84. end;
  85. procedure TMainForm.OnOverlayClicked(Event: TAbstractEvent);
  86. begin
  87. ScrollbarsOverlay:=OverlayCheckBox.Checked;
  88. end;
  89. procedure TMainForm.OnThinClicked(Event: TAbstractEvent);
  90. begin
  91. if ThinCheckBox.Checked then
  92. ScrollDiv1.SetStyleAttr('scrollbar-width','thin')
  93. else
  94. ScrollDiv1.SetStyleAttr('scrollbar-width','');
  95. end;
  96. procedure TMainForm.OnRTLClicked(Event: TAbstractEvent);
  97. begin
  98. if RTLCheckBox.Checked then
  99. ScrollDiv1.SetStyleAttr('direction','rtl')
  100. else
  101. ScrollDiv1.SetStyleAttr('direction','');
  102. end;
  103. procedure TMainForm.OnBothEdgesClicked(Event: TAbstractEvent);
  104. begin
  105. ApplyScrollbarGutter;
  106. end;
  107. procedure TMainForm.ApplyScrollbarGutter;
  108. var
  109. s: String;
  110. begin
  111. s:='';
  112. if BothEdgesCheckBox.Checked then
  113. s:=s+' both-edges';
  114. ScrollDiv1.SetStyleAttr('scrollbar-gutter',s);
  115. end;
  116. end.