mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-06-02 11:10:59 +00:00
* Source/NSTabView.m (-dealloc): Reset _selected to nil at top of
dealloc. * Source/NSBox.m(-drawRect:, -initWithCoder:): Implement transparent handling for custom boxes. Patch by Marcian Lytwyn <marcian.lytwyn@advcsi.com> * Source/NSTabView.m (-selectTabViewItem:): Remove duplicated code. * Source/NSTabView.m (-removeTabViewItem:): Retain the item while removing it. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35773 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
1a9eba9fa5
commit
e04be1c03e
3 changed files with 33 additions and 19 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2012-10-31 Fred Kiefer <FredKiefer@gmx.de>
|
||||||
|
|
||||||
|
* Source/NSTabView.m (-dealloc): Reset _selected to nil at top of dealloc.
|
||||||
|
* Source/NSBox.m(-drawRect:, -initWithCoder:): Implement
|
||||||
|
transparent handling for custom boxes.
|
||||||
|
Patch by Marcian Lytwyn <marcian.lytwyn@advcsi.com>
|
||||||
|
* Source/NSTabView.m (-selectTabViewItem:): Remove duplicated code.
|
||||||
|
* Source/NSTabView.m (-removeTabViewItem:): Retain the item while
|
||||||
|
removing it.
|
||||||
|
|
||||||
2012-10-26 German A. Arias <german@xelalug.org>
|
2012-10-26 German A. Arias <german@xelalug.org>
|
||||||
|
|
||||||
* Source/GSThemeMenu.m (-setMenu:forWindow:): Revert last change. After
|
* Source/GSThemeMenu.m (-setMenu:forWindow:): Revert last change. After
|
||||||
|
|
|
@ -457,7 +457,14 @@
|
||||||
rect = NSIntersectionRect(_bounds, rect);
|
rect = NSIntersectionRect(_bounds, rect);
|
||||||
if (_box_type == NSBoxCustom)
|
if (_box_type == NSBoxCustom)
|
||||||
{
|
{
|
||||||
color = _fill_color;
|
if (_transparent)
|
||||||
|
{
|
||||||
|
color = [NSColor clearColor];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
color = _fill_color;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -582,7 +589,7 @@
|
||||||
[aCoder encodeInt: [self borderType] forKey: @"NSBorderType"];
|
[aCoder encodeInt: [self borderType] forKey: @"NSBorderType"];
|
||||||
[aCoder encodeInt: [self boxType] forKey: @"NSBoxType"];
|
[aCoder encodeInt: [self boxType] forKey: @"NSBoxType"];
|
||||||
[aCoder encodeInt: [self titlePosition] forKey: @"NSTitlePosition"];
|
[aCoder encodeInt: [self titlePosition] forKey: @"NSTitlePosition"];
|
||||||
[aCoder encodeBool: _transparent forKey: @"NSTransparent"];
|
[aCoder encodeBool: _transparent forKey: @"NSFullyTransparent"];
|
||||||
[aCoder encodeSize: [self contentViewMargins] forKey: @"NSOffsets"];
|
[aCoder encodeSize: [self contentViewMargins] forKey: @"NSOffsets"];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -623,9 +630,14 @@
|
||||||
}
|
}
|
||||||
if ([aDecoder containsValueForKey: @"NSTransparent"])
|
if ([aDecoder containsValueForKey: @"NSTransparent"])
|
||||||
{
|
{
|
||||||
|
// On Apple this is always NO, we keep it for old GNUstep archives
|
||||||
_transparent = [aDecoder decodeBoolForKey: @"NSTransparent"];
|
_transparent = [aDecoder decodeBoolForKey: @"NSTransparent"];
|
||||||
}
|
}
|
||||||
if ([aDecoder containsValueForKey: @"NSOffsets"])
|
if ([aDecoder containsValueForKey: @"NSFullyTransparent"])
|
||||||
|
{
|
||||||
|
_transparent = [aDecoder decodeBoolForKey: @"NSFullyTransparent"];
|
||||||
|
}
|
||||||
|
if ([aDecoder containsValueForKey: @"NSOffsets"])
|
||||||
{
|
{
|
||||||
[self setContentViewMargins: [aDecoder decodeSizeForKey: @"NSOffsets"]];
|
[self setContentViewMargins: [aDecoder decodeSizeForKey: @"NSOffsets"]];
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,11 +86,11 @@
|
||||||
|
|
||||||
- (void) dealloc
|
- (void) dealloc
|
||||||
{
|
{
|
||||||
RELEASE(_items);
|
|
||||||
RELEASE(_font);
|
|
||||||
// Reset the _selected attribute to prevent crash when -dealloc calls
|
// Reset the _selected attribute to prevent crash when -dealloc calls
|
||||||
// -setNextKeyView:
|
// -setNextKeyView:
|
||||||
_selected = nil;
|
_selected = nil;
|
||||||
|
RELEASE(_items);
|
||||||
|
RELEASE(_font);
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,8 +139,9 @@
|
||||||
if (i == NSNotFound)
|
if (i == NSNotFound)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
RETAIN(tabViewItem);
|
||||||
// Do this BEFORE removing from array...in case it gets released...
|
// Do this BEFORE removing from array...in case it gets released...
|
||||||
[tabViewItem _setTabView:nil];
|
[tabViewItem _setTabView: nil];
|
||||||
[_items removeObjectAtIndex: i];
|
[_items removeObjectAtIndex: i];
|
||||||
|
|
||||||
if (tabViewItem == _selected)
|
if (tabViewItem == _selected)
|
||||||
|
@ -156,6 +157,7 @@
|
||||||
[self selectTabViewItem: [_items objectAtIndex: newIndex]];
|
[self selectTabViewItem: [_items objectAtIndex: newIndex]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
RELEASE(tabViewItem);
|
||||||
|
|
||||||
if ([_delegate respondsToSelector: @selector(tabViewDidChangeNumberOfTabViewItems:)])
|
if ([_delegate respondsToSelector: @selector(tabViewDidChangeNumberOfTabViewItems:)])
|
||||||
{
|
{
|
||||||
|
@ -237,14 +239,14 @@
|
||||||
BOOL canSelect = YES;
|
BOOL canSelect = YES;
|
||||||
NSView *selectedView = nil;
|
NSView *selectedView = nil;
|
||||||
|
|
||||||
if ([_delegate respondsToSelector: @selector(tabView: shouldSelectTabViewItem:)])
|
if ([_delegate respondsToSelector: @selector(tabView:shouldSelectTabViewItem:)])
|
||||||
{
|
{
|
||||||
canSelect = [_delegate tabView: self shouldSelectTabViewItem: tabViewItem];
|
canSelect = [_delegate tabView: self shouldSelectTabViewItem: tabViewItem];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canSelect)
|
if (canSelect)
|
||||||
{
|
{
|
||||||
if ([_delegate respondsToSelector: @selector(tabView: willSelectTabViewItem:)])
|
if ([_delegate respondsToSelector: @selector(tabView:willSelectTabViewItem:)])
|
||||||
{
|
{
|
||||||
[_delegate tabView: self willSelectTabViewItem: tabViewItem];
|
[_delegate tabView: self willSelectTabViewItem: tabViewItem];
|
||||||
}
|
}
|
||||||
|
@ -256,21 +258,11 @@
|
||||||
/* NB: If [_selected view] is nil this does nothing, which
|
/* NB: If [_selected view] is nil this does nothing, which
|
||||||
is fine. */
|
is fine. */
|
||||||
[[_selected view] removeFromSuperview];
|
[[_selected view] removeFromSuperview];
|
||||||
_selected = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ([_delegate respondsToSelector:
|
|
||||||
@selector(tabView: willSelectTabViewItem:)])
|
|
||||||
{
|
|
||||||
[_delegate tabView: self willSelectTabViewItem: tabViewItem];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_selected = tabViewItem;
|
_selected = tabViewItem;
|
||||||
_selected_item = [_items indexOfObject: _selected];
|
|
||||||
[_selected _setTabState: NSSelectedTab];
|
[_selected _setTabState: NSSelectedTab];
|
||||||
|
|
||||||
selectedView = [_selected view];
|
selectedView = [_selected view];
|
||||||
|
|
||||||
if (selectedView != nil)
|
if (selectedView != nil)
|
||||||
{
|
{
|
||||||
NSView *firstResponder;
|
NSView *firstResponder;
|
||||||
|
@ -296,7 +288,7 @@
|
||||||
[self setNeedsDisplay: YES];
|
[self setNeedsDisplay: YES];
|
||||||
|
|
||||||
if ([_delegate respondsToSelector:
|
if ([_delegate respondsToSelector:
|
||||||
@selector(tabView: didSelectTabViewItem:)])
|
@selector(tabView:didSelectTabViewItem:)])
|
||||||
{
|
{
|
||||||
[_delegate tabView: self didSelectTabViewItem: _selected];
|
[_delegate tabView: self didSelectTabViewItem: _selected];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue