1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-06-12 22:07:39 +02:00

Added context menu to change the color mode in MiniBrowser

This commit is contained in:
Salvador Díaz Fau
2024-05-02 17:38:03 +02:00
parent d5bfa05d39
commit 08012881e0
4 changed files with 98 additions and 44 deletions

View File

@ -60,6 +60,10 @@ const
MINIBROWSER_CONTEXTMENU_RESETZOOM = MENU_ID_USER_FIRST + 17; MINIBROWSER_CONTEXTMENU_RESETZOOM = MENU_ID_USER_FIRST + 17;
MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN = MENU_ID_USER_FIRST + 18; MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN = MENU_ID_USER_FIRST + 18;
MINIBROWSER_CONTEXTMENU_BROWSERINFO = MENU_ID_USER_FIRST + 19; MINIBROWSER_CONTEXTMENU_BROWSERINFO = MENU_ID_USER_FIRST + 19;
MINIBROWSER_CONTEXTMENU_COLORSCHEME = MENU_ID_USER_FIRST + 20;
MINIBROWSER_CONTEXTMENU_COLORSCHEMESYSTEM = MENU_ID_USER_FIRST + 21;
MINIBROWSER_CONTEXTMENU_COLORSCHEMELIGHT = MENU_ID_USER_FIRST + 22;
MINIBROWSER_CONTEXTMENU_COLORSCHEMEDARK = MENU_ID_USER_FIRST + 23;
DEVTOOLS_SCREENSHOT_MSGID = 1001; DEVTOOLS_SCREENSHOT_MSGID = 1001;
DEVTOOLS_MHTML_MSGID = 1002; DEVTOOLS_MHTML_MSGID = 1002;
@ -397,6 +401,8 @@ end;
procedure TMiniBrowserFrm.Chromium1BeforeContextMenu(Sender: TObject; procedure TMiniBrowserFrm.Chromium1BeforeContextMenu(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame; const browser: ICefBrowser; const frame: ICefFrame;
const params: ICefContextMenuParams; const model: ICefMenuModel); const params: ICefContextMenuParams; const model: ICefMenuModel);
var
TempModel: ICefMenuModel;
begin begin
if Chromium1.IsSameBrowser(browser) then if Chromium1.IsSameBrowser(browser) then
begin begin
@ -442,6 +448,18 @@ begin
model.AddSeparator; model.AddSeparator;
model.AddItem(MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN, 'Exit fullscreen'); model.AddItem(MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN, 'Exit fullscreen');
end; end;
model.AddSeparator;
TempModel := model.AddSubMenu(MINIBROWSER_CONTEXTMENU_COLORSCHEME, 'Color scheme');
TempModel.AddCheckItem(MINIBROWSER_CONTEXTMENU_COLORSCHEMESYSTEM, 'System');
TempModel.AddCheckItem(MINIBROWSER_CONTEXTMENU_COLORSCHEMELIGHT, 'Light');
TempModel.AddCheckItem(MINIBROWSER_CONTEXTMENU_COLORSCHEMEDARK, 'Dark');
case Chromium1.ChromeColorSchemeMode of
CEF_COLOR_VARIANT_LIGHT : TempModel.setChecked(MINIBROWSER_CONTEXTMENU_COLORSCHEMELIGHT, True);
CEF_COLOR_VARIANT_DARK : TempModel.setChecked(MINIBROWSER_CONTEXTMENU_COLORSCHEMEDARK, True);
else TempModel.setChecked(MINIBROWSER_CONTEXTMENU_COLORSCHEMESYSTEM, True);
end;
end end
else else
model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS, 'Show DevTools'); model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS, 'Show DevTools');
@ -639,6 +657,15 @@ begin
FPendingMsgID := DEVTOOLS_BROWSERINFO_MSGID; FPendingMsgID := DEVTOOLS_BROWSERINFO_MSGID;
Chromium1.ExecuteDevToolsMethod(0, 'Browser.getVersion', nil); Chromium1.ExecuteDevToolsMethod(0, 'Browser.getVersion', nil);
end; end;
MINIBROWSER_CONTEXTMENU_COLORSCHEMELIGHT :
Chromium1.SetChromeColorScheme(CEF_COLOR_VARIANT_LIGHT, 0);
MINIBROWSER_CONTEXTMENU_COLORSCHEMEDARK :
Chromium1.SetChromeColorScheme(CEF_COLOR_VARIANT_DARK, 0);
MINIBROWSER_CONTEXTMENU_COLORSCHEMESYSTEM :
Chromium1.SetChromeColorScheme(CEF_COLOR_VARIANT_SYSTEM, 0);
end end
else else
case commandId of case commandId of

View File

@ -118,11 +118,11 @@ object MiniBrowserFrm: TMiniBrowserFrm
TabOrder = 1 TabOrder = 1
object URLCbx: TComboBox object URLCbx: TComboBox
Left = 0 Left = 0
Height = 21 Height = 22
Top = 3 Top = 3
Width = 978 Width = 978
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
ItemHeight = 13 ItemHeight = 14
ItemIndex = 0 ItemIndex = 0
Items.Strings = ( Items.Strings = (
'https://www.google.com' 'https://www.google.com'

View File

@ -51,6 +51,10 @@ const
MINIBROWSER_CONTEXTMENU_RESETZOOM = MENU_ID_USER_FIRST + 17; MINIBROWSER_CONTEXTMENU_RESETZOOM = MENU_ID_USER_FIRST + 17;
MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN = MENU_ID_USER_FIRST + 18; MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN = MENU_ID_USER_FIRST + 18;
MINIBROWSER_CONTEXTMENU_BROWSERINFO = MENU_ID_USER_FIRST + 19; MINIBROWSER_CONTEXTMENU_BROWSERINFO = MENU_ID_USER_FIRST + 19;
MINIBROWSER_CONTEXTMENU_COLORSCHEME = MENU_ID_USER_FIRST + 20;
MINIBROWSER_CONTEXTMENU_COLORSCHEMESYSTEM = MENU_ID_USER_FIRST + 21;
MINIBROWSER_CONTEXTMENU_COLORSCHEMELIGHT = MENU_ID_USER_FIRST + 22;
MINIBROWSER_CONTEXTMENU_COLORSCHEMEDARK = MENU_ID_USER_FIRST + 23;
DEVTOOLS_SCREENSHOT_MSGID = 1001; DEVTOOLS_SCREENSHOT_MSGID = 1001;
DEVTOOLS_MHTML_MSGID = 1002; DEVTOOLS_MHTML_MSGID = 1002;
@ -474,6 +478,8 @@ end;
procedure TMiniBrowserFrm.Chromium1BeforeContextMenu(Sender: TObject; procedure TMiniBrowserFrm.Chromium1BeforeContextMenu(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame; const browser: ICefBrowser; const frame: ICefFrame;
const params: ICefContextMenuParams; const model: ICefMenuModel); const params: ICefContextMenuParams; const model: ICefMenuModel);
var
TempModel: ICefMenuModel;
begin begin
if Chromium1.IsSameBrowser(browser) then if Chromium1.IsSameBrowser(browser) then
begin begin
@ -519,6 +525,18 @@ begin
model.AddSeparator; model.AddSeparator;
model.AddItem(MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN, 'Exit fullscreen'); model.AddItem(MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN, 'Exit fullscreen');
end; end;
model.AddSeparator;
TempModel := model.AddSubMenu(MINIBROWSER_CONTEXTMENU_COLORSCHEME, 'Color scheme');
TempModel.AddCheckItem(MINIBROWSER_CONTEXTMENU_COLORSCHEMESYSTEM, 'System');
TempModel.AddCheckItem(MINIBROWSER_CONTEXTMENU_COLORSCHEMELIGHT, 'Light');
TempModel.AddCheckItem(MINIBROWSER_CONTEXTMENU_COLORSCHEMEDARK, 'Dark');
case Chromium1.ChromeColorSchemeMode of
CEF_COLOR_VARIANT_LIGHT : TempModel.setChecked(MINIBROWSER_CONTEXTMENU_COLORSCHEMELIGHT, True);
CEF_COLOR_VARIANT_DARK : TempModel.setChecked(MINIBROWSER_CONTEXTMENU_COLORSCHEMEDARK, True);
else TempModel.setChecked(MINIBROWSER_CONTEXTMENU_COLORSCHEMESYSTEM, True);
end;
end end
else else
model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS, 'Show DevTools'); model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS, 'Show DevTools');
@ -717,6 +735,15 @@ begin
FPendingMsgID := DEVTOOLS_BROWSERINFO_MSGID; FPendingMsgID := DEVTOOLS_BROWSERINFO_MSGID;
Chromium1.ExecuteDevToolsMethod(0, 'Browser.getVersion', nil); Chromium1.ExecuteDevToolsMethod(0, 'Browser.getVersion', nil);
end; end;
MINIBROWSER_CONTEXTMENU_COLORSCHEMELIGHT :
Chromium1.SetChromeColorScheme(CEF_COLOR_VARIANT_LIGHT, 0);
MINIBROWSER_CONTEXTMENU_COLORSCHEMEDARK :
Chromium1.SetChromeColorScheme(CEF_COLOR_VARIANT_DARK, 0);
MINIBROWSER_CONTEXTMENU_COLORSCHEMESYSTEM :
Chromium1.SetChromeColorScheme(CEF_COLOR_VARIANT_SYSTEM, 0);
end end
else else
case commandId of case commandId of

View File

@ -2,7 +2,7 @@
"UpdateLazPackages" : [ "UpdateLazPackages" : [
{ {
"ForceNotify" : true, "ForceNotify" : true,
"InternalVersion" : 590, "InternalVersion" : 591,
"Name" : "cef4delphi_lazarus.lpk", "Name" : "cef4delphi_lazarus.lpk",
"Version" : "124.3.1" "Version" : "124.3.1"
} }