no message

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Webster 2003-01-06 17:42:48 +00:00
parent 798a4529fe
commit 57ff8a875b
11 changed files with 451 additions and 258 deletions

View File

@ -15,72 +15,85 @@
#include "wx/scrolbar.h"
// Scrollbar item
class WXDLLEXPORT wxScrollBar: public wxScrollBarBase
class WXDLLEXPORT wxScrollBar : public wxScrollBarBase
{
DECLARE_DYNAMIC_CLASS(wxScrollBar)
public:
inline wxScrollBar() { m_pageSize = 0; m_viewSize = 0; m_objectSize = 0; }
~wxScrollBar();
inline wxScrollBar(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxSB_HORIZONTAL,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxScrollBarNameStr)
{
Create(parent, id, pos, size, style, validator, name);
}
bool Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxSB_HORIZONTAL,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxScrollBarNameStr);
int GetThumbPosition() const ;
inline int GetThumbSize() const { return m_pageSize; }
inline int GetPageSize() const { return m_viewSize; }
inline int GetRange() const { return m_objectSize; }
virtual void SetThumbPosition(int viewStart);
virtual void SetScrollbar(int position, int thumbSize, int range, int pageSize,
bool refresh = TRUE);
#if WXWIN_COMPATIBILITY
// Backward compatibility
int GetValue() const { return GetThumbPosition(); }
void SetValue(int viewStart) { SetThumbPosition(viewStart); }
void GetValues(int *viewStart, int *viewLength, int *objectLength,
int *pageLength) const ;
int GetViewLength() const { return m_viewSize; }
int GetObjectLength() const { return m_objectSize; }
void SetPageSize(int pageLength);
void SetObjectLength(int objectLength);
void SetViewLength(int viewLength);
inline wxScrollBar()
{
m_nPageSize = 0;
m_nViewSize = 0;
m_nObjectSize = 0;
}
inline wxScrollBar( wxWindow* pParent
,wxWindowID vId
,const wxPoint& rPos = wxDefaultPosition
,const wxSize& rSize = wxDefaultSize
,long lStyle = wxSB_HORIZONTAL
#if wxUSE_VALIDATORS
,const wxValidator& rValidator = wxDefaultValidator
#endif
,const wxString& rsName = wxScrollBarNameStr
)
{
Create( pParent
,vId
,rPos
,rSize
,lStyle
#if wxUSE_VALIDATORS
,rValidator
#endif
,rsName
);
}
~wxScrollBar();
void Command(wxCommandEvent& event);
bool Create( wxWindow* pParent
,wxWindowID vId
,const wxPoint& rPos = wxDefaultPosition
,const wxSize& rSize = wxDefaultSize
,long lStyle = wxSB_HORIZONTAL
#if wxUSE_VALIDATORS
,const wxValidator& rValidator = wxDefaultValidator
#endif
,const wxString& rsName = wxScrollBarNameStr
);
virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
virtual bool OS2OnScroll(int orientation, WXWORD wParam,
WXWORD pos, WXHWND control);
int GetThumbPosition(void) const ;
inline int GetThumbSize(void) const { return m_nPageSize; }
inline int GetPageSize(void) const { return m_nViewSize; }
inline int GetRange(void) const { return m_nObjectSize; }
#if WXWIN_COMPATIBILITY
// Backward compatibility: generate an old-style scroll command
void OnScroll(wxScrollEvent& event);
#endif // WXWIN_COMPATIBILITY
virtual void SetThumbPosition(int nViewStart);
virtual void SetScrollbar( int nPosition
,int nThumbSize
,int nRange
,int nPageSize
,bool bRefresh = TRUE
);
void Command(wxCommandEvent& rEvent);
virtual WXHBRUSH OnCtlColor( WXHDC hDC
,WXHWND hWnd
,WXUINT uCtlColor
,WXUINT uMessage
,WXWPARAM wParam
,WXLPARAM lParam
);
virtual bool OS2OnScroll( int nOrientation
,WXWORD wParam
,WXWORD wPos
,WXHWND hControl
);
protected:
int m_pageSize;
int m_viewSize;
int m_objectSize;
int m_nPageSize;
int m_nViewSize;
int m_nObjectSize;
DECLARE_EVENT_TABLE()
};
private:
DECLARE_DYNAMIC_CLASS(wxScrollBar)
}; // end of CLASS wxScrollBar
#endif
// _WX_SCROLBAR_H_

View File

