X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8b6c20ce55440492310634c7725edc48e4423f0b..3f931438cc1738c125eaa3c4c9a23db4ad670644:/src/stc/PlatWX.cpp diff --git a/src/stc/PlatWX.cpp b/src/stc/PlatWX.cpp index 821e7392d4..7512383fca 100644 --- a/src/stc/PlatWX.cpp +++ b/src/stc/PlatWX.cpp @@ -32,9 +32,12 @@ #include "wx/imaglist.h" #include "wx/tokenzr.h" -#ifdef wxHAVE_RAW_BITMAP +#ifdef wxHAS_RAW_BITMAP #include "wx/rawbmp.h" #endif +#if wxUSE_GRAPHICS_CONTEXT +#include "wx/dcgraph.h" +#endif #include "Platform.h" #include "PlatWX.h" @@ -65,6 +68,14 @@ wxColour wxColourFromCA(const ColourAllocated& ca) { (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() { @@ -140,7 +151,7 @@ Font::~Font() { void Font::Create(const char *faceName, int characterSet, int size, bool bold, bool italic, - bool extraFontFlag) { + bool WXUNUSED(extraFontFlag)) { Release(); // The minus one is done because since Scintilla uses SC_SHARSET_DEFAULT @@ -160,7 +171,6 @@ void Font::Create(const char *faceName, int characterSet, false, stc2wx(faceName), encoding); - font->SetNoAntiAliasing(!extraFontFlag); id = font; } @@ -368,7 +378,17 @@ void SurfaceImpl::AlphaRectangle(PRectangle rc, int cornerSize, ColourAllocated fill, int alphaFill, ColourAllocated outline, int alphaOutline, int /*flags*/) { -#ifdef wxHAVE_RAW_BITMAP +#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 wxUnusedVar(cornerSize); @@ -436,6 +456,7 @@ void SurfaceImpl::AlphaRectangle(PRectangle rc, int cornerSize, wxUnusedVar(alphaOutline); RectangleDraw(rc, outline, fill); #endif +#endif } void SurfaceImpl::Ellipse(PRectangle rc, ColourAllocated fore, ColourAllocated back) { @@ -677,7 +698,7 @@ void Window::SetFont(Font &font) { } void Window::SetCursor(Cursor curs) { - int cursorId; + wxStockCursor cursorId; switch (curs) { case cursorText: @@ -708,16 +729,13 @@ void Window::SetCursor(Cursor curs) { cursorId = wxCURSOR_ARROW; break; } -#ifdef __WXMOTIF__ - wxCursor wc = wxStockCursor(cursorId) ; -#else - wxCursor wc = wxCursor(cursorId) ; -#endif - if(curs != cursorLast) - { - GETWIN(id)->SetCursor(wc); - cursorLast = curs; - } + + wxCursor wc = wxCursor(cursorId); + if(curs != cursorLast) + { + GETWIN(id)->SetCursor(wc); + cursorLast = curs; + } } @@ -1430,7 +1448,7 @@ long Platform::SendScintillaPointer(WindowID w, void *lParam) { wxStyledTextCtrl* stc = (wxStyledTextCtrl*)w; - return stc->SendMsg(msg, wParam, (long)lParam); + return stc->SendMsg(msg, wParam, (wxIntPtr)lParam); }