]> git.saurik.com Git - wxWidgets.git/commitdiff
Copied/merged from the 2.2 branch.
authorRobin Dunn <robin@alldunn.com>
Fri, 16 Feb 2001 08:40:24 +0000 (08:40 +0000)
committerRobin Dunn <robin@alldunn.com>
Fri, 16 Feb 2001 08:40:24 +0000 (08:40 +0000)
Changes needed to build with new event system

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

contrib/src/stc/ScintillaWX.cpp
contrib/src/stc/scintilla/src/Editor.cxx
contrib/src/stc/stc.cpp
src/stc/ScintillaWX.cpp
src/stc/scintilla/src/Editor.cxx
src/stc/stc.cpp

index f7349c8d27e9cc06e63170576fbb55891bbbadaa..9f19ebbca99f2b8180b8aa747c05535b0bbc8cc8 100644 (file)
@@ -325,57 +325,41 @@ void ScintillaWX::DoPaint(wxDC* dc, wxRect rect) {
 
 void ScintillaWX::DoHScroll(int type, int pos) {
     int xPos = xOffset;
-    switch (type) {
-    case wxEVT_SCROLLWIN_LINEUP:
+    if (type == wxEVT_SCROLLWIN_LINEUP)
         xPos -= H_SCROLL_STEP;
-        break;
-    case wxEVT_SCROLLWIN_LINEDOWN:
+    else if (type == wxEVT_SCROLLWIN_LINEDOWN)
         xPos += H_SCROLL_STEP;
-        break;
-    case wxEVT_SCROLLWIN_PAGEUP:
+    else if (type == wxEVT_SCROLLWIN_PAGEUP)
         xPos -= H_SCROLL_PAGE;
-        break;
-    case wxEVT_SCROLLWIN_PAGEDOWN:
+    else if (type == wxEVT_SCROLLWIN_PAGEDOWN)
         xPos += H_SCROLL_PAGE;
-        break;
-    case wxEVT_SCROLLWIN_TOP:
+    else if (type == wxEVT_SCROLLWIN_TOP)
         xPos = 0;
-        break;
-    case wxEVT_SCROLLWIN_BOTTOM:
+    else if (type == wxEVT_SCROLLWIN_BOTTOM)
         xPos = H_SCROLL_MAX;
-        break;
-    case wxEVT_SCROLLWIN_THUMBTRACK:
+    else if (type == wxEVT_SCROLLWIN_THUMBTRACK)
         xPos = pos;
-        break;
-    }
+
     HorizontalScrollTo(xPos);
 }
 
 void ScintillaWX::DoVScroll(int type, int pos) {
     int topLineNew = topLine;
-    switch (type) {
-    case wxEVT_SCROLLWIN_LINEUP:
+    if (type == wxEVT_SCROLLWIN_LINEUP)
         topLineNew -= 1;
-        break;
-    case wxEVT_SCROLLWIN_LINEDOWN:
+    else if (type == wxEVT_SCROLLWIN_LINEDOWN)
         topLineNew += 1;
-        break;
-    case wxEVT_SCROLLWIN_PAGEUP:
+    else if (type ==  wxEVT_SCROLLWIN_PAGEUP)
         topLineNew -= LinesToScroll();
-        break;
-    case wxEVT_SCROLLWIN_PAGEDOWN:
+    else if (type ==  wxEVT_SCROLLWIN_PAGEDOWN)
         topLineNew += LinesToScroll();
-        break;
-    case wxEVT_SCROLLWIN_TOP:
+    else if (type ==  wxEVT_SCROLLWIN_TOP)
         topLineNew = 0;
-        break;
-    case wxEVT_SCROLLWIN_BOTTOM:
+    else if (type ==  wxEVT_SCROLLWIN_BOTTOM)
         topLineNew = MaxScrollPos();
-        break;
-    case wxEVT_SCROLLWIN_THUMBTRACK:
+    else if (type ==   wxEVT_SCROLLWIN_THUMBTRACK)
         topLineNew = pos;
-        break;
-    }
+
     ScrollTo(topLineNew);
 }
 
index 6d2676ffbccc347391956638dc139f2f5fec903e..87b579bbc1bb6634b90f4bcf421375fa08292e3c 100644 (file)
@@ -14,7 +14,7 @@
 
 #if PLAT_WX || PLAT_GTK
 #include "WinDefs.h"
-#endif 
+#endif
 
 #include "ContractionState.h"
 #include "SVector.h"
@@ -106,7 +106,7 @@ Editor::Editor() {
 
 #ifdef MACRO_SUPPORT
        recordingMacro = 0;
-#endif 
+#endif
        foldFlags = 0;
 }
 
@@ -303,8 +303,22 @@ int Editor::PositionFromLineX(int line, int x) {
 }
 
 void Editor::RedrawRect(PRectangle rc) {
-       //Platform::DebugPrintf("Redraw %d %d - %d %d\n", rc.left, rc.top, rc.right, rc.bottom);
-       wDraw.InvalidateRectangle(rc);
+    //Platform::DebugPrintf("Redraw %d %d - %d %d\n", rc.left, rc.top, rc.right, rc.bottom);
+
+    // Clip the redraw rectangle into the client area
+    PRectangle rcClient = GetClientRectangle();
+    if (rc.top < rcClient.top)
+        rc.top = rcClient.top;
+    if (rc.bottom > rcClient.bottom)
+        rc.bottom = rcClient.bottom;
+    if (rc.left < rcClient.left)
+        rc.left = rcClient.left;
+    if (rc.right > rcClient.right)
+        rc.right = rcClient.right;
+
+    if ((rc.bottom > rc.top) && (rc.right > rc.left)) {
+        wDraw.InvalidateRectangle(rc);
+    }
 }
 
 void Editor::Redraw() {
@@ -659,10 +673,10 @@ void Editor::PaintSelMargin(Surface *surfWindow, PRectangle &rc) {
                        if (vs.ms[margin].symbol) {
                                /* alternate scheme:
                                if (vs.ms[margin].mask & SC_MASK_FOLDERS)
-                                       surface->FillRectangle(rcSelMargin, vs.styles[STYLE_DEFAULT].back.allocated); 
+                                       surface->FillRectangle(rcSelMargin, vs.styles[STYLE_DEFAULT].back.allocated);
                                else
                                        // Required because of special way brush is created for selection margin
-                                       surface->FillRectangle(rcSelMargin, pixmapSelPattern); 
+                                       surface->FillRectangle(rcSelMargin, pixmapSelPattern);
                                */
                                if (vs.ms[margin].mask & SC_MASK_FOLDERS)
                                        // Required because of special way brush is created for selection margin
@@ -1653,7 +1667,7 @@ void Editor::NotifyChar(char ch) {
                txt[1] = '\0';
                NotifyMacroRecord(SCI_REPLACESEL, 0, reinterpret_cast<long>(txt));
        }
-#endif 
+#endif
 }
 
 void Editor::NotifySavePoint(bool isSavePoint) {
@@ -1939,7 +1953,7 @@ void Editor::NotifyMacroRecord(unsigned int iMessage, unsigned long wParam, long
        scn.lParam = lParam;
        NotifyParent(scn);
 }
-#endif 
+#endif
 
 // Force scroll and keep position relative to top of window
 void Editor::PageMove(int direction, bool extend) {
@@ -3019,7 +3033,7 @@ long Editor::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
 #ifdef MACRO_SUPPORT
        if (recordingMacro)
                NotifyMacroRecord(iMessage, wParam, lParam);
-#endif 
+#endif
 
        switch (iMessage) {
 
@@ -3411,9 +3425,9 @@ long Editor::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
                        return SEL_EMPTY;
                else
                        return SEL_TEXT;
-#else 
+#else
                return 0;
-#endif 
+#endif
 
        case EM_HIDESELECTION:
                hideSelection = wParam;
@@ -3447,7 +3461,7 @@ long Editor::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
                        vs.rightMarginWidth = vs.aveCharWidth / 2;
                }
                InvalidateStyleRedraw();
-#endif 
+#endif
                break;
 
        case SCI_SETMARGINLEFT:
@@ -4238,10 +4252,10 @@ long Editor::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
        case SCI_SETOVERTYPE:
                inOverstrike = wParam;
                break;
-       
+
        case SCI_GETOVERTYPE:
                return inOverstrike ? TRUE : FALSE;
-       
+
 #ifdef MACRO_SUPPORT
        case SCI_STARTRECORD:
                recordingMacro = 1;
@@ -4250,7 +4264,7 @@ long Editor::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
        case SCI_STOPRECORD:
                recordingMacro = 0;
                return 0;
-#endif 
+#endif
 
        default:
                return DefWndProc(iMessage, wParam, lParam);
index 3573c3f648f30698b90e720960162bdb5e68e48c..a362eaf491657cdf6dab08be7a0f45d0a92d2f27 100644 (file)
@@ -1539,16 +1539,38 @@ void wxStyledTextCtrl::OnMouseRightUp(wxMouseEvent& evt) {
     m_swx->DoContextMenu(Point(pt.x, pt.y));
 }
 
+
 void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
     long key = evt.KeyCode();
-    if ((key > WXK_ESCAPE) &&
-        (key != WXK_DELETE) && (key < 255) &&
-        !evt.ControlDown() && !evt.AltDown()) {
-
-        m_swx->DoAddChar(key);
-    }
-    else {
-        evt.Skip();
+    switch (key) {
+        // Special handling for charcters that must be typed with AltGr down on
+        // foreign keyboards.  (Comes to us as Ctrl+Alt, and so would get
+        // filtered out by the default case below.)
+        //
+        // There should be a better way to do this...
+        //
+        case '\\':
+        case '|':
+        case '@':
+        case '#':
+        case '¬':
+        case '[':
+        case ']':
+        case '{':
+        case '}':
+        case '?':
+            m_swx->DoAddChar(key);
+            break;
+
+        default:
+            if ((key > WXK_ESCAPE) && (key != WXK_DELETE) && (key < 255) &&
+                !evt.ControlDown() && !evt.AltDown()) {
+
+                m_swx->DoAddChar(key);
+            }
+            else {
+                evt.Skip();
+            }
     }
 }
 
@@ -1561,6 +1583,7 @@ void wxStyledTextCtrl::OnKeyDown(wxKeyEvent& evt) {
         evt.Skip();
 }
 
+
 void wxStyledTextCtrl::OnLoseFocus(wxFocusEvent& evt) {
     m_swx->DoLoseFocus();
 }
index f7349c8d27e9cc06e63170576fbb55891bbbadaa..9f19ebbca99f2b8180b8aa747c05535b0bbc8cc8 100644 (file)
@@ -325,57 +325,41 @@ void ScintillaWX::DoPaint(wxDC* dc, wxRect rect) {
 
 void ScintillaWX::DoHScroll(int type, int pos) {
     int xPos = xOffset;
-    switch (type) {
-    case wxEVT_SCROLLWIN_LINEUP:
+    if (type == wxEVT_SCROLLWIN_LINEUP)
         xPos -= H_SCROLL_STEP;
-        break;
-    case wxEVT_SCROLLWIN_LINEDOWN:
+    else if (type == wxEVT_SCROLLWIN_LINEDOWN)
         xPos += H_SCROLL_STEP;
-        break;
-    case wxEVT_SCROLLWIN_PAGEUP:
+    else if (type == wxEVT_SCROLLWIN_PAGEUP)
         xPos -= H_SCROLL_PAGE;
-        break;
-    case wxEVT_SCROLLWIN_PAGEDOWN:
+    else if (type == wxEVT_SCROLLWIN_PAGEDOWN)
         xPos += H_SCROLL_PAGE;
-        break;
-    case wxEVT_SCROLLWIN_TOP:
+    else if (type == wxEVT_SCROLLWIN_TOP)
         xPos = 0;
-        break;
-    case wxEVT_SCROLLWIN_BOTTOM:
+    else if (type == wxEVT_SCROLLWIN_BOTTOM)
         xPos = H_SCROLL_MAX;
-        break;
-    case wxEVT_SCROLLWIN_THUMBTRACK:
+    else if (type == wxEVT_SCROLLWIN_THUMBTRACK)
         xPos = pos;
-        break;
-    }
+
     HorizontalScrollTo(xPos);
 }
 
 void ScintillaWX::DoVScroll(int type, int pos) {
     int topLineNew = topLine;
-    switch (type) {
-    case wxEVT_SCROLLWIN_LINEUP:
+    if (type == wxEVT_SCROLLWIN_LINEUP)
         topLineNew -= 1;
-        break;
-    case wxEVT_SCROLLWIN_LINEDOWN:
+    else if (type == wxEVT_SCROLLWIN_LINEDOWN)
         topLineNew += 1;
-        break;
-    case wxEVT_SCROLLWIN_PAGEUP:
+    else if (type ==  wxEVT_SCROLLWIN_PAGEUP)
         topLineNew -= LinesToScroll();
-        break;
-    case wxEVT_SCROLLWIN_PAGEDOWN:
+    else if (type ==  wxEVT_SCROLLWIN_PAGEDOWN)
         topLineNew += LinesToScroll();
-        break;
-    case wxEVT_SCROLLWIN_TOP:
+    else if (type ==  wxEVT_SCROLLWIN_TOP)
         topLineNew = 0;
-        break;
-    case wxEVT_SCROLLWIN_BOTTOM:
+    else if (type ==  wxEVT_SCROLLWIN_BOTTOM)
         topLineNew = MaxScrollPos();
-        break;
-    case wxEVT_SCROLLWIN_THUMBTRACK:
+    else if (type ==   wxEVT_SCROLLWIN_THUMBTRACK)
         topLineNew = pos;
-        break;
-    }
+
     ScrollTo(topLineNew);
 }
 
index 6d2676ffbccc347391956638dc139f2f5fec903e..87b579bbc1bb6634b90f4bcf421375fa08292e3c 100644 (file)
@@ -14,7 +14,7 @@
 
 #if PLAT_WX || PLAT_GTK
 #include "WinDefs.h"
-#endif 
+#endif
 
 #include "ContractionState.h"
 #include "SVector.h"
@@ -106,7 +106,7 @@ Editor::Editor() {
 
 #ifdef MACRO_SUPPORT
        recordingMacro = 0;
-#endif 
+#endif
        foldFlags = 0;
 }
 
@@ -303,8 +303,22 @@ int Editor::PositionFromLineX(int line, int x) {
 }
 
 void Editor::RedrawRect(PRectangle rc) {
-       //Platform::DebugPrintf("Redraw %d %d - %d %d\n", rc.left, rc.top, rc.right, rc.bottom);
-       wDraw.InvalidateRectangle(rc);
+    //Platform::DebugPrintf("Redraw %d %d - %d %d\n", rc.left, rc.top, rc.right, rc.bottom);
+
+    // Clip the redraw rectangle into the client area
+    PRectangle rcClient = GetClientRectangle();
+    if (rc.top < rcClient.top)
+        rc.top = rcClient.top;
+    if (rc.bottom > rcClient.bottom)
+        rc.bottom = rcClient.bottom;
+    if (rc.left < rcClient.left)
+        rc.left = rcClient.left;
+    if (rc.right > rcClient.right)
+        rc.right = rcClient.right;
+
+    if ((rc.bottom > rc.top) && (rc.right > rc.left)) {
+        wDraw.InvalidateRectangle(rc);
+    }
 }
 
 void Editor::Redraw() {
@@ -659,10 +673,10 @@ void Editor::PaintSelMargin(Surface *surfWindow, PRectangle &rc) {
                        if (vs.ms[margin].symbol) {
                                /* alternate scheme:
                                if (vs.ms[margin].mask & SC_MASK_FOLDERS)
-                                       surface->FillRectangle(rcSelMargin, vs.styles[STYLE_DEFAULT].back.allocated); 
+                                       surface->FillRectangle(rcSelMargin, vs.styles[STYLE_DEFAULT].back.allocated);
                                else
                                        // Required because of special way brush is created for selection margin
-                                       surface->FillRectangle(rcSelMargin, pixmapSelPattern); 
+                                       surface->FillRectangle(rcSelMargin, pixmapSelPattern);
                                */
                                if (vs.ms[margin].mask & SC_MASK_FOLDERS)
                                        // Required because of special way brush is created for selection margin
@@ -1653,7 +1667,7 @@ void Editor::NotifyChar(char ch) {
                txt[1] = '\0';
                NotifyMacroRecord(SCI_REPLACESEL, 0, reinterpret_cast<long>(txt));
        }
-#endif 
+#endif
 }
 
 void Editor::NotifySavePoint(bool isSavePoint) {
@@ -1939,7 +1953,7 @@ void Editor::NotifyMacroRecord(unsigned int iMessage, unsigned long wParam, long
        scn.lParam = lParam;
        NotifyParent(scn);
 }
-#endif 
+#endif
 
 // Force scroll and keep position relative to top of window
 void Editor::PageMove(int direction, bool extend) {
@@ -3019,7 +3033,7 @@ long Editor::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
 #ifdef MACRO_SUPPORT
        if (recordingMacro)
                NotifyMacroRecord(iMessage, wParam, lParam);
-#endif 
+#endif
 
        switch (iMessage) {
 
@@ -3411,9 +3425,9 @@ long Editor::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
                        return SEL_EMPTY;
                else
                        return SEL_TEXT;
-#else 
+#else
                return 0;
-#endif 
+#endif
 
        case EM_HIDESELECTION:
                hideSelection = wParam;
@@ -3447,7 +3461,7 @@ long Editor::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
                        vs.rightMarginWidth = vs.aveCharWidth / 2;
                }
                InvalidateStyleRedraw();
-#endif 
+#endif
                break;
 
        case SCI_SETMARGINLEFT:
@@ -4238,10 +4252,10 @@ long Editor::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
        case SCI_SETOVERTYPE:
                inOverstrike = wParam;
                break;
-       
+
        case SCI_GETOVERTYPE:
                return inOverstrike ? TRUE : FALSE;
-       
+
 #ifdef MACRO_SUPPORT
        case SCI_STARTRECORD:
                recordingMacro = 1;
@@ -4250,7 +4264,7 @@ long Editor::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
        case SCI_STOPRECORD:
                recordingMacro = 0;
                return 0;
-#endif 
+#endif
 
        default:
                return DefWndProc(iMessage, wParam, lParam);
index 3573c3f648f30698b90e720960162bdb5e68e48c..a362eaf491657cdf6dab08be7a0f45d0a92d2f27 100644 (file)
@@ -1539,16 +1539,38 @@ void wxStyledTextCtrl::OnMouseRightUp(wxMouseEvent& evt) {
     m_swx->DoContextMenu(Point(pt.x, pt.y));
 }
 
+
 void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
     long key = evt.KeyCode();
-    if ((key > WXK_ESCAPE) &&
-        (key != WXK_DELETE) && (key < 255) &&
-        !evt.ControlDown() && !evt.AltDown()) {
-
-        m_swx->DoAddChar(key);
-    }
-    else {
-        evt.Skip();
+    switch (key) {
+        // Special handling for charcters that must be typed with AltGr down on
+        // foreign keyboards.  (Comes to us as Ctrl+Alt, and so would get
+        // filtered out by the default case below.)
+        //
+        // There should be a better way to do this...
+        //
+        case '\\':
+        case '|':
+        case '@':
+        case '#':
+        case '¬':
+        case '[':
+        case ']':
+        case '{':
+        case '}':
+        case '?':
+            m_swx->DoAddChar(key);
+            break;
+
+        default:
+            if ((key > WXK_ESCAPE) && (key != WXK_DELETE) && (key < 255) &&
+                !evt.ControlDown() && !evt.AltDown()) {
+
+                m_swx->DoAddChar(key);
+            }
+            else {
+                evt.Skip();
+            }
     }
 }
 
@@ -1561,6 +1583,7 @@ void wxStyledTextCtrl::OnKeyDown(wxKeyEvent& evt) {
         evt.Skip();
 }
 
+
 void wxStyledTextCtrl::OnLoseFocus(wxFocusEvent& evt) {
     m_swx->DoLoseFocus();
 }