]> git.saurik.com Git - wxWidgets.git/blobdiff - src/palmos/textctrl.cpp
Converted wxVariant to use wxObject's reference counting facilities. Should make...
[wxWidgets.git] / src / palmos / textctrl.cpp
index e0bdf7e6f52e8cb03451b50941d588dc73ced706..febb66a683cf7db87f85ef3014d4f43cfbc84261 100644 (file)
@@ -1,10 +1,10 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        palmos/textctrl.cpp
+// Name:        src/palmos/textctrl.cpp
 // Purpose:     wxTextCtrl
 // Purpose:     wxTextCtrl
-// Author:      William Osborne
+// Author:      William Osborne - minimal working wxPalmOS port
 // Modified by:
 // Created:     10/13/04
 // Modified by:
 // Created:     10/13/04
-// RCS-ID:      $Id
+// RCS-ID:      $Id$
 // Copyright:   (c) William Osborne
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // Copyright:   (c) William Osborne
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // declarations
 // ============================================================================
 
 // declarations
 // ============================================================================
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "textctrl.h"
-#endif
-
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
@@ -30,8 +26,9 @@
 
 #if wxUSE_TEXTCTRL
 
 
 #if wxUSE_TEXTCTRL
 
+#include "wx/textctrl.h"
+
 #ifndef WX_PRECOMP
 #ifndef WX_PRECOMP
-    #include "wx/textctrl.h"
     #include "wx/settings.h"
     #include "wx/brush.h"
     #include "wx/utils.h"
     #include "wx/settings.h"
     #include "wx/brush.h"
     #include "wx/utils.h"
     #include "wx/log.h"
     #include "wx/app.h"
     #include "wx/menu.h"
     #include "wx/log.h"
     #include "wx/app.h"
     #include "wx/menu.h"
+    #include "wx/module.h"
 #endif
 
 #endif
 
-#include "wx/module.h"
-
 #if wxUSE_CLIPBOARD
     #include "wx/clipbrd.h"
 #endif
 
 #include "wx/textfile.h"
 
 #if wxUSE_CLIPBOARD
     #include "wx/clipbrd.h"
 #endif
 
 #include "wx/textfile.h"
 
-#include "wx/palmos/private.h"
-#include "wx/palmos/winundef.h"
-
 #include <string.h>
 
 #if wxUSE_RICHEDIT
 #include <string.h>
 
 #if wxUSE_RICHEDIT
@@ -105,7 +98,7 @@ wxBEGIN_FLAGS( wxTextCtrlStyle )
     wxFLAGS_MEMBER(wxBORDER_RAISED)
     wxFLAGS_MEMBER(wxBORDER_STATIC)
     wxFLAGS_MEMBER(wxBORDER_NONE)
     wxFLAGS_MEMBER(wxBORDER_RAISED)
     wxFLAGS_MEMBER(wxBORDER_STATIC)
     wxFLAGS_MEMBER(wxBORDER_NONE)
-    
+
     // old style border flags
     wxFLAGS_MEMBER(wxSIMPLE_BORDER)
     wxFLAGS_MEMBER(wxSUNKEN_BORDER)
     // old style border flags
     wxFLAGS_MEMBER(wxSIMPLE_BORDER)
     wxFLAGS_MEMBER(wxSUNKEN_BORDER)
@@ -138,7 +131,7 @@ wxBEGIN_FLAGS( wxTextCtrlStyle )
     wxFLAGS_MEMBER(wxTE_CENTRE)
     wxFLAGS_MEMBER(wxTE_RIGHT)
     wxFLAGS_MEMBER(wxTE_DONTWRAP)
     wxFLAGS_MEMBER(wxTE_CENTRE)
     wxFLAGS_MEMBER(wxTE_RIGHT)
     wxFLAGS_MEMBER(wxTE_DONTWRAP)
-    wxFLAGS_MEMBER(wxTE_LINEWRAP)
+    wxFLAGS_MEMBER(wxTE_CHARWRAP)
     wxFLAGS_MEMBER(wxTE_WORDWRAP)
 
 wxEND_FLAGS( wxTextCtrlStyle )
     wxFLAGS_MEMBER(wxTE_WORDWRAP)
 
 wxEND_FLAGS( wxTextCtrlStyle )