@ -185,6 +185,16 @@ void wxChoice::SetString(
)
{
SHORT nIndexType = 0;
void* pData;
if ( m_clientDataItemsType != wxClientData_None )
{
pData = DoGetItemClientData(n);
}
else // no client data
{
pData = NULL;
}
::WinSendMsg(GetHwnd(), LM_DELETEITEM, (MPARAM)n, 0);
@ -197,6 +207,13 @@ void wxChoice::SetString(
,(MPARAM)nIndexType
,(MPARAM)rsStr.c_str()
);
if (pData)
{
DoSetItemClientData( n
,pData
);
}
} // end of wxChoice::SetString
wxString wxChoice::GetString(

View File

@ -1113,15 +1113,15 @@ $(WXDIR)\lib\wx.lib: \
!else
# Update the dynamic link library
$(WXDIR)\lib\wx23.dll: $(OBJECTS)
$(WXDIR)\lib\wx25.dll: $(OBJECTS)
icc @<<
/B" $(LINKFLAGS)" /Fe$@
$(LIBS)
$(DUMMYOBJ)
$(OBJECTS)
$(WXDIR)\src\os2\wx23.def
$(WXDIR)\src\os2\wx25.def
<<
implib $(WXDIR)\lib\wx23.lib $(WXDIR)\src\os2\wx23.def
implib $(WXDIR)\lib\wx25.lib $(WXDIR)\src\os2\wx25.def
!endif
@ -1200,7 +1200,7 @@ clean: $(PERIPH_CLEAN_TARGET) clean_png clean_zlib clean_jpeg clean_tiff
rd ..\os2\$D
del $(LIBTARGET)
!if "$(WXMAKINGDLL)" == "1"
erase /N ..\..\lib\wx23.lib
erase /N ..\..\lib\wx25.lib
!endif
erase /N $(COMMDIR)\y_tab.c
erase /N $(COMMDIR)\lex_yy.c

View File

@ -750,6 +750,15 @@ wxMenuBar::wxMenuBar(
wxMenuBar::~wxMenuBar()
{
//
// We should free PM's resources only if PM doesn't do it for us
// which happens if we're attached to a frame
//
if (m_hMenu && !IsAttached())
{
::WinDestroyWindow((HMENU)m_hMenu);
m_hMenu = (WXHMENU)NULL;
}
} // end of wxMenuBar::~wxMenuBar
// ---------------------------------------------------------------------------

View File

@ -423,6 +423,9 @@ void wxMenuItem::SetText(
wxMenuItemBase::SetText(sText);
OWNER_DRAWN_ONLY(wxOwnerDrawn::SetName(sText));
#if wxUSE_OWNER_DRAWN
SetAccelString(rText.AfterFirst(_T('\t')));
#endif // wxUSE_OWNER_DRAWN
HWND hMenu = GetHmenuOf(m_parentMenu);

View File

@ -219,7 +219,7 @@ EXPORTS
;From object file: ..\jpeg\jdinput.c
;PUBDEFs (Symbols available from object file):
reset_input_controller
start_input_pass2
start_input_pass
jinit_input_controller
finish_input_pass
consume_markers
@ -261,8 +261,8 @@ EXPORTS
;From object file: ..\jpeg\jdcoefct.c
;PUBDEFs (Symbols available from object file):
decompress_data
start_input_pass
decompress_smooth_data
start_input_pass2
decompress_onepass
dummy_consume_data
consume_data

View File

@ -71,17 +71,100 @@ bool wxOwnerDrawn::OnMeasureItem(
{
wxMemoryDC vDC;
vDC.SetFont(GetFont());
wxString sStr = wxStripMenuCodes(m_strName);
//
// If we have a valid accel string, then pad out
// the menu string so the menu and accel string are not
// placed ontop of eachother.
if (!m_strAccel.empty() )
{
sStr.Pad(sStr.Length()%8);
sStr += m_strAccel;
}
vDC.SetFont(GetFont());
vDC.GetTextExtent( sStr
,(long *)pWidth
,(long *)pHeight
);
if (!m_strAccel.IsEmpty())
{
//
// Measure the accelerator string, and add it's width to
// the total item width, plus 16 (Accelerators are right justified,
// with the right edge of the text rectangle 16 pixels left of
// the right edge of the menu)
//
int nAccelWidth;
int nAccelHeight;
(*pHeight) = (*pHeight) + 2;
m_nHeight = *pHeight; // remember height for use in OnDrawItem
vDC.GetTextExtent( m_strAccel
,&nAccelWidth
,&nAccelHeight
);
*pWidth += nAccelWidth;
}
//
// Add space at the end of the menu for the submenu expansion arrow
// this will also allow offsetting the accel string from the right edge
//
*pWidth += GetDefaultMarginWidth() * 1.5;
//
// JACS: items still look too tightly packed, so adding 5 pixels.
//
(*pHeight) += 5;
//
// Ray Gilbert's changes - Corrects the problem of a BMP
// being placed next to text in a menu item, and the BMP does
// not match the size expected by the system. This will
// resize the space so the BMP will fit. Without this, BMPs
// must be no larger or smaller than 16x16.
//
if (m_bmpChecked.Ok())
{
//
// Is BMP height larger then text height?
//
size_t nAdjustedHeight = m_bmpChecked.GetHeight() +
wxSystemSettings::GetMetric(wxSYS_EDGE_Y);
if (*pHeight < nAdjustedHeight)
*pHeight = nAdjustedHeight;
//
// Does BMP encroach on default check menu position?
//
size_t nAdjustedWidth = m_bmpChecked.GetWidth() +
(wxSystemSettings::GetMetric(wxSYS_EDGE_X) * 2);
//
// Do we need to widen margin to fit BMP?
//
if ((size_t)GetMarginWidth() < nAdjustedWidth)
SetMarginWidth(nAdjustedWidth);
//
// Add the size of the bitmap to our total size...
//
*pWidth += GetMarginWidth();
}
//
// Add the size of the bitmap to our total size - even if we don't have
// a bitmap we leave room for one...
//
*pWidth += GetMarginWidth();
//
// Make sure that this item is at least as
// tall as the user's system settings specify
//
if (*pHeight < m_nMinHeight)
*pHeight = m_nMinHeight;
m_nHeight = *pHeight; // remember height for use in OnDrawItem
return TRUE;
} // end of wxOwnerDrawn::OnMeasureItem

View File

@ -22,250 +22,291 @@
IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl)
BEGIN_EVENT_TABLE(wxScrollBar, wxControl)
#if WXWIN_COMPATIBILITY
EVT_SCROLL(wxScrollBar::OnScroll)
#endif
END_EVENT_TABLE()
// Scrollbar
bool wxScrollBar::Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos,
const wxSize& size, long style,
const wxValidator& validator,
const wxString& name)
bool wxScrollBar::Create (
wxWindow* pParent
, wxWindowID vId
, const wxPoint& rPos
, const wxSize& rSize
, long lStyle
#if wxUSE_VALIDATORS
, const wxValidator& rValidator
#endif
, const wxString& rsName
)
{
int nX = rPos.x;
int nY = rPos.y;
int nWidth = rSize.x;
int nHeight = rSize.y;
if (!parent)
return FALSE;
parent->AddChild(this);
SetName(name);
pParent->AddChild(this);
SetName(rsName);
#if wxUSE_VALIDATORS
SetValidator(validator);
SetValidator(rValidator);
#endif
SetBackgroundColour(pParent->GetBackgroundColour()) ;
SetForegroundColour(pParent->GetForegroundColour()) ;
SetBackgroundColour(parent->GetBackgroundColour()) ;
SetForegroundColour(parent->GetForegroundColour()) ;
m_windowStyle = style;
if ( id == -1 )
if (vId == -1L)
m_windowId = (int)NewControlId();
else
m_windowId = id;
m_windowId = vId;
int x = pos.x;
int y = pos.y;
int width = size.x;
int height = size.y;
if (width == -1)
if (nWidth == -1)
{
if (style & wxHORIZONTAL)
width = 140;
if (lStyle & wxHORIZONTAL)
nWidth = 140;
else
width = 14;
nWidth = 14;
}
if (height == -1)
if (nHeight == -1)
{
if (style & wxVERTICAL)
height = 140;
if (lStyle & wxVERTICAL)
nHeight = 140;
else
height = 14;
nHeight = 14;
}
// TODO create scrollbar
DWORD dwStyle = WS_VISIBLE;
m_pageSize = 1;
m_viewSize = 1;
m_objectSize = 1;
if (GetWindowStyleFlag() & wxCLIP_SIBLINGS)
dwStyle |= WS_CLIPSIBLINGS;
SetFont(parent->GetFont());
DWORD dwDirection = (lStyle & wxHORIZONTAL) ? SBS_HORZ: SBS_VERT;
m_hWnd = 0; // TODO: (WXHWND)scroll_bar;
HWND hScrollBar = ::WinCreateWindow( (HWND)GetHwndOf(pParent)
,WC_SCROLLBAR
,(PSZ)NULL
,dwDirection | dwStyle
,0, 0, 0, 0
,(HWND)GetHwndOf(pParent)
,HWND_TOP
,(HMENU)m_windowId
,NULL
,NULL
);
HWND scroll_bar = 0; // temporary
m_nPageSize = 1;
m_nViewSize = 1;
m_nObjectSize = 1;
::WinSendMsg( hScrollBar
,SBM_SETSCROLLBAR
,(MPARAM)0
,MPFROM2SHORT(0,1)
);
::WinShowWindow( hScrollBar
,TRUE
);
SetFont(*wxSMALL_FONT);
m_hWnd = hScrollBar;
//
// Subclass again for purposes of dialog editing mode
SubclassWin((WXHWND) scroll_bar);
SetSize(x, y, width, height);
//
SubclassWin((WXHWND)hScrollBar);
SetSize( nX
,nY
,nWidth
,nHeight
);
return TRUE;
}
} // end of wxScrollBar::Create
wxScrollBar::~wxScrollBar()
{
}
bool wxScrollBar::OS2OnScroll(int WXUNUSED(orientation), WXWORD wParam,
WXWORD pos, WXHWND control)
bool wxScrollBar::OS2OnScroll (
int nOrientation
, WXWORD wParam
, WXWORD wPos
, WXHWND hControl
)
{
// TODO:
/*
int position = ::GetScrollPos((HWND) control, SB_CTL);
int minPos, maxPos;
::GetScrollRange((HWND) control, SB_CTL, &minPos, &maxPos);
int nPosition;
int nMaxPos;
int nTrackPos = wPos;
int nMinPos;
int nScrollInc;
wxEventType vScrollEvent = wxEVT_NULL;
#if defined(__WIN95__)
MRESULT vRange;
//
// When we're dragging the scrollbar we can't use pos parameter because it
// is limited to 16 bits
//
if (wParam == SB_SLIDERPOSITION || wParam == SB_SLIDERTRACK)
{
SBCDATA vScrollInfo;
vScrollInfo.sHilite = SB_SLIDERTRACK;
::WinSendMsg((HWND)GetHwnd(), WM_QUERYWINDOWPARAMS, (PVOID)&vScrollInfo, NULL);
nTrackPos = vScrollInfo.posThumb;
nPosition = vScrollInfo.posFirst;
nMaxPos = vScrollInfo.posLast;
}
else
{
nPosition = (int)(MRESULT)::WinSendMsg((HWND)GetHwnd(), SBM_QUERYPOS, (MPARAM)NULL, (MPARAM)NULL);
vRange = ::WinSendMsg((HWND)GetHwnd(), SBM_QUERYRANGE, (MPARAM)NULL, (MPARAM)NULL);
nMinPos = SHORT1FROMMR(vRange);
nMaxPos = SHORT2FROMMR(vRange);
}
//
// A page size greater than one has the effect of reducing the effective
// range, therefore the range has already been boosted artificially - so
// reduce it again.
if ( m_pageSize > 1 )
maxPos -= (m_pageSize - 1);
#endif // __WIN95__
wxEventType scrollEvent = wxEVT_NULL;
int nScrollInc;
switch ( wParam )
//
if (m_nPageSize > 1)
nMaxPos -= (m_nPageSize - 1);
switch (wParam)
{
case SB_TOP:
nScrollInc = maxPos - position;
scrollEvent = wxEVT_SCROLL_TOP;
break;
case SB_BOTTOM:
nScrollInc = - position;
scrollEvent = wxEVT_SCROLL_BOTTOM;
break;
case SB_LINEUP:
nScrollInc = -1;
scrollEvent = wxEVT_SCROLL_LINEUP;
nScrollInc = -1;
vScrollEvent = wxEVT_SCROLL_LINEUP;
break;
case SB_LINEDOWN:
nScrollInc = 1;
scrollEvent = wxEVT_SCROLL_LINEDOWN;
nScrollInc = 1;
vScrollEvent = wxEVT_SCROLL_LINEDOWN;
break;
case SB_PAGEUP:
nScrollInc = -GetPageSize();
scrollEvent = wxEVT_SCROLL_PAGEUP;
nScrollInc = -GetPageSize();
vScrollEvent = wxEVT_SCROLL_PAGEUP;
break;
case SB_PAGEDOWN:
nScrollInc = GetPageSize();
scrollEvent = wxEVT_SCROLL_PAGEDOWN;
nScrollInc = GetPageSize();
vScrollEvent = wxEVT_SCROLL_PAGEDOWN;
break;
case SB_THUMBTRACK:
case SB_THUMBPOSITION:
nScrollInc = pos - position;
scrollEvent = wxEVT_SCROLL_THUMBTRACK;
case SB_SLIDERTRACK:
nScrollInc = nTrackPos - nPosition;
vScrollEvent = wxEVT_SCROLL_THUMBTRACK;
break;
case SB_ENDSCROLL:
nScrollInc = 0;
vScrollEvent = wxEVT_SCROLL_ENDSCROLL;
break;
default:
nScrollInc = 0;
}
if ( nScrollInc == 0 )
if (nScrollInc)
{
// no event to process, so don't process it
nPosition += nScrollInc;
if (nPosition < 0)
nPosition = 0;
if (nPosition > nMaxPos)
nPosition = nMaxPos;
SetThumbPosition(nPosition);
}
else if ( vScrollEvent != wxEVT_SCROLL_THUMBRELEASE &&
vScrollEvent != wxEVT_SCROLL_ENDSCROLL
)
{
//
// Don't process the event if there is no displacement,
// unless this is a thumb release or end scroll event.
//
return FALSE;
}
int new_pos = position + nScrollInc;
wxScrollEvent vEvent( vScrollEvent
,m_windowId
);
if (new_pos < 0)
new_pos = 0;
if (new_pos > maxPos)
new_pos = maxPos;
vEvent.SetPosition(nPosition);
vEvent.SetEventObject(this);
return GetEventHandler()->ProcessEvent(vEvent);
} // end of wxScrollBar::OS2OnScroll
SetThumbPosition(new_pos);
wxScrollEvent event(scrollEvent, m_windowId);
event.SetPosition(new_pos);
event.SetEventObject( this );
return GetEventHandler()->ProcessEvent(event);
*/
return FALSE;
}
void wxScrollBar::SetThumbPosition(int viewStart)
void wxScrollBar::SetThumbPosition (
int nViewStart
)
{
// TODO
}
SBCDATA vInfo;
memset(&vInfo, '\0', sizeof(SBCDATA));
vInfo.cb = sizeof(SBCDATA);
vInfo.posThumb = nViewStart;
::WinSendMsg((HWND)GetHwnd(), WM_SETWINDOWPARAMS, (MPARAM)&vInfo, (MPARAM)NULL);
::WinSendMsg((HWND)GetHwnd(), SBM_SETPOS, (MPARAM)nViewStart, (MPARAM)NULL);
} // end of wxScrollBar::SetThumbPosition
int wxScrollBar::GetThumbPosition() const
{
// TODO
return 0;
}
return((int)(MRESULT)::WinSendMsg((HWND)GetHwnd(), SBM_QUERYPOS, (MPARAM)NULL, (MPARAM)NULL));
} // end of wxScrollBar::GetThumbPosition
void wxScrollBar::SetScrollbar(int position, int thumbSize, int range, int pageSize,
bool refresh)
void wxScrollBar::SetScrollbar (
int nPosition
, int nThumbSize
, int nRange
, int nPageSize
, bool bRefresh
)
{
m_viewSize = pageSize;
m_pageSize = thumbSize;
m_objectSize = range;
SBCDATA vInfo;
//
// The lRange (number of scroll steps) is the
// object length minus the page size.
//
int nRange1 = wxMax((m_nObjectSize - m_nPageSize), 0);
// TODO
}
m_nViewSize = nPageSize;
m_nPageSize = nThumbSize;
m_nObjectSize = nRange;
#if WXWIN_COMPATIBILITY
void wxScrollBar::SetPageSize(int pageLength)
{
m_pageSize = pageLength;
// TODO:
}
void wxScrollBar::SetObjectLength(int objectLength)
{
m_objectSize = objectLength;
// The range (number of scroll steps) is the
// object length minus the view size.
int range = wxMax((objectLength - m_viewSize), 0) ;
// TODO:
}
void wxScrollBar::SetViewLength(int viewLength)
{
m_viewSize = viewLength;
}
void wxScrollBar::GetValues(int *viewStart, int *viewLength, int *objectLength,
int *pageLength) const
{
// TODO:
/*
*viewStart = ::GetScrollPos((HWND)m_hWnd, SB_CTL);
*viewLength = m_viewSize;
*objectLength = m_objectSize;
*pageLength = m_pageSize;
*/
}
#endif
WXHBRUSH wxScrollBar::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
{
return 0;
}
void wxScrollBar::Command(wxCommandEvent& event)
{
SetThumbPosition(event.m_commandInt);
ProcessCommand(event);
}
#if WXWIN_COMPATIBILITY
// Backward compatibility
void wxScrollBar::OnScroll(wxScrollEvent& event)
{
// TODO:
/*
wxEventType oldEvent = event.GetEventType();
event.SetEventType( wxEVT_COMMAND_SCROLLBAR_UPDATED );
if ( !GetEventHandler()->ProcessEvent(event) )
//
// Try to adjust the lRange to cope with page size > 1
// (see comment for SetPageLength)
//
if (m_nPageSize > 1 )
{
event.SetEventType( oldEvent );
if (!GetParent()->GetEventHandler()->ProcessEvent(event))
event.Skip();
nRange1 += (m_nPageSize - 1);
}
*/
}
#endif
vInfo.cb = sizeof(SBCDATA);
vInfo.cVisible = m_nPageSize;
vInfo.posFirst = 0;
vInfo.posLast = nRange1;
vInfo.posThumb = nPosition;
::WinSendMsg((HWND)GetHwnd(), WM_SETWINDOWPARAMS, (MPARAM)&vInfo, (MPARAM)NULL);
} // end of wxScrollBar::SetScrollbar
WXHBRUSH wxScrollBar::OnCtlColor (
WXHDC hDC
, WXHWND hWnd
, WXUINT uCtlColor
, WXUINT uMessage
, WXWPARAM wParam
, WXLPARAM lParam
)
{
//
// Does nothing under OS/2
//
return 0;
} // end of wxScrollBar::OnCtlColor
void wxScrollBar::Command (
wxCommandEvent& rEvent
)
{
SetThumbPosition(rEvent.m_commandInt);
ProcessCommand(rEvent);
} // end of wxScrollBar::Command

