#include #include #include #include #include #include #include @implementation NSTabView - (id)initWithFrame:(NSRect)rect { [super initWithFrame:rect]; // setup variables tab_items = [NSMutableArray new]; tab_font = [NSFont systemFontOfSize:12]; tab_selected = nil; return self; } // tab management. - (void)addTabViewItem:(NSTabViewItem *)tabViewItem { [tabViewItem _setTabView:self]; [tab_items insertObject:tabViewItem atIndex:[tab_items count]]; if ([tab_delegate respondsToSelector: @selector(tabViewDidChangeNumberOfTabViewItems:)]) { [tab_delegate tabViewDidChangeNumberOfTabViewItems:self]; } } - (void)insertTabViewItem:(NSTabViewItem *)tabViewItem atIndex:(int)index { [tabViewItem _setTabView:self]; [tab_items insertObject:tabViewItem atIndex:index]; if ([tab_delegate respondsToSelector: @selector(tabViewDidChangeNumberOfTabViewItems:)]) { [tab_delegate tabViewDidChangeNumberOfTabViewItems:self]; } } - (void)removeTabViewItem:(NSTabViewItem *)tabViewItem { int i = [tab_items indexOfObject:tabViewItem]; if (i == -1) return; [tab_items removeObjectAtIndex:i]; if ([tab_delegate respondsToSelector: @selector(tabViewDidChangeNumberOfTabViewItems:)]) { [tab_delegate tabViewDidChangeNumberOfTabViewItems:self]; } } - (int)indexOfTabViewItem:(NSTabViewItem *)tabViewItem { return [tab_items indexOfObject:tabViewItem]; } - (int)indexOfTabViewItemWithIdentifier:(id)identifier { int howMany = [tab_items count]; int i; for (i=0;i