@@ -146,7 +139,7 @@ wxEND_FLAGS( wxTextCtrlStyle )
 IMPLEMENT_DYNAMIC_CLASS_XTI(wxTextCtrl, wxControl,"wx/textctrl.h")
 
 wxBEGIN_PROPERTIES_TABLE(wxTextCtrl)
 IMPLEMENT_DYNAMIC_CLASS_XTI(wxTextCtrl, wxControl,"wx/textctrl.h")
 
 wxBEGIN_PROPERTIES_TABLE(wxTextCtrl)
-    wxEVENT_PROPERTY( TextUpdated , wxEVT_COMMAND_TEXT_UPDATED , wxCommandEvent ) 
+    wxEVENT_PROPERTY( TextUpdated , wxEVT_COMMAND_TEXT_UPDATED , wxCommandEvent )
     wxEVENT_PROPERTY( TextEnter , wxEVT_COMMAND_TEXT_ENTER , wxCommandEvent )
 
     wxPROPERTY( Font , wxFont , SetFont , GetFont  , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
     wxEVENT_PROPERTY( TextEnter , wxEVT_COMMAND_TEXT_ENTER , wxCommandEvent )
 
     wxPROPERTY( Font , wxFont , SetFont , GetFont  , EMPTY_MACROVALUE, 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
@@ -159,11 +152,11 @@ wxEND_HANDLERS_TABLE()
 
 wxCONSTRUCTOR_6( wxTextCtrl , wxWindow* , Parent , wxWindowID , Id , wxString , Value , wxPoint , Position , wxSize , Size , long , WindowStyle)
 #else
 
 wxCONSTRUCTOR_6( wxTextCtrl , wxWindow* , Parent , wxWindowID , Id , wxString , Value , wxPoint , Position , wxSize , Size , long , WindowStyle)
 #else
-IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxTextCtrlBase)
 #endif
 
 
 #endif
 
 
-BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
+BEGIN_EVENT_TABLE(wxTextCtrl, wxTextCtrlBase)
     EVT_CHAR(wxTextCtrl::OnChar)
     EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
 
     EVT_CHAR(wxTextCtrl::OnChar)
     EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
 
@@ -217,20 +210,6 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
     return false;
 }
 
     return false;
 }
 
-// Make sure the window style (etc.) reflects the HWND style (roughly)
-void wxTextCtrl::AdoptAttributesFromHWND()
-{
-}
-
-WXDWORD wxTextCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
-{
-    return 0;
-}
-
-void wxTextCtrl::SetWindowStyleFlag(long style)
-{
-}
-
 // ----------------------------------------------------------------------------
 // set/get the controls text
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // set/get the controls text
 // ----------------------------------------------------------------------------
@@ -238,78 +217,24 @@ void wxTextCtrl::SetWindowStyleFlag(long style)
 wxString wxTextCtrl::GetValue() const
 {
     wxString res;
 wxString wxTextCtrl::GetValue() const
 {
     wxString res;
-
     return res;
 }
 
 wxString wxTextCtrl::GetRange(long from, long to) const
 {
     return res;
 }
 
 wxString wxTextCtrl::GetRange(long from, long to) const
 {
-    wxString str;
-
-    return str;
-}
-
-void wxTextCtrl::SetValue(const wxString& value)
-{
-}
-
-#if wxUSE_RICHEDIT && (!wxUSE_UNICODE || wxUSE_UNICODE_MSLU)
-
-// TODO: using memcpy() would improve performance a lot for big amounts of text
-
-DWORD CALLBACK
-wxRichEditStreamIn(DWORD dwCookie, BYTE *buf, LONG cb, LONG *pcb)
-{
-    return 0;
-}
-
-// helper struct used to pass parameters from wxTextCtrl to wxRichEditStreamOut
-struct wxStreamOutData
-{
-    wchar_t *wpc;
-    size_t len;
-};
-
-DWORD CALLBACK
-wxRichEditStreamOut(DWORD_PTR dwCookie, BYTE *buf, LONG cb, LONG *pcb)
-{
-    return 0;
-}
-
-
-#if wxUSE_UNICODE_MSLU
-    #define UNUSED_IF_MSLU(param)
-#else
-    #define UNUSED_IF_MSLU(param) param
-#endif
-
-bool
-wxTextCtrl::StreamIn(const wxString& value,
-                     wxFontEncoding UNUSED_IF_MSLU(encoding),
-                     bool selectionOnly)
-{
-    return false;
+    wxString res;
+    return res;
 }
 
 }
 
-#if !wxUSE_UNICODE_MSLU
-
-wxString
-wxTextCtrl::StreamOut(wxFontEncoding encoding, bool selectionOnly) const
+void wxTextCtrl::DoSetValue(const wxString& value, int flags)
 {
 {
-    wxString out;
-
-    return out;
 }
 
 }
 
