Varela_PuntosVenta/Source/Cliente/uMainMenuController.pas
2008-04-15 09:28:58 +00:00

97 lines
2.2 KiB
ObjectPascal

unit uMainMenuController;
interface
uses
SysUtils, Menus, Controls, Classes, uHostManager,
PngImageList, uPantallaPrincipal;
type
TMainMenuController = class(TObject)
private
FMainMenu: TMainMenu;
FMainForm: IMainForm;
FLargeImages: TImageList;
FSmallImages: TImageList;
procedure SetMainMenu(const Value: TMainMenu);
public
procedure RegisterModule(AModuleInfo : TModuleInfo);
procedure SortMenuByTag;
procedure InitMainMenu;
property MainMenu : TMainMenu read FMainMenu write SetMainMenu;
property SmallImages: TImageList read FSmallImages write FSmallImages;
property LargeImages: TImageList read FLargeImages write FLargeImages;
property MainForm : IMainForm read FMainForm write FMainForm;
end;
procedure CopyImages(const SrcList: TPngImageList; var DstList:
TPngImageList; out Index, Count: Integer);
var
MainMenuController : TMainMenuController;
implementation
uses
Dialogs, PNGImage, uModuleController, uAdminPV_App,
uMenuUtils;
{ TMainMenuController }
procedure CopyImages(const SrcList: TPngImageList; var DstList:
TPngImageList; out Index, Count: Integer);
begin
Index := -1;
Count := 0;
if not Assigned(SrcList) or not Assigned(DstList) then
Exit;
DstList.BeginUpdate;
try
Index := DstList.Count;
DstList.AddImages(SrcList);
Count := SrcList.Count;
finally
DstList.EndUpdate;
end;
end;
procedure TMainMenuController.InitMainMenu;
begin
// Nada
end;
procedure TMainMenuController.RegisterModule(AModuleInfo: TModuleInfo);
var
AModule: TModuleController;
AIndex: Integer;
ACount: Integer;
begin
AModule := AModuleInfo.Module;
if Assigned(AModule.ModuleMenu) then
begin
CopyImages(TPngImageList(AModule.SmallImages), TPngImageList(FSmallImages), AIndex, ACount);
CopyImages(TPngImageList(AModule.LargeImages), TPngImageList(FLargeImages), AIndex, ACount);
MergeMenus(AModule.ModuleMenu, FMainMenu, AIndex);
end;
end;
procedure TMainMenuController.SetMainMenu(const Value: TMainMenu);
begin
FMainMenu := Value;
end;
procedure TMainMenuController.SortMenuByTag;
begin
uMenuUtils.SortMenuByTag(FMainMenu);
end;
end.