Refactored about sidepanel into separate control.

Added information to about sidepanel with translated strings.
This commit is contained in:
Lorenz Cuno Klopfenstein 2011-03-30 00:36:58 +02:00
parent 9c3ddfe95e
commit ea9f7a4643
13 changed files with 1131 additions and 1047 deletions

View file

@ -1,2 +1,21 @@
Microsoft Reciprocal License (Ms-RL)
http://opensource.org/licenses/ms-rl.html
This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
1. Definitions
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.
A "contribution" is the original software, or any additions or changes to the software.
A "contributor" is any person that distributes its contribution under this license.
"Licensed patents" are a contributor's patent claims that read directly on its contribution.
2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
3. Conditions and Limitations
(A) Reciprocal Grants- For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
(B) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
(C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
(D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
(E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
(F) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.

View file

@ -150,6 +150,12 @@
<Compile Include="SidePanels\AboutPanel.Designer.cs">
<DependentUpon>AboutPanel.cs</DependentUpon>
</Compile>
<Compile Include="SidePanels\AboutPanelContents.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="SidePanels\AboutPanelContents.Designer.cs">
<DependentUpon>AboutPanelContents.cs</DependentUpon>
</Compile>
<Compile Include="SidePanels\OptionsPanel.cs">
<SubType>UserControl</SubType>
</Compile>
@ -178,6 +184,9 @@
<EmbeddedResource Include="SidePanels\AboutPanel.resx">
<DependentUpon>AboutPanel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SidePanels\AboutPanelContents.resx">
<DependentUpon>AboutPanelContents.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Strings.ru.resx" />
<None Include="Native\ITaskBarList.cs" />
<Compile Include="Native\InputMethods.cs" />

View file

@ -23,206 +23,52 @@
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.panelMain = new System.Windows.Forms.Panel();
this.labelTranslators = new System.Windows.Forms.Label();
this.linkCredits = new System.Windows.Forms.LinkLabel();
this.progressUpdate = new VistaControls.ProgressBar();
this.buttonUpdate = new System.Windows.Forms.Button();
this.lblUpdateDisclaimer = new System.Windows.Forms.Label();
this.labeledDivider2 = new VistaControls.LabeledDivider();
this.labeledDivider1 = new VistaControls.LabeledDivider();
this.linkHomepage = new System.Windows.Forms.LinkLabel();
this.linkAuthor = new System.Windows.Forms.LinkLabel();
this.lblSlogan = new System.Windows.Forms.Label();
this.thlabelVersion = new VistaControls.ThemeText.ThemedLabel();
this.panelMain.SuspendLayout();
this.labelVersion = new VistaControls.ThemeText.ThemedLabel();
this.panelContents = new OnTopReplica.SidePanels.AboutPanelContents();
this.SuspendLayout();
//
// panelMain
// labelVersion
//
this.panelMain.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.labelVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.labelVersion.Location = new System.Drawing.Point(0, 270);
this.labelVersion.Name = "labelVersion";
this.labelVersion.Padding = new System.Windows.Forms.Padding(0, 0, 0, 3);
this.labelVersion.Size = new System.Drawing.Size(255, 20);
this.labelVersion.TabIndex = 0;
this.labelVersion.Text = "Version";
this.labelVersion.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.labelVersion.TextAlignVertical = System.Windows.Forms.VisualStyles.VerticalAlignment.Bottom;
//
// panelContents
//
this.panelContents.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.labelTranslators);
this.panelMain.Controls.Add(this.linkCredits);
this.panelMain.Controls.Add(this.progressUpdate);
this.panelMain.Controls.Add(this.buttonUpdate);
this.panelMain.Controls.Add(this.lblUpdateDisclaimer);
this.panelMain.Controls.Add(this.labeledDivider2);
this.panelMain.Controls.Add(this.labeledDivider1);
this.panelMain.Controls.Add(this.linkHomepage);
this.panelMain.Controls.Add(this.linkAuthor);
this.panelMain.Controls.Add(this.lblSlogan);
this.panelMain.Location = new System.Drawing.Point(6, 6);
this.panelMain.Margin = new System.Windows.Forms.Padding(6);
this.panelMain.Name = "panelMain";
this.panelMain.Size = new System.Drawing.Size(243, 258);
this.panelMain.TabIndex = 0;
//
// labelTranslators
//
this.labelTranslators.Location = new System.Drawing.Point(0, 289);
this.labelTranslators.Name = "labelTranslators";
this.labelTranslators.Size = new System.Drawing.Size(226, 61);
this.labelTranslators.TabIndex = 21;
this.labelTranslators.Text = "Translators: asdasd";
//
// linkCredits
//
this.linkCredits.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkCredits.Location = new System.Drawing.Point(0, 223);
this.linkCredits.Name = "linkCredits";
this.linkCredits.Size = new System.Drawing.Size(226, 57);
this.linkCredits.TabIndex = 20;
this.linkCredits.TabStop = true;
this.linkCredits.Text = "%CREDITS%";
this.linkCredits.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkCredits_click);
//
// progressUpdate
//
this.progressUpdate.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.progressUpdate.Location = new System.Drawing.Point(0, 155);
this.progressUpdate.Name = "progressUpdate";
this.progressUpdate.Size = new System.Drawing.Size(118, 23);
this.progressUpdate.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
this.progressUpdate.TabIndex = 19;
this.progressUpdate.Visible = false;
//
// buttonUpdate
//
this.buttonUpdate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonUpdate.Location = new System.Drawing.Point(124, 155);
this.buttonUpdate.Name = "buttonUpdate";
this.buttonUpdate.Size = new System.Drawing.Size(102, 23);
this.buttonUpdate.TabIndex = 18;
this.buttonUpdate.Text = global::OnTopReplica.Strings.AboutUpdatesCheckNow;
this.buttonUpdate.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.buttonUpdate.UseVisualStyleBackColor = true;
this.buttonUpdate.Click += new System.EventHandler(ButtonUpdate_click);
//
// lblUpdateDisclaimer
//
this.lblUpdateDisclaimer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblUpdateDisclaimer.Location = new System.Drawing.Point(0, 108);
this.lblUpdateDisclaimer.Name = "lblUpdateDisclaimer";
this.lblUpdateDisclaimer.Size = new System.Drawing.Size(225, 44);
this.lblUpdateDisclaimer.TabIndex = 16;
this.lblUpdateDisclaimer.Text = Strings.AboutUpdatesDisclaimer;
//
// labeledDivider2
//
this.labeledDivider2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.labeledDivider2.DividerColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(191)))), ((int)(((byte)(222)))));
this.labeledDivider2.Font = new System.Drawing.Font("Segoe UI", 9F);
this.labeledDivider2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(51)))), ((int)(((byte)(170)))));
this.labeledDivider2.Location = new System.Drawing.Point(0, 197);
this.labeledDivider2.Name = "labeledDivider2";
this.labeledDivider2.Size = new System.Drawing.Size(223, 23);
this.labeledDivider2.TabIndex = 15;
this.labeledDivider2.Text = global::OnTopReplica.Strings.AboutDividerCredits;
//
// labeledDivider1
//
this.labeledDivider1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.labeledDivider1.DividerColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(191)))), ((int)(((byte)(222)))));
this.labeledDivider1.Font = new System.Drawing.Font("Segoe UI", 9F);
this.labeledDivider1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(51)))), ((int)(((byte)(170)))));
this.labeledDivider1.Location = new System.Drawing.Point(0, 82);
this.labeledDivider1.Name = "labeledDivider1";
this.labeledDivider1.Size = new System.Drawing.Size(226, 23);
this.labeledDivider1.TabIndex = 14;
this.labeledDivider1.Text = global::OnTopReplica.Strings.AboutDividerUpdates;
//
// linkHomepage
//
this.linkHomepage.AutoSize = true;
this.linkHomepage.BackColor = System.Drawing.Color.Transparent;
this.linkHomepage.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkHomepage.Location = new System.Drawing.Point(0, 54);
this.linkHomepage.Name = "linkHomepage";
this.linkHomepage.Size = new System.Drawing.Size(167, 17);
this.linkHomepage.TabIndex = 12;
this.linkHomepage.TabStop = true;
this.linkHomepage.Text = "http://ontopreplica.codeplex.com";
this.linkHomepage.UseCompatibleTextRendering = true;
this.linkHomepage.VisitedLinkColor = System.Drawing.Color.Blue;
this.linkHomepage.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkWebsite_click);
//
// linkAuthor
//
this.linkAuthor.AutoSize = true;
this.linkAuthor.BackColor = System.Drawing.Color.Transparent;
this.linkAuthor.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkAuthor.LinkColor = System.Drawing.Color.Blue;
this.linkAuthor.Location = new System.Drawing.Point(0, 33);
this.linkAuthor.Name = "linkAuthor";
this.linkAuthor.Size = new System.Drawing.Size(72, 17);
this.linkAuthor.TabIndex = 11;
this.linkAuthor.TabStop = true;
this.linkAuthor.Text = "%AUTHOR%";
this.linkAuthor.UseCompatibleTextRendering = true;
this.linkAuthor.VisitedLinkColor = System.Drawing.Color.Blue;
this.linkAuthor.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkAuthor_click);
//
// lblSlogan
//
this.lblSlogan.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblSlogan.BackColor = System.Drawing.Color.Transparent;
this.lblSlogan.Location = new System.Drawing.Point(0, 0);
this.lblSlogan.Name = "lblSlogan";
this.lblSlogan.Size = new System.Drawing.Size(226, 33);
this.lblSlogan.TabIndex = 13;
this.lblSlogan.Text = Strings.AboutSlogan;
//
// thlabelVersion
//
this.thlabelVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.thlabelVersion.GlowSize = 7;
this.thlabelVersion.Location = new System.Drawing.Point(0, 272);
this.thlabelVersion.Margin = new System.Windows.Forms.Padding(0);
this.thlabelVersion.Name = "thlabelVersion";
this.thlabelVersion.Padding = new System.Windows.Forms.Padding(0, 0, 0, 1);
this.thlabelVersion.Size = new System.Drawing.Size(255, 18);
this.thlabelVersion.TabIndex = 1;
this.thlabelVersion.Text = "%VERSION%";
this.thlabelVersion.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.thlabelVersion.TextAlignVertical = System.Windows.Forms.VisualStyles.VerticalAlignment.Bottom;
this.panelContents.AutoScroll = true;
this.panelContents.Location = new System.Drawing.Point(6, 6);
this.panelContents.Margin = new System.Windows.Forms.Padding(6);
this.panelContents.Name = "panelContents";
this.panelContents.Size = new System.Drawing.Size(243, 255);
this.panelContents.TabIndex = 1;
//
// AboutPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.thlabelVersion);
this.Controls.Add(this.panelMain);
this.Controls.Add(this.panelContents);
this.Controls.Add(this.labelVersion);
this.MinimumSize = new System.Drawing.Size(255, 290);
this.Name = "AboutPanel";
this.Size = new System.Drawing.Size(255, 290);
this.panelMain.ResumeLayout(false);
this.panelMain.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panelMain;
private VistaControls.ThemeText.ThemedLabel thlabelVersion;
private System.Windows.Forms.LinkLabel linkHomepage;
private System.Windows.Forms.LinkLabel linkAuthor;
private System.Windows.Forms.Label lblSlogan;
private VistaControls.LabeledDivider labeledDivider1;
private System.Windows.Forms.Label lblUpdateDisclaimer;
private VistaControls.LabeledDivider labeledDivider2;
private VistaControls.ProgressBar progressUpdate;
private System.Windows.Forms.Button buttonUpdate;
private System.Windows.Forms.Label labelTranslators;
private System.Windows.Forms.LinkLabel linkCredits;
private VistaControls.ThemeText.ThemedLabel labelVersion;
private AboutPanelContents panelContents;
}
}