-#endif // !wxUSE_UNICODE_MSLU
-
-#endif // wxUSE_RICHEDIT
-
 void wxTextCtrl::WriteText(const wxString& value)
 {
 }
 
 void wxTextCtrl::WriteText(const wxString& value)
 {
 }
 
-void wxTextCtrl::DoWriteText(const wxString& value, bool selectionOnly)
+void wxTextCtrl::DoWriteText(const wxString& text, int flags)
 {
 }
 
 {
 }
 
@@ -321,15 +246,6 @@ void wxTextCtrl::Clear()
 {
 }
 
 {
 }
 
-#ifdef __WIN32__
-
-bool wxTextCtrl::EmulateKeyPress(const wxKeyEvent& event)
-{
-    return false;
-}
-
-#endif // __WIN32__
-
 // ----------------------------------------------------------------------------
 // Clipboard operations
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // Clipboard operations
 // ----------------------------------------------------------------------------
@@ -346,11 +262,6 @@ void wxTextCtrl::Paste()
 {
 }
 
 {
 }
 
-bool wxTextCtrl::HasSelection() const
-{
-    return false;
-}
-
 bool wxTextCtrl::CanCopy() const
 {
     return false;
 bool wxTextCtrl::CanCopy() const
 {
     return false;
@@ -387,7 +298,7 @@ long wxTextCtrl::GetInsertionPoint() const
     return 0;
 }
 
     return 0;
 }
 
-long wxTextCtrl::GetLastPosition() const
+wxTextPos wxTextCtrl::GetLastPosition() const
 {
     return 0;
 }
 {
     return 0;
 }
@@ -411,7 +322,7 @@ void wxTextCtrl::SetSelection(long from, long to)
 {
 }
 
 {
 }
 
-void wxTextCtrl::DoSetSelection(long from, long to, bool scrollCaret)
+void wxTextCtrl::DoSetSelection(long from, long to, int flags)
 {
 }
 
 {
 }
 
@@ -419,7 +330,7 @@ void wxTextCtrl::DoSetSelection(long from, long to, bool scrollCaret)
 // Working with files
 // ----------------------------------------------------------------------------
 
 // Working with files
 // ----------------------------------------------------------------------------
 
-bool wxTextCtrl::LoadFile(const wxString& file)
+bool wxTextCtrl::DoLoadFile(const wxString& file, int fileType)
 {
     return false;
 }
 {
     return false;
 }
@@ -469,13 +380,13 @@ bool wxTextCtrl::PositionToXY(long pos, long *x, long *y) const
 }
 
 wxTextCtrlHitTestResult
 }
 
 wxTextCtrlHitTestResult
-wxTextCtrl::HitTest(const wxPoint& pt, wxTextCoord *col, wxTextCoord *row) const
+wxTextCtrl::HitTest(const wxPoint& pt, long *pos) const
 {
     return wxTE_HT_UNKNOWN;
 }
 
 // ----------------------------------------------------------------------------
 {
     return wxTE_HT_UNKNOWN;
 }
 
 // ----------------------------------------------------------------------------
-// 
+//
 // ----------------------------------------------------------------------------
 
 void wxTextCtrl::ShowPosition(long pos)
 // ----------------------------------------------------------------------------
 
 void wxTextCtrl::ShowPosition(long pos)
@@ -517,10 +428,12 @@ void wxTextCtrl::Redo()
 
 bool wxTextCtrl::CanUndo() const
 {
 
 bool wxTextCtrl::CanUndo() const
 {
+    return false;
 }
 
 bool wxTextCtrl::CanRedo() const
 {
 }
 
 bool wxTextCtrl::CanRedo() const
 {
+    return false;
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------
@@ -548,20 +461,10 @@ void wxTextCtrl::OnDropFiles(wxDropFilesEvent& event)
 // kbd input processing
 // ----------------------------------------------------------------------------
 
 // kbd input processing
 // ----------------------------------------------------------------------------
 
-bool wxTextCtrl::MSWShouldPreProcessMessage(WXMSG* pMsg)
-{
-    return false;
-}
-
 void wxTextCtrl::OnChar(wxKeyEvent& event)
 {
 }
 
 void wxTextCtrl::OnChar(wxKeyEvent& event)
 {
 }
 
-WXLRESULT wxTextCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
-{
-    return 0;
-}
-
 // ----------------------------------------------------------------------------
 // text control event processing
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // text control event processing
 // ----------------------------------------------------------------------------
@@ -571,36 +474,11 @@ bool wxTextCtrl::SendUpdateEvent()
     return false;
 }
 
     return false;
 }
 
