You've already forked lazarus-ccr
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7139 8e941d3f-bd1b-0410-a28a-d453659cc2b4
158 lines
3.9 KiB
ObjectPascal
158 lines
3.9 KiB
ObjectPascal
unit tfSettings;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ButtonPanel, StdCtrls,
|
|
ExtCtrls, EditBtn, JvTFUtils, JvTFDays;
|
|
|
|
type
|
|
TGlobalSettings = record
|
|
StartToday: Boolean;
|
|
StartDate: TDate;
|
|
Hr2400: Boolean; // 24 hour or 12 hour AM/PM format
|
|
FirstDayOfWeek: TTFDayOfWeek;
|
|
PrimeTimeStart: TTime;
|
|
PrimeTimeEnd: TTime;
|
|
PrimeTimeColor: TColor;
|
|
IconSet: Integer;
|
|
end;
|
|
|
|
var
|
|
GlobalSettings: TGlobalSettings = (
|
|
StartToday: true;
|
|
StartDate: 0;
|
|
Hr2400: false;
|
|
FirstDayOfWeek: dowSunday;
|
|
PrimeTimeStart: 8 * ONE_HOUR;
|
|
PrimeTimeEnd: 17 * ONE_HOUR;
|
|
PrimeTimeColor: $00C4FFFF;
|
|
IconSet: 0
|
|
);
|
|
|
|
type
|
|
{ TSettingsForm }
|
|
|
|
TSettingsForm = class(TForm)
|
|
Bevel1: TBevel;
|
|
Bevel2: TBevel;
|
|
Bevel3: TBevel;
|
|
ButtonPanel1: TButtonPanel;
|
|
cbTimeFormat: TComboBox;
|
|
cbFirstDayOfWeek: TComboBox;
|
|
clbPrimeTimeColor: TColorButton;
|
|
cbIconSet: TComboBox;
|
|
deStartDate: TDateEdit;
|
|
Label1: TLabel;
|
|
lblIconSet: TLabel;
|
|
lblPrimeTimeStart: TLabel;
|
|
lblPrimeTimeEnd: TLabel;
|
|
lblFirstDayOfWeek: TLabel;
|
|
lblTimeFormat: TLabel;
|
|
Panel1: TPanel;
|
|
edPrimeTimeStart: TTimeEdit;
|
|
edPrimeTimeEnd: TTimeEdit;
|
|
StartDatePanel: TPanel;
|
|
rbStartDate: TRadioButton;
|
|
rbStartToday: TRadioButton;
|
|
procedure deStartDateAcceptDate(Sender: TObject; var ADate: TDateTime;
|
|
var AcceptDate: Boolean);
|
|
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure OKButtonClick(Sender: TObject);
|
|
private
|
|
FOKPressed: Boolean;
|
|
procedure ControlsToSettings;
|
|
procedure SettingsToControls;
|
|
|
|
end;
|
|
|
|
var
|
|
SettingsForm: TSettingsForm;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
procedure TSettingsForm.ControlsToSettings;
|
|
begin
|
|
GlobalSettings.StartToday := rbStartToday.Checked;
|
|
if not GlobalSettings.StartToday and (GlobalSettings.StartDate = Date) then
|
|
GlobalSettings.StartDate := 0
|
|
else
|
|
GlobalSettings.StartDate := deStartDate.Date;
|
|
|
|
GlobalSettings.Hr2400 := cbTimeFormat.ItemIndex = 0;
|
|
GlobalSettings.FirstDayOfWeek := TTFDayOfWeek(cbFirstDayOfWeek.ItemIndex);
|
|
GlobalSettings.PrimeTimeStart := frac(edPrimeTimeStart.Time);
|
|
GlobalSettings.PrimeTimeEnd := frac(edPrimeTimeEnd.Time);
|
|
GlobalSettings.PrimeTimeColor := clbPrimeTimeColor.ButtonColor;
|
|
|
|
GlobalSettings.IconSet := cbIconSet.ItemIndex;
|
|
end;
|
|
|
|
procedure TSettingsForm.deStartDateAcceptDate(Sender: TObject;
|
|
var ADate: TDateTime; var AcceptDate: Boolean);
|
|
begin
|
|
rbStartDate.Checked := true;
|
|
end;
|
|
|
|
procedure TSettingsForm.SettingsToControls;
|
|
begin
|
|
if GlobalSettings.StartToday then
|
|
rbStartToday.Checked := true
|
|
else
|
|
rbStartDate.Checked := true;
|
|
if GlobalSettings.StartDate = 0 then
|
|
deStartDate.Date := Date()
|
|
else
|
|
deStartDate.Date := GlobalSettings.StartDate;
|
|
|
|
cbTimeFormat.ItemIndex := ord(not GlobalSettings.Hr2400);
|
|
cbFirstDayOfWeek.ItemIndex := ord(GlobalSettings.FirstDayOfWeek);
|
|
edPrimeTimeStart.Time := GlobalSettings.PrimeTimeStart;
|
|
edPrimeTimeEnd.Time := GlobalSettings.PrimeTimeEnd;
|
|
clbPrimeTimeColor.ButtonColor := GlobalSettings.PrimeTimeColor;
|
|
|
|
cbIconSet.ItemIndex := GlobalSettings.IconSet;
|
|
end;
|
|
|
|
procedure TSettingsForm.FormClose(Sender: TObject;
|
|
var CloseAction: TCloseAction);
|
|
begin
|
|
if FOKPressed then
|
|
ControlsToSettings;
|
|
end;
|
|
|
|
procedure TSettingsForm.FormCreate(Sender: TObject);
|
|
var
|
|
i: Integer;
|
|
begin
|
|
cbFirstDayOfWeek.Items.BeginUpdate;
|
|
try
|
|
cbFirstDayOfWeek.Clear;
|
|
for i:=1 to 7 do
|
|
cbFirstDayOfWeek.Items.Add(FormatSettings.LongDayNames[i]);
|
|
finally
|
|
cbFirstDayOfWeek.Items.EndUpdate;
|
|
end;
|
|
end;
|
|
|
|
procedure TSettingsForm.FormShow(Sender: TObject);
|
|
begin
|
|
FOKPressed := false;
|
|
SettingsToControls;
|
|
end;
|
|
|
|
procedure TSettingsForm.OKButtonClick(Sender: TObject);
|
|
begin
|
|
FOKPressed := true;
|
|
end;
|
|
|
|
|
|
end.
|
|
|