View file

@ -6,38 +6,14 @@ using System.Data;
using System.Text;
using System.Windows.Forms;
using VistaControls.Dwm;
using System.Diagnostics;
using OnTopReplica.Update;
using VistaControls.TaskDialog;
namespace OnTopReplica.SidePanels {
partial class AboutPanel : SidePanel {
UpdateManager _updater;
public AboutPanel() {
InitializeComponent();
//Update dynamic strings
thlabelVersion.Text = string.Format(Strings.AboutVersion, Application.ProductVersion);
InternationalizeLinkLabel(linkAuthor, Strings.AboutAuthor, Strings.AboutAuthorContent);
InternationalizeLinkLabel(linkCredits, Strings.AboutCreditsSources, Strings.AboutCreditsSourcesContent);
//Updating
_updater = new UpdateManager();
_updater.UpdateCheckCompleted += new EventHandler<UpdateCheckCompletedEventArgs>(UpdateCheckCompleted);
}
private void InternationalizeLinkLabel(LinkLabel label, string text, string linkText) {
int linkIndex = text.IndexOf('%');
if (linkIndex == -1) {
//Shouldn't happen, but try to fail with meaningful text
label.Text = text;
return;
}
label.Text = text.Substring(0, linkIndex) + linkText + text.Substring(linkIndex + 1);
label.LinkArea = new LinkArea(linkIndex, linkText.Length);
labelVersion.Text = string.Format(Strings.AboutVersion, Application.ProductVersion);
}
public override string Title {
@ -48,50 +24,9 @@ namespace OnTopReplica.SidePanels {
public override Margins? GlassMargins {
get {
return new Margins(0, 0, 0, thlabelVersion.Height);
return new Margins(0, 0, 0, labelVersion.Height);
}
}
#region Link clicks
private void LinkAuthor_click(object sender, LinkLabelLinkClickedEventArgs e) {
Process.Start("http://lorenz.klopfenstein.net");
}
private void LinkWebsite_click(object sender, LinkLabelLinkClickedEventArgs e) {
Process.Start("http://ontopreplica.codeplex.com");
}
private void LinkCredits_click(object sender, LinkLabelLinkClickedEventArgs e) {
Process.Start("CREDITS.txt");
}
#endregion
void ButtonUpdate_click(object sender, System.EventArgs e) {
progressUpdate.Visible = true;
_updater.CheckForUpdate();
}
void UpdateCheckCompleted(object sender, UpdateCheckCompletedEventArgs e) {
this.Invoke(new Action(() => {
var topForm = this.TopLevelControl as Form;
if (e.Success) {
_updater.HandleUpdateCheck(topForm, e.Information, true);
}
else {
var dlg = new TaskDialog(Strings.ErrorUpdate, Strings.ErrorUpdate, Strings.ErrorUpdateContentGeneric) {
CommonIcon = TaskDialogIcon.Stop,
CommonButtons = TaskDialogButton.OK
};
dlg.Show(topForm);
}
progressUpdate.Visible = false;
}));
}
}
}

View file

@ -0,0 +1,263 @@
namespace OnTopReplica.SidePanels {
partial class AboutPanelContents {
/// <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.labelTranslators = new System.Windows.Forms.Label();
this.linkCredits = new System.Windows.Forms.LinkLabel();
this.progressUpdate = new VistaControls.ProgressBar();
this.buttonUpdate = new System.Windows.Forms.Button();
this.lblUpdateDisclaimer = new System.Windows.Forms.Label();
this.labeledDivider2 = new VistaControls.LabeledDivider();
this.labeledDivider1 = new VistaControls.LabeledDivider();
this.linkHomepage = new System.Windows.Forms.LinkLabel();
this.linkAuthor = new System.Windows.Forms.LinkLabel();
this.lblSlogan = new System.Windows.Forms.Label();
this.labeledDivider3 = new VistaControls.LabeledDivider();
this.linkLicense = new System.Windows.Forms.LinkLabel();
this.labeledDivider4 = new VistaControls.LabeledDivider();
this.linkContribute = new System.Windows.Forms.LinkLabel();
this.SuspendLayout();
//
// labelTranslators
//
this.labelTranslators.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.labelTranslators.Location = new System.Drawing.Point(0, 289);
this.labelTranslators.Name = "labelTranslators";
this.labelTranslators.Size = new System.Drawing.Size(240, 101);
this.labelTranslators.TabIndex = 31;
this.labelTranslators.Text = "Translators:";
//
// linkCredits
//
this.linkCredits.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.linkCredits.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkCredits.Location = new System.Drawing.Point(0, 223);
this.linkCredits.Name = "linkCredits";
this.linkCredits.Size = new System.Drawing.Size(240, 57);
this.linkCredits.TabIndex = 30;
this.linkCredits.TabStop = true;
this.linkCredits.Text = "%CREDITS%";
this.linkCredits.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkCredits_click);
//
// progressUpdate
//
this.progressUpdate.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.progressUpdate.Location = new System.Drawing.Point(0, 155);
this.progressUpdate.Name = "progressUpdate";
this.progressUpdate.Size = new System.Drawing.Size(132, 23);
this.progressUpdate.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
this.progressUpdate.TabIndex = 29;
this.progressUpdate.Visible = false;
//
// buttonUpdate
//
this.buttonUpdate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonUpdate.Location = new System.Drawing.Point(138, 155);
this.buttonUpdate.Name = "buttonUpdate";
this.buttonUpdate.Size = new System.Drawing.Size(102, 23);
this.buttonUpdate.TabIndex = 28;
this.buttonUpdate.Text = global::OnTopReplica.Strings.AboutUpdatesCheckNow;
this.buttonUpdate.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.buttonUpdate.UseVisualStyleBackColor = true;
this.buttonUpdate.Click += new System.EventHandler(this.UpdateButton_click);
//
// lblUpdateDisclaimer
//
this.lblUpdateDisclaimer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblUpdateDisclaimer.Location = new System.Drawing.Point(0, 108);
this.lblUpdateDisclaimer.Name = "lblUpdateDisclaimer";
this.lblUpdateDisclaimer.Size = new System.Drawing.Size(240, 44);
this.lblUpdateDisclaimer.TabIndex = 27;
this.lblUpdateDisclaimer.Text = "OnTopReplica automatically checks for updates at every start up.";
//
// labeledDivider2
//
this.labeledDivider2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.labeledDivider2.DividerColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(191)))), ((int)(((byte)(222)))));
this.labeledDivider2.Font = new System.Drawing.Font("Segoe UI", 9F);
this.labeledDivider2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(51)))), ((int)(((byte)(170)))));
this.labeledDivider2.Location = new System.Drawing.Point(0, 197);
this.labeledDivider2.Name = "labeledDivider2";
this.labeledDivider2.Size = new System.Drawing.Size(240, 23);
this.labeledDivider2.TabIndex = 26;
this.labeledDivider2.Text = global::OnTopReplica.Strings.AboutDividerCredits;
//
// labeledDivider1
//
this.labeledDivider1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.labeledDivider1.DividerColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(191)))), ((int)(((byte)(222)))));
this.labeledDivider1.Font = new System.Drawing.Font("Segoe UI", 9F);
this.labeledDivider1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(51)))), ((int)(((byte)(170)))));
this.labeledDivider1.Location = new System.Drawing.Point(0, 82);
this.labeledDivider1.Name = "labeledDivider1";
this.labeledDivider1.Size = new System.Drawing.Size(240, 23);
this.labeledDivider1.TabIndex = 25;
this.labeledDivider1.Text = global::OnTopReplica.Strings.AboutDividerUpdates;
//
// linkHomepage
//
this.linkHomepage.AutoSize = true;
this.linkHomepage.BackColor = System.Drawing.Color.Transparent;
this.linkHomepage.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkHomepage.Location = new System.Drawing.Point(0, 54);
this.linkHomepage.Name = "linkHomepage";
this.linkHomepage.Size = new System.Drawing.Size(167, 17);
this.linkHomepage.TabIndex = 23;
this.linkHomepage.TabStop = true;
this.linkHomepage.Text = "http://ontopreplica.codeplex.com";
this.linkHomepage.UseCompatibleTextRendering = true;
this.linkHomepage.VisitedLinkColor = System.Drawing.Color.Blue;
this.linkHomepage.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkHomepage_clicked);
//
// linkAuthor
//
this.linkAuthor.AutoSize = true;
this.linkAuthor.BackColor = System.Drawing.Color.Transparent;
this.linkAuthor.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkAuthor.LinkColor = System.Drawing.Color.Blue;
this.linkAuthor.Location = new System.Drawing.Point(0, 33);
this.linkAuthor.Name = "linkAuthor";
this.linkAuthor.Size = new System.Drawing.Size(72, 17);
this.linkAuthor.TabIndex = 22;
this.linkAuthor.TabStop = true;
this.linkAuthor.Text = "%AUTHOR%";
this.linkAuthor.UseCompatibleTextRendering = true;
this.linkAuthor.VisitedLinkColor = System.Drawing.Color.Blue;
this.linkAuthor.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkAuthor_clicked);
//
// lblSlogan
//
this.lblSlogan.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblSlogan.BackColor = System.Drawing.Color.Transparent;
this.lblSlogan.Location = new System.Drawing.Point(0, 0);
this.lblSlogan.Name = "lblSlogan";
this.lblSlogan.Size = new System.Drawing.Size(240, 33);
this.lblSlogan.TabIndex = 24;
this.lblSlogan.Text = "A lightweight, real-time, always on top thumbnail of a window of your choice.";
//
// labeledDivider3
//
this.labeledDivider3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.labeledDivider3.DividerColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(191)))), ((int)(((byte)(222)))));
this.labeledDivider3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labeledDivider3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(51)))), ((int)(((byte)(170)))));
this.labeledDivider3.Location = new System.Drawing.Point(0, 393);
this.labeledDivider3.Name = "labeledDivider3";
this.labeledDivider3.Size = new System.Drawing.Size(240, 23);
this.labeledDivider3.TabIndex = 32;
this.labeledDivider3.Text = "License";
//
// linkLicense
//
this.linkLicense.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.linkLicense.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkLicense.Location = new System.Drawing.Point(0, 419);
this.linkLicense.Name = "linkLicense";
this.linkLicense.Size = new System.Drawing.Size(240, 81);
this.linkLicense.TabIndex = 33;
this.linkLicense.TabStop = true;
this.linkLicense.Text = "%LICENSE%";
this.linkLicense.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkLicense_click);
//
// labeledDivider4
//
this.labeledDivider4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.labeledDivider4.DividerColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(191)))), ((int)(((byte)(222)))));
this.labeledDivider4.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labeledDivider4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(51)))), ((int)(((byte)(170)))));
this.labeledDivider4.Location = new System.Drawing.Point(0, 503);
this.labeledDivider4.Name = "labeledDivider4";
this.labeledDivider4.Size = new System.Drawing.Size(240, 23);
this.labeledDivider4.TabIndex = 34;
this.labeledDivider4.Text = "Contribute";
//
// linkContribute
//
this.linkContribute.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.linkContribute.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkContribute.Location = new System.Drawing.Point(0, 529);
this.linkContribute.Name = "linkContribute";
this.linkContribute.Size = new System.Drawing.Size(240, 84);
this.linkContribute.TabIndex = 35;
this.linkContribute.TabStop = true;
this.linkContribute.Text = "%CONTRIBUTE%";
this.linkContribute.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkContribute_clicked);
//
// AboutPanelContents
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoScroll = true;
this.Controls.Add(this.linkContribute);
this.Controls.Add(this.labeledDivider4);
this.Controls.Add(this.linkLicense);
this.Controls.Add(this.labeledDivider3);
this.Controls.Add(this.labelTranslators);
this.Controls.Add(this.linkCredits);
this.Controls.Add(this.progressUpdate);
this.Controls.Add(this.buttonUpdate);
this.Controls.Add(this.lblUpdateDisclaimer);
this.Controls.Add(this.labeledDivider2);
this.Controls.Add(this.labeledDivider1);
this.Controls.Add(this.linkHomepage);
this.Controls.Add(this.linkAuthor);
this.Controls.Add(this.lblSlogan);
this.Margin = new System.Windows.Forms.Padding(6);
this.Name = "AboutPanelContents";
this.Size = new System.Drawing.Size(243, 613);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label labelTranslators;
private System.Windows.Forms.LinkLabel linkCredits;
private VistaControls.ProgressBar progressUpdate;
private System.Windows.Forms.Button buttonUpdate;
private System.Windows.Forms.Label lblUpdateDisclaimer;
private VistaControls.LabeledDivider labeledDivider2;
private VistaControls.LabeledDivider labeledDivider1;
private System.Windows.Forms.LinkLabel linkHomepage;
private System.Windows.Forms.LinkLabel linkAuthor;
private System.Windows.Forms.Label lblSlogan;
private VistaControls.LabeledDivider labeledDivider3;
private System.Windows.Forms.LinkLabel linkLicense;
private VistaControls.LabeledDivider labeledDivider4;
private System.Windows.Forms.LinkLabel linkContribute;
}
}

