]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/PlatWX.cpp
When drawing wxPropertyGrid check box editor, be consistent with the other editors...
[wxWidgets.git] / src / stc / PlatWX.cpp
index 8149bfbf5cb64268660f039e980ce0e4e8b362bb..7512383fca331c47bf4f4beec09d3cfa13cc928a 100644 (file)
@@ -35,6 +35,9 @@
 #ifdef wxHAS_RAW_BITMAP
 #include "wx/rawbmp.h"
 #endif
 #ifdef wxHAS_RAW_BITMAP
 #include "wx/rawbmp.h"
 #endif
+#if wxUSE_GRAPHICS_CONTEXT
+#include "wx/dcgraph.h"
+#endif
 
 #include "Platform.h"
 #include "PlatWX.h"
 
 #include "Platform.h"
 #include "PlatWX.h"
@@ -65,6 +68,14 @@ wxColour wxColourFromCA(const ColourAllocated& ca) {
                     (unsigned char)cd.GetBlue());
 }
 
                     (unsigned char)cd.GetBlue());
 }
 
+wxColour wxColourFromCAandAlpha(const ColourAllocated& ca, int alpha) {
+    ColourDesired cd(ca.AsLong());
+    return wxColour((unsigned char)cd.GetRed(),
+                    (unsigned char)cd.GetGreen(),
+                    (unsigned char)cd.GetBlue(),
+                    (unsigned char)alpha);
+}
+
 //----------------------------------------------------------------------
 
 Palette::Palette() {
 //----------------------------------------------------------------------
 
 Palette::Palette() {
@@ -367,6 +378,16 @@ void SurfaceImpl::AlphaRectangle(PRectangle rc, int cornerSize,
                                  ColourAllocated fill, int alphaFill,
                                  ColourAllocated outline, int alphaOutline,
                                  int /*flags*/) {
                                  ColourAllocated fill, int alphaFill,
                                  ColourAllocated outline, int alphaOutline,
                                  int /*flags*/) {
+#if wxUSE_GRAPHICS_CONTEXT
+    wxGCDC dc(*(wxMemoryDC*)hdc);
+    wxColour penColour(wxColourFromCAandAlpha(outline, alphaOutline));
+    wxColour brushColour(wxColourFromCAandAlpha(fill, alphaFill));
+    dc.SetPen(wxPen(penColour));
+    dc.SetBrush(wxBrush(brushColour));
+    dc.DrawRoundedRectangle(wxRectFromPRectangle(rc), cornerSize);
+    return;
+#else
+    
 #ifdef wxHAS_RAW_BITMAP
 
     // TODO:  do something with cornerSize
 #ifdef wxHAS_RAW_BITMAP
 
     // TODO:  do something with cornerSize
@@ -435,6 +456,7 @@ void SurfaceImpl::AlphaRectangle(PRectangle rc, int cornerSize,
     wxUnusedVar(alphaOutline);
     RectangleDraw(rc, outline, fill);
 #endif
     wxUnusedVar(alphaOutline);
     RectangleDraw(rc, outline, fill);
 #endif
+#endif
 }
 
 void SurfaceImpl::Ellipse(PRectangle rc, ColourAllocated fore, ColourAllocated back) {
 }
 
 void SurfaceImpl::Ellipse(PRectangle rc, ColourAllocated fore, ColourAllocated back) {