diff --git a/GreenshotPhotobucketPlugin/Forms/PhotobucketForm.cs b/GreenshotPhotobucketPlugin/Forms/PhotobucketForm.cs
new file mode 100644
index 000000000..5a2d509bc
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Forms/PhotobucketForm.cs
@@ -0,0 +1,31 @@
+/*
+ * 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 GreenshotPhotobucketPlugin {
+ ///
+ /// This class is needed for design-time resolving of the language files
+ ///
+ public class PhotobucketForm : GreenshotPlugin.Controls.GreenshotForm {
+ public PhotobucketForm() : base() {
+ }
+ }
+}
diff --git a/GreenshotPhotobucketPlugin/Forms/SettingsForm.Designer.cs b/GreenshotPhotobucketPlugin/Forms/SettingsForm.Designer.cs
new file mode 100644
index 000000000..fb1b23364
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Forms/SettingsForm.Designer.cs
@@ -0,0 +1,158 @@
+/*
+ * 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 .
+ */
+namespace GreenshotPhotobucketPlugin {
+ partial class SettingsForm {
+ ///
+ /// Designer variable used to keep track of non-visual components.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Disposes resources used by the form.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing) {
+ if (components != null) {
+ components.Dispose();
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ ///
+ /// This method is required for Windows Forms designer support.
+ /// Do not change the method contents inside the source code editor. The Forms designer might
+ /// not be able to load this method if it was changed manually.
+ ///
+ private void InitializeComponent()
+ {
+ this.buttonOK = new GreenshotPlugin.Controls.GreenshotButton();
+ this.buttonCancel = new GreenshotPlugin.Controls.GreenshotButton();
+ this.label_url = new GreenshotPlugin.Controls.GreenshotLabel();
+ this.textBoxUrl = new GreenshotPlugin.Controls.GreenshotTextBox();
+ this.combobox_uploadimageformat = new GreenshotPlugin.Controls.GreenshotComboBox();
+ this.label_upload_format = new GreenshotPlugin.Controls.GreenshotLabel();
+ this.checkbox_usepagelink = new GreenshotPlugin.Controls.GreenshotCheckBox();
+ this.SuspendLayout();
+ //
+ // buttonOK
+ //
+ this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonOK.LanguageKey = "photobucket.OK";
+ this.buttonOK.Location = new System.Drawing.Point(222, 129);
+ this.buttonOK.Name = "buttonOK";
+ this.buttonOK.Size = new System.Drawing.Size(75, 23);
+ this.buttonOK.TabIndex = 2;
+ this.buttonOK.UseVisualStyleBackColor = true;
+ this.buttonOK.Click += new System.EventHandler(this.ButtonOKClick);
+ //
+ // buttonCancel
+ //
+ this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonCancel.LanguageKey = "photobucket.CANCEL";
+ this.buttonCancel.Location = new System.Drawing.Point(303, 129);
+ this.buttonCancel.Name = "buttonCancel";
+ this.buttonCancel.Size = new System.Drawing.Size(75, 23);
+ this.buttonCancel.TabIndex = 3;
+ this.buttonCancel.UseVisualStyleBackColor = true;
+ this.buttonCancel.Click += new System.EventHandler(this.ButtonCancelClick);
+ //
+ // label_url
+ //
+ this.label_url.LanguageKey = "photobucket.label_url";
+ this.label_url.Location = new System.Drawing.Point(12, 21);
+ this.label_url.Name = "label_url";
+ this.label_url.Size = new System.Drawing.Size(84, 20);
+ this.label_url.TabIndex = 7;
+ //
+ // textBoxUrl
+ //
+ this.textBoxUrl.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.textBoxUrl.Location = new System.Drawing.Point(102, 21);
+ this.textBoxUrl.Name = "textBoxUrl";
+ this.textBoxUrl.PropertyName = "PhotobucketApiUrl";
+ this.textBoxUrl.SectionName = "Photobucket";
+ this.textBoxUrl.Size = new System.Drawing.Size(276, 20);
+ this.textBoxUrl.TabIndex = 6;
+ //
+ // combobox_uploadimageformat
+ //
+ this.combobox_uploadimageformat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.combobox_uploadimageformat.FormattingEnabled = true;
+ this.combobox_uploadimageformat.Location = new System.Drawing.Point(102, 47);
+ this.combobox_uploadimageformat.Name = "combobox_uploadimageformat";
+ this.combobox_uploadimageformat.PropertyName = "UploadFormat";
+ this.combobox_uploadimageformat.SectionName = "Photobucket";
+ this.combobox_uploadimageformat.Size = new System.Drawing.Size(276, 21);
+ this.combobox_uploadimageformat.TabIndex = 8;
+ //
+ // label_upload_format
+ //
+ this.label_upload_format.LanguageKey = "photobucket.label_upload_format";
+ this.label_upload_format.Location = new System.Drawing.Point(12, 50);
+ this.label_upload_format.Name = "label_upload_format";
+ this.label_upload_format.Size = new System.Drawing.Size(84, 20);
+ this.label_upload_format.TabIndex = 9;
+ //
+ // checkbox_usepagelink
+ //
+ this.checkbox_usepagelink.AutoSize = true;
+ this.checkbox_usepagelink.LanguageKey = "photobucket.use_page_link";
+ this.checkbox_usepagelink.Location = new System.Drawing.Point(15, 97);
+ this.checkbox_usepagelink.Name = "checkbox_usepagelink";
+ this.checkbox_usepagelink.PropertyName = "UsePageLink";
+ this.checkbox_usepagelink.SectionName = "Photobucket";
+ this.checkbox_usepagelink.Size = new System.Drawing.Size(297, 17);
+ this.checkbox_usepagelink.TabIndex = 13;
+ this.checkbox_usepagelink.UseVisualStyleBackColor = true;
+ //
+ // SettingsForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+ this.ClientSize = new System.Drawing.Size(387, 168);
+ this.Controls.Add(this.checkbox_usepagelink);
+ this.Controls.Add(this.label_upload_format);
+ this.Controls.Add(this.combobox_uploadimageformat);
+ this.Controls.Add(this.label_url);
+ this.Controls.Add(this.textBoxUrl);
+ this.Controls.Add(this.buttonCancel);
+ this.Controls.Add(this.buttonOK);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.LanguageKey = "photobucket.settings_title";
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "SettingsForm";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+ private GreenshotPlugin.Controls.GreenshotComboBox combobox_uploadimageformat;
+ private GreenshotPlugin.Controls.GreenshotLabel label_upload_format;
+ private GreenshotPlugin.Controls.GreenshotTextBox textBoxUrl;
+ private GreenshotPlugin.Controls.GreenshotLabel label_url;
+ private GreenshotPlugin.Controls.GreenshotButton buttonCancel;
+ private GreenshotPlugin.Controls.GreenshotButton buttonOK;
+ private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_usepagelink;
+ }
+}
diff --git a/GreenshotPhotobucketPlugin/Forms/SettingsForm.cs b/GreenshotPhotobucketPlugin/Forms/SettingsForm.cs
new file mode 100644
index 000000000..8c04847f5
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Forms/SettingsForm.cs
@@ -0,0 +1,47 @@
+/*
+ * 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 GreenshotPlugin.Core;
+using GreenshotPlugin.Controls;
+
+namespace GreenshotPhotobucketPlugin {
+ ///
+ /// Description of PasswordRequestForm.
+ ///
+ public partial class SettingsForm : PhotobucketForm {
+ public SettingsForm(PhotobucketConfiguration config) : base() {
+ //
+ // The InitializeComponent() call is required for Windows Forms designer support.
+ //
+ InitializeComponent();
+ this.Icon = GreenshotPlugin.Core.GreenshotResources.getGreenshotIcon();
+ }
+
+ void ButtonOKClick(object sender, EventArgs e) {
+ this.DialogResult = DialogResult.OK;
+ }
+
+ void ButtonCancelClick(object sender, System.EventArgs e) {
+ this.DialogResult = DialogResult.Cancel;
+ }
+ }
+}
diff --git a/GreenshotPhotobucketPlugin/GreenshotPhotobucketPlugin.csproj b/GreenshotPhotobucketPlugin/GreenshotPhotobucketPlugin.csproj
new file mode 100644
index 000000000..9befd679a
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/GreenshotPhotobucketPlugin.csproj
@@ -0,0 +1,108 @@
+
+
+
+ {9C0ECC4C-7807-4111-916A-4F57BB29788A}
+ Debug
+ x86
+ Library
+ GreenshotPhotobucketPlugin
+ GreenshotPhotobucketPlugin
+ v2.0
+ Properties
+ C:\Users\Robin\AppData\Roaming\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis
+ False
+ False
+ 4
+ false
+ OnBuildSuccess
+
+
+
+ 3.5
+
+
+
+ bin\Debug\
+ true
+ Full
+ False
+ True
+ False
+ Off
+ 4194304
+ x86
+ 4096
+ DEBUG;TRACE
+
+
+ bin\Release\
+ false
+ None
+ True
+ False
+ False
+ Off
+ 4194304
+ AnyCPU
+ 4096
+
+
+
+
+ ..\Greenshot\Lib\log4net.dll
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form
+
+
+ SettingsForm.cs
+
+
+
+
+
+
+
+
+
+ Never
+
+
+ Never
+
+
+ Never
+
+
+ Never
+
+
+
+
+ PhotobucketPlugin.cs
+ Designer
+
+
+
+
+ {5B924697-4DCD-4F98-85F1-105CB84B7341}
+ GreenshotPlugin
+
+
+
+ "$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
+ mkdir "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)"
+copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName)" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\*.gsp"
+mkdir "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)"
+copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)\"
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/LanguageKeys.cs b/GreenshotPhotobucketPlugin/LanguageKeys.cs
new file mode 100644
index 000000000..82debdf6d
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/LanguageKeys.cs
@@ -0,0 +1,42 @@
+/*
+ * 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 GreenshotPhotobucketPlugin {
+ public enum LangKey {
+ upload_menu_item,
+ settings_title,
+ label_url,
+ label_upload_format,
+ label_clear,
+ OK,
+ CANCEL,
+ upload_success,
+ upload_failure,
+ communication_wait,
+ delete_question,
+ clear_question,
+ delete_title,
+ use_page_link,
+ history,
+ configure
+ }
+}
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-de-DE.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-de-DE.xml
new file mode 100644
index 000000000..be0407a91
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-de-DE.xml
@@ -0,0 +1,50 @@
+
+
+
+
+ Zu Photobucket hochladen
+
+
+ Photobucket Einstellungen
+
+
+ Url
+
+
+ OK
+
+
+ Cancel
+
+
+ Das Hochladen zu Photobucket war erfolgreich.
+
+
+ Es gab einen Fehler beim Hochladen zu Photobucket:
+
+
+ Bildformat
+
+
+ Übermittle Daten zu Photobucket. Bitte warten...
+
+
+ Sind Sie sicher das sie das Bild {0} von Photobucket löschen möchte?
+
+
+ Sind Sie sicher das sie den lokalen Photobucket Verlauf löschen möchte?
+
+
+ Photobucket {0} löschen
+
+
+ Benutze der Seite-URL statt Bild-URL im Zwischenablage
+
+
+ Verlauf
+
+
+ Einstellungen
+
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-en-US.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-en-US.xml
new file mode 100644
index 000000000..461d7deb2
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-en-US.xml
@@ -0,0 +1,53 @@
+
+
+
+
+ Upload to Photobucket
+
+
+ Photobucket settings
+
+
+ Url
+
+
+ OK
+
+
+ Cancel
+
+
+ Successfully uploaded image to Photobucket!
+
+
+ An error occured while uploading to Photobucket:
+
+
+ Image format
+
+
+ Communicating with Photobucket. Please wait...
+
+
+ Are you sure you want to delete the image {0} from Photobucket?
+
+
+ Are you sure you want to delete the local Photobucket history?
+
+
+ Delete Photobucket {0}
+
+
+ Use anonymous access
+
+
+ Use page link instead of image link on clipboard
+
+
+ History
+
+
+ Configure
+
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-fr_FR.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-fr_FR.xml
new file mode 100644
index 000000000..b90d3e228
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-fr_FR.xml
@@ -0,0 +1,41 @@
+
+
+
+
+ Téléverser vers Photobucket
+
+
+ Paramètres Photobucket
+
+
+ URL
+
+
+ Utiliser proxy
+
+
+ OK
+
+
+ Annuler
+
+
+ L'image a été téléversée vers Photobucket avec succès !
+
+
+ Une erreur est survenue lors du téléversement vers Photobucket:
+
+
+ Format d'image
+
+
+ Téléversement vers Photobucket, veuillez patienter...
+
+
+ Histoire
+
+
+ Configurer
+
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-it-IT.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-it-IT.xml
new file mode 100644
index 000000000..f3bb72df1
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-it-IT.xml
@@ -0,0 +1,50 @@
+
+
+
+
+ Carica su Imgur
+
+
+ Impostazioni Imgur
+
+
+ Url
+
+
+ OK
+
+
+ Annulla
+
+
+ Immagine caricata correttamente su Imgur!
+
+
+ Si è verificato un problema durante il collegamento:
+
+
+ Formato immagine
+
+
+ Comunicazione con Imgur. Attendere prego...
+
+
+ Sei sicuro si voler eliminare l'immagine {0} da Imgur?
+
+
+ Sei sicuro si voler eliminare la cronologia locale di Imgur?
+
+
+ Elimina Imgur {0}
+
+
+ Usa il collegamento alla pagina invece di quello all'immagine su appunti
+
+
+ Cronologia
+
+
+ Configurazione
+
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-nl-NL.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-nl-NL.xml
new file mode 100644
index 000000000..fae6514dd
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-nl-NL.xml
@@ -0,0 +1,50 @@
+
+
+
+
+ Naar Photobucket uploaden
+
+
+ Photobucket instellingen
+
+
+ Url
+
+
+ OK
+
+
+ Afbreken
+
+
+ Het uploaden naar Photobucket is geslaagt!
+
+
+ Tijdens het uploaden naar Photobucket is een fout opgetreden:
+
+
+ Beeld formaat
+
+
+ Data overdraging naar Photobucket, wachten AUB...
+
+
+ Weet U zeker dat U het beeld {0} van Photobucket verwijderen wilt?
+
+
+ Weet U zeker dat U de locale Photobucket historie verwijderen wilt?
+
+
+ Photobucket {0} verwijderen
+
+
+ Kopieer de pagina link in plaats van de beeld link in het klembord
+
+
+ Verloop
+
+
+ Instellingen
+
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-ru-RU.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-ru-RU.xml
new file mode 100644
index 000000000..8b238ac90
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-ru-RU.xml
@@ -0,0 +1,50 @@
+
+
+
+
+ Загрузить на Imgur
+
+
+ Imgur параметры
+
+
+ Url
+
+
+ OK
+
+
+ Отмена
+
+
+ Изображение успешно загружено на Imgur!
+
+
+ Произошла ошибка при загрузке на Imgur:
+
+
+ Формат изображения
+
+
+ Общение с Imgur. Подождите...
+
+
+ Вы действительно хотите удалить изображение {0} из Imgur?
+
+
+ Вы действительно хотите удалить местную историю Imgur?
+
+
+ Удалить Imgur {0}
+
+
+ Использовать ссылку страницы, вместо ссылки изображения в буфере обмена
+
+
+ История
+
+
+ Настройка
+
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-uk-UA.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-uk-UA.xml
new file mode 100644
index 000000000..509fd0d68
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-uk-UA.xml
@@ -0,0 +1,20 @@
+
+
+
+ Вивантажити на Imgur
+ Параметри Imgur
+ Посилання
+ Гаразд
+ Скасувати
+ Зображення вдало вивантажено на Imgur!
+ Відбулась помилка при вивантаженні зображення на Imgur:
+ Формат зображення
+ З’єднання з Imgur. Будь ласка, зачекайте...
+ Чи дійсно Ви хочете видалити зображення {0} з Imgur?
+ Чи дійсно Ви хочете видалити локальну історію Imgur?
+ Видалити Imgur {0}
+ Використовувати посилання на сторінку замість посилання на зображення
+ Історія
+ Налаштувати
+
+
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-zh-CN.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-zh-CN.xml
new file mode 100644
index 000000000..86506241b
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-zh-CN.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ 上传到 Photobucket
+
+
+ Photobucket 设置
+
+
+ Url
+
+
+ 确定
+
+
+ 取消
+
+
+ 已成功上传图片到 Photobucket !
+
+
+ 上传到 Photobucket 时出现错误:
+
+
+ 图片格式
+
+
+ 连接到 Photobucket,请稍候...
+
+
+ 您是否确定要从 Photobucket 删除图片 {0} ?
+
+
+ 删除 Photobucket {0}
+
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/PhotobucketConfiguration.cs b/GreenshotPhotobucketPlugin/PhotobucketConfiguration.cs
new file mode 100644
index 000000000..662976f51
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/PhotobucketConfiguration.cs
@@ -0,0 +1,75 @@
+/*
+ * 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.Collections.Generic;
+using System.Windows.Forms;
+
+using GreenshotPlugin.Controls;
+using GreenshotPlugin.Core;
+using Greenshot.IniFile;
+
+namespace GreenshotPhotobucketPlugin {
+ ///
+ /// Description of PhotobucketConfiguration.
+ ///
+ [IniSection("Photobucket", Description="Greenshot Photobucket Plugin configuration")]
+ public class PhotobucketConfiguration : IniSection {
+ [IniProperty("PhotobucketApiUrl", Description = "Url to Photobucket system.", DefaultValue = "http://api.photobucket.com")]
+ public string PhotobucketApiUrl;
+
+ [IniProperty("UploadFormat", Description="What file type to use for uploading", DefaultValue="png")]
+ public OutputFormat UploadFormat;
+ [IniProperty("UploadJpegQuality", Description="JPEG file save quality in %.", DefaultValue="80")]
+ public int UploadJpegQuality;
+ [IniProperty("UploadReduceColors", Description="Reduce color amount of the uploaded image to 256", DefaultValue="False")]
+ public bool UploadReduceColors;
+ [IniProperty("UsePageLink", Description = "Use pagelink instead of direct link on the clipboard", DefaultValue = "False")]
+ public bool UsePageLink;
+ [IniProperty("PhotobucketToken", Description = "The Photobucket token", Encrypted=true, ExcludeIfNull=true)]
+ public string PhotobucketToken;
+ [IniProperty("PhotobucketTokenSecret", Description = "The Photobucket token secret", Encrypted=true, ExcludeIfNull=true)]
+ public string PhotobucketTokenSecret;
+
+ public int Credits {
+ get;
+ set;
+ }
+
+ ///
+ /// A form for username/password
+ ///
+ /// bool true if OK was pressed, false if cancel
+ public bool ShowConfigDialog() {
+ SettingsForm settingsForm = null;
+
+ new PleaseWaitForm().ShowAndWait(PhotobucketPlugin.Attributes.Name, Language.GetString("photobucket", LangKey.communication_wait),
+ delegate() {
+ settingsForm = new SettingsForm(this);
+ }
+ );
+ DialogResult result = settingsForm.ShowDialog();
+ if (result == DialogResult.OK) {
+ return true;
+ }
+ return false;
+ }
+ }
+}
diff --git a/GreenshotPhotobucketPlugin/PhotobucketDestination.cs b/GreenshotPhotobucketPlugin/PhotobucketDestination.cs
new file mode 100644
index 000000000..26833abe9
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/PhotobucketDestination.cs
@@ -0,0 +1,78 @@
+/*
+ * 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.Collections.Generic;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Drawing;
+using System.IO;
+using System.Windows;
+
+using Greenshot.Plugin;
+using GreenshotPlugin.Core;
+using Greenshot.IniFile;
+
+namespace GreenshotPhotobucketPlugin {
+ ///
+ /// Description of PhotobucketDestination.
+ ///
+ public class PhotobucketDestination : AbstractDestination {
+ private static log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(PhotobucketDestination));
+ private static PhotobucketConfiguration config = IniConfig.GetIniSection();
+ private PhotobucketPlugin plugin = null;
+
+ public PhotobucketDestination(PhotobucketPlugin plugin) {
+ this.plugin = plugin;
+ }
+
+ public override string Designation {
+ get {
+ return "Photobucket";
+ }
+ }
+
+ public override string Description {
+ get {
+ return Language.GetString("photobucket", LangKey.upload_menu_item);
+ }
+ }
+
+ public override Image DisplayIcon {
+ get {
+ ComponentResourceManager resources = new ComponentResourceManager(typeof(PhotobucketPlugin));
+ return (Image)resources.GetObject("Photobucket");
+ }
+ }
+
+ public override bool ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) {
+ using (Image image = surface.GetImageForExport()) {
+ string uploadURL = null;
+ bool uploaded = plugin.Upload(captureDetails, image, out uploadURL);
+ if (uploaded) {
+ surface.UploadURL = uploadURL;
+ surface.SendMessageEvent(this, SurfaceMessageTyp.UploadedUrl, Language.GetFormattedString("exported_to", Designation));
+ surface.Modified = false;
+ }
+ return uploaded;
+ }
+ }
+ }
+}
diff --git a/GreenshotPhotobucketPlugin/PhotobucketInfo.cs b/GreenshotPhotobucketPlugin/PhotobucketInfo.cs
new file mode 100644
index 000000000..da363b56b
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/PhotobucketInfo.cs
@@ -0,0 +1,98 @@
+/*
+ * 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.Drawing;
+using System.Xml;
+
+namespace GreenshotPhotobucketPlugin
+{
+ ///
+ /// Description of PhotobucketInfo.
+ ///
+ public class PhotobucketInfo : IDisposable {
+ private static readonly log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(PhotobucketInfo));
+
+ private string original;
+ public string Original {
+ get {return original;}
+ set {original = value;}
+ }
+
+ private string page;
+ public string Page {
+ get {return page;}
+ set {page = value;}
+ }
+
+ private string thumbnail;
+ public string Thumbnail {
+ get {return thumbnail;}
+ set {thumbnail = value;}
+ }
+
+ public PhotobucketInfo() {
+ }
+
+ ///
+ /// The public accessible Dispose
+ /// Will call the GarbageCollector to SuppressFinalize, preventing being cleaned twice
+ ///
+ public void Dispose() {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ ///
+ /// This Dispose is called from the Dispose and the Destructor.
+ /// When disposing==true all non-managed resources should be freed too!
+ ///
+ ///
+ protected virtual void Dispose(bool disposing) {
+ if (disposing) {
+ }
+ }
+
+ public static PhotobucketInfo ParseResponse(string response) {
+ LOG.Debug(response);
+ PhotobucketInfo PhotobucketInfo = new PhotobucketInfo();
+ try {
+ XmlDocument doc = new XmlDocument();
+ doc.LoadXml(response);
+ XmlNodeList nodes;
+ nodes = doc.GetElementsByTagName("url");
+ if(nodes.Count > 0) {
+ PhotobucketInfo.Original = nodes.Item(0).InnerText;
+ }
+ nodes = doc.GetElementsByTagName("browseurl");
+ if(nodes.Count > 0) {
+ PhotobucketInfo.Page = nodes.Item(0).InnerText;
+ }
+ nodes = doc.GetElementsByTagName("thumb");
+ if(nodes.Count > 0) {
+ PhotobucketInfo.Thumbnail = nodes.Item(0).InnerText;
+ }
+ } catch(Exception e) {
+ LOG.ErrorFormat("Could not parse Photobucket response due to error {0}, response was: {1}", e.Message, response);
+ }
+ return PhotobucketInfo;
+ }
+ }
+}
diff --git a/GreenshotPhotobucketPlugin/PhotobucketPlugin.cs b/GreenshotPhotobucketPlugin/PhotobucketPlugin.cs
new file mode 100644
index 000000000..907be691d
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/PhotobucketPlugin.cs
@@ -0,0 +1,150 @@
+/*
+ * 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.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.IO;
+using System.Windows.Forms;
+using System.Threading;
+
+using Greenshot.Plugin;
+using GreenshotPlugin.Controls;
+using GreenshotPlugin.Core;
+using Greenshot.IniFile;
+
+namespace GreenshotPhotobucketPlugin {
+ ///
+ /// This is the GreenshotPhotobucketPlugin base code
+ ///
+ public class PhotobucketPlugin : IGreenshotPlugin {
+ private static readonly log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(PhotobucketPlugin));
+ private static PhotobucketConfiguration config;
+ public static PluginAttribute Attributes;
+ private IGreenshotHost host;
+ private ComponentResourceManager resources;
+
+ public PhotobucketPlugin() {
+ }
+
+ public IEnumerable Destinations() {
+ yield return new PhotobucketDestination(this);
+ }
+
+ public IEnumerable Processors() {
+ yield break;
+ }
+
+ ///
+ /// Implementation of the IGreenshotPlugin.Initialize
+ ///
+ /// Use the IGreenshotPluginHost interface to register events
+ /// Use the ICaptureHost interface to register in the MainContextMenu
+ /// My own attributes
+ /// true if plugin is initialized, false if not (doesn't show)
+ public virtual bool Initialize(IGreenshotHost pluginHost, PluginAttribute myAttributes) {
+ this.host = (IGreenshotHost)pluginHost;
+ Attributes = myAttributes;
+
+ // Get configuration
+ config = IniConfig.GetIniSection();
+ resources = new ComponentResourceManager(typeof(PhotobucketPlugin));
+
+ ToolStripMenuItem itemPlugInRoot = new ToolStripMenuItem("Photobucket");
+ itemPlugInRoot.Image = (Image)resources.GetObject("Photobucket");
+
+ ToolStripMenuItem itemPlugInConfig = new ToolStripMenuItem(Language.GetString("photobucket", LangKey.configure));
+ itemPlugInConfig.Tag = host;
+ itemPlugInConfig.Click += delegate {
+ config.ShowConfigDialog();
+ };
+ itemPlugInRoot.DropDownItems.Add(itemPlugInConfig);
+
+ PluginUtils.AddToContextMenu(host, itemPlugInRoot);
+
+ return true;
+ }
+
+ public virtual void Shutdown() {
+ LOG.Debug("Photobucket Plugin shutdown.");
+ }
+
+ ///
+ /// Implementation of the IPlugin.Configure
+ ///
+ public virtual void Configure() {
+ config.ShowConfigDialog();
+ }
+
+ ///
+ /// This will be called when Greenshot is shutting down
+ ///
+ ///
+ ///
+ public void Closing(object sender, FormClosingEventArgs e) {
+ LOG.Debug("Application closing, de-registering Photobucket Plugin!");
+ Shutdown();
+ }
+
+ ///
+ /// Upload the capture to Photobucket
+ ///
+ ///
+ ///
+ /// out string for the url
+ /// true if the upload succeeded
+ public bool Upload(ICaptureDetails captureDetails, Image image, out string uploadURL) {
+ OutputSettings outputSettings = new OutputSettings(config.UploadFormat, config.UploadJpegQuality, config.UploadReduceColors);
+ using (MemoryStream stream = new MemoryStream()) {
+ host.SaveToStream(image, stream, outputSettings);
+ try {
+ string filename = Path.GetFileName(host.GetFilename(config.UploadFormat, captureDetails));
+ PhotobucketInfo PhotobucketInfo = null;
+
+ // Run upload in the background
+ new PleaseWaitForm().ShowAndWait(Attributes.Name, Language.GetString("photobucket", LangKey.communication_wait),
+ delegate() {
+ PhotobucketInfo = PhotobucketUtils.UploadToPhotobucket(stream.GetBuffer(), (int)stream.Length, captureDetails.Title, filename);
+ }
+ );
+ uploadURL = null;
+ try {
+ if (config.UsePageLink) {
+ uploadURL = PhotobucketInfo.Page;
+ Clipboard.SetText(PhotobucketInfo.Page);
+ } else {
+ uploadURL = PhotobucketInfo.Original;
+ Clipboard.SetText(PhotobucketInfo.Original);
+ }
+ } catch (Exception ex) {
+ LOG.Error("Can't write to clipboard: ", ex);
+ }
+ return true;
+ } catch (Exception e) {
+ LOG.Error(e);
+ MessageBox.Show(Language.GetString("photobucket", LangKey.upload_failure) + " " + e.Message);
+ }
+ }
+ uploadURL = null;
+ return false;
+ }
+ }
+}
diff --git a/GreenshotPhotobucketPlugin/PhotobucketPlugin.resx b/GreenshotPhotobucketPlugin/PhotobucketPlugin.resx
new file mode 100644
index 000000000..ebae1258e
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/PhotobucketPlugin.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAFJJREFUOE9jFBIS
+ /M9ACQAZQAlmwKXZL0f6f+cxFTAGsXGpw2kATDOMJtkAmAt6TpHpAmLDBacXGhsb/sMAiE2yF+C6oYxR
+ A/4PxUCkOB0QmxIB9tCMsK3wUGgAAAAASUVORK5CYII=
+
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/PhotobucketUtils.cs b/GreenshotPhotobucketPlugin/PhotobucketUtils.cs
new file mode 100644
index 000000000..16c7d0b8b
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/PhotobucketUtils.cs
@@ -0,0 +1,128 @@
+/*
+ * 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.Collections.Generic;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.IO;
+using System.Net;
+using System.Text;
+using System.Web;
+
+using GreenshotPlugin.Core;
+using Greenshot.IniFile;
+
+namespace GreenshotPhotobucketPlugin {
+ ///
+ /// Description of PhotobucketUtils.
+ ///
+ public class PhotobucketUtils {
+ private static readonly log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(PhotobucketUtils));
+ private static PhotobucketConfiguration config = IniConfig.GetIniSection();
+
+ private PhotobucketUtils() {
+ }
+
+ ///
+ /// A wrapper around the EscapeDataString, as the limit is 32766 characters
+ /// See: http://msdn.microsoft.com/en-us/library/system.uri.escapedatastring%28v=vs.110%29.aspx
+ ///
+ ///
+ /// escaped data string
+ private static StringBuilder EscapeDataStringToStringBuilder(string dataString) {
+ StringBuilder result = new StringBuilder();
+ int currentLocation = 0;
+ while (currentLocation < dataString.Length) {
+ string process = dataString.Substring(currentLocation,Math.Min(16384, dataString.Length-currentLocation));
+ result.Append(Uri.EscapeDataString(process));
+ currentLocation = currentLocation + 16384;
+ }
+ return result;
+ }
+
+ private static string EscapeText(string text) {
+ string[] UriRfc3986CharsToEscape = new[] { "!", "*", "'", "(", ")" };
+ LOG.DebugFormat("Text size {0}", text.Length);
+ StringBuilder escaped = EscapeDataStringToStringBuilder(text);
+
+ for (int i = 0; i < UriRfc3986CharsToEscape.Length; i++) {
+ escaped.Replace(UriRfc3986CharsToEscape[i], Uri.HexEscape(UriRfc3986CharsToEscape[i][0]));
+ }
+ return escaped.ToString();
+ }
+
+ ///
+ /// Do the actual upload to Photobucket
+ /// For more details on the available parameters, see: http://api.Photobucket.com/resources_anon
+ ///
+ /// byte[] with image data
+ /// PhotobucketResponse
+ public static PhotobucketInfo UploadToPhotobucket(byte[] imageData, int dataLength, string title, string filename) {
+ StringBuilder uploadRequest = new StringBuilder();
+ uploadRequest.Append("identifier=greenshot");
+ // add type
+ uploadRequest.Append("&type=base64");
+ // Add image
+ uploadRequest.Append("&uploadfile=");
+ uploadRequest.Append(EscapeText(System.Convert.ToBase64String(imageData, 0, dataLength)));
+ // add title
+ if (title != null) {
+ uploadRequest.Append("&title=");
+ uploadRequest.Append(EscapeText(title));
+ }
+ // add filename
+ if (filename != null) {
+ uploadRequest.Append("&filename=");
+ uploadRequest.Append(EscapeText(filename));
+ }
+ string url = config.PhotobucketApiUrl + "/album/greenshot/upload";
+ string responseString;
+
+ OAuthHelper oAuth = new OAuthHelper();
+ oAuth.CallbackUrl = "http://getgreenshot.org";
+ oAuth.AccessTokenUrl = "http://api.photobucket.com/login/access";
+ oAuth.AuthorizeUrl = " http://photobucket.com/apilogin/login";
+ oAuth.RequestTokenUrl = "http://api.photobucket.com/login/request";
+ oAuth.ConsumerKey = "fill-in";
+ oAuth.ConsumerSecret = "fill-in";
+ oAuth.UserAgent = "Greenshot";
+ if (string.IsNullOrEmpty(config.PhotobucketToken)) {
+ LOG.Debug("Creating Photobucket Token");
+ oAuth.getRequestToken();
+ if (string.IsNullOrEmpty(oAuth.authorizeToken("Photobucket authorization"))) {
+ return null;
+ }
+ string accessToken = oAuth.getAccessToken();
+ config.PhotobucketToken = oAuth.Token;
+ config.PhotobucketTokenSecret = oAuth.TokenSecret;
+ } else {
+ LOG.Debug("Using stored Photobucket Token");
+ oAuth.Token = config.PhotobucketToken;
+ oAuth.TokenSecret = config.PhotobucketTokenSecret;
+ }
+ responseString = oAuth.oAuthWebRequest(OAuthHelper.Method.POST, url, uploadRequest.ToString());
+ LOG.Info(responseString);
+ PhotobucketInfo PhotobucketInfo = PhotobucketInfo.ParseResponse(responseString);
+ LOG.Debug("Upload to Photobucket was finished");
+ return PhotobucketInfo;
+ }
+ }
+}
diff --git a/GreenshotPhotobucketPlugin/Properties/AssemblyInfo.cs.template b/GreenshotPhotobucketPlugin/Properties/AssemblyInfo.cs.template
new file mode 100644
index 000000000..da7ef9f76
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Properties/AssemblyInfo.cs.template
@@ -0,0 +1,54 @@
+/*
+ * 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 .
+ */
+#region Using directives
+
+using System;
+using System.Reflection;
+using System.Runtime.InteropServices;
+using Greenshot.Plugin;
+
+#endregion
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Greenshot-Photobucket-Plugin")]
+[assembly: AssemblyDescription("A plugin to upload images to Photobucket")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Greenshot")]
+[assembly: AssemblyProduct("Photobucket Plugin")]
+[assembly: AssemblyCopyright("Copyright (C) 2007-2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+// The PluginAttribute describes the "entryType" and if the plugin is configurable
+[assembly: PluginAttribute("GreenshotPhotobucketPlugin.PhotobucketPlugin", true)]
+
+// This sets the default COM visibility of types in the assembly to invisible.
+// If you need to expose a type to COM, use [ComVisible(true)] on that type.
+[assembly: ComVisible(false)]
+
+// The assembly version has following format :
+//
+// Major.Minor.Build.Revision
+//
+// You can specify all the values or you can use the default the Revision and
+// Build Numbers by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.2.$WCREV$")]