View file

@ -0,0 +1,96 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using OnTopReplica.Update;
using System.Diagnostics;
using VistaControls.TaskDialog;
namespace OnTopReplica.SidePanels {
public partial class AboutPanelContents : UserControl {
UpdateManager _updater;
public AboutPanelContents() {
InitializeComponent();
//Localized strings
lblSlogan.Text = Strings.AboutSlogan;
InternationalizeLinkLabel(linkAuthor, Strings.AboutAuthor, Strings.AboutAuthorContent);
labeledDivider1.Text = Strings.AboutDividerUpdates;
lblUpdateDisclaimer.Text = Strings.AboutUpdatesDisclaimer;
buttonUpdate.Text = Strings.AboutUpdatesCheckNow;
labeledDivider2.Text = Strings.AboutDividerCredits;
InternationalizeLinkLabel(linkCredits, Strings.AboutCreditsSources, Strings.AboutCreditsSourcesContent);
labelTranslators.Text = string.Format(Strings.AboutTranslators, Strings.AboutTranslatorsContent);
labeledDivider3.Text = Strings.AboutDividerLicense;
InternationalizeLinkLabel(linkLicense, Strings.AboutLicense, Strings.AboutLicenseContent);
labeledDivider4.Text = Strings.AboutDividerContribute;
InternationalizeLinkLabel(linkContribute, Strings.AboutContribute, Strings.AboutContributeContent);
//Updating
_updater = new UpdateManager();
_updater.UpdateCheckCompleted += new EventHandler<UpdateCheckCompletedEventArgs>(UpdateCheckCompleted);
}
private void InternationalizeLinkLabel(LinkLabel label, string text, string linkText) {
int linkIndex = text.IndexOf('%');
if (linkIndex == -1) {
//Shouldn't happen, but try to fail with meaningful text
label.Text = text;
return;
}
label.Text = text.Substring(0, linkIndex) + linkText + text.Substring(linkIndex + 1);
label.LinkArea = new LinkArea(linkIndex, linkText.Length);
}
private void LinkHomepage_clicked(object sender, LinkLabelLinkClickedEventArgs e) {
Process.Start("http://ontopreplica.codeplex.com");
}
private void LinkAuthor_clicked(object sender, LinkLabelLinkClickedEventArgs e) {
Process.Start("http://lorenz.klopfenstein.net");
}
private void LinkCredits_click(object sender, LinkLabelLinkClickedEventArgs e) {
Process.Start("CREDITS.txt");
}
void UpdateButton_click(object sender, System.EventArgs e) {
progressUpdate.Visible = true;
_updater.CheckForUpdate();
}
void UpdateCheckCompleted(object sender, UpdateCheckCompletedEventArgs e) {
this.Invoke(new Action(() => {
var topForm = this.TopLevelControl as Form;
if (e.Success) {
_updater.HandleUpdateCheck(topForm, e.Information, true);
}
else {
var dlg = new TaskDialog(Strings.ErrorUpdate, Strings.ErrorUpdate, Strings.ErrorUpdateContentGeneric) {
CommonIcon = TaskDialogIcon.Stop,
CommonButtons = TaskDialogButton.OK
};
dlg.Show(topForm);
}
progressUpdate.Visible = false;
}));
}
private void LinkLicense_click(object sender, LinkLabelLinkClickedEventArgs e) {
Process.Start("http://opensource.org/licenses/ms-rl.html");
}
private void LinkContribute_clicked(object sender, LinkLabelLinkClickedEventArgs e) {
Process.Start("http://ontopreplica.codeplex.com/SourceControl/list/changesets");
}
}
}

