1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-09-14 19:32:10 +02:00

Compare commits

...

38 Commits
1.8 ... 1.8.1

Author SHA1 Message Date
5dc2e71976 Update timeline-polls plugin to work better with recent TweetDeck update 2017-06-23 22:01:54 +02:00
28eb7d0810 Fix scrollbar in Options not working after focusing certain controls 2017-06-23 19:01:09 +02:00
c641a92d89 Add a 'Remind me later' button to update notifications 2017-06-22 12:32:06 +02:00
3e57cc045f Redesign update notification buttons 2017-06-22 12:31:48 +02:00
c60a8ddf66 Rewrite and begin redesigning update dialog 2017-06-22 09:48:50 +02:00
8becef3e45 Reorganize Notifications tab in Options 2017-06-22 08:31:24 +02:00
3237634e3b Tweak button positions in Options 2017-06-22 08:11:59 +02:00
2a4a659e39 Make retweets lowercase again 2017-06-21 20:35:32 +02:00
fcaa47c0a8 Move 'Custom' notification location option 2017-06-21 17:52:02 +02:00
68ea17ccbd Move some notification options into a separate panel 2017-06-21 13:59:49 +02:00
80308c7102 Redesign and cleanup parts of Options 2017-06-21 11:27:56 +02:00
6f4a99a7cb Remove drop down button from follow notifications 2017-06-21 10:13:40 +02:00
ac245f5128 Fix retarded scroll bar behavior in Options 2017-06-21 09:07:50 +02:00
7f9e9e27a0 Move import/export/restore to a single dialog in FormSettings 2017-06-21 08:33:36 +02:00
abf58a4aec Add an option to change notification scroll speed 2017-06-21 05:56:10 +02:00
5d9a700a6e Move TrackBar value alignment code to ControlExtensions 2017-06-21 05:52:40 +02:00
3662b1eb1d Fix activated & notification icons in edit-design plugin
Closes #134
2017-06-21 04:59:08 +02:00
34449da2b8 Redo Options tabs to fit the new layout 2017-06-20 20:42:17 +02:00
42f367f822 Fix mouse wheel not working in Options form 2017-06-20 20:40:37 +02:00
781ca0bb77 Tweak Options form design 2017-06-20 18:37:46 +02:00
ebe5d50dae Remove TabButton and TabPanel 2017-06-20 16:36:29 +02:00
00d6dc5626 Rewrite Options form to have tabs on the left 2017-06-20 16:29:50 +02:00
a1648c307f Remove (now) redundant call to plugin panel resize event 2017-06-20 14:35:54 +02:00
b8f170ae39 Fix visual issues in Plugins form 2017-06-20 13:02:34 +02:00
073f1da5b4 Redesign Plugins form 2017-06-20 11:58:33 +02:00
6310711136 Add a vertical label control 2017-06-20 11:48:44 +02:00
fcac7a4ce1 Remove unused 'using' statement 2017-06-20 09:50:31 +02:00
c2b1aef810 Show official & custom plugins on one page 2017-06-20 09:50:11 +02:00
c8ab26275c Fix column list overflow after hiding app title 2017-06-19 23:32:15 +02:00
a1fd6a2b6b Bump edit-design plugin version 2017-06-19 23:15:51 +02:00
561c08e0cc Fix debug plugin after hiding app title 2017-06-19 23:06:21 +02:00
4658e30e89 Fix Twitter messing with retweet icon in edit-design plugin 2017-06-19 23:05:14 +02:00
225e6b369a Make selected theme an attribute in <html> for plugins 2017-06-19 16:18:48 +02:00
0e9094a19f Rewrite timeline-polls plugin (fix issues, support quoted tweets) 2017-06-19 16:18:42 +02:00
2da0e03c6c Fix emoji keyboard search not resetting when hiding the keyboard 2017-06-19 11:05:33 +02:00
9a6fac5fc8 Add extra height to tweet footer with old icons in edit-design plugin 2017-06-17 18:44:25 +02:00
b541f0a896 Redesign header (hide logo, tweak positions & border radius, fix compose btn icon) 2017-06-17 18:24:52 +02:00
cec7cce077 Fix dynamic column width in edit-design plugin for recent TweetDeck update 2017-06-17 17:40:18 +02:00
37 changed files with 1413 additions and 1042 deletions

View File

