mirror of
https://github.com/LorenzCK/OnTopReplica.git
synced 2024-05-21 04:43:55 +12:00
SidePanel code rewritten (now opens in external container window).
Several changes to UI event handling (better performance on resize) and removed other SidePanel left-overs. Added a "Settings" sidepanel.
This commit is contained in:
parent
6cf04359d2
commit
6a71f22cc7
7
Docs/Settings List.txt
Normal file
7
Docs/Settings List.txt
Normal file
|
@ -0,0 +1,7 @@
|
|||
OPTIONS
|
||||
|
||||
+ Language
|
||||
Drop down list with icons
|
||||
Restart notice
|
||||
|
||||
+ Shortcuts
|
|
@ -2,6 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace OnTopReplica {
|
||||
|
||||
|
@ -17,6 +18,38 @@ namespace OnTopReplica {
|
|||
return new Point(a.X - b.X, a.Y - b.Y);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Expands a size value by a padding distance.
|
||||
/// </summary>
|
||||
public static Size Expand(this Size size, Padding padding) {
|
||||
return new Size(size.Width + padding.Horizontal, size.Height + padding.Vertical);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Expands a size value by a size distance.
|
||||
/// </summary>
|
||||
public static Size Expand(this Size size, Size expandSize) {
|
||||
return new Size(size.Width + expandSize.Width, size.Height + expandSize.Height);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Computes the difference between two size values.
|
||||
/// </summary>
|
||||
public static Size Difference(this Size a, Size b) {
|
||||
return new Size(a.Width - b.Width, a.Height - b.Height);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ensures that the minimum size of a control respects a minimum
|
||||
/// client size area.
|
||||
/// </summary>
|
||||
/// <param name="ctrl">Control whose MinimumSize should be altered.</param>
|
||||
/// <param name="minimumClientSize">Minimum client size value to ensure.</param>
|
||||
public static void EnsureMinimumClientSize(this Control ctrl, Size minimumClientSize) {
|
||||
Size offset = ctrl.Size.Difference(ctrl.ClientSize);
|
||||
ctrl.MinimumSize = minimumClientSize.Expand(offset);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
121
OnTopReplica/MainForm.Designer.cs
generated
121
OnTopReplica/MainForm.Designer.cs
generated
|
@ -65,13 +65,7 @@
|
|||
this.chromeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.reduceToIconToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.languageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuLanguages = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.englishToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.cestinaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.danskToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.espanolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.italianoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuContextClose = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.fullSelectWindowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -83,7 +77,6 @@
|
|||
this.menuWindows.SuspendLayout();
|
||||
this.menuOpacity.SuspendLayout();
|
||||
this.menuResize.SuspendLayout();
|
||||
this.menuLanguages.SuspendLayout();
|
||||
this.menuFullscreenContext.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
|
@ -100,11 +93,11 @@
|
|||
this.chromeToolStripMenuItem,
|
||||
this.reduceToIconToolStripMenuItem,
|
||||
this.toolStripSeparator1,
|
||||
this.languageToolStripMenuItem,
|
||||
this.settingsToolStripMenuItem,
|
||||
this.aboutToolStripMenuItem,
|
||||
this.menuContextClose});
|
||||
this.menuContext.Name = "menuContext";
|
||||
this.menuContext.Size = new System.Drawing.Size(169, 296);
|
||||
this.menuContext.Size = new System.Drawing.Size(187, 296);
|
||||
this.menuContext.Opening += new System.ComponentModel.CancelEventHandler(this.Menu_opening);
|
||||
//
|
||||
// menuContextWindows
|
||||
|
@ -112,7 +105,7 @@
|
|||
this.menuContextWindows.DropDown = this.menuWindows;
|
||||
this.menuContextWindows.Image = global::OnTopReplica.Properties.Resources.list;
|
||||
this.menuContextWindows.Name = "menuContextWindows";
|
||||
this.menuContextWindows.Size = new System.Drawing.Size(168, 22);
|
||||
this.menuContextWindows.Size = new System.Drawing.Size(186, 22);
|
||||
this.menuContextWindows.Text = global::OnTopReplica.Strings.MenuWindows;
|
||||
this.menuContextWindows.ToolTipText = global::OnTopReplica.Strings.MenuWindowsTT;
|
||||
//
|
||||
|
@ -135,7 +128,7 @@
|
|||
//
|
||||
this.switchToWindowToolStripMenuItem.Image = global::OnTopReplica.Properties.Resources.xiao_arrow;
|
||||
this.switchToWindowToolStripMenuItem.Name = "switchToWindowToolStripMenuItem";
|
||||
this.switchToWindowToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.switchToWindowToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||
this.switchToWindowToolStripMenuItem.Text = global::OnTopReplica.Strings.MenuSwitch;
|
||||
this.switchToWindowToolStripMenuItem.ToolTipText = global::OnTopReplica.Strings.MenuSwitchTT;
|
||||
this.switchToWindowToolStripMenuItem.Click += new System.EventHandler(this.Menu_Switch_click);
|
||||
|
@ -145,7 +138,7 @@
|
|||
this.selectRegionToolStripMenuItem.Enabled = false;
|
||||
this.selectRegionToolStripMenuItem.Image = global::OnTopReplica.Properties.Resources.regions;
|
||||
this.selectRegionToolStripMenuItem.Name = "selectRegionToolStripMenuItem";
|
||||
this.selectRegionToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.selectRegionToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||
this.selectRegionToolStripMenuItem.Text = global::OnTopReplica.Strings.MenuRegion;
|
||||
this.selectRegionToolStripMenuItem.ToolTipText = global::OnTopReplica.Strings.MenuRegionTT;
|
||||
this.selectRegionToolStripMenuItem.Click += new System.EventHandler(this.Menu_Region_click);
|
||||
|
@ -159,7 +152,7 @@
|
|||
this.restoreLastClonedWindowToolStripMenuItem});
|
||||
this.advancedToolStripMenuItem.Image = global::OnTopReplica.Properties.Resources.xiao_wrench;
|
||||
this.advancedToolStripMenuItem.Name = "advancedToolStripMenuItem";
|
||||
this.advancedToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.advancedToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||
this.advancedToolStripMenuItem.Text = global::OnTopReplica.Strings.MenuAdvanced;
|
||||
this.advancedToolStripMenuItem.DropDownOpening += new System.EventHandler(this.Menu_Advanced_opening);
|
||||
//
|
||||
|
@ -194,7 +187,8 @@
|
|||
//
|
||||
this.restoreLastClonedWindowToolStripMenuItem.Name = "restoreLastClonedWindowToolStripMenuItem";
|
||||
this.restoreLastClonedWindowToolStripMenuItem.Size = new System.Drawing.Size(218, 22);
|
||||
this.restoreLastClonedWindowToolStripMenuItem.Text = "Restore last cloned window";
|
||||
this.restoreLastClonedWindowToolStripMenuItem.Text = global::OnTopReplica.Strings.MenuRestoreLast;
|
||||
this.restoreLastClonedWindowToolStripMenuItem.ToolTipText = global::OnTopReplica.Strings.MenuRestoreLastTT;
|
||||
this.restoreLastClonedWindowToolStripMenuItem.Click += new System.EventHandler(this.Menu_RestoreLastWindow_click);
|
||||
//
|
||||
// menuContextOpacity
|
||||
|
@ -202,7 +196,7 @@
|
|||
this.menuContextOpacity.DropDown = this.menuOpacity;
|
||||
this.menuContextOpacity.Image = global::OnTopReplica.Properties.Resources.window_opacity;
|
||||
this.menuContextOpacity.Name = "menuContextOpacity";
|
||||
this.menuContextOpacity.Size = new System.Drawing.Size(168, 22);
|
||||
this.menuContextOpacity.Size = new System.Drawing.Size(186, 22);
|
||||
this.menuContextOpacity.Text = global::OnTopReplica.Strings.MenuOpacity;
|
||||
//
|
||||
// menuOpacity
|
||||
|
@ -270,7 +264,7 @@
|
|||
this.resizeToolStripMenuItem.DropDown = this.menuResize;
|
||||
this.resizeToolStripMenuItem.Enabled = false;
|
||||
this.resizeToolStripMenuItem.Name = "resizeToolStripMenuItem";
|
||||
this.resizeToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.resizeToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||
this.resizeToolStripMenuItem.Text = global::OnTopReplica.Strings.MenuResize;
|
||||
//
|
||||
// menuResize
|
||||
|
@ -354,7 +348,7 @@
|
|||
this.bottomRightToolStripMenuItem});
|
||||
this.dockToolStripMenuItem.Image = global::OnTopReplica.Properties.Resources.pos_null;
|
||||
this.dockToolStripMenuItem.Name = "dockToolStripMenuItem";
|
||||
this.dockToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.dockToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||
this.dockToolStripMenuItem.Text = global::OnTopReplica.Strings.MenuPosition;
|
||||
this.dockToolStripMenuItem.ToolTipText = global::OnTopReplica.Strings.MenuPositionTT;
|
||||
this.dockToolStripMenuItem.DropDownOpening += new System.EventHandler(this.Menu_Position_Opening);
|
||||
|
@ -411,7 +405,7 @@
|
|||
// chromeToolStripMenuItem
|
||||
//
|
||||
this.chromeToolStripMenuItem.Name = "chromeToolStripMenuItem";
|
||||
this.chromeToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.chromeToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||
this.chromeToolStripMenuItem.Text = global::OnTopReplica.Strings.MenuChrome;
|
||||
this.chromeToolStripMenuItem.ToolTipText = global::OnTopReplica.Strings.MenuChromeTT;
|
||||
this.chromeToolStripMenuItem.Click += new System.EventHandler(this.Menu_Chrome_click);
|
||||
|
@ -420,7 +414,7 @@
|
|||
//
|
||||
this.reduceToIconToolStripMenuItem.Image = global::OnTopReplica.Properties.Resources.reduce;
|
||||
this.reduceToIconToolStripMenuItem.Name = "reduceToIconToolStripMenuItem";
|
||||
this.reduceToIconToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.reduceToIconToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||
this.reduceToIconToolStripMenuItem.Text = global::OnTopReplica.Strings.MenuReduce;
|
||||
this.reduceToIconToolStripMenuItem.ToolTipText = global::OnTopReplica.Strings.MenuReduceTT;
|
||||
this.reduceToIconToolStripMenuItem.Click += new System.EventHandler(this.Menu_Reduce_click);
|
||||
|
@ -428,78 +422,21 @@
|
|||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(165, 6);
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(183, 6);
|
||||
//
|
||||
// languageToolStripMenuItem
|
||||
// settingsToolStripMenuItem
|
||||
//
|
||||
this.languageToolStripMenuItem.DropDown = this.menuLanguages;
|
||||
this.languageToolStripMenuItem.Name = "languageToolStripMenuItem";
|
||||
this.languageToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.languageToolStripMenuItem.Text = global::OnTopReplica.Strings.Language;
|
||||
//
|
||||
// menuLanguages
|
||||
//
|
||||
this.menuLanguages.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.englishToolStripMenuItem,
|
||||
this.cestinaToolStripMenuItem,
|
||||
this.danskToolStripMenuItem1,
|
||||
this.espanolToolStripMenuItem,
|
||||
this.italianoToolStripMenuItem});
|
||||
this.menuLanguages.Name = "menuLanguages";
|
||||
this.menuLanguages.OwnerItem = this.languageToolStripMenuItem;
|
||||
this.menuLanguages.Size = new System.Drawing.Size(153, 136);
|
||||
this.menuLanguages.Text = "Dansk";
|
||||
//
|
||||
// englishToolStripMenuItem
|
||||
//
|
||||
this.englishToolStripMenuItem.Image = global::OnTopReplica.Properties.Resources.flag_usa;
|
||||
this.englishToolStripMenuItem.Name = "englishToolStripMenuItem";
|
||||
this.englishToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.englishToolStripMenuItem.Tag = "en-US";
|
||||
this.englishToolStripMenuItem.Text = "English";
|
||||
this.englishToolStripMenuItem.Click += new System.EventHandler(this.Menu_Language_click);
|
||||
//
|
||||
// cestinaToolStripMenuItem
|
||||
//
|
||||
this.cestinaToolStripMenuItem.Image = global::OnTopReplica.Properties.Resources.flag_czech;
|
||||
this.cestinaToolStripMenuItem.Name = "cestinaToolStripMenuItem";
|
||||
this.cestinaToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.cestinaToolStripMenuItem.Tag = "cs-CZ";
|
||||
this.cestinaToolStripMenuItem.Text = "Čeština";
|
||||
this.cestinaToolStripMenuItem.Click += new System.EventHandler(this.Menu_Language_click);
|
||||
//
|
||||
// danskToolStripMenuItem1
|
||||
//
|
||||
this.danskToolStripMenuItem1.Image = global::OnTopReplica.Properties.Resources.flag_danish;
|
||||
this.danskToolStripMenuItem1.Name = "danskToolStripMenuItem1";
|
||||
this.danskToolStripMenuItem1.Size = new System.Drawing.Size(152, 22);
|
||||
this.danskToolStripMenuItem1.Tag = "da-DK";
|
||||
this.danskToolStripMenuItem1.Text = "Dansk";
|
||||
this.danskToolStripMenuItem1.Click += new System.EventHandler(this.Menu_Language_click);
|
||||
//
|
||||
// espanolToolStripMenuItem
|
||||
//
|
||||
this.espanolToolStripMenuItem.Image = global::OnTopReplica.Properties.Resources.flag_spanish;
|
||||
this.espanolToolStripMenuItem.Name = "espanolToolStripMenuItem";
|
||||
this.espanolToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.espanolToolStripMenuItem.Tag = "es-ES";
|
||||
this.espanolToolStripMenuItem.Text = "Español";
|
||||
this.espanolToolStripMenuItem.Click += new System.EventHandler(this.Menu_Language_click);
|
||||
//
|
||||
// italianoToolStripMenuItem
|
||||
//
|
||||
this.italianoToolStripMenuItem.Image = global::OnTopReplica.Properties.Resources.flag_ita;
|
||||
this.italianoToolStripMenuItem.Name = "italianoToolStripMenuItem";
|
||||
this.italianoToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.italianoToolStripMenuItem.Tag = "it-IT";
|
||||
this.italianoToolStripMenuItem.Text = "Italiano";
|
||||
this.italianoToolStripMenuItem.Click += new System.EventHandler(this.Menu_Language_click);
|
||||
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
|
||||
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||
this.settingsToolStripMenuItem.Text = global::OnTopReplica.Strings.MenuSettings;
|
||||
this.settingsToolStripMenuItem.ToolTipText = global::OnTopReplica.Strings.MenuSettingsTT;
|
||||
this.settingsToolStripMenuItem.Click += new System.EventHandler(this.Menu_Settings_click);
|
||||
//
|
||||
// aboutToolStripMenuItem
|
||||
//
|
||||
this.aboutToolStripMenuItem.Image = global::OnTopReplica.Properties.Resources.xiao_help;
|
||||
this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
|
||||
this.aboutToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.aboutToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||
this.aboutToolStripMenuItem.Text = global::OnTopReplica.Strings.MenuAbout;
|
||||
this.aboutToolStripMenuItem.ToolTipText = global::OnTopReplica.Strings.MenuAboutTT;
|
||||
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.Menu_About_click);
|
||||
|
@ -508,7 +445,7 @@
|
|||
//
|
||||
this.menuContextClose.Image = global::OnTopReplica.Properties.Resources.close_new;
|
||||
this.menuContextClose.Name = "menuContextClose";
|
||||
this.menuContextClose.Size = new System.Drawing.Size(168, 22);
|
||||
this.menuContextClose.Size = new System.Drawing.Size(186, 22);
|
||||
this.menuContextClose.Text = global::OnTopReplica.Strings.MenuClose;
|
||||
this.menuContextClose.Click += new System.EventHandler(this.Menu_Close_click);
|
||||
//
|
||||
|
@ -564,10 +501,11 @@
|
|||
this.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.ClientSize = new System.Drawing.Size(264, 204);
|
||||
this.ControlBox = false;
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.MinimumSize = new System.Drawing.Size(20, 38);
|
||||
this.MinimumSize = new System.Drawing.Size(40, 40);
|
||||
this.Name = "MainForm";
|
||||
this.Text = "OnTopReplica";
|
||||
this.TopMost = true;
|
||||
|
@ -575,7 +513,6 @@
|
|||
this.menuWindows.ResumeLayout(false);
|
||||
this.menuOpacity.ResumeLayout(false);
|
||||
this.menuResize.ResumeLayout(false);
|
||||
this.menuLanguages.ResumeLayout(false);
|
||||
this.menuFullscreenContext.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
|
@ -612,14 +549,8 @@
|
|||
private System.Windows.Forms.ToolStripMenuItem quarterToolStripMenuItem1;
|
||||
private System.Windows.Forms.ToolStripMenuItem fullscreenToolStripMenuItem1;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
||||
private System.Windows.Forms.ToolStripMenuItem languageToolStripMenuItem;
|
||||
private System.Windows.Forms.ContextMenuStrip menuLanguages;
|
||||
private System.Windows.Forms.ToolStripMenuItem englishToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem italianoToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem cestinaToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem danskToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem chromeToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem danskToolStripMenuItem1;
|
||||
private System.Windows.Forms.ContextMenuStrip menuFullscreenContext;
|
||||
private System.Windows.Forms.ToolStripMenuItem fullSelectWindowToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem fullOpacityToolStripMenuItem;
|
||||
|
@ -633,8 +564,8 @@
|
|||
private System.Windows.Forms.ToolStripMenuItem disabledToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private System.Windows.Forms.ToolStripMenuItem restorePositionAndSizeToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem espanolToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem restoreLastClonedWindowToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,8 +17,6 @@ namespace OnTopReplica {
|
|||
|
||||
//GUI elements
|
||||
ThumbnailPanel _thumbnailPanel;
|
||||
SidePanel _currentSidePanel = null;
|
||||
Panel _sidePanelContainer;
|
||||
|
||||
//Managers
|
||||
BaseWindowSeeker _windowSeeker = new TaskWindowSeeker {
|
||||
|
@ -37,6 +35,7 @@ namespace OnTopReplica {
|
|||
InitializeComponent();
|
||||
KeepAspectRatio = false;
|
||||
GlassEnabled = true;
|
||||
GlassMargins = new Margins(-1);
|
||||
|
||||
//Store default values
|
||||
_nonClickThroughKey = TransparencyKey;
|
||||
|
@ -44,26 +43,14 @@ namespace OnTopReplica {
|
|||
//Thumbnail panel
|
||||
_thumbnailPanel = new ThumbnailPanel {
|
||||
Location = Point.Empty,
|
||||
Anchor = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right,
|
||||
Size = ClientSize
|
||||
Dock = DockStyle.Fill
|
||||
};
|
||||
_thumbnailPanel.CloneClick += new EventHandler<CloneClickEventArgs>(Thumbnail_CloneClick);
|
||||
Controls.Add(_thumbnailPanel);
|
||||
|
||||
//Side panel
|
||||
_sidePanelContainer = new Panel {
|
||||
Location = new Point(ClientSize.Width + 5, 0),
|
||||
Anchor = AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom,
|
||||
Enabled = false,
|
||||
Visible = false,
|
||||
Size = new Size(100, ClientSize.Height),
|
||||
Padding = new Padding(4)
|
||||
};
|
||||
Controls.Add(_sidePanelContainer);
|
||||
|
||||
//Set native renderer on context menus
|
||||
Asztal.Szótár.NativeToolStripRenderer.SetToolStripRenderer(
|
||||
menuContext, menuWindows, menuOpacity, menuResize, menuLanguages, menuFullscreenContext
|
||||
menuContext, menuWindows, menuOpacity, menuResize, menuFullscreenContext
|
||||
);
|
||||
|
||||
//Init message pump extensions
|
||||
|
@ -80,10 +67,8 @@ namespace OnTopReplica {
|
|||
this.KeyPreview = true;
|
||||
}
|
||||
|
||||
delegate void GuiAction();
|
||||
|
||||
void UpdateManager_CheckCompleted(object sender, UpdateCheckCompletedEventArgs e) {
|
||||
this.Invoke(new GuiAction(() => {
|
||||
this.Invoke(new Action(() => {
|
||||
if (e.Success) {
|
||||
_updateManager.HandleUpdateCheck(this, e.Information, false);
|
||||
}
|
||||
|
@ -139,14 +124,10 @@ namespace OnTopReplica {
|
|||
base.OnClosing(e);
|
||||
}
|
||||
|
||||
Margins fullMargins = new Margins(-1);
|
||||
protected override void OnMove(EventArgs e) {
|
||||
base.OnMove(e);
|
||||
|
||||
protected override void OnResize(EventArgs e) {
|
||||
base.OnResize(e);
|
||||
|
||||
this.GlassMargins = (_currentSidePanel != null) ?
|
||||
new Margins(ClientSize.Width - _sidePanelContainer.Width, 0, 0, 0) :
|
||||
fullMargins;
|
||||
AdjustSidePanelLocation();
|
||||
}
|
||||
|
||||
protected override void OnResizeEnd(EventArgs e) {
|
||||
|
@ -247,8 +228,6 @@ namespace OnTopReplica {
|
|||
|
||||
#endregion
|
||||
|
||||
const string Title = "OnTopReplica";
|
||||
|
||||
#region Keyboard event handling
|
||||
|
||||
protected override void OnKeyUp(KeyEventArgs e) {
|
||||
|
@ -328,7 +307,6 @@ namespace OnTopReplica {
|
|||
bool _isFullscreen = false;
|
||||
Point _preFullscreenLocation;
|
||||
Size _preFullscreenSize;
|
||||
FormBorderStyle _preFullscreenBorderStyle;
|
||||
|
||||
public bool IsFullscreen {
|
||||
get {
|
||||
|
@ -346,7 +324,6 @@ namespace OnTopReplica {
|
|||
if (value) {
|
||||
_preFullscreenLocation = Location;
|
||||
_preFullscreenSize = ClientSize;
|
||||
_preFullscreenBorderStyle = FormBorderStyle;
|
||||
|
||||
FormBorderStyle = FormBorderStyle.None;
|
||||
var currentScreen = Screen.FromControl(this);
|
||||
|
@ -354,7 +331,7 @@ namespace OnTopReplica {
|
|||
Location = currentScreen.WorkingArea.Location;
|
||||
}
|
||||
else {
|
||||
FormBorderStyle = _preFullscreenBorderStyle;
|
||||
FormBorderStyle = DefaultBorderStyle;
|
||||
Location = _preFullscreenLocation;
|
||||
ClientSize = _preFullscreenSize;
|
||||
RefreshAspectRatio();
|
||||
|
|
|
@ -129,9 +129,6 @@
|
|||
<metadata name="menuResize.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>578, 17</value>
|
||||
</metadata>
|
||||
<metadata name="menuLanguages.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>695, 17</value>
|
||||
</metadata>
|
||||
<metadata name="menuFullscreenContext.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>399, 17</value>
|
||||
</metadata>
|
||||
|
|
|
@ -8,98 +8,68 @@ namespace OnTopReplica {
|
|||
|
||||
partial class MainForm {
|
||||
|
||||
EventHandler RequestClosingHandler;
|
||||
|
||||
const int SidePanelMargin = 1;
|
||||
//SidePanel _currentSidePanel = null;
|
||||
SidePanelContainer _sidePanelContainer = null;
|
||||
|
||||
/// <summary>
|
||||
/// Opens a new side panel.
|
||||
/// </summary>
|
||||
/// <param name="panel">The side panel to embed.</param>
|
||||
public void SetSidePanel(SidePanel panel) {
|
||||
if (_currentSidePanel != null) {
|
||||
if (IsSidePanelOpen) {
|
||||
CloseSidePanel();
|
||||
}
|
||||
|
||||
_currentSidePanel = panel;
|
||||
_currentSidePanel.OnFirstShown(this);
|
||||
|
||||
//Add and show
|
||||
_sidePanelContainer.Controls.Add(panel);
|
||||
_sidePanelContainer.Enabled = true;
|
||||
_sidePanelContainer.Show();
|
||||
panel.Show();
|
||||
|
||||
int intHorzMargin = panel.Margin.Horizontal + _sidePanelContainer.Padding.Horizontal; //internal margins for sidepanel
|
||||
int intVertMargin = panel.Margin.Vertical + _sidePanelContainer.Padding.Vertical;
|
||||
|
||||
//Resize container
|
||||
_sidePanelContainer.ClientSize = new Size(
|
||||
panel.MinimumSize.Width + intHorzMargin,
|
||||
ClientSize.Height
|
||||
);
|
||||
|
||||
int rightHorzMargin = _sidePanelContainer.Width + SidePanelMargin; //horz margin between the two controls
|
||||
|
||||
//Resize rest
|
||||
MinimumSize = new Size(
|
||||
20 + panel.MinimumSize.Width + SidePanelMargin + intHorzMargin,
|
||||
panel.MinimumSize.Height + intVertMargin
|
||||
);
|
||||
ClientSize = new Size(
|
||||
ClientSize.Width + rightHorzMargin,
|
||||
ClientSize.Height
|
||||
);
|
||||
ExtraPadding = new Padding(0, 0, rightHorzMargin, 0);
|
||||
_thumbnailPanel.Size = new Size(
|
||||
ClientSize.Width - rightHorzMargin,
|
||||
ClientSize.Height
|
||||
);
|
||||
_sidePanelContainer.Location = new Point(
|
||||
ClientSize.Width - rightHorzMargin,
|
||||
0
|
||||
);
|
||||
|
||||
//Move window if needed
|
||||
FixPositionAndSize();
|
||||
|
||||
//Hook event listener
|
||||
if (RequestClosingHandler == null)
|
||||
RequestClosingHandler = new EventHandler(SidePanel_RequestClosing);
|
||||
panel.RequestClosing += RequestClosingHandler;
|
||||
_sidePanelContainer = new SidePanelContainer(this);
|
||||
_sidePanelContainer.SetSidePanel(panel);
|
||||
_sidePanelContainer.Show(this);
|
||||
AdjustSidePanelLocation();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Closes the current side panel.
|
||||
/// </summary>
|
||||
public void CloseSidePanel() {
|
||||
if (_currentSidePanel == null)
|
||||
if (_sidePanelContainer == null || _sidePanelContainer.IsDisposed) {
|
||||
_sidePanelContainer = null;
|
||||
return;
|
||||
}
|
||||
|
||||
_sidePanelContainer.Hide();
|
||||
_sidePanelContainer.FreeSidePanel();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets whether a side panel is currently shown.
|
||||
/// </summary>
|
||||
public bool IsSidePanelOpen {
|
||||
get {
|
||||
if (_sidePanelContainer == null)
|
||||
return false;
|
||||
if (_sidePanelContainer.IsDisposed) {
|
||||
_sidePanelContainer = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
return _sidePanelContainer.Visible;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Moves the side panel based on the main form's current location.
|
||||
/// </summary>
|
||||
protected void AdjustSidePanelLocation() {
|
||||
if (!IsSidePanelOpen)
|
||||
return;
|
||||
|
||||
//Unhook listener to make panel freeable
|
||||
_currentSidePanel.RequestClosing -= RequestClosingHandler;
|
||||
|
||||
//Remove side panel and container
|
||||
_currentSidePanel.OnClosing(this);
|
||||
_currentSidePanel.Hide();
|
||||
_sidePanelContainer.Controls.Clear();
|
||||
_sidePanelContainer.Visible = _sidePanelContainer.Enabled = false;
|
||||
|
||||
//Free panel
|
||||
_currentSidePanel.Dispose();
|
||||
_currentSidePanel = null;
|
||||
|
||||
//Resize
|
||||
MinimumSize = new Size(20, 20);
|
||||
ClientSize = new Size(
|
||||
ClientSize.Width - _sidePanelContainer.Width - SidePanelMargin,
|
||||
ClientSize.Height
|
||||
);
|
||||
ExtraPadding = new Padding(0);
|
||||
_thumbnailPanel.Size = ClientSize;
|
||||
|
||||
//Put focus back to main form
|
||||
this.Focus();
|
||||
//Check if moving the panel on the form's right would put it off-screen
|
||||
var screen = Screen.FromControl(this);
|
||||
if (Location.X + Width + _sidePanelContainer.Width > screen.WorkingArea.Right) {
|
||||
_sidePanelContainer.Location = new Point(Location.X - _sidePanelContainer.Width, Location.Y);
|
||||
}
|
||||
else {
|
||||
_sidePanelContainer.Location = new Point(Location.X + Width, Location.Y);
|
||||
}
|
||||
}
|
||||
|
||||
void SidePanel_RequestClosing(object sender, EventArgs e) {
|
||||
|
|
|
@ -10,7 +10,7 @@ namespace OnTopReplica {
|
|||
|
||||
private void Menu_opening(object sender, CancelEventArgs e) {
|
||||
//Cancel if currently in "fullscreen" mode or a side panel is open
|
||||
if (IsFullscreen || _currentSidePanel != null) {
|
||||
if (IsFullscreen || IsSidePanelOpen) {
|
||||
e.Cancel = true;
|
||||
return;
|
||||
}
|
||||
|
@ -189,6 +189,7 @@ namespace OnTopReplica {
|
|||
}
|
||||
|
||||
private void Menu_Language_click(object sender, EventArgs e) {
|
||||
//TODO: strip this stuff
|
||||
ToolStripItem tsi = (ToolStripItem)sender;
|
||||
|
||||
string langCode = tsi.Tag as string;
|
||||
|
@ -202,6 +203,10 @@ namespace OnTopReplica {
|
|||
MessageBox.Show("Error");*/
|
||||
}
|
||||
|
||||
private void Menu_Settings_click(object sender, EventArgs e) {
|
||||
this.SetSidePanel(new OnTopReplica.SidePanels.OptionsPanel());
|
||||
}
|
||||
|
||||
private void Menu_About_click(object sender, EventArgs e) {
|
||||
this.Hide();
|
||||
|
||||
|
|
|
@ -139,6 +139,12 @@
|
|||
<Compile Include="Native\HT.cs" />
|
||||
<Compile Include="Pair.cs" />
|
||||
<Compile Include="Platforms\DebugPlatform.cs" />
|
||||
<Compile Include="SidePanelContainer.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SidePanelContainer.Designer.cs">
|
||||
<DependentUpon>SidePanelContainer.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SidePanels\OptionsPanel.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
|
@ -161,6 +167,9 @@
|
|||
<Compile Include="WindowSeekers\ByTitleWindowSeeker.cs" />
|
||||
<Compile Include="WindowSeekers\RestoreWindowSeeker.cs" />
|
||||
<Compile Include="WindowSeekers\TaskWindowSeeker.cs" />
|
||||
<EmbeddedResource Include="SidePanelContainer.resx">
|
||||
<DependentUpon>SidePanelContainer.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Strings.ru.resx" />
|
||||
<None Include="Native\ITaskBarList.cs" />
|
||||
<Compile Include="Native\InputMethods.cs" />
|
||||
|
|
|
@ -49,5 +49,14 @@ namespace OnTopReplica {
|
|||
public virtual void OnClosing(MainForm form) {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the side panel's title.
|
||||
/// </summary>
|
||||
public virtual string Title {
|
||||
get {
|
||||
return "Side panel";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
46
OnTopReplica/SidePanelContainer.Designer.cs
generated
Normal file
46
OnTopReplica/SidePanelContainer.Designer.cs
generated
Normal file
|
@ -0,0 +1,46 @@
|
|||
namespace OnTopReplica {
|
||||
partial class SidePanelContainer {
|
||||
/// <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.SuspendLayout();
|
||||
//
|
||||
// SidePanelContainer
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(246, 300);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "SidePanelContainer";
|
||||
this.Padding = new System.Windows.Forms.Padding(6);
|
||||
this.ShowInTaskbar = false;
|
||||
this.Text = "Side Panel container";
|
||||
this.TopMost = true;
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
98
OnTopReplica/SidePanelContainer.cs
Normal file
98
OnTopReplica/SidePanelContainer.cs
Normal file
|
@ -0,0 +1,98 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace OnTopReplica {
|
||||
/// <summary>
|
||||
/// Acts as a form that can contain a SidePanel instance.
|
||||
/// </summary>
|
||||
partial class SidePanelContainer : Form {
|
||||
|
||||
EventHandler RequestClosingHandler;
|
||||
|
||||
MainForm _parent;
|
||||
|
||||
public SidePanelContainer(MainForm mainForm) {
|
||||
InitializeComponent();
|
||||
|
||||
_parent = mainForm;
|
||||
RequestClosingHandler = new EventHandler(Panel_RequestClosing);
|
||||
}
|
||||
|
||||
void Panel_RequestClosing(object sender, EventArgs e) {
|
||||
FreeSidePanel();
|
||||
this.Close();
|
||||
}
|
||||
|
||||
protected override void OnClosing(CancelEventArgs e) {
|
||||
base.OnClosing(e);
|
||||
|
||||
//Ensure side panel closing code is run
|
||||
FreeSidePanel();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets a new side panel and refreshes the window. The panel is
|
||||
/// managed by the SidePanelContainer from now on.
|
||||
/// </summary>
|
||||
/// <param name="panel">SidePanel to embed and to manage.</param>
|
||||
public void SetSidePanel(SidePanel panel) {
|
||||
panel.OnFirstShown(_parent);
|
||||
|
||||
//Set panel
|
||||
this.SuspendLayout();
|
||||
|
||||
this.Text = panel.Title;
|
||||
|
||||
CurrentSidePanel = panel;
|
||||
panel.RequestClosing += RequestClosingHandler;
|
||||
this.Controls.Add(panel);
|
||||
|
||||
var minSize = panel.MinimumSize.Expand(this.Padding);
|
||||
this.ClientSize = minSize;
|
||||
this.EnsureMinimumClientSize(minSize);
|
||||
|
||||
this.ResumeLayout();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes the current side panel and disposes it.
|
||||
/// </summary>
|
||||
public void FreeSidePanel() {
|
||||
if (CurrentSidePanel == null)
|
||||
return;
|
||||
|
||||
this.SuspendLayout();
|
||||
|
||||
FreeSidePanelCore();
|
||||
|
||||
this.ResumeLayout();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes the current side panel and disposes it (doesn't suspend layout).
|
||||
/// </summary>
|
||||
private void FreeSidePanelCore() {
|
||||
CurrentSidePanel.OnClosing(_parent);
|
||||
|
||||
//Free hook
|
||||
CurrentSidePanel.RequestClosing -= RequestClosingHandler;
|
||||
|
||||
//Remove
|
||||
this.Controls.Remove(CurrentSidePanel);
|
||||
|
||||
//Free
|
||||
CurrentSidePanel.Dispose();
|
||||
CurrentSidePanel = null;
|
||||
}
|
||||
|
||||
public SidePanel CurrentSidePanel {
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
}
|
||||
}
|
120
OnTopReplica/SidePanelContainer.resx
Normal file
120
OnTopReplica/SidePanelContainer.resx
Normal file
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -10,6 +10,12 @@ namespace OnTopReplica.SidePanels {
|
|||
InitializeComponent();
|
||||
}
|
||||
|
||||
public override string Title {
|
||||
get {
|
||||
return Strings.MenuGroupSwitch;
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnFirstShown(MainForm form) {
|
||||
base.OnFirstShown(form);
|
||||
|
||||
|
|
120
OnTopReplica/SidePanels/OptionsPanel.Designer.cs
generated
Normal file
120
OnTopReplica/SidePanels/OptionsPanel.Designer.cs
generated
Normal file
|
@ -0,0 +1,120 @@
|
|||
namespace OnTopReplica.SidePanels {
|
||||
partial class OptionsPanel {
|
||||
/// <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.btnClose = new System.Windows.Forms.Button();
|
||||
this.panelMain = new System.Windows.Forms.Panel();
|
||||
this.groupLanguage = new System.Windows.Forms.GroupBox();
|
||||
this.lblLanguage = new System.Windows.Forms.Label();
|
||||
this.comboLanguage = new System.Windows.Forms.ComboBox();
|
||||
this.panelMain.SuspendLayout();
|
||||
this.groupLanguage.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btnClose
|
||||
//
|
||||
this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnClose.Location = new System.Drawing.Point(185, 217);
|
||||
this.btnClose.Name = "btnClose";
|
||||
this.btnClose.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnClose.TabIndex = 0;
|
||||
this.btnClose.Text = "Close";
|
||||
this.btnClose.UseVisualStyleBackColor = true;
|
||||
this.btnClose.Click += new System.EventHandler(this.Close_click);
|
||||
//
|
||||
// panelMain
|
||||
//
|
||||
this.panelMain.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.panelMain.AutoScroll = true;
|
||||
this.panelMain.Controls.Add(this.groupLanguage);
|
||||
this.panelMain.Location = new System.Drawing.Point(0, 0);
|
||||
this.panelMain.Name = "panelMain";
|
||||
this.panelMain.Size = new System.Drawing.Size(260, 211);
|
||||
this.panelMain.TabIndex = 1;
|
||||
//
|
||||
// groupLanguage
|
||||
//
|
||||
this.groupLanguage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupLanguage.Controls.Add(this.lblLanguage);
|
||||
this.groupLanguage.Controls.Add(this.comboLanguage);
|
||||
this.groupLanguage.Location = new System.Drawing.Point(3, 3);
|
||||
this.groupLanguage.Name = "groupLanguage";
|
||||
this.groupLanguage.Size = new System.Drawing.Size(254, 68);
|
||||
this.groupLanguage.TabIndex = 0;
|
||||
this.groupLanguage.TabStop = false;
|
||||
this.groupLanguage.Text = "Language:";
|
||||
//
|
||||
// lblLanguage
|
||||
//
|
||||
this.lblLanguage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblLanguage.Location = new System.Drawing.Point(6, 43);
|
||||
this.lblLanguage.Name = "lblLanguage";
|
||||
this.lblLanguage.Size = new System.Drawing.Size(242, 23);
|
||||
this.lblLanguage.TabIndex = 1;
|
||||
this.lblLanguage.Text = "Requires a restart.";
|
||||
//
|
||||
// comboLanguage
|
||||
//
|
||||
this.comboLanguage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.comboLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboLanguage.FormattingEnabled = true;
|
||||
this.comboLanguage.Items.AddRange(new object[] {
|
||||
"English",
|
||||
"Dansk",
|
||||
"Italiano"});
|
||||
this.comboLanguage.Location = new System.Drawing.Point(6, 19);
|
||||
this.comboLanguage.Name = "comboLanguage";
|
||||
this.comboLanguage.Size = new System.Drawing.Size(242, 21);
|
||||
this.comboLanguage.TabIndex = 0;
|
||||
//
|
||||
// OptionsPanel
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoScroll = true;
|
||||
this.Controls.Add(this.panelMain);
|
||||
this.Controls.Add(this.btnClose);
|
||||
this.MinimumSize = new System.Drawing.Size(260, 240);
|
||||
this.Name = "OptionsPanel";
|
||||
this.Size = new System.Drawing.Size(260, 240);
|
||||
this.panelMain.ResumeLayout(false);
|
||||
this.groupLanguage.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button btnClose;
|
||||
private System.Windows.Forms.Panel panelMain;
|
||||
private System.Windows.Forms.GroupBox groupLanguage;
|
||||
private System.Windows.Forms.ComboBox comboLanguage;
|
||||
private System.Windows.Forms.Label lblLanguage;
|
||||
}
|
||||
}
|
25
OnTopReplica/SidePanels/OptionsPanel.cs
Normal file
25
OnTopReplica/SidePanels/OptionsPanel.cs
Normal file
|
@ -0,0 +1,25 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace OnTopReplica.SidePanels {
|
||||
partial class OptionsPanel : SidePanel {
|
||||
public OptionsPanel() {
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Close_click(object sender, EventArgs e) {
|
||||
OnRequestClosing();
|
||||
}
|
||||
|
||||
public override string Title {
|
||||
get {
|
||||
return Strings.MenuSettings;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
120
OnTopReplica/SidePanels/OptionsPanel.resx
Normal file
120
OnTopReplica/SidePanels/OptionsPanel.resx
Normal file
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -19,6 +19,12 @@ namespace OnTopReplica.SidePanels {
|
|||
_regionDrawnHandler = new ThumbnailPanel.RegionDrawnHandler(ThumbnailPanel_RegionDrawn);
|
||||
}
|
||||
|
||||
public override string Title {
|
||||
get {
|
||||
return Strings.MenuRegion;
|
||||
}
|
||||
}
|
||||
|
||||
ThumbnailPanel.RegionDrawnHandler _regionDrawnHandler;
|
||||
|
||||
public override void OnFirstShown(MainForm form) {
|
||||
|
|
36
OnTopReplica/Strings.Designer.cs
generated
36
OnTopReplica/Strings.Designer.cs
generated
|
@ -1168,6 +1168,42 @@ namespace OnTopReplica {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Restore last cloned window.
|
||||
/// </summary>
|
||||
internal static string MenuRestoreLast {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuRestoreLast", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to When enabled, OnTopReplica will attempt to restore the last cloned window on start up..
|
||||
/// </summary>
|
||||
internal static string MenuRestoreLastTT {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuRestoreLastTT", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Settings....
|
||||
/// </summary>
|
||||
internal static string MenuSettings {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuSettings", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Displays the settings panel..
|
||||
/// </summary>
|
||||
internal static string MenuSettingsTT {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuSettingsTT", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Switch to window.
|
||||
/// </summary>
|
||||
|
|
|
@ -1,30 +1,135 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AboutButtonCancelTT" xml:space="preserve">
|
||||
<value>Abort update process.</value>
|
||||
</data>
|
||||
<data name="AboutButtonExpanderTT" xml:space="preserve">
|
||||
<value>Show details about OnTopReplica.</value>
|
||||
</data>
|
||||
<data name="AboutButtonResetTT" xml:space="preserve">
|
||||
<value>Reset all OnTopReplica settings.</value>
|
||||
</data>
|
||||
<data name="AboutButtonUpdateTT" xml:space="preserve">
|
||||
<value>Update OnTopReplica now.</value>
|
||||
</data>
|
||||
<data name="AboutDetails" xml:space="preserve">
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AboutButtonCancelTT" xml:space="preserve">
|
||||
<value>Abort update process.</value>
|
||||
</data>
|
||||
<data name="AboutButtonExpanderTT" xml:space="preserve">
|
||||
<value>Show details about OnTopReplica.</value>
|
||||
</data>
|
||||
<data name="AboutButtonResetTT" xml:space="preserve">
|
||||
<value>Reset all OnTopReplica settings.</value>
|
||||
</data>
|
||||
<data name="AboutButtonUpdateTT" xml:space="preserve">
|
||||
<value>Update OnTopReplica now.</value>
|
||||
</data>
|
||||
<data name="AboutDetails" xml:space="preserve">
|
||||
<value><html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
|
@ -75,419 +180,431 @@ a:hover {
|
|||
<p>Some icons from <a href="http://www.vistaico.com">VistaICO.com</a> and the Xiao icon set.</p>
|
||||
|
||||
</body>
|
||||
</html></value>
|
||||
</data>
|
||||
<data name="ApplicationName" xml:space="preserve">
|
||||
<value>OnTopReplica</value>
|
||||
</data>
|
||||
<data name="AskReset" xml:space="preserve">
|
||||
<value>Reset window completely?</value>
|
||||
</data>
|
||||
<data name="AskResetButtonOk" xml:space="preserve">
|
||||
</html></value>
|
||||
</data>
|
||||
<data name="ApplicationName" xml:space="preserve">
|
||||
<value>OnTopReplica</value>
|
||||
</data>
|
||||
<data name="AskReset" xml:space="preserve">
|
||||
<value>Reset window completely?</value>
|
||||
</data>
|
||||
<data name="AskResetButtonOk" xml:space="preserve">
|
||||
<value>&Reset
|
||||
All settings will be lost.</value>
|
||||
</data>
|
||||
<data name="AskResetContent" xml:space="preserve">
|
||||
<value>Can be used to reset all settings if you lost control over the window or moved it beyond the screen boundary.</value>
|
||||
</data>
|
||||
<data name="AskResetTitle" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="AskSettingReset" xml:space="preserve">
|
||||
<value>Reset settings?</value>
|
||||
</data>
|
||||
<data name="AskSettingResetContent" xml:space="preserve">
|
||||
<value>This will erase all settings of OnTopReplica, returning it to the original state right after installation (all saved information, like stored regions, will be lost).</value>
|
||||
</data>
|
||||
<data name="AskSettingResetTitle" xml:space="preserve">
|
||||
<value>Reset settings</value>
|
||||
</data>
|
||||
<data name="AskUpdate" xml:space="preserve">
|
||||
<value>Download OnTopReplica {0}?</value>
|
||||
<comment>{0} update version</comment>
|
||||
</data>
|
||||
<data name="AskUpdateButtonCancel" xml:space="preserve">
|
||||
All settings will be lost.</value>
|
||||
</data>
|
||||
<data name="AskResetContent" xml:space="preserve">
|
||||
<value>Can be used to reset all settings if you lost control over the window or moved it beyond the screen boundary.</value>
|
||||
</data>
|
||||
<data name="AskResetTitle" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="AskSettingReset" xml:space="preserve">
|
||||
<value>Reset settings?</value>
|
||||
</data>
|
||||
<data name="AskSettingResetContent" xml:space="preserve">
|
||||
<value>This will erase all settings of OnTopReplica, returning it to the original state right after installation (all saved information, like stored regions, will be lost).</value>
|
||||
</data>
|
||||
<data name="AskSettingResetTitle" xml:space="preserve">
|
||||
<value>Reset settings</value>
|
||||
</data>
|
||||
<data name="AskUpdate" xml:space="preserve">
|
||||
<value>Download OnTopReplica {0}?</value>
|
||||
<comment>{0} update version</comment>
|
||||
</data>
|
||||
<data name="AskUpdateButtonCancel" xml:space="preserve">
|
||||
<value>Cancel update
|
||||
OnTopReplica will prompt you the next time it is started.</value>
|
||||
</data>
|
||||
<data name="AskUpdateButtonOk" xml:space="preserve">
|
||||
OnTopReplica will prompt you the next time it is started.</value>
|
||||
</data>
|
||||
<data name="AskUpdateButtonOk" xml:space="preserve">
|
||||
<value>Download
|
||||
Install OnTopReplica {0}.</value>
|
||||
<comment>{0} update version</comment>
|
||||
</data>
|
||||
<data name="AskUpdateContent" xml:space="preserve">
|
||||
<value>The new version can be downloaded and installed from the official website.</value>
|
||||
</data>
|
||||
<data name="AskUpdateExpanded" xml:space="preserve">
|
||||
Install OnTopReplica {0}.</value>
|
||||
<comment>{0} update version</comment>
|
||||
</data>
|
||||
<data name="AskUpdateContent" xml:space="preserve">
|
||||
<value>The new version can be downloaded and installed from the official website.</value>
|
||||
</data>
|
||||
<data name="AskUpdateExpanded" xml:space="preserve">
|
||||
<value>Installed version: {0}
|
||||
Available version: {1}</value>
|
||||
Available version: {1}</value>
|
||||
<comment>{0} installed version number
|
||||
{1} online available version number</comment>
|
||||
</data>
|
||||
<data name="AskUpdateTitle" xml:space="preserve">
|
||||
<value>Update available</value>
|
||||
</data>
|
||||
<data name="ButtonCancel" xml:space="preserve">
|
||||
<value>&Cancel</value>
|
||||
</data>
|
||||
<data name="CreatedBy" xml:space="preserve">
|
||||
<value>Created by: Lorenz Cuno Klopfenstein.</value>
|
||||
</data>
|
||||
<data name="DrawRegions" xml:space="preserve">
|
||||
<value>Draw regions using mouse.</value>
|
||||
</data>
|
||||
<data name="ErrorDetailButton" xml:space="preserve">
|
||||
<value>Details</value>
|
||||
</data>
|
||||
<data name="ErrorDetailsAero" xml:space="preserve">
|
||||
<value>Details on Windows Aero</value>
|
||||
</data>
|
||||
<data name="ErrorDetailsAeroInfo" xml:space="preserve">
|
||||
<value>Windows Aero is only available on Windows Vista Home Premium or higher.</value>
|
||||
</data>
|
||||
<data name="ErrorDwmOff" xml:space="preserve">
|
||||
<value>Desktop Composition' is not enabled.</value>
|
||||
</data>
|
||||
<data name="ErrorDwmOffContent" xml:space="preserve">
|
||||
{1} online available version number</comment>
|
||||
</data>
|
||||
<data name="AskUpdateTitle" xml:space="preserve">
|
||||
<value>Update available</value>
|
||||
</data>
|
||||
<data name="ButtonCancel" xml:space="preserve">
|
||||
<value>&Cancel</value>
|
||||
</data>
|
||||
<data name="CreatedBy" xml:space="preserve">
|
||||
<value>Created by: Lorenz Cuno Klopfenstein.</value>
|
||||
</data>
|
||||
<data name="DrawRegions" xml:space="preserve">
|
||||
<value>Draw regions using mouse.</value>
|
||||
</data>
|
||||
<data name="ErrorDetailButton" xml:space="preserve">
|
||||
<value>Details</value>
|
||||
</data>
|
||||
<data name="ErrorDetailsAero" xml:space="preserve">
|
||||
<value>Details on Windows Aero</value>
|
||||
</data>
|
||||
<data name="ErrorDetailsAeroInfo" xml:space="preserve">
|
||||
<value>Windows Aero is only available on Windows Vista Home Premium or higher.</value>
|
||||
</data>
|
||||
<data name="ErrorDwmOff" xml:space="preserve">
|
||||
<value>Desktop Composition' is not enabled.</value>
|
||||
</data>
|
||||
<data name="ErrorDwmOffContent" xml:space="preserve">
|
||||
<value>You must enable desktop composition, by selecting 'Windows Aero' as the theme used by Windows.
|
||||
|
||||
To do so, right-click on the desktop and click on Personalize.</value>
|
||||
</data>
|
||||
<data name="ErrorGenericInfoButton" xml:space="preserve">
|
||||
<value>Error details</value>
|
||||
</data>
|
||||
<data name="ErrorGenericInfoText" xml:space="preserve">
|
||||
<value>Error: </value>
|
||||
</data>
|
||||
<data name="ErrorGenericThumbnailHandleError" xml:space="preserve">
|
||||
<value>It appears that the selected window has been closed or is not valid anymore.</value>
|
||||
</data>
|
||||
<data name="ErrorGenericTitle" xml:space="preserve">
|
||||
<value>Error</value>
|
||||
</data>
|
||||
<data name="ErrorNoDwm" xml:space="preserve">
|
||||
To do so, right-click on the desktop and click on Personalize.</value>
|
||||
</data>
|
||||
<data name="ErrorGenericInfoButton" xml:space="preserve">
|
||||
<value>Error details</value>
|
||||
</data>
|
||||
<data name="ErrorGenericInfoText" xml:space="preserve">
|
||||
<value>Error: </value>
|
||||
</data>
|
||||
<data name="ErrorGenericThumbnailHandleError" xml:space="preserve">
|
||||
<value>It appears that the selected window has been closed or is not valid anymore.</value>
|
||||
</data>
|
||||
<data name="ErrorGenericTitle" xml:space="preserve">
|
||||
<value>Error</value>
|
||||
</data>
|
||||
<data name="ErrorNoDwm" xml:space="preserve">
|
||||
<value>Desktop Composition' is not supported on your Operating System.
|
||||
You must run this application on Windows Vista Home Premium or better.</value>
|
||||
</data>
|
||||
<data name="ErrorNoDwmTitle" xml:space="preserve">
|
||||
<value>Desktop Composition unsupported</value>
|
||||
</data>
|
||||
<data name="ErrorNoThumbnail" xml:space="preserve">
|
||||
<value>No thumbnail loaded.</value>
|
||||
</data>
|
||||
<data name="ErrorUnableToCreateThumbnail" xml:space="preserve">
|
||||
<value>Unable to create thumbnail</value>
|
||||
</data>
|
||||
<data name="ErrorUnableToFit" xml:space="preserve">
|
||||
<value>Unable to fit window.</value>
|
||||
</data>
|
||||
<data name="ErrorUpdate" xml:space="preserve">
|
||||
<value>Unable to check for updates.</value>
|
||||
</data>
|
||||
<data name="ErrorUpdateContent" xml:space="preserve">
|
||||
<value>It appears that OnTopReplica wasn't installed using 'ClickOnce'. You'll have to update manually (visit <a href="http://ontopreplica.codeplex.com">OnTopReplica's homepage</a>).</value>
|
||||
</data>
|
||||
<data name="ErrorUpdateContentGeneric" xml:space="preserve">
|
||||
<value>OnTopReplica was unable to check whether an updated version is available. Make sure you are connected to the Internet. If you are, the website may be temporarily down.</value>
|
||||
</data>
|
||||
<data name="FullscreenMode" xml:space="preserve">
|
||||
<value>Mode</value>
|
||||
</data>
|
||||
<data name="FullscreenModeAlwaysOnTop" xml:space="preserve">
|
||||
<value>Always on top</value>
|
||||
</data>
|
||||
<data name="FullscreenModeAlwaysOnTopTT" xml:space="preserve">
|
||||
<value>Forces OnTopReplica to stay always on top.</value>
|
||||
</data>
|
||||
<data name="FullscreenModeClickThrough" xml:space="preserve">
|
||||
<value>Click through</value>
|
||||
</data>
|
||||
<data name="FullscreenModeClickThroughTT" xml:space="preserve">
|
||||
<value>OnTopReplica will behave like a transparent overlay that lets your clicks through to the windows below.</value>
|
||||
</data>
|
||||
<data name="FullscreenModeNormal" xml:space="preserve">
|
||||
<value>Standard</value>
|
||||
</data>
|
||||
<data name="FullscreenModeNormalTT" xml:space="preserve">
|
||||
<value>Behaves like an ordinary window. You can bring other windows above OnTopReplica.</value>
|
||||
</data>
|
||||
<data name="FullscreenTitle" xml:space="preserve">
|
||||
<value>OnTopReplica fullscreen</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeDisableButton" xml:space="preserve">
|
||||
<value>Disable</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeEnableButton" xml:space="preserve">
|
||||
<value>Enable Group mode</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeStatusDisabled" xml:space="preserve">
|
||||
<value>Select multiple windows to enable.</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeStatusEnabled" xml:space="preserve">
|
||||
<value>Group switch mode is enabled.</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeTitle" xml:space="preserve">
|
||||
<value>Group switch mode:</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeWindows" xml:space="preserve">
|
||||
<value>Windows</value>
|
||||
<comment>Column Header of list, simply refers to available windows to be cloned</comment>
|
||||
</data>
|
||||
<data name="Homepage" xml:space="preserve">
|
||||
<value>Homepage: www.codeplex.com/ontopreplica.</value>
|
||||
</data>
|
||||
<data name="InfoClickForwarding" xml:space="preserve">
|
||||
<value>Do you want to enable "click forwarding"?</value>
|
||||
</data>
|
||||
<data name="InfoClickForwardingContent" xml:space="preserve">
|
||||
You must run this application on Windows Vista Home Premium or better.</value>
|
||||
</data>
|
||||
<data name="ErrorNoDwmTitle" xml:space="preserve">
|
||||
<value>Desktop Composition unsupported</value>
|
||||
</data>
|
||||
<data name="ErrorNoThumbnail" xml:space="preserve">
|
||||
<value>No thumbnail loaded.</value>
|
||||
</data>
|
||||
<data name="ErrorUnableToCreateThumbnail" xml:space="preserve">
|
||||
<value>Unable to create thumbnail</value>
|
||||
</data>
|
||||
<data name="ErrorUnableToFit" xml:space="preserve">
|
||||
<value>Unable to fit window.</value>
|
||||
</data>
|
||||
<data name="ErrorUpdate" xml:space="preserve">
|
||||
<value>Unable to check for updates.</value>
|
||||
</data>
|
||||
<data name="ErrorUpdateContent" xml:space="preserve">
|
||||
<value>It appears that OnTopReplica wasn't installed using 'ClickOnce'. You'll have to update manually (visit <a href="http://ontopreplica.codeplex.com">OnTopReplica's homepage</a>).</value>
|
||||
</data>
|
||||
<data name="ErrorUpdateContentGeneric" xml:space="preserve">
|
||||
<value>OnTopReplica was unable to check whether an updated version is available. Make sure you are connected to the Internet. If you are, the website may be temporarily down.</value>
|
||||
</data>
|
||||
<data name="FullscreenMode" xml:space="preserve">
|
||||
<value>Mode</value>
|
||||
</data>
|
||||
<data name="FullscreenModeAlwaysOnTop" xml:space="preserve">
|
||||
<value>Always on top</value>
|
||||
</data>
|
||||
<data name="FullscreenModeAlwaysOnTopTT" xml:space="preserve">
|
||||
<value>Forces OnTopReplica to stay always on top.</value>
|
||||
</data>
|
||||
<data name="FullscreenModeClickThrough" xml:space="preserve">
|
||||
<value>Click through</value>
|
||||
</data>
|
||||
<data name="FullscreenModeClickThroughTT" xml:space="preserve">
|
||||
<value>OnTopReplica will behave like a transparent overlay that lets your clicks through to the windows below.</value>
|
||||
</data>
|
||||
<data name="FullscreenModeNormal" xml:space="preserve">
|
||||
<value>Standard</value>
|
||||
</data>
|
||||
<data name="FullscreenModeNormalTT" xml:space="preserve">
|
||||
<value>Behaves like an ordinary window. You can bring other windows above OnTopReplica.</value>
|
||||
</data>
|
||||
<data name="FullscreenTitle" xml:space="preserve">
|
||||
<value>OnTopReplica fullscreen</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeDisableButton" xml:space="preserve">
|
||||
<value>Disable</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeEnableButton" xml:space="preserve">
|
||||
<value>Enable Group mode</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeStatusDisabled" xml:space="preserve">
|
||||
<value>Select multiple windows to enable.</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeStatusEnabled" xml:space="preserve">
|
||||
<value>Group switch mode is enabled.</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeTitle" xml:space="preserve">
|
||||
<value>Group switch mode:</value>
|
||||
</data>
|
||||
<data name="GroupSwitchModeWindows" xml:space="preserve">
|
||||
<value>Windows</value>
|
||||
<comment>Column Header of list, simply refers to available windows to be cloned</comment>
|
||||
</data>
|
||||
<data name="Homepage" xml:space="preserve">
|
||||
<value>Homepage: www.codeplex.com/ontopreplica.</value>
|
||||
</data>
|
||||
<data name="InfoClickForwarding" xml:space="preserve">
|
||||
<value>Do you want to enable "click forwarding"?</value>
|
||||
</data>
|
||||
<data name="InfoClickForwardingContent" xml:space="preserve">
|
||||
<value>If this mode is enabled, OnTopReplica will forward all left mouse clicks to the window that is being cloned (this will allow you to do basic mouse operations on the cloned window without having to activate it).
|
||||
|
||||
To exit this mode, push ESC.</value>
|
||||
</data>
|
||||
<data name="InfoClickForwardingTitle" xml:space="preserve">
|
||||
<value>Click forwarding</value>
|
||||
</data>
|
||||
<data name="InfoClickThrough" xml:space="preserve">
|
||||
<value>Enable Click-Through mode?</value>
|
||||
</data>
|
||||
<data name="InfoClickThroughDetails" xml:space="preserve">
|
||||
<value>Click-through only works if it has been enabled in the Resize submenu and if the window is semi-transparent.</value>
|
||||
</data>
|
||||
<data name="InfoClickThroughInformation" xml:space="preserve">
|
||||
To exit this mode, push ESC.</value>
|
||||
</data>
|
||||
<data name="InfoClickForwardingTitle" xml:space="preserve">
|
||||
<value>Click forwarding</value>
|
||||
</data>
|
||||
<data name="InfoClickThrough" xml:space="preserve">
|
||||
<value>Enable Click-Through mode?</value>
|
||||
</data>
|
||||
<data name="InfoClickThroughDetails" xml:space="preserve">
|
||||
<value>Click-through only works if it has been enabled in the Resize submenu and if the window is semi-transparent.</value>
|
||||
</data>
|
||||
<data name="InfoClickThroughInformation" xml:space="preserve">
|
||||
<value>In this mode the fullscreen window will behave as a partially transparent overlay, allowing you to click on the other windows behind it.
|
||||
|
||||
To return to normal mode anytime, activate OnTopReplica by clicking on the task bar (or the tray icon).</value>
|
||||
</data>
|
||||
<data name="InfoClickThroughNo" xml:space="preserve">
|
||||
To return to normal mode anytime, activate OnTopReplica by clicking on the task bar (or the tray icon).</value>
|
||||
</data>
|
||||
<data name="InfoClickThroughNo" xml:space="preserve">
|
||||
<value>No, thank you.
|
||||
You can enable click-through later</value>
|
||||
</data>
|
||||
<data name="InfoClickThroughOk" xml:space="preserve">
|
||||
<value>Use Click-Through</value>
|
||||
</data>
|
||||
<data name="InfoClickThroughTitle" xml:space="preserve">
|
||||
<value>Click-Through mode</value>
|
||||
</data>
|
||||
<data name="InfoUpdated" xml:space="preserve">
|
||||
<value>OnTopReplica has been updated.</value>
|
||||
</data>
|
||||
<data name="InfoUpdatedContent" xml:space="preserve">
|
||||
<value>In order to use the updated version of OnTopReplica you'll have to restart the application.</value>
|
||||
</data>
|
||||
<data name="InfoUpdatedTitle" xml:space="preserve">
|
||||
<value>Update successful</value>
|
||||
</data>
|
||||
<data name="InfoUpToDate" xml:space="preserve">
|
||||
<value>OnTopReplica is up to date.</value>
|
||||
</data>
|
||||
<data name="InfoUpToDateTitle" xml:space="preserve">
|
||||
<value>No update available</value>
|
||||
</data>
|
||||
<data name="Language" xml:space="preserve">
|
||||
<value>Language</value>
|
||||
</data>
|
||||
<data name="MenuAbout" xml:space="preserve">
|
||||
<value>About...</value>
|
||||
</data>
|
||||
<data name="MenuAboutTT" xml:space="preserve">
|
||||
<value>Hides the main window and displays the "about" box.</value>
|
||||
</data>
|
||||
<data name="MenuAdvanced" xml:space="preserve">
|
||||
<value>Advanced</value>
|
||||
</data>
|
||||
<data name="MenuChrome" xml:space="preserve">
|
||||
<value>Show window border</value>
|
||||
</data>
|
||||
<data name="MenuChromeTT" xml:space="preserve">
|
||||
<value>Toggles the display of the window border.</value>
|
||||
</data>
|
||||
<data name="MenuClickForwarding" xml:space="preserve">
|
||||
<value>Enable Click forwarding</value>
|
||||
</data>
|
||||
<data name="MenuClickForwardingTT" xml:space="preserve">
|
||||
<value>Enable "click forwarding" to the cloned window.</value>
|
||||
</data>
|
||||
<data name="MenuClickThrough" xml:space="preserve">
|
||||
<value>Enable Click-Through</value>
|
||||
</data>
|
||||
<data name="MenuClickThroughTT" xml:space="preserve">
|
||||
<value>OnTopReplica will behave like a transparent overlay that lets your clicks through to the windows below.</value>
|
||||
</data>
|
||||
<data name="MenuClose" xml:space="preserve">
|
||||
<value>Close</value>
|
||||
</data>
|
||||
<data name="MenuCloseTT" xml:space="preserve">
|
||||
<value>Closes OnTopReplica.</value>
|
||||
</data>
|
||||
<data name="MenuFitDouble" xml:space="preserve">
|
||||
<value>2:1 Double</value>
|
||||
</data>
|
||||
<data name="MenuFitFullscreen" xml:space="preserve">
|
||||
<value>Fullscreen</value>
|
||||
</data>
|
||||
<data name="MenuFitHalf" xml:space="preserve">
|
||||
<value>1:2 Half</value>
|
||||
</data>
|
||||
<data name="MenuFitOriginal" xml:space="preserve">
|
||||
<value>1:1 Fit to window</value>
|
||||
</data>
|
||||
<data name="MenuFitQuarter" xml:space="preserve">
|
||||
<value>1:4 Quarter</value>
|
||||
</data>
|
||||
<data name="MenuGlass" xml:space="preserve">
|
||||
<value>Glass</value>
|
||||
</data>
|
||||
<data name="MenuGlassTT" xml:space="preserve">
|
||||
<value>Toggles "glass mode" on and off.</value>
|
||||
</data>
|
||||
<data name="MenuGroupSwitch" xml:space="preserve">
|
||||
<value>Group Switch mode</value>
|
||||
</data>
|
||||
<data name="MenuGroupSwitchTT" xml:space="preserve">
|
||||
<value>OnTopReplica will automatically clone a window from an user defined group, switching to the one least recently activated to the foreground.</value>
|
||||
</data>
|
||||
<data name="MenuOp100" xml:space="preserve">
|
||||
<value>100% (opaque)</value>
|
||||
</data>
|
||||
<data name="MenuOp100TT" xml:space="preserve">
|
||||
<value>Sets OnTopReplica to be completely opaque.</value>
|
||||
</data>
|
||||
<data name="MenuOp25" xml:space="preserve">
|
||||
<value>25%</value>
|
||||
</data>
|
||||
<data name="MenuOp25TT" xml:space="preserve">
|
||||
<value>Sets OnTopReplica to 25% opacity.</value>
|
||||
</data>
|
||||
<data name="MenuOp50" xml:space="preserve">
|
||||
<value>50%</value>
|
||||
</data>
|
||||
<data name="MenuOp50TT" xml:space="preserve">
|
||||
<value>Sets OnTopReplica to 50% opacity.</value>
|
||||
</data>
|
||||
<data name="MenuOp75" xml:space="preserve">
|
||||
<value>75%</value>
|
||||
</data>
|
||||
<data name="MenuOp75TT" xml:space="preserve">
|
||||
<value>Sets OnTopReplica to 75% opacity.</value>
|
||||
</data>
|
||||
<data name="MenuOpacity" xml:space="preserve">
|
||||
<value>Opacity</value>
|
||||
</data>
|
||||
<data name="MenuOpen" xml:space="preserve">
|
||||
<value>Open</value>
|
||||
</data>
|
||||
<data name="MenuOpenTT" xml:space="preserve">
|
||||
<value>Displays OnTopReplica.</value>
|
||||
</data>
|
||||
<data name="MenuPosBottomLeft" xml:space="preserve">
|
||||
<value>Bottom Left</value>
|
||||
</data>
|
||||
<data name="MenuPosBottomRight" xml:space="preserve">
|
||||
<value>Bottom Right</value>
|
||||
</data>
|
||||
<data name="MenuPosCenter" xml:space="preserve">
|
||||
<value>Center</value>
|
||||
</data>
|
||||
<data name="MenuPosDisabled" xml:space="preserve">
|
||||
<value>Disabled</value>
|
||||
</data>
|
||||
<data name="MenuPosition" xml:space="preserve">
|
||||
<value>Position lock</value>
|
||||
</data>
|
||||
<data name="MenuPositionTT" xml:space="preserve">
|
||||
<value>Automatically position OnTopReplica on the current screen.</value>
|
||||
</data>
|
||||
<data name="MenuPosTopLeft" xml:space="preserve">
|
||||
<value>Top Left</value>
|
||||
</data>
|
||||
<data name="MenuPosTopRight" xml:space="preserve">
|
||||
<value>Top Right</value>
|
||||
</data>
|
||||
<data name="MenuQuitFullscreen" xml:space="preserve">
|
||||
<value>Quit fullscreen mode</value>
|
||||
</data>
|
||||
<data name="MenuRecall" xml:space="preserve">
|
||||
<value>Recall last position and size</value>
|
||||
</data>
|
||||
<data name="MenuRecallTT" xml:space="preserve">
|
||||
<value>Toggles whether OnTopReplica should store its last position and size and use them when it is restarted.</value>
|
||||
</data>
|
||||
<data name="MenuReduce" xml:space="preserve">
|
||||
<value>Minimize</value>
|
||||
</data>
|
||||
<data name="MenuReduceTT" xml:space="preserve">
|
||||
<value>Minimizes OnTopReplica to the task bar (or the tray).</value>
|
||||
</data>
|
||||
<data name="MenuRegion" xml:space="preserve">
|
||||
<value>Select region...</value>
|
||||
</data>
|
||||
<data name="MenuRegionTT" xml:space="preserve">
|
||||
<value>Switches to "region mode", that allows you to select a limited region of the source's window as thumbnail.</value>
|
||||
</data>
|
||||
<data name="MenuReset" xml:space="preserve">
|
||||
<value>Reset window</value>
|
||||
</data>
|
||||
<data name="MenuResetTT" xml:space="preserve">
|
||||
<value>Resets OnTopReplica settings and its main window.</value>
|
||||
</data>
|
||||
<data name="MenuResize" xml:space="preserve">
|
||||
<value>Resize</value>
|
||||
</data>
|
||||
<data name="MenuSwitch" xml:space="preserve">
|
||||
<value>Switch to window</value>
|
||||
</data>
|
||||
<data name="MenuSwitchTT" xml:space="preserve">
|
||||
<value>Switches to the source window and hides OnTopReplica.</value>
|
||||
</data>
|
||||
<data name="MenuWindows" xml:space="preserve">
|
||||
<value>Select window</value>
|
||||
</data>
|
||||
<data name="MenuWindowsNone" xml:space="preserve">
|
||||
<value>- none -</value>
|
||||
</data>
|
||||
<data name="MenuWindowsTT" xml:space="preserve">
|
||||
<value>Displays a list of window you can select as thumbnail source.</value>
|
||||
</data>
|
||||
<data name="MenuWindowsWholeRegion" xml:space="preserve">
|
||||
<value>- whole -</value>
|
||||
</data>
|
||||
<data name="RegionsCurrentRegion" xml:space="preserve">
|
||||
<value>Current region:</value>
|
||||
</data>
|
||||
<data name="RegionsDeleteButton" xml:space="preserve">
|
||||
<value>Delete</value>
|
||||
</data>
|
||||
<data name="RegionsDoneButton" xml:space="preserve">
|
||||
<value>Done</value>
|
||||
</data>
|
||||
<data name="RegionsHeight" xml:space="preserve">
|
||||
<value>Height</value>
|
||||
</data>
|
||||
<data name="RegionsResetButton" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="RegionsSaveButton" xml:space="preserve">
|
||||
<value>Save</value>
|
||||
</data>
|
||||
<data name="RegionsStoredRegions" xml:space="preserve">
|
||||
<value>Stored regions</value>
|
||||
</data>
|
||||
<data name="RegionsTitle" xml:space="preserve">
|
||||
<value>Regions:</value>
|
||||
</data>
|
||||
<data name="RegionsWidth" xml:space="preserve">
|
||||
<value>Width</value>
|
||||
</data>
|
||||
<data name="RightClick" xml:space="preserve">
|
||||
<value>Right-click here to start...</value>
|
||||
</data>
|
||||
<data name="Slogan" xml:space="preserve">
|
||||
<value>A lightweight, real-time, always on top thumbnail of a window of your choice.</value>
|
||||
</data>
|
||||
<data name="UpdateDisclaimer" xml:space="preserve">
|
||||
<value>OnTopReplica automatically checks for updates. No information is logged at any point.</value>
|
||||
</data>
|
||||
<data name="UpdateNow" xml:space="preserve">
|
||||
<value>Update now!</value>
|
||||
</data>
|
||||
You can enable click-through later</value>
|
||||
</data>
|
||||
<data name="InfoClickThroughOk" xml:space="preserve">
|
||||
<value>Use Click-Through</value>
|
||||
</data>
|
||||
<data name="InfoClickThroughTitle" xml:space="preserve">
|
||||
<value>Click-Through mode</value>
|
||||
</data>
|
||||
<data name="InfoUpdated" xml:space="preserve">
|
||||
<value>OnTopReplica has been updated.</value>
|
||||
</data>
|
||||
<data name="InfoUpdatedContent" xml:space="preserve">
|
||||
<value>In order to use the updated version of OnTopReplica you'll have to restart the application.</value>
|
||||
</data>
|
||||
<data name="InfoUpdatedTitle" xml:space="preserve">
|
||||
<value>Update successful</value>
|
||||
</data>
|
||||
<data name="InfoUpToDate" xml:space="preserve">
|
||||
<value>OnTopReplica is up to date.</value>
|
||||
</data>
|
||||
<data name="InfoUpToDateTitle" xml:space="preserve">
|
||||
<value>No update available</value>
|
||||
</data>
|
||||
<data name="Language" xml:space="preserve">
|
||||
<value>Language</value>
|
||||
</data>
|
||||
<data name="MenuAbout" xml:space="preserve">
|
||||
<value>About...</value>
|
||||
</data>
|
||||
<data name="MenuAboutTT" xml:space="preserve">
|
||||
<value>Hides the main window and displays the "about" box.</value>
|
||||
</data>
|
||||
<data name="MenuAdvanced" xml:space="preserve">
|
||||
<value>Advanced</value>
|
||||
</data>
|
||||
<data name="MenuChrome" xml:space="preserve">
|
||||
<value>Show window border</value>
|
||||
</data>
|
||||
<data name="MenuChromeTT" xml:space="preserve">
|
||||
<value>Toggles the display of the window border.</value>
|
||||
</data>
|
||||
<data name="MenuClickForwarding" xml:space="preserve">
|
||||
<value>Enable Click forwarding</value>
|
||||
</data>
|
||||
<data name="MenuClickForwardingTT" xml:space="preserve">
|
||||
<value>Enable "click forwarding" to the cloned window.</value>
|
||||
</data>
|
||||
<data name="MenuClickThrough" xml:space="preserve">
|
||||
<value>Enable Click-Through</value>
|
||||
</data>
|
||||
<data name="MenuClickThroughTT" xml:space="preserve">
|
||||
<value>OnTopReplica will behave like a transparent overlay that lets your clicks through to the windows below.</value>
|
||||
</data>
|
||||
<data name="MenuClose" xml:space="preserve">
|
||||
<value>Close</value>
|
||||
</data>
|
||||
<data name="MenuCloseTT" xml:space="preserve">
|
||||
<value>Closes OnTopReplica.</value>
|
||||
</data>
|
||||
<data name="MenuFitDouble" xml:space="preserve">
|
||||
<value>2:1 Double</value>
|
||||
</data>
|
||||
<data name="MenuFitFullscreen" xml:space="preserve">
|
||||
<value>Fullscreen</value>
|
||||
</data>
|
||||
<data name="MenuFitHalf" xml:space="preserve">
|
||||
<value>1:2 Half</value>
|
||||
</data>
|
||||
<data name="MenuFitOriginal" xml:space="preserve">
|
||||
<value>1:1 Fit to window</value>
|
||||
</data>
|
||||
<data name="MenuFitQuarter" xml:space="preserve">
|
||||
<value>1:4 Quarter</value>
|
||||
</data>
|
||||
<data name="MenuGlass" xml:space="preserve">
|
||||
<value>Glass</value>
|
||||
</data>
|
||||
<data name="MenuGlassTT" xml:space="preserve">
|
||||
<value>Toggles "glass mode" on and off.</value>
|
||||
</data>
|
||||
<data name="MenuGroupSwitch" xml:space="preserve">
|
||||
<value>Group Switch mode</value>
|
||||
</data>
|
||||
<data name="MenuGroupSwitchTT" xml:space="preserve">
|
||||
<value>OnTopReplica will automatically clone a window from an user defined group, switching to the one least recently activated to the foreground.</value>
|
||||
</data>
|
||||
<data name="MenuOp100" xml:space="preserve">
|
||||
<value>100% (opaque)</value>
|
||||
</data>
|
||||
<data name="MenuOp100TT" xml:space="preserve">
|
||||
<value>Sets OnTopReplica to be completely opaque.</value>
|
||||
</data>
|
||||
<data name="MenuOp25" xml:space="preserve">
|
||||
<value>25%</value>
|
||||
</data>
|
||||
<data name="MenuOp25TT" xml:space="preserve">
|
||||
<value>Sets OnTopReplica to 25% opacity.</value>
|
||||
</data>
|
||||
<data name="MenuOp50" xml:space="preserve">
|
||||
<value>50%</value>
|
||||
</data>
|
||||
<data name="MenuOp50TT" xml:space="preserve">
|
||||
<value>Sets OnTopReplica to 50% opacity.</value>
|
||||
</data>
|
||||
<data name="MenuOp75" xml:space="preserve">
|
||||
<value>75%</value>
|
||||
</data>
|
||||
<data name="MenuOp75TT" xml:space="preserve">
|
||||
<value>Sets OnTopReplica to 75% opacity.</value>
|
||||
</data>
|
||||
<data name="MenuOpacity" xml:space="preserve">
|
||||
<value>Opacity</value>
|
||||
</data>
|
||||
<data name="MenuOpen" xml:space="preserve">
|
||||
<value>Open</value>
|
||||
</data>
|
||||
<data name="MenuOpenTT" xml:space="preserve">
|
||||
<value>Displays OnTopReplica.</value>
|
||||
</data>
|
||||
<data name="MenuPosBottomLeft" xml:space="preserve">
|
||||
<value>Bottom Left</value>
|
||||
</data>
|
||||
<data name="MenuPosBottomRight" xml:space="preserve">
|
||||
<value>Bottom Right</value>
|
||||
</data>
|
||||
<data name="MenuPosCenter" xml:space="preserve">
|
||||
<value>Center</value>
|
||||
</data>
|
||||
<data name="MenuPosDisabled" xml:space="preserve">
|
||||
<value>Disabled</value>
|
||||
</data>
|
||||
<data name="MenuPosition" xml:space="preserve">
|
||||
<value>Position lock</value>
|
||||
</data>
|
||||
<data name="MenuPositionTT" xml:space="preserve">
|
||||
<value>Automatically position OnTopReplica on the current screen.</value>
|
||||
</data>
|
||||
<data name="MenuPosTopLeft" xml:space="preserve">
|
||||
<value>Top Left</value>
|
||||
</data>
|
||||
<data name="MenuPosTopRight" xml:space="preserve">
|
||||
<value>Top Right</value>
|
||||
</data>
|
||||
<data name="MenuQuitFullscreen" xml:space="preserve">
|
||||
<value>Quit fullscreen mode</value>
|
||||
</data>
|
||||
<data name="MenuRecall" xml:space="preserve">
|
||||
<value>Recall last position and size</value>
|
||||
</data>
|
||||
<data name="MenuRecallTT" xml:space="preserve">
|
||||
<value>Toggles whether OnTopReplica should store its last position and size and use them when it is restarted.</value>
|
||||
</data>
|
||||
<data name="MenuReduce" xml:space="preserve">
|
||||
<value>Minimize</value>
|
||||
</data>
|
||||
<data name="MenuReduceTT" xml:space="preserve">
|
||||
<value>Minimizes OnTopReplica to the task bar (or the tray).</value>
|
||||
</data>
|
||||
<data name="MenuRegion" xml:space="preserve">
|
||||
<value>Select region...</value>
|
||||
</data>
|
||||
<data name="MenuRegionTT" xml:space="preserve">
|
||||
<value>Switches to "region mode", that allows you to select a limited region of the source's window as thumbnail.</value>
|
||||
</data>
|
||||
<data name="MenuReset" xml:space="preserve">
|
||||
<value>Reset window</value>
|
||||
</data>
|
||||
<data name="MenuResetTT" xml:space="preserve">
|
||||
<value>Resets OnTopReplica settings and its main window.</value>
|
||||
</data>
|
||||
<data name="MenuResize" xml:space="preserve">
|
||||
<value>Resize</value>
|
||||
</data>
|
||||
<data name="MenuSwitch" xml:space="preserve">
|
||||
<value>Switch to window</value>
|
||||
</data>
|
||||
<data name="MenuSwitchTT" xml:space="preserve">
|
||||
<value>Switches to the source window and hides OnTopReplica.</value>
|
||||
</data>
|
||||
<data name="MenuWindows" xml:space="preserve">
|
||||
<value>Select window</value>
|
||||
</data>
|
||||
<data name="MenuWindowsNone" xml:space="preserve">
|
||||
<value>- none -</value>
|
||||
</data>
|
||||
<data name="MenuWindowsTT" xml:space="preserve">
|
||||
<value>Displays a list of window you can select as thumbnail source.</value>
|
||||
</data>
|
||||
<data name="MenuWindowsWholeRegion" xml:space="preserve">
|
||||
<value>- whole -</value>
|
||||
</data>
|
||||
<data name="RegionsCurrentRegion" xml:space="preserve">
|
||||
<value>Current region:</value>
|
||||
</data>
|
||||
<data name="RegionsDeleteButton" xml:space="preserve">
|
||||
<value>Delete</value>
|
||||
</data>
|
||||
<data name="RegionsDoneButton" xml:space="preserve">
|
||||
<value>Done</value>
|
||||
</data>
|
||||
<data name="RegionsHeight" xml:space="preserve">
|
||||
<value>Height</value>
|
||||
</data>
|
||||
<data name="RegionsResetButton" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="RegionsSaveButton" xml:space="preserve">
|
||||
<value>Save</value>
|
||||
</data>
|
||||
<data name="RegionsStoredRegions" xml:space="preserve">
|
||||
<value>Stored regions</value>
|
||||
</data>
|
||||
<data name="RegionsTitle" xml:space="preserve">
|
||||
<value>Regions:</value>
|
||||
</data>
|
||||
<data name="RegionsWidth" xml:space="preserve">
|
||||
<value>Width</value>
|
||||
</data>
|
||||
<data name="RightClick" xml:space="preserve">
|
||||
<value>Right-click here to start...</value>
|
||||
</data>
|
||||
<data name="Slogan" xml:space="preserve">
|
||||
<value>A lightweight, real-time, always on top thumbnail of a window of your choice.</value>
|
||||
</data>
|
||||
<data name="UpdateDisclaimer" xml:space="preserve">
|
||||
<value>OnTopReplica automatically checks for updates. No information is logged at any point.</value>
|
||||
</data>
|
||||
<data name="UpdateNow" xml:space="preserve">
|
||||
<value>Update now!</value>
|
||||
</data>
|
||||
<data name="MenuSettings" xml:space="preserve">
|
||||
<value>Settings...</value>
|
||||
</data>
|
||||
<data name="MenuSettingsTT" xml:space="preserve">
|
||||
<value>Displays the settings panel.</value>
|
||||
</data>
|
||||
<data name="MenuRestoreLast" xml:space="preserve">
|
||||
<value>Restore last cloned window</value>
|
||||
</data>
|
||||
<data name="MenuRestoreLastTT" xml:space="preserve">
|
||||
<value>When enabled, OnTopReplica will attempt to restore the last cloned window on start up.</value>
|
||||
</data>
|
||||
</root>
|
Loading…
Reference in a new issue