MainUnit.pas 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  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. HaveButtonsCheckBox: TDemoCheckBox;
  34. RTLCheckBox: TDemoCheckBox;
  35. ThinCheckBox: TDemoCheckBox;
  36. BothEdgesCheckBox: TDemoCheckBox;
  37. ColorCheckBox: TDemoCheckBox;
  38. procedure MainFormCreate(Sender: TObject);
  39. procedure OnAutoHideClicked({%H-}Event : TAbstractEvent);
  40. procedure OnOverflowXClicked(Event : TAbstractEvent);
  41. procedure OnOverflowYClicked(Event : TAbstractEvent);
  42. procedure OnOverlayClicked({%H-}Event : TAbstractEvent);
  43. procedure OnHaveButtonsClicked({%H-}Event : TAbstractEvent);
  44. procedure OnRTLClicked({%H-}Event : TAbstractEvent);
  45. procedure OnThinClicked({%H-}Event : TAbstractEvent);
  46. procedure OnBothEdgesClicked({%H-}Event : TAbstractEvent);
  47. procedure OnColorClicked({%H-}Event : TAbstractEvent);
  48. private
  49. public
  50. procedure ApplyScrollbarGutter;
  51. end;
  52. var
  53. MainForm: TMainForm;
  54. implementation
  55. {$R *.lfm}
  56. { TMainForm }
  57. procedure TMainForm.MainFormCreate(Sender: TObject);
  58. begin
  59. Label1.Caption:='Fresnel is a visual component library based on CSS and custom drawn components.';
  60. ScrollDiv1.Style:='overflow: auto; width: 200px; height: 50px;';
  61. OverflowXAuto.Checked:=true;
  62. OverflowYAuto.Checked:=true;
  63. ScrollbarsHaveButtons:=true;
  64. AutoHideCheckBox.Checked:=ScrollbarsAutoHide;
  65. HaveButtonsCheckBox.Checked:=ScrollbarsHaveButtons;
  66. OverlayCheckBox.Checked:=ScrollbarsOverlay;
  67. // todo: stable
  68. end;
  69. procedure TMainForm.OnAutoHideClicked(Event: TAbstractEvent);
  70. begin
  71. ScrollbarsAutoHide:=AutoHideCheckBox.Checked;
  72. end;
  73. procedure TMainForm.OnOverflowXClicked(Event: TAbstractEvent);
  74. var
  75. El: TDemoRadioButton;
  76. begin
  77. El:=Event.Sender as TDemoRadioButton;
  78. //writeln('TMainForm.OnOverflowXClicked ',El.Caption);
  79. ScrollDiv1.SetStyleAttr('overflow-x',El.Caption);
  80. end;
  81. procedure TMainForm.OnOverflowYClicked(Event: TAbstractEvent);
  82. var
  83. El: TDemoRadioButton;
  84. begin
  85. El:=Event.Sender as TDemoRadioButton;
  86. //writeln('TMainForm.OnOverflowYClicked ',El.Caption);
  87. ScrollDiv1.SetStyleAttr('overflow-y',El.Caption);
  88. end;
  89. procedure TMainForm.OnOverlayClicked(Event: TAbstractEvent);
  90. begin
  91. ScrollbarsOverlay:=OverlayCheckBox.Checked;
  92. end;
  93. procedure TMainForm.OnHaveButtonsClicked(Event: TAbstractEvent);
  94. begin
  95. ScrollbarsHaveButtons:=HaveButtonsCheckBox.Checked;
  96. end;
  97. procedure TMainForm.OnThinClicked(Event: TAbstractEvent);
  98. begin
  99. if ThinCheckBox.Checked then
  100. ScrollDiv1.SetStyleAttr('scrollbar-width','thin')
  101. else
  102. ScrollDiv1.SetStyleAttr('scrollbar-width','');
  103. end;
  104. procedure TMainForm.OnRTLClicked(Event: TAbstractEvent);
  105. begin
  106. if RTLCheckBox.Checked then
  107. ScrollDiv1.SetStyleAttr('direction','rtl')
  108. else
  109. ScrollDiv1.SetStyleAttr('direction','');
  110. end;
  111. procedure TMainForm.OnBothEdgesClicked(Event: TAbstractEvent);
  112. begin
  113. ApplyScrollbarGutter;
  114. end;
  115. procedure TMainForm.OnColorClicked(Event: TAbstractEvent);
  116. begin
  117. if ColorCheckBox.Checked then
  118. ScrollDiv1.SetStyleAttr('scrollbar-color','red #f006')
  119. else
  120. ScrollDiv1.SetStyleAttr('scrollbar-color','');
  121. end;
  122. procedure TMainForm.ApplyScrollbarGutter;
  123. var
  124. s: String;
  125. begin
  126. s:='';
  127. if BothEdgesCheckBox.Checked then
  128. s:=s+' both-edges';
  129. ScrollDiv1.SetStyleAttr('scrollbar-gutter',s);
  130. end;
  131. end.