@@ -7,7 +7,6 @@ using TweetDuck.Core;
using TweetDuck.Core.Controls; using TweetDuck.Core.Controls;
using TweetDuck.Core.Notification; using TweetDuck.Core.Notification;
using TweetDuck.Core.Utils; using TweetDuck.Core.Utils;
using TweetDuck.Plugins;
namespace TweetDuck.Configuration{ namespace TweetDuck.Configuration{
[Serializable] [Serializable]
@@ -20,7 +19,7 @@ namespace TweetDuck.Configuration{
} }
} }
private const int CurrentFileVersion = 9; private const int CurrentFileVersion = 10;
// START OF CONFIGURATION // START OF CONFIGURATION
@@ -37,6 +36,7 @@ namespace TweetDuck.Configuration{
public int NotificationDisplay { get; set; } public int NotificationDisplay { get; set; }
public int NotificationIdlePauseSeconds { get; set; } public int NotificationIdlePauseSeconds { get; set; }
public int NotificationDurationValue { get; set; } public int NotificationDurationValue { get; set; }
public int NotificationScrollSpeed { get; set; }
public bool EnableSpellCheck { get; set; } public bool EnableSpellCheck { get; set; }
public bool ExpandLinksOnHover { get; set; } public bool ExpandLinksOnHover { get; set; }
@@ -125,6 +125,7 @@ namespace TweetDuck.Configuration{
CustomNotificationPosition = ControlExtensions.InvisibleLocation; CustomNotificationPosition = ControlExtensions.InvisibleLocation;
NotificationEdgeDistance = 8; NotificationEdgeDistance = 8;
NotificationDurationValue = 25; NotificationDurationValue = 25;
NotificationScrollSpeed = 100;
EnableUpdateCheck = true; EnableUpdateCheck = true;
ExpandLinksOnHover = true; ExpandLinksOnHover = true;
SwitchAccountSelectors = true; SwitchAccountSelectors = true;
@@ -184,6 +185,11 @@ namespace TweetDuck.Configuration{
++fileVersion; ++fileVersion;
} }
if (fileVersion == 9){
NotificationScrollSpeed = 100;
++fileVersion;
}
// update the version // update the version
fileVersion = CurrentFileVersion; fileVersion = CurrentFileVersion;
Save(); Save();

View File

@@ -47,6 +47,14 @@ namespace TweetDuck.Core.Controls{
} }
} }
public static bool AlignValueToTick(this TrackBar trackBar){
if (trackBar.Value % trackBar.SmallChange != 0){
trackBar.Value = trackBar.SmallChange*(int)Math.Floor(((double)trackBar.Value/trackBar.SmallChange)+0.5);
return false;
}
else return true;
}
public static void SetElevated(this Button button){ public static void SetElevated(this Button button){
button.Text = " "+button.Text; button.Text = " "+button.Text;
button.FlatStyle = FlatStyle.System; button.FlatStyle = FlatStyle.System;

View File

@@ -0,0 +1,23 @@
using System;
using System.Drawing;
using System.Windows.Forms;
namespace TweetDuck.Core.Controls{
sealed class LabelVertical : Label{
public int LineHeight { get; set; }
protected override void OnPaint(PaintEventArgs e){
int y = (int)Math.Floor((ClientRectangle.Height-Text.Length*LineHeight)/2F)-2; // 2 = random
using(Brush brush = new SolidBrush(ForeColor)){
foreach(char chr in Text){
string str = chr.ToString();
float x = (ClientRectangle.Width-e.Graphics.MeasureString(str, Font).Width)/2F;
e.Graphics.DrawString(str, Font, brush, x, y);
y += LineHeight;
}
}
}
}
}

View File

@@ -1,25 +0,0 @@
using System;
using System.Drawing;
using System.Windows.Forms;
namespace TweetDuck.Core.Controls{
sealed class TabButton : FlatButton{
public Action Callback { get; private set; }
public void SetupButton(int locationX, int sizeWidth, string title, Action callback){
Callback = callback;
SuspendLayout();
FlatAppearance.BorderColor = Color.DimGray;
FlatAppearance.MouseDownBackColor = Color.White;
FlatAppearance.MouseOverBackColor = Color.White;
FlatStyle = FlatStyle.Flat;
Location = new Point(locationX, 0);
Margin = new Padding(0);
Size = new Size(sizeWidth, 30);
Text = title;
UseVisualStyleBackColor = true;
ResumeLayout(true);
}
}
}

View File

@@ -1,68 +0,0 @@
namespace TweetDuck.Core.Controls {
partial class TabPanel {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.panelButtons = new System.Windows.Forms.Panel();
this.panelContent = new System.Windows.Forms.Panel();
this.SuspendLayout();
//
// panelButtons
//
this.panelButtons.Dock = System.Windows.Forms.DockStyle.Top;
this.panelButtons.Location = new System.Drawing.Point(0, 0);
this.panelButtons.Margin = new System.Windows.Forms.Padding(0);
this.panelButtons.Name = "panelButtons";
this.panelButtons.Size = new System.Drawing.Size(640, 30);
this.panelButtons.TabIndex = 0;
//
// panelContent
//
this.panelContent.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panelContent.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panelContent.Location = new System.Drawing.Point(0, 29);
this.panelContent.Margin = new System.Windows.Forms.Padding(0);
this.panelContent.Name = "panelContent";
this.panelContent.Size = new System.Drawing.Size(640, 451);
this.panelContent.TabIndex = 1;
//
// TabPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.panelContent);
this.Controls.Add(this.panelButtons);
this.Name = "TabPanel";
this.Size = new System.Drawing.Size(640, 480);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panelButtons;
private System.Windows.Forms.Panel panelContent;
}
}

View File

@@ -1,52 +0,0 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
namespace TweetDuck.Core.Controls{
sealed partial class TabPanel : UserControl{
public Panel Content => panelContent;
public IEnumerable<TabButton> Buttons => panelButtons.Controls.Cast<TabButton>();
public TabButton ActiveButton { get; private set; }
private int btnWidth;
public TabPanel(){
InitializeComponent();
}
public void SetupTabPanel(int buttonWidth){
this.btnWidth = buttonWidth;
}
public TabButton AddButton(string title, Action callback){
TabButton button = new TabButton();
button.SetupButton((btnWidth-1)*panelButtons.Controls.Count, btnWidth, title, callback);
button.Click += (sender, args) => SelectTab((TabButton)sender);
panelButtons.Controls.Add(button);
return button;
}
public void SelectTab(TabButton button){
if (ActiveButton != null){
ActiveButton.BackColor = SystemColors.Control;
}
button.BackColor = Color.White;
button.Callback();
ActiveButton = button;
}
public void ReplaceContent(Control newControl){
newControl.Dock = DockStyle.Fill;
Content.SuspendLayout();
Content.Controls.Clear();
Content.Controls.Add(newControl);
Content.ResumeLayout(true);
}
}
}

View File

@@ -12,6 +12,7 @@ using TweetDuck.Core.Handling;
using TweetDuck.Core.Notification; using TweetDuck.Core.Notification;
using TweetDuck.Core.Notification.Screenshot; using TweetDuck.Core.Notification.Screenshot;
using TweetDuck.Core.Other; using TweetDuck.Core.Other;
using TweetDuck.Core.Other.Settings;
using TweetDuck.Core.Utils; using TweetDuck.Core.Utils;
using TweetDuck.Plugins; using TweetDuck.Plugins;
using TweetDuck.Plugins.Enums; using TweetDuck.Plugins.Enums;
@@ -317,7 +318,7 @@ namespace TweetDuck.Core{
btnOpenSettings.Location = new Point(btnOpenSettings.Location.X-16, btnOpenSettings.Location.Y); btnOpenSettings.Location = new Point(btnOpenSettings.Location.X-16, btnOpenSettings.Location.Y);
if (form.ShowDialog() == DialogResult.OK && form.ClickedButton == btnOpenSettings){ if (form.ShowDialog() == DialogResult.OK && form.ClickedButton == btnOpenSettings){
OpenSettings(FormSettings.TabIndexSounds); OpenSettings(typeof(TabSettingsSounds));
} }
} }
} }
@@ -376,14 +377,14 @@ namespace TweetDuck.Core{
} }
public void OpenSettings(){ public void OpenSettings(){
OpenSettings(0); OpenSettings(null);
} }
public void OpenSettings(int tabIndex){ public void OpenSettings(Type startTab){
if (!TryBringToFront<FormSettings>()){ if (!TryBringToFront<FormSettings>()){
bool prevEnableUpdateCheck = Config.EnableUpdateCheck; bool prevEnableUpdateCheck = Config.EnableUpdateCheck;
FormSettings form = new FormSettings(this, plugins, updates, tabIndex); FormSettings form = new FormSettings(this, plugins, updates, startTab);
form.FormClosed += (sender, args) => { form.FormClosed += (sender, args) => {
if (!prevEnableUpdateCheck && Config.EnableUpdateCheck){ if (!prevEnableUpdateCheck && Config.EnableUpdateCheck){

View File

@@ -103,8 +103,10 @@ namespace TweetDuck.Core.Notification{
if (nCode == 0){ if (nCode == 0){
int eventType = wParam.ToInt32(); int eventType = wParam.ToInt32();
if (eventType == NativeMethods.WM_MOUSEWHEEL && browser.Bounds.Contains(PointToClient(Cursor.Position)) && !ContainsFocus && !owner.ContainsFocus){ if (eventType == NativeMethods.WM_MOUSEWHEEL && browser.Bounds.Contains(PointToClient(Cursor.Position))){
browser.SendMouseWheelEvent(0, 0, 0, NativeMethods.GetMouseHookData(lParam), CefEventFlags.None); int distance = (int)Math.Round(NativeMethods.GetMouseHookData(lParam)*(Program.UserConfig.NotificationScrollSpeed/100.0));
browser.SendMouseWheelEvent(0, 0, 0, distance, CefEventFlags.None);
return NativeMethods.HOOK_HANDLED; return NativeMethods.HOOK_HANDLED;
} }
else if (eventType == NativeMethods.WM_XBUTTONDOWN && DesktopBounds.Contains(Cursor.Position)){ else if (eventType == NativeMethods.WM_XBUTTONDOWN && DesktopBounds.Contains(Cursor.Position)){

View File

@@ -31,7 +31,7 @@ namespace TweetDuck.Core.Notification{
ExampleTweetHTML = ScriptLoader.LoadResource("pages/example.html", true); ExampleTweetHTML = ScriptLoader.LoadResource("pages/example.html", true);
#if DEBUG #if DEBUG
ExampleTweetHTML = ExampleTweetHTML.Replace("</p>", @"</p><div style='margin-top:64px'>Scrollbar test padding...</div>"); ExampleTweetHTML = ExampleTweetHTML.Replace("</p>", @"</p><div style='margin-top:256px'>Scrollbar test padding...</div>");
#endif #endif
} }

View File

@@ -26,7 +26,7 @@
this.btnClose = new System.Windows.Forms.Button(); this.btnClose = new System.Windows.Forms.Button();
this.btnReload = new System.Windows.Forms.Button(); this.btnReload = new System.Windows.Forms.Button();
this.btnOpenFolder = new System.Windows.Forms.Button(); this.btnOpenFolder = new System.Windows.Forms.Button();
this.tabPanelPlugins = new TweetDuck.Core.Controls.TabPanel(); this.flowLayoutPlugins = new TweetDuck.Plugins.Controls.PluginListFlowLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// btnClose // btnClose
@@ -68,22 +68,26 @@
this.btnOpenFolder.UseVisualStyleBackColor = true; this.btnOpenFolder.UseVisualStyleBackColor = true;
this.btnOpenFolder.Click += new System.EventHandler(this.btnOpenFolder_Click); this.btnOpenFolder.Click += new System.EventHandler(this.btnOpenFolder_Click);
// //
// tabPanelPlugins // flowLayoutPlugins
// //
this.tabPanelPlugins.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) this.flowLayoutPlugins.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.tabPanelPlugins.Location = new System.Drawing.Point(12, 12); this.flowLayoutPlugins.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.tabPanelPlugins.Name = "tabPanelPlugins"; this.flowLayoutPlugins.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
this.tabPanelPlugins.Size = new System.Drawing.Size(680, 421); this.flowLayoutPlugins.Location = new System.Drawing.Point(12, 12);
this.tabPanelPlugins.TabIndex = 0; this.flowLayoutPlugins.Name = "flowLayoutPlugins";
this.flowLayoutPlugins.Size = new System.Drawing.Size(680, 421);
this.flowLayoutPlugins.TabIndex = 0;
this.flowLayoutPlugins.WrapContents = false;
this.flowLayoutPlugins.Resize += new System.EventHandler(this.flowLayoutPlugins_Resize);
// //
// FormPlugins // FormPlugins
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(704, 474); this.ClientSize = new System.Drawing.Size(704, 474);
this.Controls.Add(this.tabPanelPlugins); this.Controls.Add(this.flowLayoutPlugins);
this.Controls.Add(this.btnOpenFolder); this.Controls.Add(this.btnOpenFolder);
this.Controls.Add(this.btnReload); this.Controls.Add(this.btnReload);
this.Controls.Add(this.btnClose); this.Controls.Add(this.btnClose);
@@ -101,6 +105,6 @@
private System.Windows.Forms.Button btnClose; private System.Windows.Forms.Button btnClose;
private System.Windows.Forms.Button btnReload; private System.Windows.Forms.Button btnReload;
private System.Windows.Forms.Button btnOpenFolder; private System.Windows.Forms.Button btnOpenFolder;
private TweetDuck.Core.Controls.TabPanel tabPanelPlugins; private Plugins.Controls.PluginListFlowLayout flowLayoutPlugins;
} }
} }

View File

@@ -3,20 +3,13 @@ using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
using TweetDuck.Core.Controls;
using TweetDuck.Plugins; using TweetDuck.Plugins;
using TweetDuck.Plugins.Controls; using TweetDuck.Plugins.Controls;
using TweetDuck.Plugins.Enums;
using TweetDuck.Plugins.Events;
namespace TweetDuck.Core.Other{ namespace TweetDuck.Core.Other{
sealed partial class FormPlugins : Form{ sealed partial class FormPlugins : Form{
private readonly PluginManager pluginManager; private readonly PluginManager pluginManager;
private readonly TabButton tabBtnOfficial, tabBtnCustom;
private readonly PluginListFlowLayout flowLayoutPlugins;
private PluginGroup? selectedGroup;
public FormPlugins(){ public FormPlugins(){
InitializeComponent(); InitializeComponent();
@@ -25,66 +18,41 @@ namespace TweetDuck.Core.Other{
public FormPlugins(PluginManager pluginManager) : this(){ public FormPlugins(PluginManager pluginManager) : this(){
this.pluginManager = pluginManager; this.pluginManager = pluginManager;
this.pluginManager.Reloaded += pluginManager_Reloaded;
this.flowLayoutPlugins = new PluginListFlowLayout();
this.flowLayoutPlugins.Resize += flowLayoutPlugins_Resize;
this.tabPanelPlugins.SetupTabPanel(90);
this.tabPanelPlugins.ReplaceContent(flowLayoutPlugins);
this.tabBtnOfficial = tabPanelPlugins.AddButton("", () => SelectGroup(PluginGroup.Official));
this.tabBtnCustom = tabPanelPlugins.AddButton("", () => SelectGroup(PluginGroup.Custom));
this.pluginManager_Reloaded(pluginManager, null);
Shown += (sender, args) => { Shown += (sender, args) => {
Program.UserConfig.PluginsWindow.Restore(this, false); Program.UserConfig.PluginsWindow.Restore(this, false);
this.tabPanelPlugins.SelectTab(tabBtnOfficial); ReloadPluginList();
}; };
FormClosed += (sender, args) => { FormClosed += (sender, args) => {
Program.UserConfig.PluginsWindow.Save(this); Program.UserConfig.PluginsWindow.Save(this);
Program.UserConfig.Save(); Program.UserConfig.Save();
}; };
Disposed += (sender, args) => this.pluginManager.Reloaded -= pluginManager_Reloaded;
} }
private void SelectGroup(PluginGroup group){ private int GetPluginOrderIndex(Plugin plugin){
if (selectedGroup.HasValue && selectedGroup == group)return; return !plugin.CanRun ? 0 : pluginManager.Config.IsEnabled(plugin) ? 1 : 2;
selectedGroup = group;
ReloadPluginTab();
} }
public void ReloadPluginTab(){ private void ReloadPluginList(){
if (!selectedGroup.HasValue)return;
flowLayoutPlugins.SuspendLayout(); flowLayoutPlugins.SuspendLayout();
flowLayoutPlugins.Controls.Clear(); flowLayoutPlugins.Controls.Clear();
Plugin[] plugins = pluginManager.GetPluginsByGroup(selectedGroup.Value).OrderBy(plugin => !plugin.CanRun ? 0 : pluginManager.Config.IsEnabled(plugin) ? 1 : 2).ThenBy(plugin => plugin.Name).ToArray(); foreach(Plugin plugin in pluginManager.Plugins.OrderBy(GetPluginOrderIndex).ThenBy(plugin => plugin.Name)){
flowLayoutPlugins.Controls.Add(new PluginControl(pluginManager, plugin));
for(int index = 0; index < plugins.Length; index++){ flowLayoutPlugins.Controls.Add(new Panel{
flowLayoutPlugins.Controls.Add(new PluginControl(pluginManager, plugins[index])); BackColor = Color.DimGray,
Margin = new Padding(0),
if (index < plugins.Length-1){ Size = new Size(1, 1)
flowLayoutPlugins.Controls.Add(new Panel{ });
BackColor = Color.DimGray,
Size = new Size(1, 1)
});
}
} }
flowLayoutPlugins.ResumeLayout(true); flowLayoutPlugins.ResumeLayout(true);
flowLayoutPlugins_Resize(flowLayoutPlugins, new EventArgs());
} // sorry, I guess...
Padding = new Padding(Padding.Left, Padding.Top, Padding.Right+1, Padding.Bottom);
private void pluginManager_Reloaded(object sender, PluginErrorEventArgs e){ Padding = new Padding(Padding.Left, Padding.Top, Padding.Right-1, Padding.Bottom);
tabBtnOfficial.Text = "Official: "+pluginManager.CountPluginByGroup(PluginGroup.Official);
tabBtnCustom.Text = "Custom: "+pluginManager.CountPluginByGroup(PluginGroup.Custom);
} }
private void flowLayoutPlugins_Resize(object sender, EventArgs e){ private void flowLayoutPlugins_Resize(object sender, EventArgs e){
@@ -102,7 +70,8 @@ namespace TweetDuck.Core.Other{
foreach(Control control in flowLayoutPlugins.Controls){ foreach(Control control in flowLayoutPlugins.Controls){
control.Width = flowLayoutPlugins.Width-control.Margin.Horizontal-horizontalOffset; control.Width = flowLayoutPlugins.Width-control.Margin.Horizontal-horizontalOffset;
} }
lastControl.Visible = !showScrollBar;
flowLayoutPlugins.Focus(); flowLayoutPlugins.Focus();
} }
@@ -113,7 +82,7 @@ namespace TweetDuck.Core.Other{
private void btnReload_Click(object sender, EventArgs e){ private void btnReload_Click(object sender, EventArgs e){
if (MessageBox.Show("This will also reload the browser window. Do you want to proceed?", "Reloading Plugins", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes){ if (MessageBox.Show("This will also reload the browser window. Do you want to proceed?", "Reloading Plugins", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes){
pluginManager.Reload(); pluginManager.Reload();
ReloadPluginTab(); ReloadPluginList();
} }
} }

View File

@@ -24,51 +24,70 @@
/// </summary> /// </summary>
private void InitializeComponent() { private void InitializeComponent() {
this.btnClose = new System.Windows.Forms.Button(); this.btnClose = new System.Windows.Forms.Button();
this.labelTip = new System.Windows.Forms.Label(); this.panelContents = new System.Windows.Forms.Panel();
this.tabPanel = new TweetDuck.Core.Controls.TabPanel(); this.panelButtons = new System.Windows.Forms.Panel();
this.btnManageOptions = new System.Windows.Forms.Button();
this.SuspendLayout(); this.SuspendLayout();
// //
// btnClose // btnClose
// //
this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnClose.AutoSize = true; this.btnClose.AutoSize = true;
this.btnClose.Location = new System.Drawing.Point(443, 349); this.btnClose.Location = new System.Drawing.Point(449, 447);
this.btnClose.Name = "btnClose"; this.btnClose.Name = "btnClose";
this.btnClose.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0); this.btnClose.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.btnClose.Size = new System.Drawing.Size(49, 23); this.btnClose.Size = new System.Drawing.Size(49, 23);
this.btnClose.TabIndex = 4; this.btnClose.TabIndex = 3;
this.btnClose.Text = "Close"; this.btnClose.Text = "Close";
this.btnClose.UseVisualStyleBackColor = true; this.btnClose.UseVisualStyleBackColor = true;
this.btnClose.Click += new System.EventHandler(this.btnClose_Click); this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
// //
// labelTip // panelContents
// //
this.labelTip.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.panelContents.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.labelTip.AutoSize = true;
this.labelTip.Location = new System.Drawing.Point(12, 351);
this.labelTip.Name = "labelTip";
this.labelTip.Size = new System.Drawing.Size(310, 13);
this.labelTip.TabIndex = 5;
this.labelTip.Text = "Tip: Move your cursor over an option to see detailed explanation";
//
// tabPanel
//
this.tabPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.tabPanel.Location = new System.Drawing.Point(12, 12); this.panelContents.AutoScroll = true;
this.tabPanel.Name = "tabPanel"; this.panelContents.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.tabPanel.Size = new System.Drawing.Size(480, 331); this.panelContents.Location = new System.Drawing.Point(135, 12);
this.tabPanel.TabIndex = 3; this.panelContents.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.panelContents.Name = "panelContents";
this.panelContents.Size = new System.Drawing.Size(363, 429);
this.panelContents.TabIndex = 1;
//
// panelButtons
//
this.panelButtons.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.panelButtons.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panelButtons.Location = new System.Drawing.Point(12, 12);
this.panelButtons.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3);
this.panelButtons.Name = "panelButtons";
this.panelButtons.Size = new System.Drawing.Size(124, 429);
this.panelButtons.TabIndex = 0;
//
// btnManageOptions
//
this.btnManageOptions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnManageOptions.AutoSize = true;
this.btnManageOptions.Location = new System.Drawing.Point(12, 447);
this.btnManageOptions.Name = "btnManageOptions";
this.btnManageOptions.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.btnManageOptions.Size = new System.Drawing.Size(101, 23);
this.btnManageOptions.TabIndex = 4;
this.btnManageOptions.Text = "Manage Options";
this.btnManageOptions.UseVisualStyleBackColor = true;
this.btnManageOptions.Click += new System.EventHandler(this.btnManageOptions_Click);
// //
// FormSettings // FormSettings
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(504, 384); this.ClientSize = new System.Drawing.Size(510, 482);
this.Controls.Add(this.labelTip); this.Controls.Add(this.btnManageOptions);
this.Controls.Add(this.panelContents);
this.Controls.Add(this.panelButtons);
this.Controls.Add(this.btnClose); this.Controls.Add(this.btnClose);
this.Controls.Add(this.tabPanel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = global::TweetDuck.Properties.Resources.icon; this.Icon = global::TweetDuck.Properties.Resources.icon;
this.MaximizeBox = false; this.MaximizeBox = false;
@@ -82,9 +101,9 @@
} }
#endregion #endregion
private Controls.TabPanel tabPanel;
private System.Windows.Forms.Button btnClose; private System.Windows.Forms.Button btnClose;
private System.Windows.Forms.Label labelTip; private System.Windows.Forms.Panel panelContents;
private System.Windows.Forms.Panel panelButtons;
private System.Windows.Forms.Button btnManageOptions;
} }
} }

View File

@@ -1,19 +1,22 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
using TweetDuck.Core.Controls;
using TweetDuck.Core.Other.Settings; using TweetDuck.Core.Other.Settings;
using TweetDuck.Core.Other.Settings.Dialogs;
using TweetDuck.Plugins; using TweetDuck.Plugins;
using TweetDuck.Updates; using TweetDuck.Updates;
namespace TweetDuck.Core.Other{ namespace TweetDuck.Core.Other{
sealed partial class FormSettings : Form{ sealed partial class FormSettings : Form{
public const int TabIndexSounds = 2;
private readonly FormBrowser browser; private readonly FormBrowser browser;
private readonly Dictionary<Type, BaseTabSettings> tabs = new Dictionary<Type, BaseTabSettings>(4); private readonly PluginManager plugins;
public FormSettings(FormBrowser browser, PluginManager plugins, UpdateHandler updates, int startTabIndex = 0){ private readonly Dictionary<Type, SettingsTab> tabs = new Dictionary<Type, SettingsTab>(4);
private SettingsTab currentTab;
public FormSettings(FormBrowser browser, PluginManager plugins, UpdateHandler updates, Type startTab){
InitializeComponent(); InitializeComponent();
Text = Program.BrandName+" Options"; Text = Program.BrandName+" Options";
@@ -21,48 +24,125 @@ namespace TweetDuck.Core.Other{
this.browser = browser; this.browser = browser;
this.browser.PauseNotification(); this.browser.PauseNotification();
this.tabPanel.SetupTabPanel(100); this.plugins = plugins;
this.tabPanel.AddButton("General", () => SelectTab(() => new TabSettingsGeneral(updates)));
this.tabPanel.AddButton("Notifications", () => SelectTab(() => new TabSettingsNotifications(browser.CreateNotificationForm(false))));
this.tabPanel.AddButton("Sounds", () => SelectTab(() => new TabSettingsSounds()));
this.tabPanel.AddButton("Advanced", () => SelectTab(() => new TabSettingsAdvanced(browser.ReinjectCustomCSS, plugins)));
this.tabPanel.SelectTab(tabPanel.Buttons.ElementAt(startTabIndex)); AddButton("General", () => new TabSettingsGeneral(updates));
} AddButton("Notifications", () => new TabSettingsNotifications(browser.CreateNotificationForm(false)));
AddButton("Sounds", () => new TabSettingsSounds());
AddButton("Advanced", () => new TabSettingsAdvanced(browser.ReinjectCustomCSS));
private void SelectTab<T>(Func<T> constructor) where T : BaseTabSettings{ SelectTab(tabs[startTab ?? typeof(TabSettingsGeneral)]);
if (tabs.TryGetValue(typeof(T), out BaseTabSettings control)){
tabPanel.ReplaceContent(control);
}
else{
control = tabs[typeof(T)] = constructor();
control.OnReady();
tabPanel.ReplaceContent(control);
}
} }
private void FormSettings_FormClosing(object sender, FormClosingEventArgs e){ private void FormSettings_FormClosing(object sender, FormClosingEventArgs e){
foreach(BaseTabSettings control in tabs.Values){ foreach(SettingsTab tab in tabs.Values){
control.OnClosing(); if (tab.IsInitialized){
tab.Control.OnClosing();
tab.Control.Dispose();
}
} }
Program.UserConfig.Save(); Program.UserConfig.Save();
foreach(BaseTabSettings control in tabs.Values){
control.Dispose();
}
browser.ResumeNotification(); browser.ResumeNotification();
} }
private void btnManageOptions_Click(object sender, EventArgs e){
using(DialogSettingsManage dialog = new DialogSettingsManage(plugins)){
if (dialog.ShowDialog() == DialogResult.OK && dialog.ShouldReloadUI){
foreach(SettingsTab tab in tabs.Values){
tab.Control = null;
}
SelectTab(currentTab);
}
}
}
private void btnClose_Click(object sender, EventArgs e){ private void btnClose_Click(object sender, EventArgs e){
Close(); Close();
} }
public void ReloadUI(){ private void AddButton<T>(string title, Func<T> constructor) where T : BaseTabSettings{
tabs.Clear(); const int btnHeight = 39;
tabPanel.Content.Controls.Clear();
tabPanel.ActiveButton.Callback(); FlatButton btn = new FlatButton{
BackColor = SystemColors.Control,
FlatStyle = FlatStyle.Flat,
Location = new Point(0, (btnHeight+1)*(panelButtons.Controls.Count/2)),
Margin = new Padding(0),
Size = new Size(panelButtons.Width, btnHeight),
Text = title,
UseVisualStyleBackColor = true
};
btn.FlatAppearance.BorderSize = 0;
btn.FlatAppearance.MouseDownBackColor = Color.FromArgb(179, 213, 232);
btn.FlatAppearance.MouseOverBackColor = Color.FromArgb(216, 230, 237);
panelButtons.Controls.Add(btn);
panelButtons.Controls.Add(new Panel{
BackColor = Color.DimGray,
Location = new Point(0, panelButtons.Controls[panelButtons.Controls.Count-1].Location.Y+btnHeight),
Margin = new Padding(0),
Size = new Size(panelButtons.Width, 1)
});
tabs.Add(typeof(T), new SettingsTab(btn, constructor));
btn.Click += (sender, args) => SelectTab<T>();
}
private void SelectTab<T>() where T : BaseTabSettings{
SelectTab(tabs[typeof(T)]);
}
private void SelectTab(SettingsTab tab){
if (currentTab != null){
currentTab.Button.BackColor = SystemColors.Control;
}
tab.Button.BackColor = tab.Button.FlatAppearance.MouseDownBackColor;
if (!tab.IsInitialized){
foreach(Control control in tab.Control.InteractiveControls){
control.MouseLeave += control_MouseLeave;
}
tab.Control.OnReady();
}
panelContents.SuspendLayout();
panelContents.VerticalScroll.Value = 0; // https://gfycat.com/GrotesqueTastyAstarte
panelContents.Controls.Clear();
panelContents.Controls.Add(tab.Control);
panelContents.ResumeLayout(true);
panelContents.Focus();
currentTab = tab;
}
private void control_MouseLeave(object sender, EventArgs e){
panelContents.Focus();
}
private class SettingsTab{
public Button Button { get; }
public BaseTabSettings Control{
get => control ?? (control = constructor());
set => control = value;
}
public bool IsInitialized => control != null;
private readonly Func<BaseTabSettings> constructor;
private BaseTabSettings control;
public SettingsTab(Button button, Func<BaseTabSettings> constructor){
this.Button = button;
this.constructor = constructor;
}
} }
} }
} }

View File

@@ -1,10 +1,22 @@
using System.Windows.Forms; using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using TweetDuck.Configuration; using TweetDuck.Configuration;
namespace TweetDuck.Core.Other.Settings{ namespace TweetDuck.Core.Other.Settings{
class BaseTabSettings : UserControl{ class BaseTabSettings : UserControl{
protected static UserConfig Config => Program.UserConfig; protected static UserConfig Config => Program.UserConfig;
public IEnumerable<Control> InteractiveControls{
get{
foreach(Panel panel in Controls.OfType<Panel>()){
foreach(Control control in panel.Controls){
yield return control;
}
}
}
}
public BaseTabSettings(){ public BaseTabSettings(){
Padding = new Padding(6); Padding = new Padding(6);
} }

View File

@@ -1,129 +0,0 @@
namespace TweetDuck.Core.Other.Settings.Dialogs {
partial class DialogSettingsExport {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.btnCancel = new System.Windows.Forms.Button();
this.btnApply = new System.Windows.Forms.Button();
this.cbConfig = new System.Windows.Forms.CheckBox();
this.cbSession = new System.Windows.Forms.CheckBox();
this.cbPluginData = new System.Windows.Forms.CheckBox();
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
this.SuspendLayout();
//
// btnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.AutoSize = true;
this.btnCancel.Location = new System.Drawing.Point(176, 97);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.btnCancel.Size = new System.Drawing.Size(56, 23);
this.btnCancel.TabIndex = 4;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// btnApply
//
this.btnApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnApply.AutoSize = true;
this.btnApply.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnApply.Location = new System.Drawing.Point(144, 97);
this.btnApply.Name = "btnApply";
this.btnApply.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.btnApply.Size = new System.Drawing.Size(26, 23);
this.btnApply.TabIndex = 3;
this.btnApply.Text = " ";
this.btnApply.UseVisualStyleBackColor = true;
this.btnApply.Click += new System.EventHandler(this.btnApply_Click);
//
// cbConfig
//
this.cbConfig.AutoSize = true;
this.cbConfig.Location = new System.Drawing.Point(13, 13);
this.cbConfig.Name = "cbConfig";
this.cbConfig.Size = new System.Drawing.Size(106, 17);
this.cbConfig.TabIndex = 0;
this.cbConfig.Text = "Program Options";
this.toolTip.SetToolTip(this.cbConfig, "Interface, notification, and update options.");
this.cbConfig.UseVisualStyleBackColor = true;
this.cbConfig.CheckedChanged += new System.EventHandler(this.cbConfig_CheckedChanged);
//
// cbSession
//
this.cbSession.AutoSize = true;
this.cbSession.Location = new System.Drawing.Point(13, 37);
this.cbSession.Name = "cbSession";
this.cbSession.Size = new System.Drawing.Size(92, 17);
this.cbSession.TabIndex = 1;
this.cbSession.Text = "Login Session";
this.toolTip.SetToolTip(this.cbSession, "A token that allows logging into the\r\ncurrent TweetDeck account.");
this.cbSession.UseVisualStyleBackColor = true;
this.cbSession.CheckedChanged += new System.EventHandler(this.cbSession_CheckedChanged);
//
// cbPluginData
//
this.cbPluginData.AutoSize = true;
this.cbPluginData.Location = new System.Drawing.Point(13, 61);
this.cbPluginData.Name = "cbPluginData";
this.cbPluginData.Size = new System.Drawing.Size(81, 17);
this.cbPluginData.TabIndex = 2;
this.cbPluginData.Text = "Plugin Data";
this.toolTip.SetToolTip(this.cbPluginData, "Data files generated by plugins.\r\nDoes not include the plugins themselves.");
this.cbPluginData.UseVisualStyleBackColor = true;
this.cbPluginData.CheckedChanged += new System.EventHandler(this.cbPluginData_CheckedChanged);
//
// DialogSettingsExport
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(244, 132);
this.Controls.Add(this.cbPluginData);
this.Controls.Add(this.cbSession);
this.Controls.Add(this.cbConfig);
this.Controls.Add(this.btnApply);
this.Controls.Add(this.btnCancel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(200, 170);
this.Name = "DialogSettingsExport";
this.ShowIcon = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Button btnApply;
private System.Windows.Forms.CheckBox cbConfig;
private System.Windows.Forms.CheckBox cbSession;
private System.Windows.Forms.CheckBox cbPluginData;
private System.Windows.Forms.ToolTip toolTip;
}
}

View File

@@ -1,80 +0,0 @@
using System;
using System.Windows.Forms;
using TweetDuck.Core.Other.Settings.Export;
namespace TweetDuck.Core.Other.Settings.Dialogs{
sealed partial class DialogSettingsExport : Form{
public static DialogSettingsExport Import(ExportFileFlags flags){
return new DialogSettingsExport(flags);
}
public static DialogSettingsExport Export(){
return new DialogSettingsExport(ExportFileFlags.None);
}
public ExportFileFlags Flags{
get => selectedFlags;
set{
// this will call events and SetFlag, which also updates the UI
cbConfig.Checked = value.HasFlag(ExportFileFlags.Config);
cbSession.Checked = value.HasFlag(ExportFileFlags.Session);
cbPluginData.Checked = value.HasFlag(ExportFileFlags.PluginData);
}
}
private readonly bool isExporting;
private ExportFileFlags selectedFlags = ExportFileFlags.None;
private DialogSettingsExport(ExportFileFlags importFlags){
InitializeComponent();
this.isExporting = importFlags == ExportFileFlags.None;
if (isExporting){
Text = "Export Profile";
btnApply.Text = "Export Profile";
Flags = ExportFileFlags.All & ~ExportFileFlags.Session;
}
else{
Text = "Import Profile";
Flags = importFlags;
cbConfig.Enabled = cbConfig.Checked;
cbSession.Enabled = cbSession.Checked;
cbPluginData.Enabled = cbPluginData.Checked;
}
}
private void SetFlag(ExportFileFlags flag, bool enable){
selectedFlags = enable ? selectedFlags | flag : selectedFlags & ~flag;
btnApply.Enabled = selectedFlags != ExportFileFlags.None;
if (!isExporting){
btnApply.Text = selectedFlags.HasFlag(ExportFileFlags.Session) ? "Import && Restart" : "Import Profile";
}
}
private void cbConfig_CheckedChanged(object sender, EventArgs e){
SetFlag(ExportFileFlags.Config, cbConfig.Checked);
}
private void cbSession_CheckedChanged(object sender, EventArgs e){
SetFlag(ExportFileFlags.Session, cbSession.Checked);
}
private void cbPluginData_CheckedChanged(object sender, EventArgs e){
SetFlag(ExportFileFlags.PluginData, cbPluginData.Checked);
}
private void btnApply_Click(object sender, EventArgs e){
DialogResult = DialogResult.OK;
Close();
}
private void btnCancel_Click(object sender, EventArgs e){
DialogResult = DialogResult.Cancel;
Close();
}
}
}

View File

@@ -0,0 +1,203 @@
namespace TweetDuck.Core.Other.Settings.Dialogs {
partial class DialogSettingsManage {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.btnCancel = new System.Windows.Forms.Button();
this.btnContinue = new System.Windows.Forms.Button();
this.cbConfig = new System.Windows.Forms.CheckBox();
this.cbSession = new System.Windows.Forms.CheckBox();
this.cbPluginData = new System.Windows.Forms.CheckBox();
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
this.panelExport = new System.Windows.Forms.Panel();
this.panelDecision = new System.Windows.Forms.Panel();
this.radioReset = new System.Windows.Forms.RadioButton();
this.radioExport = new System.Windows.Forms.RadioButton();
this.radioImport = new System.Windows.Forms.RadioButton();
this.panelExport.SuspendLayout();
this.panelDecision.SuspendLayout();
this.SuspendLayout();
//
// btnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.AutoSize = true;
this.btnCancel.Location = new System.Drawing.Point(176, 97);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.btnCancel.Size = new System.Drawing.Size(56, 23);
this.btnCancel.TabIndex = 4;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// btnContinue
//
this.btnContinue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnContinue.AutoSize = true;
this.btnContinue.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnContinue.Enabled = false;
this.btnContinue.Location = new System.Drawing.Point(125, 97);
this.btnContinue.Name = "btnContinue";
this.btnContinue.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.btnContinue.Size = new System.Drawing.Size(45, 23);
this.btnContinue.TabIndex = 3;
this.btnContinue.Text = "Next";
this.btnContinue.UseVisualStyleBackColor = true;
this.btnContinue.Click += new System.EventHandler(this.btnContinue_Click);
//
// cbConfig
//
this.cbConfig.AutoSize = true;
this.cbConfig.Location = new System.Drawing.Point(0, 3);
this.cbConfig.Name = "cbConfig";
this.cbConfig.Size = new System.Drawing.Size(104, 17);
this.cbConfig.TabIndex = 0;
this.cbConfig.Text = "Program Options";
this.toolTip.SetToolTip(this.cbConfig, "Interface, notification, and update options.");
this.cbConfig.UseVisualStyleBackColor = true;
this.cbConfig.CheckedChanged += new System.EventHandler(this.cbConfig_CheckedChanged);
//
// cbSession
//
this.cbSession.AutoSize = true;
this.cbSession.Location = new System.Drawing.Point(0, 27);
this.cbSession.Name = "cbSession";
this.cbSession.Size = new System.Drawing.Size(92, 17);
this.cbSession.TabIndex = 1;
this.cbSession.Text = "Login Session";
this.toolTip.SetToolTip(this.cbSession, "A token that allows logging into the\r\ncurrent TweetDeck account.");
this.cbSession.UseVisualStyleBackColor = true;
this.cbSession.CheckedChanged += new System.EventHandler(this.cbSession_CheckedChanged);
//
// cbPluginData
//
this.cbPluginData.AutoSize = true;
this.cbPluginData.Location = new System.Drawing.Point(0, 51);
this.cbPluginData.Name = "cbPluginData";
this.cbPluginData.Size = new System.Drawing.Size(81, 17);
this.cbPluginData.TabIndex = 2;
this.cbPluginData.Text = "Plugin Data";
this.toolTip.SetToolTip(this.cbPluginData, "Data files generated by plugins.\r\nDoes not include the plugins themselves.");
this.cbPluginData.UseVisualStyleBackColor = true;
this.cbPluginData.CheckedChanged += new System.EventHandler(this.cbPluginData_CheckedChanged);
//
// panelExport
//
this.panelExport.Controls.Add(this.cbConfig);
this.panelExport.Controls.Add(this.cbPluginData);
this.panelExport.Controls.Add(this.cbSession);
this.panelExport.Location = new System.Drawing.Point(12, 12);
this.panelExport.Name = "panelExport";
this.panelExport.Size = new System.Drawing.Size(220, 79);
this.panelExport.TabIndex = 5;
this.panelExport.Visible = false;
//
// panelDecision
//
this.panelDecision.Controls.Add(this.radioReset);
this.panelDecision.Controls.Add(this.radioExport);
this.panelDecision.Controls.Add(this.radioImport);
this.panelDecision.Location = new System.Drawing.Point(12, 12);
this.panelDecision.Name = "panelDecision";
this.panelDecision.Size = new System.Drawing.Size(220, 79);
this.panelDecision.TabIndex = 6;
//
// radioReset
//
this.radioReset.AutoSize = true;
this.radioReset.Location = new System.Drawing.Point(3, 49);
this.radioReset.Name = "radioReset";
this.radioReset.Size = new System.Drawing.Size(104, 17);
this.radioReset.TabIndex = 2;
this.radioReset.TabStop = true;
this.radioReset.Text = "Restore Defaults";
this.radioReset.UseVisualStyleBackColor = true;
this.radioReset.CheckedChanged += new System.EventHandler(this.radioDecision_CheckedChanged);
//
// radioExport
//
this.radioExport.AutoSize = true;
this.radioExport.Location = new System.Drawing.Point(3, 26);
this.radioExport.Name = "radioExport";
this.radioExport.Size = new System.Drawing.Size(87, 17);
this.radioExport.TabIndex = 1;
this.radioExport.TabStop = true;
this.radioExport.Text = "Export Profile";
this.radioExport.UseVisualStyleBackColor = true;
this.radioExport.CheckedChanged += new System.EventHandler(this.radioDecision_CheckedChanged);
//
// radioImport
//
this.radioImport.AutoSize = true;
this.radioImport.Location = new System.Drawing.Point(3, 3);
this.radioImport.Name = "radioImport";
this.radioImport.Size = new System.Drawing.Size(86, 17);
this.radioImport.TabIndex = 0;
this.radioImport.TabStop = true;
this.radioImport.Text = "Import Profile";
this.radioImport.UseVisualStyleBackColor = true;
this.radioImport.CheckedChanged += new System.EventHandler(this.radioDecision_CheckedChanged);
//
// DialogSettingsManage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(244, 132);
this.Controls.Add(this.panelDecision);
this.Controls.Add(this.panelExport);
this.Controls.Add(this.btnContinue);
this.Controls.Add(this.btnCancel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(200, 170);
this.Name = "DialogSettingsManage";
this.ShowIcon = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Manage Options";
this.panelExport.ResumeLayout(false);
this.panelExport.PerformLayout();
this.panelDecision.ResumeLayout(false);
this.panelDecision.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Button btnContinue;
private System.Windows.Forms.CheckBox cbConfig;
private System.Windows.Forms.CheckBox cbSession;
private System.Windows.Forms.CheckBox cbPluginData;
private System.Windows.Forms.ToolTip toolTip;
private System.Windows.Forms.Panel panelExport;
private System.Windows.Forms.Panel panelDecision;
private System.Windows.Forms.RadioButton radioReset;
private System.Windows.Forms.RadioButton radioExport;
private System.Windows.Forms.RadioButton radioImport;
}
}

View File

@@ -0,0 +1,170 @@
using System;
using System.Windows.Forms;
using TweetDuck.Core.Other.Settings.Export;
using TweetDuck.Plugins;
namespace TweetDuck.Core.Other.Settings.Dialogs{
sealed partial class DialogSettingsManage : Form{
private enum State{
Deciding, Import, Export
}
public ExportFileFlags Flags{
get => selectedFlags;
set{
// this will call events and SetFlag, which also updates the UI
cbConfig.Checked = value.HasFlag(ExportFileFlags.Config);
cbSession.Checked = value.HasFlag(ExportFileFlags.Session);
cbPluginData.Checked = value.HasFlag(ExportFileFlags.PluginData);
}
}
public bool ShouldReloadUI { get; private set; }
private readonly PluginManager plugins;
private State currentState;
private ExportManager importManager;
private ExportFileFlags selectedFlags = ExportFileFlags.None;
public DialogSettingsManage(PluginManager plugins){
InitializeComponent();
this.plugins = plugins;
this.currentState = State.Deciding;
}
private void radioDecision_CheckedChanged(object sender, EventArgs e){
btnContinue.Enabled = true;
}
private void cbConfig_CheckedChanged(object sender, EventArgs e){
SetFlag(ExportFileFlags.Config, cbConfig.Checked);
}
private void cbSession_CheckedChanged(object sender, EventArgs e){
SetFlag(ExportFileFlags.Session, cbSession.Checked);
}
private void cbPluginData_CheckedChanged(object sender, EventArgs e){
SetFlag(ExportFileFlags.PluginData, cbPluginData.Checked);
}
private void btnContinue_Click(object sender, EventArgs e){
string file;
switch(currentState){
case State.Deciding:
// Reset
if (radioReset.Checked){
if (MessageBox.Show("This will reset all of your program options. Plugins will not be affected. Do you want to proceed?", "Reset "+Program.BrandName+" Options", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes){
Program.ResetConfig();
ShouldReloadUI = true;
DialogResult = DialogResult.OK;
Close();
}
return;
}
// Import
else if (radioImport.Checked){
using(OpenFileDialog dialog = new OpenFileDialog{
AutoUpgradeEnabled = true,
DereferenceLinks = true,
Title = "Import "+Program.BrandName+" Profile",
Filter = Program.BrandName+" Profile (*.tdsettings)|*.tdsettings"
}){
if (dialog.ShowDialog() != DialogResult.OK){
return;
}
file = dialog.FileName;
}
importManager = new ExportManager(file, plugins);
currentState = State.Import;
Text = "Import Profile";
Flags = importManager.GetImportFlags();
cbConfig.Enabled = cbConfig.Checked;
cbSession.Enabled = cbSession.Checked;
cbPluginData.Enabled = cbPluginData.Checked;
}
// Export
else if (radioExport.Checked){
currentState = State.Export;
Text = "Export Profile";
btnContinue.Text = "Export Profile";
Flags = ExportFileFlags.All & ~ExportFileFlags.Session;
}
// Continue...
panelDecision.Visible = false;
panelExport.Visible = true;
break;
case State.Import:
if (importManager.Import(Flags)){
if (!importManager.IsRestarting){
ShouldReloadUI = true;
}
}
else{
Program.Reporter.HandleException("Profile Import Error", "An exception happened while importing "+Program.BrandName+" profile.", true, importManager.LastException);
}
DialogResult = DialogResult.OK;
Close();
break;
case State.Export:
using(SaveFileDialog dialog = new SaveFileDialog{
AddExtension = true,
AutoUpgradeEnabled = true,
OverwritePrompt = true,
DefaultExt = "tdsettings",
FileName = Program.BrandName+".tdsettings",
Title = "Export "+Program.BrandName+" Profile",
Filter = Program.BrandName+" Profile (*.tdsettings)|*.tdsettings"
}){
if (dialog.ShowDialog() != DialogResult.OK){
return;
}
file = dialog.FileName;
}
Program.UserConfig.Save();
ExportManager manager = new ExportManager(file, plugins);
if (!manager.Export(Flags)){
Program.Reporter.HandleException("Profile Export Error", "An exception happened while exporting "+Program.BrandName+" profile.", true, manager.LastException);
}
DialogResult = DialogResult.OK;
Close();
break;
}
}
private void btnCancel_Click(object sender, EventArgs e){
DialogResult = DialogResult.Cancel;
Close();
}
private void SetFlag(ExportFileFlags flag, bool enable){
selectedFlags = enable ? selectedFlags | flag : selectedFlags & ~flag;
btnContinue.Enabled = selectedFlags != ExportFileFlags.None;
if (currentState == State.Import){
btnContinue.Text = selectedFlags.HasFlag(ExportFileFlags.Session) ? "Import && Restart" : "Import Profile";
}
}
}
}

View File

@@ -33,22 +33,23 @@
this.btnRestart = new System.Windows.Forms.Button(); this.btnRestart = new System.Windows.Forms.Button();
this.btnOpenAppFolder = new System.Windows.Forms.Button(); this.btnOpenAppFolder = new System.Windows.Forms.Button();
this.btnOpenDataFolder = new System.Windows.Forms.Button(); this.btnOpenDataFolder = new System.Windows.Forms.Button();
this.btnReset = new System.Windows.Forms.Button(); this.labelApp = new System.Windows.Forms.Label();
this.btnImport = new System.Windows.Forms.Button(); this.panelApp = new System.Windows.Forms.Panel();
this.btnExport = new System.Windows.Forms.Button(); this.labelPerformance = new System.Windows.Forms.Label();
this.groupPerformance = new System.Windows.Forms.GroupBox(); this.panelPerformance = new System.Windows.Forms.Panel();
this.groupConfiguration = new System.Windows.Forms.GroupBox(); this.panelConfiguration = new System.Windows.Forms.Panel();
this.groupApp = new System.Windows.Forms.GroupBox(); this.labelConfiguration = new System.Windows.Forms.Label();
this.groupPerformance.SuspendLayout(); this.panelApp.SuspendLayout();
this.groupConfiguration.SuspendLayout(); this.panelPerformance.SuspendLayout();
this.groupApp.SuspendLayout(); this.panelConfiguration.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// btnClearCache // btnClearCache
// //
this.btnClearCache.Location = new System.Drawing.Point(6, 44); this.btnClearCache.Location = new System.Drawing.Point(5, 28);
this.btnClearCache.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.btnClearCache.Name = "btnClearCache"; this.btnClearCache.Name = "btnClearCache";
this.btnClearCache.Size = new System.Drawing.Size(171, 23); this.btnClearCache.Size = new System.Drawing.Size(144, 23);
this.btnClearCache.TabIndex = 1; this.btnClearCache.TabIndex = 1;
this.btnClearCache.Text = "Clear Cache (calculating)"; this.btnClearCache.Text = "Clear Cache (calculating)";
this.toolTip.SetToolTip(this.btnClearCache, "Clearing cache will free up space taken by downloaded images and other resources." + this.toolTip.SetToolTip(this.btnClearCache, "Clearing cache will free up space taken by downloaded images and other resources." +
@@ -58,7 +59,7 @@
// checkHardwareAcceleration // checkHardwareAcceleration
// //
this.checkHardwareAcceleration.AutoSize = true; this.checkHardwareAcceleration.AutoSize = true;
this.checkHardwareAcceleration.Location = new System.Drawing.Point(9, 21); this.checkHardwareAcceleration.Location = new System.Drawing.Point(6, 5);
this.checkHardwareAcceleration.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3); this.checkHardwareAcceleration.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3);
this.checkHardwareAcceleration.Name = "checkHardwareAcceleration"; this.checkHardwareAcceleration.Name = "checkHardwareAcceleration";
this.checkHardwareAcceleration.Size = new System.Drawing.Size(134, 17); this.checkHardwareAcceleration.Size = new System.Drawing.Size(134, 17);
@@ -70,9 +71,10 @@
// //
// btnEditCefArgs // btnEditCefArgs
// //
this.btnEditCefArgs.Location = new System.Drawing.Point(6, 19); this.btnEditCefArgs.Location = new System.Drawing.Point(5, 3);
this.btnEditCefArgs.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.btnEditCefArgs.Name = "btnEditCefArgs"; this.btnEditCefArgs.Name = "btnEditCefArgs";
this.btnEditCefArgs.Size = new System.Drawing.Size(171, 23); this.btnEditCefArgs.Size = new System.Drawing.Size(144, 23);
this.btnEditCefArgs.TabIndex = 0; this.btnEditCefArgs.TabIndex = 0;
this.btnEditCefArgs.Text = "Edit CEF Arguments"; this.btnEditCefArgs.Text = "Edit CEF Arguments";
this.toolTip.SetToolTip(this.btnEditCefArgs, "Set custom command line arguments for Chromium Embedded Framework."); this.toolTip.SetToolTip(this.btnEditCefArgs, "Set custom command line arguments for Chromium Embedded Framework.");
@@ -80,9 +82,9 @@
// //
// btnEditCSS // btnEditCSS
// //
this.btnEditCSS.Location = new System.Drawing.Point(6, 48); this.btnEditCSS.Location = new System.Drawing.Point(155, 3);
this.btnEditCSS.Name = "btnEditCSS"; this.btnEditCSS.Name = "btnEditCSS";
this.btnEditCSS.Size = new System.Drawing.Size(171, 23); this.btnEditCSS.Size = new System.Drawing.Size(144, 23);
this.btnEditCSS.TabIndex = 1; this.btnEditCSS.TabIndex = 1;
this.btnEditCSS.Text = "Edit CSS"; this.btnEditCSS.Text = "Edit CSS";
this.toolTip.SetToolTip(this.btnEditCSS, "Set custom CSS for browser and notification windows."); this.toolTip.SetToolTip(this.btnEditCSS, "Set custom CSS for browser and notification windows.");
@@ -90,9 +92,9 @@
// //
// btnRestartArgs // btnRestartArgs
// //
this.btnRestartArgs.Location = new System.Drawing.Point(6, 106); this.btnRestartArgs.Location = new System.Drawing.Point(155, 32);
this.btnRestartArgs.Name = "btnRestartArgs"; this.btnRestartArgs.Name = "btnRestartArgs";
this.btnRestartArgs.Size = new System.Drawing.Size(171, 23); this.btnRestartArgs.Size = new System.Drawing.Size(144, 23);
this.btnRestartArgs.TabIndex = 3; this.btnRestartArgs.TabIndex = 3;
this.btnRestartArgs.Text = "Restart with Arguments"; this.btnRestartArgs.Text = "Restart with Arguments";
this.toolTip.SetToolTip(this.btnRestartArgs, "Restarts the program with customizable\r\ncommand line arguments."); this.toolTip.SetToolTip(this.btnRestartArgs, "Restarts the program with customizable\r\ncommand line arguments.");
@@ -100,9 +102,9 @@
// //
// btnRestart // btnRestart
// //
this.btnRestart.Location = new System.Drawing.Point(6, 77); this.btnRestart.Location = new System.Drawing.Point(155, 3);
this.btnRestart.Name = "btnRestart"; this.btnRestart.Name = "btnRestart";
this.btnRestart.Size = new System.Drawing.Size(171, 23); this.btnRestart.Size = new System.Drawing.Size(144, 23);
this.btnRestart.TabIndex = 2; this.btnRestart.TabIndex = 2;
this.btnRestart.Text = "Restart the Program"; this.btnRestart.Text = "Restart the Program";
this.toolTip.SetToolTip(this.btnRestart, "Restarts the program using the same command\r\nline arguments that were used at lau" + this.toolTip.SetToolTip(this.btnRestart, "Restarts the program using the same command\r\nline arguments that were used at lau" +
@@ -111,9 +113,10 @@
// //
// btnOpenAppFolder // btnOpenAppFolder
// //
this.btnOpenAppFolder.Location = new System.Drawing.Point(6, 19); this.btnOpenAppFolder.Location = new System.Drawing.Point(5, 3);
this.btnOpenAppFolder.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.btnOpenAppFolder.Name = "btnOpenAppFolder"; this.btnOpenAppFolder.Name = "btnOpenAppFolder";
this.btnOpenAppFolder.Size = new System.Drawing.Size(171, 23); this.btnOpenAppFolder.Size = new System.Drawing.Size(144, 23);
this.btnOpenAppFolder.TabIndex = 0; this.btnOpenAppFolder.TabIndex = 0;
this.btnOpenAppFolder.Text = "Open Program Folder"; this.btnOpenAppFolder.Text = "Open Program Folder";
this.toolTip.SetToolTip(this.btnOpenAppFolder, "Opens the folder where the app is located."); this.toolTip.SetToolTip(this.btnOpenAppFolder, "Opens the folder where the app is located.");
@@ -121,102 +124,99 @@
// //
// btnOpenDataFolder // btnOpenDataFolder
// //
this.btnOpenDataFolder.Location = new System.Drawing.Point(6, 48); this.btnOpenDataFolder.Location = new System.Drawing.Point(5, 32);
this.btnOpenDataFolder.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.btnOpenDataFolder.Name = "btnOpenDataFolder"; this.btnOpenDataFolder.Name = "btnOpenDataFolder";
this.btnOpenDataFolder.Size = new System.Drawing.Size(171, 23); this.btnOpenDataFolder.Size = new System.Drawing.Size(144, 23);
this.btnOpenDataFolder.TabIndex = 1; this.btnOpenDataFolder.TabIndex = 1;
this.btnOpenDataFolder.Text = "Open Data Folder"; this.btnOpenDataFolder.Text = "Open Data Folder";
this.toolTip.SetToolTip(this.btnOpenDataFolder, "Opens the folder where your profile data is located."); this.toolTip.SetToolTip(this.btnOpenDataFolder, "Opens the folder where your profile data is located.");
this.btnOpenDataFolder.UseVisualStyleBackColor = true; this.btnOpenDataFolder.UseVisualStyleBackColor = true;
// //
// btnReset // labelApp
// //
this.btnReset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.labelApp.AutoSize = true;
this.btnReset.AutoSize = true; this.labelApp.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.btnReset.Location = new System.Drawing.Point(190, 268); this.labelApp.Location = new System.Drawing.Point(6, 8);
this.btnReset.Name = "btnReset"; this.labelApp.Margin = new System.Windows.Forms.Padding(0, 2, 0, 0);
this.btnReset.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0); this.labelApp.Name = "labelApp";
this.btnReset.Size = new System.Drawing.Size(102, 23); this.labelApp.Size = new System.Drawing.Size(38, 20);
this.btnReset.TabIndex = 5; this.labelApp.TabIndex = 0;
this.btnReset.Text = "Restore Defaults"; this.labelApp.Text = "App";
this.btnReset.UseVisualStyleBackColor = true;
// //
// btnImport // panelApp
// //
this.btnImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.panelApp.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
this.btnImport.AutoSize = true; | System.Windows.Forms.AnchorStyles.Right)));
this.btnImport.Location = new System.Drawing.Point(100, 268); this.panelApp.Controls.Add(this.btnOpenDataFolder);
this.btnImport.Name = "btnImport"; this.panelApp.Controls.Add(this.btnOpenAppFolder);
this.btnImport.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0); this.panelApp.Controls.Add(this.btnRestart);
this.btnImport.Size = new System.Drawing.Size(84, 23); this.panelApp.Controls.Add(this.btnRestartArgs);
this.btnImport.TabIndex = 4; this.panelApp.Location = new System.Drawing.Point(9, 31);
this.btnImport.Text = "Import Profile"; this.panelApp.Name = "panelApp";
this.btnImport.UseVisualStyleBackColor = true; this.panelApp.Size = new System.Drawing.Size(322, 59);
this.panelApp.TabIndex = 1;
// //
// btnExport // labelPerformance
// //
this.btnExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.labelPerformance.AutoSize = true;
this.btnExport.AutoSize = true; this.labelPerformance.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.btnExport.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.labelPerformance.Location = new System.Drawing.Point(6, 114);
this.btnExport.Location = new System.Drawing.Point(9, 268); this.labelPerformance.Margin = new System.Windows.Forms.Padding(0, 21, 0, 0);
this.btnExport.Name = "btnExport"; this.labelPerformance.Name = "labelPerformance";
this.btnExport.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0); this.labelPerformance.Size = new System.Drawing.Size(100, 20);
this.btnExport.Size = new System.Drawing.Size(85, 23); this.labelPerformance.TabIndex = 2;
this.btnExport.TabIndex = 3; this.labelPerformance.Text = "Performance";
this.btnExport.Text = "Export Profile";
this.btnExport.UseVisualStyleBackColor = true;
// //
// groupPerformance // panelPerformance
// //
this.groupPerformance.Controls.Add(this.checkHardwareAcceleration); this.panelPerformance.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
this.groupPerformance.Controls.Add(this.btnClearCache); | System.Windows.Forms.AnchorStyles.Right)));
this.groupPerformance.Location = new System.Drawing.Point(9, 9); this.panelPerformance.Controls.Add(this.checkHardwareAcceleration);
this.groupPerformance.Name = "groupPerformance"; this.panelPerformance.Controls.Add(this.btnClearCache);
this.groupPerformance.Size = new System.Drawing.Size(183, 74); this.panelPerformance.Location = new System.Drawing.Point(9, 137);
this.groupPerformance.TabIndex = 0; this.panelPerformance.Name = "panelPerformance";
this.groupPerformance.TabStop = false; this.panelPerformance.Size = new System.Drawing.Size(322, 54);
this.groupPerformance.Text = "Performance"; this.panelPerformance.TabIndex = 3;
// //
// groupConfiguration // panelConfiguration
// //
this.groupConfiguration.Controls.Add(this.btnEditCSS); this.panelConfiguration.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
this.groupConfiguration.Controls.Add(this.btnEditCefArgs); | System.Windows.Forms.AnchorStyles.Right)));
this.groupConfiguration.Location = new System.Drawing.Point(9, 89); this.panelConfiguration.Controls.Add(this.btnEditCSS);
this.groupConfiguration.Name = "groupConfiguration"; this.panelConfiguration.Controls.Add(this.btnEditCefArgs);
this.groupConfiguration.Size = new System.Drawing.Size(183, 77); this.panelConfiguration.Location = new System.Drawing.Point(9, 238);
this.groupConfiguration.TabIndex = 1; this.panelConfiguration.Name = "panelConfiguration";
this.groupConfiguration.TabStop = false; this.panelConfiguration.Size = new System.Drawing.Size(322, 29);
this.groupConfiguration.Text = "Configuration"; this.panelConfiguration.TabIndex = 5;
// //
// groupApp // labelConfiguration
// //
this.groupApp.Controls.Add(this.btnOpenDataFolder); this.labelConfiguration.AutoSize = true;
this.groupApp.Controls.Add(this.btnOpenAppFolder); this.labelConfiguration.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.groupApp.Controls.Add(this.btnRestartArgs); this.labelConfiguration.Location = new System.Drawing.Point(6, 215);
this.groupApp.Controls.Add(this.btnRestart); this.labelConfiguration.Margin = new System.Windows.Forms.Padding(0, 21, 0, 0);
this.groupApp.Location = new System.Drawing.Point(198, 9); this.labelConfiguration.Name = "labelConfiguration";
this.groupApp.Name = "groupApp"; this.labelConfiguration.Size = new System.Drawing.Size(104, 20);
this.groupApp.Size = new System.Drawing.Size(183, 135); this.labelConfiguration.TabIndex = 4;
this.groupApp.TabIndex = 2; this.labelConfiguration.Text = "Configuration";
this.groupApp.TabStop = false;
this.groupApp.Text = "App";
// //
// TabSettingsAdvanced // TabSettingsAdvanced
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupApp); this.Controls.Add(this.labelConfiguration);
this.Controls.Add(this.groupConfiguration); this.Controls.Add(this.panelConfiguration);
this.Controls.Add(this.groupPerformance); this.Controls.Add(this.panelPerformance);
this.Controls.Add(this.btnReset); this.Controls.Add(this.labelPerformance);
this.Controls.Add(this.btnImport); this.Controls.Add(this.panelApp);
this.Controls.Add(this.btnExport); this.Controls.Add(this.labelApp);
this.Name = "TabSettingsAdvanced"; this.Name = "TabSettingsAdvanced";
this.Size = new System.Drawing.Size(478, 300); this.Size = new System.Drawing.Size(340, 277);
this.groupPerformance.ResumeLayout(false); this.panelApp.ResumeLayout(false);
this.groupPerformance.PerformLayout(); this.panelPerformance.ResumeLayout(false);
this.groupConfiguration.ResumeLayout(false); this.panelPerformance.PerformLayout();
this.groupApp.ResumeLayout(false); this.panelConfiguration.ResumeLayout(false);
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
@@ -227,17 +227,17 @@
private System.Windows.Forms.Button btnClearCache; private System.Windows.Forms.Button btnClearCache;
private System.Windows.Forms.CheckBox checkHardwareAcceleration; private System.Windows.Forms.CheckBox checkHardwareAcceleration;
private System.Windows.Forms.ToolTip toolTip; private System.Windows.Forms.ToolTip toolTip;
private System.Windows.Forms.Button btnReset;
private System.Windows.Forms.Button btnImport;
private System.Windows.Forms.Button btnExport;
private System.Windows.Forms.GroupBox groupPerformance;
private System.Windows.Forms.GroupBox groupConfiguration;
private System.Windows.Forms.Button btnEditCefArgs; private System.Windows.Forms.Button btnEditCefArgs;
private System.Windows.Forms.Button btnEditCSS; private System.Windows.Forms.Button btnEditCSS;
private System.Windows.Forms.GroupBox groupApp;
private System.Windows.Forms.Button btnRestartArgs; private System.Windows.Forms.Button btnRestartArgs;
private System.Windows.Forms.Button btnRestart; private System.Windows.Forms.Button btnRestart;
private System.Windows.Forms.Button btnOpenAppFolder; private System.Windows.Forms.Button btnOpenAppFolder;
private System.Windows.Forms.Button btnOpenDataFolder; private System.Windows.Forms.Button btnOpenDataFolder;
private System.Windows.Forms.Label labelApp;
private System.Windows.Forms.Panel panelApp;
private System.Windows.Forms.Label labelPerformance;
private System.Windows.Forms.Panel panelPerformance;
private System.Windows.Forms.Panel panelConfiguration;
private System.Windows.Forms.Label labelConfiguration;
} }
} }

View File

@@ -4,20 +4,16 @@ using System.Windows.Forms;
using TweetDuck.Configuration; using TweetDuck.Configuration;
using TweetDuck.Core.Controls; using TweetDuck.Core.Controls;
using TweetDuck.Core.Other.Settings.Dialogs; using TweetDuck.Core.Other.Settings.Dialogs;
using TweetDuck.Core.Other.Settings.Export;
using TweetDuck.Core.Utils; using TweetDuck.Core.Utils;
using TweetDuck.Plugins;
namespace TweetDuck.Core.Other.Settings{ namespace TweetDuck.Core.Other.Settings{
partial class TabSettingsAdvanced : BaseTabSettings{ partial class TabSettingsAdvanced : BaseTabSettings{
private readonly Action<string> reinjectBrowserCSS; private readonly Action<string> reinjectBrowserCSS;
private readonly PluginManager plugins;
public TabSettingsAdvanced(Action<string> reinjectBrowserCSS, PluginManager plugins){ public TabSettingsAdvanced(Action<string> reinjectBrowserCSS){
InitializeComponent(); InitializeComponent();
this.reinjectBrowserCSS = reinjectBrowserCSS; this.reinjectBrowserCSS = reinjectBrowserCSS;
this.plugins = plugins;
if (SystemConfig.IsHardwareAccelerationSupported){ if (SystemConfig.IsHardwareAccelerationSupported){
checkHardwareAcceleration.Checked = Program.SystemConfig.HardwareAcceleration; checkHardwareAcceleration.Checked = Program.SystemConfig.HardwareAcceleration;
@@ -43,10 +39,6 @@ namespace TweetDuck.Core.Other.Settings{
btnEditCefArgs.Click += btnEditCefArgs_Click; btnEditCefArgs.Click += btnEditCefArgs_Click;
btnEditCSS.Click += btnEditCSS_Click; btnEditCSS.Click += btnEditCSS_Click;
btnExport.Click += btnExport_Click;
btnImport.Click += btnImport_Click;
btnReset.Click += btnReset_Click;
btnOpenAppFolder.Click += btnOpenAppFolder_Click; btnOpenAppFolder.Click += btnOpenAppFolder_Click;
btnOpenDataFolder.Click += btnOpenDataFolder_Click; btnOpenDataFolder.Click += btnOpenDataFolder_Click;
@@ -112,88 +104,6 @@ namespace TweetDuck.Core.Other.Settings{
NativeMethods.SetFormDisabled(ParentForm, true); NativeMethods.SetFormDisabled(ParentForm, true);
} }
private void btnExport_Click(object sender, EventArgs e){
ExportFileFlags flags;
using(DialogSettingsExport dialog = DialogSettingsExport.Export()){
if (dialog.ShowDialog() != DialogResult.OK){
return;
}
flags = dialog.Flags;
}
string file;
using(SaveFileDialog dialog = new SaveFileDialog{
AddExtension = true,
AutoUpgradeEnabled = true,
OverwritePrompt = true,
DefaultExt = "tdsettings",
FileName = Program.BrandName+".tdsettings",
Title = "Export "+Program.BrandName+" Profile",
Filter = Program.BrandName+" Profile (*.tdsettings)|*.tdsettings"
}){
if (dialog.ShowDialog() != DialogResult.OK){
return;
}
file = dialog.FileName;
}
Program.UserConfig.Save();
ExportManager manager = new ExportManager(file, plugins);
if (!manager.Export(flags)){
Program.Reporter.HandleException("Profile Export Error", "An exception happened while exporting "+Program.BrandName+" profile.", true, manager.LastException);
}
}
private void btnImport_Click(object sender, EventArgs e){
string file;
using(OpenFileDialog dialog = new OpenFileDialog{
AutoUpgradeEnabled = true,
DereferenceLinks = true,
Title = "Import "+Program.BrandName+" Profile",
Filter = Program.BrandName+" Profile (*.tdsettings)|*.tdsettings"
}){
if (dialog.ShowDialog() != DialogResult.OK){
return;
}
file = dialog.FileName;
}
ExportManager manager = new ExportManager(file, plugins);
ExportFileFlags flags;
using(DialogSettingsExport dialog = DialogSettingsExport.Import(manager.GetImportFlags())){
if (dialog.ShowDialog() != DialogResult.OK){
return;
}
flags = dialog.Flags;
}
if (manager.Import(flags)){
if (!manager.IsRestarting){
((FormSettings)ParentForm).ReloadUI();
}
}
else{
Program.Reporter.HandleException("Profile Import Error", "An exception happened while importing "+Program.BrandName+" profile.", true, manager.LastException);
}
}
private void btnReset_Click(object sender, EventArgs e){
if (MessageBox.Show("This will reset all of your program options. Plugins will not be affected. Do you want to proceed?", "Reset "+Program.BrandName+" Options", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes){
Program.ResetConfig();
((FormSettings)ParentForm).ReloadUI();
}
}
private void btnOpenAppFolder_Click(object sender, EventArgs e){ private void btnOpenAppFolder_Click(object sender, EventArgs e){
using(Process.Start("explorer.exe", "\""+Program.ProgramPath+"\"")){} using(Process.Start("explorer.exe", "\""+Program.ProgramPath+"\"")){}
} }

View File

@@ -33,23 +33,26 @@
this.btnCheckUpdates = new System.Windows.Forms.Button(); this.btnCheckUpdates = new System.Windows.Forms.Button();
this.labelZoomValue = new System.Windows.Forms.Label(); this.labelZoomValue = new System.Windows.Forms.Label();
this.checkSwitchAccountSelectors = new System.Windows.Forms.CheckBox(); this.checkSwitchAccountSelectors = new System.Windows.Forms.CheckBox();
this.groupTray = new System.Windows.Forms.GroupBox();
this.labelTrayIcon = new System.Windows.Forms.Label(); this.labelTrayIcon = new System.Windows.Forms.Label();
this.groupInterface = new System.Windows.Forms.GroupBox();
this.trackBarZoom = new System.Windows.Forms.TrackBar(); this.trackBarZoom = new System.Windows.Forms.TrackBar();
this.labelZoom = new System.Windows.Forms.Label(); this.labelZoom = new System.Windows.Forms.Label();
this.groupUpdates = new System.Windows.Forms.GroupBox();
this.zoomUpdateTimer = new System.Windows.Forms.Timer(this.components); this.zoomUpdateTimer = new System.Windows.Forms.Timer(this.components);
this.groupTray.SuspendLayout(); this.labelUI = new System.Windows.Forms.Label();
this.groupInterface.SuspendLayout(); this.panelUI = new System.Windows.Forms.Panel();
this.labelTray = new System.Windows.Forms.Label();
this.panelUpdates = new System.Windows.Forms.Panel();
this.panelTray = new System.Windows.Forms.Panel();
this.labelUpdates = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.trackBarZoom)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.trackBarZoom)).BeginInit();
this.groupUpdates.SuspendLayout(); this.panelUI.SuspendLayout();
this.panelUpdates.SuspendLayout();
this.panelTray.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// checkExpandLinks // checkExpandLinks
// //
this.checkExpandLinks.AutoSize = true; this.checkExpandLinks.AutoSize = true;
this.checkExpandLinks.Location = new System.Drawing.Point(9, 21); this.checkExpandLinks.Location = new System.Drawing.Point(6, 5);
this.checkExpandLinks.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3); this.checkExpandLinks.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3);
this.checkExpandLinks.Name = "checkExpandLinks"; this.checkExpandLinks.Name = "checkExpandLinks";
this.checkExpandLinks.Size = new System.Drawing.Size(166, 17); this.checkExpandLinks.Size = new System.Drawing.Size(166, 17);
@@ -63,16 +66,17 @@
// //
this.comboBoxTrayType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxTrayType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxTrayType.FormattingEnabled = true; this.comboBoxTrayType.FormattingEnabled = true;
this.comboBoxTrayType.Location = new System.Drawing.Point(6, 19); this.comboBoxTrayType.Location = new System.Drawing.Point(5, 5);
this.comboBoxTrayType.Margin = new System.Windows.Forms.Padding(5, 5, 3, 3);
this.comboBoxTrayType.Name = "comboBoxTrayType"; this.comboBoxTrayType.Name = "comboBoxTrayType";
this.comboBoxTrayType.Size = new System.Drawing.Size(171, 21); this.comboBoxTrayType.Size = new System.Drawing.Size(144, 21);
this.comboBoxTrayType.TabIndex = 0; this.comboBoxTrayType.TabIndex = 0;
this.toolTip.SetToolTip(this.comboBoxTrayType, "Changes behavior of the Tray icon.\r\nRight-click the icon for an action menu."); this.toolTip.SetToolTip(this.comboBoxTrayType, "Changes behavior of the Tray icon.\r\nRight-click the icon for an action menu.");
// //
// checkTrayHighlight // checkTrayHighlight
// //
this.checkTrayHighlight.AutoSize = true; this.checkTrayHighlight.AutoSize = true;
this.checkTrayHighlight.Location = new System.Drawing.Point(9, 70); this.checkTrayHighlight.Location = new System.Drawing.Point(6, 56);
this.checkTrayHighlight.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3); this.checkTrayHighlight.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3);
this.checkTrayHighlight.Name = "checkTrayHighlight"; this.checkTrayHighlight.Name = "checkTrayHighlight";
this.checkTrayHighlight.Size = new System.Drawing.Size(103, 17); this.checkTrayHighlight.Size = new System.Drawing.Size(103, 17);
@@ -85,7 +89,7 @@
// checkSpellCheck // checkSpellCheck
// //
this.checkSpellCheck.AutoSize = true; this.checkSpellCheck.AutoSize = true;
this.checkSpellCheck.Location = new System.Drawing.Point(9, 67); this.checkSpellCheck.Location = new System.Drawing.Point(6, 51);
this.checkSpellCheck.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3); this.checkSpellCheck.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
this.checkSpellCheck.Name = "checkSpellCheck"; this.checkSpellCheck.Name = "checkSpellCheck";
this.checkSpellCheck.Size = new System.Drawing.Size(119, 17); this.checkSpellCheck.Size = new System.Drawing.Size(119, 17);
@@ -97,7 +101,7 @@
// checkUpdateNotifications // checkUpdateNotifications
// //
this.checkUpdateNotifications.AutoSize = true; this.checkUpdateNotifications.AutoSize = true;
this.checkUpdateNotifications.Location = new System.Drawing.Point(9, 21); this.checkUpdateNotifications.Location = new System.Drawing.Point(6, 5);
this.checkUpdateNotifications.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3); this.checkUpdateNotifications.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3);
this.checkUpdateNotifications.Name = "checkUpdateNotifications"; this.checkUpdateNotifications.Name = "checkUpdateNotifications";
this.checkUpdateNotifications.Size = new System.Drawing.Size(165, 17); this.checkUpdateNotifications.Size = new System.Drawing.Size(165, 17);
@@ -109,9 +113,10 @@
// //
// btnCheckUpdates // btnCheckUpdates
// //
this.btnCheckUpdates.Location = new System.Drawing.Point(6, 44); this.btnCheckUpdates.Location = new System.Drawing.Point(5, 28);
this.btnCheckUpdates.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.btnCheckUpdates.Name = "btnCheckUpdates"; this.btnCheckUpdates.Name = "btnCheckUpdates";
this.btnCheckUpdates.Size = new System.Drawing.Size(171, 23); this.btnCheckUpdates.Size = new System.Drawing.Size(144, 23);
this.btnCheckUpdates.TabIndex = 1; this.btnCheckUpdates.TabIndex = 1;
this.btnCheckUpdates.Text = "Check Updates Now"; this.btnCheckUpdates.Text = "Check Updates Now";
this.toolTip.SetToolTip(this.btnCheckUpdates, "Forces an update check, even for updates that had been dismissed."); this.toolTip.SetToolTip(this.btnCheckUpdates, "Forces an update check, even for updates that had been dismissed.");
@@ -119,9 +124,8 @@
// //
// labelZoomValue // labelZoomValue
// //
this.labelZoomValue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.labelZoomValue.BackColor = System.Drawing.Color.Transparent; this.labelZoomValue.BackColor = System.Drawing.Color.Transparent;
this.labelZoomValue.Location = new System.Drawing.Point(139, 116); this.labelZoomValue.Location = new System.Drawing.Point(141, 100);
this.labelZoomValue.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); this.labelZoomValue.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
this.labelZoomValue.Name = "labelZoomValue"; this.labelZoomValue.Name = "labelZoomValue";
this.labelZoomValue.Size = new System.Drawing.Size(38, 13); this.labelZoomValue.Size = new System.Drawing.Size(38, 13);
@@ -133,7 +137,7 @@
// checkSwitchAccountSelectors // checkSwitchAccountSelectors
// //
this.checkSwitchAccountSelectors.AutoSize = true; this.checkSwitchAccountSelectors.AutoSize = true;
this.checkSwitchAccountSelectors.Location = new System.Drawing.Point(9, 44); this.checkSwitchAccountSelectors.Location = new System.Drawing.Point(6, 28);
this.checkSwitchAccountSelectors.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3); this.checkSwitchAccountSelectors.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
this.checkSwitchAccountSelectors.Name = "checkSwitchAccountSelectors"; this.checkSwitchAccountSelectors.Name = "checkSwitchAccountSelectors";
this.checkSwitchAccountSelectors.Size = new System.Drawing.Size(172, 17); this.checkSwitchAccountSelectors.Size = new System.Drawing.Size(172, 17);
@@ -143,54 +147,26 @@
"iple accounts, instead of TweetDeck\'s default behavior."); "iple accounts, instead of TweetDeck\'s default behavior.");
this.checkSwitchAccountSelectors.UseVisualStyleBackColor = true; this.checkSwitchAccountSelectors.UseVisualStyleBackColor = true;
// //
// groupTray
//
this.groupTray.Controls.Add(this.checkTrayHighlight);
this.groupTray.Controls.Add(this.labelTrayIcon);
this.groupTray.Controls.Add(this.comboBoxTrayType);
this.groupTray.Location = new System.Drawing.Point(9, 168);
this.groupTray.Name = "groupTray";
this.groupTray.Size = new System.Drawing.Size(183, 93);
this.groupTray.TabIndex = 1;
this.groupTray.TabStop = false;
this.groupTray.Text = "System Tray";
//
// labelTrayIcon // labelTrayIcon
// //
this.labelTrayIcon.AutoSize = true; this.labelTrayIcon.AutoSize = true;
this.labelTrayIcon.Location = new System.Drawing.Point(6, 52); this.labelTrayIcon.Location = new System.Drawing.Point(3, 38);
this.labelTrayIcon.Margin = new System.Windows.Forms.Padding(3, 9, 3, 0); this.labelTrayIcon.Margin = new System.Windows.Forms.Padding(3, 9, 3, 0);
this.labelTrayIcon.Name = "labelTrayIcon"; this.labelTrayIcon.Name = "labelTrayIcon";
this.labelTrayIcon.Size = new System.Drawing.Size(52, 13); this.labelTrayIcon.Size = new System.Drawing.Size(52, 13);
this.labelTrayIcon.TabIndex = 1; this.labelTrayIcon.TabIndex = 1;
this.labelTrayIcon.Text = "Tray Icon"; this.labelTrayIcon.Text = "Tray Icon";
// //
// groupInterface
//
this.groupInterface.Controls.Add(this.checkSwitchAccountSelectors);
this.groupInterface.Controls.Add(this.labelZoomValue);
this.groupInterface.Controls.Add(this.trackBarZoom);
this.groupInterface.Controls.Add(this.labelZoom);
this.groupInterface.Controls.Add(this.checkSpellCheck);
this.groupInterface.Controls.Add(this.checkExpandLinks);
this.groupInterface.Location = new System.Drawing.Point(9, 9);
this.groupInterface.Name = "groupInterface";
this.groupInterface.Size = new System.Drawing.Size(183, 153);
this.groupInterface.TabIndex = 0;
this.groupInterface.TabStop = false;
this.groupInterface.Text = "User Interface";
//
// trackBarZoom // trackBarZoom
// //
this.trackBarZoom.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.trackBarZoom.AutoSize = false; this.trackBarZoom.AutoSize = false;
this.trackBarZoom.BackColor = System.Drawing.SystemColors.Control;
this.trackBarZoom.LargeChange = 25; this.trackBarZoom.LargeChange = 25;
this.trackBarZoom.Location = new System.Drawing.Point(6, 115); this.trackBarZoom.Location = new System.Drawing.Point(3, 99);
this.trackBarZoom.Maximum = 200; this.trackBarZoom.Maximum = 200;
this.trackBarZoom.Minimum = 50; this.trackBarZoom.Minimum = 50;
this.trackBarZoom.Name = "trackBarZoom"; this.trackBarZoom.Name = "trackBarZoom";
this.trackBarZoom.Size = new System.Drawing.Size(141, 30); this.trackBarZoom.Size = new System.Drawing.Size(148, 30);
this.trackBarZoom.SmallChange = 5; this.trackBarZoom.SmallChange = 5;
this.trackBarZoom.TabIndex = 4; this.trackBarZoom.TabIndex = 4;
this.trackBarZoom.TickFrequency = 25; this.trackBarZoom.TickFrequency = 25;
@@ -198,49 +174,111 @@
// //
// labelZoom // labelZoom
// //
this.labelZoom.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.labelZoom.AutoSize = true; this.labelZoom.AutoSize = true;
this.labelZoom.Location = new System.Drawing.Point(5, 99); this.labelZoom.Location = new System.Drawing.Point(3, 83);
this.labelZoom.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0); this.labelZoom.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
this.labelZoom.Name = "labelZoom"; this.labelZoom.Name = "labelZoom";
this.labelZoom.Size = new System.Drawing.Size(34, 13); this.labelZoom.Size = new System.Drawing.Size(34, 13);
this.labelZoom.TabIndex = 3; this.labelZoom.TabIndex = 3;
this.labelZoom.Text = "Zoom"; this.labelZoom.Text = "Zoom";
// //
// groupUpdates
//
this.groupUpdates.Controls.Add(this.checkUpdateNotifications);
this.groupUpdates.Controls.Add(this.btnCheckUpdates);
this.groupUpdates.Location = new System.Drawing.Point(198, 9);
this.groupUpdates.Name = "groupUpdates";
this.groupUpdates.Size = new System.Drawing.Size(183, 75);
this.groupUpdates.TabIndex = 2;
this.groupUpdates.TabStop = false;
this.groupUpdates.Text = "Updates";
//
// zoomUpdateTimer // zoomUpdateTimer
// //
this.zoomUpdateTimer.Interval = 250; this.zoomUpdateTimer.Interval = 250;
this.zoomUpdateTimer.Tick += new System.EventHandler(this.zoomUpdateTimer_Tick); this.zoomUpdateTimer.Tick += new System.EventHandler(this.zoomUpdateTimer_Tick);
// //
// labelUI
//
this.labelUI.AutoSize = true;
this.labelUI.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.labelUI.Location = new System.Drawing.Point(6, 8);
this.labelUI.Margin = new System.Windows.Forms.Padding(0, 2, 0, 0);
this.labelUI.Name = "labelUI";
this.labelUI.Size = new System.Drawing.Size(111, 20);
this.labelUI.TabIndex = 0;
this.labelUI.Text = "User Interface";
//
// panelUI
//
this.panelUI.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panelUI.Controls.Add(this.checkExpandLinks);
this.panelUI.Controls.Add(this.checkSwitchAccountSelectors);
this.panelUI.Controls.Add(this.checkSpellCheck);
this.panelUI.Controls.Add(this.labelZoom);
this.panelUI.Controls.Add(this.labelZoomValue);
this.panelUI.Controls.Add(this.trackBarZoom);
this.panelUI.Location = new System.Drawing.Point(9, 31);
this.panelUI.Name = "panelUI";
this.panelUI.Size = new System.Drawing.Size(322, 134);
this.panelUI.TabIndex = 1;
//
// labelTray
//
this.labelTray.AutoSize = true;
this.labelTray.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.labelTray.Location = new System.Drawing.Point(5, 189);
this.labelTray.Margin = new System.Windows.Forms.Padding(0, 21, 0, 0);
this.labelTray.Name = "labelTray";
this.labelTray.Size = new System.Drawing.Size(96, 20);
this.labelTray.TabIndex = 2;
this.labelTray.Text = "System Tray";
//
// panelUpdates
//
this.panelUpdates.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panelUpdates.Controls.Add(this.checkUpdateNotifications);
this.panelUpdates.Controls.Add(this.btnCheckUpdates);
this.panelUpdates.Location = new System.Drawing.Point(9, 335);
this.panelUpdates.Name = "panelUpdates";
this.panelUpdates.Size = new System.Drawing.Size(322, 55);
this.panelUpdates.TabIndex = 5;
//
// panelTray
//
this.panelTray.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panelTray.Controls.Add(this.checkTrayHighlight);
this.panelTray.Controls.Add(this.comboBoxTrayType);
this.panelTray.Controls.Add(this.labelTrayIcon);
this.panelTray.Location = new System.Drawing.Point(9, 212);
this.panelTray.Name = "panelTray";
this.panelTray.Size = new System.Drawing.Size(322, 76);
this.panelTray.TabIndex = 3;
//
// labelUpdates
//
this.labelUpdates.AutoSize = true;
this.labelUpdates.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.labelUpdates.Location = new System.Drawing.Point(6, 312);
this.labelUpdates.Margin = new System.Windows.Forms.Padding(0, 21, 0, 0);
this.labelUpdates.Name = "labelUpdates";
this.labelUpdates.Size = new System.Drawing.Size(70, 20);
this.labelUpdates.TabIndex = 4;
this.labelUpdates.Text = "Updates";
//
// TabSettingsGeneral // TabSettingsGeneral
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupUpdates); this.Controls.Add(this.labelUpdates);
this.Controls.Add(this.groupInterface); this.Controls.Add(this.panelTray);
this.Controls.Add(this.groupTray); this.Controls.Add(this.panelUpdates);
this.Controls.Add(this.labelTray);
this.Controls.Add(this.panelUI);
this.Controls.Add(this.labelUI);
this.Name = "TabSettingsGeneral"; this.Name = "TabSettingsGeneral";
this.Size = new System.Drawing.Size(478, 300); this.Size = new System.Drawing.Size(340, 400);
this.groupTray.ResumeLayout(false);
this.groupTray.PerformLayout();
this.groupInterface.ResumeLayout(false);
this.groupInterface.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.trackBarZoom)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.trackBarZoom)).EndInit();
this.groupUpdates.ResumeLayout(false); this.panelUI.ResumeLayout(false);
this.groupUpdates.PerformLayout(); this.panelUI.PerformLayout();
this.panelUpdates.ResumeLayout(false);
this.panelUpdates.PerformLayout();
this.panelTray.ResumeLayout(false);
this.panelTray.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout();
} }
@@ -249,12 +287,9 @@
private System.Windows.Forms.CheckBox checkExpandLinks; private System.Windows.Forms.CheckBox checkExpandLinks;
private System.Windows.Forms.ComboBox comboBoxTrayType; private System.Windows.Forms.ComboBox comboBoxTrayType;
private System.Windows.Forms.ToolTip toolTip; private System.Windows.Forms.ToolTip toolTip;
private System.Windows.Forms.GroupBox groupTray;
private System.Windows.Forms.GroupBox groupInterface;
private System.Windows.Forms.Label labelTrayIcon; private System.Windows.Forms.Label labelTrayIcon;
private System.Windows.Forms.CheckBox checkTrayHighlight; private System.Windows.Forms.CheckBox checkTrayHighlight;
private System.Windows.Forms.CheckBox checkSpellCheck; private System.Windows.Forms.CheckBox checkSpellCheck;
private System.Windows.Forms.GroupBox groupUpdates;
private System.Windows.Forms.CheckBox checkUpdateNotifications; private System.Windows.Forms.CheckBox checkUpdateNotifications;
private System.Windows.Forms.Button btnCheckUpdates; private System.Windows.Forms.Button btnCheckUpdates;
private System.Windows.Forms.Label labelZoom; private System.Windows.Forms.Label labelZoom;
@@ -262,5 +297,11 @@
private System.Windows.Forms.TrackBar trackBarZoom; private System.Windows.Forms.TrackBar trackBarZoom;
private System.Windows.Forms.Timer zoomUpdateTimer; private System.Windows.Forms.Timer zoomUpdateTimer;
private System.Windows.Forms.CheckBox checkSwitchAccountSelectors; private System.Windows.Forms.CheckBox checkSwitchAccountSelectors;
private System.Windows.Forms.Label labelUI;
private System.Windows.Forms.Panel panelUI;
private System.Windows.Forms.Label labelTray;
private System.Windows.Forms.Panel panelUpdates;
private System.Windows.Forms.Panel panelTray;
private System.Windows.Forms.Label labelUpdates;
} }
} }

