wxMac completed so far, generic listctrl extension

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
1999-11-11 16:11:14 +00:00
parent 8c651ab787
commit 7c74e7fe1d
51 changed files with 1069 additions and 144 deletions

View File

@@ -58,6 +58,7 @@ BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler)
EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged)
EVT_INIT_DIALOG(wxWindow::OnInitDialog)
EVT_IDLE(wxWindow::OnIdle)
// EVT_SCROLL(wxWindow::OnScroll)
END_EVENT_TABLE()
#endif
@@ -651,17 +652,14 @@ void wxWindow::GetTextExtent(const wxString& string, int *x, int *y,
const wxFont *fontToUse = theFont;
if ( !fontToUse )
fontToUse = &m_font;
/*
if ( x )
*x = sizeRect.cx;
if ( y )
*y = sizeRect.cy;
if ( descent )
*descent = tm.tmDescent;
if ( externalLeading )
*externalLeading = tm.tmExternalLeading;
*/
wxClientDC dc( this ) ;
long lx,ly,ld,le ;
dc.GetTextExtent( string , &lx , &ly , &ld, &le, fontToUse ) ;
*externalLeading = le ;
*descent = ld ;
*x = lx ;
*y = ly ;
}
void wxWindow::MacEraseBackground( Rect *rect )
@@ -968,6 +966,51 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
}
}
void wxWindow::MacOnScroll(wxScrollEvent &event )
{
if ( event.m_eventObject == m_vScrollBar || event.m_eventObject == m_hScrollBar )
{
wxScrollWinEvent wevent;
wevent.SetPosition(event.GetPosition());
wevent.SetOrientation(event.GetOrientation());
wevent.m_eventObject = this;
switch ( event.m_eventType )
{
case wxEVT_SCROLL_TOP:
wevent.m_eventType = wxEVT_SCROLLWIN_TOP;
break;
case wxEVT_SCROLL_BOTTOM:
wevent.m_eventType = wxEVT_SCROLLWIN_BOTTOM;
break;
case wxEVT_SCROLL_LINEUP:
wevent.m_eventType = wxEVT_SCROLLWIN_LINEUP;
break;
case wxEVT_SCROLL_LINEDOWN:
wevent.m_eventType = wxEVT_SCROLLWIN_LINEDOWN;
break;
case wxEVT_SCROLL_PAGEUP:
wevent.m_eventType = wxEVT_SCROLLWIN_PAGEUP;
break;
case wxEVT_SCROLL_PAGEDOWN:
wevent.m_eventType = wxEVT_SCROLLWIN_PAGEDOWN;
break;
case wxEVT_SCROLL_THUMBTRACK:
wevent.m_eventType = wxEVT_SCROLLWIN_THUMBTRACK;
break;
}
GetEventHandler()->ProcessEvent(wevent);
}
}
bool wxWindow::SetFont(const wxFont& font)
{
if ( !wxWindowBase::SetFont(font) )
@@ -1478,12 +1521,15 @@ void wxWindow::MacCreateScrollBars( long style )
{
m_vScrollBar = new wxScrollBar(this, wxWINDOW_VSCROLL, wxPoint(m_width-MAC_SCROLLBAR_SIZE, 0),
wxSize(MAC_SCROLLBAR_SIZE, m_height - adjust), wxVERTICAL);
// m_vScrollBar->PushEventHandler( this ) ;
}
if ( style & wxHSCROLL )
{
m_hScrollBar = new wxScrollBar(this, wxWINDOW_HSCROLL, wxPoint(0 , m_height-MAC_SCROLLBAR_SIZE ),
wxSize( m_width - adjust, MAC_SCROLLBAR_SIZE), wxHORIZONTAL);
// m_hScrollBar->PushEventHandler( this ) ;
}
// because the create does not take into account the client area origin
MacRepositionScrollBars() ; // we might have a real position shift
}