1 using System.Drawing; 2 using System.IO; 3 using System.Linq; 4 using System.Windows.Forms; 5 using System.Xml.Linq; 6 7 namespace WeifenLuo.WinFormsUI.Docking 8 { 9 public class DockPanelColorPalette 10 { DockPanelColorPalette(IPaletteFactory factory)11 public DockPanelColorPalette(IPaletteFactory factory) 12 { 13 factory.Initialize(this); 14 } 15 16 public AutoHideStripPalette AutoHideStripDefault { get; } = new AutoHideStripPalette(); 17 public AutoHideStripPalette AutoHideStripHovered { get; } = new AutoHideStripPalette(); 18 public ButtonPalette OverflowButtonDefault { get; } = new ButtonPalette(); 19 public HoveredButtonPalette OverflowButtonHovered { get; } = new HoveredButtonPalette(); 20 public HoveredButtonPalette OverflowButtonPressed { get; } = new HoveredButtonPalette(); 21 public TabPalette TabSelectedActive { get; } = new TabPalette(); 22 public TabPalette TabSelectedInactive { get; } = new TabPalette(); 23 public UnselectedTabPalette TabUnselected { get; } = new UnselectedTabPalette(); 24 public TabPalette TabUnselectedHovered { get; } = new TabPalette(); 25 public HoveredButtonPalette TabButtonSelectedActiveHovered { get; } = new HoveredButtonPalette(); 26 public HoveredButtonPalette TabButtonSelectedActivePressed { get; } = new HoveredButtonPalette(); 27 public HoveredButtonPalette TabButtonSelectedInactiveHovered { get; } = new HoveredButtonPalette(); 28 public HoveredButtonPalette TabButtonSelectedInactivePressed { get; } = new HoveredButtonPalette(); 29 public HoveredButtonPalette TabButtonUnselectedTabHoveredButtonHovered { get; } = new HoveredButtonPalette(); 30 public HoveredButtonPalette TabButtonUnselectedTabHoveredButtonPressed { get; } = new HoveredButtonPalette(); 31 public MainWindowPalette MainWindowActive { get; } = new MainWindowPalette(); 32 public MainWindowStatusBarPalette MainWindowStatusBarDefault { get; } = new MainWindowStatusBarPalette(); 33 public ToolWindowCaptionPalette ToolWindowCaptionActive { get; } = new ToolWindowCaptionPalette(); 34 public ToolWindowCaptionPalette ToolWindowCaptionInactive { get; } = new ToolWindowCaptionPalette(); 35 public HoveredButtonPalette ToolWindowCaptionButtonActiveHovered { get; } = new HoveredButtonPalette(); 36 public HoveredButtonPalette ToolWindowCaptionButtonPressed { get; } = new HoveredButtonPalette(); 37 public HoveredButtonPalette ToolWindowCaptionButtonInactiveHovered { get; } = new HoveredButtonPalette(); 38 public ToolWindowTabPalette ToolWindowTabSelectedActive { get; } = new ToolWindowTabPalette(); 39 public ToolWindowTabPalette ToolWindowTabSelectedInactive { get; } = new ToolWindowTabPalette(); 40 public ToolWindowUnselectedTabPalette ToolWindowTabUnselected { get; } = new ToolWindowUnselectedTabPalette(); 41 public ToolWindowTabPalette ToolWindowTabUnselectedHovered { get; } = new ToolWindowTabPalette(); 42 public Color ToolWindowBorder { get; set; } 43 public Color ToolWindowSeparator { get; set; } 44 public DockTargetPalette DockTarget { get; } = new DockTargetPalette(); 45 public CommandBarMenuPalette CommandBarMenuDefault { get; } = new CommandBarMenuPalette(); 46 public CommandBarMenuPopupPalette CommandBarMenuPopupDefault { get; } = new CommandBarMenuPopupPalette(); 47 public CommandBarMenuPopupDisabledPalette CommandBarMenuPopupDisabled { get; } = new CommandBarMenuPopupDisabledPalette(); 48 public CommandBarMenuPopupHoveredPalette CommandBarMenuPopupHovered { get; } = new CommandBarMenuPopupHoveredPalette(); 49 public CommandBarMenuTopLevelHeaderPalette CommandBarMenuTopLevelHeaderHovered { get; } = new CommandBarMenuTopLevelHeaderPalette(); 50 public CommandBarToolbarPalette CommandBarToolbarDefault { get; } = new CommandBarToolbarPalette(); 51 public CommandBarToolbarButtonCheckedPalette CommandBarToolbarButtonChecked { get; } = new CommandBarToolbarButtonCheckedPalette(); 52 public CommandBarToolbarButtonCheckedHoveredPalette CommandBarToolbarButtonCheckedHovered { get; } = new CommandBarToolbarButtonCheckedHoveredPalette(); 53 public CommandBarToolbarButtonPalette CommandBarToolbarButtonDefault { get; } = new CommandBarToolbarButtonPalette(); 54 public CommandBarToolbarButtonHoveredPalette CommandBarToolbarButtonHovered { get; } = new CommandBarToolbarButtonHoveredPalette(); 55 public CommandBarToolbarButtonPressedPalette CommandBarToolbarButtonPressed { get; } = new CommandBarToolbarButtonPressedPalette(); 56 public CommandBarToolbarOverflowButtonPalette CommandBarToolbarOverflowHovered { get; } = new CommandBarToolbarOverflowButtonPalette(); 57 public CommandBarToolbarOverflowButtonPalette CommandBarToolbarOverflowPressed { get; } = new CommandBarToolbarOverflowButtonPalette(); 58 59 public VisualStudioColorTable ColorTable { get; } 60 } 61 62 public class CommandBarToolbarOverflowButtonPalette 63 { 64 public Color Background { get; set; } 65 public Color Glyph { get; set; } 66 } 67 68 public class CommandBarToolbarButtonPressedPalette 69 { 70 public Color Arrow { get; set; } 71 public Color Background { get; set; } 72 public Color Text { get; set; } 73 } 74 75 public class CommandBarToolbarButtonHoveredPalette 76 { 77 public Color Arrow { get; set; } 78 public Color Separator { get; set; } 79 } 80 81 public class CommandBarToolbarButtonPalette 82 { 83 public Color Arrow { get; set; } 84 } 85 86 public class CommandBarToolbarButtonCheckedHoveredPalette 87 { 88 public Color Border { get; set; } 89 public Color Text { get; set; } 90 } 91 92 public class CommandBarToolbarButtonCheckedPalette 93 { 94 public Color Background { get; set; } 95 public Color Border { get; set; } 96 public Color Text { get; set; } 97 } 98 99 public class CommandBarToolbarPalette 100 { 101 public Color Background { get; set; } 102 public Color Border { get; set; } 103 public Color Grip { get; set; } 104 public Color OverflowButtonBackground { get; set; } 105 public Color OverflowButtonGlyph { get; set; } 106 public Color Separator { get; set; } 107 public Color SeparatorAccent { get; set; } 108 public Color Tray { get; set; } 109 } 110 111 public class CommandBarMenuTopLevelHeaderPalette 112 { 113 public Color Background { get; set; } 114 public Color Border { get; set; } 115 public Color Text { get; set; } 116 } 117 118 public class CommandBarMenuPopupHoveredPalette 119 { 120 public Color Arrow { get; set; } 121 public Color Checkmark { get; set; } 122 public Color CheckmarkBackground { get; set; } 123 public Color ItemBackground { get; set; } 124 public Color Text { get; set; } 125 } 126 127 public class CommandBarMenuPopupDisabledPalette 128 { 129 public Color Checkmark { get; set; } 130 public Color CheckmarkBackground { get; set; } 131 public Color Text { get; set; } 132 } 133 134 public class CommandBarMenuPopupPalette 135 { 136 public Color Arrow { get; set; } 137 public Color BackgroundBottom { get; set; } 138 public Color BackgroundTop { get; set; } 139 public Color Border { get; set; } 140 public Color Checkmark { get; set; } 141 public Color CheckmarkBackground { get; set; } 142 public Color IconBackground { get; set; } 143 public Color Separator { get; set; } 144 } 145 146 public class CommandBarMenuPalette 147 { 148 public Color Background { get; set; } 149 public Color Text { get; set; } 150 } 151 152 public interface IPaletteFactory 153 { Initialize(DockPanelColorPalette palette)154 void Initialize(DockPanelColorPalette palette); 155 } 156 157 public class DockTargetPalette 158 { 159 public Color Background { get; set; } 160 public Color Border { get; set; } 161 public Color ButtonBackground { get; set; } 162 public Color ButtonBorder { get; set; } 163 public Color GlyphBackground { get; set; } 164 public Color GlyphArrow { get; set; } 165 public Color GlyphBorder { get; set; } 166 } 167 168 public class HoveredButtonPalette 169 { 170 public Color Background { get; set; } 171 public Color Border { get; set; } 172 public Color Glyph { get; set; } 173 } 174 175 public class ButtonPalette 176 { 177 public Color Glyph { get; set; } 178 } 179 180 public class MainWindowPalette 181 { 182 public Color Background { get; set; } 183 } 184 185 public class MainWindowStatusBarPalette 186 { 187 public Color Background { get; set; } 188 public Color Highlight { get; set; } 189 public Color HighlightText { get; set; } 190 public Color ResizeGrip { get; set; } 191 public Color ResizeGripAccent { get; set; } 192 public Color Text { get; set; } 193 } 194 195 public class ToolWindowTabPalette 196 { 197 public Color Background { get; set; } 198 public Color Text { get; set; } 199 } 200 201 public class ToolWindowUnselectedTabPalette 202 { 203 public Color Background { get; set; } // VS2013 204 public Color Text { get; set; } 205 } 206 207 public class ToolWindowCaptionPalette 208 { 209 public Color Background { get; set; } 210 public Color Button { get; set; } 211 public Color Grip { get; set; } 212 public Color Text { get; set; } 213 } 214 215 public class TabPalette 216 { 217 public Color Background { get; set; } 218 public Color Button { get; set; } 219 public Color Text { get; set; } 220 } 221 222 public class UnselectedTabPalette 223 { 224 public Color Background { get; set; } // VS2013 only 225 public Color Text { get; set; } 226 } 227 228 public class AutoHideStripPalette 229 { 230 public Color Background { get; set; } 231 public Color Border { get; set; } 232 public Color Text { get; set; } 233 } 234 } 235