mirror of
https://github.com/greenshot/greenshot
synced 2025-07-16 10:03:44 -07:00
Improve DPI support (#254)
* Improving the DPI handling for most forms, there are still issues with: * the AboutForm.Designer.cs where the title with the version scales differently. * the destination picker doesn't seem to scale the font correctly. Some parts are not tested yet... * Solved the issue with the destination picker font, and some other small issues. There still is an issue when using Powertoys (the feature which is experimental), that the capture is somehow skipping.
This commit is contained in:
parent
d8aeab5514
commit
94c778d82c
37 changed files with 216 additions and 216 deletions
|
@ -4,7 +4,10 @@
|
|||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<System.Windows.Forms.ApplicationConfigurationSection>
|
||||
<add key="DpiAwareness" value="PerMonitorV2" />
|
||||
</System.Windows.Forms.ApplicationConfigurationSection>
|
||||
<runtime>
|
||||
<loadFromRemoteSources enabled="true" />
|
||||
<relativeBindForResources enabled="true" />
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
|
|
9
Greenshot/Forms/AboutForm.Designer.cs
generated
9
Greenshot/Forms/AboutForm.Designer.cs
generated
|
@ -67,7 +67,7 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// lblTitle
|
||||
//
|
||||
this.lblTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblTitle.Font = new System.Drawing.Font(System.Drawing.FontFamily.GenericSansSerif, 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblTitle.Location = new System.Drawing.Point(108, 12);
|
||||
this.lblTitle.Name = "lblTitle";
|
||||
this.lblTitle.Size = new System.Drawing.Size(263, 19);
|
||||
|
@ -195,8 +195,11 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// AboutForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
//this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
//this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96, 96);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
|
||||
this.ClientSize = new System.Drawing.Size(530, 293);
|
||||
this.Controls.Add(this.lblTranslation);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
|
|
4
Greenshot/Forms/CaptureForm.Designer.cs
generated
4
Greenshot/Forms/CaptureForm.Designer.cs
generated
|
@ -55,8 +55,8 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// CaptureForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.ClientSize = new System.Drawing.Size(0, 0);
|
||||
this.Cursor = System.Windows.Forms.Cursors.Cross;
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
|
|
|
@ -105,7 +105,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(153, 35);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(14, 13);
|
||||
|
@ -166,7 +165,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// labelDarkness
|
||||
//
|
||||
this.labelDarkness.AutoSize = true;
|
||||
this.labelDarkness.LanguageKey = "editor_dropshadow_darkness";
|
||||
this.labelDarkness.Location = new System.Drawing.Point(12, 73);
|
||||
this.labelDarkness.Name = "labelDarkness";
|
||||
|
@ -175,7 +173,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// labelOffset
|
||||
//
|
||||
this.labelOffset.AutoSize = true;
|
||||
this.labelOffset.LanguageKey = "editor_dropshadow_offset";
|
||||
this.labelOffset.Location = new System.Drawing.Point(12, 35);
|
||||
this.labelOffset.Name = "labelOffset";
|
||||
|
@ -184,7 +181,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// labelThickness
|
||||
//
|
||||
this.labelThickness.AutoSize = true;
|
||||
this.labelThickness.LanguageKey = "editor_dropshadow_thickness";
|
||||
this.labelThickness.Location = new System.Drawing.Point(12, 9);
|
||||
this.labelThickness.Name = "labelThickness";
|
||||
|
@ -194,8 +190,8 @@ namespace Greenshot.Forms {
|
|||
// DropShadowSettingsForm
|
||||
//
|
||||
this.AcceptButton = this.buttonOK;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.CancelButton = this.buttonCancel;
|
||||
this.ClientSize = new System.Drawing.Size(230, 154);
|
||||
this.ControlBox = false;
|
||||
|
|
10
Greenshot/Forms/ImageEditorForm.Designer.cs
generated
10
Greenshot/Forms/ImageEditorForm.Designer.cs
generated
|
@ -231,8 +231,8 @@ namespace Greenshot {
|
|||
//
|
||||
// topToolStripContainer
|
||||
//
|
||||
this.topToolStripContainer.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.topToolStripContainer.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.topToolStripContainer.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.topToolStripContainer.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
//
|
||||
// topToolStripContainer.BottomToolStripPanel
|
||||
//
|
||||
|
@ -1037,7 +1037,6 @@ namespace Greenshot {
|
|||
//
|
||||
// propertiesToolStrip
|
||||
//
|
||||
this.propertiesToolStrip.AutoSize = false;
|
||||
this.propertiesToolStrip.ClickThrough = true;
|
||||
this.propertiesToolStrip.ImageScalingSize = coreConfiguration.ScaledIconSize;
|
||||
this.propertiesToolStrip.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
|
@ -1225,7 +1224,6 @@ namespace Greenshot {
|
|||
// fontFamilyComboBox
|
||||
//
|
||||
this.fontFamilyComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.fontFamilyComboBox.AutoSize = false;
|
||||
this.fontFamilyComboBox.MaxDropDownItems = 20;
|
||||
this.fontFamilyComboBox.Name = "fontFamilyComboBox";
|
||||
this.fontFamilyComboBox.Size = new System.Drawing.Size(200, 20);
|
||||
|
@ -1815,8 +1813,8 @@ namespace Greenshot {
|
|||
//
|
||||
// ImageEditorForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.ClientSize = new System.Drawing.Size(785, 485);
|
||||
this.Controls.Add(this.topToolStripContainer);
|
||||
this.KeyPreview = true;
|
||||
|
|
|
@ -102,13 +102,12 @@ namespace Greenshot {
|
|||
propertiesToolStrip.ImageScalingSize = newSize;
|
||||
propertiesToolStrip.MinimumSize = new Size(150, newSize.Height + 10);
|
||||
|
||||
_surface.AdjustToDpi(dpi);
|
||||
_surface?.AdjustToDpi(dpi);
|
||||
UpdateUi();
|
||||
}
|
||||
|
||||
public ImageEditorForm(ISurface iSurface, bool outputMade)
|
||||
{
|
||||
// Make sure we change the icon size depending on the scaling
|
||||
DpiChanged += AdjustToDpi;
|
||||
EditorList.Add(this);
|
||||
|
||||
//
|
||||
|
@ -116,6 +115,8 @@ namespace Greenshot {
|
|||
//
|
||||
ManualLanguageApply = true;
|
||||
InitializeComponent();
|
||||
// Make sure we change the icon size depending on the scaling
|
||||
DpiChanged += AdjustToDpi;
|
||||
Load += delegate {
|
||||
var thread = new Thread(AddDestinations)
|
||||
{
|
||||
|
@ -236,7 +237,10 @@ namespace Greenshot {
|
|||
MouseWheel += PanelMouseWheel;
|
||||
|
||||
// Make sure the value is set correctly when starting
|
||||
counterUpDown.Value = Surface.CounterStart;
|
||||
if (Surface != null)
|
||||
{
|
||||
counterUpDown.Value = Surface.CounterStart;
|
||||
}
|
||||
ApplyLanguage();
|
||||
}
|
||||
|
||||
|
|
22
Greenshot/Forms/MainForm.Designer.cs
generated
22
Greenshot/Forms/MainForm.Designer.cs
generated
|
@ -50,31 +50,30 @@ namespace Greenshot {
|
|||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||
this.contextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.contextmenu_capturearea = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.contextmenu_capturearea = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.contextmenu_capturelastregion = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.contextmenu_capturewindow = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.contextmenu_capturefullscreen = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.contextmenu_captureie = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.toolStripListCaptureSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.contextmenu_capturewindowfromlist = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.contextmenu_captureiefromlist = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.toolStripOtherSourcesSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.contextmenu_captureclipboard = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.contextmenu_openfile = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.toolStripOpenFolderSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.contextmenu_openrecentcapture = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.toolStripPluginSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.contextmenu_quicksettings = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.contextmenu_settings = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.toolStripMiscSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.contextmenu_help = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.contextmenu_donate = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.contextmenu_about = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.contextmenu_exit = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.toolStripListCaptureSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripOtherSourcesSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripOpenFolderSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripPluginSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripMiscSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripCloseSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.contextmenu_exit = new GreenshotPlugin.Controls.GreenshotToolStripMenuItem();
|
||||
this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
|
||||
this.contextMenu.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
this.contextMenu.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// contextMenu
|
||||
//
|
||||
|
@ -250,10 +249,11 @@ namespace Greenshot {
|
|||
//
|
||||
// notifyIcon
|
||||
//
|
||||
this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
|
||||
this.notifyIcon.ContextMenuStrip = this.contextMenu;
|
||||
this.notifyIcon.Text = "Greenshot";
|
||||
this.notifyIcon.MouseUp += new System.Windows.Forms.MouseEventHandler(this.NotifyIconClickTest);
|
||||
//
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
|
|
|
@ -245,7 +245,7 @@ namespace Greenshot {
|
|||
return;
|
||||
}
|
||||
// Make sure we can use forms
|
||||
WindowsFormsHost.EnableWindowsFormsInterop();
|
||||
WindowsFormsHost.EnableWindowsFormsInterop();
|
||||
|
||||
// BUG-1809: Add message filter, to filter out all the InputLangChanged messages which go to a target control with a handle > 32 bit.
|
||||
Application.AddMessageFilter(new WmInputLangChangeRequestFilter());
|
||||
|
@ -744,7 +744,10 @@ namespace Greenshot {
|
|||
}
|
||||
|
||||
|
||||
private void ContextMenuOpening(object sender, CancelEventArgs e) {
|
||||
private void ContextMenuOpening(object sender, CancelEventArgs e)
|
||||
{
|
||||
var factor = DeviceDpi / 96f;
|
||||
contextMenu.Scale(new SizeF(factor,factor));
|
||||
contextmenu_captureclipboard.Enabled = ClipboardHelper.ContainsImage();
|
||||
contextmenu_capturelastregion.Enabled = coreConfiguration.LastCapturedRegion != Rectangle.Empty;
|
||||
|
||||
|
@ -1025,7 +1028,7 @@ namespace Greenshot {
|
|||
/// <param name="e">EventArgs</param>
|
||||
private void Contextmenu_DonateClick(object sender, EventArgs e) {
|
||||
BeginInvoke((MethodInvoker)delegate {
|
||||
Process.Start("http://getgreenshot.org/support/?version=" + Assembly.GetEntryAssembly().GetName().Version);
|
||||
Process.Start("http://getgreenshot.org/support/?version=" + EnvironmentInfo.GetGreenshotVersion(true));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
9
Greenshot/Forms/MovableShowColorForm.Designer.cs
generated
9
Greenshot/Forms/MovableShowColorForm.Designer.cs
generated
|
@ -52,7 +52,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(40, 5);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(37, 13);
|
||||
|
@ -69,7 +68,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(2, 37);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(33, 13);
|
||||
|
@ -92,7 +90,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(2, 50);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(42, 13);
|
||||
|
@ -108,7 +105,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(2, 63);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(34, 13);
|
||||
|
@ -124,7 +120,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(2, 76);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(40, 13);
|
||||
|
@ -156,8 +151,8 @@ namespace Greenshot.Forms
|
|||
//
|
||||
this.Visible = false;
|
||||
this.Location = new System.Drawing.Point(-10000,-10000);
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.ClientSize = new System.Drawing.Size(100, 100);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
|
|
13
Greenshot/Forms/PrintOptionsDialog.Designer.cs
generated
13
Greenshot/Forms/PrintOptionsDialog.Designer.cs
generated
|
@ -68,7 +68,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// checkbox_dontaskagain
|
||||
//
|
||||
this.checkbox_dontaskagain.AutoSize = true;
|
||||
this.checkbox_dontaskagain.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkbox_dontaskagain.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkbox_dontaskagain.LanguageKey = "printoptions_dontaskagain";
|
||||
|
@ -82,7 +81,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// checkboxAllowShrink
|
||||
//
|
||||
this.checkboxAllowShrink.AutoSize = true;
|
||||
this.checkboxAllowShrink.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowShrink.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowShrink.LanguageKey = "printoptions_allowshrink";
|
||||
|
@ -97,7 +95,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// checkboxAllowEnlarge
|
||||
//
|
||||
this.checkboxAllowEnlarge.AutoSize = true;
|
||||
this.checkboxAllowEnlarge.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowEnlarge.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowEnlarge.LanguageKey = "printoptions_allowenlarge";
|
||||
|
@ -112,7 +109,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// checkboxAllowCenter
|
||||
//
|
||||
this.checkboxAllowCenter.AutoSize = true;
|
||||
this.checkboxAllowCenter.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowCenter.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowCenter.LanguageKey = "printoptions_allowcenter";
|
||||
|
@ -127,7 +123,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// checkboxAllowRotate
|
||||
//
|
||||
this.checkboxAllowRotate.AutoSize = true;
|
||||
this.checkboxAllowRotate.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowRotate.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowRotate.LanguageKey = "printoptions_allowrotate";
|
||||
|
@ -155,7 +150,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// checkboxDateTime
|
||||
//
|
||||
this.checkboxDateTime.AutoSize = true;
|
||||
this.checkboxDateTime.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxDateTime.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxDateTime.LanguageKey = "printoptions_timestamp";
|
||||
|
@ -182,7 +176,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// checkboxPrintInverted
|
||||
//
|
||||
this.checkboxPrintInverted.AutoSize = true;
|
||||
this.checkboxPrintInverted.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxPrintInverted.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxPrintInverted.LanguageKey = "printoptions_inverted";
|
||||
|
@ -197,7 +190,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// radioBtnGrayScale
|
||||
//
|
||||
this.radioBtnGrayScale.AutoSize = true;
|
||||
this.radioBtnGrayScale.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnGrayScale.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnGrayScale.LanguageKey = "printoptions_printgrayscale";
|
||||
|
@ -212,7 +204,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// radioBtnMonochrome
|
||||
//
|
||||
this.radioBtnMonochrome.AutoSize = true;
|
||||
this.radioBtnMonochrome.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnMonochrome.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnMonochrome.LanguageKey = "printoptions_printmonochrome";
|
||||
|
@ -227,7 +218,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// groupBoxPrintLayout
|
||||
//
|
||||
this.groupBoxPrintLayout.AutoSize = true;
|
||||
this.groupBoxPrintLayout.Controls.Add(this.checkboxDateTime);
|
||||
this.groupBoxPrintLayout.Controls.Add(this.checkboxAllowShrink);
|
||||
this.groupBoxPrintLayout.Controls.Add(this.checkboxAllowEnlarge);
|
||||
|
@ -243,7 +233,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// groupBoxColors
|
||||
//
|
||||
this.groupBoxColors.AutoSize = true;
|
||||
this.groupBoxColors.Controls.Add(this.checkboxPrintInverted);
|
||||
this.groupBoxColors.Controls.Add(this.radioBtnColorPrint);
|
||||
this.groupBoxColors.Controls.Add(this.radioBtnGrayScale);
|
||||
|
@ -258,7 +247,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
// radioBtnColorPrint
|
||||
//
|
||||
this.radioBtnColorPrint.AutoSize = true;
|
||||
this.radioBtnColorPrint.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnColorPrint.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnColorPrint.LanguageKey = "printoptions_printcolor";
|
||||
|
@ -274,7 +262,6 @@ namespace Greenshot.Forms
|
|||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.AutoSize = true;
|
||||
this.ClientSize = new System.Drawing.Size(355, 390);
|
||||
this.Controls.Add(this.groupBoxColors);
|
||||
this.Controls.Add(this.groupBoxPrintLayout);
|
||||
|
|
7
Greenshot/Forms/ResizeSettingsForm.Designer.cs
generated
7
Greenshot/Forms/ResizeSettingsForm.Designer.cs
generated
|
@ -76,7 +76,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// checkbox_aspectratio
|
||||
//
|
||||
this.checkbox_aspectratio.AutoSize = true;
|
||||
this.checkbox_aspectratio.LanguageKey = "editor_resize_aspectratio";
|
||||
this.checkbox_aspectratio.Location = new System.Drawing.Point(22, 64);
|
||||
this.checkbox_aspectratio.Name = "checkbox_aspectratio";
|
||||
|
@ -86,7 +85,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// label_width
|
||||
//
|
||||
this.label_width.AutoSize = true;
|
||||
this.label_width.LanguageKey = "editor_resize_width";
|
||||
this.label_width.Location = new System.Drawing.Point(19, 15);
|
||||
this.label_width.Name = "label_width";
|
||||
|
@ -95,7 +93,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// label_height
|
||||
//
|
||||
this.label_height.AutoSize = true;
|
||||
this.label_height.LanguageKey = "editor_resize_height";
|
||||
this.label_height.Location = new System.Drawing.Point(19, 38);
|
||||
this.label_height.Name = "label_height";
|
||||
|
@ -140,8 +137,8 @@ namespace Greenshot.Forms {
|
|||
// ResizeSettingsForm
|
||||
//
|
||||
this.AcceptButton = this.buttonOK;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.CancelButton = this.buttonCancel;
|
||||
this.ClientSize = new System.Drawing.Size(244, 122);
|
||||
this.ControlBox = false;
|
||||
|
|
19
Greenshot/Forms/SettingsForm.Designer.cs
generated
19
Greenshot/Forms/SettingsForm.Designer.cs
generated
|
@ -705,7 +705,6 @@ namespace Greenshot {
|
|||
//
|
||||
// colorButton_window_background
|
||||
//
|
||||
this.colorButton_window_background.AutoSize = true;
|
||||
this.colorButton_window_background.Image = ((System.Drawing.Image)(resources.GetObject("colorButton_window_background.Image")));
|
||||
this.colorButton_window_background.Location = new System.Drawing.Point(374, 37);
|
||||
this.colorButton_window_background.Name = "colorButton_window_background";
|
||||
|
@ -716,7 +715,6 @@ namespace Greenshot {
|
|||
//
|
||||
// radiobuttonWindowCapture
|
||||
//
|
||||
this.radiobuttonWindowCapture.AutoSize = true;
|
||||
this.radiobuttonWindowCapture.LanguageKey = "settings_window_capture_mode";
|
||||
this.radiobuttonWindowCapture.Location = new System.Drawing.Point(11, 44);
|
||||
this.radiobuttonWindowCapture.Name = "radiobuttonWindowCapture";
|
||||
|
@ -727,7 +725,6 @@ namespace Greenshot {
|
|||
//
|
||||
// radiobuttonInteractiveCapture
|
||||
//
|
||||
this.radiobuttonInteractiveCapture.AutoSize = true;
|
||||
this.radiobuttonInteractiveCapture.LanguageKey = "settings_capture_windows_interactive";
|
||||
this.radiobuttonInteractiveCapture.Location = new System.Drawing.Point(11, 20);
|
||||
this.radiobuttonInteractiveCapture.Name = "radiobuttonInteractiveCapture";
|
||||
|
@ -868,7 +865,6 @@ namespace Greenshot {
|
|||
//
|
||||
// groupBoxColors
|
||||
//
|
||||
this.groupBoxColors.AutoSize = true;
|
||||
this.groupBoxColors.Controls.Add(this.checkboxPrintInverted);
|
||||
this.groupBoxColors.Controls.Add(this.radioBtnColorPrint);
|
||||
this.groupBoxColors.Controls.Add(this.radioBtnGrayScale);
|
||||
|
@ -882,7 +878,6 @@ namespace Greenshot {
|
|||
//
|
||||
// checkboxPrintInverted
|
||||
//
|
||||
this.checkboxPrintInverted.AutoSize = true;
|
||||
this.checkboxPrintInverted.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxPrintInverted.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxPrintInverted.LanguageKey = "printoptions_inverted";
|
||||
|
@ -896,7 +891,6 @@ namespace Greenshot {
|
|||
//
|
||||
// radioBtnColorPrint
|
||||
//
|
||||
this.radioBtnColorPrint.AutoSize = true;
|
||||
this.radioBtnColorPrint.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnColorPrint.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnColorPrint.LanguageKey = "printoptions_printcolor";
|
||||
|
@ -910,7 +904,6 @@ namespace Greenshot {
|
|||
//
|
||||
// radioBtnGrayScale
|
||||
//
|
||||
this.radioBtnGrayScale.AutoSize = true;
|
||||
this.radioBtnGrayScale.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnGrayScale.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnGrayScale.LanguageKey = "printoptions_printgrayscale";
|
||||
|
@ -925,7 +918,6 @@ namespace Greenshot {
|
|||
//
|
||||
// radioBtnMonochrome
|
||||
//
|
||||
this.radioBtnMonochrome.AutoSize = true;
|
||||
this.radioBtnMonochrome.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnMonochrome.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnMonochrome.LanguageKey = "printoptions_printmonochrome";
|
||||
|
@ -939,7 +931,6 @@ namespace Greenshot {
|
|||
//
|
||||
// groupBoxPrintLayout
|
||||
//
|
||||
this.groupBoxPrintLayout.AutoSize = true;
|
||||
this.groupBoxPrintLayout.Controls.Add(this.checkboxDateTime);
|
||||
this.groupBoxPrintLayout.Controls.Add(this.checkboxAllowShrink);
|
||||
this.groupBoxPrintLayout.Controls.Add(this.checkboxAllowEnlarge);
|
||||
|
@ -954,7 +945,6 @@ namespace Greenshot {
|
|||
//
|
||||
// checkboxDateTime
|
||||
//
|
||||
this.checkboxDateTime.AutoSize = true;
|
||||
this.checkboxDateTime.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxDateTime.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxDateTime.LanguageKey = "printoptions_timestamp";
|
||||
|
@ -968,7 +958,6 @@ namespace Greenshot {
|
|||
//
|
||||
// checkboxAllowShrink
|
||||
//
|
||||
this.checkboxAllowShrink.AutoSize = true;
|
||||
this.checkboxAllowShrink.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowShrink.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowShrink.LanguageKey = "printoptions_allowshrink";
|
||||
|
@ -982,7 +971,6 @@ namespace Greenshot {
|
|||
//
|
||||
// checkboxAllowEnlarge
|
||||
//
|
||||
this.checkboxAllowEnlarge.AutoSize = true;
|
||||
this.checkboxAllowEnlarge.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowEnlarge.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowEnlarge.LanguageKey = "printoptions_allowenlarge";
|
||||
|
@ -996,7 +984,6 @@ namespace Greenshot {
|
|||
//
|
||||
// checkboxAllowRotate
|
||||
//
|
||||
this.checkboxAllowRotate.AutoSize = true;
|
||||
this.checkboxAllowRotate.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowRotate.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowRotate.LanguageKey = "printoptions_allowrotate";
|
||||
|
@ -1010,7 +997,6 @@ namespace Greenshot {
|
|||
//
|
||||
// checkboxAllowCenter
|
||||
//
|
||||
this.checkboxAllowCenter.AutoSize = true;
|
||||
this.checkboxAllowCenter.CheckAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowCenter.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowCenter.LanguageKey = "printoptions_allowcenter";
|
||||
|
@ -1075,7 +1061,6 @@ namespace Greenshot {
|
|||
// button_pluginconfigure
|
||||
//
|
||||
this.button_pluginconfigure.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.button_pluginconfigure.AutoSize = true;
|
||||
this.button_pluginconfigure.Enabled = false;
|
||||
this.button_pluginconfigure.LanguageKey = "settings_configureplugin";
|
||||
this.button_pluginconfigure.Location = new System.Drawing.Point(6, 285);
|
||||
|
@ -1164,7 +1149,6 @@ namespace Greenshot {
|
|||
//
|
||||
// label_counter
|
||||
//
|
||||
this.label_counter.AutoSize = true;
|
||||
this.label_counter.LanguageKey = "expertsettings_counter";
|
||||
this.label_counter.Location = new System.Drawing.Point(7, 285);
|
||||
this.label_counter.Name = "label_counter";
|
||||
|
@ -1181,7 +1165,6 @@ namespace Greenshot {
|
|||
//
|
||||
// label_footerpattern
|
||||
//
|
||||
this.label_footerpattern.AutoSize = true;
|
||||
this.label_footerpattern.LanguageKey = "expertsettings_footerpattern";
|
||||
this.label_footerpattern.Location = new System.Drawing.Point(7, 259);
|
||||
this.label_footerpattern.Name = "label_footerpattern";
|
||||
|
@ -1229,7 +1212,6 @@ namespace Greenshot {
|
|||
//
|
||||
// label_clipboardformats
|
||||
//
|
||||
this.label_clipboardformats.AutoSize = true;
|
||||
this.label_clipboardformats.LanguageKey = "expertsettings_clipboardformats";
|
||||
this.label_clipboardformats.Location = new System.Drawing.Point(7, 39);
|
||||
this.label_clipboardformats.Name = "label_clipboardformats";
|
||||
|
@ -1273,7 +1255,6 @@ namespace Greenshot {
|
|||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.AutoSize = true;
|
||||
this.ClientSize = new System.Drawing.Size(451, 431);
|
||||
this.Controls.Add(this.tabcontrol);
|
||||
this.Controls.Add(this.settings_confirm);
|
||||
|
|
13
Greenshot/Forms/TornEdgeSettingsForm.Designer.cs
generated
13
Greenshot/Forms/TornEdgeSettingsForm.Designer.cs
generated
|
@ -123,7 +123,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(153, 63);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(12, 13);
|
||||
|
@ -184,7 +183,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// labelDarkness
|
||||
//
|
||||
this.labelDarkness.AutoSize = true;
|
||||
this.labelDarkness.LanguageKey = "editor_dropshadow_darkness";
|
||||
this.labelDarkness.Location = new System.Drawing.Point(12, 97);
|
||||
this.labelDarkness.Name = "labelDarkness";
|
||||
|
@ -194,7 +192,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// labelOffset
|
||||
//
|
||||
this.labelOffset.AutoSize = true;
|
||||
this.labelOffset.LanguageKey = "editor_dropshadow_offset";
|
||||
this.labelOffset.Location = new System.Drawing.Point(12, 63);
|
||||
this.labelOffset.Name = "labelOffset";
|
||||
|
@ -203,7 +200,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// labelThickness
|
||||
//
|
||||
this.labelThickness.AutoSize = true;
|
||||
this.labelThickness.LanguageKey = "editor_dropshadow_thickness";
|
||||
this.labelThickness.Location = new System.Drawing.Point(12, 37);
|
||||
this.labelThickness.Name = "labelThickness";
|
||||
|
@ -234,7 +230,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// label_toothsize
|
||||
//
|
||||
this.label_toothsize.AutoSize = true;
|
||||
this.label_toothsize.LanguageKey = "editor_tornedge_toothsize";
|
||||
this.label_toothsize.Location = new System.Drawing.Point(12, 140);
|
||||
this.label_toothsize.Name = "label_toothsize";
|
||||
|
@ -243,7 +238,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// label_horizontaltoothrange
|
||||
//
|
||||
this.label_horizontaltoothrange.AutoSize = true;
|
||||
this.label_horizontaltoothrange.LanguageKey = "editor_tornedge_horizontaltoothrange";
|
||||
this.label_horizontaltoothrange.Location = new System.Drawing.Point(12, 166);
|
||||
this.label_horizontaltoothrange.Name = "label_horizontaltoothrange";
|
||||
|
@ -273,7 +267,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// labelVerticaltoothrange
|
||||
//
|
||||
this.labelVerticaltoothrange.AutoSize = true;
|
||||
this.labelVerticaltoothrange.LanguageKey = "editor_tornedge_verticaltoothrange";
|
||||
this.labelVerticaltoothrange.Location = new System.Drawing.Point(12, 192);
|
||||
this.labelVerticaltoothrange.Name = "labelVerticaltoothrange";
|
||||
|
@ -351,7 +344,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// shadowCheckbox
|
||||
//
|
||||
this.shadowCheckbox.AutoSize = true;
|
||||
this.shadowCheckbox.LanguageKey = "editor_tornedge_shadow";
|
||||
this.shadowCheckbox.Location = new System.Drawing.Point(12, 12);
|
||||
this.shadowCheckbox.Name = "shadowCheckbox";
|
||||
|
@ -362,7 +354,6 @@ namespace Greenshot.Forms {
|
|||
//
|
||||
// all
|
||||
//
|
||||
this.all.AutoSize = true;
|
||||
this.all.LanguageKey = "editor_tornedge_all";
|
||||
this.all.Location = new System.Drawing.Point(251, 12);
|
||||
this.all.Name = "all";
|
||||
|
@ -374,8 +365,8 @@ namespace Greenshot.Forms {
|
|||
// TornEdgeSettingsForm
|
||||
//
|
||||
this.AcceptButton = this.buttonOK;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.CancelButton = this.buttonCancel;
|
||||
this.ClientSize = new System.Drawing.Size(502, 223);
|
||||
this.ControlBox = false;
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2020 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
*
|
||||
* For more information see: http://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
|
|
@ -846,7 +846,7 @@ namespace Greenshot.Helpers {
|
|||
// Restore the window making sure it's visible!
|
||||
windowToCapture.Restore();
|
||||
} else {
|
||||
windowToCapture.ToForeground(false);
|
||||
windowToCapture.ToForeground();
|
||||
}
|
||||
tmpCapture = windowToCapture.CaptureGdiWindow(captureForWindow);
|
||||
if (tmpCapture != null) {
|
||||
|
@ -941,7 +941,7 @@ namespace Greenshot.Helpers {
|
|||
}
|
||||
|
||||
private void SetDpi() {
|
||||
// Workaround for proble with DPI retrieval, the FromHwnd activates the window...
|
||||
// Workaround for problem with DPI retrieval, the FromHwnd activates the window...
|
||||
WindowDetails previouslyActiveWindow = WindowDetails.GetActiveWindow();
|
||||
// Workaround for changed DPI settings in Windows 7
|
||||
var mainForm = SimpleServiceProvider.Current.GetInstance<MainForm>();
|
||||
|
@ -950,7 +950,7 @@ namespace Greenshot.Helpers {
|
|||
_capture.CaptureDetails.DpiY = graphics.DpiY;
|
||||
}
|
||||
// Set previouslyActiveWindow as foreground window
|
||||
previouslyActiveWindow?.ToForeground(false);
|
||||
previouslyActiveWindow?.ToForeground();
|
||||
if (_capture.CaptureDetails != null) {
|
||||
((Bitmap) _capture.Image)?.SetResolution(_capture.CaptureDetails.DpiX, _capture.CaptureDetails.DpiY);
|
||||
}
|
||||
|
|
|
@ -109,7 +109,6 @@ namespace GreenshotBoxPlugin {
|
|||
// checkboxAfterUploadLinkToClipBoard
|
||||
//
|
||||
this.checkboxAfterUploadLinkToClipBoard.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.checkboxAfterUploadLinkToClipBoard.AutoSize = true;
|
||||
this.checkboxAfterUploadLinkToClipBoard.LanguageKey = "box.label_AfterUploadLinkToClipBoard";
|
||||
this.checkboxAfterUploadLinkToClipBoard.Location = new System.Drawing.Point(208, 45);
|
||||
this.checkboxAfterUploadLinkToClipBoard.Name = "checkboxAfterUploadLinkToClipBoard";
|
||||
|
|
|
@ -106,7 +106,6 @@ namespace GreenshotDropboxPlugin {
|
|||
//
|
||||
// checkboxAfterUploadLinkToClipBoard
|
||||
//
|
||||
this.checkboxAfterUploadLinkToClipBoard.AutoSize = true;
|
||||
this.checkboxAfterUploadLinkToClipBoard.LanguageKey = "dropbox.label_AfterUploadLinkToClipBoard";
|
||||
this.checkboxAfterUploadLinkToClipBoard.Location = new System.Drawing.Point(116, 37);
|
||||
this.checkboxAfterUploadLinkToClipBoard.Name = "checkboxAfterUploadLinkToClipBoard";
|
||||
|
|
|
@ -130,8 +130,8 @@ namespace GreenshotExternalCommandPlugin {
|
|||
// SettingsForm
|
||||
//
|
||||
this.AcceptButton = this.buttonOk;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.CancelButton = this.buttonCancel;
|
||||
this.ClientSize = new System.Drawing.Size(365, 208);
|
||||
this.Controls.Add(this.button_edit);
|
||||
|
|
|
@ -168,8 +168,8 @@ namespace GreenshotExternalCommandPlugin {
|
|||
// SettingsFormDetail
|
||||
//
|
||||
this.AcceptButton = this.buttonOk;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.CancelButton = this.buttonCancel;
|
||||
this.ClientSize = new System.Drawing.Size(360, 172);
|
||||
|
|
|
@ -105,7 +105,6 @@ namespace GreenshotFlickrPlugin {
|
|||
//
|
||||
// checkBoxPublic
|
||||
//
|
||||
this.checkBoxPublic.AutoSize = true;
|
||||
this.checkBoxPublic.LanguageKey = "flickr.public";
|
||||
this.checkBoxPublic.Location = new System.Drawing.Point(174, 88);
|
||||
this.checkBoxPublic.Name = "checkBoxPublic";
|
||||
|
@ -117,7 +116,6 @@ namespace GreenshotFlickrPlugin {
|
|||
//
|
||||
// checkBoxFamily
|
||||
//
|
||||
this.checkBoxFamily.AutoSize = true;
|
||||
this.checkBoxFamily.LanguageKey = "flickr.family";
|
||||
this.checkBoxFamily.Location = new System.Drawing.Point(265, 88);
|
||||
this.checkBoxFamily.Name = "checkBoxFamily";
|
||||
|
@ -129,7 +127,6 @@ namespace GreenshotFlickrPlugin {
|
|||
//
|
||||
// checkBoxFriend
|
||||
//
|
||||
this.checkBoxFriend.AutoSize = true;
|
||||
this.checkBoxFriend.LanguageKey = "flickr.friend";
|
||||
this.checkBoxFriend.Location = new System.Drawing.Point(350, 88);
|
||||
this.checkBoxFriend.Name = "checkBoxFriend";
|
||||
|
@ -170,7 +167,6 @@ namespace GreenshotFlickrPlugin {
|
|||
//
|
||||
// checkboxAfterUploadLinkToClipBoard
|
||||
//
|
||||
this.checkboxAfterUploadLinkToClipBoard.AutoSize = true;
|
||||
this.checkboxAfterUploadLinkToClipBoard.LanguageKey = "flickr.label_AfterUploadLinkToClipBoard";
|
||||
this.checkboxAfterUploadLinkToClipBoard.Location = new System.Drawing.Point(173, 116);
|
||||
this.checkboxAfterUploadLinkToClipBoard.Name = "checkboxAfterUploadLinkToClipBoard";
|
||||
|
@ -182,7 +178,6 @@ namespace GreenshotFlickrPlugin {
|
|||
//
|
||||
// checkBox_hiddenfromsearch
|
||||
//
|
||||
this.checkBox_hiddenfromsearch.AutoSize = true;
|
||||
this.checkBox_hiddenfromsearch.LanguageKey = "flickr.label_HiddenFromSearch";
|
||||
this.checkBox_hiddenfromsearch.Location = new System.Drawing.Point(174, 60);
|
||||
this.checkBox_hiddenfromsearch.Name = "checkBox_hiddenfromsearch";
|
||||
|
|
|
@ -87,7 +87,6 @@ namespace GreenshotImgurPlugin
|
|||
// deleteButton
|
||||
//
|
||||
this.deleteButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.deleteButton.AutoSize = true;
|
||||
this.deleteButton.Location = new System.Drawing.Point(109, 272);
|
||||
this.deleteButton.Name = "deleteButton";
|
||||
this.deleteButton.Size = new System.Drawing.Size(75, 23);
|
||||
|
@ -99,7 +98,6 @@ namespace GreenshotImgurPlugin
|
|||
// openButton
|
||||
//
|
||||
this.openButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.openButton.AutoSize = true;
|
||||
this.openButton.Location = new System.Drawing.Point(109, 305);
|
||||
this.openButton.Name = "openButton";
|
||||
this.openButton.Size = new System.Drawing.Size(75, 23);
|
||||
|
@ -122,7 +120,6 @@ namespace GreenshotImgurPlugin
|
|||
// clipboardButton
|
||||
//
|
||||
this.clipboardButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.clipboardButton.AutoSize = true;
|
||||
this.clipboardButton.Location = new System.Drawing.Point(109, 338);
|
||||
this.clipboardButton.Name = "clipboardButton";
|
||||
this.clipboardButton.Size = new System.Drawing.Size(129, 23);
|
||||
|
@ -144,8 +141,8 @@ namespace GreenshotImgurPlugin
|
|||
//
|
||||
// ImgurHistory
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.ClientSize = new System.Drawing.Size(534, 372);
|
||||
this.Controls.Add(this.clearHistoryButton);
|
||||
this.Controls.Add(this.clipboardButton);
|
||||
|
|
|
@ -109,7 +109,6 @@ namespace GreenshotImgurPlugin {
|
|||
//
|
||||
// checkbox_anonymous_access
|
||||
//
|
||||
this.checkbox_anonymous_access.AutoSize = true;
|
||||
this.checkbox_anonymous_access.LanguageKey = "imgur.anonymous_access";
|
||||
this.checkbox_anonymous_access.Location = new System.Drawing.Point(15, 38);
|
||||
this.checkbox_anonymous_access.Name = "checkbox_anonymous_access";
|
||||
|
@ -121,7 +120,6 @@ namespace GreenshotImgurPlugin {
|
|||
//
|
||||
// checkbox_usepagelink
|
||||
//
|
||||
this.checkbox_usepagelink.AutoSize = true;
|
||||
this.checkbox_usepagelink.LanguageKey = "imgur.use_page_link";
|
||||
this.checkbox_usepagelink.Location = new System.Drawing.Point(15, 57);
|
||||
this.checkbox_usepagelink.Name = "checkbox_usepagelink";
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2020 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
*
|
||||
* For more information see: http://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
@ -171,12 +171,11 @@ namespace GreenshotImgurPlugin {
|
|||
{
|
||||
AuthUrlPattern = AuthUrlPattern,
|
||||
TokenUrl = TokenUrl,
|
||||
RedirectUrl = "https://imgur.com",
|
||||
RedirectUrl = "https://getgreenshot.org/oauth/imgur",
|
||||
CloudServiceName = "Imgur",
|
||||
ClientId = ImgurCredentials.CONSUMER_KEY,
|
||||
ClientSecret = ImgurCredentials.CONSUMER_SECRET,
|
||||
AuthorizeMode = OAuth2AuthorizeMode.EmbeddedBrowser,
|
||||
BrowserSize = new Size(680, 880),
|
||||
AuthorizeMode = OAuth2AuthorizeMode.OutOfBoundAuto,
|
||||
RefreshToken = Config.RefreshToken,
|
||||
AccessToken = Config.AccessToken,
|
||||
AccessTokenExpires = Config.AccessTokenExpires
|
||||
|
@ -280,7 +279,7 @@ namespace GreenshotImgurPlugin {
|
|||
/// <param name="imgurInfo"></param>
|
||||
public static void DeleteImgurImage(ImgurInfo imgurInfo) {
|
||||
Log.InfoFormat("Deleting Imgur image for {0}", imgurInfo.DeleteHash);
|
||||
|
||||
|
||||
try {
|
||||
string url = Config.ImgurApi3Url + "/image/" + imgurInfo.DeleteHash + ".xml";
|
||||
HttpWebRequest webRequest = NetworkHelper.CreateWebRequest(url, HTTPMethod.DELETE);
|
||||
|
|
5
GreenshotJiraPlugin/Forms/JiraForm.Designer.cs
generated
5
GreenshotJiraPlugin/Forms/JiraForm.Designer.cs
generated
|
@ -71,7 +71,6 @@ namespace GreenshotJiraPlugin.Forms {
|
|||
//
|
||||
// label_jirafilter
|
||||
//
|
||||
this.label_jirafilter.AutoSize = true;
|
||||
this.label_jirafilter.Location = new System.Drawing.Point(14, 14);
|
||||
this.label_jirafilter.Name = "label_jirafilter";
|
||||
this.label_jirafilter.Size = new System.Drawing.Size(52, 13);
|
||||
|
@ -80,7 +79,6 @@ namespace GreenshotJiraPlugin.Forms {
|
|||
//
|
||||
// label_jira
|
||||
//
|
||||
this.label_jira.AutoSize = true;
|
||||
this.label_jira.Location = new System.Drawing.Point(14, 41);
|
||||
this.label_jira.Name = "label_jira";
|
||||
this.label_jira.Size = new System.Drawing.Size(30, 13);
|
||||
|
@ -127,7 +125,6 @@ namespace GreenshotJiraPlugin.Forms {
|
|||
// label_filename
|
||||
//
|
||||
this.label_filename.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label_filename.AutoSize = true;
|
||||
this.label_filename.Location = new System.Drawing.Point(14, 222);
|
||||
this.label_filename.Name = "label_filename";
|
||||
this.label_filename.Size = new System.Drawing.Size(49, 13);
|
||||
|
@ -137,7 +134,6 @@ namespace GreenshotJiraPlugin.Forms {
|
|||
// label_comment
|
||||
//
|
||||
this.label_comment.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label_comment.AutoSize = true;
|
||||
this.label_comment.Location = new System.Drawing.Point(14, 248);
|
||||
this.label_comment.Name = "label_comment";
|
||||
this.label_comment.Size = new System.Drawing.Size(51, 13);
|
||||
|
@ -167,7 +163,6 @@ namespace GreenshotJiraPlugin.Forms {
|
|||
// label1
|
||||
//
|
||||
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(14, 274);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(23, 13);
|
||||
|
|
|
@ -96,7 +96,6 @@ namespace GreenshotPhotobucketPlugin {
|
|||
//
|
||||
// checkbox_usepagelink
|
||||
//
|
||||
this.checkbox_usepagelink.AutoSize = true;
|
||||
this.checkbox_usepagelink.LanguageKey = "photobucket.use_page_link";
|
||||
this.checkbox_usepagelink.Location = new System.Drawing.Point(15, 43);
|
||||
this.checkbox_usepagelink.Name = "checkbox_usepagelink";
|
||||
|
|
|
@ -108,7 +108,6 @@ namespace GreenshotPicasaPlugin {
|
|||
// checkboxAfterUploadLinkToClipBoard
|
||||
//
|
||||
this.checkboxAfterUploadLinkToClipBoard.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.checkboxAfterUploadLinkToClipBoard.AutoSize = true;
|
||||
this.checkboxAfterUploadLinkToClipBoard.LanguageKey = "picasa.label_AfterUploadLinkToClipBoard";
|
||||
this.checkboxAfterUploadLinkToClipBoard.Location = new System.Drawing.Point(197, 50);
|
||||
this.checkboxAfterUploadLinkToClipBoard.Name = "checkboxAfterUploadLinkToClipBoard";
|
||||
|
|
|
@ -55,7 +55,6 @@ namespace GreenshotPlugin.Controls
|
|||
//
|
||||
// label_pleasewait
|
||||
//
|
||||
this.label_pleasewait.AutoSize = true;
|
||||
this.label_pleasewait.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label_pleasewait.Location = new System.Drawing.Point(0, 0);
|
||||
this.label_pleasewait.Name = "label_pleasewait";
|
||||
|
@ -73,9 +72,8 @@ namespace GreenshotPlugin.Controls
|
|||
//
|
||||
// BackgroundForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoSize = true;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.ClientSize = new System.Drawing.Size(169, 52);
|
||||
this.ControlBox = true;
|
||||
this.Controls.Add(this.label_pleasewait);
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2020 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
*
|
||||
* For more information see: http://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
@ -101,10 +101,10 @@ namespace GreenshotPlugin.Controls {
|
|||
_designTimeToolStripItems = new Dictionary<string, ToolStripItem>();
|
||||
try {
|
||||
ITypeResolutionService typeResService = GetService(typeof(ITypeResolutionService)) as ITypeResolutionService;
|
||||
|
||||
|
||||
// Add a hard-path if you are using SharpDevelop
|
||||
// Language.AddLanguageFilePath(@"C:\Greenshot\Greenshot\Languages");
|
||||
|
||||
|
||||
// this "type"
|
||||
Assembly currentAssembly = GetType().Assembly;
|
||||
if (typeResService != null)
|
||||
|
@ -209,11 +209,11 @@ namespace GreenshotPlugin.Controls {
|
|||
}
|
||||
|
||||
private void ClearChangeNotifications() {
|
||||
// The m_changeService value is null when not in design mode,
|
||||
// as the IComponentChangeService is only available at design time.
|
||||
// The m_changeService value is null when not in design mode,
|
||||
// as the IComponentChangeService is only available at design time.
|
||||
m_changeService = (IComponentChangeService)GetService(typeof(IComponentChangeService));
|
||||
|
||||
// Clear our the component change events to prepare for re-siting.
|
||||
// Clear our the component change events to prepare for re-siting.
|
||||
if (m_changeService != null) {
|
||||
m_changeService.ComponentChanged -= OnComponentChanged;
|
||||
m_changeService.ComponentAdded -= OnComponentAdded;
|
||||
|
@ -335,7 +335,7 @@ namespace GreenshotPlugin.Controls {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Helper method to cache the fieldinfo values, so we don't need to reflect all the time!
|
||||
/// </summary>
|
||||
|
@ -379,8 +379,8 @@ namespace GreenshotPlugin.Controls {
|
|||
ApplyLanguage(applyToControl);
|
||||
}
|
||||
}
|
||||
|
||||
if (DesignMode) {
|
||||
|
||||
if (DesignMode) {
|
||||
foreach (Control designControl in _designTimeControls.Values) {
|
||||
ApplyLanguage(designControl);
|
||||
}
|
||||
|
@ -514,7 +514,7 @@ namespace GreenshotPlugin.Controls {
|
|||
iniValue.Value = comboxBox.GetSelectedEnum();
|
||||
iniDirty = true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,8 +70,8 @@ namespace GreenshotPlugin.Controls {
|
|||
//
|
||||
// OAuthLoginForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.ClientSize = new System.Drawing.Size(595, 315);
|
||||
this.Controls.Add(this._browser);
|
||||
this.Controls.Add(this._addressTextBox);
|
||||
|
|
|
@ -50,7 +50,6 @@ namespace GreenshotPlugin.Controls {
|
|||
//
|
||||
// label_pleasewait
|
||||
//
|
||||
this.label_pleasewait.AutoSize = true;
|
||||
this.label_pleasewait.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label_pleasewait.Location = new System.Drawing.Point(0, 0);
|
||||
this.label_pleasewait.Name = "label_pleasewait";
|
||||
|
@ -77,9 +76,8 @@ namespace GreenshotPlugin.Controls {
|
|||
//
|
||||
// PleaseWaitForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoSize = true;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.CancelButton = this.cancelButton;
|
||||
this.ClientSize = new System.Drawing.Size(169, 76);
|
||||
this.Controls.Add(this.cancelButton);
|
||||
|
|
|
@ -108,7 +108,6 @@ namespace GreenshotPlugin.Controls {
|
|||
//
|
||||
// checkBox_reduceColors
|
||||
//
|
||||
this.checkBox_reduceColors.AutoSize = true;
|
||||
this.checkBox_reduceColors.Location = new System.Drawing.Point(12, 11);
|
||||
this.checkBox_reduceColors.Name = "checkBox_reduceColors";
|
||||
this.checkBox_reduceColors.Size = new System.Drawing.Size(95, 17);
|
||||
|
@ -116,7 +115,7 @@ namespace GreenshotPlugin.Controls {
|
|||
this.checkBox_reduceColors.Text = "settings_reducecolors";
|
||||
this.checkBox_reduceColors.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// QualityDialog
|
||||
// QualityDialog
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
|
|
|
@ -155,10 +155,16 @@ namespace GreenshotPlugin.Core {
|
|||
TopLevel = true
|
||||
};
|
||||
|
||||
menu.Opened += (sender, args) =>
|
||||
{
|
||||
var scaledIconSize = DpiHelper.ScaleWithDpi(CoreConfig.IconSize, DpiHelper.GetDpi(menu.Handle));
|
||||
menu.ImageScalingSize = scaledIconSize;
|
||||
menu.Opening += (sender, args) =>
|
||||
{
|
||||
// find the DPI settings for the screen where this is going to land
|
||||
var screenDpi = DpiHelper.GetDpi(menu.Location);
|
||||
var scaledIconSize = DpiHelper.ScaleWithDpi(CoreConfig.IconSize, screenDpi);
|
||||
menu.SuspendLayout();
|
||||
var fontSize = DpiHelper.ScaleWithDpi(12f, screenDpi);
|
||||
menu.Font = new Font(FontFamily.GenericSansSerif, fontSize, FontStyle.Regular, GraphicsUnit.Pixel);
|
||||
menu.ImageScalingSize = scaledIconSize;
|
||||
menu.ResumeLayout();
|
||||
};
|
||||
|
||||
menu.Closing += delegate(object source, ToolStripDropDownClosingEventArgs eventArgs) {
|
||||
|
@ -191,7 +197,10 @@ namespace GreenshotPlugin.Core {
|
|||
menu.MouseEnter += delegate
|
||||
{
|
||||
// in case the menu has been unfocused, focus again so that dropdown menus will still open on mouseenter
|
||||
if(!menu.ContainsFocus) menu.Focus();
|
||||
if (!menu.ContainsFocus)
|
||||
{
|
||||
menu.Focus();
|
||||
}
|
||||
};
|
||||
foreach (IDestination destination in destinations) {
|
||||
// Fix foreach loop variable for the delegate
|
||||
|
|
|
@ -453,6 +453,24 @@ namespace GreenshotPlugin.Core
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the DPI for the screen which the location is located on
|
||||
/// </summary>
|
||||
/// <param name="location">POINT</param>
|
||||
/// <returns>uint</returns>
|
||||
public static uint GetDpi(POINT location)
|
||||
{
|
||||
RECT rect = new RECT(location.X, location.Y, 1,1);
|
||||
IntPtr hMonitor = User32.MonitorFromRect(ref rect, User32.MONITOR_DEFAULTTONEAREST);
|
||||
var result = GetDpiForMonitor(hMonitor, MonitorDpiType.EffectiveDpi, out var dpiX, out var dpiY);
|
||||
if (result.Succeeded())
|
||||
{
|
||||
return dpiX;
|
||||
}
|
||||
return DefaultScreenDpi;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve the DPI value for the supplied window handle
|
||||
/// </summary>
|
||||
|
@ -476,7 +494,8 @@ namespace GreenshotPlugin.Core
|
|||
{
|
||||
var hMonitor = User32.MonitorFromWindow(hWnd, MonitorFrom.DefaultToNearest);
|
||||
// ReSharper disable once UnusedVariable
|
||||
if (GetDpiForMonitor(hMonitor, MonitorDpiType.EffectiveDpi, out var dpiX, out var dpiY))
|
||||
var result = GetDpiForMonitor(hMonitor, MonitorDpiType.EffectiveDpi, out var dpiX, out var dpiY);
|
||||
if (result.Succeeded())
|
||||
{
|
||||
return dpiX;
|
||||
}
|
||||
|
@ -544,9 +563,8 @@ namespace GreenshotPlugin.Core
|
|||
/// <param name="dpiX">out int for the horizontal dpi</param>
|
||||
/// <param name="dpiY">out int for the vertical dpi</param>
|
||||
/// <returns>true if all okay</returns>
|
||||
[DllImport("shcore")]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
private static extern bool GetDpiForMonitor(IntPtr hMonitor, MonitorDpiType dpiType, out uint dpiX, out uint dpiY);
|
||||
[DllImport("shcore.dll", SetLastError = true)]
|
||||
private static extern HResult GetDpiForMonitor(IntPtr hMonitor, MonitorDpiType dpiType, out uint dpiX, out uint dpiY);
|
||||
|
||||
/// <summary>
|
||||
/// See <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/mt748621(v=vs.85).aspx">EnableNonClientDpiScaling function</a>
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2020 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
*
|
||||
* For more information see: http://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
@ -32,6 +32,8 @@ using System.Net.Sockets;
|
|||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using GreenshotPlugin.Hooking;
|
||||
|
||||
namespace GreenshotPlugin.Core {
|
||||
/// <summary>
|
||||
|
@ -41,16 +43,17 @@ namespace GreenshotPlugin.Core {
|
|||
HMACSHA1,
|
||||
PLAINTEXT,
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Specify the autorize mode that is used to get the token from the cloud service.
|
||||
/// Specify the authorize mode that is used to get the token from the cloud service.
|
||||
/// </summary>
|
||||
public enum OAuth2AuthorizeMode {
|
||||
Unknown, // Will give an exception, caller needs to specify another value
|
||||
LocalServer, // Will specify a redirect URL to http://localhost:port/authorize, while having a HttpListener
|
||||
MonitorTitle, // Not implemented yet: Will monitor for title changes
|
||||
Pin, // Not implemented yet: Will ask the user to enter the shown PIN
|
||||
EmbeddedBrowser // Will open into an embedded _browser (OAuthLoginForm), and catch the redirect
|
||||
Unknown, // Will give an exception, caller needs to specify another value
|
||||
LocalServer, // Will specify a redirect URL to http://localhost:port/authorize, while having a HttpListener
|
||||
MonitorTitle, // Not implemented yet: Will monitor for title changes
|
||||
Pin, // Not implemented yet: Will ask the user to enter the shown PIN
|
||||
EmbeddedBrowser, // Will open into an embedded _browser (OAuthLoginForm), and catch the redirect
|
||||
OutOfBoundAuto
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -211,7 +214,7 @@ namespace GreenshotPlugin.Core {
|
|||
|
||||
//
|
||||
// List of know and used oauth parameters' names
|
||||
//
|
||||
//
|
||||
protected const string OAUTH_CONSUMER_KEY_KEY = "oauth_consumer_key";
|
||||
protected const string OAUTH_CALLBACK_KEY = "oauth_callback";
|
||||
protected const string OAUTH_VERSION_KEY = "oauth_version";
|
||||
|
@ -395,7 +398,7 @@ namespace GreenshotPlugin.Core {
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate the timestamp for the signature
|
||||
/// Generate the timestamp for the signature
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string GenerateTimeStamp() {
|
||||
|
@ -472,7 +475,7 @@ namespace GreenshotPlugin.Core {
|
|||
/// <summary>
|
||||
/// Get the access token
|
||||
/// </summary>
|
||||
/// <returns>The access token.</returns>
|
||||
/// <returns>The access token.</returns>
|
||||
private string GetAccessToken() {
|
||||
if (string.IsNullOrEmpty(Token) || (CheckVerifier && string.IsNullOrEmpty(Verifier))) {
|
||||
Exception e = new Exception("The request token and verifier were not set");
|
||||
|
@ -1121,12 +1124,43 @@ Greenshot received information from CloudServiceName. You can close this browser
|
|||
{
|
||||
OAuth2AuthorizeMode.LocalServer => AuthenticateViaLocalServer(settings),
|
||||
OAuth2AuthorizeMode.EmbeddedBrowser => AuthenticateViaEmbeddedBrowser(settings),
|
||||
_ => throw new NotImplementedException($"Authorize mode '{settings.AuthorizeMode}' is not 'yet' implemented."),
|
||||
OAuth2AuthorizeMode.OutOfBoundAuto => AuthenticateViaDefaultBrowser(settings),
|
||||
_ => throw new NotImplementedException($"Authorize mode '{settings.AuthorizeMode}' is not 'yet' implemented."),
|
||||
};
|
||||
return completed;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// Authenticate via the default browser
|
||||
/// If this works, return the code
|
||||
/// </summary>
|
||||
/// <param name="settings">OAuth2Settings with the Auth / Token url etc</param>
|
||||
/// <returns>true if completed, false if canceled</returns>
|
||||
private static bool AuthenticateViaDefaultBrowser(OAuth2Settings settings)
|
||||
{
|
||||
var monitor = new WindowsTitleMonitor();
|
||||
|
||||
string[] code = new string[1];
|
||||
monitor.TitleChangeEvent += args =>
|
||||
{
|
||||
if (args.Title.Contains(settings.State))
|
||||
{
|
||||
code[0] = args.Title;
|
||||
settings.Code = args.Title;
|
||||
}
|
||||
};
|
||||
using (var process = Process.Start(settings.FormattedAuthUrl))
|
||||
{
|
||||
while (string.IsNullOrEmpty(code[0]))
|
||||
{
|
||||
Application.DoEvents();
|
||||
}
|
||||
};
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Authenticate via an embedded browser
|
||||
/// If this works, return the code
|
||||
/// </summary>
|
||||
|
@ -1192,7 +1226,7 @@ Greenshot received information from CloudServiceName. You can close this browser
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check and authenticate or refresh tokens
|
||||
/// Check and authenticate or refresh tokens
|
||||
/// </summary>
|
||||
/// <param name="settings">OAuth2Settings</param>
|
||||
public static void CheckAndAuthenticateOrRefresh(OAuth2Settings settings) {
|
||||
|
|
|
@ -1137,46 +1137,50 @@ namespace GreenshotPlugin.Core
|
|||
/// <summary>
|
||||
/// Set the window as foreground window
|
||||
/// </summary>
|
||||
/// <param name="handle">hWnd of the window to bring to the foreground</param>
|
||||
/// <param name="workaround">bool with true to use a trick to really bring the window to the foreground</param>
|
||||
public static void ToForeground(IntPtr handle, bool workaround = true)
|
||||
/// <param name="hWnd">hWnd of the window to bring to the foreground</param>
|
||||
public static void ToForeground(IntPtr hWnd)
|
||||
{
|
||||
var window = new WindowDetails(handle);
|
||||
var foregroundWindow = User32.GetForegroundWindow();
|
||||
if (hWnd == foregroundWindow)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var window = new WindowDetails(hWnd);
|
||||
// Nothing we can do if it's not visible!
|
||||
if (!window.Visible)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var threadId1 = User32.GetWindowThreadProcessId(foregroundWindow, IntPtr.Zero);
|
||||
var threadId2 = User32.GetWindowThreadProcessId(hWnd, IntPtr.Zero);
|
||||
|
||||
// Show window in foreground.
|
||||
if (threadId1 != threadId2)
|
||||
{
|
||||
User32.AttachThreadInput(threadId1, threadId2, 1);
|
||||
User32.SetForegroundWindow(hWnd);
|
||||
User32.AttachThreadInput(threadId1, threadId2, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
User32.SetForegroundWindow(hWnd);
|
||||
}
|
||||
|
||||
User32.BringWindowToTop(hWnd);
|
||||
|
||||
if (window.Iconic)
|
||||
{
|
||||
window.Iconic = false;
|
||||
while (window.Iconic)
|
||||
{
|
||||
Application.DoEvents();
|
||||
}
|
||||
}
|
||||
// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms633539(v=vs.85).aspx
|
||||
if (workaround)
|
||||
{
|
||||
const byte alt = 0xA4;
|
||||
const int extendedKey = 0x1;
|
||||
const int keyup = 0x2;
|
||||
// Simulate an "ALT" key press.
|
||||
User32.keybd_event(alt, 0x45, extendedKey | 0, 0);
|
||||
// Simulate an "ALT" key release.
|
||||
User32.keybd_event(alt, 0x45, extendedKey | keyup, 0);
|
||||
}
|
||||
// Show window in forground.
|
||||
User32.BringWindowToTop(handle);
|
||||
User32.SetForegroundWindow(handle);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the window as foreground window
|
||||
/// </summary>
|
||||
/// <param name="workaround">true to use a workaround, otherwise the window might only flash</param>
|
||||
public void ToForeground(bool workaround = true) {
|
||||
ToForeground(Handle, workaround);
|
||||
public void ToForeground() {
|
||||
ToForeground(Handle);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2020 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
*
|
||||
* For more information see: http://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
@ -104,8 +104,8 @@ namespace GreenshotPlugin.Interfaces {
|
|||
Keys EditorShortcutKeys {
|
||||
get;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
/// <summary>
|
||||
/// Gets the dynamic destinations
|
||||
/// </summary>
|
||||
IEnumerable<IDestination> DynamicDestinations();
|
||||
|
|
|
@ -52,9 +52,6 @@ namespace GreenshotPlugin.UnmanagedHelpers {
|
|||
public const int MONITOR_DEFAULTTONEAREST = 2;
|
||||
public const int CURSOR_SHOWING = 0x00000001;
|
||||
|
||||
[DllImport("user32", SetLastError = true)]
|
||||
public static extern bool keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether the specified window handle identifies an existing window.
|
||||
/// </summary>
|
||||
|
@ -72,6 +69,11 @@ namespace GreenshotPlugin.UnmanagedHelpers {
|
|||
public static extern bool IsWindowVisible(IntPtr hWnd);
|
||||
[DllImport("user32", SetLastError = true)]
|
||||
public static extern int GetWindowThreadProcessId(IntPtr hWnd, out int processId);
|
||||
[DllImport("user32", SetLastError = true)]
|
||||
public static extern int GetWindowThreadProcessId(IntPtr hWnd, IntPtr processId);
|
||||
[DllImport("user32")]
|
||||
public static extern IntPtr AttachThreadInput(int idAttach, int idAttachTo, int fAttach);
|
||||
|
||||
[DllImport("user32", SetLastError = true)]
|
||||
public static extern IntPtr GetParent(IntPtr hWnd);
|
||||
[DllImport("user32", SetLastError = true)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue