| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- unit AppCentreForm;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, InterfaceAppCentre, StdCtrls, ExtCtrls, AppsLayout,
- FlatForm, cefvcl, ceflib, ChromeDebug;
- type
- TAppCentreForm = class(TFlatForm)
- chrm1: TChromium;
- procedure FormShow(Sender: TObject);
- procedure chrm1ProcessMessageReceived(Sender: TObject;
- const browser: ICefBrowser; sourceProcess: TCefProcessId;
- const message: ICefProcessMessage; out Result: Boolean);
- procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- procedure chrm1KeyEvent(Sender: TObject; const browser: ICefBrowser;
- const event: PCefKeyEvent; osEvent: PMsg; out Result: Boolean);
- private
- FChromeDebugForm: TChromeDebugForm;
- function OnAppAdded(AJsonApp: string): boolean;
- function OnAppClicked(AJsonApp: string): boolean;
- function OnAppDeleted(AJsonApp: string): boolean;
- public
- procedure ChangeUIColor(AColor: TColor); override;
- constructor Create(AOwner: TComponent); override;
- procedure OpenDebug;
- destructor Destroy; override;
- end;
- {$INCLUDE ..\Client\LXTalk.inc}
- var
- AppCentreFrm: TAppCentreForm;
- implementation
- uses
- AppCentreImport, superobject, LoggerImport, UApp;
- {$R *.dfm}
- procedure TAppCentreForm.ChangeUIColor(AColor: TColor);
- begin
- // inherited ChangeUIColor(AColor);
- // Self.Color := AColor;
- // pnlClient.Color := Self.Color;
- end;
- procedure TAppCentreForm.chrm1KeyEvent(Sender: TObject;
- const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: PMsg;
- out Result: Boolean);
- begin
- if (event^.windows_key_code = VK_F12) then
- OpenDebug;
- end;
- procedure TAppCentreForm.chrm1ProcessMessageReceived(Sender: TObject;
- const browser: ICefBrowser; sourceProcess: TCefProcessId;
- const message: ICefProcessMessage; out Result: Boolean);
- begin
- Debug(Format('Mothed:%s,Param:%s',[message.ArgumentList.GetString(0), message.ArgumentList.GetString(1)]), 'ProcessMessageReceived');
- if CompareText(message.ArgumentList.GetString(0), 'OnAppAdded') = 0 then
- begin
- OnAppAdded(message.ArgumentList.GetString(1));
- Result := True;
- end
- else if CompareText(message.ArgumentList.GetString(0), 'OnAppClicked') = 0 then
- begin
- OnAppClicked(message.ArgumentList.GetString(1));
- Result := True;
- end
- else if CompareText(message.ArgumentList.GetString(0), 'OnAppDeleted') = 0 then
- begin
- OnAppDeleted(message.ArgumentList.GetString(1));
- Result := True;
- end
- else
- Result := False;
- end;
- constructor TAppCentreForm.Create(AOwner: TComponent);
- begin
- inherited;
- FChromeDebugForm := TChromeDebugForm.Create(Self);
- end;
- destructor TAppCentreForm.Destroy;
- begin
- FChromeDebugForm.Free;
- inherited;
- end;
- //{"AppKey":"",}
- function TAppCentreForm.OnAppAdded(AJsonApp: string): boolean;
- var
- jo: ISuperObject;
- AAppKey: string;
- begin
- jo := SO(AJsonApp);
- if jo.S['AppKey'] <> '' then
- GetAppCentre.AddHotApp(jo.S['AppKey'], THotApp.Create);
- end;
- function TAppCentreForm.OnAppClicked(AJsonApp: string): boolean;
- var
- AAppCentre: IAppCentre;
- jo: ISuperObject;
- begin
- AAppCentre := GetAppCentre;
- try
- jo := SO(AJsonApp);
- if jo.S['AppKey'] <> '' then
- AAppCentre.SSO(jo.S['AppKey']);
- except
- on E: Exception do
- begin
- Error(E.Message, 'TAppUIController.OnAppClicked');
- end;
- end;
- end;
- function TAppCentreForm.OnAppDeleted(AJsonApp: string): boolean;
- var
- jo: ISuperObject;
- begin
- jo := SO(AJsonApp);
- if jo.S['AppKey'] <> '' then
- GetAppCentre.RemoveHotApp(jo.S['AppKey']);
- end;
- procedure TAppCentreForm.OpenDebug;
- begin
- FChromeDebugForm.ChromiumDevTools1.ShowDevTools(chrm1.Browser);
- FChromeDebugForm.Show;
- end;
- procedure TAppCentreForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- begin
- if CefSingleProcess then
- chrm1.Load('about:blank');
- CanClose := True;
- end;
- procedure TAppCentreForm.FormShow(Sender: TObject);
- var
- AURL: string;
- begin
- AURL := string(GetAppCentre.GetAppCentreURL);
- chrm1.Load(AURL);
- end;
- initialization
- end.
|