mirror of
https://github.com/LorenzCK/OnTopReplica.git
synced 2024-06-03 11:04:32 +12:00
cecbc76c67
Window seeking by class implemented and /visible parameter added to CLI (picks only visible windows). Settings updated to include "restore size and position". GUI and logic updated. Fixed chrome toggling (form size and position doesn't change when switching).
115 lines
3.4 KiB
C#
115 lines
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using OnTopReplica.Properties;
|
|
using VistaControls.TaskDialog;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
|
|
namespace OnTopReplica {
|
|
//Contains some feature implementations of MainForm
|
|
partial class MainForm {
|
|
|
|
#region Click forwarding
|
|
|
|
public bool ClickForwardingEnabled {
|
|
get {
|
|
return _thumbnailPanel.ReportThumbnailClicks;
|
|
}
|
|
set {
|
|
if (value && Settings.Default.FirstTimeClickForwarding) {
|
|
TaskDialog dlg = new TaskDialog(Strings.InfoClickForwarding, Strings.InfoClickForwardingTitle, Strings.InfoClickForwardingContent) {
|
|
CommonButtons = TaskDialogButton.Yes | TaskDialogButton.No
|
|
};
|
|
if (dlg.Show(this).CommonButton == Result.No)
|
|
return;
|
|
|
|
Settings.Default.FirstTimeClickForwarding = false;
|
|
}
|
|
|
|
_thumbnailPanel.ReportThumbnailClicks = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Click-through
|
|
|
|
bool _clickThrough = false;
|
|
Color _nonClickThroughKey;
|
|
|
|
public bool ClickThroughEnabled {
|
|
get {
|
|
return _clickThrough;
|
|
}
|
|
set {
|
|
//Adjust opacity if fully opaque
|
|
/*if (value && Opacity == 1.0)
|
|
Opacity = 0.75;
|
|
if (!value)
|
|
Opacity = 1.0;*/
|
|
|
|
//Enable transparency and force as top-most
|
|
TransparencyKey = (value) ? Color.Black : _nonClickThroughKey;
|
|
if (value)
|
|
TopMost = true;
|
|
|
|
_clickThrough = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Chrome
|
|
|
|
public bool IsChromeVisible {
|
|
get {
|
|
return (FormBorderStyle == FormBorderStyle.SizableToolWindow);
|
|
}
|
|
set {
|
|
if (!value) {
|
|
Location = new Point {
|
|
X = Location.X + SystemInformation.FrameBorderSize.Width,
|
|
Y = Location.Y + SystemInformation.FrameBorderSize.Height
|
|
};
|
|
FormBorderStyle = FormBorderStyle.None;
|
|
}
|
|
else if(value) {
|
|
Location = new Point {
|
|
X = Location.X - SystemInformation.FrameBorderSize.Width,
|
|
Y = Location.Y - SystemInformation.FrameBorderSize.Height
|
|
};
|
|
FormBorderStyle = FormBorderStyle.SizableToolWindow;
|
|
}
|
|
|
|
Program.Platform.OnFormStateChange(this);
|
|
Invalidate();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Position lock
|
|
|
|
ScreenPosition? _positionLock = null;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the screen position where the window is currently locked in.
|
|
/// </summary>
|
|
public ScreenPosition? PositionLock {
|
|
get {
|
|
return _positionLock;
|
|
}
|
|
set {
|
|
if (value != null)
|
|
this.SetScreenPosition(value.Value);
|
|
|
|
_positionLock = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|