]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/textctrl.cpp
fix typo in drawing slider ticks; added assert to check for it (slightly modified...
[wxWidgets.git] / src / os2 / textctrl.cpp
index 87c8150bace89f7e35d3afedc41677c892bbfbc0..c567806c24450816f2841ebcf142ab24750649a7 100644 (file)
@@ -86,6 +86,10 @@ wxTextCtrl::wxTextCtrl()
 {
 }
 
 {
 }
 
+wxTextCtrl::~wxTextCtrl()
+{
+}
+
 bool wxTextCtrl::Create(
   wxWindow*                         pParent
 , wxWindowID                        vId
 bool wxTextCtrl::Create(
   wxWindow*                         pParent
 , wxWindowID                        vId
@@ -101,6 +105,7 @@ bool wxTextCtrl::Create(
 {
     HWND                            hParent;
     int                             nTempy;
 {
     HWND                            hParent;
     int                             nTempy;
+
     //
     // Base initialization
     //
     //
     // Base initialization
     //
@@ -125,6 +130,7 @@ bool wxTextCtrl::Create(
     }
 
     m_windowStyle = lStyle;
     }
 
     m_windowStyle = lStyle;
+    m_bIsMLE = FALSE;
 
     long                            lSstyle = WS_VISIBLE | WS_TABSTOP;
 
 
     long                            lSstyle = WS_VISIBLE | WS_TABSTOP;
 
@@ -200,7 +206,7 @@ bool wxTextCtrl::Create(
     //
     // Set font, position, size and initial value
     //
     //
     // Set font, position, size and initial value
     //
-    wxFont*                          pTextFont = new wxFont( 10
+    wxFont*                          pTextFont = new wxFont( 8
                                                             ,wxMODERN
                                                             ,wxNORMAL
                                                             ,wxNORMAL
                                                             ,wxMODERN
                                                             ,wxNORMAL
                                                             ,wxNORMAL
@@ -218,8 +224,8 @@ bool wxTextCtrl::Create(
     ::WinQueryWindowPos(m_hWnd, &vSwp);
     SetXComp(vSwp.x);
     SetYComp(vSwp.y);
     ::WinQueryWindowPos(m_hWnd, &vSwp);
     SetXComp(vSwp.x);
     SetYComp(vSwp.y);
-    SetSize( vPos.x
-            ,vPos.y
+    SetSize( vPos.x - GetXComp()
+            ,vPos.y - GetYComp()
             ,rSize.x
             ,rSize.y
            );
             ,rSize.x
             ,rSize.y
            );
@@ -252,6 +258,58 @@ void wxTextCtrl::AdoptAttributesFromHWND()
     }
 } // end of wxTextCtrl::AdoptAttributesFromHWND
 
     }
 } // end of wxTextCtrl::AdoptAttributesFromHWND
 
+WXDWORD wxTextCtrl::OS2GetStyle(
+  long                              lStyle
+, WXDWORD*                          pdwExstyle
+) const
+{
+    //
+    // Default border for the text controls is the sunken one
+    //
+    if ((lStyle & wxBORDER_MASK) == wxBORDER_DEFAULT )
+    {
+        lStyle |= wxBORDER_SUNKEN;
+    }
+
+    long                            dwStyle = wxControl::OS2GetStyle( lStyle
+                                                                     ,pdwExstyle
+                                                                    );
+
+    dwStyle = WS_VISIBLE | WS_TABSTOP;
+
+    //
+    // Single and multiline edit fields are two different controls in PM
+    //
+    if ( m_windowStyle & wxTE_MULTILINE )
+    {
+        dwStyle |= MLS_BORDER | MLS_WORDWRAP;
+        if ((m_windowStyle & wxTE_NO_VSCROLL) == 0)
+            dwStyle |= MLS_VSCROLL;
+        if (m_windowStyle & wxHSCROLL)
+            dwStyle |= MLS_HSCROLL;
+        if (m_windowStyle & wxTE_READONLY)
+            dwStyle |= MLS_READONLY;
+    }
+    else
+    {
+        dwStyle |= ES_LEFT | ES_AUTOSCROLL | ES_MARGIN;
+        if (m_windowStyle & wxHSCROLL)
+            dwStyle |=  ES_AUTOSCROLL;
+        if (m_windowStyle & wxTE_READONLY)
+            dwStyle |= ES_READONLY;
+        if (m_windowStyle & wxTE_PASSWORD) // hidden input
+            dwStyle |= ES_UNREADABLE;
+    }
+    return dwStyle;
+} // end of wxTextCtrl::OS2GetStyle
+
+void wxTextCtrl::SetWindowStyleFlag(
+  long                              lStyle
+)
+{
+    wxControl::SetWindowStyleFlag(lStyle);
+} // end of wxTextCtrl::SetWindowStyleFlag
+
 void wxTextCtrl::SetupColours()
 {
     wxColour                        vBkgndColour;
 void wxTextCtrl::SetupColours()
 {
     wxColour                        vBkgndColour;
@@ -288,7 +346,6 @@ wxString wxTextCtrl::GetValue() const
         if (*zStr == '\r')
             *zStr = '\n';
     }
         if (*zStr == '\r')
             *zStr = '\n';
     }
-    sStr = zStr;
     return sStr;
 } // end of wxTextCtrl::GetValue
 
     return sStr;
 } // end of wxTextCtrl::GetValue
 
@@ -333,6 +390,14 @@ void wxTextCtrl::Clear()
     ::WinSetWindowText(GetHwnd(), "");
 } // end of wxTextCtrl::Clear
 
     ::WinSetWindowText(GetHwnd(), "");
 } // end of wxTextCtrl::Clear
 
+bool wxTextCtrl::EmulateKeyPress(
+  const wxKeyEvent&                 rEvent
+)
+{
+    SetFocus();
+    return(wxTextCtrlBase::EmulateKeyPress(rEvent));
+} // end of wxTextCtrl::EmulateKeyPress
+
 // ----------------------------------------------------------------------------
 // Clipboard operations
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // Clipboard operations
 // ----------------------------------------------------------------------------
@@ -1172,6 +1237,29 @@ void wxTextCtrl::OnRedo(
     Redo();
 } // end of wxTextCtrl::OnRedo
 
     Redo();
 } // end of wxTextCtrl::OnRedo
 