View File

@@ -66,10 +66,7 @@ namespace TweetDuck.Core.Other.Settings{
} }
private void trackBarZoom_ValueChanged(object sender, EventArgs e){ private void trackBarZoom_ValueChanged(object sender, EventArgs e){
if (trackBarZoom.Value % trackBarZoom.SmallChange != 0){ if (trackBarZoom.AlignValueToTick()){
trackBarZoom.Value = trackBarZoom.SmallChange*(int)Math.Floor(((double)trackBarZoom.Value/trackBarZoom.SmallChange)+0.5);
}
else{
zoomUpdateTimer.Stop(); zoomUpdateTimer.Stop();
zoomUpdateTimer.Start(); zoomUpdateTimer.Start();
labelZoomValue.Text = trackBarZoom.Value+"%"; labelZoomValue.Text = trackBarZoom.Value+"%";

View File

@@ -24,7 +24,6 @@
/// </summary> /// </summary>
private void InitializeComponent() { private void InitializeComponent() {
this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container();
this.groupNotificationLocation = new System.Windows.Forms.GroupBox();
this.labelEdgeDistanceValue = new System.Windows.Forms.Label(); this.labelEdgeDistanceValue = new System.Windows.Forms.Label();
this.labelDisplay = new System.Windows.Forms.Label(); this.labelDisplay = new System.Windows.Forms.Label();
this.comboBoxDisplay = new System.Windows.Forms.ComboBox(); this.comboBoxDisplay = new System.Windows.Forms.ComboBox();
@@ -35,14 +34,12 @@
this.radioLocTR = new System.Windows.Forms.RadioButton(); this.radioLocTR = new System.Windows.Forms.RadioButton();
this.radioLocTL = new System.Windows.Forms.RadioButton(); this.radioLocTL = new System.Windows.Forms.RadioButton();
this.trackBarEdgeDistance = new System.Windows.Forms.TrackBar(); this.trackBarEdgeDistance = new System.Windows.Forms.TrackBar();
this.groupNotificationDuration = new System.Windows.Forms.GroupBox();
this.tableLayoutDurationButtons = new System.Windows.Forms.TableLayoutPanel(); this.tableLayoutDurationButtons = new System.Windows.Forms.TableLayoutPanel();
this.btnDurationMedium = new TweetDuck.Core.Controls.FlatButton(); this.btnDurationMedium = new TweetDuck.Core.Controls.FlatButton();
this.btnDurationLong = new TweetDuck.Core.Controls.FlatButton(); this.btnDurationLong = new TweetDuck.Core.Controls.FlatButton();
this.btnDurationShort = new TweetDuck.Core.Controls.FlatButton(); this.btnDurationShort = new TweetDuck.Core.Controls.FlatButton();
this.labelDurationValue = new System.Windows.Forms.Label(); this.labelDurationValue = new System.Windows.Forms.Label();
this.trackBarDuration = new System.Windows.Forms.TrackBar(); this.trackBarDuration = new System.Windows.Forms.TrackBar();
this.groupUserInterface = new System.Windows.Forms.GroupBox();
this.checkSkipOnLinkClick = new System.Windows.Forms.CheckBox(); this.checkSkipOnLinkClick = new System.Windows.Forms.CheckBox();
this.checkColumnName = new System.Windows.Forms.CheckBox(); this.checkColumnName = new System.Windows.Forms.CheckBox();
this.labelIdlePause = new System.Windows.Forms.Label(); this.labelIdlePause = new System.Windows.Forms.Label();
@@ -51,37 +48,31 @@
this.checkTimerCountDown = new System.Windows.Forms.CheckBox(); this.checkTimerCountDown = new System.Windows.Forms.CheckBox();
this.checkNotificationTimer = new System.Windows.Forms.CheckBox(); this.checkNotificationTimer = new System.Windows.Forms.CheckBox();
this.toolTip = new System.Windows.Forms.ToolTip(this.components); this.toolTip = new System.Windows.Forms.ToolTip(this.components);
this.groupNotificationLocation.SuspendLayout(); this.labelGeneral = new System.Windows.Forms.Label();
this.panelGeneral = new System.Windows.Forms.Panel();
this.labelScrollSpeedValue = new System.Windows.Forms.Label();
this.trackBarScrollSpeed = new System.Windows.Forms.TrackBar();
this.labelScrollSpeed = new System.Windows.Forms.Label();
this.labelLocation = new System.Windows.Forms.Label();
this.panelLocation = new System.Windows.Forms.Panel();
this.panelTimer = new System.Windows.Forms.Panel();
this.labelDuration = new System.Windows.Forms.Label();
this.labelTimer = new System.Windows.Forms.Label();
this.labelMiscellaneous = new System.Windows.Forms.Label();
this.panelMiscellaneous = new System.Windows.Forms.Panel();
((System.ComponentModel.ISupportInitialize)(this.trackBarEdgeDistance)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.trackBarEdgeDistance)).BeginInit();
this.groupNotificationDuration.SuspendLayout();
this.tableLayoutDurationButtons.SuspendLayout(); this.tableLayoutDurationButtons.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.trackBarDuration)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.trackBarDuration)).BeginInit();
this.groupUserInterface.SuspendLayout(); this.panelGeneral.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.trackBarScrollSpeed)).BeginInit();
this.panelLocation.SuspendLayout();
this.panelTimer.SuspendLayout();
this.panelMiscellaneous.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// groupNotificationLocation
//
this.groupNotificationLocation.Controls.Add(this.labelEdgeDistanceValue);
this.groupNotificationLocation.Controls.Add(this.labelDisplay);
this.groupNotificationLocation.Controls.Add(this.comboBoxDisplay);
this.groupNotificationLocation.Controls.Add(this.labelEdgeDistance);
this.groupNotificationLocation.Controls.Add(this.radioLocCustom);
this.groupNotificationLocation.Controls.Add(this.radioLocBR);
this.groupNotificationLocation.Controls.Add(this.radioLocBL);
this.groupNotificationLocation.Controls.Add(this.radioLocTR);
this.groupNotificationLocation.Controls.Add(this.radioLocTL);
this.groupNotificationLocation.Controls.Add(this.trackBarEdgeDistance);
this.groupNotificationLocation.Location = new System.Drawing.Point(198, 9);
this.groupNotificationLocation.Name = "groupNotificationLocation";
this.groupNotificationLocation.Size = new System.Drawing.Size(183, 282);
this.groupNotificationLocation.TabIndex = 2;
this.groupNotificationLocation.TabStop = false;
this.groupNotificationLocation.Text = "Location";
//
// labelEdgeDistanceValue // labelEdgeDistanceValue
// //
this.labelEdgeDistanceValue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.labelEdgeDistanceValue.Location = new System.Drawing.Point(147, 129);
this.labelEdgeDistanceValue.Location = new System.Drawing.Point(143, 217);
this.labelEdgeDistanceValue.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); this.labelEdgeDistanceValue.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
this.labelEdgeDistanceValue.Name = "labelEdgeDistanceValue"; this.labelEdgeDistanceValue.Name = "labelEdgeDistanceValue";
this.labelEdgeDistanceValue.Size = new System.Drawing.Size(34, 13); this.labelEdgeDistanceValue.Size = new System.Drawing.Size(34, 13);
@@ -92,7 +83,7 @@
// labelDisplay // labelDisplay
// //
this.labelDisplay.AutoSize = true; this.labelDisplay.AutoSize = true;
this.labelDisplay.Location = new System.Drawing.Point(5, 144); this.labelDisplay.Location = new System.Drawing.Point(3, 60);
this.labelDisplay.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0); this.labelDisplay.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
this.labelDisplay.Name = "labelDisplay"; this.labelDisplay.Name = "labelDisplay";
this.labelDisplay.Size = new System.Drawing.Size(41, 13); this.labelDisplay.Size = new System.Drawing.Size(41, 13);
@@ -105,15 +96,16 @@
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.comboBoxDisplay.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxDisplay.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxDisplay.FormattingEnabled = true; this.comboBoxDisplay.FormattingEnabled = true;
this.comboBoxDisplay.Location = new System.Drawing.Point(6, 160); this.comboBoxDisplay.Location = new System.Drawing.Point(5, 76);
this.comboBoxDisplay.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.comboBoxDisplay.Name = "comboBoxDisplay"; this.comboBoxDisplay.Name = "comboBoxDisplay";
this.comboBoxDisplay.Size = new System.Drawing.Size(171, 21); this.comboBoxDisplay.Size = new System.Drawing.Size(144, 21);
this.comboBoxDisplay.TabIndex = 6; this.comboBoxDisplay.TabIndex = 6;
// //
// labelEdgeDistance // labelEdgeDistance
// //
this.labelEdgeDistance.AutoSize = true; this.labelEdgeDistance.AutoSize = true;
this.labelEdgeDistance.Location = new System.Drawing.Point(5, 196); this.labelEdgeDistance.Location = new System.Drawing.Point(3, 112);
this.labelEdgeDistance.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0); this.labelEdgeDistance.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
this.labelEdgeDistance.Name = "labelEdgeDistance"; this.labelEdgeDistance.Name = "labelEdgeDistance";
this.labelEdgeDistance.Size = new System.Drawing.Size(103, 13); this.labelEdgeDistance.Size = new System.Drawing.Size(103, 13);
@@ -122,11 +114,10 @@
// //
// radioLocCustom // radioLocCustom
// //
this.radioLocCustom.AutoSize = true; this.radioLocCustom.Location = new System.Drawing.Point(205, 4);
this.radioLocCustom.Location = new System.Drawing.Point(8, 112); this.radioLocCustom.Margin = new System.Windows.Forms.Padding(5, 4, 3, 3);
this.radioLocCustom.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.radioLocCustom.Name = "radioLocCustom"; this.radioLocCustom.Name = "radioLocCustom";
this.radioLocCustom.Size = new System.Drawing.Size(60, 17); this.radioLocCustom.Size = new System.Drawing.Size(65, 41);
this.radioLocCustom.TabIndex = 4; this.radioLocCustom.TabIndex = 4;
this.radioLocCustom.TabStop = true; this.radioLocCustom.TabStop = true;
this.radioLocCustom.Text = "Custom"; this.radioLocCustom.Text = "Custom";
@@ -135,11 +126,10 @@
// //
// radioLocBR // radioLocBR
// //
this.radioLocBR.AutoSize = true; this.radioLocBR.Location = new System.Drawing.Point(105, 28);
this.radioLocBR.Location = new System.Drawing.Point(8, 89); this.radioLocBR.Margin = new System.Windows.Forms.Padding(5, 4, 3, 3);
this.radioLocBR.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.radioLocBR.Name = "radioLocBR"; this.radioLocBR.Name = "radioLocBR";
this.radioLocBR.Size = new System.Drawing.Size(86, 17); this.radioLocBR.Size = new System.Drawing.Size(92, 17);
this.radioLocBR.TabIndex = 3; this.radioLocBR.TabIndex = 3;
this.radioLocBR.TabStop = true; this.radioLocBR.TabStop = true;
this.radioLocBR.Text = "Bottom Right"; this.radioLocBR.Text = "Bottom Right";
@@ -147,11 +137,10 @@
// //
// radioLocBL // radioLocBL
// //
this.radioLocBL.AutoSize = true; this.radioLocBL.Location = new System.Drawing.Point(5, 28);
this.radioLocBL.Location = new System.Drawing.Point(8, 66); this.radioLocBL.Margin = new System.Windows.Forms.Padding(5, 4, 3, 3);
this.radioLocBL.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.radioLocBL.Name = "radioLocBL"; this.radioLocBL.Name = "radioLocBL";
this.radioLocBL.Size = new System.Drawing.Size(79, 17); this.radioLocBL.Size = new System.Drawing.Size(92, 17);
this.radioLocBL.TabIndex = 2; this.radioLocBL.TabIndex = 2;
this.radioLocBL.TabStop = true; this.radioLocBL.TabStop = true;
this.radioLocBL.Text = "Bottom Left"; this.radioLocBL.Text = "Bottom Left";
@@ -159,11 +148,10 @@
// //
// radioLocTR // radioLocTR
// //
this.radioLocTR.AutoSize = true; this.radioLocTR.Location = new System.Drawing.Point(105, 4);
this.radioLocTR.Location = new System.Drawing.Point(8, 43); this.radioLocTR.Margin = new System.Windows.Forms.Padding(5, 4, 3, 3);
this.radioLocTR.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.radioLocTR.Name = "radioLocTR"; this.radioLocTR.Name = "radioLocTR";
this.radioLocTR.Size = new System.Drawing.Size(72, 17); this.radioLocTR.Size = new System.Drawing.Size(92, 17);
this.radioLocTR.TabIndex = 1; this.radioLocTR.TabIndex = 1;
this.radioLocTR.TabStop = true; this.radioLocTR.TabStop = true;
this.radioLocTR.Text = "Top Right"; this.radioLocTR.Text = "Top Right";
@@ -171,11 +159,10 @@
// //
// radioLocTL // radioLocTL
// //
this.radioLocTL.AutoSize = true; this.radioLocTL.Location = new System.Drawing.Point(5, 4);
this.radioLocTL.Location = new System.Drawing.Point(8, 20);
this.radioLocTL.Margin = new System.Windows.Forms.Padding(5, 4, 3, 3); this.radioLocTL.Margin = new System.Windows.Forms.Padding(5, 4, 3, 3);
this.radioLocTL.Name = "radioLocTL"; this.radioLocTL.Name = "radioLocTL";
this.radioLocTL.Size = new System.Drawing.Size(65, 17); this.radioLocTL.Size = new System.Drawing.Size(92, 17);
this.radioLocTL.TabIndex = 0; this.radioLocTL.TabIndex = 0;
this.radioLocTL.TabStop = true; this.radioLocTL.TabStop = true;
this.radioLocTL.Text = "Top Left"; this.radioLocTL.Text = "Top Left";
@@ -183,36 +170,20 @@
// //
// trackBarEdgeDistance // trackBarEdgeDistance
// //
this.trackBarEdgeDistance.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.trackBarEdgeDistance.AutoSize = false; this.trackBarEdgeDistance.AutoSize = false;
this.trackBarEdgeDistance.LargeChange = 8; this.trackBarEdgeDistance.LargeChange = 8;
this.trackBarEdgeDistance.Location = new System.Drawing.Point(8, 212); this.trackBarEdgeDistance.Location = new System.Drawing.Point(5, 128);
this.trackBarEdgeDistance.Maximum = 40; this.trackBarEdgeDistance.Maximum = 40;
this.trackBarEdgeDistance.Minimum = 8; this.trackBarEdgeDistance.Minimum = 8;
this.trackBarEdgeDistance.Name = "trackBarEdgeDistance"; this.trackBarEdgeDistance.Name = "trackBarEdgeDistance";
this.trackBarEdgeDistance.Size = new System.Drawing.Size(141, 30); this.trackBarEdgeDistance.Size = new System.Drawing.Size(148, 30);
this.trackBarEdgeDistance.SmallChange = 2; this.trackBarEdgeDistance.SmallChange = 2;
this.trackBarEdgeDistance.TabIndex = 8; this.trackBarEdgeDistance.TabIndex = 8;
this.trackBarEdgeDistance.TickFrequency = 4; this.trackBarEdgeDistance.TickFrequency = 4;
this.trackBarEdgeDistance.Value = 8; this.trackBarEdgeDistance.Value = 8;
// //
// groupNotificationDuration
//
this.groupNotificationDuration.Controls.Add(this.tableLayoutDurationButtons);
this.groupNotificationDuration.Controls.Add(this.labelDurationValue);
this.groupNotificationDuration.Controls.Add(this.trackBarDuration);
this.groupNotificationDuration.Location = new System.Drawing.Point(9, 202);
this.groupNotificationDuration.Name = "groupNotificationDuration";
this.groupNotificationDuration.Size = new System.Drawing.Size(183, 89);
this.groupNotificationDuration.TabIndex = 1;
this.groupNotificationDuration.TabStop = false;
this.groupNotificationDuration.Text = "Duration";
//
// tableLayoutDurationButtons // tableLayoutDurationButtons
// //
this.tableLayoutDurationButtons.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tableLayoutDurationButtons.ColumnCount = 3; this.tableLayoutDurationButtons.ColumnCount = 3;
this.tableLayoutDurationButtons.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 32F)); this.tableLayoutDurationButtons.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 32F));
this.tableLayoutDurationButtons.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 36F)); this.tableLayoutDurationButtons.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 36F));
@@ -220,12 +191,12 @@
this.tableLayoutDurationButtons.Controls.Add(this.btnDurationMedium, 0, 0); this.tableLayoutDurationButtons.Controls.Add(this.btnDurationMedium, 0, 0);
this.tableLayoutDurationButtons.Controls.Add(this.btnDurationLong, 1, 0); this.tableLayoutDurationButtons.Controls.Add(this.btnDurationLong, 1, 0);
this.tableLayoutDurationButtons.Controls.Add(this.btnDurationShort, 0, 0); this.tableLayoutDurationButtons.Controls.Add(this.btnDurationShort, 0, 0);
this.tableLayoutDurationButtons.Location = new System.Drawing.Point(6, 56); this.tableLayoutDurationButtons.Location = new System.Drawing.Point(3, 113);
this.tableLayoutDurationButtons.Name = "tableLayoutDurationButtons"; this.tableLayoutDurationButtons.Name = "tableLayoutDurationButtons";
this.tableLayoutDurationButtons.RowCount = 1; this.tableLayoutDurationButtons.RowCount = 1;
this.tableLayoutDurationButtons.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutDurationButtons.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutDurationButtons.Size = new System.Drawing.Size(171, 27); this.tableLayoutDurationButtons.Size = new System.Drawing.Size(171, 27);
this.tableLayoutDurationButtons.TabIndex = 2; this.tableLayoutDurationButtons.TabIndex = 5;
// //
// btnDurationMedium // btnDurationMedium
// //
@@ -274,55 +245,36 @@
// //
// labelDurationValue // labelDurationValue
// //
this.labelDurationValue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.labelDurationValue.BackColor = System.Drawing.Color.Transparent; this.labelDurationValue.BackColor = System.Drawing.Color.Transparent;
this.labelDurationValue.Location = new System.Drawing.Point(129, 20); this.labelDurationValue.Location = new System.Drawing.Point(147, 77);
this.labelDurationValue.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); this.labelDurationValue.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
this.labelDurationValue.Name = "labelDurationValue"; this.labelDurationValue.Name = "labelDurationValue";
this.labelDurationValue.Size = new System.Drawing.Size(48, 13); this.labelDurationValue.Size = new System.Drawing.Size(48, 13);
this.labelDurationValue.TabIndex = 1; this.labelDurationValue.TabIndex = 4;
this.labelDurationValue.Text = "0 ms/c"; this.labelDurationValue.Text = "0 ms/c";
this.labelDurationValue.TextAlign = System.Drawing.ContentAlignment.TopRight; this.labelDurationValue.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.toolTip.SetToolTip(this.labelDurationValue, "Milliseconds per character."); this.toolTip.SetToolTip(this.labelDurationValue, "Milliseconds per character.");
// //
// trackBarDuration // trackBarDuration
// //
this.trackBarDuration.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.trackBarDuration.AutoSize = false; this.trackBarDuration.AutoSize = false;
this.trackBarDuration.Location = new System.Drawing.Point(6, 19); this.trackBarDuration.Location = new System.Drawing.Point(3, 76);
this.trackBarDuration.Maximum = 60; this.trackBarDuration.Maximum = 60;
this.trackBarDuration.Minimum = 10; this.trackBarDuration.Minimum = 10;
this.trackBarDuration.Name = "trackBarDuration"; this.trackBarDuration.Name = "trackBarDuration";
this.trackBarDuration.Size = new System.Drawing.Size(128, 30); this.trackBarDuration.Size = new System.Drawing.Size(148, 30);
this.trackBarDuration.TabIndex = 0; this.trackBarDuration.TabIndex = 3;
this.trackBarDuration.TickFrequency = 5; this.trackBarDuration.TickFrequency = 5;
this.trackBarDuration.Value = 25; this.trackBarDuration.Value = 25;
// //
// groupUserInterface
//
this.groupUserInterface.Controls.Add(this.checkSkipOnLinkClick);
this.groupUserInterface.Controls.Add(this.checkColumnName);
this.groupUserInterface.Controls.Add(this.labelIdlePause);
this.groupUserInterface.Controls.Add(this.comboBoxIdlePause);
this.groupUserInterface.Controls.Add(this.checkNonIntrusive);
this.groupUserInterface.Controls.Add(this.checkTimerCountDown);
this.groupUserInterface.Controls.Add(this.checkNotificationTimer);
this.groupUserInterface.Location = new System.Drawing.Point(9, 9);
this.groupUserInterface.Name = "groupUserInterface";
this.groupUserInterface.Size = new System.Drawing.Size(183, 187);
this.groupUserInterface.TabIndex = 0;
this.groupUserInterface.TabStop = false;
this.groupUserInterface.Text = "General";
//
// checkSkipOnLinkClick // checkSkipOnLinkClick
// //
this.checkSkipOnLinkClick.AutoSize = true; this.checkSkipOnLinkClick.AutoSize = true;
this.checkSkipOnLinkClick.Location = new System.Drawing.Point(9, 90); this.checkSkipOnLinkClick.Location = new System.Drawing.Point(6, 28);
this.checkSkipOnLinkClick.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3); this.checkSkipOnLinkClick.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
this.checkSkipOnLinkClick.Name = "checkSkipOnLinkClick"; this.checkSkipOnLinkClick.Name = "checkSkipOnLinkClick";
this.checkSkipOnLinkClick.Size = new System.Drawing.Size(113, 17); this.checkSkipOnLinkClick.Size = new System.Drawing.Size(113, 17);
this.checkSkipOnLinkClick.TabIndex = 3; this.checkSkipOnLinkClick.TabIndex = 1;
this.checkSkipOnLinkClick.Text = "Skip On Link Click"; this.checkSkipOnLinkClick.Text = "Skip On Link Click";
this.toolTip.SetToolTip(this.checkSkipOnLinkClick, "Skips current notification when a link\r\ninside the notification is clicked."); this.toolTip.SetToolTip(this.checkSkipOnLinkClick, "Skips current notification when a link\r\ninside the notification is clicked.");
this.checkSkipOnLinkClick.UseVisualStyleBackColor = true; this.checkSkipOnLinkClick.UseVisualStyleBackColor = true;
@@ -330,7 +282,7 @@
// checkColumnName // checkColumnName
// //
this.checkColumnName.AutoSize = true; this.checkColumnName.AutoSize = true;
this.checkColumnName.Location = new System.Drawing.Point(9, 21); this.checkColumnName.Location = new System.Drawing.Point(6, 5);
this.checkColumnName.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3); this.checkColumnName.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3);
this.checkColumnName.Name = "checkColumnName"; this.checkColumnName.Name = "checkColumnName";
this.checkColumnName.Size = new System.Drawing.Size(129, 17); this.checkColumnName.Size = new System.Drawing.Size(129, 17);
@@ -342,35 +294,33 @@
// //
// labelIdlePause // labelIdlePause
// //
this.labelIdlePause.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.labelIdlePause.AutoSize = true; this.labelIdlePause.AutoSize = true;
this.labelIdlePause.Location = new System.Drawing.Point(5, 141); this.labelIdlePause.Location = new System.Drawing.Point(3, 60);
this.labelIdlePause.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0); this.labelIdlePause.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
this.labelIdlePause.Name = "labelIdlePause"; this.labelIdlePause.Name = "labelIdlePause";
this.labelIdlePause.Size = new System.Drawing.Size(89, 13); this.labelIdlePause.Size = new System.Drawing.Size(89, 13);
this.labelIdlePause.TabIndex = 3; this.labelIdlePause.TabIndex = 2;
this.labelIdlePause.Text = "Pause When Idle"; this.labelIdlePause.Text = "Pause When Idle";
// //
// comboBoxIdlePause // comboBoxIdlePause
// //
this.comboBoxIdlePause.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.comboBoxIdlePause.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxIdlePause.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxIdlePause.FormattingEnabled = true; this.comboBoxIdlePause.FormattingEnabled = true;
this.comboBoxIdlePause.Location = new System.Drawing.Point(6, 157); this.comboBoxIdlePause.Location = new System.Drawing.Point(5, 76);
this.comboBoxIdlePause.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.comboBoxIdlePause.Name = "comboBoxIdlePause"; this.comboBoxIdlePause.Name = "comboBoxIdlePause";
this.comboBoxIdlePause.Size = new System.Drawing.Size(171, 21); this.comboBoxIdlePause.Size = new System.Drawing.Size(144, 21);
this.comboBoxIdlePause.TabIndex = 4; this.comboBoxIdlePause.TabIndex = 3;
this.toolTip.SetToolTip(this.comboBoxIdlePause, "Pauses new notifications after going idle for a set amount of time."); this.toolTip.SetToolTip(this.comboBoxIdlePause, "Pauses new notifications after going idle for a set amount of time.");
// //
// checkNonIntrusive // checkNonIntrusive
// //
this.checkNonIntrusive.AutoSize = true; this.checkNonIntrusive.AutoSize = true;
this.checkNonIntrusive.Location = new System.Drawing.Point(9, 113); this.checkNonIntrusive.Location = new System.Drawing.Point(6, 5);
this.checkNonIntrusive.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3); this.checkNonIntrusive.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3);
this.checkNonIntrusive.Name = "checkNonIntrusive"; this.checkNonIntrusive.Name = "checkNonIntrusive";
this.checkNonIntrusive.Size = new System.Drawing.Size(128, 17); this.checkNonIntrusive.Size = new System.Drawing.Size(128, 17);
this.checkNonIntrusive.TabIndex = 4; this.checkNonIntrusive.TabIndex = 0;
this.checkNonIntrusive.Text = "Non-Intrusive Popups"; this.checkNonIntrusive.Text = "Non-Intrusive Popups";
this.toolTip.SetToolTip(this.checkNonIntrusive, "When not idle and the cursor is within the notification window area,\r\nit will be " + this.toolTip.SetToolTip(this.checkNonIntrusive, "When not idle and the cursor is within the notification window area,\r\nit will be " +
"delayed until the cursor moves away to prevent accidental clicks."); "delayed until the cursor moves away to prevent accidental clicks.");
@@ -379,11 +329,11 @@
// checkTimerCountDown // checkTimerCountDown
// //
this.checkTimerCountDown.AutoSize = true; this.checkTimerCountDown.AutoSize = true;
this.checkTimerCountDown.Location = new System.Drawing.Point(9, 67); this.checkTimerCountDown.Location = new System.Drawing.Point(6, 28);
this.checkTimerCountDown.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3); this.checkTimerCountDown.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
this.checkTimerCountDown.Name = "checkTimerCountDown"; this.checkTimerCountDown.Name = "checkTimerCountDown";
this.checkTimerCountDown.Size = new System.Drawing.Size(119, 17); this.checkTimerCountDown.Size = new System.Drawing.Size(119, 17);
this.checkTimerCountDown.TabIndex = 2; this.checkTimerCountDown.TabIndex = 1;
this.checkTimerCountDown.Text = "Timer Counts Down"; this.checkTimerCountDown.Text = "Timer Counts Down";
this.toolTip.SetToolTip(this.checkTimerCountDown, "The notification timer counts down instead of up."); this.toolTip.SetToolTip(this.checkTimerCountDown, "The notification timer counts down instead of up.");
this.checkTimerCountDown.UseVisualStyleBackColor = true; this.checkTimerCountDown.UseVisualStyleBackColor = true;
@@ -391,39 +341,195 @@
// checkNotificationTimer // checkNotificationTimer
// //
this.checkNotificationTimer.AutoSize = true; this.checkNotificationTimer.AutoSize = true;
this.checkNotificationTimer.Location = new System.Drawing.Point(9, 44); this.checkNotificationTimer.Location = new System.Drawing.Point(6, 5);
this.checkNotificationTimer.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3); this.checkNotificationTimer.Margin = new System.Windows.Forms.Padding(6, 5, 3, 3);
this.checkNotificationTimer.Name = "checkNotificationTimer"; this.checkNotificationTimer.Name = "checkNotificationTimer";
this.checkNotificationTimer.Size = new System.Drawing.Size(145, 17); this.checkNotificationTimer.Size = new System.Drawing.Size(145, 17);
this.checkNotificationTimer.TabIndex = 1; this.checkNotificationTimer.TabIndex = 0;
this.checkNotificationTimer.Text = "Display Notification Timer"; this.checkNotificationTimer.Text = "Display Notification Timer";
this.checkNotificationTimer.UseVisualStyleBackColor = true; this.checkNotificationTimer.UseVisualStyleBackColor = true;
// //
// labelGeneral
//
this.labelGeneral.AutoSize = true;
this.labelGeneral.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.labelGeneral.Location = new System.Drawing.Point(6, 8);
this.labelGeneral.Margin = new System.Windows.Forms.Padding(0, 2, 0, 0);
this.labelGeneral.Name = "labelGeneral";
this.labelGeneral.Size = new System.Drawing.Size(66, 20);
this.labelGeneral.TabIndex = 0;
this.labelGeneral.Text = "General";
//
// panelGeneral
//
this.panelGeneral.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panelGeneral.Controls.Add(this.checkColumnName);
this.panelGeneral.Controls.Add(this.checkSkipOnLinkClick);
this.panelGeneral.Controls.Add(this.labelIdlePause);
this.panelGeneral.Controls.Add(this.comboBoxIdlePause);
this.panelGeneral.Location = new System.Drawing.Point(9, 31);
this.panelGeneral.Name = "panelGeneral";
this.panelGeneral.Size = new System.Drawing.Size(322, 103);
this.panelGeneral.TabIndex = 1;
//
// labelScrollSpeedValue
//
this.labelScrollSpeedValue.Location = new System.Drawing.Point(147, 54);
this.labelScrollSpeedValue.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
this.labelScrollSpeedValue.Name = "labelScrollSpeedValue";
this.labelScrollSpeedValue.Size = new System.Drawing.Size(34, 13);
this.labelScrollSpeedValue.TabIndex = 3;
this.labelScrollSpeedValue.Text = "100%";
this.labelScrollSpeedValue.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// trackBarScrollSpeed
//
this.trackBarScrollSpeed.AutoSize = false;
this.trackBarScrollSpeed.LargeChange = 25;
this.trackBarScrollSpeed.Location = new System.Drawing.Point(5, 53);
this.trackBarScrollSpeed.Maximum = 200;
this.trackBarScrollSpeed.Minimum = 25;
this.trackBarScrollSpeed.Name = "trackBarScrollSpeed";
this.trackBarScrollSpeed.Size = new System.Drawing.Size(148, 30);
this.trackBarScrollSpeed.SmallChange = 25;
this.trackBarScrollSpeed.TabIndex = 2;
this.trackBarScrollSpeed.TickFrequency = 25;
this.trackBarScrollSpeed.Value = 100;
//
// labelScrollSpeed
//
this.labelScrollSpeed.AutoSize = true;
this.labelScrollSpeed.Location = new System.Drawing.Point(3, 37);
this.labelScrollSpeed.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
this.labelScrollSpeed.Name = "labelScrollSpeed";
this.labelScrollSpeed.Size = new System.Drawing.Size(67, 13);
this.labelScrollSpeed.TabIndex = 1;
this.labelScrollSpeed.Text = "Scroll Speed";
//
// labelLocation
//
this.labelLocation.AutoSize = true;
this.labelLocation.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.labelLocation.Location = new System.Drawing.Point(6, 158);
this.labelLocation.Margin = new System.Windows.Forms.Padding(0, 21, 0, 0);
this.labelLocation.Name = "labelLocation";
this.labelLocation.Size = new System.Drawing.Size(70, 20);
this.labelLocation.TabIndex = 2;
this.labelLocation.Text = "Location";
//
// panelLocation
//
this.panelLocation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panelLocation.Controls.Add(this.labelEdgeDistanceValue);
this.panelLocation.Controls.Add(this.radioLocTL);
this.panelLocation.Controls.Add(this.labelDisplay);
this.panelLocation.Controls.Add(this.trackBarEdgeDistance);
this.panelLocation.Controls.Add(this.comboBoxDisplay);
this.panelLocation.Controls.Add(this.radioLocTR);
this.panelLocation.Controls.Add(this.labelEdgeDistance);
this.panelLocation.Controls.Add(this.radioLocBL);
this.panelLocation.Controls.Add(this.radioLocCustom);
this.panelLocation.Controls.Add(this.radioLocBR);
this.panelLocation.Location = new System.Drawing.Point(9, 181);
this.panelLocation.Name = "panelLocation";
this.panelLocation.Size = new System.Drawing.Size(322, 165);
this.panelLocation.TabIndex = 3;
//
// panelTimer
//
this.panelTimer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panelTimer.Controls.Add(this.labelDuration);
this.panelTimer.Controls.Add(this.checkNotificationTimer);
this.panelTimer.Controls.Add(this.tableLayoutDurationButtons);
this.panelTimer.Controls.Add(this.checkTimerCountDown);
this.panelTimer.Controls.Add(this.labelDurationValue);
this.panelTimer.Controls.Add(this.trackBarDuration);
this.panelTimer.Location = new System.Drawing.Point(9, 393);
this.panelTimer.Name = "panelTimer";
this.panelTimer.Size = new System.Drawing.Size(322, 144);
this.panelTimer.TabIndex = 5;
//
// labelDuration
//
this.labelDuration.AutoSize = true;
this.labelDuration.Location = new System.Drawing.Point(3, 60);
this.labelDuration.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
this.labelDuration.Name = "labelDuration";
this.labelDuration.Size = new System.Drawing.Size(47, 13);
this.labelDuration.TabIndex = 2;
this.labelDuration.Text = "Duration";
//
// labelTimer
//
this.labelTimer.AutoSize = true;
this.labelTimer.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.labelTimer.Location = new System.Drawing.Point(6, 370);
this.labelTimer.Margin = new System.Windows.Forms.Padding(0, 21, 0, 0);
this.labelTimer.Name = "labelTimer";
this.labelTimer.Size = new System.Drawing.Size(48, 20);
this.labelTimer.TabIndex = 4;
this.labelTimer.Text = "Timer";
//
// labelMiscellaneous
//
this.labelMiscellaneous.AutoSize = true;
this.labelMiscellaneous.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.labelMiscellaneous.Location = new System.Drawing.Point(6, 561);
this.labelMiscellaneous.Margin = new System.Windows.Forms.Padding(0, 21, 0, 0);
this.labelMiscellaneous.Name = "labelMiscellaneous";
this.labelMiscellaneous.Size = new System.Drawing.Size(109, 20);
this.labelMiscellaneous.TabIndex = 6;
this.labelMiscellaneous.Text = "Miscellaneous";
//
// panelMiscellaneous
//
this.panelMiscellaneous.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panelMiscellaneous.Controls.Add(this.labelScrollSpeedValue);
this.panelMiscellaneous.Controls.Add(this.trackBarScrollSpeed);
this.panelMiscellaneous.Controls.Add(this.checkNonIntrusive);
this.panelMiscellaneous.Controls.Add(this.labelScrollSpeed);
this.panelMiscellaneous.Location = new System.Drawing.Point(9, 584);
this.panelMiscellaneous.Name = "panelMiscellaneous";
this.panelMiscellaneous.Size = new System.Drawing.Size(322, 90);
this.panelMiscellaneous.TabIndex = 7;
//
// TabSettingsNotifications // TabSettingsNotifications
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupUserInterface); this.Controls.Add(this.panelMiscellaneous);
this.Controls.Add(this.groupNotificationDuration); this.Controls.Add(this.labelMiscellaneous);
this.Controls.Add(this.groupNotificationLocation); this.Controls.Add(this.labelTimer);
this.Controls.Add(this.panelLocation);
this.Controls.Add(this.labelLocation);
this.Controls.Add(this.panelGeneral);
this.Controls.Add(this.labelGeneral);
this.Controls.Add(this.panelTimer);
this.Name = "TabSettingsNotifications"; this.Name = "TabSettingsNotifications";
this.Size = new System.Drawing.Size(478, 300); this.Size = new System.Drawing.Size(340, 684);
this.ParentChanged += new System.EventHandler(this.TabSettingsNotifications_ParentChanged); this.ParentChanged += new System.EventHandler(this.TabSettingsNotifications_ParentChanged);
this.groupNotificationLocation.ResumeLayout(false);
this.groupNotificationLocation.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.trackBarEdgeDistance)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.trackBarEdgeDistance)).EndInit();
this.groupNotificationDuration.ResumeLayout(false);
this.tableLayoutDurationButtons.ResumeLayout(false); this.tableLayoutDurationButtons.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.trackBarDuration)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.trackBarDuration)).EndInit();
this.groupUserInterface.ResumeLayout(false); this.panelGeneral.ResumeLayout(false);
this.groupUserInterface.PerformLayout(); this.panelGeneral.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.trackBarScrollSpeed)).EndInit();
this.panelLocation.ResumeLayout(false);
this.panelLocation.PerformLayout();
this.panelTimer.ResumeLayout(false);
this.panelTimer.PerformLayout();
this.panelMiscellaneous.ResumeLayout(false);
this.panelMiscellaneous.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout();
} }
#endregion #endregion
private System.Windows.Forms.GroupBox groupNotificationLocation;
private System.Windows.Forms.Label labelDisplay; private System.Windows.Forms.Label labelDisplay;
private System.Windows.Forms.ComboBox comboBoxDisplay; private System.Windows.Forms.ComboBox comboBoxDisplay;
private System.Windows.Forms.Label labelEdgeDistance; private System.Windows.Forms.Label labelEdgeDistance;
@@ -433,8 +539,6 @@
private System.Windows.Forms.RadioButton radioLocBL; private System.Windows.Forms.RadioButton radioLocBL;
private System.Windows.Forms.RadioButton radioLocTR; private System.Windows.Forms.RadioButton radioLocTR;
private System.Windows.Forms.RadioButton radioLocTL; private System.Windows.Forms.RadioButton radioLocTL;
private System.Windows.Forms.GroupBox groupNotificationDuration;
private System.Windows.Forms.GroupBox groupUserInterface;
private System.Windows.Forms.ToolTip toolTip; private System.Windows.Forms.ToolTip toolTip;
private System.Windows.Forms.Label labelEdgeDistanceValue; private System.Windows.Forms.Label labelEdgeDistanceValue;
private System.Windows.Forms.Label labelDurationValue; private System.Windows.Forms.Label labelDurationValue;
@@ -450,5 +554,17 @@
private System.Windows.Forms.CheckBox checkSkipOnLinkClick; private System.Windows.Forms.CheckBox checkSkipOnLinkClick;
private System.Windows.Forms.CheckBox checkTimerCountDown; private System.Windows.Forms.CheckBox checkTimerCountDown;
private System.Windows.Forms.CheckBox checkNotificationTimer; private System.Windows.Forms.CheckBox checkNotificationTimer;
private System.Windows.Forms.Label labelGeneral;
private System.Windows.Forms.Panel panelGeneral;
private System.Windows.Forms.Label labelLocation;
private System.Windows.Forms.Panel panelLocation;
private System.Windows.Forms.Panel panelTimer;
private System.Windows.Forms.Label labelTimer;
private System.Windows.Forms.Label labelScrollSpeedValue;
private System.Windows.Forms.TrackBar trackBarScrollSpeed;
private System.Windows.Forms.Label labelScrollSpeed;
private System.Windows.Forms.Label labelMiscellaneous;
private System.Windows.Forms.Panel panelMiscellaneous;
private System.Windows.Forms.Label labelDuration;
} }
} }

