X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/427ff66291af2d8dd34ff5ee68c81436997144a1..9dc1d18069c519c807c2476a837e710b5ef932c6:/src/mac/carbon/tabctrl.cpp diff --git a/src/mac/carbon/tabctrl.cpp b/src/mac/carbon/tabctrl.cpp index 4fcf069286..433bb55811 100644 --- a/src/mac/carbon/tabctrl.cpp +++ b/src/mac/carbon/tabctrl.cpp @@ -9,43 +9,64 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "tabctrl.h" -#endif +#include "wx/wxprec.h" -#include "wx/defs.h" +#if wxUSE_TAB_DIALOG #include "wx/control.h" #include "wx/tabctrl.h" #include "wx/mac/uma.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxTabCtrl, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxNotifyEvent) + +DEFINE_EVENT_TYPE(wxEVT_COMMAND_TAB_SEL_CHANGED) +DEFINE_EVENT_TYPE(wxEVT_COMMAND_TAB_SEL_CHANGING) + BEGIN_EVENT_TABLE(wxTabCtrl, wxControl) END_EVENT_TABLE() -#endif + wxTabCtrl::wxTabCtrl() { + m_macIsUserPane = false; m_imageList = NULL; } -bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) +bool wxTabCtrl::Create( wxWindow *parent, + wxWindowID id, const wxPoint& pos, const wxSize& size, + long style, const wxString& name ) { - Rect bounds ; - Str255 title ; - + m_macIsUserPane = false; m_imageList = NULL; - - MacPreControlCreate( parent , id , wxEmptyString , pos , size ,style, wxDefaultValidator , name , &bounds , title ) ; - - m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1, - kControlTabSmallProc , (long) this ) ; - - MacPostControlCreate() ; - return TRUE ; + + if ( !wxControl::Create( parent, id, pos, size, style, wxDefaultValidator, name ) ) + return false; + + Rect bounds = wxMacGetBoundsForControl( this, pos, size ); + + UInt16 tabstyle = kControlTabDirectionNorth; + ControlTabSize tabsize = kControlTabSizeLarge; + if ( GetWindowVariant() == wxWINDOW_VARIANT_SMALL ) + tabsize = kControlTabSizeSmall ; + else if ( GetWindowVariant() == wxWINDOW_VARIANT_MINI ) + { + if (UMAGetSystemVersion() >= 0x1030 ) + tabsize = 3 ; + else + tabsize = kControlSizeSmall; + } + + m_peer = new wxMacControl( this ); + OSStatus err = CreateTabsControl( + MAC_WXHWND(parent->MacGetTopLevelWindowRef()), &bounds, + tabsize, tabstyle, 0, NULL, m_peer->GetControlRefAddr() ); + verify_noerr( err ); + + MacPostControlCreate( pos, size ); + + return true; } wxTabCtrl::~wxTabCtrl() @@ -56,147 +77,125 @@ void wxTabCtrl::Command(wxCommandEvent& event) { } -// Delete all items bool wxTabCtrl::DeleteAllItems() { - // TODO - return FALSE; + // TODO: + return false; } -// Delete an item bool wxTabCtrl::DeleteItem(int item) { - // TODO - return FALSE; + // TODO: + return false; } -// Get the selection int wxTabCtrl::GetSelection() const { - // TODO + // TODO: return 0; } // Get the tab with the current keyboard focus +// int wxTabCtrl::GetCurFocus() const { - // TODO + // TODO: return 0; } -// Get the associated image list -wxImageList* wxTabCtrl::GetImageList() const +wxImageList * wxTabCtrl::GetImageList() const { return m_imageList; } -// Get the number of items int wxTabCtrl::GetItemCount() const { - // TODO + // TODO: return 0; } // Get the rect corresponding to the tab bool wxTabCtrl::GetItemRect(int item, wxRect& wxrect) const { - // TODO - return FALSE; + // TODO: + return false; } -// Get the number of rows int wxTabCtrl::GetRowCount() const { - // TODO + // TODO: return 0; } -// Get the item text wxString wxTabCtrl::GetItemText(int item) const { - // TODO + // TODO: return wxEmptyString; } -// Get the item image int wxTabCtrl::GetItemImage(int item) const { - // TODO + // TODO: return 0; } -// Get the item data void* wxTabCtrl::GetItemData(int item) const { - // TODO + // TODO: return NULL; } -// Hit test int wxTabCtrl::HitTest(const wxPoint& pt, long& flags) { - // TODO + // TODO: return 0; } -// Insert an item bool wxTabCtrl::InsertItem(int item, const wxString& text, int imageId, void* data) { - // TODO - return FALSE; + // TODO: + return false; } -// Set the selection int wxTabCtrl::SetSelection(int item) { - // TODO + // TODO: return 0; } -// Set the image list void wxTabCtrl::SetImageList(wxImageList* imageList) { - // TODO + // TODO: } -// Set the text for an item bool wxTabCtrl::SetItemText(int item, const wxString& text) { - // TODO - return FALSE; + // TODO: + return false; } -// Set the image for an item bool wxTabCtrl::SetItemImage(int item, int image) { - // TODO - return FALSE; + // TODO: + return false; } -// Set the data for an item bool wxTabCtrl::SetItemData(int item, void* data) { - // TODO - return FALSE; + // TODO: + return false; } // Set the size for a fixed-width tab control void wxTabCtrl::SetItemSize(const wxSize& size) { - // TODO + // TODO: } // Set the padding between tabs void wxTabCtrl::SetPadding(const wxSize& padding) { - // TODO -} - -// Tab event -IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxCommandEvent) - -wxTabEvent::wxTabEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ + // TODO: } +#endif // wxUSE_TAB_DIALOG