X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fcb35beb942ced9d2552b5ab5b4fe0df8e6df93a..eb69d46e705906142f5c814f31c892282f4b583c:/src/mac/carbon/checklst.cpp?ds=sidebyside diff --git a/src/mac/carbon/checklst.cpp b/src/mac/carbon/checklst.cpp index 1e88ce34f6..855049cb04 100644 --- a/src/mac/carbon/checklst.cpp +++ b/src/mac/carbon/checklst.cpp @@ -22,9 +22,10 @@ #if wxUSE_CHECKLISTBOX #include "wx/checklst.h" +#include "wx/arrstr.h" #include "wx/mac/uma.h" -#include "Appearance.h" +#include // ============================================================================ // implementation of wxCheckListBox @@ -68,16 +69,19 @@ static pascal void wxMacCheckListDefinition( short message, Boolean isSelected, Cell cell, short dataOffset, short dataLength, ListHandle listHandle ) { + wxCheckListBox* list; + list = (wxCheckListBox*) GetControlReference( (ControlRef) GetListRefCon(listHandle) ); + if ( list == NULL ) + return ; + GrafPtr savePort; GrafPtr grafPtr; RgnHandle savedClipRegion; SInt32 savedPenMode; - wxCheckListBox* list; GetPort(&savePort); SetPort((**listHandle).port); grafPtr = (**listHandle).port ; // typecast our refCon - list = (wxCheckListBox*) GetControlReference( (ControlHandle) GetListRefCon(listHandle) ); // Calculate the cell rect. @@ -105,9 +109,9 @@ static pascal void wxMacCheckListDefinition( short message, Boolean isSelected, const wxFont& font = list->GetFont(); if ( font.Ok() ) { - ::TextFont( font.GetMacFontNum() ) ; - ::TextSize( font.GetMacFontSize()) ; - ::TextFace( font.GetMacFontStyle() ) ; + ::TextFont( font.MacGetFontNum() ) ; + ::TextSize( font.MacGetFontSize()) ; + ::TextFace( font.MacGetFontStyle() ) ; } ThemeButtonDrawInfo info ; @@ -172,6 +176,21 @@ void wxCheckListBox::Init() { } +bool wxCheckListBox::Create(wxWindow *parent, + wxWindowID id, + const wxPoint &pos, + const wxSize &size, + const wxArrayString& choices, + long style, + const wxValidator& validator, + const wxString &name) +{ + wxCArrayString chs(choices); + + return Create(parent, id, pos, size, chs.GetCount(), chs.GetStrings(), + style, validator, name); +} + bool wxCheckListBox::Create(wxWindow *parent, wxWindowID id, const wxPoint &pos, @@ -182,6 +201,8 @@ bool wxCheckListBox::Create(wxWindow *parent, const wxValidator& validator, const wxString &name) { + m_macIsUserPane = FALSE ; + if ( !wxCheckListBoxBase::Create(parent, id, pos, size, n, choices, style, validator, name) ) return false; @@ -201,7 +222,7 @@ bool wxCheckListBox::Create(wxWindow *parent, const wxFont& font = GetFont(); FontInfo finfo; - FetchFontInfo(font.GetMacFontNum(),font.GetMacFontSize(),font.GetMacFontStyle(),&finfo); + FetchFontInfo(font.MacGetFontNum(),font.MacGetFontSize(),font.MacGetFontStyle(),&finfo); m_TextBaseLineOffset= finfo.leading+finfo.ascent; m_checkBoxHeight= finfo.leading+finfo.ascent+finfo.descent; @@ -212,10 +233,8 @@ bool wxCheckListBox::Create(wxWindow *parent, m_checkBoxHeight= h; } - Rect bounds ; - Str255 title ; - - MacPreControlCreate( parent , id , wxEmptyString , pos , size ,style, validator , name , &bounds , title ) ; + + Rect bounds = wxMacGetBoundsForControl( this , pos , size ) ; ListDefSpec listDef; listDef.defType = kListDefUserProcType; @@ -229,24 +248,24 @@ bool wxCheckListBox::Create(wxWindow *parent, Size asize; - CreateListBoxControl( MAC_WXHWND(parent->MacGetRootWindow()), &bounds, false, 0, 1, false, true, + CreateListBoxControl( MAC_WXHWND(parent->MacGetTopLevelWindowRef()), &bounds, false, 0, 1, false, true, m_checkBoxHeight+2, 14, false, &listDef, (ControlRef *)&m_macControl ); - GetControlData( (ControlHandle) m_macControl, kControlNoPart, kControlListBoxListHandleTag, + GetControlData( (ControlRef) m_macControl, kControlNoPart, kControlListBoxListHandleTag, sizeof(ListHandle), (Ptr) &m_macList, &asize); - SetControlReference( (ControlHandle) m_macControl, (long) this); - SetControlVisibility( (ControlHandle) m_macControl, false, false); + SetControlReference( (ControlRef) m_macControl, (long) this); + SetControlVisibility( (ControlRef) m_macControl, false, false); #else long result ; wxStAppResource resload ; - m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , + m_macControl = (WXWidget) ::NewControl( MAC_WXHWND(parent->MacGetTopLevelWindowRef()) , &bounds , "\p" , true , kwxMacListWithVerticalScrollbar , 0 , 0, kControlListBoxProc , (long) this ) ; - ::GetControlData( (ControlHandle) m_macControl , kControlNoPart , kControlListBoxListHandleTag , + ::GetControlData( (ControlRef) m_macControl , kControlNoPart , kControlListBoxListHandleTag , sizeof( ListHandle ) , (char*) &m_macList , &result ) ; HLock( (Handle) m_macList ) ; @@ -279,7 +298,7 @@ bool wxCheckListBox::Create(wxWindow *parent, } SetListSelectionFlags((ListHandle)m_macList, options); - MacPostControlCreate() ; + MacPostControlCreate(pos,size) ; for ( int i = 0 ; i < n ; i++ ) {