diff --git a/ChangeLog b/ChangeLog index c2e79707b..3e9e41020 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2000-05-09 Richard Frith-Macdonald + + * gui/Source/NSTabView.m: General tidyup, minro fixes, and implemented + ([-takeSelectedTabViewItemFromSender:]) + +2000-05-09 Georg Fleischmann + + * gui/Source/NSTabView.m + ([-initWithFram:]): retain tab_font + ([-dealloc]): new method + 2000-05-07 Fred Kiefer * Source/NSAttributedString.m: diff --git a/Source/NSTabView.m b/Source/NSTabView.m index 00cab7f16..5ff5731fb 100644 --- a/Source/NSTabView.m +++ b/Source/NSTabView.m @@ -1,21 +1,51 @@ +/* + NSTabView.m + + The tabular view class + + Copyright (C) 1999,2000 Free Software Foundation, Inc. + + Author: Michael Hanni + Date: 1999 + + This file is part of the GNUstep GUI Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + #include #include #include #include +#include +#include #include #include #include @implementation NSTabView -- (id)initWithFrame:(NSRect)rect +- (id) initWithFrame: (NSRect)rect { - [super initWithFrame:rect]; + [super initWithFrame: rect]; // setup variables tab_items = [NSMutableArray new]; - tab_font = [NSFont systemFontOfSize:12]; + tab_font = RETAIN([NSFont systemFontOfSize: 12]); tab_selected = nil; return self; @@ -23,181 +53,202 @@ // tab management. -- (void)addTabViewItem:(NSTabViewItem *)tabViewItem +- (void) addTabViewItem: (NSTabViewItem*)tabViewItem { - [tabViewItem _setTabView:self]; - [tab_items insertObject:tabViewItem atIndex:[tab_items count]]; + [tabViewItem _setTabView: self]; + [tab_items insertObject: tabViewItem atIndex: [tab_items count]]; - if ([tab_delegate respondsToSelector: - @selector(tabViewDidChangeNumberOfTabViewItems:)]) + if ([tab_delegate respondsToSelector: + @selector(tabViewDidChangeNumberOfTabViewItems:)]) { - [tab_delegate tabViewDidChangeNumberOfTabViewItems:self]; + [tab_delegate tabViewDidChangeNumberOfTabViewItems: self]; } } -- (void)insertTabViewItem:(NSTabViewItem *)tabViewItem - atIndex:(int)index +- (void) insertTabViewItem: (NSTabViewItem*)tabViewItem + atIndex: (int)index { - [tabViewItem _setTabView:self]; - [tab_items insertObject:tabViewItem atIndex:index]; + [tabViewItem _setTabView: self]; + [tab_items insertObject: tabViewItem atIndex: index]; - if ([tab_delegate respondsToSelector: - @selector(tabViewDidChangeNumberOfTabViewItems:)]) + if ([tab_delegate respondsToSelector: + @selector(tabViewDidChangeNumberOfTabViewItems:)]) { - [tab_delegate tabViewDidChangeNumberOfTabViewItems:self]; + [tab_delegate tabViewDidChangeNumberOfTabViewItems: self]; } } -- (void)removeTabViewItem:(NSTabViewItem *)tabViewItem +- (void) removeTabViewItem: (NSTabViewItem*)tabViewItem { - int i = [tab_items indexOfObject:tabViewItem]; + unsigned i = [tab_items indexOfObject: tabViewItem]; - if (i == -1) + if (i == NSNotFound) return; - [tab_items removeObjectAtIndex:i]; + [tab_items removeObjectAtIndex: i]; - if ([tab_delegate respondsToSelector: - @selector(tabViewDidChangeNumberOfTabViewItems:)]) + if ([tab_delegate respondsToSelector: + @selector(tabViewDidChangeNumberOfTabViewItems:)]) { - [tab_delegate tabViewDidChangeNumberOfTabViewItems:self]; + [tab_delegate tabViewDidChangeNumberOfTabViewItems: self]; } } -- (int)indexOfTabViewItem:(NSTabViewItem *)tabViewItem +- (int) indexOfTabViewItem: (NSTabViewItem*)tabViewItem { - return [tab_items indexOfObject:tabViewItem]; + return [tab_items indexOfObject: tabViewItem]; } -- (int)indexOfTabViewItemWithIdentifier:(id)identifier +- (int) indexOfTabViewItemWithIdentifier: (id)identifier { - int howMany = [tab_items count]; - int i; + unsigned howMany = [tab_items count]; + unsigned i; - for (i=0;i= 0 && col >= 0) + { + index = row * cols + col; + } + } + [self selectTabViewItem: [tab_items objectAtIndex: index]]; } -- (void)setFont:(NSFont *)font +- (void) setFont: (NSFont*)font { ASSIGN(tab_font, font); } -- (NSFont *)font +- (NSFont*) font { return tab_font; } -- (void)setTabViewType:(NSTabViewType)tabViewType +- (void) setTabViewType: (NSTabViewType)tabViewType { tab_type = tabViewType; } -- (NSTabViewType)tabViewType +- (NSTabViewType) tabViewType { return tab_type; } -- (void)setDrawsBackground:(BOOL)flag +- (void) setDrawsBackground: (BOOL)flag { tab_draws_background = flag; } @@ -207,34 +258,34 @@ return tab_draws_background; } -- (void)setAllowsTruncatedLabels:(BOOL)allowTruncatedLabels +- (void) setAllowsTruncatedLabels: (BOOL)allowTruncatedLabels { tab_truncated_label = allowTruncatedLabels; } -- (BOOL)allowsTruncatedLabels +- (BOOL) allowsTruncatedLabels { return tab_truncated_label; } -- (void)setDelegate:(id)anObject +- (void) setDelegate: (id)anObject { tab_delegate = anObject; } -- (id)delegate +- (id) delegate { return tab_delegate; } // content and size -- (NSSize)minimumSize +- (NSSize) minimumSize { return NSZeroSize; } -- (NSRect)contentRect +- (NSRect) contentRect { NSRect cRect = _frame; @@ -259,48 +310,53 @@ // Drawing. -- (void)drawRect:(NSRect)rect +- (void) drawRect: (NSRect)rect { NSGraphicsContext *ctxt = GSCurrentContext(); - float borderThickness; - int howMany = [tab_items count]; - int i; - NSRect previousRect; - int previousState = 0; + float borderThickness; + int howMany = [tab_items count]; + int i; + NSRect previousRect; + int previousState = 0; rect = NSIntersectionRect(_bounds, rect); DPSgsave(ctxt); - switch (tab_type) { - case NSTopTabsBezelBorder: - rect.size.height -= 16; - NSDrawButton(rect, rect); - borderThickness = 2; - break; - case NSBottomTabsBezelBorder: - rect.size.height -= 16; - rect.origin.y += 16; - NSDrawButton(rect, rect); - rect.origin.y -= 16; - borderThickness = 2; - break; - case NSNoTabsBezelBorder: - NSDrawButton(rect, rect); - borderThickness = 2; - break; - case NSNoTabsLineBorder: - [[NSColor controlDarkShadowColor] set]; - NSFrameRect(rect); - borderThickness = 1; - break; - case NSNoTabsNoBorder: - borderThickness = 0; - break; - } + switch (tab_type) + { + case NSTopTabsBezelBorder: + rect.size.height -= 16; + NSDrawButton(rect, rect); + borderThickness = 2; + break; + + case NSBottomTabsBezelBorder: + rect.size.height -= 16; + rect.origin.y += 16; + NSDrawButton(rect, rect); + rect.origin.y -= 16; + borderThickness = 2; + break; + + case NSNoTabsBezelBorder: + NSDrawButton(rect, rect); + borderThickness = 2; + break; + + case NSNoTabsLineBorder: + [[NSColor controlDarkShadowColor] set]; + NSFrameRect(rect); + borderThickness = 1; + break; + + case NSNoTabsNoBorder: + borderThickness = 0; + break; + } if (!tab_selected) - [self selectFirstTabViewItem:nil]; + [self selectFirstTabViewItem: nil]; if (tab_type == NSNoTabsBezelBorder || tab_type == NSNoTabsLineBorder) { @@ -310,18 +366,18 @@ if (tab_type == NSBottomTabsBezelBorder) { - for (i=0;i