-bool wxTextCtrl::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
-{
-    return false;
-}
-
-WXHBRUSH wxTextCtrl::OnCtlColor(WXHDC pDC, WXHWND WXUNUSED(pWnd), WXUINT WXUNUSED(nCtlColor),
-#if wxUSE_CTL3D
-                               WXUINT message,
-                               WXWPARAM wParam,
-                               WXLPARAM lParam
-#else
-                               WXUINT WXUNUSED(message),
-                               WXWPARAM WXUNUSED(wParam),
-                               WXLPARAM WXUNUSED(lParam)
-#endif
-    )
-{
-    return (WXHBRUSH) 0;
-}
-
 bool wxTextCtrl::AdjustSpaceLimit()
 {
     return false;
 }
 
 bool wxTextCtrl::AdjustSpaceLimit()
 {
     return false;
 }
 
-bool wxTextCtrl::AcceptsFocus() const
-{
-    return false;
-}
-
 wxSize wxTextCtrl::DoGetBestSize() const
 {
     return wxSize(0,0);
 wxSize wxTextCtrl::DoGetBestSize() const
 {
     return wxSize(0,0);
@@ -666,11 +544,39 @@ void wxTextCtrl::OnUpdateSelectAll(wxUpdateUIEvent& event)
 {
 }
 
 {
 }
 
-void wxTextCtrl::OnRightClick(wxMouseEvent& event)
+void wxTextCtrl::OnSetFocus(wxFocusEvent& WXUNUSED(event))
 {
 }
 
 {
 }
 
-void wxTextCtrl::OnSetFocus(wxFocusEvent& WXUNUSED(event))
+wxVisualAttributes wxTextCtrl::GetDefaultAttributes() const
+{
+    wxVisualAttributes attrs;
+    attrs.font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+    attrs.colFg = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT);
+    attrs.colBg = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); //white
+    return attrs;
+}
+
+bool wxTextCtrl::EmulateKeyPress(const wxKeyEvent& rEvent)
+{
+    return false;
+}
+bool wxTextCtrl::CanApplyThemeBorder() const
+{
+    return false;
+}
+bool wxTextCtrl::IsEmpty() const
+{
+    return false;
+}
+bool wxTextCtrl::AcceptsFocusFromKeyboard() const
+{
+    return false;
+}
+void wxTextCtrl::AdoptAttributesFromHWND()
+{
+}
+void wxTextCtrl::SetWindowStyleFlag(long lStyle)
 {
 }
 
 {
 }
 
@@ -701,43 +607,43 @@ bool wxTextCtrl::SetForegroundColour(const wxColour& colour)
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------
-// styling support for rich edit controls
+// wxRichEditModule
 // ----------------------------------------------------------------------------
 
 // ----------------------------------------------------------------------------
 
-#if wxUSE_RICHEDIT
-
-bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
+bool wxRichEditModule::OnInit()
 {
     return false;
 }
 
 {
     return false;
 }
 
-bool wxTextCtrl::SetDefaultStyle(const wxTextAttr& style)
+void wxRichEditModule::OnExit()
 {
 {
-    return false;
 }
 
 }
 
-bool wxTextCtrl::GetStyle(long position, wxTextAttr& style)
+/* static */
+bool wxRichEditModule::Load(int version)
 {
     return false;
 }
 
 {
     return false;
 }
 
-#endif
+#endif // wxUSE_RICHEDIT
 
 // ----------------------------------------------------------------------------
 
 // ----------------------------------------------------------------------------
-// wxRichEditModule
+// styling support for rich edit controls
 // ----------------------------------------------------------------------------
 
 // ----------------------------------------------------------------------------
 
-bool wxRichEditModule::OnInit()
+#if wxUSE_RICHEDIT
+
+bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
 {
     return false;
 }
 
 {
     return false;
 }
 
-void wxRichEditModule::OnExit()
+bool wxTextCtrl::SetDefaultStyle(const wxTextAttr& style)
 {
 {
+    return false;
 }
 
 }
 
-/* static */
-bool wxRichEditModule::Load(int version)
+bool wxTextCtrl::GetStyle(long position, wxTextAttr& style)
 {
     return false;
 }
 {
     return false;
 }