1 // Permission is hereby granted, free of charge, to any person obtaining 2 // a copy of this software and associated documentation files (the 3 // "Software"), to deal in the Software without restriction, including 4 // without limitation the rights to use, copy, modify, merge, publish, 5 // distribute, sublicense, and/or sell copies of the Software, and to 6 // permit persons to whom the Software is furnished to do so, subject to 7 // the following conditions: 8 // 9 // The above copyright notice and this permission notice shall be 10 // included in all copies or substantial portions of the Software. 11 // 12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 13 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 14 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 15 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 16 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 17 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 18 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 // 20 // Copyright (c) 2004-2005 Novell, Inc. 21 // 22 // Authors: 23 // Jordi Mas i Hernandez, jordi@ximian.com 24 // Peter Dennis Bartok, pbartok@novell.com 25 // 26 27 using System.Collections; 28 using System.Drawing; 29 using System.Drawing.Drawing2D; 30 using System.Reflection; 31 32 namespace System.Windows.Forms 33 { 34 internal enum UIIcon { 35 PlacesRecentDocuments, 36 PlacesDesktop, 37 PlacesPersonal, 38 PlacesMyComputer, 39 PlacesMyNetwork, 40 MessageBoxError, 41 MessageBoxQuestion, 42 MessageBoxWarning, 43 MessageBoxInfo, 44 45 NormalFolder 46 } 47 48 internal struct CPColor { 49 internal Color Dark; 50 internal Color DarkDark; 51 internal Color Light; 52 internal Color LightLight; 53 54 internal static CPColor Empty; 55 } 56 57 // Implements a pool of system resources 58 internal class SystemResPool 59 { 60 private Hashtable pens = new Hashtable (); 61 private Hashtable dashpens = new Hashtable (); 62 private Hashtable sizedpens = new Hashtable (); 63 private Hashtable solidbrushes = new Hashtable (); 64 private Hashtable hatchbrushes = new Hashtable (); 65 private Hashtable uiImages = new Hashtable(); 66 private Hashtable cpcolors = new Hashtable (); 67 SystemResPool()68 public SystemResPool () {} 69 GetPen(Color color)70 public Pen GetPen (Color color) 71 { 72 int hash = color.ToArgb (); 73 74 lock (pens) { 75 Pen res = pens [hash] as Pen; 76 if (res != null) 77 return res; 78 79 Pen pen = new Pen (color); 80 pens.Add (hash, pen); 81 return pen; 82 } 83 } 84 GetDashPen(Color color, DashStyle dashStyle)85 public Pen GetDashPen (Color color, DashStyle dashStyle) 86 { 87 string hash = color.ToString() + dashStyle; 88 89 lock (dashpens) { 90 Pen res = dashpens [hash] as Pen; 91 if (res != null) 92 return res; 93 94 Pen pen = new Pen (color); 95 pen.DashStyle = dashStyle; 96 dashpens [hash] = pen; 97 return pen; 98 } 99 } 100 GetSizedPen(Color color, int size)101 public Pen GetSizedPen (Color color, int size) 102 { 103 string hash = color.ToString () + size; 104 105 lock (sizedpens) { 106 Pen res = sizedpens [hash] as Pen; 107 if (res != null) 108 return res; 109 110 Pen pen = new Pen (color, size); 111 sizedpens [hash] = pen; 112 return pen; 113 } 114 } 115 GetSolidBrush(Color color)116 public SolidBrush GetSolidBrush (Color color) 117 { 118 int hash = color.ToArgb (); 119 120 lock (solidbrushes) { 121 SolidBrush res = solidbrushes [hash] as SolidBrush; 122 if (res != null) 123 return res; 124 125 SolidBrush brush = new SolidBrush (color); 126 solidbrushes.Add (hash, brush); 127 return brush; 128 } 129 } 130 GetHatchBrush(HatchStyle hatchStyle, Color foreColor, Color backColor)131 public HatchBrush GetHatchBrush (HatchStyle hatchStyle, Color foreColor, Color backColor) 132 { 133 string hash = ((int)hatchStyle).ToString () + foreColor.ToString () + backColor.ToString (); 134 135 lock (hatchbrushes) { 136 HatchBrush brush = (HatchBrush) hatchbrushes[hash]; 137 if (brush == null) { 138 brush = new HatchBrush (hatchStyle, foreColor, backColor); 139 hatchbrushes.Add (hash, brush); 140 } 141 return brush; 142 } 143 } 144 AddUIImage(Image image, string name, int size)145 public void AddUIImage (Image image, string name, int size) 146 { 147 string hash = name + size.ToString(); 148 149 lock (uiImages) { 150 if (uiImages.Contains (hash)) 151 return; 152 uiImages.Add (hash, image); 153 } 154 } 155 GetUIImage(string name, int size)156 public Image GetUIImage(string name, int size) 157 { 158 string hash = name + size.ToString(); 159 160 Image image = uiImages [hash] as Image; 161 162 return image; 163 } 164 GetCPColor(Color color)165 public CPColor GetCPColor (Color color) 166 { 167 lock (cpcolors) { 168 object tmp = cpcolors [color]; 169 170 if (tmp == null) { 171 CPColor cpcolor = new CPColor (); 172 cpcolor.Dark = ControlPaint.Dark (color); 173 cpcolor.DarkDark = ControlPaint.DarkDark (color); 174 cpcolor.Light = ControlPaint.Light (color); 175 cpcolor.LightLight = ControlPaint.LightLight (color); 176 177 cpcolors.Add (color, cpcolor); 178 179 return cpcolor; 180 } 181 182 return (CPColor)tmp; 183 } 184 } 185 } 186 187 internal abstract class Theme 188 { 189 protected Array syscolors; 190 Font default_font; 191 protected Color defaultWindowBackColor; 192 protected Color defaultWindowForeColor; 193 internal SystemResPool ResPool = new SystemResPool (); 194 private MethodInfo update; 195 Theme()196 protected Theme () 197 { 198 } 199 SetSystemColors(KnownColor kc, Color value)200 private void SetSystemColors (KnownColor kc, Color value) 201 { 202 if (update == null) { 203 Type known_colors = Type.GetType ("System.Drawing.KnownColors, " + Consts.AssemblySystem_Drawing); 204 if (known_colors != null) 205 update = known_colors.GetMethod ("Update", BindingFlags.Static | BindingFlags.Public); 206 } 207 if (update != null) 208 update.Invoke (null, new object [2] { (int)kc, value.ToArgb () }); 209 } 210 211 /* OS Feature support */ 212 public abstract Version Version { 213 get; 214 } 215 216 /* Default properties */ 217 public virtual Color ColorScrollBar { 218 get { return SystemColors.ScrollBar; } 219 set { SetSystemColors (KnownColor.ScrollBar, value); } 220 } 221 222 public virtual Color ColorDesktop { 223 get { return SystemColors.Desktop;} 224 set { SetSystemColors (KnownColor.Desktop, value); } 225 } 226 227 public virtual Color ColorActiveCaption { 228 get { return SystemColors.ActiveCaption;} 229 set { SetSystemColors (KnownColor.ActiveCaption, value); } 230 } 231 232 public virtual Color ColorInactiveCaption { 233 get { return SystemColors.InactiveCaption;} 234 set { SetSystemColors (KnownColor.InactiveCaption, value); } 235 } 236 237 public virtual Color ColorMenu { 238 get { return SystemColors.Menu;} 239 set { SetSystemColors (KnownColor.Menu, value); } 240 } 241 242 public virtual Color ColorWindow { 243 get { return SystemColors.Window;} 244 set { SetSystemColors (KnownColor.Window, value); } 245 } 246 247 public virtual Color ColorWindowFrame { 248 get { return SystemColors.WindowFrame;} 249 set { SetSystemColors (KnownColor.WindowFrame, value); } 250 } 251 252 public virtual Color ColorMenuText { 253 get { return SystemColors.MenuText;} 254 set { SetSystemColors (KnownColor.MenuText, value); } 255 } 256 257 public virtual Color ColorWindowText { 258 get { return SystemColors.WindowText;} 259 set { SetSystemColors (KnownColor.WindowText, value); } 260 } 261 262 public virtual Color ColorActiveCaptionText { 263 get { return SystemColors.ActiveCaptionText;} 264 set { SetSystemColors (KnownColor.ActiveCaptionText, value); } 265 } 266 267 public virtual Color ColorActiveBorder { 268 get { return SystemColors.ActiveBorder;} 269 set { SetSystemColors (KnownColor.ActiveBorder, value); } 270 } 271 272 public virtual Color ColorInactiveBorder{ 273 get { return SystemColors.InactiveBorder;} 274 set { SetSystemColors (KnownColor.InactiveBorder, value); } 275 } 276 277 public virtual Color ColorAppWorkspace { 278 get { return SystemColors.AppWorkspace;} 279 set { SetSystemColors (KnownColor.AppWorkspace, value); } 280 } 281 282 public virtual Color ColorHighlight { 283 get { return SystemColors.Highlight;} 284 set { SetSystemColors (KnownColor.Highlight, value); } 285 } 286 287 public virtual Color ColorHighlightText { 288 get { return SystemColors.HighlightText;} 289 set { SetSystemColors (KnownColor.HighlightText, value); } 290 } 291 292 public virtual Color ColorControl { 293 get { return SystemColors.Control;} 294 set { SetSystemColors (KnownColor.Control, value); } 295 } 296 297 public virtual Color ColorControlDark { 298 get { return SystemColors.ControlDark;} 299 set { SetSystemColors (KnownColor.ControlDark, value); } 300 } 301 302 public virtual Color ColorGrayText { 303 get { return SystemColors.GrayText;} 304 set { SetSystemColors (KnownColor.GrayText, value); } 305 } 306 307 public virtual Color ColorControlText { 308 get { return SystemColors.ControlText;} 309 set { SetSystemColors (KnownColor.ControlText, value); } 310 } 311 312 public virtual Color ColorInactiveCaptionText { 313 get { return SystemColors.InactiveCaptionText;} 314 set { SetSystemColors (KnownColor.InactiveCaptionText, value); } 315 } 316 317 public virtual Color ColorControlLight { 318 get { return SystemColors.ControlLight;} 319 set { SetSystemColors (KnownColor.ControlLight, value); } 320 } 321 322 public virtual Color ColorControlDarkDark { 323 get { return SystemColors.ControlDarkDark;} 324 set { SetSystemColors (KnownColor.ControlDarkDark, value); } 325 } 326 327 public virtual Color ColorControlLightLight { 328 get { return SystemColors.ControlLightLight;} 329 set { SetSystemColors (KnownColor.ControlLightLight, value); } 330 } 331 332 public virtual Color ColorInfoText { 333 get { return SystemColors.InfoText;} 334 set { SetSystemColors (KnownColor.InfoText, value); } 335 } 336 337 public virtual Color ColorInfo { 338 get { return SystemColors.Info;} 339 set { SetSystemColors (KnownColor.Info, value); } 340 } 341 342 public virtual Color ColorHotTrack { 343 get { return SystemColors.HotTrack;} 344 set { SetSystemColors (KnownColor.HotTrack, value);} 345 } 346 347 public virtual Color DefaultControlBackColor { 348 get { return ColorControl; } 349 set { ColorControl = value; } 350 } 351 352 public virtual Color DefaultControlForeColor { 353 get { return ColorControlText; } 354 set { ColorControlText = value; } 355 } 356 357 public virtual Font DefaultFont { 358 get { return default_font ?? (default_font = SystemFonts.DefaultFont); } 359 } 360 361 public virtual Color DefaultWindowBackColor { 362 get { return defaultWindowBackColor; } 363 } 364 365 public virtual Color DefaultWindowForeColor { 366 get { return defaultWindowForeColor; } 367 } 368 GetColor(XplatUIWin32.GetSysColorIndex idx)369 public virtual Color GetColor (XplatUIWin32.GetSysColorIndex idx) 370 { 371 return (Color) syscolors.GetValue ((int)idx); 372 } 373 SetColor(XplatUIWin32.GetSysColorIndex idx, Color color)374 public virtual void SetColor (XplatUIWin32.GetSysColorIndex idx, Color color) 375 { 376 syscolors.SetValue (color, (int) idx); 377 } 378 379 // Theme/UI specific defaults 380 public virtual ArrangeDirection ArrangeDirection { 381 get { 382 return ArrangeDirection.Down; 383 } 384 } 385 386 public virtual ArrangeStartingPosition ArrangeStartingPosition { 387 get { 388 return ArrangeStartingPosition.BottomLeft; 389 } 390 } 391 392 public virtual int BorderMultiplierFactor { get { return 1; } } 393 394 public virtual Size BorderSizableSize { 395 get { 396 return new Size (3, 3); 397 } 398 } 399 400 public virtual Size Border3DSize { 401 get { 402 return XplatUI.Border3DSize; 403 } 404 } 405 406 public virtual Size BorderStaticSize { 407 get { 408 return new Size(1, 1); 409 } 410 } 411 412 public virtual Size BorderSize { 413 get { 414 return XplatUI.BorderSize; 415 } 416 } 417 418 public virtual Size CaptionButtonSize { 419 get { 420 return XplatUI.CaptionButtonSize; 421 } 422 } 423 424 public virtual int CaptionHeight { 425 get { 426 return XplatUI.CaptionHeight; 427 } 428 } 429 430 public virtual Size DoubleClickSize { 431 get { 432 return new Size(4, 4); 433 } 434 } 435 436 public virtual int DoubleClickTime { 437 get { 438 return XplatUI.DoubleClickTime; 439 } 440 } 441 442 public virtual Size FixedFrameBorderSize { 443 get { 444 return XplatUI.FixedFrameBorderSize; 445 } 446 } 447 448 public virtual Size FrameBorderSize { 449 get { 450 return XplatUI.FrameBorderSize; 451 } 452 } 453 454 public virtual int HorizontalFocusThickness { get { return 1; } } 455 456 public virtual int HorizontalScrollBarArrowWidth { 457 get { 458 return 16; 459 } 460 } 461 462 public virtual int HorizontalScrollBarHeight { 463 get { 464 return 16; 465 } 466 } 467 468 public virtual int HorizontalScrollBarThumbWidth { 469 get { 470 return 16; 471 } 472 } 473 474 public virtual Size IconSpacingSize { 475 get { 476 return new Size(75, 75); 477 } 478 } 479 480 public virtual bool MenuAccessKeysUnderlined { 481 get { 482 return XplatUI.MenuAccessKeysUnderlined; 483 } 484 } 485 486 public virtual Size MenuBarButtonSize { 487 get { return XplatUI.MenuBarButtonSize; } 488 } 489 490 public virtual Size MenuButtonSize { 491 get { 492 return XplatUI.MenuButtonSize; 493 } 494 } 495 496 public virtual Size MenuCheckSize { 497 get { 498 return new Size(13, 13); 499 } 500 } 501 502 public virtual Font MenuFont { 503 get { 504 return default_font ?? (default_font = SystemFonts.DefaultFont); 505 } 506 } 507 508 public virtual int MenuHeight { 509 get { 510 return XplatUI.MenuHeight; 511 } 512 } 513 514 public virtual int MouseWheelScrollLines { 515 get { 516 return 3; 517 } 518 } 519 520 public virtual bool RightAlignedMenus { 521 get { 522 return false; 523 } 524 } 525 526 public virtual Size ToolWindowCaptionButtonSize { 527 get { 528 return XplatUI.ToolWindowCaptionButtonSize; 529 } 530 } 531 532 public virtual int ToolWindowCaptionHeight { 533 get { 534 return XplatUI.ToolWindowCaptionHeight; 535 } 536 } 537 538 public virtual int VerticalFocusThickness { get { return 1; } } 539 540 public virtual int VerticalScrollBarArrowHeight { 541 get { 542 return 16; 543 } 544 } 545 546 public virtual int VerticalScrollBarThumbHeight { 547 get { 548 return 16; 549 } 550 } 551 552 public virtual int VerticalScrollBarWidth { 553 get { 554 return 16; 555 } 556 } 557 558 public abstract Font WindowBorderFont { 559 get; 560 } 561 Clamp(int value, int lower, int upper)562 public int Clamp (int value, int lower, int upper) 563 { 564 if (value < lower) return lower; 565 else if (value > upper) return upper; 566 else return value; 567 } 568 569 [MonoInternalNote ("Figure out where to point for My Network Places")] Places(UIIcon index)570 public virtual string Places(UIIcon index) { 571 switch (index) { 572 case UIIcon.PlacesRecentDocuments: { 573 // Default = "Recent Documents" 574 return Environment.GetFolderPath(Environment.SpecialFolder.Recent); 575 } 576 577 case UIIcon.PlacesDesktop: { 578 // Default = "Desktop" 579 return Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 580 } 581 582 case UIIcon.PlacesPersonal: { 583 // Default = "My Documents" 584 return Environment.GetFolderPath(Environment.SpecialFolder.Personal); 585 } 586 587 case UIIcon.PlacesMyComputer: { 588 // Default = "My Computer" 589 return Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); 590 } 591 592 case UIIcon.PlacesMyNetwork: { 593 // Default = "My Network Places" 594 return "/tmp"; 595 } 596 597 default: { 598 throw new ArgumentOutOfRangeException("index", index, "Unsupported place"); 599 } 600 } 601 } 602 603 // 604 // This routine fetches images embedded as assembly resources (not 605 // resgen resources). It optionally scales the image to fit the 606 // specified size x dimension (it adjusts y automatically to fit that). 607 // GetSizedResourceImage(string name, int width)608 private Image GetSizedResourceImage(string name, int width) 609 { 610 Image image = ResPool.GetUIImage (name, width); 611 if (image != null) 612 return image; 613 614 string fullname; 615 616 if (width > 0) { 617 // Try name_width 618 fullname = String.Format("{1}_{0}", name, width); 619 image = ResourceImageLoader.Get (fullname); 620 if (image != null){ 621 ResPool.AddUIImage (image, name, width); 622 return image; 623 } 624 } 625 626 // Just try name 627 image = ResourceImageLoader.Get (name); 628 if (image == null) 629 return null; 630 631 ResPool.AddUIImage (image, name, 0); 632 if (image.Width != width && width != 0){ 633 Console.Error.WriteLine ("warning: requesting icon that not been tuned {0}_{1} {2}", width, name, image.Width); 634 int height = (image.Height * width)/image.Width; 635 Bitmap b = new Bitmap (width, height); 636 using (Graphics g = Graphics.FromImage (b)) 637 g.DrawImage (image, 0, 0, width, height); 638 ResPool.AddUIImage (b, name, width); 639 640 return b; 641 } 642 return image; 643 } 644 Images(UIIcon index)645 public virtual Image Images(UIIcon index) { 646 return Images(index, 0); 647 } 648 Images(UIIcon index, int size)649 public virtual Image Images(UIIcon index, int size) { 650 switch (index) { 651 case UIIcon.PlacesRecentDocuments: 652 return GetSizedResourceImage ("document-open.png", size); 653 case UIIcon.PlacesDesktop: 654 return GetSizedResourceImage ("user-desktop.png", size); 655 case UIIcon.PlacesPersonal: 656 return GetSizedResourceImage ("user-home.png", size); 657 case UIIcon.PlacesMyComputer: 658 return GetSizedResourceImage ("computer.png", size); 659 case UIIcon.PlacesMyNetwork: 660 return GetSizedResourceImage ("folder-remote.png", size); 661 662 // Icons for message boxes 663 case UIIcon.MessageBoxError: 664 return GetSizedResourceImage ("dialog-error.png", size); 665 case UIIcon.MessageBoxInfo: 666 return GetSizedResourceImage ("dialog-information.png", size); 667 case UIIcon.MessageBoxQuestion: 668 return GetSizedResourceImage ("dialog-question.png", size); 669 case UIIcon.MessageBoxWarning: 670 return GetSizedResourceImage ("dialog-warning.png", size); 671 672 // misc Icons 673 case UIIcon.NormalFolder: 674 return GetSizedResourceImage ("folder.png", size); 675 676 default: { 677 throw new ArgumentException("Invalid Icon type requested", "index"); 678 } 679 } 680 } 681 Images(string mimetype, string extension, int size)682 public virtual Image Images(string mimetype, string extension, int size) { 683 return null; 684 } 685 686 #region Principal Theme Methods 687 // To let the theme now that a change of defaults (colors, etc) was detected and force a re-read (and possible recreation of cached resources) ResetDefaults()688 public abstract void ResetDefaults(); 689 690 // If the theme writes directly to a window instead of a device context 691 public abstract bool DoubleBufferingSupported {get;} 692 #endregion // Principal Theme Methods 693 694 #region OwnerDraw Support DrawOwnerDrawBackground(DrawItemEventArgs e)695 public abstract void DrawOwnerDrawBackground (DrawItemEventArgs e); DrawOwnerDrawFocusRectangle(DrawItemEventArgs e)696 public abstract void DrawOwnerDrawFocusRectangle (DrawItemEventArgs e); 697 #endregion // OwnerDraw Support 698 699 #region Button CalculateButtonAutoSize(Button button)700 public abstract Size CalculateButtonAutoSize (Button button); CalculateButtonTextAndImageLayout(Graphics g, ButtonBase b, out Rectangle textRectangle, out Rectangle imageRectangle)701 public abstract void CalculateButtonTextAndImageLayout (Graphics g, ButtonBase b, out Rectangle textRectangle, out Rectangle imageRectangle); DrawButton(Graphics g, Button b, Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle)702 public abstract void DrawButton (Graphics g, Button b, Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle); DrawFlatButton(Graphics g, ButtonBase b, Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle)703 public abstract void DrawFlatButton (Graphics g, ButtonBase b, Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle); DrawPopupButton(Graphics g, Button b, Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle)704 public abstract void DrawPopupButton (Graphics g, Button b, Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle); 705 #endregion // Button 706 707 #region ButtonBase 708 // Drawing DrawButtonBase(Graphics dc, Rectangle clip_area, ButtonBase button)709 public abstract void DrawButtonBase(Graphics dc, Rectangle clip_area, ButtonBase button); 710 711 // Sizing 712 public abstract Size ButtonBaseDefaultSize{get;} 713 #endregion // ButtonBase 714 715 #region CheckBox CalculateCheckBoxAutoSize(CheckBox checkBox)716 public abstract Size CalculateCheckBoxAutoSize (CheckBox checkBox); CalculateCheckBoxTextAndImageLayout(ButtonBase b, Point offset, out Rectangle glyphArea, out Rectangle textRectangle, out Rectangle imageRectangle)717 public abstract void CalculateCheckBoxTextAndImageLayout (ButtonBase b, Point offset, out Rectangle glyphArea, out Rectangle textRectangle, out Rectangle imageRectangle); DrawCheckBox(Graphics g, CheckBox cb, Rectangle glyphArea, Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle)718 public abstract void DrawCheckBox (Graphics g, CheckBox cb, Rectangle glyphArea, Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle); DrawCheckBox(Graphics dc, Rectangle clip_area, CheckBox checkbox)719 public abstract void DrawCheckBox (Graphics dc, Rectangle clip_area, CheckBox checkbox); 720 721 #endregion // CheckBox 722 723 #region CheckedListBox 724 // Drawing DrawCheckedListBoxItem(CheckedListBox ctrl, DrawItemEventArgs e)725 public abstract void DrawCheckedListBoxItem (CheckedListBox ctrl, DrawItemEventArgs e); 726 #endregion // CheckedListBox 727 728 #region ComboBox 729 // Drawing DrawComboBoxItem(ComboBox ctrl, DrawItemEventArgs e)730 public abstract void DrawComboBoxItem (ComboBox ctrl, DrawItemEventArgs e); DrawFlatStyleComboButton(Graphics graphics, Rectangle rectangle, ButtonState state)731 public abstract void DrawFlatStyleComboButton (Graphics graphics, Rectangle rectangle, ButtonState state); ComboBoxDrawNormalDropDownButton(ComboBox comboBox, Graphics g, Rectangle clippingArea, Rectangle area, ButtonState state)732 public abstract void ComboBoxDrawNormalDropDownButton (ComboBox comboBox, Graphics g, Rectangle clippingArea, Rectangle area, ButtonState state); ComboBoxNormalDropDownButtonHasTransparentBackground(ComboBox comboBox, ButtonState state)733 public abstract bool ComboBoxNormalDropDownButtonHasTransparentBackground (ComboBox comboBox, ButtonState state); ComboBoxDropDownButtonHasHotElementStyle(ComboBox comboBox)734 public abstract bool ComboBoxDropDownButtonHasHotElementStyle (ComboBox comboBox); ComboBoxDrawBackground(ComboBox comboBox, Graphics g, Rectangle clippingArea, FlatStyle style)735 public abstract void ComboBoxDrawBackground (ComboBox comboBox, Graphics g, Rectangle clippingArea, FlatStyle style); CombBoxBackgroundHasHotElementStyle(ComboBox comboBox)736 public abstract bool CombBoxBackgroundHasHotElementStyle (ComboBox comboBox); 737 #endregion // ComboBox 738 739 #region Control GetLinkFont(Control control)740 public abstract Font GetLinkFont (Control control); 741 #endregion // Control 742 743 #region Datagrid 744 public abstract int DataGridPreferredColumnWidth { get; } 745 public abstract int DataGridMinimumColumnCheckBoxHeight { get; } 746 public abstract int DataGridMinimumColumnCheckBoxWidth { get; } 747 748 // Default colours 749 public abstract Color DataGridAlternatingBackColor { get; } 750 public abstract Color DataGridBackColor { get; } 751 public abstract Color DataGridBackgroundColor { get; } 752 public abstract Color DataGridCaptionBackColor { get; } 753 public abstract Color DataGridCaptionForeColor { get; } 754 public abstract Color DataGridGridLineColor { get; } 755 public abstract Color DataGridHeaderBackColor { get; } 756 public abstract Color DataGridHeaderForeColor { get; } 757 public abstract Color DataGridLinkColor { get; } 758 public abstract Color DataGridLinkHoverColor { get; } 759 public abstract Color DataGridParentRowsBackColor { get; } 760 public abstract Color DataGridParentRowsForeColor { get; } 761 public abstract Color DataGridSelectionBackColor { get; } 762 public abstract Color DataGridSelectionForeColor { get; } 763 // Paint DataGridPaint(PaintEventArgs pe, DataGrid grid)764 public abstract void DataGridPaint (PaintEventArgs pe, DataGrid grid); DataGridPaintCaption(Graphics g, Rectangle clip, DataGrid grid)765 public abstract void DataGridPaintCaption (Graphics g, Rectangle clip, DataGrid grid); DataGridPaintColumnHeaders(Graphics g, Rectangle clip, DataGrid grid)766 public abstract void DataGridPaintColumnHeaders (Graphics g, Rectangle clip, DataGrid grid); DataGridPaintColumnHeader(Graphics g, Rectangle bounds, DataGrid grid, int col)767 public abstract void DataGridPaintColumnHeader (Graphics g, Rectangle bounds, DataGrid grid, int col); DataGridPaintRowContents(Graphics g, int row, Rectangle row_rect, bool is_newrow, Rectangle clip, DataGrid grid)768 public abstract void DataGridPaintRowContents (Graphics g, int row, Rectangle row_rect, bool is_newrow, Rectangle clip, DataGrid grid); DataGridPaintRowHeader(Graphics g, Rectangle bounds, int row, DataGrid grid)769 public abstract void DataGridPaintRowHeader (Graphics g, Rectangle bounds, int row, DataGrid grid); DataGridPaintRowHeaderArrow(Graphics g, Rectangle bounds, DataGrid grid)770 public abstract void DataGridPaintRowHeaderArrow (Graphics g, Rectangle bounds, DataGrid grid); DataGridPaintRowHeaderStar(Graphics g, Rectangle bounds, DataGrid grid)771 public abstract void DataGridPaintRowHeaderStar (Graphics g, Rectangle bounds, DataGrid grid); DataGridPaintParentRows(Graphics g, Rectangle bounds, DataGrid grid)772 public abstract void DataGridPaintParentRows (Graphics g, Rectangle bounds, DataGrid grid); DataGridPaintParentRow(Graphics g, Rectangle bounds, DataGridDataSource row, DataGrid grid)773 public abstract void DataGridPaintParentRow (Graphics g, Rectangle bounds, DataGridDataSource row, DataGrid grid); DataGridPaintRows(Graphics g, Rectangle cells, Rectangle clip, DataGrid grid)774 public abstract void DataGridPaintRows (Graphics g, Rectangle cells, Rectangle clip, DataGrid grid); DataGridPaintRow(Graphics g, int row, Rectangle row_rect, bool is_newrow, Rectangle clip, DataGrid grid)775 public abstract void DataGridPaintRow (Graphics g, int row, Rectangle row_rect, bool is_newrow, Rectangle clip, DataGrid grid); DataGridPaintRelationRow(Graphics g, int row, Rectangle row_rect, bool is_newrow, Rectangle clip, DataGrid grid)776 public abstract void DataGridPaintRelationRow (Graphics g, int row, Rectangle row_rect, bool is_newrow, Rectangle clip, DataGrid grid); 777 778 #endregion // Datagrid 779 780 #region DataGridView 781 #region DataGridViewHeaderCell 782 #region DataGridViewRowHeaderCell DataGridViewRowHeaderCellDrawBackground(DataGridViewRowHeaderCell cell, Graphics g, Rectangle bounds)783 public abstract bool DataGridViewRowHeaderCellDrawBackground (DataGridViewRowHeaderCell cell, Graphics g, Rectangle bounds); DataGridViewRowHeaderCellDrawSelectionBackground(DataGridViewRowHeaderCell cell)784 public abstract bool DataGridViewRowHeaderCellDrawSelectionBackground (DataGridViewRowHeaderCell cell); DataGridViewRowHeaderCellDrawBorder(DataGridViewRowHeaderCell cell, Graphics g, Rectangle bounds)785 public abstract bool DataGridViewRowHeaderCellDrawBorder (DataGridViewRowHeaderCell cell, Graphics g, Rectangle bounds); 786 #endregion 787 #region DataGridViewColumnHeaderCell DataGridViewColumnHeaderCellDrawBackground(DataGridViewColumnHeaderCell cell, Graphics g, Rectangle bounds)788 public abstract bool DataGridViewColumnHeaderCellDrawBackground (DataGridViewColumnHeaderCell cell, Graphics g, Rectangle bounds); DataGridViewColumnHeaderCellDrawBorder(DataGridViewColumnHeaderCell cell, Graphics g, Rectangle bounds)789 public abstract bool DataGridViewColumnHeaderCellDrawBorder (DataGridViewColumnHeaderCell cell, Graphics g, Rectangle bounds); 790 #endregion DataGridViewHeaderCellHasPressedStyle(DataGridView dataGridView)791 public abstract bool DataGridViewHeaderCellHasPressedStyle (DataGridView dataGridView); DataGridViewHeaderCellHasHotStyle(DataGridView dataGridView)792 public abstract bool DataGridViewHeaderCellHasHotStyle (DataGridView dataGridView); 793 #endregion 794 #endregion 795 796 #region DateTimePicker DrawDateTimePicker(Graphics dc, Rectangle clip_rectangle, DateTimePicker dtp)797 public abstract void DrawDateTimePicker(Graphics dc, Rectangle clip_rectangle, DateTimePicker dtp); 798 public abstract bool DateTimePickerBorderHasHotElementStyle { get; } DateTimePickerGetDropDownButtonArea(DateTimePicker dateTimePicker)799 public abstract Rectangle DateTimePickerGetDropDownButtonArea (DateTimePicker dateTimePicker); DateTimePickerGetDateArea(DateTimePicker dateTimePicker)800 public abstract Rectangle DateTimePickerGetDateArea (DateTimePicker dateTimePicker); 801 public abstract bool DateTimePickerDropDownButtonHasHotElementStyle { get; } 802 #endregion // DateTimePicker 803 804 #region GroupBox 805 // Drawing DrawGroupBox(Graphics dc, Rectangle clip_area, GroupBox box)806 public abstract void DrawGroupBox (Graphics dc, Rectangle clip_area, GroupBox box); 807 808 // Sizing 809 public abstract Size GroupBoxDefaultSize{get;} 810 #endregion // GroupBox 811 812 #region HScrollBar 813 public abstract Size HScrollBarDefaultSize{get;} // Default size of the scrollbar 814 #endregion // HScrollBar 815 816 #region ListBox 817 // Drawing DrawListBoxItem(ListBox ctrl, DrawItemEventArgs e)818 public abstract void DrawListBoxItem (ListBox ctrl, DrawItemEventArgs e); 819 #endregion // ListBox 820 821 #region ListView 822 // Drawing DrawListViewItems(Graphics dc, Rectangle clip_rectangle, ListView control)823 public abstract void DrawListViewItems (Graphics dc, Rectangle clip_rectangle, ListView control); DrawListViewHeader(Graphics dc, Rectangle clip_rectangle, ListView control)824 public abstract void DrawListViewHeader (Graphics dc, Rectangle clip_rectangle, ListView control); DrawListViewHeaderDragDetails(Graphics dc, ListView control, ColumnHeader drag_column, int target_x)825 public abstract void DrawListViewHeaderDragDetails (Graphics dc, ListView control, ColumnHeader drag_column, int target_x); 826 public abstract bool ListViewHasHotHeaderStyle { get; } 827 828 // Sizing ListViewGetHeaderHeight(ListView listView, Font font)829 public abstract int ListViewGetHeaderHeight (ListView listView, Font font); 830 public abstract Size ListViewCheckBoxSize { get; } 831 public abstract int ListViewColumnHeaderHeight { get; } 832 public abstract int ListViewDefaultColumnWidth { get; } 833 public abstract int ListViewVerticalSpacing { get; } 834 public abstract int ListViewEmptyColumnWidth { get; } 835 public abstract int ListViewHorizontalSpacing { get; } 836 public abstract Size ListViewDefaultSize { get; } 837 public abstract int ListViewGroupHeight { get; } 838 public abstract int ListViewItemPaddingWidth { get; } 839 public abstract int ListViewTileWidthFactor { get; } 840 public abstract int ListViewTileHeightFactor { get; } 841 #endregion // ListView 842 843 #region Menus CalcItemSize(Graphics dc, MenuItem item, int y, int x, bool menuBar)844 public abstract void CalcItemSize (Graphics dc, MenuItem item, int y, int x, bool menuBar); CalcPopupMenuSize(Graphics dc, Menu menu)845 public abstract void CalcPopupMenuSize (Graphics dc, Menu menu); CalcMenuBarSize(Graphics dc, Menu menu, int width)846 public abstract int CalcMenuBarSize (Graphics dc, Menu menu, int width); DrawMenuBar(Graphics dc, Menu menu, Rectangle rect)847 public abstract void DrawMenuBar (Graphics dc, Menu menu, Rectangle rect); DrawMenuItem(MenuItem item, DrawItemEventArgs e)848 public abstract void DrawMenuItem (MenuItem item, DrawItemEventArgs e); DrawPopupMenu(Graphics dc, Menu menu, Rectangle cliparea, Rectangle rect)849 public abstract void DrawPopupMenu (Graphics dc, Menu menu, Rectangle cliparea, Rectangle rect); 850 #endregion // Menus 851 852 #region MonthCalendar DrawMonthCalendar(Graphics dc, Rectangle clip_rectangle, MonthCalendar month_calendar)853 public abstract void DrawMonthCalendar(Graphics dc, Rectangle clip_rectangle, MonthCalendar month_calendar); 854 #endregion // MonthCalendar 855 856 #region Panel 857 // Sizing 858 public abstract Size PanelDefaultSize{get;} 859 #endregion // Panel 860 861 #region PictureBox 862 // Drawing DrawPictureBox(Graphics dc, Rectangle clip, PictureBox pb)863 public abstract void DrawPictureBox (Graphics dc, Rectangle clip, PictureBox pb); 864 865 // Sizing 866 public abstract Size PictureBoxDefaultSize{get;} 867 #endregion // PictureBox 868 869 #region PrintPreviewControl 870 public abstract int PrintPreviewControlPadding{get;} PrintPreviewControlGetPageSize(PrintPreviewControl preview)871 public abstract Size PrintPreviewControlGetPageSize (PrintPreviewControl preview); PrintPreviewControlPaint(PaintEventArgs pe, PrintPreviewControl preview, Size page_image_size)872 public abstract void PrintPreviewControlPaint (PaintEventArgs pe, PrintPreviewControl preview, Size page_image_size); 873 #endregion // PrintPreviewControl 874 875 #region ProgressBar 876 // Drawing DrawProgressBar(Graphics dc, Rectangle clip_rectangle, ProgressBar progress_bar)877 public abstract void DrawProgressBar (Graphics dc, Rectangle clip_rectangle, ProgressBar progress_bar); 878 879 // Sizing 880 public abstract Size ProgressBarDefaultSize{get;} 881 #endregion // ProgressBar 882 883 #region RadioButton 884 // Drawing CalculateRadioButtonAutoSize(RadioButton rb)885 public abstract Size CalculateRadioButtonAutoSize (RadioButton rb); CalculateRadioButtonTextAndImageLayout(ButtonBase b, Point offset, out Rectangle glyphArea, out Rectangle textRectangle, out Rectangle imageRectangle)886 public abstract void CalculateRadioButtonTextAndImageLayout (ButtonBase b, Point offset, out Rectangle glyphArea, out Rectangle textRectangle, out Rectangle imageRectangle); DrawRadioButton(Graphics g, RadioButton rb, Rectangle glyphArea, Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle)887 public abstract void DrawRadioButton (Graphics g, RadioButton rb, Rectangle glyphArea, Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle); DrawRadioButton(Graphics dc, Rectangle clip_rectangle, RadioButton radio_button)888 public abstract void DrawRadioButton (Graphics dc, Rectangle clip_rectangle, RadioButton radio_button); 889 890 // Sizing 891 public abstract Size RadioButtonDefaultSize{get;} 892 #endregion // RadioButton 893 894 #region ScrollBar 895 // Drawing 896 //public abstract void DrawScrollBar (Graphics dc, Rectangle area, ScrollBar bar, ref Rectangle thumb_pos, ref Rectangle first_arrow_area, ref Rectangle second_arrow_area, ButtonState first_arrow, ButtonState second_arrow, ref int scrollbutton_width, ref int scrollbutton_height, bool vert); DrawScrollBar(Graphics dc, Rectangle clip_rectangle, ScrollBar bar)897 public abstract void DrawScrollBar (Graphics dc, Rectangle clip_rectangle, ScrollBar bar); 898 899 // Sizing 900 public abstract int ScrollBarButtonSize {get;} // Size of the scroll button 901 902 public abstract bool ScrollBarHasHotElementStyles { get; } 903 904 public abstract bool ScrollBarHasPressedThumbStyle { get; } 905 906 public abstract bool ScrollBarHasHoverArrowButtonStyle { get; } 907 #endregion // ScrollBar 908 909 #region StatusBar 910 // Drawing DrawStatusBar(Graphics dc, Rectangle clip_rectangle, StatusBar sb)911 public abstract void DrawStatusBar (Graphics dc, Rectangle clip_rectangle, StatusBar sb); 912 913 // Sizing 914 public abstract int StatusBarSizeGripWidth {get;} // Size of Resize area 915 public abstract int StatusBarHorzGapWidth {get;} // Gap between panels 916 public abstract Size StatusBarDefaultSize{get;} 917 #endregion // StatusBar 918 919 #region TabControl 920 public abstract Size TabControlDefaultItemSize {get; } 921 public abstract Point TabControlDefaultPadding {get; } 922 public abstract int TabControlMinimumTabWidth {get; } 923 public abstract Rectangle TabControlSelectedDelta { get; } 924 public abstract int TabControlSelectedSpacing { get; } 925 public abstract int TabPanelOffsetX { get; } 926 public abstract int TabPanelOffsetY { get; } 927 public abstract int TabControlColSpacing { get; } 928 public abstract Point TabControlImagePadding { get; } 929 public abstract int TabControlScrollerWidth { get; } 930 TabControlGetDisplayRectangle(TabControl tab)931 public abstract Rectangle TabControlGetDisplayRectangle (TabControl tab); TabControlGetPanelRect(TabControl tab)932 public abstract Rectangle TabControlGetPanelRect (TabControl tab); TabControlGetSpacing(TabControl tab)933 public abstract Size TabControlGetSpacing (TabControl tab); DrawTabControl(Graphics dc, Rectangle area, TabControl tab)934 public abstract void DrawTabControl (Graphics dc, Rectangle area, TabControl tab); 935 #endregion 936 937 #region TextBoxBase TextBoxBaseFillBackground(TextBoxBase textBoxBase, Graphics g, Rectangle clippingArea)938 public abstract void TextBoxBaseFillBackground (TextBoxBase textBoxBase, Graphics g, Rectangle clippingArea); TextBoxBaseHandleWmNcPaint(TextBoxBase textBoxBase, ref Message m)939 public abstract bool TextBoxBaseHandleWmNcPaint (TextBoxBase textBoxBase, ref Message m); TextBoxBaseShouldPaintBackground(TextBoxBase textBoxBase)940 public abstract bool TextBoxBaseShouldPaintBackground (TextBoxBase textBoxBase); 941 #endregion 942 943 #region ToolBar 944 // Drawing DrawToolBar(Graphics dc, Rectangle clip_rectangle, ToolBar control)945 public abstract void DrawToolBar (Graphics dc, Rectangle clip_rectangle, ToolBar control); 946 947 // Sizing 948 public abstract int ToolBarGripWidth {get;} // Grip width for the ToolBar 949 public abstract int ToolBarImageGripWidth {get;} // Grip width for the Image on the ToolBarButton 950 public abstract int ToolBarSeparatorWidth {get;} // width of the separator 951 public abstract int ToolBarDropDownWidth { get; } // width of the dropdown arrow rect 952 public abstract int ToolBarDropDownArrowWidth { get; } // width for the dropdown arrow on the ToolBarButton 953 public abstract int ToolBarDropDownArrowHeight { get; } // height for the dropdown arrow on the ToolBarButton 954 public abstract Size ToolBarDefaultSize{get;} 955 ToolBarHasHotElementStyles(ToolBar toolBar)956 public abstract bool ToolBarHasHotElementStyles (ToolBar toolBar); 957 public abstract bool ToolBarHasHotCheckedElementStyles { get; } 958 #endregion // ToolBar 959 960 #region ToolTip DrawToolTip(Graphics dc, Rectangle clip_rectangle, ToolTip.ToolTipWindow control)961 public abstract void DrawToolTip(Graphics dc, Rectangle clip_rectangle, ToolTip.ToolTipWindow control); ToolTipSize(ToolTip.ToolTipWindow tt, string text)962 public abstract Size ToolTipSize(ToolTip.ToolTipWindow tt, string text); 963 public abstract bool ToolTipTransparentBackground { get; } 964 #endregion // ToolTip 965 966 #region BalloonWindow ShowBalloonWindow(IntPtr handle, int timeout, string title, string text, ToolTipIcon icon)967 public abstract void ShowBalloonWindow (IntPtr handle, int timeout, string title, string text, ToolTipIcon icon); HideBalloonWindow(IntPtr handle)968 public abstract void HideBalloonWindow (IntPtr handle); DrawBalloonWindow(Graphics dc, Rectangle clip, NotifyIcon.BalloonWindow control)969 public abstract void DrawBalloonWindow (Graphics dc, Rectangle clip, NotifyIcon.BalloonWindow control); BalloonWindowRect(NotifyIcon.BalloonWindow control)970 public abstract Rectangle BalloonWindowRect (NotifyIcon.BalloonWindow control); 971 #endregion // BalloonWindow 972 973 #region TrackBar 974 // Drawing DrawTrackBar(Graphics dc, Rectangle clip_rectangle, TrackBar tb)975 public abstract void DrawTrackBar (Graphics dc, Rectangle clip_rectangle, TrackBar tb); 976 977 // Sizing 978 public abstract Size TrackBarDefaultSize{get; } // Default size for the TrackBar control 979 TrackBarValueFromMousePosition(int x, int y, TrackBar tb)980 public abstract int TrackBarValueFromMousePosition (int x, int y, TrackBar tb); 981 982 public abstract bool TrackBarHasHotThumbStyle { get; } 983 #endregion // TrackBar 984 985 #region UpDownBase UpDownBaseDrawButton(Graphics g, Rectangle bounds, bool top, VisualStyles.PushButtonState state)986 public abstract void UpDownBaseDrawButton (Graphics g, Rectangle bounds, bool top, VisualStyles.PushButtonState state); 987 public abstract bool UpDownBaseHasHotButtonStyle { get; } 988 #endregion 989 990 #region VScrollBar 991 public abstract Size VScrollBarDefaultSize{get;} // Default size of the scrollbar 992 #endregion // VScrollBar 993 994 #region TreeView 995 public abstract Size TreeViewDefaultSize { get; } TreeViewDrawNodePlusMinus(TreeView treeView, TreeNode node, Graphics dc, int x, int middle)996 public abstract void TreeViewDrawNodePlusMinus (TreeView treeView, TreeNode node, Graphics dc, int x, int middle); 997 #endregion 998 999 #region Managed window DrawManagedWindowDecorations(Graphics dc, Rectangle clip, InternalWindowManager wm)1000 public abstract void DrawManagedWindowDecorations (Graphics dc, Rectangle clip, InternalWindowManager wm); ManagedWindowTitleBarHeight(InternalWindowManager wm)1001 public abstract int ManagedWindowTitleBarHeight (InternalWindowManager wm); ManagedWindowBorderWidth(InternalWindowManager wm)1002 public abstract int ManagedWindowBorderWidth (InternalWindowManager wm); ManagedWindowIconWidth(InternalWindowManager wm)1003 public abstract int ManagedWindowIconWidth (InternalWindowManager wm); ManagedWindowButtonSize(InternalWindowManager wm)1004 public abstract Size ManagedWindowButtonSize (InternalWindowManager wm); ManagedWindowSetButtonLocations(InternalWindowManager wm)1005 public abstract void ManagedWindowSetButtonLocations (InternalWindowManager wm); ManagedWindowGetTitleBarIconArea(InternalWindowManager wm)1006 public abstract Rectangle ManagedWindowGetTitleBarIconArea (InternalWindowManager wm); ManagedWindowGetMenuButtonSize(InternalWindowManager wm)1007 public abstract Size ManagedWindowGetMenuButtonSize (InternalWindowManager wm); ManagedWindowTitleButtonHasHotElementStyle(TitleButton button, Form form)1008 public abstract bool ManagedWindowTitleButtonHasHotElementStyle (TitleButton button, Form form); ManagedWindowDrawMenuButton(Graphics dc, TitleButton button, Rectangle clip, InternalWindowManager wm)1009 public abstract void ManagedWindowDrawMenuButton (Graphics dc, TitleButton button, Rectangle clip, InternalWindowManager wm); ManagedWindowOnSizeInitializedOrChanged(Form form)1010 public abstract void ManagedWindowOnSizeInitializedOrChanged (Form form); 1011 public const int ManagedWindowSpacingAfterLastTitleButton = 2; 1012 #endregion 1013 1014 #region ControlPaint Methods CPDrawBorder(Graphics graphics, Rectangle bounds, Color leftColor, int leftWidth, ButtonBorderStyle leftStyle, Color topColor, int topWidth, ButtonBorderStyle topStyle, Color rightColor, int rightWidth, ButtonBorderStyle rightStyle, Color bottomColor, int bottomWidth, ButtonBorderStyle bottomStyle)1015 public abstract void CPDrawBorder (Graphics graphics, Rectangle bounds, Color leftColor, int leftWidth, 1016 ButtonBorderStyle leftStyle, Color topColor, int topWidth, ButtonBorderStyle topStyle, 1017 Color rightColor, int rightWidth, ButtonBorderStyle rightStyle, Color bottomColor, 1018 int bottomWidth, ButtonBorderStyle bottomStyle); 1019 CPDrawBorder(Graphics graphics, RectangleF bounds, Color leftColor, int leftWidth, ButtonBorderStyle leftStyle, Color topColor, int topWidth, ButtonBorderStyle topStyle, Color rightColor, int rightWidth, ButtonBorderStyle rightStyle, Color bottomColor, int bottomWidth, ButtonBorderStyle bottomStyle)1020 public abstract void CPDrawBorder (Graphics graphics, RectangleF bounds, Color leftColor, int leftWidth, 1021 ButtonBorderStyle leftStyle, Color topColor, int topWidth, ButtonBorderStyle topStyle, 1022 Color rightColor, int rightWidth, ButtonBorderStyle rightStyle, Color bottomColor, 1023 int bottomWidth, ButtonBorderStyle bottomStyle); 1024 CPDrawBorder3D(Graphics graphics, Rectangle rectangle, Border3DStyle style, Border3DSide sides)1025 public abstract void CPDrawBorder3D (Graphics graphics, Rectangle rectangle, Border3DStyle style, Border3DSide sides); CPDrawBorder3D(Graphics graphics, Rectangle rectangle, Border3DStyle style, Border3DSide sides, Color control_color)1026 public abstract void CPDrawBorder3D (Graphics graphics, Rectangle rectangle, Border3DStyle style, Border3DSide sides, Color control_color); CPDrawButton(Graphics graphics, Rectangle rectangle, ButtonState state)1027 public abstract void CPDrawButton (Graphics graphics, Rectangle rectangle, ButtonState state); CPDrawCaptionButton(Graphics graphics, Rectangle rectangle, CaptionButton button, ButtonState state)1028 public abstract void CPDrawCaptionButton (Graphics graphics, Rectangle rectangle, CaptionButton button, ButtonState state); CPDrawCheckBox(Graphics graphics, Rectangle rectangle, ButtonState state)1029 public abstract void CPDrawCheckBox (Graphics graphics, Rectangle rectangle, ButtonState state); CPDrawComboButton(Graphics graphics, Rectangle rectangle, ButtonState state)1030 public abstract void CPDrawComboButton (Graphics graphics, Rectangle rectangle, ButtonState state); CPDrawContainerGrabHandle(Graphics graphics, Rectangle bounds)1031 public abstract void CPDrawContainerGrabHandle (Graphics graphics, Rectangle bounds); CPDrawFocusRectangle(Graphics graphics, Rectangle rectangle, Color foreColor, Color backColor)1032 public abstract void CPDrawFocusRectangle (Graphics graphics, Rectangle rectangle, Color foreColor, Color backColor); CPDrawGrabHandle(Graphics graphics, Rectangle rectangle, bool primary, bool enabled)1033 public abstract void CPDrawGrabHandle (Graphics graphics, Rectangle rectangle, bool primary, bool enabled); CPDrawGrid(Graphics graphics, Rectangle area, Size pixelsBetweenDots, Color backColor)1034 public abstract void CPDrawGrid (Graphics graphics, Rectangle area, Size pixelsBetweenDots, Color backColor); CPDrawImageDisabled(Graphics graphics, Image image, int x, int y, Color background)1035 public abstract void CPDrawImageDisabled (Graphics graphics, Image image, int x, int y, Color background); CPDrawLockedFrame(Graphics graphics, Rectangle rectangle, bool primary)1036 public abstract void CPDrawLockedFrame (Graphics graphics, Rectangle rectangle, bool primary); CPDrawMenuGlyph(Graphics graphics, Rectangle rectangle, MenuGlyph glyph, Color color, Color backColor)1037 public abstract void CPDrawMenuGlyph (Graphics graphics, Rectangle rectangle, MenuGlyph glyph, Color color, Color backColor); CPDrawMixedCheckBox(Graphics graphics, Rectangle rectangle, ButtonState state)1038 public abstract void CPDrawMixedCheckBox (Graphics graphics, Rectangle rectangle, ButtonState state); CPDrawRadioButton(Graphics graphics, Rectangle rectangle, ButtonState state)1039 public abstract void CPDrawRadioButton (Graphics graphics, Rectangle rectangle, ButtonState state); CPDrawReversibleFrame(Rectangle rectangle, Color backColor, FrameStyle style)1040 public abstract void CPDrawReversibleFrame (Rectangle rectangle, Color backColor, FrameStyle style); CPDrawReversibleLine(Point start, Point end, Color backColor)1041 public abstract void CPDrawReversibleLine (Point start, Point end, Color backColor); CPDrawScrollButton(Graphics graphics, Rectangle rectangle, ScrollButton button, ButtonState state)1042 public abstract void CPDrawScrollButton (Graphics graphics, Rectangle rectangle, ScrollButton button, ButtonState state); CPDrawSelectionFrame(Graphics graphics, bool active, Rectangle outsideRect, Rectangle insideRect, Color backColor)1043 public abstract void CPDrawSelectionFrame (Graphics graphics, bool active, Rectangle outsideRect, Rectangle insideRect, 1044 Color backColor); CPDrawSizeGrip(Graphics graphics, Color backColor, Rectangle bounds)1045 public abstract void CPDrawSizeGrip (Graphics graphics, Color backColor, Rectangle bounds); CPDrawStringDisabled(Graphics graphics, string s, Font font, Color color, RectangleF layoutRectangle, StringFormat format)1046 public abstract void CPDrawStringDisabled (Graphics graphics, string s, Font font, Color color, RectangleF layoutRectangle, 1047 StringFormat format); CPDrawStringDisabled(IDeviceContext dc, string s, Font font, Color color, Rectangle layoutRectangle, TextFormatFlags format)1048 public abstract void CPDrawStringDisabled (IDeviceContext dc, string s, Font font, Color color, Rectangle layoutRectangle, TextFormatFlags format); CPDrawVisualStyleBorder(Graphics graphics, Rectangle bounds)1049 public abstract void CPDrawVisualStyleBorder (Graphics graphics, Rectangle bounds); CPDrawBorderStyle(Graphics dc, Rectangle area, BorderStyle border_style)1050 public abstract void CPDrawBorderStyle (Graphics dc, Rectangle area, BorderStyle border_style); 1051 #endregion // ControlPaint Methods 1052 } 1053 } 1054