]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/caret.cpp
Suppose I should trust the headers in BC++5.02 more than BC++4.52
[wxWidgets.git] / src / msw / caret.cpp
index 29ec0e3f03f1a35130187d14b4388efca8d65d6d..dec7d89ea568023cd88b6e4ac392dab008962f07 100644 (file)
@@ -30,6 +30,7 @@
 
 #ifndef WX_PRECOMP
     #include "wx/window.h"
 
 #ifndef WX_PRECOMP
     #include "wx/window.h"
+    #include "wx/log.h"
 #endif // WX_PRECOMP
 
 #include "wx/caret.h"
 #endif // WX_PRECOMP
 
 #include "wx/caret.h"
@@ -59,10 +60,14 @@ int wxCaretBase::GetBlinkTime()
 //static
 void wxCaretBase::SetBlinkTime(int milliseconds)
 {
 //static
 void wxCaretBase::SetBlinkTime(int milliseconds)
 {
+#ifdef __WIN16__
+    ::SetCaretBlinkTime(milliseconds) ;
+#else
     if ( !::SetCaretBlinkTime(milliseconds) )
     {
         wxLogLastError("SetCaretBlinkTime");
     }
     if ( !::SetCaretBlinkTime(milliseconds) )
     {
         wxLogLastError("SetCaretBlinkTime");
     }
+#endif
 }
 
 // ---------------------------------------------------------------------------
 }
 
 // ---------------------------------------------------------------------------
@@ -71,11 +76,15 @@ void wxCaretBase::SetBlinkTime(int milliseconds)
 
 bool wxCaret::MSWCreateCaret()
 {
 
 bool wxCaret::MSWCreateCaret()
 {
-    wxASSERT_MSG( GetWindow(), "caret without window cannot be created" );
-    wxASSERT_MSG( IsOk(),  "caret of zero size cannot be created" );
+    wxASSERT_MSG( GetWindow(), _T("caret without window cannot be created") );
+    wxASSERT_MSG( IsOk(),  _T("caret of zero size cannot be created") );
 
     if ( !m_hasCaret )
     {
 
     if ( !m_hasCaret )
     {
+#ifdef __WIN16__
+        ::CreateCaret(GetWinHwnd(GetWindow()), 0, m_width, m_height) ;
+        m_hasCaret = TRUE;
+#else
         if ( !::CreateCaret(GetWinHwnd(GetWindow()), 0, m_width, m_height) )
         {
             wxLogLastError("CreateCaret");
         if ( !::CreateCaret(GetWinHwnd(GetWindow()), 0, m_width, m_height) )
         {
             wxLogLastError("CreateCaret");
@@ -84,6 +93,7 @@ bool wxCaret::MSWCreateCaret()
         {
             m_hasCaret = TRUE;
         }
         {
             m_hasCaret = TRUE;
         }
+#endif
     }
 
     return m_hasCaret;
     }
 
     return m_hasCaret;
@@ -111,10 +121,14 @@ void wxCaret::OnKillFocus()
     {
         m_hasCaret = FALSE;
 
     {
         m_hasCaret = FALSE;
 
+#ifdef __WIN16__
+        ::DestroyCaret() ;
+#else
         if ( !::DestroyCaret() )
         {
             wxLogLastError("DestroyCaret");
         }
         if ( !::DestroyCaret() )
         {
             wxLogLastError("DestroyCaret");
         }
+#endif
     }
 }
 
     }
 }
 
@@ -124,27 +138,36 @@ void wxCaret::OnKillFocus()
 
 void wxCaret::DoShow()
 {
 
 void wxCaret::DoShow()
 {
-    wxASSERT_MSG( GetWindow(), "caret without window cannot be shown" );
-    wxASSERT_MSG( IsOk(), "caret of zero size cannot be shown" );
+    wxASSERT_MSG( GetWindow(), _T("caret without window cannot be shown") );
+    wxASSERT_MSG( IsOk(), _T("caret of zero size cannot be shown") );
 
     if ( !m_hasCaret )
     {
         (void)MSWCreateCaret();
     }
 
 
     if ( !m_hasCaret )
     {
         (void)MSWCreateCaret();
     }
 
+#ifdef __WIN16__
+    ::ShowCaret(GetWinHwnd(GetWindow())) ;
+#else
     if ( !::ShowCaret(GetWinHwnd(GetWindow())) )
     {
         wxLogLastError("ShowCaret");
     }
     if ( !::ShowCaret(GetWinHwnd(GetWindow())) )
     {
         wxLogLastError("ShowCaret");
     }
+#endif
 }
 
 void wxCaret::DoHide()
 {
 }
 
 void wxCaret::DoHide()
 {
-    wxASSERT_MSG( m_hasCaret, "cannot hide non existent caret" );
-
-    if ( !::HideCaret(GetWinHwnd(GetWindow())) )
+    if ( m_hasCaret )
     {
     {
-        wxLogLastError("HideCaret");
+#ifdef __WIN16__
+        ::HideCaret(GetWinHwnd(GetWindow())) ;
+#else
+        if ( !::HideCaret(GetWinHwnd(GetWindow())) )
+        {
+            wxLogLastError("HideCaret");
+        }
+#endif
     }
 }
 
     }
 }
 
@@ -154,10 +177,16 @@ void wxCaret::DoHide()
 
 void wxCaret::DoMove()
 {
 
 void wxCaret::DoMove()
 {
-    wxASSERT_MSG( m_hasCaret, "cannot move non existent caret" );
-
-    if ( !::SetCaretPos(m_x, m_y) )
+    if ( m_hasCaret )
     {
     {
-        wxLogLastError("SetCaretPos");
+#ifdef __WIN16__
+        ::SetCaretPos(m_x, m_y) ;
+#else
+        if ( !::SetCaretPos(m_x, m_y) )
+        {
+            wxLogLastError("SetCaretPos");
+        }
+#endif
     }
     }
+    //else: we don't have caret right now, nothing to do (this does happen)
 }
 }