View File

@@ -53,7 +53,7 @@ namespace TweetDuck.Core.Other.Settings{
comboBoxDisplay.Items.Add("(Same As "+Program.BrandName+")"); comboBoxDisplay.Items.Add("(Same As "+Program.BrandName+")");
foreach(Screen screen in Screen.AllScreens){ foreach(Screen screen in Screen.AllScreens){
comboBoxDisplay.Items.Add(screen.DeviceName+" ("+screen.Bounds.Width+"x"+screen.Bounds.Height+")"); comboBoxDisplay.Items.Add(screen.DeviceName.TrimStart('\\', '.')+" ("+screen.Bounds.Width+"x"+screen.Bounds.Height+")");
} }
comboBoxDisplay.SelectedIndex = Math.Min(comboBoxDisplay.Items.Count-1, Config.NotificationDisplay); comboBoxDisplay.SelectedIndex = Math.Min(comboBoxDisplay.Items.Count-1, Config.NotificationDisplay);
@@ -65,6 +65,9 @@ namespace TweetDuck.Core.Other.Settings{
checkSkipOnLinkClick.Checked = Config.NotificationSkipOnLinkClick; checkSkipOnLinkClick.Checked = Config.NotificationSkipOnLinkClick;
checkNonIntrusive.Checked = Config.NotificationNonIntrusiveMode; checkNonIntrusive.Checked = Config.NotificationNonIntrusiveMode;
trackBarScrollSpeed.SetValueSafe(Config.NotificationScrollSpeed);
labelScrollSpeedValue.Text = trackBarScrollSpeed.Value.ToString(CultureInfo.InvariantCulture)+"%";
trackBarEdgeDistance.SetValueSafe(Config.NotificationEdgeDistance); trackBarEdgeDistance.SetValueSafe(Config.NotificationEdgeDistance);
labelEdgeDistanceValue.Text = trackBarEdgeDistance.Value.ToString(CultureInfo.InvariantCulture)+" px"; labelEdgeDistanceValue.Text = trackBarEdgeDistance.Value.ToString(CultureInfo.InvariantCulture)+" px";
@@ -90,6 +93,7 @@ namespace TweetDuck.Core.Other.Settings{
checkNonIntrusive.CheckedChanged += checkNonIntrusive_CheckedChanged; checkNonIntrusive.CheckedChanged += checkNonIntrusive_CheckedChanged;
comboBoxIdlePause.SelectedValueChanged += comboBoxIdlePause_SelectedValueChanged; comboBoxIdlePause.SelectedValueChanged += comboBoxIdlePause_SelectedValueChanged;
trackBarScrollSpeed.ValueChanged += trackBarScrollSpeed_ValueChanged;
comboBoxDisplay.SelectedValueChanged += comboBoxDisplay_SelectedValueChanged; comboBoxDisplay.SelectedValueChanged += comboBoxDisplay_SelectedValueChanged;
trackBarEdgeDistance.ValueChanged += trackBarEdgeDistance_ValueChanged; trackBarEdgeDistance.ValueChanged += trackBarEdgeDistance_ValueChanged;
@@ -187,6 +191,13 @@ namespace TweetDuck.Core.Other.Settings{
Config.NotificationIdlePauseSeconds = IdlePauseSeconds[comboBoxIdlePause.SelectedIndex]; Config.NotificationIdlePauseSeconds = IdlePauseSeconds[comboBoxIdlePause.SelectedIndex];
} }
private void trackBarScrollSpeed_ValueChanged(object sender, EventArgs e){
if (trackBarScrollSpeed.AlignValueToTick()){
labelScrollSpeedValue.Text = trackBarScrollSpeed.Value.ToString(CultureInfo.InvariantCulture)+"%";
Config.NotificationScrollSpeed = trackBarScrollSpeed.Value;
}
}
private void comboBoxDisplay_SelectedValueChanged(object sender, EventArgs e){ private void comboBoxDisplay_SelectedValueChanged(object sender, EventArgs e){
Config.NotificationDisplay = comboBoxDisplay.SelectedIndex; Config.NotificationDisplay = comboBoxDisplay.SelectedIndex;
notification.ShowNotificationForSettings(false); notification.ShowNotificationForSettings(false);

View File

@@ -25,31 +25,20 @@
private void InitializeComponent() { private void InitializeComponent() {
this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container();
this.toolTip = new System.Windows.Forms.ToolTip(this.components); this.toolTip = new System.Windows.Forms.ToolTip(this.components);
this.groupCustomSound = new System.Windows.Forms.GroupBox();
this.btnPlaySound = new System.Windows.Forms.Button(); this.btnPlaySound = new System.Windows.Forms.Button();
this.btnResetSound = new System.Windows.Forms.Button(); this.btnResetSound = new System.Windows.Forms.Button();
this.btnBrowseSound = new System.Windows.Forms.Button(); this.btnBrowseSound = new System.Windows.Forms.Button();
this.tbCustomSound = new System.Windows.Forms.TextBox(); this.tbCustomSound = new System.Windows.Forms.TextBox();
this.groupCustomSound.SuspendLayout(); this.labelSoundNotification = new System.Windows.Forms.Label();
this.panelSoundNotification = new System.Windows.Forms.Panel();
this.panelSoundNotification.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// groupCustomSound
//
this.groupCustomSound.Controls.Add(this.btnPlaySound);
this.groupCustomSound.Controls.Add(this.btnResetSound);
this.groupCustomSound.Controls.Add(this.btnBrowseSound);
this.groupCustomSound.Controls.Add(this.tbCustomSound);
this.groupCustomSound.Location = new System.Drawing.Point(9, 9);
this.groupCustomSound.Name = "groupCustomSound";
this.groupCustomSound.Size = new System.Drawing.Size(372, 75);
this.groupCustomSound.TabIndex = 0;
this.groupCustomSound.TabStop = false;
this.groupCustomSound.Text = "Custom Sound Notification";
//
// btnPlaySound // btnPlaySound
// //
this.btnPlaySound.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnPlaySound.AutoSize = true; this.btnPlaySound.AutoSize = true;
this.btnPlaySound.Location = new System.Drawing.Point(250, 45); this.btnPlaySound.Location = new System.Drawing.Point(203, 29);
this.btnPlaySound.Name = "btnPlaySound"; this.btnPlaySound.Name = "btnPlaySound";
this.btnPlaySound.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0); this.btnPlaySound.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.btnPlaySound.Size = new System.Drawing.Size(43, 23); this.btnPlaySound.Size = new System.Drawing.Size(43, 23);
@@ -60,7 +49,7 @@
// btnResetSound // btnResetSound
// //
this.btnResetSound.AutoSize = true; this.btnResetSound.AutoSize = true;
this.btnResetSound.Location = new System.Drawing.Point(6, 45); this.btnResetSound.Location = new System.Drawing.Point(3, 29);
this.btnResetSound.Name = "btnResetSound"; this.btnResetSound.Name = "btnResetSound";
this.btnResetSound.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0); this.btnResetSound.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.btnResetSound.Size = new System.Drawing.Size(51, 23); this.btnResetSound.Size = new System.Drawing.Size(51, 23);
@@ -70,8 +59,9 @@
// //
// btnBrowseSound // btnBrowseSound
// //
this.btnBrowseSound.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnBrowseSound.AutoSize = true; this.btnBrowseSound.AutoSize = true;
this.btnBrowseSound.Location = new System.Drawing.Point(299, 45); this.btnBrowseSound.Location = new System.Drawing.Point(252, 29);
this.btnBrowseSound.Name = "btnBrowseSound"; this.btnBrowseSound.Name = "btnBrowseSound";
this.btnBrowseSound.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0); this.btnBrowseSound.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.btnBrowseSound.Size = new System.Drawing.Size(67, 23); this.btnBrowseSound.Size = new System.Drawing.Size(67, 23);
@@ -81,31 +71,60 @@
// //
// tbCustomSound // tbCustomSound
// //
this.tbCustomSound.Location = new System.Drawing.Point(6, 19); this.tbCustomSound.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbCustomSound.Location = new System.Drawing.Point(3, 3);
this.tbCustomSound.Name = "tbCustomSound"; this.tbCustomSound.Name = "tbCustomSound";
this.tbCustomSound.Size = new System.Drawing.Size(360, 20); this.tbCustomSound.Size = new System.Drawing.Size(316, 20);
this.tbCustomSound.TabIndex = 0; this.tbCustomSound.TabIndex = 0;
// //
// labelSoundNotification
//
this.labelSoundNotification.AutoSize = true;
this.labelSoundNotification.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.labelSoundNotification.Location = new System.Drawing.Point(6, 8);
this.labelSoundNotification.Margin = new System.Windows.Forms.Padding(0, 2, 0, 0);
this.labelSoundNotification.Name = "labelSoundNotification";
this.labelSoundNotification.Size = new System.Drawing.Size(198, 20);
this.labelSoundNotification.TabIndex = 1;
this.labelSoundNotification.Text = "Custom Sound Notification";
//
// panelSoundNotification
//
this.panelSoundNotification.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panelSoundNotification.Controls.Add(this.btnPlaySound);
this.panelSoundNotification.Controls.Add(this.tbCustomSound);
this.panelSoundNotification.Controls.Add(this.btnResetSound);
this.panelSoundNotification.Controls.Add(this.btnBrowseSound);
this.panelSoundNotification.Location = new System.Drawing.Point(9, 31);
this.panelSoundNotification.Name = "panelSoundNotification";
this.panelSoundNotification.Size = new System.Drawing.Size(322, 56);
this.panelSoundNotification.TabIndex = 2;
//
// TabSettingsSounds // TabSettingsSounds
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupCustomSound); this.Controls.Add(this.panelSoundNotification);
this.Controls.Add(this.labelSoundNotification);
this.Name = "TabSettingsSounds"; this.Name = "TabSettingsSounds";
this.Size = new System.Drawing.Size(478, 300); this.Size = new System.Drawing.Size(340, 97);
this.groupCustomSound.ResumeLayout(false); this.panelSoundNotification.ResumeLayout(false);
this.groupCustomSound.PerformLayout(); this.panelSoundNotification.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout();
} }
#endregion #endregion
private System.Windows.Forms.ToolTip toolTip; private System.Windows.Forms.ToolTip toolTip;
private System.Windows.Forms.GroupBox groupCustomSound;
private System.Windows.Forms.Button btnResetSound; private System.Windows.Forms.Button btnResetSound;
private System.Windows.Forms.Button btnBrowseSound; private System.Windows.Forms.Button btnBrowseSound;
private System.Windows.Forms.TextBox tbCustomSound; private System.Windows.Forms.TextBox tbCustomSound;
private System.Windows.Forms.Button btnPlaySound; private System.Windows.Forms.Button btnPlaySound;
private System.Windows.Forms.Label labelSoundNotification;
private System.Windows.Forms.Panel panelSoundNotification;
} }
} }