+void wxTextCtrl::OnDelete(
+  wxCommandEvent&                   rEvent
+)
+{
+    long                            lFrom;
+    long                            lTo;
+
+    GetSelection( &lFrom
+                 ,&lTo
+                );
+    if (lFrom != -1 && lTo != -1)
+        Remove( lFrom
+               ,lTo
+              );
+} // end of wxTextCtrl::OnDelete
+
+void wxTextCtrl::OnSelectAll(
+  wxCommandEvent&                   rEvent
+)
+{
+    SetSelection(-1, -1);
+} // end of wxTextCtrl::OnSelectAll
+
 void wxTextCtrl::OnUpdateCut(
   wxUpdateUIEvent&                  rEvent
 )
 void wxTextCtrl::OnUpdateCut(
   wxUpdateUIEvent&                  rEvent
 )
@@ -1207,6 +1295,26 @@ void wxTextCtrl::OnUpdateRedo(
     rEvent.Enable(CanRedo());
 } // end of wxTextCtrl::OnUpdateRedo
 
     rEvent.Enable(CanRedo());
 } // end of wxTextCtrl::OnUpdateRedo
 
+void wxTextCtrl::OnUpdateDelete(
+  wxUpdateUIEvent&                  rEvent
+)
+{
+    long                            lFrom;
+    long                            lTo;
+
+    GetSelection( &lFrom
+                 ,&lTo
+                );
+    rEvent.Enable( lFrom != -1L && lTo != -1L && lFrom != lTo && IsEditable()) ;
+} // end of wxTextCtrl::OnUpdateDelete
+
+void wxTextCtrl::OnUpdateSelectAll(
+  wxUpdateUIEvent&                  rEvent
+)
+{
+    rEvent.Enable(GetLastPosition() > 0);
+} // end of wxTextCtrl::OnUpdateSelectAll
+
 bool wxTextCtrl::SetBackgroundColour(
   const wxColour&                   rColour
 )
 bool wxTextCtrl::SetBackgroundColour(
   const wxColour&                   rColour
 )