X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e1673e527f08395de6864b09540162ca409a3c28..5ec69e9666e300c9ba210812a11ca5dc9111b5f9:/src/mac/carbon/listctrl_mac.cpp diff --git a/src/mac/carbon/listctrl_mac.cpp b/src/mac/carbon/listctrl_mac.cpp index 1a3e2d8bc4..db5e90e89a 100644 --- a/src/mac/carbon/listctrl_mac.cpp +++ b/src/mac/carbon/listctrl_mac.cpp @@ -152,7 +152,7 @@ static pascal OSStatus wxMacListCtrlEventHandler( EventHandlerCallRef handler , // FIXME: we can't use the sort property for virtual listctrls // so we need to find a better way to determine which column was clicked... if (!window->IsVirtual()) - window->GetEventHandler()->ProcessEvent( le ); + window->HandleWindowEvent( le ); } result = CallNextEventHandler(handler, event); break; @@ -305,7 +305,7 @@ bool wxMacListCtrlEventDelegate::ProcessEvent( wxEvent& event ) if ( !event.IsKindOf( CLASSINFO( wxCommandEvent ) ) ) { - if (m_list->GetEventHandler()->ProcessEvent( event )) + if (m_list->HandleWindowEvent( event )) return true; } return wxEvtHandler::ProcessEvent(event); @@ -648,7 +648,7 @@ void wxListCtrl::FireMouseEvent(wxEventType eventType, wxPoint position) le.m_itemIndex = item; le.m_item.m_itemId = item; GetItem(le.m_item); - GetEventHandler()->ProcessEvent(le); + HandleWindowEvent(le); } } @@ -697,7 +697,7 @@ void wxListCtrl::OnChar(wxKeyEvent& event) le.m_itemIndex = m_current; le.m_item.m_itemId = m_current; GetItem(le.m_item); - GetEventHandler()->ProcessEvent(le); + HandleWindowEvent(le); } } event.Skip(); @@ -970,7 +970,7 @@ bool wxListCtrl::SetColumn(int col, wxListItem& item) enc = m_font.GetEncoding(); else enc = wxLocale::GetSystemEncoding(); - wxMacCFStringHolder cfTitle; + wxCFStringRef cfTitle; cfTitle.Assign( item.GetText() , enc ); if(columnDesc.titleString) CFRelease(columnDesc.titleString); @@ -980,13 +980,13 @@ bool wxListCtrl::SetColumn(int col, wxListItem& item) if (item.GetMask() & wxLIST_MASK_IMAGE && item.GetImage() != -1 ) { - columnDesc.btnContentInfo.contentType = kControlContentIconRef; wxImageList* imageList = GetImageList(wxIMAGE_LIST_SMALL); if (imageList && imageList->GetImageCount() > 0 ) { wxBitmap bmp = imageList->GetBitmap( item.GetImage() ); - IconRef icon = bmp.GetBitmapData()->GetIconRef(); + IconRef icon = bmp.GetIconRef(); columnDesc.btnContentInfo.u.iconRef = icon; + columnDesc.btnContentInfo.contentType = kControlContentIconRef; } } @@ -1743,7 +1743,7 @@ bool wxListCtrl::DeleteItem(long item) wxListEvent event( wxEVT_COMMAND_LIST_DELETE_ITEM, GetId() ); event.SetEventObject( this ); event.m_itemIndex = item; - GetEventHandler()->ProcessEvent( event ); + HandleWindowEvent( event ); } return true; @@ -1760,7 +1760,7 @@ bool wxListCtrl::DeleteAllItems() m_dbImpl->MacClear(); wxListEvent event( wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, GetId() ); event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); + HandleWindowEvent( event ); } return true; } @@ -1834,7 +1834,7 @@ wxTextCtrl* wxListCtrl::EditLabel(long item, wxClassInfo* textControlClass) le.m_col = 0; GetItem( le.m_item ); - if ( GetParent()->GetEventHandler()->ProcessEvent( le ) && !le.IsAllowed() ) + if ( GetParent()->HandleWindowEvent( le ) && !le.IsAllowed() ) { // vetoed by user code return NULL; @@ -2033,7 +2033,7 @@ long wxListCtrl::InsertItem(wxListItem& info) wxListEvent event( wxEVT_COMMAND_LIST_INSERT_ITEM, GetId() ); event.SetEventObject( this ); event.m_itemIndex = info.m_itemId; - GetEventHandler()->ProcessEvent( event ); + HandleWindowEvent( event ); return info.m_itemId; } return -1; @@ -2200,7 +2200,7 @@ bool wxListCtrl::OnRenameAccept(long itemEdit, const wxString& value) GetItem( le.m_item ); le.m_item.m_text = value; - return !GetEventHandler()->ProcessEvent( le ) || + return !HandleWindowEvent( le ) || le.IsAllowed(); } @@ -2215,7 +2215,7 @@ void wxListCtrl::OnRenameCancelled(long itemEdit) le.m_itemIndex = itemEdit; GetItem( le.m_item ); - GetEventHandler()->ProcessEvent( le ); + HandleWindowEvent( le ); } // ---------------------------------------------------------------------------- @@ -2666,8 +2666,7 @@ void wxMacDataBrowserListCtrlControl::DrawItem( if (font == wxNullFont) font = listFont; - wxMacCFStringHolder cfString; - cfString.Assign( text, wxLocale::GetSystemEncoding() ); + wxCFStringRef cfString( text, wxLocale::GetSystemEncoding() ); Rect enclosingRect; CGRect enclosingCGRect, iconCGRect, textCGRect; @@ -2729,13 +2728,13 @@ void wxMacDataBrowserListCtrlControl::DrawItem( { if (color.Ok()) - labelColor = MAC_WXCOLORREF( color.GetPixel() ); + color.GetRGBColor(&labelColor); else if (list->GetTextColour().Ok()) - labelColor = MAC_WXCOLORREF( list->GetTextColour().GetPixel() ); + list->GetTextColour().GetRGBColor(&labelColor); if (bgColor.Ok()) { - backgroundColor = MAC_WXCOLORREF( bgColor.GetPixel() ); + bgColor.GetRGBColor(&backgroundColor); CGContextSaveGState(context); CGContextSetRGBFillColor(context, (float)backgroundColor.red / (float)USHRT_MAX, @@ -2754,7 +2753,7 @@ void wxMacDataBrowserListCtrlControl::DrawItem( wxImageList* imageList = list->GetImageList(wxIMAGE_LIST_SMALL); if (imageList && imageList->GetImageCount() > 0){ wxBitmap bmp = imageList->GetBitmap(imgIndex); - IconRef icon = bmp.GetBitmapData()->GetIconRef(); + IconRef icon = bmp.GetIconRef(); CGContextSaveGState(context); CGContextTranslateCTM(context, 0,iconCGRect.origin.y + CGRectGetMaxY(iconCGRect)); @@ -2769,26 +2768,34 @@ void wxMacDataBrowserListCtrlControl::DrawItem( HIThemeTextHorizontalFlush hFlush = kHIThemeTextHorizontalFlushLeft; HIThemeTextInfo info; - -#ifdef __LP64__ - info.version = kHIThemeTextInfoVersionOne; - info.fontID = kThemeViewsFont; - if (font.Ok()) + bool setup = false; +#if wxMAC_USE_CORE_TEXT + if ( UMAGetSystemVersion() >= 0x1050 ) { - info.fontID = kThemeSpecifiedFont; - info.font = (CTFontRef) font.MacGetCTFont(); + info.version = kHIThemeTextInfoVersionOne; + info.fontID = kThemeViewsFont; + if (font.Ok()) + { + info.fontID = kThemeSpecifiedFont; + info.font = (CTFontRef) font.MacGetCTFont(); + setup = true; + } } -#else - info.version = kHIThemeTextInfoVersionZero; - info.fontID = kThemeViewsFont; - - if (font.Ok()) +#endif +#if wxMAC_USE_ATSU_TEXT + if ( !setup ) { - if (font.GetFamily() != wxFONTFAMILY_DEFAULT) - info.fontID = font.MacGetThemeFontID(); + info.version = kHIThemeTextInfoVersionZero; + info.fontID = kThemeViewsFont; + + if (font.Ok()) + { + if (font.GetFamily() != wxFONTFAMILY_DEFAULT) + info.fontID = font.MacGetThemeFontID(); - ::TextSize( (short)(font.MacGetFontSize()) ) ; - ::TextFace( font.MacGetFontStyle() ) ; + ::TextSize( (short)(font.MacGetFontSize()) ) ; + ::TextFace( font.MacGetFontStyle() ) ; + } } #endif @@ -2880,10 +2887,8 @@ OSStatus wxMacDataBrowserListCtrlControl::GetSetItemData(DataBrowserItemID itemI default : if ( property >= kMinColumnId ) { - wxMacCFStringHolder cfStr; - if (!text.IsEmpty()){ - cfStr.Assign( text, wxLocale::GetSystemEncoding() ); + wxCFStringRef cfStr( text, wxLocale::GetSystemEncoding() ); err = ::SetDataBrowserItemDataText( itemData, cfStr ); err = noErr; } @@ -2895,7 +2900,7 @@ OSStatus wxMacDataBrowserListCtrlControl::GetSetItemData(DataBrowserItemID itemI wxImageList* imageList = list->GetImageList(wxIMAGE_LIST_SMALL); if (imageList && imageList->GetImageCount() > 0){ wxBitmap bmp = imageList->GetBitmap(imgIndex); - IconRef icon = bmp.GetBitmapData()->GetIconRef(); + IconRef icon = bmp.GetIconRef(); ::SetDataBrowserItemDataIcon(itemData, icon); } } @@ -2918,7 +2923,7 @@ OSStatus wxMacDataBrowserListCtrlControl::GetSetItemData(DataBrowserItemID itemI // can then deal with the veto CFStringRef sr ; verify_noerr( GetDataBrowserItemDataText( itemData , &sr ) ) ; - wxMacCFStringHolder cfStr(sr) ;; + wxCFStringRef cfStr(sr) ;; if (m_isVirtual) list->SetItem( (long)itemData-1 , listColumn, cfStr.AsString() ) ; else