
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9326 8e941d3f-bd1b-0410-a28a-d453659cc2b4
109 lines
2.9 KiB
ObjectPascal
109 lines
2.9 KiB
ObjectPascal
unit ConfigFrame_with_Addons;
|
|
|
|
{$mode ObjFPC}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
|
mvDrawingEngine, mvDE_RGBGraphics, mvDE_BGRA, mvDE_LCL,
|
|
mvDLEFPC, mvDLEWin, mvDLESynapse,
|
|
ConfigFrame;
|
|
|
|
type
|
|
|
|
{ TCfgFrame_with_addons }
|
|
|
|
TCfgFrame_with_addons = class(TCfgFrame)
|
|
cbDownloadEngine: TComboBox;
|
|
cbDrawingEngine: TComboBox;
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
procedure cbDownloadEngineChange(Sender: TObject);
|
|
procedure cbDrawingEngineChange(Sender: TObject);
|
|
private
|
|
FRGBGraphicsDrawingEngine: TMvRGBGraphicsDrawingEngine;
|
|
FBGRADrawingEngine: TMvBGRADrawingEngine;
|
|
FLCLDrawingEngine: TMvLCLDrawingEngine;
|
|
FSynapseDownloadEngine: TMvDESynapse;
|
|
FFpHttpClientDownloadEngine: TMvDEFPC;
|
|
{$IFDEF MSWINDOWS}
|
|
FWinDownloadEngine: TMvDEWin;
|
|
{$ENDIF}
|
|
|
|
public
|
|
destructor Destroy; override;
|
|
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TCfgFrame_with_addons }
|
|
|
|
destructor TCfgFrame_with_addons.Destroy;
|
|
begin
|
|
FreeAndNil(FRGBGraphicsDrawingEngine);
|
|
FreeAndNil(FBGRADrawingEngine);
|
|
FreeAndNil(FSynapseDownloadEngine);
|
|
FreeAndNil(FFpHttpClientDownloadEngine);
|
|
{$IFDEF MSWINDOWS}
|
|
FreeAndNil(FWinDownloadEngine);
|
|
{$ENDIF}
|
|
inherited;
|
|
end;
|
|
|
|
procedure TCfgFrame_with_addons.cbDrawingEngineChange(Sender: TObject);
|
|
begin
|
|
case cbDrawingEngine.ItemIndex of
|
|
0: MapView.DrawingEngine := nil;
|
|
1: begin
|
|
if FRGBGraphicsDrawingEngine = nil then
|
|
FRGBGraphicsDrawingEngine := TMvRGBGraphicsDrawingEngine.Create(self);
|
|
MapView.DrawingEngine := FRGBGraphicsDrawingEngine;
|
|
end;
|
|
2: begin
|
|
if FBGRADrawingEngine = nil then
|
|
FBGRADrawingEngine := TMvBGRADrawingEngine.Create(self);
|
|
MapView.DrawingEngine := FBGRADrawingEngine;
|
|
end;
|
|
3: begin
|
|
if FLCLDrawingEngine = nil then
|
|
FLCLDrawingEngine := TMvLCLDrawingEngine.Create(self);
|
|
MapView.DrawingEngine := FLCLDrawingEngine;
|
|
end;
|
|
end;
|
|
DoUpdateLayers;
|
|
end;
|
|
|
|
procedure TCfgFrame_with_addons.cbDownloadEngineChange(Sender: TObject);
|
|
begin
|
|
case cbDownloadEngine.ItemIndex of
|
|
0: MapView.DownloadEngine := nil;
|
|
1: begin
|
|
if FSynapseDownloadEngine = nil then
|
|
FSynapseDownloadEngine := TMvDESynapse.Create(self);
|
|
MapView.DownloadEngine := FSynapseDownloadEngine;
|
|
end;
|
|
2: begin
|
|
if FFpHttpClientDownloadEngine = nil then
|
|
FFpHttpClientDownloadEngine := TMvDEFPC.Create(self);
|
|
MapView.DownloadEngine := FFpHttpClientDownloadEngine;
|
|
end;
|
|
3: begin
|
|
{$IFDEF MSWINDOWS}
|
|
if FWinDownloadEngine = nil then
|
|
FWinDownloadEngine := TMvDEWin.Create(Self);
|
|
MapView.DownloadEngine := FWinDownloadEngine;
|
|
{$ELSE}
|
|
ShowMessage('WinInet download engine can only be used in Windows.');
|
|
{$ENDIF}
|
|
end;
|
|
end;
|
|
UpdateDownloadEngineProxy;
|
|
end;
|
|
|
|
end.
|
|
|