diff --git a/Greenshot/Forms/SettingsForm.Designer.cs b/Greenshot/Forms/SettingsForm.Designer.cs index 2309a7614..d7bfc9b7a 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 : System.Windows.Forms.Form { + partial class SettingsForm : GreenshotPlugin.Controls.GreenshotForm { /// /// Designer variable used to keep track of non-visual components. /// @@ -48,78 +48,85 @@ namespace Greenshot { { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm)); this.textbox_storagelocation = new System.Windows.Forms.TextBox(); - this.label_storagelocation = new System.Windows.Forms.Label(); - this.settings_cancel = new System.Windows.Forms.Button(); - this.settings_okay = new System.Windows.Forms.Button(); + this.label_storagelocation = new GreenshotPlugin.Controls.GreenshotLabel(); + this.settings_cancel = new GreenshotPlugin.Controls.GreenshotButton(); + this.settings_okay = new GreenshotPlugin.Controls.GreenshotButton(); this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); this.browse = new System.Windows.Forms.Button(); - this.label_screenshotname = new System.Windows.Forms.Label(); - this.textbox_screenshotname = new System.Windows.Forms.TextBox(); - this.label_language = new System.Windows.Forms.Label(); + this.label_screenshotname = new GreenshotPlugin.Controls.GreenshotLabel(); + this.textbox_screenshotname = new GreenshotPlugin.Controls.GreenshotTextBox(); + this.label_language = new GreenshotPlugin.Controls.GreenshotLabel(); this.combobox_language = new System.Windows.Forms.ComboBox(); this.combobox_primaryimageformat = new System.Windows.Forms.ComboBox(); - this.label_primaryimageformat = new System.Windows.Forms.Label(); - this.groupbox_preferredfilesettings = new System.Windows.Forms.GroupBox(); + this.label_primaryimageformat = new GreenshotPlugin.Controls.GreenshotLabel(); + this.groupbox_preferredfilesettings = new GreenshotPlugin.Controls.GreenshotGroupBox(); this.btnPatternHelp = new System.Windows.Forms.Button(); - this.checkbox_copypathtoclipboard = new System.Windows.Forms.CheckBox(); - this.groupbox_applicationsettings = new System.Windows.Forms.GroupBox(); - this.checkbox_autostartshortcut = new System.Windows.Forms.CheckBox(); - this.groupbox_jpegsettings = new System.Windows.Forms.GroupBox(); - this.checkbox_alwaysshowjpegqualitydialog = new System.Windows.Forms.CheckBox(); - this.label_jpegquality = new System.Windows.Forms.Label(); + this.checkbox_copypathtoclipboard = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.groupbox_applicationsettings = new GreenshotPlugin.Controls.GreenshotGroupBox(); + this.checkbox_autostartshortcut = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.groupbox_jpegsettings = new GreenshotPlugin.Controls.GreenshotGroupBox(); + this.checkbox_alwaysshowjpegqualitydialog = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.label_jpegquality = new GreenshotPlugin.Controls.GreenshotLabel(); this.textBoxJpegQuality = new System.Windows.Forms.TextBox(); this.trackBarJpegQuality = new System.Windows.Forms.TrackBar(); - this.groupbox_destination = new System.Windows.Forms.GroupBox(); - this.checkbox_picker = new System.Windows.Forms.CheckBox(); + this.groupbox_destination = new GreenshotPlugin.Controls.GreenshotGroupBox(); + this.checkbox_picker = new GreenshotPlugin.Controls.GreenshotCheckBox(); this.destinationsListView = new System.Windows.Forms.ListView(); this.destination = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.tabcontrol = new System.Windows.Forms.TabControl(); - this.tab_general = new System.Windows.Forms.TabPage(); - this.groupbox_network = new System.Windows.Forms.GroupBox(); + this.tab_general = new GreenshotPlugin.Controls.GreenshotTabPage(); + this.groupbox_network = new GreenshotPlugin.Controls.GreenshotGroupBox(); this.numericUpDown_daysbetweencheck = new System.Windows.Forms.NumericUpDown(); - this.label_checkperiod = new System.Windows.Forms.Label(); - this.checkbox_usedefaultproxy = new System.Windows.Forms.CheckBox(); - this.groupbox_hotkeys = new System.Windows.Forms.GroupBox(); - this.label_lastregion_hotkey = new System.Windows.Forms.Label(); + this.label_checkperiod = new GreenshotPlugin.Controls.GreenshotLabel(); + this.checkbox_usedefaultproxy = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.groupbox_hotkeys = new GreenshotPlugin.Controls.GreenshotGroupBox(); + this.label_lastregion_hotkey = new GreenshotPlugin.Controls.GreenshotLabel(); this.lastregion_hotkeyControl = new GreenshotPlugin.Controls.HotkeyControl(); - this.label_ie_hotkey = new System.Windows.Forms.Label(); + this.label_ie_hotkey = new GreenshotPlugin.Controls.GreenshotLabel(); this.ie_hotkeyControl = new GreenshotPlugin.Controls.HotkeyControl(); - this.label_region_hotkey = new System.Windows.Forms.Label(); - this.label_window_hotkey = new System.Windows.Forms.Label(); - this.label_fullscreen_hotkey = new System.Windows.Forms.Label(); + this.label_region_hotkey = new GreenshotPlugin.Controls.GreenshotLabel(); + this.label_window_hotkey = new GreenshotPlugin.Controls.GreenshotLabel(); + this.label_fullscreen_hotkey = new GreenshotPlugin.Controls.GreenshotLabel(); this.region_hotkeyControl = new GreenshotPlugin.Controls.HotkeyControl(); this.window_hotkeyControl = new GreenshotPlugin.Controls.HotkeyControl(); this.fullscreen_hotkeyControl = new GreenshotPlugin.Controls.HotkeyControl(); - this.tab_capture = new System.Windows.Forms.TabPage(); - this.groupbox_editor = new System.Windows.Forms.GroupBox(); - this.checkbox_editor_match_capture_size = new System.Windows.Forms.CheckBox(); - this.groupbox_iecapture = new System.Windows.Forms.GroupBox(); - this.checkbox_ie_capture = new System.Windows.Forms.CheckBox(); - this.groupbox_windowscapture = new System.Windows.Forms.GroupBox(); + this.tab_capture = new GreenshotPlugin.Controls.GreenshotTabPage(); + this.groupbox_editor = new GreenshotPlugin.Controls.GreenshotGroupBox(); + this.checkbox_editor_match_capture_size = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.groupbox_iecapture = new GreenshotPlugin.Controls.GreenshotGroupBox(); + this.checkbox_ie_capture = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.groupbox_windowscapture = new GreenshotPlugin.Controls.GreenshotGroupBox(); this.colorButton_window_background = new Greenshot.Controls.ColorButton(); - this.label_window_capture_mode = new System.Windows.Forms.Label(); - this.checkbox_capture_windows_interactive = new System.Windows.Forms.CheckBox(); + this.label_window_capture_mode = new GreenshotPlugin.Controls.GreenshotLabel(); + this.checkbox_capture_windows_interactive = new GreenshotPlugin.Controls.GreenshotCheckBox(); this.combobox_window_capture_mode = new System.Windows.Forms.ComboBox(); - this.groupbox_capture = new System.Windows.Forms.GroupBox(); - this.checkbox_playsound = new System.Windows.Forms.CheckBox(); - this.checkbox_capture_mousepointer = new System.Windows.Forms.CheckBox(); + this.groupbox_capture = new GreenshotPlugin.Controls.GreenshotGroupBox(); + this.checkbox_playsound = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.checkbox_capture_mousepointer = new GreenshotPlugin.Controls.GreenshotCheckBox(); this.numericUpDownWaitTime = new System.Windows.Forms.NumericUpDown(); - this.label_waittime = new System.Windows.Forms.Label(); - this.tab_output = new System.Windows.Forms.TabPage(); - this.tab_destinations = new System.Windows.Forms.TabPage(); - this.tab_printer = new System.Windows.Forms.TabPage(); - this.groupbox_printoptions = new System.Windows.Forms.GroupBox(); - this.checkboxPrintInverted = new System.Windows.Forms.CheckBox(); - this.checkbox_alwaysshowprintoptionsdialog = new System.Windows.Forms.CheckBox(); - this.checkboxTimestamp = new System.Windows.Forms.CheckBox(); - this.checkboxAllowCenter = new System.Windows.Forms.CheckBox(); - this.checkboxAllowRotate = new System.Windows.Forms.CheckBox(); - this.checkboxAllowEnlarge = new System.Windows.Forms.CheckBox(); - this.checkboxAllowShrink = new System.Windows.Forms.CheckBox(); - this.tab_plugins = new System.Windows.Forms.TabPage(); - this.groupbox_plugins = new System.Windows.Forms.GroupBox(); + this.label_waittime = new GreenshotPlugin.Controls.GreenshotLabel(); + this.tab_output = new GreenshotPlugin.Controls.GreenshotTabPage(); + this.tab_destinations = new GreenshotPlugin.Controls.GreenshotTabPage(); + this.tab_printer = new GreenshotPlugin.Controls.GreenshotTabPage(); + this.groupbox_printoptions = new GreenshotPlugin.Controls.GreenshotGroupBox(); + this.checkboxPrintInverted = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.checkbox_alwaysshowprintoptionsdialog = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.checkboxTimestamp = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.checkboxAllowCenter = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.checkboxAllowRotate = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.checkboxAllowEnlarge = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.checkboxAllowShrink = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.tab_plugins = new GreenshotPlugin.Controls.GreenshotTabPage(); + this.groupbox_plugins = new GreenshotPlugin.Controls.GreenshotGroupBox(); this.listview_plugins = new System.Windows.Forms.ListView(); this.button_pluginconfigure = new System.Windows.Forms.Button(); + this.tab_expert = new GreenshotPlugin.Controls.GreenshotTabPage(); + this.groupbox_expert = new GreenshotPlugin.Controls.GreenshotGroupBox(); + this.checkbox_autoreducecolors = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.label_clipboardformats = new GreenshotPlugin.Controls.GreenshotLabel(); + this.checkbox_enableexpert = new GreenshotPlugin.Controls.GreenshotCheckBox(); + this.listView1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.groupbox_preferredfilesettings.SuspendLayout(); this.groupbox_applicationsettings.SuspendLayout(); this.groupbox_jpegsettings.SuspendLayout(); @@ -142,6 +149,8 @@ namespace Greenshot { this.groupbox_printoptions.SuspendLayout(); this.tab_plugins.SuspendLayout(); this.groupbox_plugins.SuspendLayout(); + this.tab_expert.SuspendLayout(); + this.groupbox_expert.SuspendLayout(); this.SuspendLayout(); // // textbox_storagelocation @@ -153,6 +162,7 @@ namespace Greenshot { // // label_storagelocation // + this.label_storagelocation.LanguageKey = "settings_storagelocation"; this.label_storagelocation.Location = new System.Drawing.Point(6, 21); this.label_storagelocation.Name = "label_storagelocation"; this.label_storagelocation.Size = new System.Drawing.Size(126, 23); @@ -161,6 +171,7 @@ namespace Greenshot { // // settings_cancel // + this.settings_cancel.LanguageKey = "editor_cancel"; this.settings_cancel.Location = new System.Drawing.Point(367, 366); this.settings_cancel.Name = "settings_cancel"; this.settings_cancel.Size = new System.Drawing.Size(75, 23); @@ -171,6 +182,7 @@ namespace Greenshot { // // settings_okay // + this.settings_okay.LanguageKey = "editor_confirm"; this.settings_okay.Location = new System.Drawing.Point(286, 366); this.settings_okay.Name = "settings_okay"; this.settings_okay.Size = new System.Drawing.Size(75, 23); @@ -191,6 +203,7 @@ namespace Greenshot { // // label_screenshotname // + this.label_screenshotname.LanguageKey = "settings_filenamepattern"; this.label_screenshotname.Location = new System.Drawing.Point(6, 44); this.label_screenshotname.Name = "label_screenshotname"; this.label_screenshotname.Size = new System.Drawing.Size(126, 23); @@ -201,11 +214,13 @@ namespace Greenshot { // this.textbox_screenshotname.Location = new System.Drawing.Point(138, 41); this.textbox_screenshotname.Name = "textbox_screenshotname"; + this.textbox_screenshotname.PropertyName = "OutputFileFilenamePattern"; this.textbox_screenshotname.Size = new System.Drawing.Size(233, 20); this.textbox_screenshotname.TabIndex = 2; // // label_language // + this.label_language.LanguageKey = "settings_language"; this.label_language.Location = new System.Drawing.Point(6, 20); this.label_language.Name = "label_language"; this.label_language.Size = new System.Drawing.Size(181, 23); @@ -233,6 +248,7 @@ namespace Greenshot { // // label_primaryimageformat // + this.label_primaryimageformat.LanguageKey = "settings_primaryimageformat"; this.label_primaryimageformat.Location = new System.Drawing.Point(6, 67); this.label_primaryimageformat.Name = "label_primaryimageformat"; this.label_primaryimageformat.Size = new System.Drawing.Size(126, 19); @@ -250,6 +266,7 @@ namespace Greenshot { this.groupbox_preferredfilesettings.Controls.Add(this.textbox_storagelocation); this.groupbox_preferredfilesettings.Controls.Add(this.textbox_screenshotname); this.groupbox_preferredfilesettings.Controls.Add(this.label_screenshotname); + this.groupbox_preferredfilesettings.LanguageKey = "settings_preferredfilesettings"; this.groupbox_preferredfilesettings.Location = new System.Drawing.Point(2, 6); this.groupbox_preferredfilesettings.Name = "groupbox_preferredfilesettings"; this.groupbox_preferredfilesettings.Size = new System.Drawing.Size(412, 122); @@ -269,8 +286,10 @@ namespace Greenshot { // // checkbox_copypathtoclipboard // + this.checkbox_copypathtoclipboard.LanguageKey = "settings_copypathtoclipboard"; this.checkbox_copypathtoclipboard.Location = new System.Drawing.Point(12, 89); this.checkbox_copypathtoclipboard.Name = "checkbox_copypathtoclipboard"; + this.checkbox_copypathtoclipboard.PropertyName = "OutputFileCopyPathToClipboard"; this.checkbox_copypathtoclipboard.Size = new System.Drawing.Size(394, 24); this.checkbox_copypathtoclipboard.TabIndex = 18; this.checkbox_copypathtoclipboard.Text = "Copy file path to clipboard every time an image is saved"; @@ -281,6 +300,7 @@ namespace Greenshot { this.groupbox_applicationsettings.Controls.Add(this.checkbox_autostartshortcut); this.groupbox_applicationsettings.Controls.Add(this.label_language); this.groupbox_applicationsettings.Controls.Add(this.combobox_language); + this.groupbox_applicationsettings.LanguageKey = "settings_applicationsettings"; this.groupbox_applicationsettings.Location = new System.Drawing.Point(2, 6); this.groupbox_applicationsettings.Name = "groupbox_applicationsettings"; this.groupbox_applicationsettings.Size = new System.Drawing.Size(412, 68); @@ -290,8 +310,10 @@ namespace Greenshot { // // checkbox_autostartshortcut // + this.checkbox_autostartshortcut.LanguageKey = "settings_autostartshortcut"; this.checkbox_autostartshortcut.Location = new System.Drawing.Point(8, 39); this.checkbox_autostartshortcut.Name = "checkbox_autostartshortcut"; + this.checkbox_autostartshortcut.PropertyName = null; this.checkbox_autostartshortcut.Size = new System.Drawing.Size(397, 25); this.checkbox_autostartshortcut.TabIndex = 15; this.checkbox_autostartshortcut.Text = "Launch Greenshot on startup"; @@ -303,6 +325,7 @@ namespace Greenshot { this.groupbox_jpegsettings.Controls.Add(this.label_jpegquality); this.groupbox_jpegsettings.Controls.Add(this.textBoxJpegQuality); this.groupbox_jpegsettings.Controls.Add(this.trackBarJpegQuality); + this.groupbox_jpegsettings.LanguageKey = "settings_jpegsettings"; this.groupbox_jpegsettings.Location = new System.Drawing.Point(2, 156); this.groupbox_jpegsettings.Name = "groupbox_jpegsettings"; this.groupbox_jpegsettings.Size = new System.Drawing.Size(412, 83); @@ -312,8 +335,10 @@ namespace Greenshot { // // checkbox_alwaysshowjpegqualitydialog // + this.checkbox_alwaysshowjpegqualitydialog.LanguageKey = "settings_alwaysshowjpegqualitydialog"; this.checkbox_alwaysshowjpegqualitydialog.Location = new System.Drawing.Point(12, 50); this.checkbox_alwaysshowjpegqualitydialog.Name = "checkbox_alwaysshowjpegqualitydialog"; + 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"; @@ -321,6 +346,7 @@ namespace Greenshot { // // label_jpegquality // + this.label_jpegquality.LanguageKey = "settings_jpegquality"; this.label_jpegquality.Location = new System.Drawing.Point(6, 24); this.label_jpegquality.Name = "label_jpegquality"; this.label_jpegquality.Size = new System.Drawing.Size(116, 23); @@ -351,6 +377,7 @@ namespace Greenshot { // this.groupbox_destination.Controls.Add(this.checkbox_picker); this.groupbox_destination.Controls.Add(this.destinationsListView); + this.groupbox_destination.LanguageKey = "settings_destination"; this.groupbox_destination.Location = new System.Drawing.Point(2, 6); this.groupbox_destination.Name = "groupbox_destination"; this.groupbox_destination.Size = new System.Drawing.Size(412, 311); @@ -398,6 +425,8 @@ namespace Greenshot { this.tabcontrol.Controls.Add(this.tab_output); this.tabcontrol.Controls.Add(this.tab_destinations); this.tabcontrol.Controls.Add(this.tab_printer); + this.tabcontrol.Controls.Add(this.tab_plugins); + this.tabcontrol.Controls.Add(this.tab_expert); this.tabcontrol.Location = new System.Drawing.Point(12, 13); this.tabcontrol.Name = "tabcontrol"; this.tabcontrol.SelectedIndex = 0; @@ -410,6 +439,7 @@ namespace Greenshot { this.tab_general.Controls.Add(this.groupbox_network); this.tab_general.Controls.Add(this.groupbox_hotkeys); this.tab_general.Controls.Add(this.groupbox_applicationsettings); + this.tab_general.LanguageKey = "settings_general"; this.tab_general.Location = new System.Drawing.Point(4, 22); this.tab_general.Name = "tab_general"; this.tab_general.Padding = new System.Windows.Forms.Padding(3); @@ -423,6 +453,7 @@ namespace Greenshot { this.groupbox_network.Controls.Add(this.numericUpDown_daysbetweencheck); this.groupbox_network.Controls.Add(this.label_checkperiod); this.groupbox_network.Controls.Add(this.checkbox_usedefaultproxy); + this.groupbox_network.LanguageKey = "settings_network"; this.groupbox_network.Location = new System.Drawing.Point(3, 232); this.groupbox_network.Name = "groupbox_network"; this.groupbox_network.Size = new System.Drawing.Size(412, 72); @@ -440,6 +471,7 @@ namespace Greenshot { // // label_checkperiod // + this.label_checkperiod.LanguageKey = "settings_checkperiod"; this.label_checkperiod.Location = new System.Drawing.Point(5, 39); this.label_checkperiod.Name = "label_checkperiod"; this.label_checkperiod.Size = new System.Drawing.Size(334, 23); @@ -448,8 +480,10 @@ namespace Greenshot { // // checkbox_usedefaultproxy // + this.checkbox_usedefaultproxy.LanguageKey = "settings_usedefaultproxy"; this.checkbox_usedefaultproxy.Location = new System.Drawing.Point(7, 11); this.checkbox_usedefaultproxy.Name = "checkbox_usedefaultproxy"; + 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"; @@ -467,6 +501,7 @@ namespace Greenshot { this.groupbox_hotkeys.Controls.Add(this.region_hotkeyControl); this.groupbox_hotkeys.Controls.Add(this.window_hotkeyControl); this.groupbox_hotkeys.Controls.Add(this.fullscreen_hotkeyControl); + this.groupbox_hotkeys.LanguageKey = "hotkeys"; this.groupbox_hotkeys.Location = new System.Drawing.Point(2, 76); this.groupbox_hotkeys.Name = "groupbox_hotkeys"; this.groupbox_hotkeys.Size = new System.Drawing.Size(412, 152); @@ -476,6 +511,7 @@ namespace Greenshot { // // label_lastregion_hotkey // + this.label_lastregion_hotkey.LanguageKey = "contextmenu_capturelastregion"; this.label_lastregion_hotkey.Location = new System.Drawing.Point(6, 94); this.label_lastregion_hotkey.Name = "label_lastregion_hotkey"; this.label_lastregion_hotkey.Size = new System.Drawing.Size(212, 20); @@ -488,12 +524,14 @@ namespace Greenshot { this.lastregion_hotkeyControl.HotkeyModifiers = System.Windows.Forms.Keys.None; this.lastregion_hotkeyControl.Location = new System.Drawing.Point(224, 94); this.lastregion_hotkeyControl.Name = "lastregion_hotkeyControl"; + this.lastregion_hotkeyControl.PropertyName = "LastregionHotkey"; this.lastregion_hotkeyControl.Size = new System.Drawing.Size(179, 20); this.lastregion_hotkeyControl.TabIndex = 52; this.lastregion_hotkeyControl.Text = "None"; // // label_ie_hotkey // + this.label_ie_hotkey.LanguageKey = "contextmenu_captureie"; this.label_ie_hotkey.Location = new System.Drawing.Point(6, 120); this.label_ie_hotkey.Name = "label_ie_hotkey"; this.label_ie_hotkey.Size = new System.Drawing.Size(212, 20); @@ -506,12 +544,14 @@ namespace Greenshot { this.ie_hotkeyControl.HotkeyModifiers = System.Windows.Forms.Keys.None; this.ie_hotkeyControl.Location = new System.Drawing.Point(224, 120); this.ie_hotkeyControl.Name = "ie_hotkeyControl"; + this.ie_hotkeyControl.PropertyName = "IEHotkey"; this.ie_hotkeyControl.Size = new System.Drawing.Size(179, 20); this.ie_hotkeyControl.TabIndex = 50; this.ie_hotkeyControl.Text = "None"; // // label_region_hotkey // + this.label_region_hotkey.LanguageKey = "contextmenu_capturearea"; this.label_region_hotkey.Location = new System.Drawing.Point(6, 68); this.label_region_hotkey.Name = "label_region_hotkey"; this.label_region_hotkey.Size = new System.Drawing.Size(212, 20); @@ -520,6 +560,7 @@ namespace Greenshot { // // label_window_hotkey // + this.label_window_hotkey.LanguageKey = "contextmenu_capturewindow"; this.label_window_hotkey.Location = new System.Drawing.Point(6, 42); this.label_window_hotkey.Name = "label_window_hotkey"; this.label_window_hotkey.Size = new System.Drawing.Size(212, 23); @@ -528,6 +569,7 @@ namespace Greenshot { // // label_fullscreen_hotkey // + this.label_fullscreen_hotkey.LanguageKey = "contextmenu_capturefullscreen"; this.label_fullscreen_hotkey.Location = new System.Drawing.Point(6, 16); this.label_fullscreen_hotkey.Name = "label_fullscreen_hotkey"; this.label_fullscreen_hotkey.Size = new System.Drawing.Size(212, 23); @@ -540,6 +582,7 @@ namespace Greenshot { this.region_hotkeyControl.HotkeyModifiers = System.Windows.Forms.Keys.None; this.region_hotkeyControl.Location = new System.Drawing.Point(224, 68); this.region_hotkeyControl.Name = "region_hotkeyControl"; + this.region_hotkeyControl.PropertyName = "RegionHotkey"; this.region_hotkeyControl.Size = new System.Drawing.Size(179, 20); this.region_hotkeyControl.TabIndex = 46; this.region_hotkeyControl.Text = "None"; @@ -550,6 +593,7 @@ namespace Greenshot { this.window_hotkeyControl.HotkeyModifiers = System.Windows.Forms.Keys.None; this.window_hotkeyControl.Location = new System.Drawing.Point(224, 42); this.window_hotkeyControl.Name = "window_hotkeyControl"; + this.window_hotkeyControl.PropertyName = "WindowHotkey"; this.window_hotkeyControl.Size = new System.Drawing.Size(179, 20); this.window_hotkeyControl.TabIndex = 45; this.window_hotkeyControl.Text = "None"; @@ -560,6 +604,7 @@ namespace Greenshot { this.fullscreen_hotkeyControl.HotkeyModifiers = System.Windows.Forms.Keys.None; this.fullscreen_hotkeyControl.Location = new System.Drawing.Point(224, 16); this.fullscreen_hotkeyControl.Name = "fullscreen_hotkeyControl"; + this.fullscreen_hotkeyControl.PropertyName = "FullscreenHotkey"; this.fullscreen_hotkeyControl.Size = new System.Drawing.Size(179, 20); this.fullscreen_hotkeyControl.TabIndex = 44; this.fullscreen_hotkeyControl.Text = "None"; @@ -570,6 +615,7 @@ namespace Greenshot { this.tab_capture.Controls.Add(this.groupbox_iecapture); this.tab_capture.Controls.Add(this.groupbox_windowscapture); this.tab_capture.Controls.Add(this.groupbox_capture); + this.tab_capture.LanguageKey = "settings_capture"; this.tab_capture.Location = new System.Drawing.Point(4, 22); this.tab_capture.Name = "tab_capture"; this.tab_capture.Size = new System.Drawing.Size(423, 320); @@ -580,6 +626,7 @@ namespace Greenshot { // groupbox_editor // this.groupbox_editor.Controls.Add(this.checkbox_editor_match_capture_size); + this.groupbox_editor.LanguageKey = "settings_editor"; this.groupbox_editor.Location = new System.Drawing.Point(4, 260); this.groupbox_editor.Name = "groupbox_editor"; this.groupbox_editor.Size = new System.Drawing.Size(416, 50); @@ -589,8 +636,11 @@ namespace Greenshot { // // checkbox_editor_match_capture_size // + this.checkbox_editor_match_capture_size.LanguageKey = "editor_match_capture_size"; this.checkbox_editor_match_capture_size.Location = new System.Drawing.Point(6, 19); this.checkbox_editor_match_capture_size.Name = "checkbox_editor_match_capture_size"; + this.checkbox_editor_match_capture_size.PropertyName = "MatchSizeToCapture"; + this.checkbox_editor_match_capture_size.SectionName = "Editor"; this.checkbox_editor_match_capture_size.Size = new System.Drawing.Size(397, 24); this.checkbox_editor_match_capture_size.TabIndex = 26; this.checkbox_editor_match_capture_size.Text = "Match capture size"; @@ -599,6 +649,7 @@ namespace Greenshot { // groupbox_iecapture // this.groupbox_iecapture.Controls.Add(this.checkbox_ie_capture); + this.groupbox_iecapture.LanguageKey = "settings_iecapture"; this.groupbox_iecapture.Location = new System.Drawing.Point(4, 204); this.groupbox_iecapture.Name = "groupbox_iecapture"; this.groupbox_iecapture.Size = new System.Drawing.Size(416, 50); @@ -608,9 +659,11 @@ namespace Greenshot { // // checkbox_ie_capture // + this.checkbox_ie_capture.LanguageKey = "settings_iecapture"; this.checkbox_ie_capture.Location = new System.Drawing.Point(6, 19); this.checkbox_ie_capture.Name = "checkbox_ie_capture"; - this.checkbox_ie_capture.Size = new System.Drawing.Size(213, 24); + 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.UseVisualStyleBackColor = true; @@ -621,6 +674,7 @@ namespace Greenshot { this.groupbox_windowscapture.Controls.Add(this.label_window_capture_mode); this.groupbox_windowscapture.Controls.Add(this.checkbox_capture_windows_interactive); this.groupbox_windowscapture.Controls.Add(this.combobox_window_capture_mode); + this.groupbox_windowscapture.LanguageKey = "settings_windowscapture"; this.groupbox_windowscapture.Location = new System.Drawing.Point(4, 117); this.groupbox_windowscapture.Name = "groupbox_windowscapture"; this.groupbox_windowscapture.Size = new System.Drawing.Size(416, 80); @@ -641,6 +695,7 @@ namespace Greenshot { // // label_window_capture_mode // + this.label_window_capture_mode.LanguageKey = "settings_window_capture_mode"; this.label_window_capture_mode.Location = new System.Drawing.Point(6, 46); this.label_window_capture_mode.Name = "label_window_capture_mode"; this.label_window_capture_mode.Size = new System.Drawing.Size(205, 23); @@ -649,8 +704,10 @@ namespace Greenshot { // // checkbox_capture_windows_interactive // + this.checkbox_capture_windows_interactive.LanguageKey = "settings_capture_windows_interactive"; this.checkbox_capture_windows_interactive.Location = new System.Drawing.Point(9, 19); this.checkbox_capture_windows_interactive.Name = "checkbox_capture_windows_interactive"; + 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"; @@ -673,6 +730,7 @@ namespace Greenshot { this.groupbox_capture.Controls.Add(this.checkbox_capture_mousepointer); this.groupbox_capture.Controls.Add(this.numericUpDownWaitTime); this.groupbox_capture.Controls.Add(this.label_waittime); + this.groupbox_capture.LanguageKey = "settings_capture"; this.groupbox_capture.Location = new System.Drawing.Point(4, 4); this.groupbox_capture.Name = "groupbox_capture"; this.groupbox_capture.Size = new System.Drawing.Size(416, 106); @@ -682,8 +740,10 @@ namespace Greenshot { // // checkbox_playsound // + this.checkbox_playsound.LanguageKey = "settings_playsound"; this.checkbox_playsound.Location = new System.Drawing.Point(11, 39); this.checkbox_playsound.Name = "checkbox_playsound"; + this.checkbox_playsound.PropertyName = "PlayCameraSound"; this.checkbox_playsound.Size = new System.Drawing.Size(399, 24); this.checkbox_playsound.TabIndex = 18; this.checkbox_playsound.Text = "Play camera sound"; @@ -691,8 +751,10 @@ namespace Greenshot { // // checkbox_capture_mousepointer // + this.checkbox_capture_mousepointer.LanguageKey = "settings_capture_mousepointer"; this.checkbox_capture_mousepointer.Location = new System.Drawing.Point(11, 19); this.checkbox_capture_mousepointer.Name = "checkbox_capture_mousepointer"; + this.checkbox_capture_mousepointer.PropertyName = "CaptureMousepointer"; this.checkbox_capture_mousepointer.Size = new System.Drawing.Size(394, 24); this.checkbox_capture_mousepointer.TabIndex = 17; this.checkbox_capture_mousepointer.Text = "Capture mousepointer"; @@ -718,6 +780,7 @@ namespace Greenshot { // // label_waittime // + this.label_waittime.LanguageKey = "settings_waittime"; this.label_waittime.Location = new System.Drawing.Point(74, 71); this.label_waittime.Name = "label_waittime"; this.label_waittime.Size = new System.Drawing.Size(331, 16); @@ -729,6 +792,7 @@ namespace Greenshot { this.tab_output.BackColor = System.Drawing.Color.Transparent; this.tab_output.Controls.Add(this.groupbox_preferredfilesettings); this.tab_output.Controls.Add(this.groupbox_jpegsettings); + this.tab_output.LanguageKey = "settings_output"; this.tab_output.Location = new System.Drawing.Point(4, 22); this.tab_output.Name = "tab_output"; this.tab_output.Padding = new System.Windows.Forms.Padding(3); @@ -740,6 +804,7 @@ namespace Greenshot { // tab_destinations // this.tab_destinations.Controls.Add(this.groupbox_destination); + this.tab_destinations.LanguageKey = "settings_destination"; this.tab_destinations.Location = new System.Drawing.Point(4, 22); this.tab_destinations.Name = "tab_destinations"; this.tab_destinations.Size = new System.Drawing.Size(423, 320); @@ -750,6 +815,7 @@ namespace Greenshot { // tab_printer // this.tab_printer.Controls.Add(this.groupbox_printoptions); + this.tab_printer.LanguageKey = "settings_printer"; this.tab_printer.Location = new System.Drawing.Point(4, 22); this.tab_printer.Name = "tab_printer"; this.tab_printer.Padding = new System.Windows.Forms.Padding(3); @@ -767,6 +833,7 @@ namespace Greenshot { this.groupbox_printoptions.Controls.Add(this.checkboxAllowRotate); this.groupbox_printoptions.Controls.Add(this.checkboxAllowEnlarge); this.groupbox_printoptions.Controls.Add(this.checkboxAllowShrink); + this.groupbox_printoptions.LanguageKey = "settings_printoptions"; this.groupbox_printoptions.Location = new System.Drawing.Point(2, 6); this.groupbox_printoptions.Name = "groupbox_printoptions"; this.groupbox_printoptions.Size = new System.Drawing.Size(412, 227); @@ -778,8 +845,10 @@ namespace Greenshot { // this.checkboxPrintInverted.CheckAlign = System.Drawing.ContentAlignment.TopLeft; this.checkboxPrintInverted.ImageAlign = System.Drawing.ContentAlignment.TopLeft; + this.checkboxPrintInverted.LanguageKey = "printoptions_inverted"; this.checkboxPrintInverted.Location = new System.Drawing.Point(12, 144); this.checkboxPrintInverted.Name = "checkboxPrintInverted"; + this.checkboxPrintInverted.PropertyName = "OutputPrintInverted"; this.checkboxPrintInverted.Size = new System.Drawing.Size(394, 16); this.checkboxPrintInverted.TabIndex = 31; this.checkboxPrintInverted.Text = "Print inverted"; @@ -788,8 +857,10 @@ namespace Greenshot { // // checkbox_alwaysshowprintoptionsdialog // + this.checkbox_alwaysshowprintoptionsdialog.LanguageKey = "settings_alwaysshowprintoptionsdialog"; this.checkbox_alwaysshowprintoptionsdialog.Location = new System.Drawing.Point(12, 167); this.checkbox_alwaysshowprintoptionsdialog.Name = "checkbox_alwaysshowprintoptionsdialog"; + this.checkbox_alwaysshowprintoptionsdialog.PropertyName = "OutputPrintPromptOptions"; this.checkbox_alwaysshowprintoptionsdialog.Size = new System.Drawing.Size(394, 19); this.checkbox_alwaysshowprintoptionsdialog.TabIndex = 17; this.checkbox_alwaysshowprintoptionsdialog.Text = "Show print options dialog every time an image is printed"; @@ -799,8 +870,10 @@ namespace Greenshot { // this.checkboxTimestamp.CheckAlign = System.Drawing.ContentAlignment.TopLeft; this.checkboxTimestamp.ImageAlign = System.Drawing.ContentAlignment.TopLeft; + this.checkboxTimestamp.LanguageKey = "printoptions_timestamp"; this.checkboxTimestamp.Location = new System.Drawing.Point(12, 121); this.checkboxTimestamp.Name = "checkboxTimestamp"; + this.checkboxTimestamp.PropertyName = "OutputPrintFooter"; this.checkboxTimestamp.Size = new System.Drawing.Size(394, 16); this.checkboxTimestamp.TabIndex = 30; this.checkboxTimestamp.Text = "Print date / time at bottom of page"; @@ -811,8 +884,10 @@ namespace Greenshot { // this.checkboxAllowCenter.CheckAlign = System.Drawing.ContentAlignment.TopLeft; this.checkboxAllowCenter.ImageAlign = System.Drawing.ContentAlignment.TopLeft; + this.checkboxAllowCenter.LanguageKey = "printoptions_allowcenter"; this.checkboxAllowCenter.Location = new System.Drawing.Point(12, 96); this.checkboxAllowCenter.Name = "checkboxAllowCenter"; + this.checkboxAllowCenter.PropertyName = "OutputPrintCenter"; this.checkboxAllowCenter.Size = new System.Drawing.Size(394, 18); this.checkboxAllowCenter.TabIndex = 29; this.checkboxAllowCenter.Text = "Center printout on page"; @@ -823,8 +898,10 @@ namespace Greenshot { // this.checkboxAllowRotate.CheckAlign = System.Drawing.ContentAlignment.TopLeft; this.checkboxAllowRotate.ImageAlign = System.Drawing.ContentAlignment.TopLeft; + this.checkboxAllowRotate.LanguageKey = "printoptions_allowrotate"; this.checkboxAllowRotate.Location = new System.Drawing.Point(12, 72); this.checkboxAllowRotate.Name = "checkboxAllowRotate"; + 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."; @@ -835,8 +912,10 @@ namespace Greenshot { // this.checkboxAllowEnlarge.CheckAlign = System.Drawing.ContentAlignment.TopLeft; this.checkboxAllowEnlarge.ImageAlign = System.Drawing.ContentAlignment.TopLeft; + this.checkboxAllowEnlarge.LanguageKey = "printoptions_allowenlarge"; this.checkboxAllowEnlarge.Location = new System.Drawing.Point(12, 47); this.checkboxAllowEnlarge.Name = "checkboxAllowEnlarge"; + 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."; @@ -847,8 +926,10 @@ namespace Greenshot { // this.checkboxAllowShrink.CheckAlign = System.Drawing.ContentAlignment.TopLeft; this.checkboxAllowShrink.ImageAlign = System.Drawing.ContentAlignment.TopLeft; + this.checkboxAllowShrink.LanguageKey = "printoptions_allowshrink"; this.checkboxAllowShrink.Location = new System.Drawing.Point(12, 22); this.checkboxAllowShrink.Name = "checkboxAllowShrink"; + 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."; @@ -858,6 +939,7 @@ namespace Greenshot { // tab_plugins // this.tab_plugins.Controls.Add(this.groupbox_plugins); + this.tab_plugins.LanguageKey = "settings_plugins"; this.tab_plugins.Location = new System.Drawing.Point(4, 22); this.tab_plugins.Name = "tab_plugins"; this.tab_plugins.Size = new System.Drawing.Size(423, 320); @@ -873,6 +955,7 @@ namespace Greenshot { this.groupbox_plugins.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; this.groupbox_plugins.Controls.Add(this.listview_plugins); this.groupbox_plugins.Controls.Add(this.button_pluginconfigure); + this.groupbox_plugins.LanguageKey = null; this.groupbox_plugins.Location = new System.Drawing.Point(0, 0); this.groupbox_plugins.Name = "groupbox_plugins"; this.groupbox_plugins.Size = new System.Drawing.Size(423, 314); @@ -906,6 +989,86 @@ namespace Greenshot { this.button_pluginconfigure.UseVisualStyleBackColor = true; this.button_pluginconfigure.Click += new System.EventHandler(this.Button_pluginconfigureClick); // + // tab_expert + // + this.tab_expert.Controls.Add(this.groupbox_expert); + this.tab_expert.LanguageKey = null; + this.tab_expert.Location = new System.Drawing.Point(4, 22); + this.tab_expert.Name = "tab_expert"; + this.tab_expert.Size = new System.Drawing.Size(423, 320); + this.tab_expert.TabIndex = 5; + this.tab_expert.Text = "Expert"; + this.tab_expert.UseVisualStyleBackColor = true; + // + // groupbox_expert + // + this.groupbox_expert.Controls.Add(this.checkbox_autoreducecolors); + this.groupbox_expert.Controls.Add(this.label_clipboardformats); + this.groupbox_expert.Controls.Add(this.checkbox_enableexpert); + this.groupbox_expert.Controls.Add(this.listView1); + this.groupbox_expert.LanguageKey = null; + this.groupbox_expert.Location = new System.Drawing.Point(5, 5); + this.groupbox_expert.Name = "groupbox_expert"; + this.groupbox_expert.Size = new System.Drawing.Size(412, 311); + this.groupbox_expert.TabIndex = 17; + this.groupbox_expert.TabStop = false; + this.groupbox_expert.Text = "Expert settings"; + // + // checkbox_autoreducecolors + // + this.checkbox_autoreducecolors.LanguageKey = "application_title"; + this.checkbox_autoreducecolors.Location = new System.Drawing.Point(9, 143); + 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.UseVisualStyleBackColor = true; + // + // label_clipboardformats + // + this.label_clipboardformats.AutoSize = true; + this.label_clipboardformats.LanguageKey = null; + this.label_clipboardformats.Location = new System.Drawing.Point(7, 45); + this.label_clipboardformats.Name = "label_clipboardformats"; + this.label_clipboardformats.Size = new System.Drawing.Size(88, 13); + this.label_clipboardformats.TabIndex = 20; + this.label_clipboardformats.Text = "Clipboard formats"; + // + // checkbox_enableexpert + // + this.checkbox_enableexpert.LanguageKey = null; + this.checkbox_enableexpert.Location = new System.Drawing.Point(6, 14); + this.checkbox_enableexpert.Name = "checkbox_enableexpert"; + this.checkbox_enableexpert.PropertyName = null; + this.checkbox_enableexpert.Size = new System.Drawing.Size(394, 24); + this.checkbox_enableexpert.TabIndex = 19; + this.checkbox_enableexpert.Text = "I know what I am doing!"; + this.checkbox_enableexpert.UseVisualStyleBackColor = true; + // + // listView1 + // + this.listView1.Alignment = System.Windows.Forms.ListViewAlignment.Left; + this.listView1.AutoArrange = false; + this.listView1.CheckBoxes = true; + this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1}); + this.listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; + this.listView1.LabelWrap = false; + this.listView1.Location = new System.Drawing.Point(109, 44); + this.listView1.Name = "listView1"; + this.listView1.ShowGroups = false; + this.listView1.Size = new System.Drawing.Size(291, 82); + this.listView1.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.listView1.TabIndex = 0; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Destination"; + this.columnHeader1.Width = 290; + // // SettingsForm // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); @@ -915,6 +1078,7 @@ namespace Greenshot { this.Controls.Add(this.settings_okay); this.Controls.Add(this.settings_cancel); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.LanguageKey = "settings_title"; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "SettingsForm"; @@ -947,80 +1111,91 @@ namespace Greenshot { this.tab_plugins.ResumeLayout(false); this.groupbox_plugins.ResumeLayout(false); this.groupbox_plugins.PerformLayout(); + this.tab_expert.ResumeLayout(false); + this.groupbox_expert.ResumeLayout(false); + this.groupbox_expert.PerformLayout(); this.ResumeLayout(false); + } private System.Windows.Forms.ColumnHeader destination; - private System.Windows.Forms.CheckBox checkbox_picker; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_picker; private System.Windows.Forms.ListView destinationsListView; - private System.Windows.Forms.GroupBox groupbox_editor; - private System.Windows.Forms.CheckBox checkbox_editor_match_capture_size; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_editor; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_editor_match_capture_size; private System.Windows.Forms.NumericUpDown numericUpDown_daysbetweencheck; - private System.Windows.Forms.GroupBox groupbox_network; - private System.Windows.Forms.CheckBox checkbox_usedefaultproxy; - private System.Windows.Forms.Label label_checkperiod; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_network; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_usedefaultproxy; + private GreenshotPlugin.Controls.GreenshotLabel label_checkperiod; private GreenshotPlugin.Controls.HotkeyControl fullscreen_hotkeyControl; private GreenshotPlugin.Controls.HotkeyControl window_hotkeyControl; private GreenshotPlugin.Controls.HotkeyControl region_hotkeyControl; - private System.Windows.Forms.Label label_fullscreen_hotkey; - private System.Windows.Forms.Label label_window_hotkey; - private System.Windows.Forms.Label label_region_hotkey; + private GreenshotPlugin.Controls.GreenshotLabel label_fullscreen_hotkey; + private GreenshotPlugin.Controls.GreenshotLabel label_window_hotkey; + private GreenshotPlugin.Controls.GreenshotLabel label_region_hotkey; private GreenshotPlugin.Controls.HotkeyControl ie_hotkeyControl; - private System.Windows.Forms.Label label_ie_hotkey; + private GreenshotPlugin.Controls.GreenshotLabel label_ie_hotkey; private GreenshotPlugin.Controls.HotkeyControl lastregion_hotkeyControl; - private System.Windows.Forms.Label label_lastregion_hotkey; - private System.Windows.Forms.GroupBox groupbox_hotkeys; - private System.Windows.Forms.CheckBox checkboxPrintInverted; + private GreenshotPlugin.Controls.GreenshotLabel label_lastregion_hotkey; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_hotkeys; + private GreenshotPlugin.Controls.GreenshotCheckBox checkboxPrintInverted; private Greenshot.Controls.ColorButton colorButton_window_background; - private System.Windows.Forms.Label label_window_capture_mode; - private System.Windows.Forms.CheckBox checkbox_ie_capture; - private System.Windows.Forms.GroupBox groupbox_capture; - private System.Windows.Forms.GroupBox groupbox_windowscapture; - private System.Windows.Forms.GroupBox groupbox_iecapture; - private System.Windows.Forms.TabPage tab_capture; + private GreenshotPlugin.Controls.GreenshotLabel label_window_capture_mode; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_ie_capture; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_capture; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_windowscapture; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_iecapture; + private GreenshotPlugin.Controls.GreenshotTabPage tab_capture; private System.Windows.Forms.ComboBox combobox_window_capture_mode; private System.Windows.Forms.NumericUpDown numericUpDownWaitTime; - private System.Windows.Forms.Label label_waittime; - private System.Windows.Forms.CheckBox checkbox_capture_windows_interactive; - private System.Windows.Forms.CheckBox checkbox_capture_mousepointer; - private System.Windows.Forms.TabPage tab_printer; + private GreenshotPlugin.Controls.GreenshotLabel label_waittime; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_capture_windows_interactive; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_capture_mousepointer; + private GreenshotPlugin.Controls.GreenshotTabPage tab_printer; private System.Windows.Forms.ListView listview_plugins; private System.Windows.Forms.Button button_pluginconfigure; - private System.Windows.Forms.GroupBox groupbox_plugins; - private System.Windows.Forms.TabPage tab_plugins; - private System.Windows.Forms.CheckBox checkboxTimestamp; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_plugins; + private GreenshotPlugin.Controls.GreenshotTabPage tab_plugins; + private GreenshotPlugin.Controls.GreenshotCheckBox checkboxTimestamp; private System.Windows.Forms.Button btnPatternHelp; - private System.Windows.Forms.CheckBox checkbox_copypathtoclipboard; - private System.Windows.Forms.CheckBox checkboxAllowShrink; - private System.Windows.Forms.CheckBox checkboxAllowEnlarge; - private System.Windows.Forms.CheckBox checkboxAllowRotate; - private System.Windows.Forms.CheckBox checkboxAllowCenter; - private System.Windows.Forms.CheckBox checkbox_alwaysshowprintoptionsdialog; - private System.Windows.Forms.GroupBox groupbox_printoptions; - private System.Windows.Forms.TabPage tab_output; - private System.Windows.Forms.TabPage tab_general; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_copypathtoclipboard; + private GreenshotPlugin.Controls.GreenshotCheckBox checkboxAllowShrink; + private GreenshotPlugin.Controls.GreenshotCheckBox checkboxAllowEnlarge; + private GreenshotPlugin.Controls.GreenshotCheckBox checkboxAllowRotate; + private GreenshotPlugin.Controls.GreenshotCheckBox checkboxAllowCenter; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_alwaysshowprintoptionsdialog; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_printoptions; + private GreenshotPlugin.Controls.GreenshotTabPage tab_output; + private GreenshotPlugin.Controls.GreenshotTabPage tab_general; private System.Windows.Forms.TabControl tabcontrol; - private System.Windows.Forms.CheckBox checkbox_autostartshortcut; - private System.Windows.Forms.GroupBox groupbox_destination; - private System.Windows.Forms.CheckBox checkbox_alwaysshowjpegqualitydialog; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_autostartshortcut; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_destination; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_alwaysshowjpegqualitydialog; private System.Windows.Forms.TextBox textBoxJpegQuality; - private System.Windows.Forms.Label label_jpegquality; + private GreenshotPlugin.Controls.GreenshotLabel label_jpegquality; private System.Windows.Forms.TrackBar trackBarJpegQuality; - private System.Windows.Forms.GroupBox groupbox_jpegsettings; - private System.Windows.Forms.GroupBox groupbox_applicationsettings; - private System.Windows.Forms.GroupBox groupbox_preferredfilesettings; - private System.Windows.Forms.CheckBox checkbox_playsound; - private System.Windows.Forms.Label label_primaryimageformat; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_jpegsettings; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_applicationsettings; + private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_preferredfilesettings; + private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_playsound; + private GreenshotPlugin.Controls.GreenshotLabel label_primaryimageformat; private System.Windows.Forms.ComboBox combobox_primaryimageformat; private System.Windows.Forms.ComboBox combobox_language; - private System.Windows.Forms.Label label_language; - private System.Windows.Forms.TextBox textbox_screenshotname; - private System.Windows.Forms.Label label_screenshotname; + private GreenshotPlugin.Controls.GreenshotLabel label_language; + private GreenshotPlugin.Controls.GreenshotTextBox textbox_screenshotname; + private GreenshotPlugin.Controls.GreenshotLabel label_screenshotname; private System.Windows.Forms.Button browse; private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1; - private System.Windows.Forms.Button settings_cancel; - private System.Windows.Forms.Button settings_okay; + private GreenshotPlugin.Controls.GreenshotButton settings_cancel; + private GreenshotPlugin.Controls.GreenshotButton settings_okay; private System.Windows.Forms.TextBox textbox_storagelocation; - private System.Windows.Forms.Label label_storagelocation; - private System.Windows.Forms.TabPage tab_destinations; + private GreenshotPlugin.Controls.GreenshotLabel label_storagelocation; + 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; } } diff --git a/Greenshot/Forms/SettingsForm.cs b/Greenshot/Forms/SettingsForm.cs index 5b48b41bb..7e05c7175 100644 --- a/Greenshot/Forms/SettingsForm.cs +++ b/Greenshot/Forms/SettingsForm.cs @@ -33,36 +33,40 @@ using GreenshotPlugin.UnmanagedHelpers; using Greenshot.Plugin; using Greenshot.IniFile; using System.Text.RegularExpressions; +using Greenshot.Controls; namespace Greenshot { /// /// Description of SettingsForm. /// - public partial class SettingsForm : Form { + public partial class SettingsForm : GreenshotForm { private static log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(SettingsForm)); private static CoreConfiguration coreConfiguration = IniConfig.GetIniSection(); private static EditorConfiguration editorConfiguration = IniConfig.GetIniSection(); - private ILanguage lang; - private ToolTip toolTip; + private ToolTip toolTip = new ToolTip(); - public SettingsForm() { + public SettingsForm() : base() { + // language is in the base class + language = Language.GetInstance(); + // Force re-loading of languages + language.Load(); InitializeComponent(); + } + + protected override void OnLoad(EventArgs e) { + base.OnLoad(e); this.Icon = GreenshotPlugin.Core.GreenshotResources.getGreenshotIcon(); // Fix for Vista/XP differences - if(Environment.OSVersion.Version.Major >= 6) { + if (Environment.OSVersion.Version.Major >= 6) { this.trackBarJpegQuality.BackColor = System.Drawing.SystemColors.Window; } else { this.trackBarJpegQuality.BackColor = System.Drawing.SystemColors.Control; } - lang = Language.GetInstance(); - // Force re-loading of languages - lang.Load(); - toolTip = new ToolTip(); - AddPluginTab(); - this.combobox_primaryimageformat.Items.AddRange(new object[]{OutputFormat.bmp, OutputFormat.gif, OutputFormat.jpg, OutputFormat.png, OutputFormat.tiff}); + DisplayPluginTab(); + this.combobox_primaryimageformat.Items.AddRange(new object[] { OutputFormat.bmp, OutputFormat.gif, OutputFormat.jpg, OutputFormat.png, OutputFormat.tiff }); UpdateUI(); DisplaySettings(); CheckSettings(); @@ -89,10 +93,10 @@ namespace Greenshot { comboBox.Items.Clear(); string enumTypeName = typeof(ET).Name; foreach(ET enumValue in availableValues) { - string translation = lang.GetString(enumTypeName + "." + enumValue.ToString()); + string translation = language.GetString(enumTypeName + "." + enumValue.ToString()); comboBox.Items.Add(translation); } - comboBox.SelectedItem = lang.GetString(enumTypeName + "." + selectedValue.ToString()); + comboBox.SelectedItem = language.GetString(enumTypeName + "." + selectedValue.ToString()); } @@ -107,7 +111,7 @@ namespace Greenshot { ET[] availableValues = (ET[])Enum.GetValues(typeof(ET)); ET returnValue = availableValues[0]; foreach(ET enumValue in availableValues) { - string translation = lang.GetString(enumTypeName + "." + enumValue.ToString()); + string translation = language.GetString(enumTypeName + "." + enumValue.ToString()); if (translation.Equals(selectedValue)) { returnValue = enumValue; break; @@ -130,9 +134,10 @@ namespace Greenshot { PopulateComboBox(combobox_window_capture_mode, availableModes, selectedWindowCaptureMode); } - private void AddPluginTab() { - if (PluginHelper.instance.HasPlugins()) { - this.tabcontrol.TabPages.Add(tab_plugins); + private void DisplayPluginTab() { + if (!PluginHelper.instance.HasPlugins()) { + this.tabcontrol.TabPages.Remove(tab_plugins); + } else { // Draw the Plugin listview listview_plugins.BeginUpdate(); listview_plugins.Items.Clear(); @@ -158,75 +163,15 @@ namespace Greenshot { button_pluginconfigure.Enabled = false; } } + + /// + /// Update the UI to reflect the language and other text settings + /// private void UpdateUI() { - this.Text = lang.GetString(LangKey.settings_title); - - this.tab_general.Text = lang.GetString(LangKey.settings_general); - this.tab_output.Text = lang.GetString(LangKey.settings_output); - this.tab_printer.Text = lang.GetString(LangKey.settings_printer); - this.tab_capture.Text = lang.GetString(LangKey.settings_capture); - this.tab_plugins.Text = lang.GetString(LangKey.settings_plugins); - - this.groupbox_network.Text = lang.GetString(LangKey.settings_network); - this.label_checkperiod.Text = lang.GetString(LangKey.settings_checkperiod); - this.checkbox_usedefaultproxy.Text = lang.GetString(LangKey.settings_usedefaultproxy); - - this.groupbox_iecapture.Text = lang.GetString(LangKey.settings_iecapture); - this.checkbox_ie_capture.Text = lang.GetString(LangKey.settings_iecapture); - - this.groupbox_editor.Text = lang.GetString(LangKey.settings_editor); - this.checkbox_editor_match_capture_size.Text = lang.GetString(LangKey.editor_match_capture_size); - - this.groupbox_windowscapture.Text = lang.GetString(LangKey.settings_windowscapture); - this.label_window_capture_mode.Text = lang.GetString(LangKey.settings_window_capture_mode); - - this.groupbox_capture.Text = lang.GetString(LangKey.settings_capture); - this.checkbox_capture_mousepointer.Text = lang.GetString(LangKey.settings_capture_mousepointer); - this.checkbox_capture_windows_interactive.Text = lang.GetString(LangKey.settings_capture_windows_interactive); - this.label_waittime.Text = lang.GetString(LangKey.settings_waittime); - - this.groupbox_applicationsettings.Text = lang.GetString(LangKey.settings_applicationsettings); - this.label_language.Text = lang.GetString(LangKey.settings_language); - toolTip.SetToolTip(label_language, lang.GetString(LangKey.settings_tooltip_language)); - - this.checkbox_autostartshortcut.Text = lang.GetString(LangKey.settings_autostartshortcut); - - this.groupbox_destination.Text = lang.GetString(LangKey.settings_destination); - this.tab_destinations.Text = lang.GetString(LangKey.settings_destination); - - this.groupbox_preferredfilesettings.Text = lang.GetString(LangKey.settings_preferredfilesettings); - - this.label_storagelocation.Text = lang.GetString(LangKey.settings_storagelocation); - toolTip.SetToolTip(label_storagelocation, lang.GetString(LangKey.settings_tooltip_storagelocation)); - - this.label_screenshotname.Text = lang.GetString(LangKey.settings_filenamepattern); - toolTip.SetToolTip(label_screenshotname, lang.GetString(LangKey.settings_tooltip_filenamepattern)); - - this.label_primaryimageformat.Text = lang.GetString(LangKey.settings_primaryimageformat); - this.checkbox_copypathtoclipboard.Text = lang.GetString(LangKey.settings_copypathtoclipboard); - toolTip.SetToolTip(label_primaryimageformat, lang.GetString(LangKey.settings_tooltip_primaryimageformat)); - - this.groupbox_jpegsettings.Text = lang.GetString(LangKey.settings_jpegsettings); - this.label_jpegquality.Text = lang.GetString(LangKey.settings_jpegquality); - this.checkbox_alwaysshowjpegqualitydialog.Text = lang.GetString(LangKey.settings_alwaysshowjpegqualitydialog); - - this.checkbox_playsound.Text = lang.GetString(LangKey.settings_playsound); - - this.groupbox_printoptions.Text = lang.GetString(LangKey.settings_printoptions); - this.checkboxAllowCenter.Text = lang.GetString(LangKey.printoptions_allowcenter); - this.checkboxAllowEnlarge.Text = lang.GetString(LangKey.printoptions_allowenlarge); - this.checkboxAllowRotate.Text = lang.GetString(LangKey.printoptions_allowrotate); - this.checkboxAllowShrink.Text = lang.GetString(LangKey.printoptions_allowshrink); - this.checkboxTimestamp.Text = lang.GetString(LangKey.printoptions_timestamp); - this.checkboxPrintInverted.Text = lang.GetString(LangKey.printoptions_inverted); - this.checkbox_alwaysshowprintoptionsdialog.Text = lang.GetString(LangKey.settings_alwaysshowprintoptionsdialog); - - this.groupbox_hotkeys.Text = lang.GetString(LangKey.hotkeys); - this.label_fullscreen_hotkey.Text = lang.GetString(LangKey.contextmenu_capturefullscreen); - this.label_ie_hotkey.Text = lang.GetString(LangKey.contextmenu_captureie); - this.label_lastregion_hotkey.Text = lang.GetString(LangKey.contextmenu_capturelastregion); - this.label_region_hotkey.Text = lang.GetString(LangKey.contextmenu_capturearea); - this.label_window_hotkey.Text = lang.GetString(LangKey.contextmenu_capturewindow); + toolTip.SetToolTip(label_language, language.GetString(LangKey.settings_tooltip_language)); + toolTip.SetToolTip(label_storagelocation, language.GetString(LangKey.settings_tooltip_storagelocation)); + toolTip.SetToolTip(label_screenshotname, language.GetString(LangKey.settings_tooltip_filenamepattern)); + toolTip.SetToolTip(label_primaryimageformat, language.GetString(LangKey.settings_tooltip_primaryimageformat)); // Removing, otherwise we keep getting the event multiple times! this.combobox_language.SelectedIndexChanged -= new System.EventHandler(this.Combobox_languageSelectedIndexChanged); @@ -234,16 +179,16 @@ namespace Greenshot { // Initialize the Language ComboBox this.combobox_language.DisplayMember = "Description"; this.combobox_language.ValueMember = "Ietf"; - if (lang.CurrentLanguage != null) { - this.combobox_language.SelectedValue = lang.CurrentLanguage; + if (language.CurrentLanguage != null) { + this.combobox_language.SelectedValue = language.CurrentLanguage; } // Set datasource last to prevent problems // See: http://www.codeproject.com/KB/database/scomlistcontrolbinding.aspx?fid=111644 - this.combobox_language.DataSource = lang.SupportedLanguages; + this.combobox_language.DataSource = language.SupportedLanguages; // Delaying the SelectedIndexChanged events untill all is initiated this.combobox_language.SelectedIndexChanged += new System.EventHandler(this.Combobox_languageSelectedIndexChanged); - UpdateDestinations(); + UpdateDestinationDescriptions(); } // Check the settings and somehow visibly mark when something is incorrect @@ -258,13 +203,19 @@ namespace Greenshot { return settingsOk; } - private void UpdateDestinations() { + /// + /// Show all destination descriptions in the current language + /// + private void UpdateDestinationDescriptions() { foreach (ListViewItem item in destinationsListView.Items) { IDestination destination = item.Tag as IDestination; item.Text = destination.Description; } } + /// + /// Build the view with all the destinations + /// private void DisplayDestinations() { checkbox_picker.Checked = false; @@ -303,50 +254,21 @@ namespace Greenshot { } private void DisplaySettings() { - region_hotkeyControl.SetHotkey(coreConfiguration.RegionHotkey); - fullscreen_hotkeyControl.SetHotkey(coreConfiguration.FullscreenHotkey); - window_hotkeyControl.SetHotkey(coreConfiguration.WindowHotkey); - lastregion_hotkeyControl.SetHotkey(coreConfiguration.LastregionHotkey); - ie_hotkeyControl.SetHotkey(coreConfiguration.IEHotkey); colorButton_window_background.SelectedColor = coreConfiguration.DWMBackgroundColor; - checkbox_ie_capture.Checked = coreConfiguration.IECapture; - if (lang.CurrentLanguage != null) { - combobox_language.SelectedValue = lang.CurrentLanguage; + if (language.CurrentLanguage != null) { + combobox_language.SelectedValue = language.CurrentLanguage; } textbox_storagelocation.Text = FilenameHelper.FillVariables(coreConfiguration.OutputFilePath, false); - textbox_screenshotname.Text = coreConfiguration.OutputFileFilenamePattern; combobox_primaryimageformat.SelectedItem = coreConfiguration.OutputFileFormat; SetWindowCaptureMode(coreConfiguration.WindowCaptureMode); - checkbox_copypathtoclipboard.Checked = coreConfiguration.OutputFileCopyPathToClipboard; trackBarJpegQuality.Value = coreConfiguration.OutputFileJpegQuality; textBoxJpegQuality.Text = coreConfiguration.OutputFileJpegQuality+"%"; - checkbox_alwaysshowjpegqualitydialog.Checked = coreConfiguration.OutputFilePromptQuality; - checkbox_playsound.Checked = coreConfiguration.PlayCameraSound; DisplayDestinations(); -// checkbox_clipboard.Checked = coreConfiguration.OutputDestinations.Contains("Clipboard"); -// checkbox_file.Checked = coreConfiguration.OutputDestinations.Contains("File"); -// checkbox_fileas.Checked = coreConfiguration.OutputDestinations.Contains("FileWithDialog"); -// checkbox_printer.Checked = coreConfiguration.OutputDestinations.Contains("Printer"); -// checkbox_editor.Checked = coreConfiguration.OutputDestinations.Contains("Editor"); -// checkbox_email.Checked = coreConfiguration.OutputDestinations.Contains("EMail"); - - checkboxPrintInverted.Checked = coreConfiguration.OutputPrintInverted; - checkboxAllowCenter.Checked = coreConfiguration.OutputPrintCenter; - checkboxAllowEnlarge.Checked = coreConfiguration.OutputPrintAllowEnlarge; - checkboxAllowRotate.Checked = coreConfiguration.OutputPrintAllowRotate; - checkboxAllowShrink.Checked = coreConfiguration.OutputPrintAllowShrink; - checkboxTimestamp.Checked = coreConfiguration.OutputPrintFooter; - checkbox_alwaysshowprintoptionsdialog.Checked = coreConfiguration.OutputPrintPromptOptions; - checkbox_capture_mousepointer.Checked = coreConfiguration.CaptureMousepointer; - checkbox_capture_windows_interactive.Checked = coreConfiguration.CaptureWindowsInteractive; - - checkbox_editor_match_capture_size.Checked = editorConfiguration.MatchSizeToCapture; - numericUpDownWaitTime.Value = coreConfiguration.CaptureDelay >=0?coreConfiguration.CaptureDelay:0; // If the run for all is set we disable and set the checkbox @@ -359,7 +281,6 @@ namespace Greenshot { checkbox_autostartshortcut.Checked = StartupHelper.checkRunUser(); } - checkbox_usedefaultproxy.Checked = coreConfiguration.UseProxy; numericUpDown_daysbetweencheck.Value = coreConfiguration.UpdateCheckInterval; CheckDestinationSettings(); } @@ -373,7 +294,6 @@ namespace Greenshot { } coreConfiguration.WindowCaptureMode = GetSelected(combobox_window_capture_mode); - coreConfiguration.OutputFileFilenamePattern = textbox_screenshotname.Text; if (!FilenameHelper.FillVariables(coreConfiguration.OutputFilePath, false).Equals(textbox_storagelocation.Text)) { coreConfiguration.OutputFilePath = textbox_storagelocation.Text; } @@ -383,10 +303,7 @@ namespace Greenshot { coreConfiguration.OutputFileFormat = OutputFormat.png; } - coreConfiguration.OutputFileCopyPathToClipboard = checkbox_copypathtoclipboard.Checked; coreConfiguration.OutputFileJpegQuality = trackBarJpegQuality.Value; - coreConfiguration.OutputFilePromptQuality = checkbox_alwaysshowjpegqualitydialog.Checked; - coreConfiguration.PlayCameraSound = checkbox_playsound.Checked; List destinations = new List(); if (checkbox_picker.Checked) { @@ -401,31 +318,9 @@ namespace Greenshot { } } coreConfiguration.OutputDestinations = destinations; - - coreConfiguration.OutputPrintInverted = checkboxPrintInverted.Checked; - coreConfiguration.OutputPrintCenter = checkboxAllowCenter.Checked; - coreConfiguration.OutputPrintAllowEnlarge = checkboxAllowEnlarge.Checked; - coreConfiguration.OutputPrintAllowRotate = checkboxAllowRotate.Checked; - coreConfiguration.OutputPrintAllowShrink = checkboxAllowShrink.Checked; - coreConfiguration.OutputPrintFooter = checkboxTimestamp.Checked; - coreConfiguration.OutputPrintPromptOptions = checkbox_alwaysshowprintoptionsdialog.Checked; - coreConfiguration.CaptureMousepointer = checkbox_capture_mousepointer.Checked; - coreConfiguration.CaptureWindowsInteractive = checkbox_capture_windows_interactive.Checked; coreConfiguration.CaptureDelay = (int)numericUpDownWaitTime.Value; coreConfiguration.DWMBackgroundColor = colorButton_window_background.SelectedColor; - - coreConfiguration.RegionHotkey = region_hotkeyControl.ToString(); - coreConfiguration.FullscreenHotkey = fullscreen_hotkeyControl.ToString(); - coreConfiguration.WindowHotkey = window_hotkeyControl.ToString(); - coreConfiguration.LastregionHotkey = lastregion_hotkeyControl.ToString(); - coreConfiguration.IEHotkey = ie_hotkeyControl.ToString(); - - coreConfiguration.IECapture = checkbox_ie_capture.Checked; - coreConfiguration.UpdateCheckInterval = (int)numericUpDown_daysbetweencheck.Value; - coreConfiguration.UseProxy = checkbox_usedefaultproxy.Checked; - - editorConfiguration.MatchSizeToCapture = checkbox_editor_match_capture_size.Checked; IniConfig.Save(); @@ -452,7 +347,7 @@ namespace Greenshot { void Settings_cancelClick(object sender, System.EventArgs e) { DialogResult = DialogResult.Cancel; - lang.FreeResources(); + language.FreeResources(); } void Settings_okayClick(object sender, System.EventArgs e) { @@ -462,7 +357,7 @@ namespace Greenshot { } else { this.tabcontrol.SelectTab(this.tab_output); } - lang.FreeResources(); + language.FreeResources(); } void BrowseClick(object sender, System.EventArgs e) { @@ -483,10 +378,10 @@ namespace Greenshot { void BtnPatternHelpClick(object sender, EventArgs e) { - string filenamepatternText = lang.GetString(LangKey.settings_message_filenamepattern); + string filenamepatternText = language.GetString(LangKey.settings_message_filenamepattern); // Convert %NUM% to ${NUM} for old language files! filenamepatternText = Regex.Replace(filenamepatternText, "%([a-zA-Z_0-9]+)%", @"${$1}"); - MessageBox.Show(filenamepatternText, lang.GetString(LangKey.settings_filenamepattern)); + MessageBox.Show(filenamepatternText, language.GetString(LangKey.settings_filenamepattern)); } void Listview_pluginsSelectedIndexChanged(object sender, EventArgs e) { @@ -507,7 +402,10 @@ namespace Greenshot { } // Reflect language changes to the settings form UpdateUI(); - + + // Reflect Language changes form + ApplyLanguage(); + // Update the email & windows capture mode //SetEmailFormat(selectedEmailFormat); SetWindowCaptureMode(selectedWindowCaptureMode); diff --git a/GreenshotPlugin/Controls/GreenshotButton.cs b/GreenshotPlugin/Controls/GreenshotButton.cs new file mode 100644 index 000000000..c015fe404 --- /dev/null +++ b/GreenshotPlugin/Controls/GreenshotButton.cs @@ -0,0 +1,33 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2012 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: http://getgreenshot.org/ + * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/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 . + */ +using System; +using System.ComponentModel; +using System.Windows.Forms; + +namespace GreenshotPlugin.Controls { + public class GreenshotButton : Button, IGreenshotLanguageBindable { + [Category("Greenshot"), Description("Specifies key of the language file to use when displaying the text.")] + public string LanguageKey { + get; + set; + } + } +} diff --git a/GreenshotPlugin/Controls/GreenshotCheckBox.cs b/GreenshotPlugin/Controls/GreenshotCheckBox.cs new file mode 100644 index 000000000..0acfc9f47 --- /dev/null +++ b/GreenshotPlugin/Controls/GreenshotCheckBox.cs @@ -0,0 +1,53 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2012 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: http://getgreenshot.org/ + * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/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 . + */ +using System; +using System.ComponentModel; +using System.Windows.Forms; + +namespace GreenshotPlugin.Controls { + /// + /// Description of GreenshotCheckbox. + /// + public class GreenshotCheckBox : CheckBox, IGreenshotLanguageBindable, IGreenshotConfigBindable { + [Category("Greenshot"), Description("Specifies key of the language file to use when displaying the text.")] + public string LanguageKey { + get; + set; + } + + private string sectionName = "Core"; + [Category("Greenshot"), DefaultValue("Core"), Description("Specifies the Ini-Section to map this control with.")] + public string SectionName { + get { + return sectionName; + } + set { + sectionName = value; + } + } + + [Category("Greenshot"), Description("Specifies the property name to map the configuration.")] + public string PropertyName { + get; + set; + } + } +} \ No newline at end of file diff --git a/GreenshotPlugin/Controls/GreenshotForm.cs b/GreenshotPlugin/Controls/GreenshotForm.cs new file mode 100644 index 000000000..294687146 --- /dev/null +++ b/GreenshotPlugin/Controls/GreenshotForm.cs @@ -0,0 +1,140 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; +using System.Reflection; +using GreenshotPlugin.Core; +using Greenshot.IniFile; +using System.ComponentModel; + +namespace GreenshotPlugin.Controls { + public class GreenshotForm : Form , IGreenshotLanguageBindable { + private static log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(GreenshotForm)); + protected ILanguage language; + + [Category("Greenshot"), Description("Specifies key of the language file to use when displaying the text.")] + public string LanguageKey { + get; + set; + } + + public GreenshotForm() : base() { + } + + protected override void OnLoad(EventArgs e) { + if (!this.DesignMode) { + ApplyLanguage(); + FillFields(); + } + base.OnLoad(e); + } + + /// + /// check if the form was closed with an OK, if so store the values in the GreenshotControls + /// + /// + protected override void OnClosed(EventArgs e) { + if (DialogResult == DialogResult.OK) { + LOG.Info("Form was closed with OK: storing field values."); + StoreFields(); + } + base.OnClosed(e); + } + + /// + /// Apply all the language settings to the "Greenshot" Controls on this form + /// + protected void ApplyLanguage() { + if (language == null) { + throw new ArgumentNullException("Language not set!!"); + } + // Set title of the form + if (!string.IsNullOrEmpty(LanguageKey)) { + this.Text = language.GetString(LanguageKey); + } + + foreach (FieldInfo field in this.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)) { + if (!field.FieldType.IsSubclassOf(typeof(Control))) { + continue; + } + Object controlObject = field.GetValue(this); + if (typeof(IGreenshotLanguageBindable).IsAssignableFrom(field.FieldType)) { + IGreenshotLanguageBindable languageBindable = controlObject as IGreenshotLanguageBindable; + if (!string.IsNullOrEmpty(languageBindable.LanguageKey)) { + Control control = controlObject as Control; + control.Text = language.GetString(languageBindable.LanguageKey); + } else { + LOG.WarnFormat("Greenshot control without language key: {0}", field.Name); + } + } + } + + } + + /// + /// Fill all GreenshotControls with the values from the configuration + /// + protected void FillFields() { + foreach (FieldInfo field in this.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)) { + if (!field.FieldType.IsSubclassOf(typeof(Control))) { + continue; + } + Object controlObject = field.GetValue(this); + if (typeof(IGreenshotConfigBindable).IsAssignableFrom(field.FieldType)) { + IGreenshotConfigBindable configBindable = controlObject as IGreenshotConfigBindable; + if (!string.IsNullOrEmpty(configBindable.SectionName) && !string.IsNullOrEmpty(configBindable.PropertyName)) { + IniSection section = IniConfig.GetIniSection(configBindable.SectionName); + if (section != null) { + if (typeof(CheckBox).IsAssignableFrom(field.FieldType)) { + CheckBox checkBox = controlObject as CheckBox; + checkBox.Checked = (bool)section.Values[configBindable.PropertyName].Value; + } else if (typeof(TextBox).IsAssignableFrom(field.FieldType)) { + TextBox textBox = controlObject as TextBox; + textBox.Text = (string)section.Values[configBindable.PropertyName].Value; + } + } + } + } + } + } + + /// + /// Store all GreenshotControl values to the configuration + /// + protected void StoreFields() { + foreach (FieldInfo field in this.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)) { + if (!field.FieldType.IsSubclassOf(typeof(Control))) { + continue; + } + if (!typeof(IGreenshotConfigBindable).IsAssignableFrom(field.FieldType)) { + continue; + } + Object controlObject = field.GetValue(this); + IGreenshotConfigBindable configBindable = controlObject as IGreenshotConfigBindable; + bool iniDirty = false; + + if (!string.IsNullOrEmpty(configBindable.SectionName) && !string.IsNullOrEmpty(configBindable.PropertyName)) { + IniSection section = IniConfig.GetIniSection(configBindable.SectionName); + if (section != null) { + if (typeof(CheckBox).IsAssignableFrom(field.FieldType)) { + CheckBox checkBox = controlObject as CheckBox; + section.Values[configBindable.PropertyName].Value = checkBox.Checked; + iniDirty = true; + } else if (typeof(HotkeyControl).IsAssignableFrom(field.FieldType)) { + HotkeyControl hotkeyControl = controlObject as HotkeyControl; + section.Values[configBindable.PropertyName].Value = hotkeyControl.ToString(); + iniDirty = true; + } else if (typeof(TextBox).IsAssignableFrom(field.FieldType)) { + TextBox textBox = controlObject as TextBox; + section.Values[configBindable.PropertyName].Value = textBox.Text; + iniDirty = true; + } + } + } + if (iniDirty) { + IniConfig.Save(); + } + } + } + } +} diff --git a/GreenshotPlugin/Controls/GreenshotGroupBox.cs b/GreenshotPlugin/Controls/GreenshotGroupBox.cs new file mode 100644 index 000000000..a92b5abc6 --- /dev/null +++ b/GreenshotPlugin/Controls/GreenshotGroupBox.cs @@ -0,0 +1,33 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2012 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: http://getgreenshot.org/ + * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/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 . + */ +using System; +using System.Windows.Forms; +using System.ComponentModel; + +namespace GreenshotPlugin.Controls { + public class GreenshotGroupBox : GroupBox , IGreenshotLanguageBindable { + [Category("Greenshot"), Description("Specifies key of the language file to use when displaying the text.")] + public string LanguageKey { + get; + set; + } + } +} diff --git a/GreenshotPlugin/Controls/GreenshotLabel.cs b/GreenshotPlugin/Controls/GreenshotLabel.cs new file mode 100644 index 000000000..09e9b81ec --- /dev/null +++ b/GreenshotPlugin/Controls/GreenshotLabel.cs @@ -0,0 +1,33 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2012 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: http://getgreenshot.org/ + * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/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 . + */ +using System; +using System.Windows.Forms; +using System.ComponentModel; + +namespace GreenshotPlugin.Controls { + public class GreenshotLabel : Label, IGreenshotLanguageBindable { + [Category("Greenshot"), Description("Specifies key of the language file to use when displaying the text.")] + public string LanguageKey { + get; + set; + } + } +} diff --git a/GreenshotPlugin/Controls/GreenshotTabPage.cs b/GreenshotPlugin/Controls/GreenshotTabPage.cs new file mode 100644 index 000000000..ceca4db06 --- /dev/null +++ b/GreenshotPlugin/Controls/GreenshotTabPage.cs @@ -0,0 +1,33 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2012 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: http://getgreenshot.org/ + * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/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 . + */ +using System; +using System.Windows.Forms; +using System.ComponentModel; + +namespace GreenshotPlugin.Controls { + public class GreenshotTabPage : TabPage, IGreenshotLanguageBindable { + [Category("Greenshot"), Description("Specifies key of the language file to use when displaying the text.")] + public string LanguageKey { + get; + set; + } + } +} diff --git a/GreenshotPlugin/Controls/GreenshotTextBox.cs b/GreenshotPlugin/Controls/GreenshotTextBox.cs new file mode 100644 index 000000000..93a0734fc --- /dev/null +++ b/GreenshotPlugin/Controls/GreenshotTextBox.cs @@ -0,0 +1,44 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2012 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: http://getgreenshot.org/ + * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/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 . + */ +using System; +using System.ComponentModel; +using System.Windows.Forms; + +namespace GreenshotPlugin.Controls { + public class GreenshotTextBox : TextBox, IGreenshotConfigBindable { + private string sectionName = "Core"; + [Category("Greenshot"), DefaultValue("Core"), Description("Specifies the Ini-Section to map this control with.")] + public string SectionName { + get { + return sectionName; + } + set { + sectionName = value; + } + } + + [Category("Greenshot"), Description("Specifies the property name to map the configuration.")] + public string PropertyName { + get; + set; + } + } +} diff --git a/GreenshotPlugin/Controls/HotkeyControl.cs b/GreenshotPlugin/Controls/HotkeyControl.cs index 1404c1fad..35d241221 100644 --- a/GreenshotPlugin/Controls/HotkeyControl.cs +++ b/GreenshotPlugin/Controls/HotkeyControl.cs @@ -33,7 +33,7 @@ namespace GreenshotPlugin.Controls { /// See: http://www.codeproject.com/KB/buttons/hotkeycontrol.aspx /// But is modified to fit in Greenshot, and have localized support /// - public class HotkeyControl : TextBox { + public class HotkeyControl : GreenshotTextBox { private static log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(HotkeyControl)); // Holds the list of hotkeys diff --git a/GreenshotPlugin/Controls/IGreenshotConfigBindable.cs b/GreenshotPlugin/Controls/IGreenshotConfigBindable.cs new file mode 100644 index 000000000..19eb7c248 --- /dev/null +++ b/GreenshotPlugin/Controls/IGreenshotConfigBindable.cs @@ -0,0 +1,41 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2012 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: http://getgreenshot.org/ + * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/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 . + */ +using System; + +namespace GreenshotPlugin.Controls { + public interface IGreenshotConfigBindable { + /// + /// The class where the property-value is stored + /// + string SectionName { + get; + set; + } + + /// + /// Path to the property value which will be mapped with this control + /// + string PropertyName { + get; + set; + } + } +} diff --git a/GreenshotPlugin/Controls/IGreenshotLanguageBindable.cs b/GreenshotPlugin/Controls/IGreenshotLanguageBindable.cs new file mode 100644 index 000000000..5d3c6bf39 --- /dev/null +++ b/GreenshotPlugin/Controls/IGreenshotLanguageBindable.cs @@ -0,0 +1,37 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2012 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: http://getgreenshot.org/ + * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/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 . + */ +using System; + +namespace GreenshotPlugin.Controls { + /// + /// This interface describes the designer fields that need to be implemented for Greenshot controls + /// + public interface IGreenshotLanguageBindable { + /// + /// Language key to use to fill the Text value with + /// + string LanguageKey { + get; + set; + } + + } +} diff --git a/GreenshotPlugin/GreenshotPlugin.csproj b/GreenshotPlugin/GreenshotPlugin.csproj index 69362033b..b6996afcf 100644 --- a/GreenshotPlugin/GreenshotPlugin.csproj +++ b/GreenshotPlugin/GreenshotPlugin.csproj @@ -175,11 +175,20 @@ Interop\WordInterop.cs + + + + + + + BackgroundForm.cs + +