mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-04-28 00:15:47 +02:00
69 lines
2.5 KiB
C#
69 lines
2.5 KiB
C#
using System;
|
|
using System.Windows.Forms;
|
|
using CefSharp;
|
|
using TweetDuck.Controls;
|
|
using TweetLib.Core.Features.Notifications;
|
|
using TweetLib.Core.Features.Plugins;
|
|
|
|
namespace TweetDuck.Browser.Notification.Example{
|
|
sealed class FormNotificationExample : FormNotificationMain{
|
|
public override bool RequiresResize => true;
|
|
protected override bool CanDragWindow => Config.NotificationPosition == DesktopNotification.Position.Custom;
|
|
|
|
protected override FormBorderStyle NotificationBorderStyle{
|
|
get{
|
|
if (Config.NotificationSize == DesktopNotification.Size.Custom){
|
|
switch(base.NotificationBorderStyle){
|
|
case FormBorderStyle.FixedSingle: return FormBorderStyle.Sizable;
|
|
case FormBorderStyle.FixedToolWindow: return FormBorderStyle.SizableToolWindow;
|
|
}
|
|
}
|
|
|
|
return base.NotificationBorderStyle;
|
|
}
|
|
}
|
|
|
|
protected override string BodyClasses => base.BodyClasses + " td-example";
|
|
|
|
public event EventHandler Ready;
|
|
|
|
private readonly DesktopNotification exampleNotification;
|
|
|
|
public FormNotificationExample(FormBrowser owner, PluginManager pluginManager) : base(owner, pluginManager, false){
|
|
browser.LoadingStateChanged += browser_LoadingStateChanged;
|
|
|
|
string exampleTweetHTML = Program.Resources.LoadSilent("pages/example.html")?.Replace("{avatar}", AppLogo.Url) ?? string.Empty;
|
|
|
|
#if DEBUG
|
|
exampleTweetHTML = exampleTweetHTML.Replace("</p>", @"</p><div style='margin-top:256px'>Scrollbar test padding...</div>");
|
|
#endif
|
|
|
|
exampleNotification = new DesktopNotification(string.Empty, string.Empty, "Home", exampleTweetHTML, 176, string.Empty, string.Empty);
|
|
}
|
|
|
|
private void browser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e){
|
|
if (!e.IsLoading){
|
|
Ready?.Invoke(this, EventArgs.Empty);
|
|
browser.LoadingStateChanged -= browser_LoadingStateChanged;
|
|
}
|
|
}
|
|
|
|
public override void HideNotification(){
|
|
Location = ControlExtensions.InvisibleLocation;
|
|
}
|
|
|
|
public override void FinishCurrentNotification(){}
|
|
|
|
public void ShowExampleNotification(bool reset){
|
|
if (reset){
|
|
LoadTweet(exampleNotification);
|
|
}
|
|
else{
|
|
PrepareAndDisplayWindow();
|
|
}
|
|
|
|
UpdateTitle();
|
|
}
|
|
}
|
|
}
|