X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a570e8f8febd7213e789647478298293df4519db..97795793dcb95f523673866175d27e3a63d32584:/src/cocoa/notebook.mm diff --git a/src/cocoa/notebook.mm b/src/cocoa/notebook.mm index 9cc3241b65..6462b07222 100644 --- a/src/cocoa/notebook.mm +++ b/src/cocoa/notebook.mm @@ -21,6 +21,7 @@ #include "wx/cocoa/autorelease.h" #include "wx/cocoa/string.h" +#include "wx/cocoa/objc/objc_uniquifying.h" #import #import @@ -48,6 +49,7 @@ - (NSImage*)image; - (void)setImage:(NSImage*)image; @end // interface WXCTabViewImageItem : NSTabViewItem +WX_DECLARE_GET_OBJC_CLASS(WXCTabViewImageItem,NSTabViewItem) @implementation WXCTabViewImageItem : NSTabViewItem - (id)init @@ -120,6 +122,7 @@ } @end // implementation WXCTabViewImageItem : NSTabViewItem +WX_IMPLEMENT_GET_OBJC_CLASS(WXCTabViewImageItem,NSTabViewItem) // ======================================================================== // wxNotebookEvent @@ -131,7 +134,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) // ======================================================================== // wxNotebook // ======================================================================== -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxBookCtrlBase) BEGIN_EVENT_TABLE(wxNotebook, wxNotebookBase) END_EVENT_TABLE() WX_IMPLEMENT_COCOA_OWNER(wxNotebook,NSTabView,NSView,NSView) @@ -147,6 +150,23 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID winid, return false; m_cocoaNSView = NULL; SetNSTabView([[NSTabView alloc] initWithFrame:MakeDefaultNSRect(size)]); + + do + { + NSTabViewType tabViewType; + if(style & wxNB_TOP) + tabViewType = NSTopTabsBezelBorder; + else if(style & wxNB_LEFT) + tabViewType = NSLeftTabsBezelBorder; + else if(style & wxNB_RIGHT) + tabViewType = NSRightTabsBezelBorder; + else if(style & wxNB_BOTTOM) + tabViewType = NSBottomTabsBezelBorder; + else + break; + [GetNSTabView() setTabViewType:tabViewType]; + } while(0); + if(m_parent) m_parent->CocoaAddChild(this); SetInitialFrameRect(pos,size); @@ -201,7 +221,7 @@ bool wxNotebook::InsertPage( size_t pos, { wxAutoNSAutoreleasePool pool; m_pages.Insert(page,pos); - NSTabViewItem *tvitem = [[WXCTabViewImageItem alloc] initWithIdentifier:nil]; + NSTabViewItem *tvitem = [[WX_GET_OBJC_CLASS(WXCTabViewImageItem) alloc] initWithIdentifier:nil]; [tvitem setLabel: wxNSStringWithWxString(title)]; const wxBitmap *bmp = (imageId!=-1)?m_imageList->GetBitmapPtr(imageId):NULL; if(bmp) @@ -295,9 +315,10 @@ int wxNotebook::GetSelection() const void wxNotebook::CocoaDelegate_tabView_didSelectTabViewItem(WX_NSTabViewItem tabViewItem) { // FIXME: oldSel probably == newSel - wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, GetId(), + wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, GetId(), [GetNSTabView() indexOfTabViewItem:tabViewItem], GetSelection()); event.SetEventObject(this); + GetEventHandler()->ProcessEvent(event); } bool wxNotebook::CocoaDelegate_tabView_shouldSelectTabViewItem(WX_NSTabViewItem tabViewItem) @@ -305,7 +326,7 @@ bool wxNotebook::CocoaDelegate_tabView_shouldSelectTabViewItem(WX_NSTabViewItem wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, GetId(), [GetNSTabView() indexOfTabViewItem:tabViewItem], GetSelection()); event.SetEventObject(this); - return !GetEventHandler()->ProcessEvent(event) || event.IsAllowed(); + return !HandleWindowEvent(event) || event.IsAllowed(); } #endif // wxUSE_NOTEBOOK