View File

@ -1171,9 +1171,11 @@ void wxTextCtrl::AdjustSpaceLimit()
bool wxTextCtrl::AcceptsFocus() const
{
//
// We don't want focus if we can't be edited
// We don't want focus if we can't be edited unless we're a multiline
// control because then it might be still nice to get focus from keyboard
// to be able to scroll it without mouse
//
return IsEditable() && wxControl::AcceptsFocus();
return (IsEditable() || IsMultiLine()) && wxControl::AcceptsFocus();
} // end of wxTextCtrl::Command
wxSize wxTextCtrl::DoGetBestSize() const

View File

@ -2234,6 +2234,8 @@ static void wxYieldForCommandsOnly()
{
wxTheApp->DoMessage((WXMSG*)&vMsg);
}
if (vMsg.msg == WM_QUIT)
::WinPostMsg(NULL, WM_QUIT, 0, 0);
}
#endif // wxUSE_MENUS_NATIVE

View File

@ -1,10 +1,10 @@
LIBRARY WX23 INITINSTANCE TERMINSTANCE
LIBRARY WX25 INITINSTANCE TERMINSTANCE
PROTMODE
DATA MULTIPLE NONSHARED READWRITE LOADONCALL
CODE LOADONCALL
EXPORTS
;From library: H:\Dev\Wx24\WxWindows\lib\wx.lib
;From library: H:\DEV\WX2\WXWINDOWS\LIB\wx.lib
;From object file: dummy.cpp
;PUBDEFs (Symbols available from object file):
wxDummyChar
@ -1969,7 +1969,7 @@ EXPORTS
wxEVT_NC_LEFT_DCLICK
wxEVT_INIT_DIALOG
wxEVT_COMMAND_SET_FOCUS
;From object file: H:\DEV\WX24\WXWINDOWS\src\common\extended.c
;From object file: H:\DEV\WX2\WXWINDOWS\src\common\extended.c
;PUBDEFs (Symbols available from object file):
ConvertToIeeeExtended
ConvertFromIeeeExtended
@ -2364,6 +2364,8 @@ EXPORTS
ms_root__16wxLocalFSHandler
;wxFileSystemHandler::GetMimeTypeFromExt(const wxString&)
GetMimeTypeFromExt__19wxFileSystemHandlerFRC8wxString
;wxFileSystem::URLToFileName(const wxString&)
URLToFileName__12wxFileSystemFRC8wxString
;wxFSFile::sm_classwxFSFile
sm_classwxFSFile__8wxFSFile
;wxFileSystemModule::sm_classwxFileSystemModule
@ -2376,6 +2378,8 @@ EXPORTS
CleanUpHandlers__12wxFileSystemFv
;wxFileSystemHandler::GetLeftLocation(const wxString&) const
GetLeftLocation__19wxFileSystemHandlerCFRC8wxString
;wxFileSystem::FileNameToURL(const wxFileName&)
FileNameToURL__12wxFileSystemFRC10wxFileName
;wxConstructorForwxFileSystem()
wxConstructorForwxFileSystem__Fv
;wxFileSystemHandler::GetProtocol(const wxString&) const
@ -2443,6 +2447,8 @@ EXPORTS
GetFamilyString__10wxFontBaseCFv
;wxFontBase::SetDefaultEncoding(wxFontEncoding)
SetDefaultEncoding__10wxFontBaseF14wxFontEncoding
;wxFontBase::New(int,wxFontFamily,int,const wxString&,wxFontEncoding)
New__10wxFontBaseFi12wxFontFamilyT1RC8wxString14wxFontEncoding
;wxFontBase::IsFixedWidth() const
IsFixedWidth__10wxFontBaseCFv
;wxFontBase::New(int,int,int,int,unsigned long,const wxString&,wxFontEncoding)
@ -6278,7 +6284,7 @@ EXPORTS
Read32__17wxTextInputStreamFv
;wxTextInputStream::SkipIfEndOfLine(char)
SkipIfEndOfLine__17wxTextInputStreamFc
;From object file: H:\DEV\WX24\WXWINDOWS\src\common\unzip.c
;From object file: H:\DEV\WX2\WXWINDOWS\src\common\unzip.c
;PUBDEFs (Symbols available from object file):
unzReadCurrentFile
unzGetCurrentFileInfo
@ -7246,6 +7252,8 @@ EXPORTS
wxMB2WC__FPwPCcUi
;wxSnprintf_(char*,unsigned int,const char*,...)
wxSnprintf___FPcUiPCce
;wxStrdupW(const wchar_t*)
wxStrdupW__FPCw
;wxWC2MB(char*,const wchar_t*,unsigned int)
wxWC2MB__FPcPCwUi
;wxOKlibc()
@ -8128,6 +8136,12 @@ EXPORTS
LookupAttr__6wxGridCFiT1PP14wxGridCellAttr
;wxGridCellAttrProvider::InitData()
InitData__22wxGridCellAttrProviderFv
;wxGridCellNumberEditor::GetValue() const
GetValue__22wxGridCellNumberEditorCFv
;wxGridCellChoiceEditor::GetValue() const
GetValue__22wxGridCellChoiceEditorCFv
;wxGridCellBoolEditor::GetValue() const
GetValue__20wxGridCellBoolEditorCFv
;wxGrid::GetSelectionMode() const
GetSelectionMode__6wxGridCFv
;wxGridCellAttr::GetRenderer(wxGrid*,int,int) const
@ -8544,6 +8558,8 @@ EXPORTS
IsSelection__6wxGridFv
;wxGrid::IsCellEditControlEnabled() const
IsCellEditControlEnabled__6wxGridCFv
;wxGridCellTextEditor::GetValue() const
GetValue__20wxGridCellTextEditorCFv
;wxGrid::GetSelectionBlockBottomRight() const
GetSelectionBlockBottomRight__6wxGridCFv
;wxGridCornerLabelWindow::GetEventTable() const
@ -9917,6 +9933,8 @@ EXPORTS
GetEventTable__23wxGenericMDIParentFrameCFv
;wxGenericMDIParentFrame::GetClientWindow() const
GetClientWindow__23wxGenericMDIParentFrameCFv
;wxMDIParentFrame::GetActiveChild() const
GetActiveChild__16wxMDIParentFrameCFv
;wxGenericMDIChildFrame::Create(wxGenericMDIParentFrame*,int,const wxString&,const wxPoint&,const wxSize&,long,const wxString&)
Create__22wxGenericMDIChildFrameFP23wxGenericMDIParentFrameiRC8wxStringRC7wxPointRC6wxSizelT3
;wxGenericMDIChildFrame::OnMenuHighlight(wxMenuEvent&)
@ -10131,6 +10149,8 @@ EXPORTS
sm_eventTable__16wxProgressDialog
;wxProgressDialog::sm_eventTableEntries
sm_eventTableEntries__16wxProgressDialog
;wxProgressDialog::Show(unsigned long)
Show__16wxProgressDialogFUl
;wxProgressDialog::OnCancel(wxCommandEvent&)
OnCancel__16wxProgressDialogFR14wxCommandEvent
;wxProgressDialog::ReenableOtherWindows()
@ -10831,6 +10851,8 @@ EXPORTS
SetItemImage__17wxGenericTreeCtrlFRC12wxTreeItemIdi14wxTreeItemIcon
;wxGenericTreeCtrl::SelectItem(const wxTreeItemId&,unsigned long,unsigned long)
SelectItem__17wxGenericTreeCtrlFRC12wxTreeItemIdUlT2
;wxGenericTreeCtrl::ResetTextControl()
ResetTextControl__17wxGenericTreeCtrlFv
;wxGenericTreeCtrl::GetButtonsImageList() const
GetButtonsImageList__17wxGenericTreeCtrlCFv
;wxTreeTextCtrl::AcceptChanges()
@ -10879,6 +10901,8 @@ EXPORTS
SetItemBackgroundColour__17wxGenericTreeCtrlFRC12wxTreeItemIdRC8wxColour
;wxTreeTextCtrl::GetEventTable() const
GetEventTable__14wxTreeTextCtrlCFv
;wxGenericTreeCtrl::GetEditControl() const
GetEditControl__17wxGenericTreeCtrlCFv
;wxTreeTextCtrl::Finish()
Finish__14wxTreeTextCtrlFv
;wxGenericTreeCtrl::FillArray(wxGenericTreeItem*,wxArrayTreeItemIds&) const
@ -10930,6 +10954,8 @@ EXPORTS
__dt__20wxHtmlHelpControllerFv
;wxHtmlHelpController::OnCloseFrame(wxCloseEvent&)
OnCloseFrame__20wxHtmlHelpControllerFR12wxCloseEvent
;wxHtmlHelpController::AddBook(const wxFileName&,unsigned long)
AddBook__20wxHtmlHelpControllerFRC10wxFileNameUl
;wxHtmlHelpController::wxHtmlHelpController(int)
__ct__20wxHtmlHelpControllerFi
;wxHtmlHelpController::DisplayContents()
@ -14155,8 +14181,6 @@ EXPORTS
wxConstructorForwxScrollBar__Fv
;wxScrollBar::~wxScrollBar()
__dt__11wxScrollBarFv
;wxScrollBar::GetEventTable() const
GetEventTable__11wxScrollBarCFv
;wxScrollBar::Create(wxWindow*,int,const wxPoint&,const wxSize&,long,const wxValidator&,const wxString&)
Create__11wxScrollBarFP8wxWindowiRC7wxPointRC6wxSizelRC11wxValidatorRC8wxString
;wxScrollBar::SetScrollbar(int,int,int,int,unsigned long)
@ -14164,14 +14188,10 @@ EXPORTS
;wxScrollBar::GetThumbPosition() const
GetThumbPosition__11wxScrollBarCFv
__vft11wxScrollBar8wxObject
;wxScrollBar::sm_eventTableEntries
sm_eventTableEntries__11wxScrollBar
;wxScrollBar::sm_classwxScrollBar
sm_classwxScrollBar__11wxScrollBar
;wxScrollBar::Command(wxCommandEvent&)
Command__11wxScrollBarFR14wxCommandEvent
;wxScrollBar::sm_eventTable
sm_eventTable__11wxScrollBar
;From object file: ..\os2\settings.cpp
;PUBDEFs (Symbols available from object file):
;wxSystemSettingsModule::sm_classwxSystemSettingsModule
@ -14572,16 +14592,19 @@ EXPORTS
Remove__10wxTextCtrlFlT1
;wxTextCtrl::SetSelection(long,long)
SetSelection__10wxTextCtrlFlT1
;wxTextCtrl::Copy()
Copy__10wxTextCtrlFv
;wxTextCtrl::~wxTextCtrl()
__dt__10wxTextCtrlFv
;wxTextCtrl::SetStyle(long,long,const wxTextAttr&)
SetStyle__10wxTextCtrlFlT1RC10wxTextAttr
;wxTextCtrl::Copy()
Copy__10wxTextCtrlFv
;wxTextCtrl::CanRedo() const
CanRedo__10wxTextCtrlCFv
;wxTextCtrl::OS2GetStyle(long,unsigned long*) const
OS2GetStyle__10wxTextCtrlCFlPUl
;wxTextCtrl::sm_classwxTextCtrl
sm_classwxTextCtrl__10wxTextCtrl
__vft10wxTextCtrl8wxObject
;wxTextCtrl::ShowPosition(long)
ShowPosition__10wxTextCtrlFl
;wxTextCtrl::SetWindowStyleFlag(long)