mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-05-17 11:34:09 +02:00
72 lines
2.5 KiB
C#
72 lines
2.5 KiB
C#
using System;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using CefSharp;
|
|
using CefSharp.WinForms;
|
|
using TweetDuck.Core.Controls;
|
|
using TweetDuck.Core.Handling;
|
|
using TweetDuck.Core.Handling.General;
|
|
using TweetDuck.Core.Utils;
|
|
|
|
namespace TweetDuck.Core.Other{
|
|
sealed partial class FormGuide : Form{
|
|
private const string GuideUrl = "https://tweetduck.chylex.com/guide/v1/";
|
|
|
|
private readonly ChromiumWebBrowser browser;
|
|
|
|
public FormGuide(){
|
|
InitializeComponent();
|
|
|
|
Text = Program.BrandName+" Guide";
|
|
|
|
FormBrowser owner = FormManager.TryFind<FormBrowser>();
|
|
|
|
if (owner != null){
|
|
Size = new Size(owner.Size.Width*3/4, owner.Size.Height*3/4);
|
|
VisibleChanged += (sender, args) => this.MoveToCenter(owner);
|
|
}
|
|
|
|
this.browser = new ChromiumWebBrowser(GuideUrl){
|
|
MenuHandler = new ContextMenuGuide(),
|
|
JsDialogHandler = new JavaScriptDialogHandler(),
|
|
LifeSpanHandler = new LifeSpanHandler(),
|
|
RequestHandler = new RequestHandlerBrowser()
|
|
};
|
|
|
|
browser.LoadingStateChanged += browser_LoadingStateChanged;
|
|
browser.FrameLoadStart += browser_FrameLoadStart;
|
|
|
|
browser.BrowserSettings.BackgroundColor = (uint)BackColor.ToArgb();
|
|
browser.Dock = DockStyle.None;
|
|
browser.Location = ControlExtensions.InvisibleLocation;
|
|
Controls.Add(browser);
|
|
|
|
Disposed += (sender, args) => {
|
|
Program.UserConfig.ZoomLevelChanged -= Config_ZoomLevelChanged;
|
|
browser.Dispose();
|
|
};
|
|
|
|
Program.UserConfig.ZoomLevelChanged += Config_ZoomLevelChanged;
|
|
}
|
|
|
|
private void browser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e){
|
|
if (!e.IsLoading){
|
|
this.InvokeAsyncSafe(() => {
|
|
browser.Location = Point.Empty;
|
|
browser.Dock = DockStyle.Fill;
|
|
});
|
|
|
|
browser.LoadingStateChanged -= browser_LoadingStateChanged;
|
|
}
|
|
}
|
|
|
|
private void browser_FrameLoadStart(object sender, FrameLoadStartEventArgs e){
|
|
BrowserUtils.SetZoomLevel(browser.GetBrowser(), Program.UserConfig.ZoomLevel);
|
|
}
|
|
|
|
private void Config_ZoomLevelChanged(object sender, EventArgs e){
|
|
BrowserUtils.SetZoomLevel(browser.GetBrowser(), Program.UserConfig.ZoomLevel);
|
|
}
|
|
}
|
|
}
|