View File

@@ -32,6 +32,7 @@
this.labelWebsite = new System.Windows.Forms.Label(); this.labelWebsite = new System.Windows.Forms.Label();
this.labelVersion = new System.Windows.Forms.Label(); this.labelVersion = new System.Windows.Forms.Label();
this.btnOpenConfig = new System.Windows.Forms.Button(); this.btnOpenConfig = new System.Windows.Forms.Button();
this.labelType = new TweetDuck.Core.Controls.LabelVertical();
this.panelDescription.SuspendLayout(); this.panelDescription.SuspendLayout();
this.flowLayoutInfo.SuspendLayout(); this.flowLayoutInfo.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
@@ -39,7 +40,7 @@
// btnToggleState // btnToggleState
// //
this.btnToggleState.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnToggleState.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnToggleState.Location = new System.Drawing.Point(459, 80); this.btnToggleState.Location = new System.Drawing.Point(456, 80);
this.btnToggleState.Name = "btnToggleState"; this.btnToggleState.Name = "btnToggleState";
this.btnToggleState.Size = new System.Drawing.Size(65, 23); this.btnToggleState.Size = new System.Drawing.Size(65, 23);
this.btnToggleState.TabIndex = 5; this.btnToggleState.TabIndex = 5;
@@ -51,7 +52,7 @@
// //
this.labelName.AutoSize = true; this.labelName.AutoSize = true;
this.labelName.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); this.labelName.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.labelName.Location = new System.Drawing.Point(7, 7); this.labelName.Location = new System.Drawing.Point(24, 7);
this.labelName.Name = "labelName"; this.labelName.Name = "labelName";
this.labelName.Size = new System.Drawing.Size(61, 24); this.labelName.Size = new System.Drawing.Size(61, 24);
this.labelName.TabIndex = 0; this.labelName.TabIndex = 0;
@@ -65,9 +66,9 @@
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.panelDescription.AutoScroll = true; this.panelDescription.AutoScroll = true;
this.panelDescription.Controls.Add(this.labelDescription); this.panelDescription.Controls.Add(this.labelDescription);
this.panelDescription.Location = new System.Drawing.Point(11, 35); this.panelDescription.Location = new System.Drawing.Point(28, 35);
this.panelDescription.Name = "panelDescription"; this.panelDescription.Name = "panelDescription";
this.panelDescription.Size = new System.Drawing.Size(513, 39); this.panelDescription.Size = new System.Drawing.Size(493, 39);
this.panelDescription.TabIndex = 2; this.panelDescription.TabIndex = 2;
this.panelDescription.Resize += new System.EventHandler(this.panelDescription_Resize); this.panelDescription.Resize += new System.EventHandler(this.panelDescription_Resize);
// //
@@ -101,9 +102,9 @@
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.flowLayoutInfo.Controls.Add(this.labelAuthor); this.flowLayoutInfo.Controls.Add(this.labelAuthor);
this.flowLayoutInfo.Controls.Add(this.labelWebsite); this.flowLayoutInfo.Controls.Add(this.labelWebsite);
this.flowLayoutInfo.Location = new System.Drawing.Point(11, 85); this.flowLayoutInfo.Location = new System.Drawing.Point(28, 85);
this.flowLayoutInfo.Name = "flowLayoutInfo"; this.flowLayoutInfo.Name = "flowLayoutInfo";
this.flowLayoutInfo.Size = new System.Drawing.Size(368, 18); this.flowLayoutInfo.Size = new System.Drawing.Size(348, 18);
this.flowLayoutInfo.TabIndex = 3; this.flowLayoutInfo.TabIndex = 3;
this.flowLayoutInfo.WrapContents = false; this.flowLayoutInfo.WrapContents = false;
// //
@@ -128,7 +129,7 @@
this.labelVersion.Location = new System.Drawing.Point(14, 12); this.labelVersion.Location = new System.Drawing.Point(14, 12);
this.labelVersion.Margin = new System.Windows.Forms.Padding(3, 9, 3, 0); this.labelVersion.Margin = new System.Windows.Forms.Padding(3, 9, 3, 0);
this.labelVersion.Name = "labelVersion"; this.labelVersion.Name = "labelVersion";
this.labelVersion.Size = new System.Drawing.Size(513, 13); this.labelVersion.Size = new System.Drawing.Size(510, 13);
this.labelVersion.TabIndex = 1; this.labelVersion.TabIndex = 1;
this.labelVersion.Text = "Version"; this.labelVersion.Text = "Version";
this.labelVersion.TextAlign = System.Drawing.ContentAlignment.TopRight; this.labelVersion.TextAlign = System.Drawing.ContentAlignment.TopRight;
@@ -137,7 +138,7 @@
// btnOpenConfig // btnOpenConfig
// //
this.btnOpenConfig.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnOpenConfig.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnOpenConfig.Location = new System.Drawing.Point(385, 80); this.btnOpenConfig.Location = new System.Drawing.Point(382, 80);
this.btnOpenConfig.Name = "btnOpenConfig"; this.btnOpenConfig.Name = "btnOpenConfig";
this.btnOpenConfig.Size = new System.Drawing.Size(68, 23); this.btnOpenConfig.Size = new System.Drawing.Size(68, 23);
this.btnOpenConfig.TabIndex = 4; this.btnOpenConfig.TabIndex = 4;
@@ -145,20 +146,35 @@
this.btnOpenConfig.UseVisualStyleBackColor = true; this.btnOpenConfig.UseVisualStyleBackColor = true;
this.btnOpenConfig.Click += new System.EventHandler(this.btnOpenConfig_Click); this.btnOpenConfig.Click += new System.EventHandler(this.btnOpenConfig_Click);
// //
// labelType
//
this.labelType.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.labelType.BackColor = System.Drawing.Color.DarkGray;
this.labelType.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.labelType.LineHeight = 9;
this.labelType.Location = new System.Drawing.Point(0, 0);
this.labelType.Name = "labelType";
this.labelType.Size = new System.Drawing.Size(18, 109);
this.labelType.TabIndex = 6;
this.labelType.Text = "TYPE";
//
// PluginControl // PluginControl
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.labelType);
this.Controls.Add(this.btnOpenConfig); this.Controls.Add(this.btnOpenConfig);
this.Controls.Add(this.flowLayoutInfo); this.Controls.Add(this.flowLayoutInfo);
this.Controls.Add(this.panelDescription); this.Controls.Add(this.panelDescription);
this.Controls.Add(this.labelName); this.Controls.Add(this.labelName);
this.Controls.Add(this.btnToggleState); this.Controls.Add(this.btnToggleState);
this.Controls.Add(this.labelVersion); this.Controls.Add(this.labelVersion);
this.Margin = new System.Windows.Forms.Padding(0);
this.MaximumSize = new System.Drawing.Size(65535, 109); this.MaximumSize = new System.Drawing.Size(65535, 109);
this.MinimumSize = new System.Drawing.Size(0, 61); this.MinimumSize = new System.Drawing.Size(0, 61);
this.Name = "PluginControl"; this.Name = "PluginControl";
this.Padding = new System.Windows.Forms.Padding(3); this.Padding = new System.Windows.Forms.Padding(3, 3, 6, 3);
this.Size = new System.Drawing.Size(530, 109); this.Size = new System.Drawing.Size(530, 109);
this.panelDescription.ResumeLayout(false); this.panelDescription.ResumeLayout(false);
this.panelDescription.PerformLayout(); this.panelDescription.PerformLayout();
@@ -180,5 +196,6 @@
private System.Windows.Forms.Label labelWebsite; private System.Windows.Forms.Label labelWebsite;
private System.Windows.Forms.Label labelVersion; private System.Windows.Forms.Label labelVersion;
private System.Windows.Forms.Button btnOpenConfig; private System.Windows.Forms.Button btnOpenConfig;
private Core.Controls.LabelVertical labelType;
} }
} }

