You've already forked lazarus-ccr
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6939 8e941d3f-bd1b-0410-a28a-d453659cc2b4
196 lines
5.1 KiB
ObjectPascal
196 lines
5.1 KiB
ObjectPascal
unit MainFrm;
|
|
|
|
{$MODE DELPHI}
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils, Classes, Graphics, Controls, Forms, StdCtrls, ComCtrls, ExtCtrls,
|
|
Dialogs, ImgList, ActnList,
|
|
JvXPCore, JvXPBar, JvXPContainer, JvExControls, JvComponent, JvXPCheckCtrls,
|
|
JvXPButtons;
|
|
|
|
resourcestring
|
|
SClickEvent =
|
|
' You clicked on the action "%s"...';
|
|
|
|
type
|
|
TProcControl = procedure (Control:TControl) of object;
|
|
TfrmMain = class(TForm)
|
|
acConnectAdministrator: TAction;
|
|
acConnectLocalServer: TAction;
|
|
acConnectRemoteServer: TAction;
|
|
aclWinXPBar: TActionList;
|
|
acSettingsDatabase: TAction;
|
|
acSettingsDownloads: TAction;
|
|
acSettingsStatistics: TAction;
|
|
acSettingsUsers: TAction;
|
|
acSynchronizeUnknown: TAction;
|
|
acSynchronizeWeb: TAction;
|
|
btnCollapseAll: TJvXPButton;
|
|
btnExpandAll: TJvXPButton;
|
|
cntDetails: TJvXPContainer;
|
|
cntWinXPBar: TJvXPContainer;
|
|
imlWinXPBar: TImageList;
|
|
lbWelcome: TLabel;
|
|
sbxWinXPBar: TScrollBox;
|
|
spltMain: TSplitter;
|
|
btnToogleEnableMode: TJvXPButton;
|
|
btnToggleVisibleMode: TJvXPButton;
|
|
ilOldButtons: TImageList;
|
|
chkGrouped: TJvXPCheckbox;
|
|
ilWhiteButtons: TImageList;
|
|
ilRedButtons: TImageList;
|
|
ilBlackButtons: TImageList;
|
|
acGettingStarted: TAction;
|
|
acHelp: TAction;
|
|
acHowDoI: TAction;
|
|
acCommonQuestions: TAction;
|
|
JvXPContainer1: TJvXPContainer;
|
|
dxWinXPBar4: TJvXPBar;
|
|
JvXPBar1: TJvXPBar;
|
|
dxWinXPBar3: TJvXPBar;
|
|
dxWinXPBar2: TJvXPBar;
|
|
dxWinXPBar1: TJvXPBar;
|
|
tvSelfView: TTreeView;
|
|
StatusBar1: TStatusBar;
|
|
ilMSN: TImageList;
|
|
ilMSN2: TImageList;
|
|
ilFB: TImageList;
|
|
procedure acConnectRemoteServerExecute(Sender: TObject);
|
|
procedure btnCollapseAllClick(Sender: TObject);
|
|
procedure btnExpandAllClick(Sender: TObject);
|
|
procedure btnToogleEnableModeClick(Sender: TObject);
|
|
procedure btnToggleVisibleModeClick(Sender: TObject);
|
|
procedure chkGroupedClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
procedure DoGrouped(Control:TControl);
|
|
procedure DoExpandAll(Control:TControl);
|
|
procedure DoCollapseAll(Control:TControl);
|
|
procedure DoEnableToggle(Control:TControl);
|
|
procedure DoVisibleToggle(Control:TControl);
|
|
procedure IterateControls(Proc:TProcControl);
|
|
procedure BuildStructure;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
frmMain: TfrmMain;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
procedure TfrmMain.FormCreate(Sender: TObject);
|
|
begin
|
|
cntDetails.Align := alClient;
|
|
BuildStructure;
|
|
end;
|
|
|
|
procedure TfrmMain.acConnectRemoteServerExecute(Sender: TObject);
|
|
begin
|
|
if Sender is TAction then
|
|
StatusBar1.Panels[0].Text := Format(SClickEvent, [TAction(Sender).Caption]);
|
|
if Sender is TJvXPBarItem then
|
|
StatusBar1.Panels[0].Text := Format(SClickEvent, [TJvXPBarItem(Sender).Caption]);
|
|
end;
|
|
|
|
procedure TfrmMain.btnCollapseAllClick(Sender: TObject);
|
|
begin
|
|
IterateControls(DoCollapseAll);
|
|
end;
|
|
|
|
procedure TfrmMain.btnExpandAllClick(Sender: TObject);
|
|
begin
|
|
IterateControls(DoExpandAll);
|
|
end;
|
|
|
|
procedure TfrmMain.btnToogleEnableModeClick(Sender: TObject);
|
|
begin
|
|
IterateControls(DoEnableToggle);
|
|
end;
|
|
|
|
procedure TfrmMain.btnToggleVisibleModeClick(Sender: TObject);
|
|
begin
|
|
IterateControls(DoVisibleToggle);
|
|
end;
|
|
|
|
procedure TfrmMain.chkGroupedClick(Sender: TObject);
|
|
begin
|
|
IterateControls(DoGrouped);
|
|
btnExpandAll.Enabled := not chkGrouped.Checked;
|
|
end;
|
|
|
|
procedure TfrmMain.DoGrouped(Control: TControl);
|
|
begin
|
|
if Control is TJvXPBar then
|
|
TJvXPBar(Control).Grouped := chkGrouped.Checked;
|
|
end;
|
|
|
|
procedure TfrmMain.DoExpandAll(Control: TControl);
|
|
begin
|
|
if Control is TJvXPBar then
|
|
TJvXPBar(COntrol).Collapsed := false;
|
|
end;
|
|
|
|
procedure TfrmMain.IterateControls(Proc: TProcControl);
|
|
var i:integer;
|
|
begin
|
|
for i := 0 to ComponentCount - 1 do
|
|
if Components[i] is TControl then
|
|
Proc(TControl(Components[i]));
|
|
end;
|
|
|
|
procedure TfrmMain.DoCollapseAll(Control: TControl);
|
|
begin
|
|
if Control is TJvXPBar then
|
|
TJvXPBar(COntrol).Collapsed := true;
|
|
end;
|
|
|
|
procedure TfrmMain.DoEnableToggle(Control: TControl);
|
|
var i:integer;
|
|
begin
|
|
if Control is TJvXPBar then
|
|
for i := 0 to TJvXPBar(Control).Items.Count - 1 do
|
|
if Odd(i) then
|
|
TJvXPBar(Control).Items[i].Enabled := not TJvXPBar(Control).Items[i].Enabled;
|
|
end;
|
|
|
|
procedure TfrmMain.DoVisibleToggle(Control: TControl);
|
|
var i:integer;
|
|
begin
|
|
if Control is TJvXPBar then
|
|
for i := 0 to TJvXPBar(Control).Items.Count - 1 do
|
|
if Odd(i) then
|
|
TJvXPBar(Control).Items[i].Visible := not TJvXPBar(Control).Items[i].Visible;
|
|
end;
|
|
|
|
procedure TfrmMain.BuildStructure;
|
|
var
|
|
i,j:integer;
|
|
Parent, Child:TTreeNode;
|
|
ABar:TJvXPBar;
|
|
begin
|
|
tvSelfView.Items.Clear;
|
|
for i := ComponentCount - 1 downto 0 do
|
|
if Components[i] is TJvXPBar then
|
|
begin
|
|
ABar := TJvXPBar(Components[i]);
|
|
Parent := tvSelfView.Items.AddChild(nil,ABar.Caption);
|
|
if ABar.ControlCount = 0 then
|
|
for j := 0 to ABar.Items.Count - 1 do
|
|
begin
|
|
Child := tvSelfView.Items.AddChild(Parent,ABar.Items[j].Caption);
|
|
Child.ImageIndex := ABar.Items[j].ImageIndex;
|
|
Child.SelectedIndex := Child.ImageIndex;
|
|
end;
|
|
end;
|
|
tvSelfView.FullExpand;
|
|
end;
|
|
|
|
end.
|
|
|