View 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>

View file

@ -114,6 +114,24 @@ namespace OnTopReplica {
}
}
/// <summary>
/// Looks up a localized string similar to Care to contribute to the project? You are welcome to improve available translations, start a new one for your native language or to check out the % from CodePlex..
/// </summary>
internal static string AboutContribute {
get {
return ResourceManager.GetString("AboutContribute", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to source code.
/// </summary>
internal static string AboutContributeContent {
get {
return ResourceManager.GetString("AboutContributeContent", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to OnTopReplica is based upon the WindowsFormsAero library and some other libraries and code sources. %..
/// </summary>
@ -132,6 +150,15 @@ namespace OnTopReplica {
}
}
/// <summary>
/// Looks up a localized string similar to Contribute.
/// </summary>
internal static string AboutDividerContribute {
get {
return ResourceManager.GetString("AboutDividerContribute", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Credits.
/// </summary>
@ -141,6 +168,15 @@ namespace OnTopReplica {
}
}
/// <summary>
/// Looks up a localized string similar to License.
/// </summary>
internal static string AboutDividerLicense {
get {
return ResourceManager.GetString("AboutDividerLicense", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Updates.
/// </summary>
@ -150,6 +186,24 @@ namespace OnTopReplica {
}
}
/// <summary>
/// Looks up a localized string similar to The application is licensed under the % license, which meets the terms of the &quot;open-source&quot; definition specified by OSI..
/// </summary>
internal static string AboutLicense {
get {
return ResourceManager.GetString("AboutLicense", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Microsoft Reciprocal (MS-RL).
/// </summary>
internal static string AboutLicenseContent {
get {
return ResourceManager.GetString("AboutLicenseContent", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to A lightweight, real-time, always on top thumbnail of a window of your choice..
/// </summary>
@ -168,6 +222,24 @@ namespace OnTopReplica {
}
}
/// <summary>
/// Looks up a localized string similar to Translators: {0}.
/// </summary>
internal static string AboutTranslators {
get {
return ResourceManager.GetString("AboutTranslators", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Christian Olaechea M., Daniel Zeus.EX, Federico Lorenzo, Goran Brecelj, Marco Kraxner, Patrik (batupata), Raúl Morillo, René Mihula, Roberto Leiro, Rodrigo Lourenço, Thomas Amundsen..
/// </summary>
internal static string AboutTranslatorsContent {
get {
return ResourceManager.GetString("AboutTranslatorsContent", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Check now!.
/// </summary>

View file

@ -24,60 +24,6 @@
<data name="AboutButtonUpdateTT" xml:space="preserve">
<value>Aktualizovat OnTopReplica.</value>
</data>
<data name="AboutDetails" xml:space="preserve">
<value>&lt;html&gt;
&lt;head&gt;
&lt;style type="text/css"&gt;
body {
font-family: Segoe UI, Arial, sans-serif;
font-size: 0.8em;
margin: 0;
padding: 0.75em;
}
h1 {
font-size: 1.4em;
font-weight: bold;
margin: 1em 0 0.4em 0;
padding: 0;
}
p {
margin: 0.5em 0 0.5em 1em;
padding: 0;
}
a {
font-weight: bold;
color: blue;
}
a:hover {
color: red;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Licence&lt;/h1&gt;
&lt;p&gt;&lt;b&gt;OnTopReplica&lt;/b&gt; je šířena pod &lt;a href="http://opensource.org/licenses/ms-rl.html"&gt;Microsoft Reciprocal License (Ms-RL)&lt;/a&gt; licencí.&lt;/p&gt;
&lt;p&gt;Původní zdrojový kód je možné nalézt na &lt;a href="http://www.codeplex.com/ontopreplica"&gt;domovské stránce projektu na serveru CodePlex&lt;/a&gt;.&lt;/p&gt;
&lt;h1&gt;Autoři a zásluhy&lt;/h1&gt;
&lt;p&gt;Původní inspirací pro OnTopReplica byla aplikace &lt;a href="http://insentient.net"&gt;Switcher&lt;/a&gt; a další aplikace založeny na DWM.&lt;/p&gt;
&lt;p&gt;Všechny Vista ovládací prvky jsou součástí &lt;a href="http://www.codeplex.com/windowsformsaero"&gt;knihovny WindowsFormsAero&lt;/a&gt; pro .NET.&lt;/p&gt;
&lt;p&gt;Některé ukázkové kódy byly převzaty z &lt;a href="http://www.ookii.org"&gt;Ookii&lt;/a&gt; ze serveru Channel9.&lt;/p&gt;
&lt;p&gt;Třída NativeToolstripRenderer byla převzata z &lt;a href="http://wp.asztal.net/2007/12/vista-style-menus-in-dotnet/"&gt;asztal.net&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Některé ikony pocházejí z &lt;a href="http://www.vistaico.com"&gt;VistaICO.com&lt;/a&gt; a balíčku ikon Xiao.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</value>
<comment>Not needed anymore.</comment>
</data>
<data name="ApplicationName" xml:space="preserve">
<value>OnTopReplica</value>
</data>

View file

@ -24,60 +24,6 @@
<data name="AboutButtonUpdateTT" xml:space="preserve">
<value>Opdater OnTopReplica nu.</value>
</data>
<data name="AboutDetails" xml:space="preserve">
<value>&lt;html&gt;
&lt;head&gt;
&lt;style type="text/css"&gt;
body {
font-family: Segoe UI, Arial, sans-serif;
font-size: 0.8em;
margin: 0;
padding: 0.75em;
}
h1 {
font-size: 1.4em;
font-weight: bold;
margin: 1em 0 0.4em 0;
padding: 0;
}
p {
margin: 0.5em 0 0.5em 1em;
padding: 0;
}
a {
font-weight: bold;
color: blue;
}
a:hover {
color: red;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Licens&lt;/h1&gt;
&lt;p&gt;&lt;b&gt;OnTopReplica&lt;/b&gt; er licenseret under &lt;a href="http://opensource.org/licenses/ms-rl.html"&gt;Microsoft Reciprocal License (Ms-RL)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Dem originale kildekode kan findes på &lt;a href="http://www.codeplex.com/ontopreplica"&gt;projektets hjemmeside på CodePlex&lt;/a&gt;.&lt;/p&gt;
&lt;h1&gt;Credits&lt;/h1&gt;
&lt;p&gt;OnTopReplica er inspireret af &lt;a href="http://insentient.net"&gt;Switcher&lt;/a&gt; og andre DWM baserede applikationer.&lt;/p&gt;
&lt;p&gt;Alle Vista funktioner er del af &lt;a href="http://www.codeplex.com/windowsformsaero"&gt;WindowsFormsAero biblioteket&lt;/a&gt; for .NET.&lt;/p&gt;
&lt;p&gt;Lidt eksempel kode er taget fra &lt;a href="http://www.ookii.org"&gt;Ookii&lt;/a&gt; på Channel9.&lt;/p&gt;
&lt;p&gt;NativeToolstripRenderer class er taget fra &lt;a href="http://wp.asztal.net/2007/12/vista-style-menus-in-dotnet/"&gt;asztal.net&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Lidt ikoner fra &lt;a href="http://www.vistaico.com"&gt;VistaICO.com&lt;/a&gt; og Xiao ikon sættet.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</value>
<comment>Not needed anymore.</comment>
</data>
<data name="ApplicationName" xml:space="preserve">
<value>OnTopReplica</value>
</data>

View file

@ -24,60 +24,6 @@
<data name="AboutButtonUpdateTT" xml:space="preserve">
<value>Actualiza OnTopReplica ahora.</value>
</data>
<data name="AboutDetails" xml:space="preserve">
<value>&lt;html&gt;
&lt;head&gt;
&lt;style type="text/css"&gt;
body {
font-family: Segoe UI, Arial, sans-serif;
font-size: 0.8em;
margin: 0;
padding: 0.75em;
}
h1 {
font-size: 1.4em;
font-weight: bold;
margin: 1em 0 0.4em 0;
padding: 0;
}
p {
margin: 0.5em 0 0.5em 1em;
padding: 0;
}
a {
font-weight: bold;
color: blue;
}
a:hover {
color: red;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Licencia&lt;/h1&gt;
&lt;p&gt;&lt;b&gt;OnTopReplica&lt;/b&gt; cuenta con licencia &lt;a href="http://opensource.org/licenses/ms-rl.html"&gt;Microsoft Reciprocal License (Ms-RL)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;El código fuente original se encuentra en &lt;a href="http://www.codeplex.com/ontopreplica"&gt;la página inicial del proyecto en CodePlex&lt;/a&gt;.&lt;/p&gt;
&lt;h1&gt;Créditos&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://insentient.net"&gt;Switcher&lt;/a&gt; y otros programas basados en DWM inspiraron OnTopReplica.&lt;/p&gt;
&lt;p&gt;All Vista controls are part of the &lt;a href="http://www.codeplex.com/windowsformsaero"&gt;WindowsFormsAero library&lt;/a&gt; for .NET.&lt;/p&gt;
&lt;p&gt;Some example code taken from &lt;a href="http://www.ookii.org"&gt;Ookii&lt;/a&gt; on Channel9.&lt;/p&gt;
&lt;p&gt;NativeToolstripRenderer class taken from &lt;a href="http://wp.asztal.net/2007/12/vista-style-menus-in-dotnet/"&gt;asztal.net&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Some icons from &lt;a href="http://www.vistaico.com"&gt;VistaICO.com&lt;/a&gt; and the Xiao icon set.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</value>
<comment>Not needed anymore.</comment>
</data>
<data name="ApplicationName" xml:space="preserve">
<value>OnTopReplica</value>
</data>

File diff suppressed because it is too large Load diff

View file

@ -487,4 +487,30 @@ You can enable click-through later</value>
<data name="AboutVersion" xml:space="preserve">
<value>Version {0}</value>
</data>
<data name="AboutContribute" xml:space="preserve">
<value>Care to contribute to the project? You are welcome to improve available translations, start a new one for your native language or to check out the % from CodePlex.</value>
</data>
<data name="AboutContributeContent" xml:space="preserve">
<value>source code</value>
</data>
<data name="AboutDividerContribute" xml:space="preserve">
<value>Contribute</value>
</data>
<data name="AboutDividerLicense" xml:space="preserve">
<value>License</value>
</data>
<data name="AboutLicense" xml:space="preserve">
<value>The application is licensed under the % license, which meets the terms of the "open-source" definition specified by OSI.</value>
</data>
<data name="AboutLicenseContent" xml:space="preserve">
<value>Microsoft Reciprocal (MS-RL)</value>
</data>
<data name="AboutTranslators" xml:space="preserve">
<value>Translators: {0}</value>
<comment>{0} translators</comment>
</data>
<data name="AboutTranslatorsContent" xml:space="preserve">
<value>Christian Olaechea M., Daniel Zeus.EX, Federico Lorenzo, Goran Brecelj, Marco Kraxner, Patrik (batupata), Raúl Morillo, René Mihula, Roberto Leiro, Rodrigo Lourenço, Thomas Amundsen.</value>
<comment>Must not be localized. In order to be added, contact author.</comment>
</data>
</root>