├── .gitignore ├── screens └── Xamarin Studio Sample.gif ├── src ├── Xamarin Studio │ ├── icons │ │ └── icon.png │ ├── packages.config │ ├── gtk-gui │ │ ├── generated.cs │ │ ├── MaterialIconsGenerator.MainDialog.cs │ │ └── gui.stetic │ ├── Properties │ │ ├── AddinInfo.cs │ │ ├── AssemblyInfo.cs │ │ └── Manifest.addin.xml │ ├── Commands │ │ └── AddIconHandler.cs │ ├── material-icons-generator-plugin.sln │ ├── material-icons-generator-plugin.csproj │ └── MainDialog.cs └── Shared │ ├── IconLocation.cs │ ├── IconDownloader.cs │ └── IconColors.cs ├── addin-project.xml ├── .gitattributes └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | obj/ 2 | bin/ 3 | material-icons-generator-plugin.userprefs 4 | ___FILES/ 5 | packages/ 6 | .vs/ -------------------------------------------------------------------------------- /screens/Xamarin Studio Sample.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/interisti/xs-material-icons-generator/HEAD/screens/Xamarin Studio Sample.gif -------------------------------------------------------------------------------- /src/Xamarin Studio/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/interisti/xs-material-icons-generator/HEAD/src/Xamarin Studio/icons/icon.png -------------------------------------------------------------------------------- /src/Xamarin Studio/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /addin-project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | src/Xamarin Studio/bin/Release/material-icons-generator-plugin.dll 4 | src/Xamarin Studio/material-icons-generator-plugin.sln 5 | Release 6 | 7 | 8 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # xs-material-icons-generator 2 | This plugin help you to set material design icons to your Android project in Xamarin Studio. 3 | 4 | ![alt tag](https://raw.githubusercontent.com/interisti/material-icons-generator-plugin/master/screens/Xamarin%20Studio%20Sample.gif) 5 | 6 | ## Installation 7 | * Xamarin Studio: Install from "add-in Manager": Tools -> Add-in manager 8 | 9 | ## Visual Studio 10 | * [vs-material-icons-generator](https://github.com/interisti/vs-material-icons-generator) 11 | 12 | 13 | ## Credits 14 | * Inspired by https://github.com/konifar/android-material-design-icon-generator-plugin 15 | * Icons From https://github.com/google/material-design-icons 16 | -------------------------------------------------------------------------------- /src/Xamarin Studio/gtk-gui/generated.cs: -------------------------------------------------------------------------------- 1 | 2 | // This file has been generated by the GUI designer. Do not modify. 3 | namespace Stetic 4 | { 5 | internal class Gui 6 | { 7 | private static bool initialized; 8 | 9 | internal static void Initialize (Gtk.Widget iconRenderer) 10 | { 11 | if ((Stetic.Gui.initialized == false)) { 12 | Stetic.Gui.initialized = true; 13 | } 14 | } 15 | } 16 | 17 | internal class ActionGroups 18 | { 19 | public static Gtk.ActionGroup GetActionGroup (System.Type type) 20 | { 21 | return Stetic.ActionGroups.GetActionGroup (type.FullName); 22 | } 23 | 24 | public static Gtk.ActionGroup GetActionGroup (string name) 25 | { 26 | return null; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Xamarin Studio/Properties/AddinInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Mono.Addins; 3 | using Mono.Addins.Description; 4 | 5 | [assembly:Addin ( 6 | "material-icons-generator-plugin", 7 | Namespace = "MaterialIconsGenerator", 8 | Version = "1.4", 9 | Url = "https://github.com/interisti/material-icons-generator-plugin" 10 | )] 11 | 12 | [assembly:AddinName ("Material icons generator")] 13 | [assembly:AddinCategory ("IDE extensions")] 14 | [assembly:AddinDescription ("This plugin help you to set material design icons to your Android project.")] 15 | [assembly:AddinAuthor ("Nika Nikabadze")] 16 | 17 | [assembly:AddinDependency ("::MonoDevelop.Core", MonoDevelop.BuildInfo.Version)] 18 | [assembly:AddinDependency ("::MonoDevelop.Ide", MonoDevelop.BuildInfo.Version)] -------------------------------------------------------------------------------- /src/Xamarin Studio/Commands/AddIconHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using MonoDevelop.Components.Commands; 4 | using MonoDevelop.Ide; 5 | 6 | namespace MaterialIconsGenerator.Commands 7 | { 8 | public class AddIconHandler : CommandHandler 9 | { 10 | protected override void Run () 11 | { 12 | try { 13 | var dialog = new MainDialog (); 14 | MessageService.ShowCustomDialog (dialog); 15 | } catch (Exception ex) { 16 | MessageService.ShowException (ex); 17 | } 18 | } 19 | 20 | protected override void Update (CommandInfo info) 21 | { 22 | base.Update (info); 23 | 24 | info.Visible = IdeApp.ProjectOperations.CurrentSelectedProject 25 | .GetProjectTypes ().ToList ().Contains ("MonoDroid"); 26 | } 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /src/Xamarin Studio/material-icons-generator-plugin.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2012 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "material-icons-generator-plugin", "material-icons-generator-plugin.csproj", "{5E5EFD02-2DB8-431B-AA4E-94B071792704}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Any CPU = Debug|Any CPU 9 | Release|Any CPU = Release|Any CPU 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {5E5EFD02-2DB8-431B-AA4E-94B071792704}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 13 | {5E5EFD02-2DB8-431B-AA4E-94B071792704}.Debug|Any CPU.Build.0 = Debug|Any CPU 14 | {5E5EFD02-2DB8-431B-AA4E-94B071792704}.Release|Any CPU.ActiveCfg = Release|Any CPU 15 | {5E5EFD02-2DB8-431B-AA4E-94B071792704}.Release|Any CPU.Build.0 = Release|Any CPU 16 | EndGlobalSection 17 | GlobalSection(MonoDevelopProperties) = preSolution 18 | version = 1.0 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /src/Shared/IconLocation.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | 3 | namespace MaterialIcons.UI 4 | { 5 | public static class IconLocation 6 | { 7 | public const string RESOURCES_FOLDER = "Resources"; 8 | public const string ICON_EXTENSION = ".png"; 9 | public const string DRAWABLE_MDPI_FOLDER = "drawable-mdpi"; 10 | public const string DRAWABLE_HDPI_FOLDER = "drawable-hdpi"; 11 | public const string DRAWABLE_XHDPI_FOLDER = "drawable-xhdpi"; 12 | public const string DRAWABLE_XXHDPI_FOLDER = "drawable-xxhdpi"; 13 | public const string DRAWABLE_XXXHDPI_FOLDER = "drawable-xxxhdpi"; 14 | 15 | public static string NormalizeFileName (string icon, string color, string size) 16 | { 17 | return string.Format ("{0}_{1}_{2}", 18 | icon.Split ('/') [1], 19 | color, 20 | size 21 | ); 22 | } 23 | 24 | public static void SaveIcon (byte[] data, string filepath) 25 | { 26 | if (!Directory.Exists (Path.GetDirectoryName (filepath))) 27 | Directory.CreateDirectory (Path.GetDirectoryName (filepath)); 28 | File.WriteAllBytes (filepath, data); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /src/Xamarin Studio/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | 4 | // Information about this assembly is defined by the following attributes. 5 | // Change them to the values specific to your project. 6 | 7 | [assembly: AssemblyTitle("material-icons-generator-plugin")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("")] 12 | [assembly: AssemblyCopyright("Nika")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 17 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 18 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 19 | 20 | [assembly: AssemblyVersion("1.4")] 21 | 22 | // The following attributes are used to specify the signing key for the assembly, 23 | // if desired. See the Mono documentation for more information about signing. 24 | 25 | //[assembly: AssemblyDelaySign(false)] 26 | //[assembly: AssemblyKeyFile("")] 27 | 28 | -------------------------------------------------------------------------------- /src/Xamarin Studio/Properties/Manifest.addin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 20 | 21 | 22 | 23 | 24 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/Shared/IconDownloader.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Newtonsoft.Json.Linq; 3 | 4 | namespace MaterialIcons.UI 5 | { 6 | public static class IconDownloader 7 | { 8 | public static string GetIconUrl (string iconFull, string folder, string color, string size) 9 | { 10 | const string urlFormat = "https://raw.githubusercontent.com/google/material-design-icons/master/{0}/{1}/{2}_{3}_{4}.png"; 11 | 12 | var iconFullArr = iconFull.Split ('/'); 13 | var icon = iconFullArr [1]; 14 | var category = iconFullArr [0]; 15 | 16 | var url = string.Format (urlFormat, 17 | category.ToLower (), 18 | folder.ToLower (), 19 | icon.ToLower (), 20 | color.ToLower ().Replace (" ", ""), 21 | size.ToLower () 22 | ); 23 | return url; 24 | } 25 | 26 | public static byte[] DownloadIcon (string icon, string folder, string color, string size) 27 | { 28 | using (var webCl = new System.Net.WebClient ()) { 29 | return webCl.DownloadData (GetIconUrl(icon, 30 | folder, 31 | IconColors.FixColor (IconColors.NormalizeColor (color)), 32 | size)); 33 | } 34 | } 35 | 36 | public static List KnownSizes = new List () { 37 | "18dp", 38 | "24dp", 39 | "36dp", 40 | "48dp" 41 | }; 42 | 43 | public static List DownloadIconsFromRepo () 44 | { 45 | var result = new List (); 46 | using (var client = new System.Net.WebClient ()) { 47 | var response = client.DownloadString ("https://design.google.com/icons/data/grid.json"); 48 | var json_data = JObject.Parse (response); 49 | 50 | foreach (var icon in json_data.Property("icons").Values()) { 51 | var normalized_name = icon.Value ("group_id") + "/" + 52 | icon.Value ("id"); 53 | 54 | result.Add (normalized_name); 55 | } 56 | } 57 | // sort 58 | result.Sort (); 59 | 60 | return result; 61 | } 62 | 63 | // "action/ic_3d_rotation", 64 | } 65 | } 66 | 67 | -------------------------------------------------------------------------------- /src/Xamarin Studio/material-icons-generator-plugin.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | {86F6BF2A-E449-4B3E-813B-9ACC37E5545F};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 7 | {5E5EFD02-2DB8-431B-AA4E-94B071792704} 8 | Library 9 | MaterialIconsGenerator 10 | material-icons-generator-plugin 11 | 1.0 12 | 13 | 14 | true 15 | full 16 | false 17 | bin\Debug 18 | DEBUG; 19 | prompt 20 | 4 21 | false 22 | 23 | 24 | full 25 | true 26 | bin\Release 27 | prompt 28 | 4 29 | false 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | Shared\IconColors.cs 39 | 40 | 41 | Shared\IconDownloader.cs 42 | 43 | 44 | Shared\IconLocation.cs 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | packages\Newtonsoft.Json.8.0.2\lib\net45\Newtonsoft.Json.dll 66 | 67 | 68 | 69 | 70 | 71 | addin-project.xml 72 | 73 | 74 | 75 | 76 | gui.stetic 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /src/Xamarin Studio/MainDialog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using Gtk; 4 | using MaterialIcons.UI; 5 | using System.IO; 6 | using System.Drawing; 7 | using System.Collections.Generic; 8 | using MonoDevelop.Ide; 9 | using MonoDevelop.Projects; 10 | using MonoDevelop.Core.ProgressMonitoring; 11 | 12 | namespace MaterialIconsGenerator 13 | { 14 | public partial class MainDialog : Gtk.Dialog 15 | { 16 | public MainDialog () 17 | { 18 | this.Build (); 19 | 20 | this.LoadIcons (); 21 | this.LoadColors (); 22 | this.LoadSizes (); 23 | 24 | this.comboSize.Changed += this.OnComboSizeChanged; 25 | this.comboIcon.Changed += this.OnComboIconChanged; 26 | this.comboColor.Changed += this.OnComboColorChanged; 27 | this.buttonSource.Clicked += this.OnButtonSourceClicked; 28 | this.buttonOk.Clicked += this.OnButtonAddClicked; 29 | } 30 | 31 | #region Init 32 | 33 | private void LoadIcons () 34 | { 35 | foreach (var icon in IconDownloader.DownloadIconsFromRepo()) { 36 | this.comboIcon.AppendText (icon); 37 | } 38 | } 39 | 40 | private void LoadColors () 41 | { 42 | foreach (var color in IconColors.KnownColors) { 43 | this.comboColor.AppendText (color); 44 | } 45 | foreach (var color in IconColors.Colors.Keys) { 46 | this.comboColor.AppendText (color); 47 | } 48 | this.comboColor.Active = 0; 49 | } 50 | 51 | private void LoadSizes () 52 | { 53 | foreach (var color in IconDownloader.KnownSizes) { 54 | this.comboSize.AppendText (color); 55 | } 56 | this.comboSize.Active = 1; 57 | } 58 | 59 | private void SetPreview () 60 | { 61 | try { 62 | var icon = this.comboIcon.ActiveText; 63 | if (string.IsNullOrEmpty (icon)) 64 | return; 65 | // start waiting 66 | this.GdkWindow.Cursor = new Gdk.Cursor (Gdk.CursorType.Watch); 67 | 68 | var color = this.comboColor.ActiveText; 69 | var size = this.comboSize.ActiveText; 70 | var data = IconDownloader.DownloadIcon (icon, 71 | IconLocation.DRAWABLE_HDPI_FOLDER, 72 | IconColors.FixColor (IconColors.NormalizeColor (color)), 73 | size); 74 | if (!IconColors.IsKnownColor (color)) 75 | data = IconColors.ReplaceColor (data, IconColors.GetColor (color)); 76 | this.imagePreview.Pixbuf = new Gdk.Pixbuf (data); 77 | } finally { 78 | this.GdkWindow.Cursor = new Gdk.Cursor (Gdk.CursorType.LeftPtr); 79 | } 80 | } 81 | 82 | private void SetName () 83 | { 84 | this.entryName.Text = this.GetName (); 85 | } 86 | 87 | private string GetName () 88 | { 89 | var icon = this.comboIcon.ActiveText; 90 | if (string.IsNullOrEmpty (icon)) 91 | return ""; 92 | var color = this.comboColor.ActiveText; 93 | var size = this.comboSize.ActiveText; 94 | return IconLocation.NormalizeFileName (icon, color, size); 95 | } 96 | 97 | #endregion 98 | 99 | #region Events 100 | 101 | protected void OnComboIconChanged (object sender, EventArgs e) 102 | { 103 | this.SetPreview (); 104 | this.SetName (); 105 | } 106 | 107 | protected void OnComboSizeChanged (object sender, EventArgs e) 108 | { 109 | this.SetPreview (); 110 | this.SetName (); 111 | } 112 | 113 | protected void OnComboColorChanged (object sender, EventArgs e) 114 | { 115 | this.SetPreview (); 116 | this.SetName (); 117 | } 118 | 119 | protected void OnButtonAddClicked (object sender, EventArgs e) 120 | { 121 | this.StartDownloading (); 122 | } 123 | 124 | protected void OnButtonSourceClicked (object sender, EventArgs e) 125 | { 126 | System.Diagnostics.Process.Start ("https://github.com/google/material-design-icons"); 127 | } 128 | 129 | #endregion 130 | 131 | private void StartDownloading () 132 | { 133 | try { 134 | var icon = this.comboIcon.ActiveText; 135 | if (string.IsNullOrEmpty (icon)) 136 | return; 137 | 138 | // start waiting 139 | this.GdkWindow.Cursor = new Gdk.Cursor (Gdk.CursorType.Watch); 140 | 141 | var folders = new List (); 142 | if (this.checkhdpi.Active) 143 | folders.Add (IconLocation.DRAWABLE_HDPI_FOLDER); 144 | if (this.checkmdpi.Active) 145 | folders.Add (IconLocation.DRAWABLE_MDPI_FOLDER); 146 | if (this.checkxhdpi.Active) 147 | folders.Add (IconLocation.DRAWABLE_XHDPI_FOLDER); 148 | if (this.checkxxhdpi.Active) 149 | folders.Add (IconLocation.DRAWABLE_XXHDPI_FOLDER); 150 | if (this.checkxxxhdpi.Active) 151 | folders.Add (IconLocation.DRAWABLE_XXXHDPI_FOLDER); 152 | var color = this.comboColor.ActiveText; 153 | var size = this.comboSize.ActiveText; 154 | var name = this.entryName.Text; 155 | if (string.IsNullOrEmpty (name)) 156 | name = IconLocation.NormalizeFileName (icon, color, size); 157 | 158 | foreach (var folder in folders) { 159 | var data = IconDownloader.DownloadIcon (icon, folder, 160 | IconColors.FixColor (IconColors.NormalizeColor (color)), size); 161 | if (!IconColors.IsKnownColor (color)) 162 | data = IconColors.ReplaceColor (data, IconColors.GetColor (color)); 163 | // save 164 | var baseDir = this.GetProjectDir (); 165 | var fullPath = System.IO.Path.Combine (baseDir, IconLocation.RESOURCES_FOLDER, folder, 166 | name + IconLocation.ICON_EXTENSION); 167 | // save to folder 168 | IconLocation.SaveIcon (data, fullPath); 169 | // add to project 170 | this.AddFileToProject (fullPath); 171 | } 172 | 173 | this.SaveProject (); 174 | } finally { 175 | this.GdkWindow.Cursor = new Gdk.Cursor (Gdk.CursorType.LeftPtr); 176 | } 177 | } 178 | 179 | private string GetProjectDir () 180 | { 181 | return IdeApp.ProjectOperations.CurrentSelectedProject.BaseDirectory.ToString (); 182 | } 183 | 184 | private void AddFileToProject (string filename) 185 | { 186 | var file = IdeApp.ProjectOperations.CurrentSelectedProject.AddFile (filename, "AndroidResource"); 187 | } 188 | 189 | private void SaveProject () 190 | { 191 | IdeApp.ProjectOperations.CurrentSelectedProject.Save (new NullProgressMonitor ()); 192 | } 193 | } 194 | } 195 | -------------------------------------------------------------------------------- /src/Xamarin Studio/gtk-gui/MaterialIconsGenerator.MainDialog.cs: -------------------------------------------------------------------------------- 1 | 2 | // This file has been generated by the GUI designer. Do not modify. 3 | namespace MaterialIconsGenerator 4 | { 5 | public partial class MainDialog 6 | { 7 | private global::Gtk.Table container; 8 | 9 | private global::Gtk.CheckButton checkhdpi; 10 | 11 | private global::Gtk.CheckButton checkmdpi; 12 | 13 | private global::Gtk.CheckButton checkxhdpi; 14 | 15 | private global::Gtk.CheckButton checkxxhdpi; 16 | 17 | private global::Gtk.CheckButton checkxxxhdpi; 18 | 19 | private global::Gtk.ComboBox comboColor; 20 | 21 | private global::Gtk.ComboBox comboIcon; 22 | 23 | private global::Gtk.ComboBox comboSize; 24 | 25 | private global::Gtk.Entry entryName; 26 | 27 | private global::Gtk.Image imagePreview; 28 | 29 | private global::Gtk.Label label13; 30 | 31 | private global::Gtk.Label label14; 32 | 33 | private global::Gtk.Label label15; 34 | 35 | private global::Gtk.Label label16; 36 | 37 | private global::Gtk.Button buttonSource; 38 | 39 | private global::Gtk.Button buttonOk; 40 | 41 | private global::Gtk.Button buttonCancel; 42 | 43 | protected virtual void Build () 44 | { 45 | global::Stetic.Gui.Initialize (this); 46 | // Widget MaterialIconsGenerator.MainDialog 47 | this.Name = "MaterialIconsGenerator.MainDialog"; 48 | this.Title = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("Material Icon Generator"); 49 | this.WindowPosition = ((global::Gtk.WindowPosition)(4)); 50 | this.Modal = true; 51 | this.Resizable = false; 52 | // Internal child MaterialIconsGenerator.MainDialog.VBox 53 | global::Gtk.VBox w1 = this.VBox; 54 | w1.Name = "dialog1_VBox"; 55 | w1.BorderWidth = ((uint)(2)); 56 | // Container child dialog1_VBox.Gtk.Box+BoxChild 57 | this.container = new global::Gtk.Table (((uint)(7)), ((uint)(6)), false); 58 | this.container.WidthRequest = 500; 59 | this.container.Name = "container"; 60 | this.container.RowSpacing = ((uint)(6)); 61 | this.container.ColumnSpacing = ((uint)(6)); 62 | this.container.BorderWidth = ((uint)(9)); 63 | // Container child container.Gtk.Table+TableChild 64 | this.checkhdpi = new global::Gtk.CheckButton (); 65 | this.checkhdpi.CanFocus = true; 66 | this.checkhdpi.Name = "checkhdpi"; 67 | this.checkhdpi.Label = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("hdpi"); 68 | this.checkhdpi.Active = true; 69 | this.checkhdpi.DrawIndicator = true; 70 | this.checkhdpi.UseUnderline = true; 71 | this.container.Add (this.checkhdpi); 72 | global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.container [this.checkhdpi])); 73 | w2.TopAttach = ((uint)(4)); 74 | w2.BottomAttach = ((uint)(5)); 75 | w2.LeftAttach = ((uint)(2)); 76 | w2.RightAttach = ((uint)(3)); 77 | w2.XOptions = ((global::Gtk.AttachOptions)(4)); 78 | w2.YOptions = ((global::Gtk.AttachOptions)(4)); 79 | // Container child container.Gtk.Table+TableChild 80 | this.checkmdpi = new global::Gtk.CheckButton (); 81 | this.checkmdpi.CanFocus = true; 82 | this.checkmdpi.Name = "checkmdpi"; 83 | this.checkmdpi.Label = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("mdpi"); 84 | this.checkmdpi.Active = true; 85 | this.checkmdpi.DrawIndicator = true; 86 | this.checkmdpi.UseUnderline = true; 87 | this.container.Add (this.checkmdpi); 88 | global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.container [this.checkmdpi])); 89 | w3.TopAttach = ((uint)(4)); 90 | w3.BottomAttach = ((uint)(5)); 91 | w3.LeftAttach = ((uint)(1)); 92 | w3.RightAttach = ((uint)(2)); 93 | w3.XOptions = ((global::Gtk.AttachOptions)(4)); 94 | w3.YOptions = ((global::Gtk.AttachOptions)(4)); 95 | // Container child container.Gtk.Table+TableChild 96 | this.checkxhdpi = new global::Gtk.CheckButton (); 97 | this.checkxhdpi.CanFocus = true; 98 | this.checkxhdpi.Name = "checkxhdpi"; 99 | this.checkxhdpi.Label = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("xhdpi"); 100 | this.checkxhdpi.Active = true; 101 | this.checkxhdpi.DrawIndicator = true; 102 | this.checkxhdpi.UseUnderline = true; 103 | this.container.Add (this.checkxhdpi); 104 | global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.container [this.checkxhdpi])); 105 | w4.TopAttach = ((uint)(5)); 106 | w4.BottomAttach = ((uint)(6)); 107 | w4.LeftAttach = ((uint)(1)); 108 | w4.RightAttach = ((uint)(2)); 109 | w4.XOptions = ((global::Gtk.AttachOptions)(4)); 110 | w4.YOptions = ((global::Gtk.AttachOptions)(4)); 111 | // Container child container.Gtk.Table+TableChild 112 | this.checkxxhdpi = new global::Gtk.CheckButton (); 113 | this.checkxxhdpi.CanFocus = true; 114 | this.checkxxhdpi.Name = "checkxxhdpi"; 115 | this.checkxxhdpi.Label = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("xxhdpi"); 116 | this.checkxxhdpi.Active = true; 117 | this.checkxxhdpi.DrawIndicator = true; 118 | this.checkxxhdpi.UseUnderline = true; 119 | this.container.Add (this.checkxxhdpi); 120 | global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.container [this.checkxxhdpi])); 121 | w5.TopAttach = ((uint)(5)); 122 | w5.BottomAttach = ((uint)(6)); 123 | w5.LeftAttach = ((uint)(2)); 124 | w5.RightAttach = ((uint)(3)); 125 | w5.XOptions = ((global::Gtk.AttachOptions)(4)); 126 | w5.YOptions = ((global::Gtk.AttachOptions)(4)); 127 | // Container child container.Gtk.Table+TableChild 128 | this.checkxxxhdpi = new global::Gtk.CheckButton (); 129 | this.checkxxxhdpi.CanFocus = true; 130 | this.checkxxxhdpi.Name = "checkxxxhdpi"; 131 | this.checkxxxhdpi.Label = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("xxxhdpi"); 132 | this.checkxxxhdpi.Active = true; 133 | this.checkxxxhdpi.DrawIndicator = true; 134 | this.checkxxxhdpi.UseUnderline = true; 135 | this.container.Add (this.checkxxxhdpi); 136 | global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.container [this.checkxxxhdpi])); 137 | w6.TopAttach = ((uint)(6)); 138 | w6.BottomAttach = ((uint)(7)); 139 | w6.LeftAttach = ((uint)(1)); 140 | w6.RightAttach = ((uint)(2)); 141 | w6.XOptions = ((global::Gtk.AttachOptions)(4)); 142 | w6.YOptions = ((global::Gtk.AttachOptions)(4)); 143 | // Container child container.Gtk.Table+TableChild 144 | this.comboColor = global::Gtk.ComboBox.NewText (); 145 | this.comboColor.Name = "comboColor"; 146 | this.container.Add (this.comboColor); 147 | global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.container [this.comboColor])); 148 | w7.TopAttach = ((uint)(1)); 149 | w7.BottomAttach = ((uint)(2)); 150 | w7.LeftAttach = ((uint)(1)); 151 | w7.RightAttach = ((uint)(2)); 152 | w7.XOptions = ((global::Gtk.AttachOptions)(4)); 153 | w7.YOptions = ((global::Gtk.AttachOptions)(4)); 154 | // Container child container.Gtk.Table+TableChild 155 | this.comboIcon = global::Gtk.ComboBox.NewText (); 156 | this.comboIcon.Name = "comboIcon"; 157 | this.container.Add (this.comboIcon); 158 | global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.container [this.comboIcon])); 159 | w8.LeftAttach = ((uint)(1)); 160 | w8.RightAttach = ((uint)(3)); 161 | w8.XOptions = ((global::Gtk.AttachOptions)(4)); 162 | w8.YOptions = ((global::Gtk.AttachOptions)(4)); 163 | // Container child container.Gtk.Table+TableChild 164 | this.comboSize = global::Gtk.ComboBox.NewText (); 165 | this.comboSize.CanFocus = true; 166 | this.comboSize.Name = "comboSize"; 167 | this.container.Add (this.comboSize); 168 | global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.container [this.comboSize])); 169 | w9.TopAttach = ((uint)(2)); 170 | w9.BottomAttach = ((uint)(3)); 171 | w9.LeftAttach = ((uint)(1)); 172 | w9.RightAttach = ((uint)(2)); 173 | w9.XOptions = ((global::Gtk.AttachOptions)(4)); 174 | w9.YOptions = ((global::Gtk.AttachOptions)(4)); 175 | // Container child container.Gtk.Table+TableChild 176 | this.entryName = new global::Gtk.Entry (); 177 | this.entryName.CanFocus = true; 178 | this.entryName.Name = "entryName"; 179 | this.entryName.IsEditable = true; 180 | this.entryName.InvisibleChar = '●'; 181 | this.container.Add (this.entryName); 182 | global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.container [this.entryName])); 183 | w10.TopAttach = ((uint)(3)); 184 | w10.BottomAttach = ((uint)(4)); 185 | w10.LeftAttach = ((uint)(1)); 186 | w10.RightAttach = ((uint)(3)); 187 | w10.YOptions = ((global::Gtk.AttachOptions)(4)); 188 | // Container child container.Gtk.Table+TableChild 189 | this.imagePreview = new global::Gtk.Image (); 190 | this.imagePreview.Name = "imagePreview"; 191 | this.container.Add (this.imagePreview); 192 | global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.container [this.imagePreview])); 193 | w11.BottomAttach = ((uint)(7)); 194 | w11.LeftAttach = ((uint)(3)); 195 | w11.RightAttach = ((uint)(6)); 196 | w11.YOptions = ((global::Gtk.AttachOptions)(4)); 197 | // Container child container.Gtk.Table+TableChild 198 | this.label13 = new global::Gtk.Label (); 199 | this.label13.Name = "label13"; 200 | this.label13.LabelProp = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("Icon:"); 201 | this.container.Add (this.label13); 202 | global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.container [this.label13])); 203 | w12.XOptions = ((global::Gtk.AttachOptions)(4)); 204 | w12.YOptions = ((global::Gtk.AttachOptions)(4)); 205 | // Container child container.Gtk.Table+TableChild 206 | this.label14 = new global::Gtk.Label (); 207 | this.label14.Name = "label14"; 208 | this.label14.LabelProp = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("Color:"); 209 | this.container.Add (this.label14); 210 | global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.container [this.label14])); 211 | w13.TopAttach = ((uint)(1)); 212 | w13.BottomAttach = ((uint)(2)); 213 | w13.XOptions = ((global::Gtk.AttachOptions)(4)); 214 | w13.YOptions = ((global::Gtk.AttachOptions)(4)); 215 | // Container child container.Gtk.Table+TableChild 216 | this.label15 = new global::Gtk.Label (); 217 | this.label15.Name = "label15"; 218 | this.label15.LabelProp = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("Size"); 219 | this.container.Add (this.label15); 220 | global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.container [this.label15])); 221 | w14.TopAttach = ((uint)(2)); 222 | w14.BottomAttach = ((uint)(3)); 223 | w14.XOptions = ((global::Gtk.AttachOptions)(4)); 224 | w14.YOptions = ((global::Gtk.AttachOptions)(4)); 225 | // Container child container.Gtk.Table+TableChild 226 | this.label16 = new global::Gtk.Label (); 227 | this.label16.Name = "label16"; 228 | this.label16.LabelProp = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("Name:"); 229 | this.container.Add (this.label16); 230 | global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.container [this.label16])); 231 | w15.TopAttach = ((uint)(3)); 232 | w15.BottomAttach = ((uint)(4)); 233 | w15.XOptions = ((global::Gtk.AttachOptions)(4)); 234 | w15.YOptions = ((global::Gtk.AttachOptions)(4)); 235 | w1.Add (this.container); 236 | global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(w1 [this.container])); 237 | w16.Position = 0; 238 | w16.Expand = false; 239 | w16.Fill = false; 240 | // Internal child MaterialIconsGenerator.MainDialog.ActionArea 241 | global::Gtk.HButtonBox w17 = this.ActionArea; 242 | w17.Name = "dialog1_ActionArea"; 243 | w17.Spacing = 10; 244 | w17.BorderWidth = ((uint)(5)); 245 | w17.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); 246 | // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild 247 | this.buttonSource = new global::Gtk.Button (); 248 | this.buttonSource.CanFocus = true; 249 | this.buttonSource.Name = "buttonSource"; 250 | this.buttonSource.UseUnderline = true; 251 | this.buttonSource.Label = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("Icons Source"); 252 | w17.Add (this.buttonSource); 253 | global::Gtk.ButtonBox.ButtonBoxChild w18 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w17 [this.buttonSource])); 254 | w18.Expand = false; 255 | w18.Fill = false; 256 | // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild 257 | this.buttonOk = new global::Gtk.Button (); 258 | this.buttonOk.CanDefault = true; 259 | this.buttonOk.CanFocus = true; 260 | this.buttonOk.Name = "buttonOk"; 261 | this.buttonOk.UseUnderline = true; 262 | this.buttonOk.Label = global::Mono.Addins.AddinManager.CurrentLocalizer.GetString ("Add"); 263 | w17.Add (this.buttonOk); 264 | global::Gtk.ButtonBox.ButtonBoxChild w19 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w17 [this.buttonOk])); 265 | w19.Position = 1; 266 | w19.Expand = false; 267 | w19.Fill = false; 268 | // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild 269 | this.buttonCancel = new global::Gtk.Button (); 270 | this.buttonCancel.CanDefault = true; 271 | this.buttonCancel.CanFocus = true; 272 | this.buttonCancel.Name = "buttonCancel"; 273 | this.buttonCancel.UseStock = true; 274 | this.buttonCancel.UseUnderline = true; 275 | this.buttonCancel.Label = "gtk-close"; 276 | this.AddActionWidget (this.buttonCancel, -7); 277 | global::Gtk.ButtonBox.ButtonBoxChild w20 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w17 [this.buttonCancel])); 278 | w20.Position = 2; 279 | w20.Expand = false; 280 | w20.Fill = false; 281 | if ((this.Child != null)) { 282 | this.Child.ShowAll (); 283 | } 284 | this.DefaultWidth = 550; 285 | this.DefaultHeight = 293; 286 | this.Show (); 287 | this.comboSize.Changed += new global::System.EventHandler (this.OnComboSizeChanged); 288 | this.comboIcon.Changed += new global::System.EventHandler (this.OnComboIconChanged); 289 | this.comboColor.Changed += new global::System.EventHandler (this.OnComboColorChanged); 290 | this.buttonSource.Clicked += new global::System.EventHandler (this.OnButtonSourceClicked); 291 | this.buttonOk.Clicked += new global::System.EventHandler (this.OnButtonAddClicked); 292 | } 293 | } 294 | } 295 | -------------------------------------------------------------------------------- /src/Shared/IconColors.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Drawing; 4 | using System.Collections.Generic; 5 | 6 | namespace MaterialIcons.UI 7 | { 8 | public static class IconColors 9 | { 10 | private static bool ISRunningOnWindows () 11 | { 12 | int p = (int)Environment.OSVersion.Platform; 13 | if ((p == 4) || (p == 6) || (p == 128)) { 14 | return false; 15 | } else { 16 | return true; 17 | } 18 | } 19 | 20 | public static byte[] ReplaceColor (byte[] data, Color replacementColor) 21 | { 22 | var ignoredColor = ISRunningOnWindows () ? Color.FromArgb (0, 0, 0, 0) : Color.FromArgb (255, 0, 0, 0); 23 | using (var ms = new MemoryStream (data)) { 24 | var bitmap = new Bitmap (ms); 25 | for (var y = 0; y < bitmap.Height; y++) { 26 | for (var x = 0; x < bitmap.Width; x++) { 27 | var originalPixel = bitmap.GetPixel (x, y); 28 | if (originalPixel != ignoredColor) { 29 | bitmap.SetPixel (x, y, Color.FromArgb (originalPixel.A, replacementColor)); 30 | } 31 | } 32 | } 33 | var converter = new ImageConverter (); 34 | return (byte[])converter.ConvertTo (bitmap, typeof(byte[])); 35 | } 36 | } 37 | 38 | public static string NormalizeColor (string color) 39 | { 40 | return color.ToLower ().Replace (" ", ""); 41 | } 42 | 43 | public static string FixColor (string color) 44 | { 45 | return IsKnownColor (color) ? color : "black"; 46 | } 47 | 48 | public static bool IsKnownColor (string color) 49 | { 50 | color = NormalizeColor (color); 51 | return (color == "black" || color == "white" || color == "grey600"); 52 | } 53 | 54 | public static Color GetColor (string name) 55 | { 56 | var colorName = NormalizeColor (name); 57 | return Colors.ContainsKey (colorName) ? Colors [colorName] : Color.Black; 58 | } 59 | 60 | public static List KnownColors = new List () { 61 | "white", 62 | "black", 63 | "grey600" 64 | }; 65 | 66 | public static Dictionary Colors = new Dictionary () { 67 | { "blue_dark", Color.FromArgb (0, 153, 204) }, 68 | { "blue_light", Color.FromArgb (51, 181, 229) }, 69 | { "green_dark", Color.FromArgb (102, 153, 0) }, 70 | { "green_light", Color.FromArgb (153, 204, 0) }, 71 | { "purple_dark", Color.FromArgb (153, 51, 204) }, 72 | { "purple_light", Color.FromArgb (170, 102, 204) }, 73 | { "red_dark", Color.FromArgb (204, 0, 0) }, 74 | { "red_light", Color.FromArgb (255, 68, 68) }, 75 | { "yellow_dark", Color.FromArgb (255, 136, 0) }, 76 | { "yellow_light", Color.FromArgb (255, 187, 51) }, 77 | 78 | { "amber_50", ColorTranslator.FromHtml ("#fff8e1") }, 79 | { "amber_100", ColorTranslator.FromHtml ("#ffecb3") }, 80 | { "amber_200", ColorTranslator.FromHtml ("#ffe082") }, 81 | { "amber_300", ColorTranslator.FromHtml ("#ffd54f") }, 82 | { "amber_400", ColorTranslator.FromHtml ("#ffca28") }, 83 | { "amber_500", ColorTranslator.FromHtml ("#ffc107") }, 84 | { "amber_600", ColorTranslator.FromHtml ("#ffb300") }, 85 | { "amber_700", ColorTranslator.FromHtml ("#ffa000") }, 86 | { "amber_800", ColorTranslator.FromHtml ("#ff8f00") }, 87 | { "amber_900", ColorTranslator.FromHtml ("#ff6f00") }, 88 | { "amber_A100", ColorTranslator.FromHtml ("#ffe57f") }, 89 | { "amber_A200", ColorTranslator.FromHtml ("#ffd740") }, 90 | { "amber_A400", ColorTranslator.FromHtml ("#ffc400") }, 91 | { "amber_A700", ColorTranslator.FromHtml ("#ffab00") }, 92 | 93 | { "blue_50", ColorTranslator.FromHtml ("#e7e9fd") }, 94 | { "blue_100", ColorTranslator.FromHtml ("#d0d9ff") }, 95 | { "blue_200", ColorTranslator.FromHtml ("#afbfff") }, 96 | { "blue_300", ColorTranslator.FromHtml ("#91a7ff") }, 97 | { "blue_400", ColorTranslator.FromHtml ("#738ffe") }, 98 | { "blue_500", ColorTranslator.FromHtml ("#5677fc") }, 99 | { "blue_600", ColorTranslator.FromHtml ("#4e6cef") }, 100 | { "blue_700", ColorTranslator.FromHtml ("#455ede") }, 101 | { "blue_800", ColorTranslator.FromHtml ("#3b50ce") }, 102 | { "blue_900", ColorTranslator.FromHtml ("#2a36b1") }, 103 | { "blue_A100", ColorTranslator.FromHtml ("#a6baff") }, 104 | { "blue_A200", ColorTranslator.FromHtml ("#6889ff") }, 105 | { "blue_A400", ColorTranslator.FromHtml ("#4d73ff") }, 106 | { "blue_A700", ColorTranslator.FromHtml ("#4d69ff") }, 107 | 108 | { "blue_grey_50", ColorTranslator.FromHtml ("#eceff1") }, 109 | { "blue_grey_100", ColorTranslator.FromHtml ("#cfd8dc") }, 110 | { "blue_grey_200", ColorTranslator.FromHtml ("#b0bec5") }, 111 | { "blue_grey_300", ColorTranslator.FromHtml ("#90a4ae") }, 112 | { "blue_grey_400", ColorTranslator.FromHtml ("#78909c") }, 113 | { "blue_grey_500", ColorTranslator.FromHtml ("#607d8b") }, 114 | { "blue_grey_600", ColorTranslator.FromHtml ("#546e7a") }, 115 | { "blue_grey_700", ColorTranslator.FromHtml ("#455a64") }, 116 | { "blue_grey_800", ColorTranslator.FromHtml ("#37474f") }, 117 | { "blue_grey_900", ColorTranslator.FromHtml ("#263238") }, 118 | 119 | { "brown_50", ColorTranslator.FromHtml ("#efebe9") }, 120 | { "brown_100", ColorTranslator.FromHtml ("#d7ccc8") }, 121 | { "brown_200", ColorTranslator.FromHtml ("#bcaaa4") }, 122 | { "brown_300", ColorTranslator.FromHtml ("#a1887f") }, 123 | { "brown_400", ColorTranslator.FromHtml ("#8d6e63") }, 124 | { "brown_500", ColorTranslator.FromHtml ("#795548") }, 125 | { "brown_600", ColorTranslator.FromHtml ("#6d4c41") }, 126 | { "brown_700", ColorTranslator.FromHtml ("#5d4037") }, 127 | { "brown_800", ColorTranslator.FromHtml ("#4e342e") }, 128 | { "brown_900", ColorTranslator.FromHtml ("#3e2723") }, 129 | 130 | { "cyan_50", ColorTranslator.FromHtml ("#e0f7fa") }, 131 | { "cyan_100", ColorTranslator.FromHtml ("#b2ebf2") }, 132 | { "cyan_200", ColorTranslator.FromHtml ("#80deea") }, 133 | { "cyan_300", ColorTranslator.FromHtml ("#4dd0e1") }, 134 | { "cyan_400", ColorTranslator.FromHtml ("#26c6da") }, 135 | { "cyan_500", ColorTranslator.FromHtml ("#00bcd4") }, 136 | { "cyan_600", ColorTranslator.FromHtml ("#00acc1") }, 137 | { "cyan_700", ColorTranslator.FromHtml ("#0097a7") }, 138 | { "cyan_800", ColorTranslator.FromHtml ("#00838f") }, 139 | { "cyan_900", ColorTranslator.FromHtml ("#006064") }, 140 | { "cyan_A100", ColorTranslator.FromHtml ("#84ffff") }, 141 | { "cyan_A200", ColorTranslator.FromHtml ("#18ffff") }, 142 | { "cyan_A400", ColorTranslator.FromHtml ("#00e5ff") }, 143 | { "cyan_A700", ColorTranslator.FromHtml ("#00b8d4") }, 144 | 145 | { "dark_purple_50", ColorTranslator.FromHtml ("#ede7f6") }, 146 | { "dark_purple_100", ColorTranslator.FromHtml ("#d1c4e9") }, 147 | { "dark_purple_200", ColorTranslator.FromHtml ("#b39ddb") }, 148 | { "dark_purple_300", ColorTranslator.FromHtml ("#9575cd") }, 149 | { "dark_purple_400", ColorTranslator.FromHtml ("#7e57c2") }, 150 | { "dark_purple_500", ColorTranslator.FromHtml ("#673ab7") }, 151 | { "dark_purple_600", ColorTranslator.FromHtml ("#5e35b1") }, 152 | { "dark_purple_700", ColorTranslator.FromHtml ("#512da8") }, 153 | { "dark_purple_800", ColorTranslator.FromHtml ("#4527a0") }, 154 | { "dark_purple_900", ColorTranslator.FromHtml ("#311b92") }, 155 | { "dark_purple_A100", ColorTranslator.FromHtml ("#b388ff") }, 156 | { "dark_purple_A200", ColorTranslator.FromHtml ("#7c4dff") }, 157 | { "dark_purple_A400", ColorTranslator.FromHtml ("#651fff") }, 158 | { "dark_purple_A700", ColorTranslator.FromHtml ("#6200ea") }, 159 | 160 | { "deep_orange_50", ColorTranslator.FromHtml ("#fbe9e7") }, 161 | { "deep_orange_100", ColorTranslator.FromHtml ("#ffccbc") }, 162 | { "deep_orange_200", ColorTranslator.FromHtml ("#ffab91") }, 163 | { "deep_orange_300", ColorTranslator.FromHtml ("#ff8a65") }, 164 | { "deep_orange_400", ColorTranslator.FromHtml ("#ff7043") }, 165 | { "deep_orange_500", ColorTranslator.FromHtml ("#ff5722") }, 166 | { "deep_orange_600", ColorTranslator.FromHtml ("#f4511e") }, 167 | { "deep_orange_700", ColorTranslator.FromHtml ("#e64a19") }, 168 | { "deep_orange_800", ColorTranslator.FromHtml ("#d84315") }, 169 | { "deep_orange_900", ColorTranslator.FromHtml ("#bf360c") }, 170 | { "deep_orange_A100", ColorTranslator.FromHtml ("#ff9e80") }, 171 | { "deep_orange_A200", ColorTranslator.FromHtml ("#ff6e40") }, 172 | { "deep_orange_A400", ColorTranslator.FromHtml ("#ff3d00") }, 173 | { "deep_orange_A700", ColorTranslator.FromHtml ("#dd2c00") }, 174 | 175 | { "green_50", ColorTranslator.FromHtml ("#d0f8ce") }, 176 | { "green_100", ColorTranslator.FromHtml ("#a3e9a4") }, 177 | { "green_200", ColorTranslator.FromHtml ("#72d572") }, 178 | { "green_300", ColorTranslator.FromHtml ("#42bd41") }, 179 | { "green_400", ColorTranslator.FromHtml ("#2baf2b") }, 180 | { "green_500", ColorTranslator.FromHtml ("#259b24") }, 181 | { "green_600", ColorTranslator.FromHtml ("#0a8f08") }, 182 | { "green_700", ColorTranslator.FromHtml ("#0a7e07") }, 183 | { "green_800", ColorTranslator.FromHtml ("#056f00") }, 184 | { "green_900", ColorTranslator.FromHtml ("#0d5302") }, 185 | { "green_A100", ColorTranslator.FromHtml ("#a2f78d") }, 186 | { "green_A200", ColorTranslator.FromHtml ("#5af158") }, 187 | { "green_A400", ColorTranslator.FromHtml ("#14e715") }, 188 | { "green_A700", ColorTranslator.FromHtml ("#12c700") }, 189 | 190 | { "grey_50", ColorTranslator.FromHtml ("#fafafa") }, 191 | { "grey_100", ColorTranslator.FromHtml ("#f5f5f5") }, 192 | { "grey_200", ColorTranslator.FromHtml ("#eeeeee") }, 193 | { "grey_300", ColorTranslator.FromHtml ("#e0e0e0") }, 194 | { "grey_400", ColorTranslator.FromHtml ("#bdbdbd") }, 195 | { "grey_500", ColorTranslator.FromHtml ("#9e9e9e") }, 196 | { "grey_600", ColorTranslator.FromHtml ("#757575") }, 197 | { "grey_700", ColorTranslator.FromHtml ("#616161") }, 198 | { "grey_800", ColorTranslator.FromHtml ("#424242") }, 199 | { "grey_900", ColorTranslator.FromHtml ("#212121") }, 200 | { "grey_black_1000", ColorTranslator.FromHtml ("#000000") }, 201 | { "grey_white_1000", ColorTranslator.FromHtml ("#ffffff") }, 202 | 203 | { "indigo_50", ColorTranslator.FromHtml ("#e8eaf6") }, 204 | { "indigo_100", ColorTranslator.FromHtml ("#c5cae9") }, 205 | { "indigo_200", ColorTranslator.FromHtml ("#9fa8da") }, 206 | { "indigo_300", ColorTranslator.FromHtml ("#7986cb") }, 207 | { "indigo_400", ColorTranslator.FromHtml ("#5c6bc0") }, 208 | { "indigo_500", ColorTranslator.FromHtml ("#3f51b5") }, 209 | { "indigo_600", ColorTranslator.FromHtml ("#3949ab") }, 210 | { "indigo_700", ColorTranslator.FromHtml ("#303f9f") }, 211 | { "indigo_800", ColorTranslator.FromHtml ("#283593") }, 212 | { "indigo_900", ColorTranslator.FromHtml ("#1a237e") }, 213 | { "indigo_A100", ColorTranslator.FromHtml ("#8c9eff") }, 214 | { "indigo_A200", ColorTranslator.FromHtml ("#536dfe") }, 215 | { "indigo_A400", ColorTranslator.FromHtml ("#3d5afe") }, 216 | { "indigo_A700", ColorTranslator.FromHtml ("#304ffe") }, 217 | 218 | { "light_blue_50", ColorTranslator.FromHtml ("#e1f5fe") }, 219 | { "light_blue_100", ColorTranslator.FromHtml ("#b3e5fc") }, 220 | { "light_blue_200", ColorTranslator.FromHtml ("#81d4fa") }, 221 | { "light_blue_300", ColorTranslator.FromHtml ("#4fc3f7") }, 222 | { "light_blue_400", ColorTranslator.FromHtml ("#29b6f6") }, 223 | { "light_blue_500", ColorTranslator.FromHtml ("#03a9f4") }, 224 | { "light_blue_600", ColorTranslator.FromHtml ("#039be5") }, 225 | { "light_blue_700", ColorTranslator.FromHtml ("#0288d1") }, 226 | { "light_blue_800", ColorTranslator.FromHtml ("#0277bd") }, 227 | { "light_blue_900", ColorTranslator.FromHtml ("#01579b") }, 228 | { "light_blue_A100", ColorTranslator.FromHtml ("#80d8ff") }, 229 | { "light_blue_A200", ColorTranslator.FromHtml ("#40c4ff") }, 230 | { "light_blue_A400", ColorTranslator.FromHtml ("#00b0ff") }, 231 | { "light_blue_A700", ColorTranslator.FromHtml ("#0091ea") }, 232 | 233 | { "light_green_50", ColorTranslator.FromHtml ("#f1f8e9") }, 234 | { "light_green_100", ColorTranslator.FromHtml ("#dcedc8") }, 235 | { "light_green_200", ColorTranslator.FromHtml ("#c5e1a5") }, 236 | { "light_green_300", ColorTranslator.FromHtml ("#aed581") }, 237 | { "light_green_400", ColorTranslator.FromHtml ("#9ccc65") }, 238 | { "light_green_500", ColorTranslator.FromHtml ("#8bc34a") }, 239 | { "light_green_600", ColorTranslator.FromHtml ("#7cb342") }, 240 | { "light_green_700", ColorTranslator.FromHtml ("#689f38") }, 241 | { "light_green_800", ColorTranslator.FromHtml ("#558b2f") }, 242 | { "light_green_900", ColorTranslator.FromHtml ("#33691e") }, 243 | { "light_green_A100", ColorTranslator.FromHtml ("#ccff90") }, 244 | { "light_green_A200", ColorTranslator.FromHtml ("#b2ff59") }, 245 | { "light_green_A400", ColorTranslator.FromHtml ("#76ff03") }, 246 | { "light_green_A700", ColorTranslator.FromHtml ("#64dd17") }, 247 | 248 | { "lime_50", ColorTranslator.FromHtml ("#f9fbe7") }, 249 | { "lime_100", ColorTranslator.FromHtml ("#f0f4c3") }, 250 | { "lime_200", ColorTranslator.FromHtml ("#e6ee9c") }, 251 | { "lime_300", ColorTranslator.FromHtml ("#dce775") }, 252 | { "lime_400", ColorTranslator.FromHtml ("#d4e157") }, 253 | { "lime_500", ColorTranslator.FromHtml ("#cddc39") }, 254 | { "lime_600", ColorTranslator.FromHtml ("#c0ca33") }, 255 | { "lime_700", ColorTranslator.FromHtml ("#afb42b") }, 256 | { "lime_800", ColorTranslator.FromHtml ("#9e9d24") }, 257 | { "lime_900", ColorTranslator.FromHtml ("#827717") }, 258 | { "lime_A100", ColorTranslator.FromHtml ("#f4ff81") }, 259 | { "lime_A200", ColorTranslator.FromHtml ("#eeff41") }, 260 | { "lime_A400", ColorTranslator.FromHtml ("#c6ff00") }, 261 | { "lime_A700", ColorTranslator.FromHtml ("#aeea00") }, 262 | 263 | { "orange_50", ColorTranslator.FromHtml ("#fff3e0") }, 264 | { "orange_100", ColorTranslator.FromHtml ("#ffe0b2") }, 265 | { "orange_200", ColorTranslator.FromHtml ("#ffcc80") }, 266 | { "orange_300", ColorTranslator.FromHtml ("#ffb74d") }, 267 | { "orange_400", ColorTranslator.FromHtml ("#ffa726") }, 268 | { "orange_500", ColorTranslator.FromHtml ("#ff9800") }, 269 | { "orange_600", ColorTranslator.FromHtml ("#fb8c00") }, 270 | { "orange_700", ColorTranslator.FromHtml ("#f57c00") }, 271 | { "orange_800", ColorTranslator.FromHtml ("#ef6c00") }, 272 | { "orange_900", ColorTranslator.FromHtml ("#e65100") }, 273 | { "orange_A100", ColorTranslator.FromHtml ("#ffd180") }, 274 | { "orange_A200", ColorTranslator.FromHtml ("#ffab40") }, 275 | { "orange_A400", ColorTranslator.FromHtml ("#ff9100") }, 276 | { "orange_A700", ColorTranslator.FromHtml ("#ff6d00") }, 277 | 278 | { "pink_50", ColorTranslator.FromHtml ("#fce4ec") }, 279 | { "pink_100", ColorTranslator.FromHtml ("#f8bbd0") }, 280 | { "pink_200", ColorTranslator.FromHtml ("#f48fb1") }, 281 | { "pink_300", ColorTranslator.FromHtml ("#f06292") }, 282 | { "pink_400", ColorTranslator.FromHtml ("#ec407a") }, 283 | { "pink_500", ColorTranslator.FromHtml ("#e91e63") }, 284 | { "pink_600", ColorTranslator.FromHtml ("#d81b60") }, 285 | { "pink_700", ColorTranslator.FromHtml ("#c2185b") }, 286 | { "pink_800", ColorTranslator.FromHtml ("#ad1457") }, 287 | { "pink_900", ColorTranslator.FromHtml ("#880e4f") }, 288 | { "pink_A100", ColorTranslator.FromHtml ("#ff80ab") }, 289 | { "pink_A200", ColorTranslator.FromHtml ("#ff4081") }, 290 | { "pink_A400", ColorTranslator.FromHtml ("#f50057") }, 291 | { "pink_A700", ColorTranslator.FromHtml ("#c51162") }, 292 | 293 | { "purple_50", ColorTranslator.FromHtml ("#f3e5f5") }, 294 | { "purple_100", ColorTranslator.FromHtml ("#e1bee7") }, 295 | { "purple_200", ColorTranslator.FromHtml ("#ce93d8") }, 296 | { "purple_300", ColorTranslator.FromHtml ("#ba68c8") }, 297 | { "purple_400", ColorTranslator.FromHtml ("#ab47bc") }, 298 | { "purple_500", ColorTranslator.FromHtml ("#9c27b0") }, 299 | { "purple_600", ColorTranslator.FromHtml ("#8e24aa") }, 300 | { "purple_700", ColorTranslator.FromHtml ("#7b1fa2") }, 301 | { "purple_800", ColorTranslator.FromHtml ("#6a1b9a") }, 302 | { "purple_900", ColorTranslator.FromHtml ("#4a148c") }, 303 | { "purple_A100", ColorTranslator.FromHtml ("#ea80fc") }, 304 | { "purple_A200", ColorTranslator.FromHtml ("#e040fb") }, 305 | { "purple_A400", ColorTranslator.FromHtml ("#d500f9") }, 306 | { "purple_A700", ColorTranslator.FromHtml ("#aa00ff") }, 307 | 308 | { "red_50", ColorTranslator.FromHtml ("#fde0dc") }, 309 | { "red_100", ColorTranslator.FromHtml ("#f9bdbb") }, 310 | { "red_200", ColorTranslator.FromHtml ("#f69988") }, 311 | { "red_300", ColorTranslator.FromHtml ("#f36c60") }, 312 | { "red_400", ColorTranslator.FromHtml ("#e84e40") }, 313 | { "red_500", ColorTranslator.FromHtml ("#e51c23") }, 314 | { "red_600", ColorTranslator.FromHtml ("#dd191d") }, 315 | { "red_700", ColorTranslator.FromHtml ("#d01716") }, 316 | { "red_800", ColorTranslator.FromHtml ("#c41411") }, 317 | { "red_900", ColorTranslator.FromHtml ("#b0120a") }, 318 | { "red_A100", ColorTranslator.FromHtml ("#ff7997") }, 319 | { "red_A200", ColorTranslator.FromHtml ("#ff5177") }, 320 | { "red_A400", ColorTranslator.FromHtml ("#ff2d6f") }, 321 | { "red_A700", ColorTranslator.FromHtml ("#e00032") }, 322 | 323 | { "teal_50", ColorTranslator.FromHtml ("#e0f2f1") }, 324 | { "teal_100", ColorTranslator.FromHtml ("#b2dfdb") }, 325 | { "teal_200", ColorTranslator.FromHtml ("#80cbc4") }, 326 | { "teal_300", ColorTranslator.FromHtml ("#4db6ac") }, 327 | { "teal_400", ColorTranslator.FromHtml ("#26a69a") }, 328 | { "teal_500", ColorTranslator.FromHtml ("#9688") }, 329 | { "teal_600", ColorTranslator.FromHtml ("#00897b") }, 330 | { "teal_700", ColorTranslator.FromHtml ("#00796b") }, 331 | { "teal_800", ColorTranslator.FromHtml ("#00695c") }, 332 | { "teal_900", ColorTranslator.FromHtml ("#004d40") }, 333 | { "teal_A100", ColorTranslator.FromHtml ("#a7ffeb") }, 334 | { "teal_A200", ColorTranslator.FromHtml ("#64ffda") }, 335 | { "teal_A400", ColorTranslator.FromHtml ("#1de9b6") }, 336 | { "teal_A700", ColorTranslator.FromHtml ("#00bfa5") }, 337 | 338 | { "yellow_50", ColorTranslator.FromHtml ("#fffde7") }, 339 | { "yellow_100", ColorTranslator.FromHtml ("#fff9c4") }, 340 | { "yellow_200", ColorTranslator.FromHtml ("#fff59d") }, 341 | { "yellow_300", ColorTranslator.FromHtml ("#fff176") }, 342 | { "yellow_400", ColorTranslator.FromHtml ("#ffee58") }, 343 | { "yellow_500", ColorTranslator.FromHtml ("#ffeb3b") }, 344 | { "yellow_600", ColorTranslator.FromHtml ("#fdd835") }, 345 | { "yellow_700", ColorTranslator.FromHtml ("#fbc02d") }, 346 | { "yellow_800", ColorTranslator.FromHtml ("#f9a825") }, 347 | { "yellow_900", ColorTranslator.FromHtml ("#f57f17") }, 348 | { "yellow_A100", ColorTranslator.FromHtml ("#ffff8d") }, 349 | { "yellow_A200", ColorTranslator.FromHtml ("#ffff00") }, 350 | { "yellow_A400", ColorTranslator.FromHtml ("#ffea00") }, 351 | { "yellow_A700", ColorTranslator.FromHtml ("#ffd600") } 352 | }; 353 | } 354 | } 355 | 356 | -------------------------------------------------------------------------------- /src/Xamarin Studio/gtk-gui/gui.stetic: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | .. 5 | 2.12 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | Material Icon Generator 14 | CenterOnParent 15 | True 16 | False 17 | 3 18 | False 19 | 20 | 21 | 22 | 2 23 | 24 | 25 | 26 | 500 27 | 7 28 | 6 29 | 6 30 | 6 31 | 9 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | True 54 | hdpi 55 | True 56 | True 57 | True 58 | True 59 | 60 | 61 | 4 62 | 5 63 | 2 64 | 3 65 | True 66 | Fill 67 | Fill 68 | False 69 | True 70 | False 71 | False 72 | True 73 | False 74 | 75 | 76 | 77 | 78 | 79 | True 80 | mdpi 81 | True 82 | True 83 | True 84 | True 85 | 86 | 87 | 4 88 | 5 89 | 1 90 | 2 91 | True 92 | Fill 93 | Fill 94 | False 95 | True 96 | False 97 | False 98 | True 99 | False 100 | 101 | 102 | 103 | 104 | 105 | True 106 | xhdpi 107 | True 108 | True 109 | True 110 | True 111 | 112 | 113 | 5 114 | 6 115 | 1 116 | 2 117 | True 118 | Fill 119 | Fill 120 | False 121 | True 122 | False 123 | False 124 | True 125 | False 126 | 127 | 128 | 129 | 130 | 131 | True 132 | xxhdpi 133 | True 134 | True 135 | True 136 | True 137 | 138 | 139 | 5 140 | 6 141 | 2 142 | 3 143 | True 144 | Fill 145 | Fill 146 | False 147 | True 148 | False 149 | False 150 | True 151 | False 152 | 153 | 154 | 155 | 156 | 157 | True 158 | xxxhdpi 159 | True 160 | True 161 | True 162 | True 163 | 164 | 165 | 6 166 | 7 167 | 1 168 | 2 169 | True 170 | Fill 171 | Fill 172 | False 173 | True 174 | False 175 | False 176 | True 177 | False 178 | 179 | 180 | 181 | 182 | 183 | True 184 | 185 | 186 | 187 | 188 | 1 189 | 2 190 | 1 191 | 2 192 | True 193 | Fill 194 | Fill 195 | False 196 | True 197 | False 198 | False 199 | True 200 | False 201 | 202 | 203 | 204 | 205 | 206 | True 207 | 208 | 209 | 210 | 211 | 1 212 | 3 213 | True 214 | Fill 215 | Fill 216 | False 217 | True 218 | False 219 | False 220 | True 221 | False 222 | 223 | 224 | 225 | 226 | 227 | True 228 | True 229 | 230 | 231 | 232 | 233 | 2 234 | 3 235 | 1 236 | 2 237 | True 238 | Fill 239 | Fill 240 | False 241 | True 242 | False 243 | False 244 | True 245 | False 246 | 247 | 248 | 249 | 250 | 251 | True 252 | True 253 | 254 | 255 | 256 | 3 257 | 4 258 | 1 259 | 3 260 | True 261 | Fill 262 | True 263 | True 264 | False 265 | False 266 | True 267 | False 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 7 276 | 3 277 | 6 278 | False 279 | Fill 280 | True 281 | True 282 | False 283 | False 284 | True 285 | False 286 | 287 | 288 | 289 | 290 | 291 | Icon: 292 | 293 | 294 | True 295 | Fill 296 | Fill 297 | False 298 | True 299 | False 300 | False 301 | True 302 | False 303 | 304 | 305 | 306 | 307 | 308 | Color: 309 | 310 | 311 | 1 312 | 2 313 | True 314 | Fill 315 | Fill 316 | False 317 | True 318 | False 319 | False 320 | True 321 | False 322 | 323 | 324 | 325 | 326 | 327 | Size 328 | 329 | 330 | 2 331 | 3 332 | True 333 | Fill 334 | Fill 335 | False 336 | True 337 | False 338 | False 339 | True 340 | False 341 | 342 | 343 | 344 | 345 | 346 | Name: 347 | 348 | 349 | 3 350 | 4 351 | True 352 | Fill 353 | Fill 354 | False 355 | True 356 | False 357 | False 358 | True 359 | False 360 | 361 | 362 | 363 | 364 | 0 365 | True 366 | False 367 | False 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 10 379 | 5 380 | 3 381 | End 382 | 383 | 384 | 385 | True 386 | TextOnly 387 | Icons Source 388 | True 389 | -1 390 | 391 | 392 | 393 | False 394 | False 395 | 396 | 397 | 398 | 399 | 400 | True 401 | True 402 | TextOnly 403 | Add 404 | True 405 | -1 406 | 407 | 408 | 409 | 1 410 | False 411 | False 412 | 413 | 414 | 415 | 416 | 417 | True 418 | True 419 | True 420 | StockItem 421 | gtk-close 422 | -7 423 | gtk-close 424 | 425 | 426 | 2 427 | False 428 | False 429 | 430 | 431 | 432 | 433 | 434 | --------------------------------------------------------------------------------