diff --git a/Greenshot/Forms/MainForm.cs b/Greenshot/Forms/MainForm.cs index 12aab34cf..4143c7de7 100644 --- a/Greenshot/Forms/MainForm.cs +++ b/Greenshot/Forms/MainForm.cs @@ -931,6 +931,18 @@ namespace Greenshot { private void InitializeQuickSettingsMenu() { this.contextmenu_quicksettings.DropDownItems.Clear(); + + // For the capture mousecursor option + ToolStripMenuSelectListItem captureMouseItem = new ToolStripMenuSelectListItem(); + captureMouseItem.Text = Language.GetString("settings_capture_mousepointer"); + captureMouseItem.Checked = conf.CaptureMousepointer; + captureMouseItem.CheckOnClick = true; + captureMouseItem.CheckStateChanged += delegate { + conf.CaptureMousepointer = captureMouseItem.Checked; + }; + + this.contextmenu_quicksettings.DropDownItems.Add(captureMouseItem); + // screenshot destination ToolStripMenuSelectList selectList = new ToolStripMenuSelectList("destinations",true); selectList.Text = Language.GetString(LangKey.settings_destination); diff --git a/Greenshot/Forms/SettingsForm.Designer.cs b/Greenshot/Forms/SettingsForm.Designer.cs index 63f45dcad..780550c37 100644 --- a/Greenshot/Forms/SettingsForm.Designer.cs +++ b/Greenshot/Forms/SettingsForm.Designer.cs @@ -19,7 +19,7 @@ * along with this program. If not, see . */ namespace Greenshot { - partial class SettingsForm : GreenshotPlugin.Controls.GreenshotForm { + partial class SettingsForm { /// /// Designer variable used to keep track of non-visual components. /// @@ -109,6 +109,7 @@ namespace Greenshot { this.tab_destinations = new GreenshotPlugin.Controls.GreenshotTabPage(); this.tab_printer = new GreenshotPlugin.Controls.GreenshotTabPage(); this.groupbox_printoptions = new GreenshotPlugin.Controls.GreenshotGroupBox(); + this.checkbox_printgrayscale = new GreenshotPlugin.Controls.GreenshotCheckBox(); this.checkboxPrintInverted = new GreenshotPlugin.Controls.GreenshotCheckBox(); this.checkbox_alwaysshowprintoptionsdialog = new GreenshotPlugin.Controls.GreenshotCheckBox(); this.checkboxTimestamp = new GreenshotPlugin.Controls.GreenshotCheckBox(); @@ -122,6 +123,10 @@ namespace Greenshot { this.button_pluginconfigure = new System.Windows.Forms.Button(); this.tab_expert = new GreenshotPlugin.Controls.GreenshotTabPage(); this.groupbox_expert = new GreenshotPlugin.Controls.GreenshotGroupBox(); + this.label_footerpattern = new GreenshotPlugin.Controls.GreenshotLabel(); + this.textbox_footerpattern = new GreenshotPlugin.Controls.GreenshotTextBox(); + this.checkbox_thumbnailpreview = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.checkbox_optimizeforrdp = new GreenshotPlugin.Controls.GreenshotCheckBox(); this.checkbox_autoreducecolors = new GreenshotPlugin.Controls.GreenshotCheckBox(); this.label_clipboardformats = new GreenshotPlugin.Controls.GreenshotLabel(); this.checkbox_enableexpert = new GreenshotPlugin.Controls.GreenshotCheckBox(); @@ -167,7 +172,7 @@ namespace Greenshot { this.label_storagelocation.Name = "label_storagelocation"; this.label_storagelocation.Size = new System.Drawing.Size(126, 23); this.label_storagelocation.TabIndex = 11; - this.label_storagelocation.Text = "Storage Location"; + this.label_storagelocation.Text = "Storage location"; // // settings_cancel // @@ -187,7 +192,7 @@ namespace Greenshot { this.settings_okay.Name = "settings_okay"; this.settings_okay.Size = new System.Drawing.Size(75, 23); this.settings_okay.TabIndex = 6; - this.settings_okay.Text = "OK"; + this.settings_okay.Text = "Confirm"; this.settings_okay.UseVisualStyleBackColor = true; this.settings_okay.Click += new System.EventHandler(this.Settings_okayClick); // @@ -254,7 +259,7 @@ namespace Greenshot { this.label_primaryimageformat.Name = "label_primaryimageformat"; this.label_primaryimageformat.Size = new System.Drawing.Size(126, 19); this.label_primaryimageformat.TabIndex = 8; - this.label_primaryimageformat.Text = "Primary image format"; + this.label_primaryimageformat.Text = "Image format"; // // groupbox_preferredfilesettings // @@ -331,7 +336,7 @@ namespace Greenshot { this.groupbox_jpegsettings.Size = new System.Drawing.Size(412, 83); this.groupbox_jpegsettings.TabIndex = 14; this.groupbox_jpegsettings.TabStop = false; - this.groupbox_jpegsettings.Text = "JPEG Settings"; + this.groupbox_jpegsettings.Text = "JPEG settings"; // // checkbox_alwaysshowjpegqualitydialog // @@ -341,7 +346,7 @@ namespace Greenshot { this.checkbox_alwaysshowjpegqualitydialog.PropertyName = "OutputFilePromptQuality"; this.checkbox_alwaysshowjpegqualitydialog.Size = new System.Drawing.Size(394, 25); this.checkbox_alwaysshowjpegqualitydialog.TabIndex = 16; - this.checkbox_alwaysshowjpegqualitydialog.Text = "Show quality dialog every time a JPEG image is saved"; + this.checkbox_alwaysshowjpegqualitydialog.Text = "Show JPEG quality dialog every time a JPEG image is saved"; this.checkbox_alwaysshowjpegqualitydialog.UseVisualStyleBackColor = true; // // label_jpegquality @@ -351,7 +356,7 @@ namespace Greenshot { this.label_jpegquality.Name = "label_jpegquality"; this.label_jpegquality.Size = new System.Drawing.Size(116, 23); this.label_jpegquality.TabIndex = 13; - this.label_jpegquality.Text = "JPEG Quality"; + this.label_jpegquality.Text = "JPEG quality"; // // textBoxJpegQuality // @@ -459,7 +464,7 @@ namespace Greenshot { this.groupbox_network.Size = new System.Drawing.Size(412, 72); this.groupbox_network.TabIndex = 54; this.groupbox_network.TabStop = false; - this.groupbox_network.Text = "Network"; + this.groupbox_network.Text = "Network and updates"; // // numericUpDown_daysbetweencheck // @@ -476,7 +481,7 @@ namespace Greenshot { this.label_checkperiod.Name = "label_checkperiod"; this.label_checkperiod.Size = new System.Drawing.Size(334, 23); this.label_checkperiod.TabIndex = 19; - this.label_checkperiod.Text = "Update check interval"; + this.label_checkperiod.Text = "Update check interval in days (0=no check)"; // // checkbox_usedefaultproxy // @@ -486,7 +491,7 @@ namespace Greenshot { this.checkbox_usedefaultproxy.PropertyName = "UseProxy"; this.checkbox_usedefaultproxy.Size = new System.Drawing.Size(397, 25); this.checkbox_usedefaultproxy.TabIndex = 17; - this.checkbox_usedefaultproxy.Text = "Use default proxy"; + this.checkbox_usedefaultproxy.Text = "Use default system proxy"; this.checkbox_usedefaultproxy.UseVisualStyleBackColor = true; // // groupbox_hotkeys @@ -536,7 +541,7 @@ namespace Greenshot { this.label_ie_hotkey.Name = "label_ie_hotkey"; this.label_ie_hotkey.Size = new System.Drawing.Size(212, 20); this.label_ie_hotkey.TabIndex = 51; - this.label_ie_hotkey.Text = "Capture IE"; + this.label_ie_hotkey.Text = "Capture Internet Explorer"; // // ie_hotkeyControl // @@ -574,7 +579,7 @@ namespace Greenshot { this.label_fullscreen_hotkey.Name = "label_fullscreen_hotkey"; this.label_fullscreen_hotkey.Size = new System.Drawing.Size(212, 23); this.label_fullscreen_hotkey.TabIndex = 47; - this.label_fullscreen_hotkey.Text = "Capture fullscreen"; + this.label_fullscreen_hotkey.Text = "Capture full screen"; // // region_hotkeyControl // @@ -655,7 +660,7 @@ namespace Greenshot { this.groupbox_iecapture.Size = new System.Drawing.Size(416, 50); this.groupbox_iecapture.TabIndex = 2; this.groupbox_iecapture.TabStop = false; - this.groupbox_iecapture.Text = "IE Capture settings"; + this.groupbox_iecapture.Text = "Internet Explorer capture"; // // checkbox_ie_capture // @@ -665,7 +670,7 @@ namespace Greenshot { this.checkbox_ie_capture.PropertyName = "IECapture"; this.checkbox_ie_capture.Size = new System.Drawing.Size(404, 24); this.checkbox_ie_capture.TabIndex = 26; - this.checkbox_ie_capture.Text = "IE capture"; + this.checkbox_ie_capture.Text = "Internet Explorer capture"; this.checkbox_ie_capture.UseVisualStyleBackColor = true; // // groupbox_windowscapture @@ -680,7 +685,7 @@ namespace Greenshot { this.groupbox_windowscapture.Size = new System.Drawing.Size(416, 80); this.groupbox_windowscapture.TabIndex = 1; this.groupbox_windowscapture.TabStop = false; - this.groupbox_windowscapture.Text = "Window capture settings"; + this.groupbox_windowscapture.Text = "Window capture"; // // colorButton_window_background // @@ -710,7 +715,7 @@ namespace Greenshot { this.checkbox_capture_windows_interactive.PropertyName = "CaptureWindowsInteractive"; this.checkbox_capture_windows_interactive.Size = new System.Drawing.Size(394, 18); this.checkbox_capture_windows_interactive.TabIndex = 19; - this.checkbox_capture_windows_interactive.Text = "Interactiv window capture"; + this.checkbox_capture_windows_interactive.Text = "Use interactive window capture mode"; this.checkbox_capture_windows_interactive.UseVisualStyleBackColor = true; // // combobox_window_capture_mode @@ -736,7 +741,7 @@ namespace Greenshot { this.groupbox_capture.Size = new System.Drawing.Size(416, 106); this.groupbox_capture.TabIndex = 0; this.groupbox_capture.TabStop = false; - this.groupbox_capture.Text = "General Capture settings"; + this.groupbox_capture.Text = "Capture"; // // checkbox_playsound // @@ -785,7 +790,7 @@ namespace Greenshot { this.label_waittime.Name = "label_waittime"; this.label_waittime.Size = new System.Drawing.Size(331, 16); this.label_waittime.TabIndex = 25; - this.label_waittime.Text = "Wait before capture (ms)"; + this.label_waittime.Text = "Milliseconds to wait before capture"; // // tab_output // @@ -809,7 +814,7 @@ namespace Greenshot { this.tab_destinations.Name = "tab_destinations"; this.tab_destinations.Size = new System.Drawing.Size(423, 320); this.tab_destinations.TabIndex = 4; - this.tab_destinations.Text = "Destinations"; + this.tab_destinations.Text = "Screenshot Destination"; this.tab_destinations.UseVisualStyleBackColor = true; // // tab_printer @@ -826,6 +831,7 @@ namespace Greenshot { // // groupbox_printoptions // + this.groupbox_printoptions.Controls.Add(this.checkbox_printgrayscale); this.groupbox_printoptions.Controls.Add(this.checkboxPrintInverted); this.groupbox_printoptions.Controls.Add(this.checkbox_alwaysshowprintoptionsdialog); this.groupbox_printoptions.Controls.Add(this.checkboxTimestamp); @@ -841,6 +847,17 @@ namespace Greenshot { this.groupbox_printoptions.TabStop = false; this.groupbox_printoptions.Text = "Print options"; // + // checkbox_printgrayscale + // + this.checkbox_printgrayscale.LanguageKey = "printoption_printgrayscale"; + this.checkbox_printgrayscale.Location = new System.Drawing.Point(12, 192); + this.checkbox_printgrayscale.Name = "checkbox_printgrayscale"; + this.checkbox_printgrayscale.PropertyName = "OutputPrintGrayscale"; + this.checkbox_printgrayscale.Size = new System.Drawing.Size(394, 19); + this.checkbox_printgrayscale.TabIndex = 32; + this.checkbox_printgrayscale.Text = "Force grayscale printing"; + this.checkbox_printgrayscale.UseVisualStyleBackColor = true; + // // checkboxPrintInverted // this.checkboxPrintInverted.CheckAlign = System.Drawing.ContentAlignment.TopLeft; @@ -851,7 +868,7 @@ namespace Greenshot { this.checkboxPrintInverted.PropertyName = "OutputPrintInverted"; this.checkboxPrintInverted.Size = new System.Drawing.Size(394, 16); this.checkboxPrintInverted.TabIndex = 31; - this.checkboxPrintInverted.Text = "Print inverted"; + this.checkboxPrintInverted.Text = "Print with inverted colors"; this.checkboxPrintInverted.TextAlign = System.Drawing.ContentAlignment.TopLeft; this.checkboxPrintInverted.UseVisualStyleBackColor = true; // @@ -904,7 +921,7 @@ namespace Greenshot { this.checkboxAllowRotate.PropertyName = "OutputPrintAllowRotate"; this.checkboxAllowRotate.Size = new System.Drawing.Size(394, 17); this.checkboxAllowRotate.TabIndex = 28; - this.checkboxAllowRotate.Text = "Rotate printouts to page orientation."; + this.checkboxAllowRotate.Text = "Rotate printout to page orientation"; this.checkboxAllowRotate.TextAlign = System.Drawing.ContentAlignment.TopLeft; this.checkboxAllowRotate.UseVisualStyleBackColor = true; // @@ -918,7 +935,7 @@ namespace Greenshot { this.checkboxAllowEnlarge.PropertyName = "OutputPrintAllowEnlarge"; this.checkboxAllowEnlarge.Size = new System.Drawing.Size(394, 19); this.checkboxAllowEnlarge.TabIndex = 27; - this.checkboxAllowEnlarge.Text = "Enlarge small printouts to paper size."; + this.checkboxAllowEnlarge.Text = "Enlarge printout to fit paper size"; this.checkboxAllowEnlarge.TextAlign = System.Drawing.ContentAlignment.TopLeft; this.checkboxAllowEnlarge.UseVisualStyleBackColor = true; // @@ -932,7 +949,7 @@ namespace Greenshot { this.checkboxAllowShrink.PropertyName = "OutputPrintAllowShrink"; this.checkboxAllowShrink.Size = new System.Drawing.Size(394, 17); this.checkboxAllowShrink.TabIndex = 26; - this.checkboxAllowShrink.Text = "Shrink large printouts to paper size."; + this.checkboxAllowShrink.Text = "Shrink printout to fit paper size"; this.checkboxAllowShrink.TextAlign = System.Drawing.ContentAlignment.TopLeft; this.checkboxAllowShrink.UseVisualStyleBackColor = true; // @@ -1000,6 +1017,10 @@ namespace Greenshot { // // groupbox_expert // + this.groupbox_expert.Controls.Add(this.label_footerpattern); + this.groupbox_expert.Controls.Add(this.textbox_footerpattern); + this.groupbox_expert.Controls.Add(this.checkbox_thumbnailpreview); + this.groupbox_expert.Controls.Add(this.checkbox_optimizeforrdp); this.groupbox_expert.Controls.Add(this.checkbox_autoreducecolors); this.groupbox_expert.Controls.Add(this.label_clipboardformats); this.groupbox_expert.Controls.Add(this.checkbox_enableexpert); @@ -1011,15 +1032,55 @@ namespace Greenshot { this.groupbox_expert.TabStop = false; this.groupbox_expert.Text = "Expert settings"; // + // label_footerpattern + // + this.label_footerpattern.AutoSize = true; + this.label_footerpattern.LanguageKey = "expertsettings_footerpattern"; + this.label_footerpattern.Location = new System.Drawing.Point(7, 225); + this.label_footerpattern.Name = "label_footerpattern"; + this.label_footerpattern.Size = new System.Drawing.Size(103, 13); + this.label_footerpattern.TabIndex = 25; + this.label_footerpattern.Text = "Printer footer pattern"; + // + // textbox_footerpattern + // + this.textbox_footerpattern.Location = new System.Drawing.Point(138, 222); + this.textbox_footerpattern.Name = "textbox_footerpattern"; + this.textbox_footerpattern.PropertyName = "OutputPrintFooterPattern"; + this.textbox_footerpattern.Size = new System.Drawing.Size(262, 20); + this.textbox_footerpattern.TabIndex = 24; + // + // checkbox_thumbnailpreview + // + this.checkbox_thumbnailpreview.LanguageKey = "expertsettings_thumbnailpreview"; + this.checkbox_thumbnailpreview.Location = new System.Drawing.Point(10, 192); + this.checkbox_thumbnailpreview.Name = "checkbox_thumbnailpreview"; + this.checkbox_thumbnailpreview.PropertyName = "ThumnailPreview"; + this.checkbox_thumbnailpreview.Size = new System.Drawing.Size(394, 24); + this.checkbox_thumbnailpreview.TabIndex = 23; + this.checkbox_thumbnailpreview.Text = "Show window thumbnails in context menu (for Vista and windows 7)"; + this.checkbox_thumbnailpreview.UseVisualStyleBackColor = true; + // + // checkbox_optimizeforrdp + // + this.checkbox_optimizeforrdp.LanguageKey = "expertsettings_optimizeforrdp"; + this.checkbox_optimizeforrdp.Location = new System.Drawing.Point(10, 162); + this.checkbox_optimizeforrdp.Name = "checkbox_optimizeforrdp"; + this.checkbox_optimizeforrdp.PropertyName = "OptimizeForRDP"; + this.checkbox_optimizeforrdp.Size = new System.Drawing.Size(394, 24); + this.checkbox_optimizeforrdp.TabIndex = 22; + this.checkbox_optimizeforrdp.Text = "Make some optimizations for usage with remote desktop"; + this.checkbox_optimizeforrdp.UseVisualStyleBackColor = true; + // // checkbox_autoreducecolors // - this.checkbox_autoreducecolors.LanguageKey = "application_title"; - this.checkbox_autoreducecolors.Location = new System.Drawing.Point(9, 143); + this.checkbox_autoreducecolors.LanguageKey = "expertsettings_autoreducecolors"; + this.checkbox_autoreducecolors.Location = new System.Drawing.Point(10, 132); this.checkbox_autoreducecolors.Name = "checkbox_autoreducecolors"; this.checkbox_autoreducecolors.PropertyName = "OutputFileAutoReduceColors"; this.checkbox_autoreducecolors.Size = new System.Drawing.Size(394, 24); this.checkbox_autoreducecolors.TabIndex = 21; - this.checkbox_autoreducecolors.Text = "Auto generate 8-Bit output files if less than 256 colors are used"; + this.checkbox_autoreducecolors.Text = "Write a 256-color image if the colors are less than 256"; this.checkbox_autoreducecolors.UseVisualStyleBackColor = true; // // label_clipboardformats @@ -1076,6 +1137,7 @@ namespace Greenshot { this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "SettingsForm"; + this.Text = "Settings"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SettingsFormFormClosing); this.Shown += new System.EventHandler(this.SettingsFormShown); this.groupbox_preferredfilesettings.ResumeLayout(false); @@ -1186,10 +1248,15 @@ namespace Greenshot { private GreenshotPlugin.Controls.GreenshotTabPage tab_destinations; private GreenshotPlugin.Controls.GreenshotTabPage tab_expert; private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_expert; - private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_autoreducecolors; private GreenshotPlugin.Controls.GreenshotLabel label_clipboardformats; private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_enableexpert; private System.Windows.Forms.ListView listView1; private System.Windows.Forms.ColumnHeader columnHeader1; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_printgrayscale; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_autoreducecolors; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_optimizeforrdp; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_thumbnailpreview; + private GreenshotPlugin.Controls.GreenshotLabel label_footerpattern; + private GreenshotPlugin.Controls.GreenshotTextBox textbox_footerpattern; } } diff --git a/Greenshot/Forms/SettingsForm.cs b/Greenshot/Forms/SettingsForm.cs index ad78dd6f5..1b47044b1 100644 --- a/Greenshot/Forms/SettingsForm.cs +++ b/Greenshot/Forms/SettingsForm.cs @@ -39,7 +39,7 @@ namespace Greenshot { /// /// Description of SettingsForm. /// - public partial class SettingsForm : GreenshotForm { + public partial class SettingsForm : BaseForm { private static log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(SettingsForm)); private static CoreConfiguration coreConfiguration = IniConfig.GetIniSection(); private static EditorConfiguration editorConfiguration = IniConfig.GetIniSection(); diff --git a/Greenshot/Forms/ToolStripMenuSelectList.cs b/Greenshot/Forms/ToolStripMenuSelectList.cs index 6b9376113..a85d64196 100644 --- a/Greenshot/Forms/ToolStripMenuSelectList.cs +++ b/Greenshot/Forms/ToolStripMenuSelectList.cs @@ -24,13 +24,11 @@ using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; -namespace Greenshot.Forms -{ +namespace Greenshot.Forms { /// /// Description of ToolStripMenuSelectList. /// - public class ToolStripMenuSelectList : ToolStripMenuItem - { + public class ToolStripMenuSelectList : ToolStripMenuItem { private bool multiCheckAllowed = false; private bool updateInProgress = false; /// @@ -40,8 +38,7 @@ namespace Greenshot.Forms public Object Identifier; - public ToolStripMenuSelectList(Object identifier, bool allowMultiCheck) - { + public ToolStripMenuSelectList(Object identifier, bool allowMultiCheck) { Identifier = identifier; CheckOnClick = false; multiCheckAllowed = allowMultiCheck; @@ -56,18 +53,23 @@ namespace Greenshot.Forms get { IEnumerator items = DropDownItems.GetEnumerator(); - while(items.MoveNext()) { + while (items.MoveNext()) { ToolStripMenuItem tsmi = (ToolStripMenuItem)items.Current; - if(tsmi.Checked) return tsmi; + if (tsmi.Checked) { + return tsmi; + } } return null; } set { IEnumerator items = DropDownItems.GetEnumerator(); - while(items.MoveNext()) { + while (items.MoveNext()) { ToolStripMenuItem tsmi = (ToolStripMenuItem)items.Current; - if(!multiCheckAllowed && !tsmi.Equals(value)) tsmi.Checked = false; - else if (tsmi.Equals(value)) tsmi.Checked = true; + if (!multiCheckAllowed && !tsmi.Equals(value)) { + tsmi.Checked = false; + } else if (tsmi.Equals(value)) { + tsmi.Checked = true; + } } } } @@ -81,37 +83,50 @@ namespace Greenshot.Forms IEnumerator items = DropDownItems.GetEnumerator(); while(items.MoveNext()) { ToolStripMenuSelectListItem tsmi = (ToolStripMenuSelectListItem)items.Current; - if(tsmi.Checked) sel.Add(tsmi); + if (tsmi.Checked) { + sel.Add(tsmi); + } } return sel.ToArray(); } set { - if(!multiCheckAllowed) throw new ArgumentException("Writing to checkedItems is only allowed in multi-check mode. Either set allowMultiCheck to true or use set SelectedItem instead of SelectedItems."); + if (!multiCheckAllowed) { + throw new ArgumentException("Writing to checkedItems is only allowed in multi-check mode. Either set allowMultiCheck to true or use set SelectedItem instead of SelectedItems."); + } IEnumerator items = DropDownItems.GetEnumerator(); IEnumerator sel = value.GetEnumerator(); - while(items.MoveNext()) { + while (items.MoveNext()) { ToolStripMenuItem tsmi = (ToolStripMenuItem)items.Current; while (sel.MoveNext()) { - if(tsmi.Equals(sel.Current)) tsmi.Checked = true; - else tsmi.Checked = false; - if(!multiCheckAllowed && !tsmi.Equals(sel.Current)) tsmi.Checked = false; - else if (tsmi.Equals(value)) tsmi.Checked = true; + if (tsmi.Equals(sel.Current)) { + tsmi.Checked = true; + } else { + tsmi.Checked = false; + } + if (!multiCheckAllowed && !tsmi.Equals(sel.Current)) { + tsmi.Checked = false; + } else if (tsmi.Equals(value)) { + tsmi.Checked = true; + } } } } } private void ItemCheckStateChanged(object sender, System.EventArgs e) { - if(updateInProgress) return; + if (updateInProgress) { + return; + } ToolStripMenuSelectListItem tsmi = (ToolStripMenuSelectListItem)sender; updateInProgress = true; - if(tsmi.Checked && !multiCheckAllowed) { + if (tsmi.Checked && !multiCheckAllowed) { UncheckAll(); tsmi.Checked = true; } updateInProgress = false; - if(CheckedChanged != null) CheckedChanged(this, new ItemCheckedChangedEventArgs(tsmi)); - + if (CheckedChanged != null) { + CheckedChanged(this, new ItemCheckedChangedEventArgs(tsmi)); + } } /// @@ -128,8 +143,8 @@ namespace Greenshot.Forms newItem.CheckOnClick = true; newItem.CheckStateChanged += new System.EventHandler(this.ItemCheckStateChanged); newItem.Data = data; - if(isChecked) { - if(!multiCheckAllowed) { + if (isChecked) { + if (!multiCheckAllowed) { updateInProgress = true; UncheckAll(); updateInProgress = false; @@ -201,7 +216,9 @@ namespace Greenshot.Forms /// public void UncheckAll() { IEnumerator items = DropDownItems.GetEnumerator(); - while(items.MoveNext()) ((ToolStripMenuItem)items.Current).Checked = false; + while (items.MoveNext()) { + ((ToolStripMenuItem)items.Current).Checked = false; + } } } diff --git a/Greenshot/Helpers/PrintHelper.cs b/Greenshot/Helpers/PrintHelper.cs index 402559da4..5bac2484a 100644 --- a/Greenshot/Helpers/PrintHelper.cs +++ b/Greenshot/Helpers/PrintHelper.cs @@ -108,6 +108,9 @@ namespace Greenshot.Helpers { try { if (!cancelled) { printDocument.PrinterSettings.PrinterName = printerName; + if (conf.OutputPrintGrayscale) { + printDocument.DefaultPageSettings.Color = false; + } printDocument.Print(); returnPrinterSettings = printDocument.PrinterSettings; } @@ -139,6 +142,9 @@ namespace Greenshot.Helpers { } try { if (!cancelled) { + if (conf.OutputPrintGrayscale) { + printDocument.DefaultPageSettings.Color = false; + } printDocument.Print(); returnPrinterSettings = printDialog.PrinterSettings; } diff --git a/Greenshot/Languages/language-en-US.xml b/Greenshot/Languages/language-en-US.xml index 267faa228..8360935d5 100644 --- a/Greenshot/Languages/language-en-US.xml +++ b/Greenshot/Languages/language-en-US.xml @@ -46,7 +46,7 @@ Image format - + Image format used by default @@ -336,7 +336,10 @@ All Greenshot features still work directly from the tray icon context menu witho Show print options dialog every time an image is printed - + + Force grayscale printing + + Print options @@ -616,7 +619,19 @@ time, e.g. 11_58_32 (plus extension defined in the settings) Exported to: {0} - + + Write a 256-color image if the colors are less than 256 + + + Make some optimizations for usage with remote desktop + + + Show window thumbnails in context menu (for Vista and windows 7) + + + Printer footer pattern + + As displayed diff --git a/GreenshotPlugin/Core/CoreConfiguration.cs b/GreenshotPlugin/Core/CoreConfiguration.cs index 203f8529d..a5cbcdf0b 100644 --- a/GreenshotPlugin/Core/CoreConfiguration.cs +++ b/GreenshotPlugin/Core/CoreConfiguration.cs @@ -128,6 +128,8 @@ namespace GreenshotPlugin.Core { public bool OutputPrintCenter; [IniProperty("OutputPrintInverted", LanguageKey="printoptions_inverted", Description="Print image inverted (use e.g. for console captures)", DefaultValue="false")] public bool OutputPrintInverted; + [IniProperty("OutputPrintGrayscale", LanguageKey = "printoptions_printgrayscale", Description = "Force grayscale printing", DefaultValue = "false")] + public bool OutputPrintGrayscale; [IniProperty("OutputPrintFooter", LanguageKey = "printoptions_timestamp", Description = "Print footer on print?", DefaultValue = "true")] public bool OutputPrintFooter; [IniProperty("OutputPrintFooterPattern", Description = "Footer pattern", DefaultValue = "${capturetime:d\"D\"} ${capturetime:d\"T\"} - ${title}")]