Skip to content

Commit

Permalink
Windows GUI: Use Edge WebView2 for HTML view
Browse files Browse the repository at this point in the history
Use Edge WebView2 for HTML view when available else fallback to IE.
  • Loading branch information
cjee21 committed Jun 21, 2024
1 parent 5c447be commit 629a5a6
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 24 deletions.
43 changes: 25 additions & 18 deletions Source/GUI/VCL/GUI_Main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -961,38 +961,45 @@ void __fastcall TMainF::Refresh(TTabSheet *Page)
else if (Page==Page_HTML)
{
I->Option_Static(__T("Inform"), __T("HTML"));

//Set Edge WebView2 UDF directory
Ztring UserDataDir=Prefs->BaseFolder;
UserDataDir.resize(UserDataDir.size()-1);
UserDataDir=UserDataDir.substr(0, UserDataDir.rfind(__T("\\"))+1);
UserDataDir+=__T("WebView2");
SetEnvironmentVariable(__T("WEBVIEW2_USER_DATA_FOLDER"), UserDataDir.c_str());

//Creating file
File F;
if (FileName_Temp==__T(""))
{
FileName_Temp=FileName::TempFileName_Create(__T("MI_"));
File::Delete(FileName_Temp);
FileName_Temp+=__T(".html");
}
F.Create(FileName_Temp, true);
if (FilesCount>0)
{
//Creating file
Ztring S1=I->Inform().c_str();
File F;
if (TStyleManager::ActiveStyle == TStyleManager::Style[DARK_MODE_STYLE]) {
if (TStyleManager::ActiveStyle == TStyleManager::Style[DARK_MODE_STYLE])
S1=InjectDarkModeHTMLStyle(I->Inform().c_str());
}
if (FileName_Temp==__T(""))
{
FileName_Temp=FileName::TempFileName_Create(__T("MI_"));
File::Delete(FileName_Temp);
FileName_Temp+=__T(".html");
}
F.Create(FileName_Temp, true);
F.Write(S1);
F.Close();
//Navigate
Page_HTML_HTML->Navigate((MediaInfoNameSpace::Char*)FileName_Temp.c_str());
}
else
{
Ztring TempA; TempA=Prefs->Translate(__T("At least one file"));
Ztring Temp;
Temp+=L"about:<html><head></head><body>";
Temp+=L"<html><head></head><body>";
Temp+=TempA.To_Unicode();
Temp+=L"</body></html>";
if (TStyleManager::ActiveStyle == TStyleManager::Style[DARK_MODE_STYLE]) {
if (TStyleManager::ActiveStyle == TStyleManager::Style[DARK_MODE_STYLE])
Temp=InjectDarkModeHTMLStyle(Temp.c_str());
}
Page_HTML_HTML->Navigate((MediaInfoNameSpace::Char*)Temp.c_str());
F.Write(Temp);
}
F.Close();

//Navigate
Page_HTML_HTML->Navigate((MediaInfoNameSpace::Char*)FileName_Temp.c_str());
}

//Custom
Expand Down
11 changes: 6 additions & 5 deletions Source/GUI/VCL/GUI_Main.dfm
Original file line number Diff line number Diff line change
Expand Up @@ -692,14 +692,15 @@ object MainF: TMainF
object Page_HTML: TTabSheet
Caption = 'HTML'
ImageIndex = 6
object Page_HTML_HTML: TCppWebBrowser
Left = 4
object Page_HTML_HTML: TWebBrowser
Left = 0
Top = 0
Width = 673
Height = 385
Width = 300
Height = 150
TabOrder = 0
SelectedEngine = EdgeIfAvailable
ControlData = {
4C0000008E450000CA2700000000000000000000000000000000000000000000
4C000000021F0000810F00000000000000000000000000000000000000000000
000000004C000000000000000000000001000000E0D057007335CF11AE690800
2B2E126208000000000000004C0000000114020000000000C000000000000046
8000000000000000000000000000000000000000000000000000000000000000
Expand Down
6 changes: 5 additions & 1 deletion Source/GUI/VCL/GUI_Main.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
#include <Vcl.VirtualImageList.hpp>
#include <Registry.hpp>
#include <Vcl.AppEvnts.hpp>
#include <Vcl.Edge.hpp>
#include <Winapi.ActiveX.hpp>
#include <Winapi.WebView2.hpp>
#include <SHDocVw.hpp>
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
Expand Down Expand Up @@ -91,7 +95,6 @@ class TMainF : public TForm
TTabSheet *Page_Text;
TMemo *Page_Text_Text;
TTabSheet *Page_HTML;
TCppWebBrowser *Page_HTML_HTML;
TTabSheet *Page_Custom;
TMemo *Page_Custom_Text;
TCppWebBrowser *Page_Custom_HTML;
Expand Down Expand Up @@ -237,6 +240,7 @@ class TMainF : public TForm
TMenuItem *M_Options_Theme_System;
TMenuItem *M_Options_Theme_Light;
TMenuItem *M_Options_Theme_Dark;
TWebBrowser *Page_HTML_HTML;
void __fastcall FormResize(TObject *Sender);
void __fastcall M_Help_AboutClick(TObject *Sender);
void __fastcall M_Options_PreferencesClick(TObject *Sender);
Expand Down

0 comments on commit 629a5a6

Please sign in to comment.