View File

@@ -4,6 +4,7 @@ using System.Drawing;
using System.IO; using System.IO;
using System.Windows.Forms; using System.Windows.Forms;
using TweetDuck.Core.Utils; using TweetDuck.Core.Utils;
using TweetDuck.Plugins.Enums;
namespace TweetDuck.Plugins.Controls{ namespace TweetDuck.Plugins.Controls{
partial class PluginControl : UserControl{ partial class PluginControl : UserControl{
@@ -30,7 +31,7 @@ namespace TweetDuck.Plugins.Controls{
labelDescription.Visible = false; labelDescription.Visible = false;
} }
panelDescription_Resize(panelDescription, new EventArgs()); panelDescription_Resize(panelDescription, null);
} }
private void panelDescription_Resize(object sender, EventArgs e){ private void panelDescription_Resize(object sender, EventArgs e){
@@ -68,6 +69,15 @@ namespace TweetDuck.Plugins.Controls{
labelAuthor.ForeColor = textColor; labelAuthor.ForeColor = textColor;
labelWebsite.ForeColor = isEnabled ? Color.Blue : Color.FromArgb(90, 90, 249); labelWebsite.ForeColor = isEnabled ? Color.Blue : Color.FromArgb(90, 90, 249);
if (plugin.Group == PluginGroup.Official){
labelType.Text = "OFFICIAL";
labelType.BackColor = isEnabled ? Color.FromArgb(154, 195, 217) : Color.FromArgb(185, 185, 185);
}
else{
labelType.Text = "CUSTOM";
labelType.BackColor = isEnabled ? Color.FromArgb(208, 154, 217) : Color.FromArgb(185, 185, 185);
}
if (plugin.CanRun){ if (plugin.CanRun){
labelName.ForeColor = textColor; labelName.ForeColor = textColor;
labelDescription.ForeColor = textColor; labelDescription.ForeColor = textColor;

View File

@@ -62,14 +62,6 @@ namespace TweetDuck.Plugins{
return plugins.Any(plugin => plugin.Identifier.Equals(identifier)); return plugins.Any(plugin => plugin.Identifier.Equals(identifier));
} }
public IEnumerable<Plugin> GetPluginsByGroup(PluginGroup group){
return plugins.Where(plugin => plugin.Group == group);
}
public int CountPluginByGroup(PluginGroup group){
return plugins.Count(plugin => plugin.Group == group);
}
public bool HasAnyPlugin(PluginEnvironment environment){ public bool HasAnyPlugin(PluginEnvironment environment){
return plugins.Any(plugin => plugin.Environments.HasFlag(environment)); return plugins.Any(plugin => plugin.Environments.HasFlag(environment));
} }

View File

@@ -8,7 +8,7 @@ enabled(){
if (e.keyCode === 115){ if (e.keyCode === 115){
this.isDebugging = !this.isDebugging; this.isDebugging = !this.isDebugging;
$(".app-title").first().css("background-color", this.isDebugging ? "#5A6B75" : "#292F33"); $(".nav-user-info").first().css("background-color", this.isDebugging ? "#5A6B75" : "#292F33");
} }
// Debug mode handling // Debug mode handling

View File

@@ -8,7 +8,7 @@ Edit layout & design
chylex chylex
[version] [version]
1.1 1.1.1
[website] [website]
https://tweetduck.chylex.com https://tweetduck.chylex.com

View File

@@ -492,7 +492,13 @@ enabled(){
.icon-gif-badge:before{content:"\\f061";font-family:tweetdeckold} .icon-gif-badge:before{content:"\\f061";font-family:tweetdeckold}
.icon-poll:before{content:"\\f062";font-family:tweetdeckold} .icon-poll:before{content:"\\f062";font-family:tweetdeckold}
.column-header .column-type-icon { bottom: 26px !important }`; .icon-heart-filled:before{content:"\\f055";font-family:tweetdeckold}
.icon-retweet-filled:before{content:"\\f008";font-family:tweetdeckold}
.icon-list-filled:before{content:"\\f014";font-family:tweetdeckold}
.icon-user-filled:before{content:"\\f035";font-family:tweetdeckold}
.column-header .column-type-icon { bottom: 26px !important }
.tweet-footer { margin-top: 6px !important }`;
document.head.appendChild(this.icons); document.head.appendChild(this.icons);
} }
@@ -500,8 +506,8 @@ enabled(){
if (this.config.columnWidth[0] === '/'){ if (this.config.columnWidth[0] === '/'){
let cols = this.config.columnWidth.slice(1); let cols = this.config.columnWidth.slice(1);
this.css.insert(".column { width: calc((100vw - 205px) / "+cols+" - 8px) !important }"); this.css.insert(".column { width: calc((100vw - 205px) / "+cols+" - 6px) !important }");
this.css.insert(".is-condensed .column { width: calc((100vw - 55px) / "+cols+" - 8px) !important }"); this.css.insert(".is-condensed .column { width: calc((100vw - 55px) / "+cols+" - 6px) !important }");
} }
else{ else{
this.css.insert(".column { width: "+this.config.columnWidth+" !important }"); this.css.insert(".column { width: "+this.config.columnWidth+" !important }");
@@ -542,9 +548,10 @@ ${this.config.revertReplies ? `
${this.config.revertIcons ? ` ${this.config.revertIcons ? `
@font-face { font-family: 'tweetdeckold'; src: url(\"https://ton.twimg.com/tweetdeck-web/web/assets/fonts/tweetdeck-regular-webfont.5f4ea87976.woff\") format(\"woff\"); font-weight: normal; font-style: normal } @font-face { font-family: 'tweetdeckold'; src: url(\"https://ton.twimg.com/tweetdeck-web/web/assets/fonts/tweetdeck-regular-webfont.5f4ea87976.woff\") format(\"woff\"); font-weight: normal; font-style: normal }
.icon-reply:before{content:"\\f006";font-family:tweetdeckold} .icon-reply:before{content:"\\f006";font-family:tweetdeckold}
.icon-favorite:before{content:"\\f055";font-family:tweetdeckold} .icon-heart-filled:before{content:"\\f055";font-family:tweetdeckold}
.icon-retweet:before{content:"\\f008";font-family:tweetdeckold} .icon-retweet-filled:before{content:"\\f008";font-family:tweetdeckold}
.icon-follow:before{content:"\\f035";font-family:tweetdeckold} .icon-list-filled:before{content:"\\f014";font-family:tweetdeckold}
.icon-user-filled:before{content:"\\f035";font-family:tweetdeckold}
.icon-user-dd:before{content:"\\f01a";font-family:tweetdeckold} .icon-user-dd:before{content:"\\f01a";font-family:tweetdeckold}
` : ``} ` : ``}
</style>`); </style>`);

View File

@@ -19,8 +19,6 @@ enabled(){
[ "1F3FF", "#8A6859" ], [ "1F3FF", "#8A6859" ],
]; ];
this.emojiURL = "https://ton.twimg.com/tweetdeck-web/web/assets/emoji/";
this.emojiData1 = []; // no skin tones, prepended this.emojiData1 = []; // no skin tones, prepended
this.emojiData2 = {}; // contains emojis with skin tones this.emojiData2 = {}; // contains emojis with skin tones
this.emojiData3 = []; // no skin tones, appended this.emojiData3 = []; // no skin tones, appended
@@ -67,6 +65,8 @@ enabled(){
$(this.currentSpanner).remove(); $(this.currentSpanner).remove();
this.currentSpanner = null; this.currentSpanner = null;
this.currentKeywords = [];
this.composePanelScroller.trigger("scroll"); this.composePanelScroller.trigger("scroll");
$(".emoji-keyboard-popup-btn").removeClass("is-selected"); $(".emoji-keyboard-popup-btn").removeClass("is-selected");

View File

@@ -2,14 +2,13 @@
Polls in timelines Polls in timelines
[description] [description]
- Adds poll result display directly into timelines - Adds poll results into timelines and quoted tweets
- Experimental, may be buggy or break when TweetDeck updates
[author] [author]
chylex chylex
[version] [version]
1.0.1 1.1
[website] [website]
https://tweetduck.chylex.com https://tweetduck.chylex.com

View File

@@ -1,25 +1,80 @@
constructor(){
super({
requiresPageReload: true
});
}
enabled(){ enabled(){
// add a stylesheet this.reloadColumns = () => {
window.TDPF_createCustomStyle(this).insert(".column-detail .timeline-poll-container { display: none }"); Object.values(TD.controller.columnManager.getAll()).forEach(column => column.reloadTweets());
};
// setup layout injecting // styles
var injectLayout = (mustache, onlyIfNotFound, search, replace) => {
if (TD.mustaches[mustache].indexOf(onlyIfNotFound) === -1){ this.css = window.TDPF_createCustomStyle(this);
TD.mustaches[mustache] = TD.mustaches[mustache].replace(search, replace); this.css.insert("html[data-td-theme='dark'] .quoted-tweet .td-timeline-poll { color: #e1e8ed; }");
// utility functions
var hasPoll = function(tweet){
return tweet.hasPoll && tweet.hasPoll();
};
var renderTweetPoll = function(tweet){
return `<div class='td-timeline-poll'>${TD.ui.template.render("status/poll", $.extend({}, tweet, {
chirp: tweet
}))}</div>`;
};
var renderPollHook = function(tweet, html){
let ele = null;
if (hasPoll(tweet)){
(ele || (ele = $(html))).find(".js-tweet-body").first().children("div").last().after(renderTweetPoll(tweet));
}
if (tweet.quotedTweet && hasPoll(tweet.quotedTweet)){
(ele || (ele = $(html))).find(".js-quoted-tweet-text").first().after(renderTweetPoll(tweet.quotedTweet));
}
if (ele){
ele.find(".js-card-container").css("display", "none");
return ele.prop("outerHTML");
}
else{
return html;
} }
}; };
// add poll rendering to tweets // hooks
injectLayout("status/tweet_single.mustache", "status/poll", "{{/quotedTweetMissing}} {{#translation}}", "{{/quotedTweetMissing}} <div class='timeline-poll-container td-screenshot-remove'>{{#poll}}{{>duck/tweet_single/poll}}{{/poll}}</div> {{#translation}}");
TD.mustaches["duck/tweet_single/poll.mustache"] = '<div class="js-poll margin-tl"> {{#poll}} <ul class="margin-b--12"> {{#choices}} <li class="position-rel margin-b--8 height-3"> <div class="poll-bar pin-top height-p--100 br-1 {{#isWinner}}poll-bar--winner{{/isWinner}} {{#hasTimeLeft}}br-left{{/hasTimeLeft}} width-p--{{percentage}}"/> <div class="poll-label position-rel padding-a--4"> <span class="txt-bold txt-right inline-block width-5 padding-r--4">{{percentage}}%</span> {{{label}}} {{#isSelectedChoice}} <i class="icon icon-check txt-size-variable--11"></i> {{/isSelectedChoice}} </div> </li> {{/choices}} </ul> <span class="inline-block txt-small padding-ls txt-seamful-deep-gray"> {{{prettyCount}}} &middot; {{#hasTimeLeft}} {{{prettyTimeLeft}}} {{/hasTimeLeft}} {{^hasTimeLeft}} {{_i}}Final results{{/i}} {{/hasTimeLeft}} </span> {{/poll}} </div>'; var funcs = {
TwitterStatus: TD.services.TwitterStatus.prototype.render,
TwitterActionOnTweet: TD.services.TwitterActionOnTweet.prototype.render,
TweetDetailView: TD.components.TweetDetailView.prototype._renderChirp
};
TD.services.TwitterStatus.prototype.render = function(e){
return renderPollHook(this, funcs.TwitterStatus.apply(this, arguments));
};
TD.services.TwitterActionOnTweet.prototype.render = function(e){
return renderPollHook(this.targetTweet, funcs.TwitterActionOnTweet.apply(this, arguments));
};
TD.components.TweetDetailView.prototype._renderChirp = function(){
let result = funcs.TweetDetailView.apply(this, arguments);
if (this.mainChirp.quotedTweet && hasPoll(this.mainChirp.quotedTweet)){
$(this.$tweetDetail).find(".js-quoted-tweet-text").first().after(renderTweetPoll(this.mainChirp.quotedTweet));
}
return result;
};
this.prevRenderFuncs = funcs;
this.reloadColumns();
} }
disabled(){ disabled(){
// not needed, plugin reloads the page when enabled or disabled TD.services.TwitterStatus.prototype.render = this.prevRenderFuncs.TwitterStatus;
TD.services.TwitterActionOnTweet.prototype.render = this.prevRenderFuncs.TwitterActionOnTweet;
TD.components.TweetDetailView.prototype._renderChirp = this.prevRenderFuncs.TweetDetailView;
this.css.remove();
this.reloadColumns();
} }

View File

@@ -147,8 +147,13 @@
html.find("a[href='#']").each(function(){ // remove <a> tags around links that don't lead anywhere (such as account names the tweet replied to) html.find("a[href='#']").each(function(){ // remove <a> tags around links that don't lead anywhere (such as account names the tweet replied to)
this.outerHTML = this.innerHTML; this.outerHTML = this.innerHTML;
}); });
if (tweet.getChirpType().includes("list_member")){ let type = tweet.getChirpType();
if (type === "follow"){
html.find(".js-user-actions-menu").parent().remove();
}
else if (type.includes("list_member")){
html.find(".activity-header").first().css("margin-top", "2px"); html.find(".activity-header").first().css("margin-top", "2px");
html.find(".avatar").first().css("margin-bottom", "0"); html.find(".avatar").first().css("margin-bottom", "0");
} }
@@ -195,12 +200,18 @@
$TD.loadFontSizeClass(name); $TD.loadFontSizeClass(name);
}); });
TD.settings.setTheme = appendToFunction(TD.settings.setTheme, function(){ TD.settings.setTheme = appendToFunction(TD.settings.setTheme, function(name){
document.documentElement.setAttribute("data-td-theme", name);
setTimeout(function(){ setTimeout(function(){
$TD.loadNotificationHeadContents(getNotificationHeadContents()); $TD.loadNotificationHeadContents(getNotificationHeadContents());
}, 0); }, 0);
}); });
onAppReady.push(function(){
document.documentElement.setAttribute("data-td-theme", TD.settings.getTheme());
});
// //
// Block: Enable popup notifications. // Block: Enable popup notifications.
// //
@@ -637,6 +648,16 @@
styleOfficial.sheet.insertRule(".app-navigator .tooltip { display: none !important; }", 0); // hide broken tooltips in the menu styleOfficial.sheet.insertRule(".app-navigator .tooltip { display: none !important; }", 0); // hide broken tooltips in the menu
styleOfficial.sheet.insertRule(".account-inline .username { vertical-align: 10%; }", 0); // move usernames a bit higher styleOfficial.sheet.insertRule(".account-inline .username { vertical-align: 10%; }", 0); // move usernames a bit higher
styleOfficial.sheet.insertRule(".btn-compose, .app-search-fake, .app-search-input { border-radius: 1px; }", 0); // use consistent menu button radius
styleOfficial.sheet.insertRule(".is-condensed .app-header-inner { padding-top: 10px !important; }", 0); // add extra padding to menu buttons when condensed
styleOfficial.sheet.insertRule(".is-condensed .btn-compose { padding: 8px !important; }", 0); // fix compose button icon when condensed
styleOfficial.sheet.insertRule(".app-header:not(.is-condensed) .nav-user-info { padding: 0 5px; }", 0); // add padding to user info
styleOfficial.sheet.insertRule(".app-title { display: none; }", 0); // hide TweetDeck logo
styleOfficial.sheet.insertRule(".nav-user-info { bottom: 10px !important; }", 0); // move user info
styleOfficial.sheet.insertRule(".app-navigator { bottom: 50px !important; }", 0); // move navigation
styleOfficial.sheet.insertRule(".column-navigator-overflow { bottom: 192px !important; }", 0); // move column list
styleOfficial.sheet.insertRule(".column .column-header { height: 49px !important; }", 0); // fix one pixel space below column header styleOfficial.sheet.insertRule(".column .column-header { height: 49px !important; }", 0); // fix one pixel space below column header
styleOfficial.sheet.insertRule(".column:not(.is-options-open) .column-header { border-bottom: none; }", 0); // fix one pixel space below column header styleOfficial.sheet.insertRule(".column:not(.is-options-open) .column-header { border-bottom: none; }", 0); // fix one pixel space below column header
@@ -661,6 +682,24 @@
}; };
})(); })();
//
// Block: Let's make retweets lowercase again.
//
TD.mustaches["status/tweet_single.mustache"] = TD.mustaches["status/tweet_single.mustache"].replace("{{_i}} Retweeted{{/i}}", "{{_i}} retweeted{{/i}}");
if (ensurePropertyExists(TD, "services", "TwitterActionRetweet", "prototype", "generateText")){
TD.services.TwitterActionRetweet.prototype.generateText = appendToFunction(TD.services.TwitterActionRetweet.prototype.generateText, function(){
this.text = this.text.replace(" Retweeted", " retweeted");
this.htmlText = this.htmlText.replace(" Retweeted", " retweeted");
});
}
if (ensurePropertyExists(TD, "services", "TwitterActionRetweetedInteraction", "prototype", "generateText")){
TD.services.TwitterActionRetweetedInteraction.prototype.generateText = appendToFunction(TD.services.TwitterActionRetweetedInteraction.prototype.generateText, function(){
this.htmlText = this.htmlText.replace(" Retweeted", " retweeted").replace(" Retweet", " retweet");
});
}
// //
// Block: Setup unsupported video element hook. // Block: Setup unsupported video element hook.
// //

View File

@@ -22,7 +22,7 @@
// //
// Constant: Fallback url in case the update installer file is missing. // Constant: Fallback url in case the update installer file is missing.
// //
const updateDownloadFallback = "https://tweetduck.chylex.com/#download"; const updateDownloadFallback = "https://tweetduck.chylex.com";
// //
// Function: Creates the update notification element. Removes the old one if already exists. // Function: Creates the update notification element. Removes the old one if already exists.
@@ -30,6 +30,66 @@
var displayNotification = function(version, download){ var displayNotification = function(version, download){
var outdated = version === "unsupported"; var outdated = version === "unsupported";
var css = $("#tweetduck-update-css");
if (!css.length){
css = $(`
<style id='tweetduck-update-css'>
#tweetduck-update {
position: absolute;
bottom: 0;
width: 200px;
height: 170px;
z-index: 9999;
color: #fff;
background-color: rgb(32, 94, 138);
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
}
.tdu-title {
font-size: 17px;
font-weight: bold;
text-align: center;
letter-spacing: 0.2px;
margin: 8px auto 2px;
}
.tdu-info {
font-size: 12px;
text-align: center;
margin: 3px auto 0;
}
.tdu-buttons button {
display: block;
margin: 7px auto 0;
padding: 4px 10px;
width: 80%;
height: 30px;
border: 0;
border-radius: 1px;
outline: none;
font-size: 14px;
color: #fff;
background-color: #419de0;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
box-shadow: 1px 1px 1px rgba(17, 17, 17, 0.5) !important;
transition: box-shadow 0.2s ease;
}
.tdu-buttons button:hover {
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.75);
box-shadow: 1px 1px 1px rgba(17, 17, 17, 0.75), 0 -2px 0 rgba(17, 17, 17, 0.33) inset !important;
}
.tdu-buttons button.tdu-btn-ignore, .tdu-buttons button.tdu-btn-later {
background-color: #607a8e;
color: #dfdfdf;
}
</style>
`).appendTo(document.head);
}
var ele = $("#tweetduck-update"); var ele = $("#tweetduck-update");
var existed = ele.length > 0; var existed = ele.length > 0;
@@ -37,80 +97,36 @@
ele.remove(); ele.remove();
} }
var html = outdated ? [ ele = $(outdated ? `
"<div id='tweetduck-update'>", <div id='tweetduck-update'>
"<p class='tdu-title'>Unsupported System</p>", <p class='tdu-title'>Unsupported System</p>
"<p class='tdu-info'>You will not receive updates.</p>", <p class='tdu-info'>You will not receive updates.</p>
"<div class='tdu-buttons'>", <div class='tdu-buttons'>
"<button class='btn btn-positive tdu-btn-unsupported'><span class='label'>Read More</span></button>", <button class='tdu-btn-unsupported'>Read more</button>
"<button class='btn btn-negative tdu-btn-dismiss'><span class='label'>Dismiss</span></button>", <button class='tdu-btn-ignore'>Dismiss</button>
"</div>", </div>
"</div>" </div>
] : [ ` : `
"<div id='tweetduck-update'>", <div id='tweetduck-update'>
"<p class='tdu-title'>TweetDuck Update</p>", <p class='tdu-title'>TweetDuck Update</p>
"<p class='tdu-info'>Version "+version+" is now available.</p>", <p class='tdu-info'>Version ${version} is now available.</p>
"<div class='tdu-buttons'>", <div class='tdu-buttons'>
"<button class='btn btn-positive tdu-btn-download'><span class='label'>Download</span></button>", <button class='tdu-btn-download'>Update now</button>
"<button class='btn btn-negative tdu-btn-dismiss'><span class='label'>Dismiss</span></button>", <button class='tdu-btn-later'>Remind me later</button>
"</div>", <button class='tdu-btn-ignore'>Ignore this update</button>
"</div>" </div>
]; </div>
`).appendTo(document.body).css("display", existed ? "block" : "none");
$(document.body).append(html.join(""));
var hide = function(){
ele = $("#tweetduck-update"); ele.remove();
css.remove();
var buttonDiv = ele.children("div.tdu-buttons").first(); };
ele.css({ var buttonDiv = ele.children(".tdu-buttons").first();
color: "#fff",
backgroundColor: "rgb(32,94,138)",
position: "absolute",
left: "4px",
bottom: "4px",
width: "192px",
height: "86px",
display: existed ? "block" : "none",
borderRadius: "2px",
zIndex: 9999
});
ele.children("p.tdu-title").first().css({
fontSize: "17px",
fontWeight: "bold",
textAlign: "center",
letterSpacing: "0.2px",
margin: "5px auto 2px"
});
ele.children("p.tdu-info").first().css({
fontSize: "12px",
textAlign: "center",
margin: "2px auto 6px"
});
buttonDiv.css({
textAlign: "center"
});
buttonDiv.children().css({
margin: "0 4px",
minHeight: "25px",
boxShadow: "1px 1px 1px rgba(17,17,17,0.5)"
});
buttonDiv.find("span").css({
verticalAlign: "baseline"
});
ele.find("span.tdu-data-tag").first().css({
cursor: "pointer",
textDecoration: "underline"
});
buttonDiv.children(".tdu-btn-download").click(function(){ buttonDiv.children(".tdu-btn-download").click(function(){
ele.remove(); hide();
if (download){ if (download){
$TDU.onUpdateAccepted(); $TDU.onUpdateAccepted();
@@ -119,14 +135,19 @@
$TDU.openBrowser(updateDownloadFallback); $TDU.openBrowser(updateDownloadFallback);
} }
}); });
buttonDiv.children(".tdu-btn-later").click(function(){
clearTimeout(updateCheckTimeoutID);
ele.slideUp(hide);
});
buttonDiv.children(".tdu-btn-unsupported").click(function(){ buttonDiv.children(".tdu-btn-unsupported").click(function(){
$TDU.openBrowser("https://github.com/chylex/TweetDuck/wiki/Supported-Systems"); $TDU.openBrowser("https://github.com/chylex/TweetDuck/wiki/Supported-Systems");
}); });
buttonDiv.children(".tdu-btn-dismiss,.tdu-btn-unsupported").click(function(){ buttonDiv.children(".tdu-btn-ignore,.tdu-btn-unsupported").click(function(){
$TDU.onUpdateDismissed(); $TDU.onUpdateDismissed();
ele.slideUp(function(){ ele.remove(); }); ele.slideUp(hide);
}); });
if (!existed){ if (!existed){

View File

@@ -80,15 +80,9 @@
<Compile Include="Core\Controls\FlatProgressBar.cs"> <Compile Include="Core\Controls\FlatProgressBar.cs">
<SubType>Component</SubType> <SubType>Component</SubType>
</Compile> </Compile>
<Compile Include="Core\Controls\TabButton.cs"> <Compile Include="Core\Controls\LabelVertical.cs">
<SubType>Component</SubType> <SubType>Component</SubType>
</Compile> </Compile>
<Compile Include="Core\Controls\TabPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Core\Controls\TabPanel.Designer.cs">
<DependentUpon>TabPanel.cs</DependentUpon>
</Compile>
<Compile Include="Core\Handling\BrowserProcessHandler.cs" /> <Compile Include="Core\Handling\BrowserProcessHandler.cs" />
<Compile Include="Core\Handling\ContextMenuBase.cs" /> <Compile Include="Core\Handling\ContextMenuBase.cs" />
<Compile Include="Core\Handling\ContextMenuBrowser.cs" /> <Compile Include="Core\Handling\ContextMenuBrowser.cs" />
@@ -154,11 +148,11 @@
<Compile Include="Core\Other\Settings\Dialogs\DialogSettingsCefArgs.Designer.cs"> <Compile Include="Core\Other\Settings\Dialogs\DialogSettingsCefArgs.Designer.cs">
<DependentUpon>DialogSettingsCefArgs.cs</DependentUpon> <DependentUpon>DialogSettingsCefArgs.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Core\Other\Settings\Dialogs\DialogSettingsExport.cs"> <Compile Include="Core\Other\Settings\Dialogs\DialogSettingsManage.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Include="Core\Other\Settings\Dialogs\DialogSettingsExport.Designer.cs"> <Compile Include="Core\Other\Settings\Dialogs\DialogSettingsManage.Designer.cs">
<DependentUpon>DialogSettingsExport.cs</DependentUpon> <DependentUpon>DialogSettingsManage.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Core\Other\Settings\Dialogs\DialogSettingsRestart.cs"> <Compile Include="Core\Other\Settings\Dialogs\DialogSettingsRestart.cs">
<SubType>Form</SubType> <SubType>Form</SubType>