123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- unit MainUnit;
- {$mode ObjFPC}{$H+}
- interface
- uses
- Classes, SysUtils, Fresnel.Forms, Fresnel.Controls, Fresnel.Events,
- FCL.Events, Fresnel.DemoRadioButton, Fresnel.DemoCheckbox;
- type
- { TMainForm }
- TMainForm = class(TFresnelForm)
- Body1: TBody;
- ScrollDiv1: TDiv;
- Div2: TDiv;
- Label1: TLabel;
- Label2: TLabel;
- Label3: TLabel;
- OptionsDiv: TDiv;
- OverflowXDiv: TDiv;
- OverflowXLabel: TLabel;
- OverflowXVisible: TDemoRadioButton;
- OverflowXHidden: TDemoRadioButton;
- OverflowXClip: TDemoRadioButton;
- OverflowXScroll: TDemoRadioButton;
- OverflowXAuto: TDemoRadioButton;
- OverflowYDiv: TDiv;
- OverflowYLabel: TLabel;
- OverflowYVisible: TDemoRadioButton;
- OverflowYHidden: TDemoRadioButton;
- OverflowYClip: TDemoRadioButton;
- OverflowYScroll: TDemoRadioButton;
- OverflowYAuto: TDemoRadioButton;
- AutoHideCheckBox: TDemoCheckBox;
- OverlayCheckBox: TDemoCheckBox;
- HaveButtonsCheckBox: TDemoCheckBox;
- RTLCheckBox: TDemoCheckBox;
- ThinCheckBox: TDemoCheckBox;
- BothEdgesCheckBox: TDemoCheckBox;
- ColorCheckBox: TDemoCheckBox;
- procedure MainFormCreate(Sender: TObject);
- procedure OnAutoHideClicked({%H-}Event : TAbstractEvent);
- procedure OnOverflowXClicked(Event : TAbstractEvent);
- procedure OnOverflowYClicked(Event : TAbstractEvent);
- procedure OnOverlayClicked({%H-}Event : TAbstractEvent);
- procedure OnHaveButtonsClicked({%H-}Event : TAbstractEvent);
- procedure OnRTLClicked({%H-}Event : TAbstractEvent);
- procedure OnThinClicked({%H-}Event : TAbstractEvent);
- procedure OnBothEdgesClicked({%H-}Event : TAbstractEvent);
- procedure OnColorClicked({%H-}Event : TAbstractEvent);
- private
- public
- procedure ApplyScrollbarGutter;
- end;
- var
- MainForm: TMainForm;
- implementation
- {$R *.lfm}
- { TMainForm }
- procedure TMainForm.MainFormCreate(Sender: TObject);
- begin
- Label1.Caption:='Fresnel is a visual component library based on CSS and custom drawn components.';
- ScrollDiv1.Style:='overflow: auto; width: 200px; height: 50px;';
- OverflowXAuto.Checked:=true;
- OverflowYAuto.Checked:=true;
- ScrollbarsHaveButtons:=true;
- AutoHideCheckBox.Checked:=ScrollbarsAutoHide;
- HaveButtonsCheckBox.Checked:=ScrollbarsHaveButtons;
- OverlayCheckBox.Checked:=ScrollbarsOverlay;
- // todo: stable
- end;
- procedure TMainForm.OnAutoHideClicked(Event: TAbstractEvent);
- begin
- ScrollbarsAutoHide:=AutoHideCheckBox.Checked;
- end;
- procedure TMainForm.OnOverflowXClicked(Event: TAbstractEvent);
- var
- El: TDemoRadioButton;
- begin
- El:=Event.Sender as TDemoRadioButton;
- //writeln('TMainForm.OnOverflowXClicked ',El.Caption);
- ScrollDiv1.SetStyleAttr('overflow-x',El.Caption);
- end;
- procedure TMainForm.OnOverflowYClicked(Event: TAbstractEvent);
- var
- El: TDemoRadioButton;
- begin
- El:=Event.Sender as TDemoRadioButton;
- //writeln('TMainForm.OnOverflowYClicked ',El.Caption);
- ScrollDiv1.SetStyleAttr('overflow-y',El.Caption);
- end;
- procedure TMainForm.OnOverlayClicked(Event: TAbstractEvent);
- begin
- ScrollbarsOverlay:=OverlayCheckBox.Checked;
- end;
- procedure TMainForm.OnHaveButtonsClicked(Event: TAbstractEvent);
- begin
- ScrollbarsHaveButtons:=HaveButtonsCheckBox.Checked;
- end;
- procedure TMainForm.OnThinClicked(Event: TAbstractEvent);
- begin
- if ThinCheckBox.Checked then
- ScrollDiv1.SetStyleAttr('scrollbar-width','thin')
- else
- ScrollDiv1.SetStyleAttr('scrollbar-width','');
- end;
- procedure TMainForm.OnRTLClicked(Event: TAbstractEvent);
- begin
- if RTLCheckBox.Checked then
- ScrollDiv1.SetStyleAttr('direction','rtl')
- else
- ScrollDiv1.SetStyleAttr('direction','');
- end;
- procedure TMainForm.OnBothEdgesClicked(Event: TAbstractEvent);
- begin
- ApplyScrollbarGutter;
- end;
- procedure TMainForm.OnColorClicked(Event: TAbstractEvent);
- begin
- if ColorCheckBox.Checked then
- ScrollDiv1.SetStyleAttr('scrollbar-color','red #f006')
- else
- ScrollDiv1.SetStyleAttr('scrollbar-color','');
- end;
- procedure TMainForm.ApplyScrollbarGutter;
- var
- s: String;
- begin
- s:='';
- if BothEdgesCheckBox.Checked then
- s:=s+' both-edges';
- ScrollDiv1.SetStyleAttr('scrollbar-gutter',s);
- end;
- end.
|