projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
put constant in define
[wxWidgets.git]
/
src
/
os2
/
textctrl.cpp
diff --git
a/src/os2/textctrl.cpp
b/src/os2/textctrl.cpp
index f02d4af9db69948678f79de3db726d5723cb4076..1c7014d733d23ba0c6b57be535ba6966ee61b6a6 100644
(file)
--- a/
src/os2/textctrl.cpp
+++ b/
src/os2/textctrl.cpp
@@
-1,5
+1,5
@@
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
-// Name: textctrl.cpp
+// Name:
src/os2/
textctrl.cpp
// Purpose: wxTextCtrl
// Author: David Webster
// Modified by:
// Purpose: wxTextCtrl
// Author: David Webster
// Modified by:
@@
-16,17
+16,18
@@
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
+#include "wx/textctrl.h"
+
#ifndef WX_PRECOMP
#ifndef WX_PRECOMP
- #include "wx/textctrl.h"
#include "wx/scrolwin.h"
#include "wx/settings.h"
#include "wx/brush.h"
#include "wx/utils.h"
#include "wx/log.h"
#include "wx/scrolwin.h"
#include "wx/settings.h"
#include "wx/brush.h"
#include "wx/utils.h"
#include "wx/log.h"
+ #include "wx/app.h"
#endif
#if wxUSE_CLIPBOARD
#endif
#if wxUSE_CLIPBOARD
- #include "wx/app.h"
#include "wx/clipbrd.h"
#endif
#include "wx/clipbrd.h"
#endif
@@
-54,9
+55,9
@@
// event tables and other macros
// ----------------------------------------------------------------------------
// event tables and other macros
// ----------------------------------------------------------------------------
-IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wx
Control
)
+IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wx
TextCtrlBase
)
-BEGIN_EVENT_TABLE(wxTextCtrl, wx
Control
)
+BEGIN_EVENT_TABLE(wxTextCtrl, wx
TextCtrlBase
)
EVT_CHAR(wxTextCtrl::OnChar)
EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
EVT_CHAR(wxTextCtrl::OnChar)
EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
@@
-124,6
+125,7
@@
bool wxTextCtrl::Create(
m_windowStyle = lStyle;
m_bIsMLE = false;
m_windowStyle = lStyle;
m_bIsMLE = false;
+ m_bSkipUpdate = false;
long lSstyle = WS_VISIBLE | WS_TABSTOP;
long lSstyle = WS_VISIBLE | WS_TABSTOP;
@@
-158,7
+160,7
@@
bool wxTextCtrl::Create(
{
m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
,WC_MLE // Window class
{
m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
,WC_MLE // Window class
- ,
(PSZ)
rsValue.c_str() // Initial Text
+ ,rsValue.c_str() // Initial Text
,(ULONG)lSstyle // Style flags
,(LONG)0 // X pos of origin
,(LONG)0 // Y pos of origin
,(ULONG)lSstyle // Style flags
,(LONG)0 // X pos of origin
,(LONG)0 // Y pos of origin
@@
-175,7
+177,7
@@
bool wxTextCtrl::Create(
{
m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
,WC_ENTRYFIELD // Window class
{
m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
,WC_ENTRYFIELD // Window class
- ,
(PSZ)
rsValue.c_str() // Initial Text
+ ,rsValue.c_str() // Initial Text
,(ULONG)lSstyle // Style flags
,(LONG)0 // X pos of origin
,(LONG)0 // Y pos of origin
,(ULONG)lSstyle // Style flags
,(LONG)0 // X pos of origin
,(LONG)0 // Y pos of origin
@@
-327,7
+329,8
@@
void wxTextCtrl::SetupColours()
wxString wxTextCtrl::GetValue() const
{
wxString sStr = wxGetWindowText(GetHWND());
wxString wxTextCtrl::GetValue() const
{
wxString sStr = wxGetWindowText(GetHWND());
- char* zStr = (char*)sStr.c_str();
+ wxCharBuffer buf(sStr.char_str());
+ char* zStr = buf.data();
for ( ; *zStr; zStr++ )
{
for ( ; *zStr; zStr++ )
{
@@
-339,11
+342,12
@@
wxString wxTextCtrl::GetValue() const
if (*zStr == '\r')
*zStr = '\n';
}
if (*zStr == '\r')
*zStr = '\n';
}
- return
s
Str;
+ return
z
Str;
} // end of wxTextCtrl::GetValue
} // end of wxTextCtrl::GetValue
-void wxTextCtrl::SetValue(
- const wxString& rsValue
+void wxTextCtrl::DoSetValue(
+ const wxString& rsValue,
+ int flags
)
{
//
)
{
//
@@
-354,7
+358,10
@@
void wxTextCtrl::SetValue(
//
if ((rsValue.length() > 0x400) || (rsValue != GetValue()))
{
//
if ((rsValue.length() > 0x400) || (rsValue != GetValue()))
{
- ::WinSetWindowText(GetHwnd(), (PSZ)rsValue.c_str());
+ if ( flags & SetValue_SendEvent )
+ m_bSkipUpdate = true;
+
+ ::WinSetWindowText(GetHwnd(), rsValue.c_str());
AdjustSpaceLimit();
}
} // end of wxTextCtrl::SetValue
AdjustSpaceLimit();
}
} // end of wxTextCtrl::SetValue
@@
-364,9
+371,9
@@
void wxTextCtrl::WriteText(
)
{
if (m_bIsMLE)
)
{
if (m_bIsMLE)
- ::WinSendMsg(GetHwnd(), MLM_INSERT, MPARAM(
(PCHAR)rsValue.c
_str()), MPARAM(0));
+ ::WinSendMsg(GetHwnd(), MLM_INSERT, MPARAM(
rsValue.wx
_str()), MPARAM(0));
else
else
- ::WinSetWindowText(GetHwnd(),
(PSZ)
rsValue.c_str());
+ ::WinSetWindowText(GetHwnd(), rsValue.c_str());
AdjustSpaceLimit();
} // end of wxTextCtrl::WriteText
AdjustSpaceLimit();
} // end of wxTextCtrl::WriteText
@@
-596,14
+603,12
@@
bool wxTextCtrl::IsEditable() const
// Editing
// ----------------------------------------------------------------------------
// Editing
// ----------------------------------------------------------------------------
-void wxTextCtrl::Replace(
- long lFrom
-, long lTo
-, const wxString& rsValue
-)
+void wxTextCtrl::Replace( long lFrom,
+ long lTo,
+ const wxString& rsValue )
{
#if wxUSE_CLIPBOARD
{
#if wxUSE_CLIPBOARD
- HWND
hWnd
= GetHwnd();
+ HWND
hWnd
= GetHwnd();
//
// Set selection and remove it
//
// Set selection and remove it
@@
-630,6
+635,9
@@
void wxTextCtrl::Replace(
else
::WinSendMsg(hWnd, EM_PASTE, (MPARAM)0, (MPARAM)0);
#else
else
::WinSendMsg(hWnd, EM_PASTE, (MPARAM)0, (MPARAM)0);
#else
+ wxUnusedVar(lFrom);
+ wxUnusedVar(lTo);
+ wxUnusedVar(rsValue);
wxFAIL_MSG("wxTextCtrl::Replace not implemented if wxUSE_CLIPBOARD is 0.");
#endif
} // end of wxTextCtrl::Replace
wxFAIL_MSG("wxTextCtrl::Replace not implemented if wxUSE_CLIPBOARD is 0.");
#endif
} // end of wxTextCtrl::Replace
@@
-677,11
+685,12
@@
void wxTextCtrl::SetSelection(
::WinSendMsg(hWnd, EM_SETSEL, MPFROM2SHORT((USHORT)lFromChar, (USHORT)lToChar), (MPARAM)0);
} // end of wxTextCtrl::SetSelection
::WinSendMsg(hWnd, EM_SETSEL, MPFROM2SHORT((USHORT)lFromChar, (USHORT)lToChar), (MPARAM)0);
} // end of wxTextCtrl::SetSelection
-bool wxTextCtrl::LoadFile(
- const wxString& rsFile
+bool wxTextCtrl::DoLoadFile(
+ const wxString& rsFile,
+ int fileType
)
{
)
{
- if ( wxTextCtrlBase::
LoadFile(rsFil
e) )
+ if ( wxTextCtrlBase::
DoLoadFile(rsFile, fileTyp
e) )
{
//
// Update the size limit if needed
{
//
// Update the size limit if needed
@@
-690,7
+699,7
@@
bool wxTextCtrl::LoadFile(
return true;
}
return false;
return true;
}
return false;
-} // end of wxTextCtrl::LoadFile
+} // end of wxTextCtrl::
Do
LoadFile
bool wxTextCtrl::IsModified() const
{
bool wxTextCtrl::IsModified() const
{
@@
-819,12
+828,10
@@
bool wxTextCtrl::PositionToXY(
return true;
} // end of wxTextCtrl::PositionToXY
return true;
} // end of wxTextCtrl::PositionToXY
-void wxTextCtrl::ShowPosition(
- long lPos
-)
+void wxTextCtrl::ShowPosition( long WXUNUSED(lPos) )
{
{
- HWND
hWnd = GetHwnd();
- long
lCurrentLineLineNo = 0L;
+ HWND hWnd = GetHwnd();
+ long lCurrentLineLineNo = 0L;
// To scroll to a position, we pass the number of lines and characters
// to scroll *by*. This means that we need to:
// To scroll to a position, we pass the number of lines and characters
// to scroll *by*. This means that we need to:
@@
-851,17
+858,17
@@
void wxTextCtrl::ShowPosition(
}
} // end of wxTextCtrl::ShowPosition
}
} // end of wxTextCtrl::ShowPosition
-int wxTextCtrl::GetLineLength(
- long lLineNo
-) const
+int wxTextCtrl::GetLineLength( long WXUNUSED(lLineNo) ) const
{
{
- long
lLen = 0L;
+ long lLen = 0L;
if (m_bIsMLE)
if (m_bIsMLE)
+ {
lLen = (long)::WinSendMsg(GetHwnd(), MLM_QUERYLINELENGTH, 0, 0);
lLen = (long)::WinSendMsg(GetHwnd(), MLM_QUERYLINELENGTH, 0, 0);
+ }
else
{
else
{
- WNDPARAMS
vParams;
+ WNDPARAMS vParams;
vParams.fsStatus = WPM_CCHTEXT;
if (::WinSendMsg( GetHwnd()
vParams.fsStatus = WPM_CCHTEXT;
if (::WinSendMsg( GetHwnd()
@@
-994,21
+1001,17
@@
void wxTextCtrl::OnDropFiles(
}
} // end of wxTextCtrl::OnDropFiles
}
} // end of wxTextCtrl::OnDropFiles
-WXHBRUSH wxTextCtrl::OnCtlColor(
- WXHDC hWxDC
-, WXHWND hWnd
-, WXUINT uCtlColor
-, WXUINT uMessage
-, WXWPARAM wParam
-, WXLPARAM lParam
-)
+WXHBRUSH wxTextCtrl::OnCtlColor( WXHDC hWxDC,
+ WXHWND WXUNUSED(hWnd),
+ WXUINT WXUNUSED(uCtlColor),
+ WXUINT WXUNUSED(uMessage),
+ WXWPARAM WXUNUSED(wParam),
+ WXLPARAM WXUNUSED(lParam) )
{
{
- HPS hPS = (HPS)hWxDC;
- wxColour vColBack = GetBackgroundColour();
- wxColour vColFore = GetForegroundColour();
- wxBrush* pBackgroundBrush = wxTheBrushList->FindOrCreateBrush( GetBackgroundColour()
- ,wxSOLID
- );
+ HPS hPS = (HPS)hWxDC;
+ wxColour vColBack = GetBackgroundColour();
+ wxColour vColFore = GetForegroundColour();
+ wxBrush* pBackgroundBrush = wxTheBrushList->FindOrCreateBrush( vColBack, wxSOLID );
if (m_bUseCtl3D)
{
if (m_bUseCtl3D)
{
@@
-1098,6
+1101,12
@@
bool wxTextCtrl::OS2Command(
case EN_CHANGE:
{
case EN_CHANGE:
{
+ if (m_bSkipUpdate)
+ {
+ m_bSkipUpdate = false;
+ break;
+ }
+
wxCommandEvent vEvent( wxEVT_COMMAND_TEXT_UPDATED
,m_windowId
);
wxCommandEvent vEvent( wxEVT_COMMAND_TEXT_UPDATED
,m_windowId
);
@@
-1162,11
+1171,17
@@
void wxTextCtrl::AdjustSpaceLimit()
}
if (uLen >= uLimit)
{
}
if (uLen >= uLimit)
{
- uLimit = uLen + 0x8000; // 32Kb
- if (uLimit > 0xffff)
+ if (m_bIsMLE)
{
{
- uLimit = 0L;
+ uLimit = uLen + 0x8000; // 32Kb
+ if (uLimit > 0xffff)
+ {
+ uLimit = 0L;
+ }
}
}
+ else
+ uLimit = 0x7fff;
+
if (m_bIsMLE)
::WinSendMsg(GetHwnd(), MLM_SETTEXTLIMIT, MPFROMLONG(uLimit), 0);
else
if (m_bIsMLE)
::WinSendMsg(GetHwnd(), MLM_SETTEXTLIMIT, MPFROMLONG(uLimit), 0);
else
@@
-1207,148
+1222,107
@@
wxSize wxTextCtrl::DoGetBestSize() const
// standard handlers for standard edit menu events
// ----------------------------------------------------------------------------
// standard handlers for standard edit menu events
// ----------------------------------------------------------------------------
-void wxTextCtrl::OnCut(
- wxCommandEvent& rEvent
-)
+void wxTextCtrl::OnCut( wxCommandEvent& WXUNUSED(rEvent) )
{
Cut();
} // end of wxTextCtrl::OnCut
{
Cut();
} // end of wxTextCtrl::OnCut
-void wxTextCtrl::OnCopy(
- wxCommandEvent& rEvent
-)
+void wxTextCtrl::OnCopy( wxCommandEvent& WXUNUSED(rEvent) )
{
Copy();
} // end of wxTextCtrl::OnCopy
{
Copy();
} // end of wxTextCtrl::OnCopy
-void wxTextCtrl::OnPaste(
- wxCommandEvent& rEvent
-)
+void wxTextCtrl::OnPaste( wxCommandEvent& WXUNUSED(rEvent) )
{
Paste();
} // end of wxTextCtrl::OnPaste
{
Paste();
} // end of wxTextCtrl::OnPaste
-void wxTextCtrl::OnUndo(
- wxCommandEvent& rEvent
-)
+void wxTextCtrl::OnUndo( wxCommandEvent& WXUNUSED(rEvent) )
{
Undo();
} // end of wxTextCtrl::OnUndo
{
Undo();
} // end of wxTextCtrl::OnUndo
-void wxTextCtrl::OnRedo(
- wxCommandEvent& rEvent
-)
+void wxTextCtrl::OnRedo( wxCommandEvent& WXUNUSED(rEvent) )
{
Redo();
} // end of wxTextCtrl::OnRedo
{
Redo();
} // end of wxTextCtrl::OnRedo
-void wxTextCtrl::OnDelete(
- wxCommandEvent& rEvent
-)
+void wxTextCtrl::OnDelete( wxCommandEvent& WXUNUSED(rEvent) )
{
{
- long lFrom;
- long lTo;
+ long lFrom, lTo;
+
+ GetSelection( &lFrom, &lTo );
- GetSelection( &lFrom
- ,&lTo
- );
if (lFrom != -1 && lTo != -1)
if (lFrom != -1 && lTo != -1)
- Remove( lFrom
- ,lTo
- );
+ Remove( lFrom, lTo );
} // end of wxTextCtrl::OnDelete
} // end of wxTextCtrl::OnDelete
-void wxTextCtrl::OnSelectAll(
- wxCommandEvent& rEvent
-)
+void wxTextCtrl::OnSelectAll( wxCommandEvent& WXUNUSED(rEvent) )
{
SetSelection(-1, -1);
} // end of wxTextCtrl::OnSelectAll
{
SetSelection(-1, -1);
} // end of wxTextCtrl::OnSelectAll
-void wxTextCtrl::OnUpdateCut(
- wxUpdateUIEvent& rEvent
-)
+void wxTextCtrl::OnUpdateCut( wxUpdateUIEvent& rEvent )
{
rEvent.Enable(CanCut());
} // end of wxTextCtrl::OnUpdateCut
{
rEvent.Enable(CanCut());
} // end of wxTextCtrl::OnUpdateCut
-void wxTextCtrl::OnUpdateCopy(
- wxUpdateUIEvent& rEvent
-)
+void wxTextCtrl::OnUpdateCopy( wxUpdateUIEvent& rEvent )
{
rEvent.Enable(CanCopy());
} // end of wxTextCtrl::OnUpdateCopy
{
rEvent.Enable(CanCopy());
} // end of wxTextCtrl::OnUpdateCopy
-void wxTextCtrl::OnUpdatePaste(
- wxUpdateUIEvent& rEvent
-)
+void wxTextCtrl::OnUpdatePaste( wxUpdateUIEvent& rEvent )
{
rEvent.Enable(CanPaste());
} // end of wxTextCtrl::OnUpdatePaste
{
rEvent.Enable(CanPaste());
} // end of wxTextCtrl::OnUpdatePaste
-void wxTextCtrl::OnUpdateUndo(
- wxUpdateUIEvent& rEvent
-)
+void wxTextCtrl::OnUpdateUndo( wxUpdateUIEvent& rEvent )
{
rEvent.Enable(CanUndo());
} // end of wxTextCtrl::OnUpdateUndo
{
rEvent.Enable(CanUndo());
} // end of wxTextCtrl::OnUpdateUndo
-void wxTextCtrl::OnUpdateRedo(
- wxUpdateUIEvent& rEvent
-)
+void wxTextCtrl::OnUpdateRedo( wxUpdateUIEvent& rEvent )
{
rEvent.Enable(CanRedo());
} // end of wxTextCtrl::OnUpdateRedo
{
rEvent.Enable(CanRedo());
} // end of wxTextCtrl::OnUpdateRedo
-void wxTextCtrl::OnUpdateDelete(
- wxUpdateUIEvent& rEvent
-)
+void wxTextCtrl::OnUpdateDelete( wxUpdateUIEvent& rEvent )
{
{
- long lFrom;
- long lTo;
+ long lFrom, lTo;
- GetSelection( &lFrom
- ,&lTo
- );
+ GetSelection( &lFrom, &lTo );
rEvent.Enable( lFrom != -1L && lTo != -1L && lFrom != lTo && IsEditable()) ;
} // end of wxTextCtrl::OnUpdateDelete
rEvent.Enable( lFrom != -1L && lTo != -1L && lFrom != lTo && IsEditable()) ;
} // end of wxTextCtrl::OnUpdateDelete
-void wxTextCtrl::OnUpdateSelectAll(
- wxUpdateUIEvent& rEvent
-)
+void wxTextCtrl::OnUpdateSelectAll( wxUpdateUIEvent& rEvent )
{
rEvent.Enable(GetLastPosition() > 0);
} // end of wxTextCtrl::OnUpdateSelectAll
{
rEvent.Enable(GetLastPosition() > 0);
} // end of wxTextCtrl::OnUpdateSelectAll
-bool wxTextCtrl::SetBackgroundColour(
- const wxColour& rColour
-)
+bool wxTextCtrl::SetBackgroundColour( const wxColour& rColour )
{
if (m_bIsMLE)
::WinSendMsg(GetHwnd(), MLM_SETBACKCOLOR, (MPARAM)rColour.GetPixel(), MLE_INDEX);
return true;
} // end of wxTextCtrl::SetBackgroundColour
{
if (m_bIsMLE)
::WinSendMsg(GetHwnd(), MLM_SETBACKCOLOR, (MPARAM)rColour.GetPixel(), MLE_INDEX);
return true;
} // end of wxTextCtrl::SetBackgroundColour
-bool wxTextCtrl::SetForegroundColour(
- const wxColour& rColour
-)
+bool wxTextCtrl::SetForegroundColour( const wxColour& rColour )
{
if (m_bIsMLE)
::WinSendMsg(GetHwnd(), MLM_SETTEXTCOLOR, (MPARAM)rColour.GetPixel(), MLE_INDEX);
return true;
} // end of wxTextCtrl::SetForegroundColour
{
if (m_bIsMLE)
::WinSendMsg(GetHwnd(), MLM_SETTEXTCOLOR, (MPARAM)rColour.GetPixel(), MLE_INDEX);
return true;
} // end of wxTextCtrl::SetForegroundColour
-bool wxTextCtrl::SetStyle(
- long lStart
-, long lEnd
-, const wxTextAttr& rStyle
-)
+bool wxTextCtrl::SetStyle( long lStart,
+ long lEnd,
+ const wxTextAttr& WXUNUSED(rStyle) )
{
{
- HWND
hWnd = GetHwnd();
+ HWND hWnd = GetHwnd();
if (lStart > lEnd)
{
if (lStart > lEnd)
{
- long
lTmp = lStart;
+ long lTmp = lStart;
lStart = lEnd;
lEnd = lTmp;
lStart = lEnd;
lEnd = lTmp;
@@
-1358,18
+1332,15
@@
bool wxTextCtrl::SetStyle(
// We can only change the format of the selection, so select the range we
// want and restore the old selection later
//
// We can only change the format of the selection, so select the range we
// want and restore the old selection later
//
- long lStartOld;
- long lEndOld;
+ long lStartOld, lEndOld;
- GetSelection( &lStartOld
- ,&lEndOld
- );
+ GetSelection( &lStartOld, &lEndOld );
//
// But do we really have to change the selection?
//
//
// But do we really have to change the selection?
//
- bool
bChangeSel = lStart != lStartOld ||
-
lEnd != lEndOld;
+ bool bChangeSel = lStart != lStartOld ||
+ lEnd != lEndOld;
if (bChangeSel)
{
if (bChangeSel)
{
@@
-1384,4
+1355,3
@@
bool wxTextCtrl::SetStyle(
//
return true;
} // end of wxTextCtrl::SetStyle
//
return true;
} // end of wxTextCtrl::SetStyle
-