mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-23 03:21:04 +00:00
Various tidyups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@4357 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
82ae2d2b76
commit
3cfafe1499
3 changed files with 127 additions and 108 deletions
|
@ -1285,7 +1285,7 @@
|
|||
|
||||
if (numberOfSubStrings == 2)
|
||||
{
|
||||
/* select root path *.
|
||||
/* select root path */
|
||||
if ([[subStrings objectAtIndex: 1] length] == 0)
|
||||
{
|
||||
[self scrollColumnsLeftBy: [_browserColumns count]];
|
||||
|
|
|
@ -51,13 +51,18 @@
|
|||
|
||||
@implementation NSCell
|
||||
|
||||
static Class imageClass;
|
||||
|
||||
//
|
||||
// Class methods
|
||||
//
|
||||
+ (void) initialize
|
||||
{
|
||||
if (self == [NSCell class])
|
||||
[self setVersion:1];
|
||||
{
|
||||
[self setVersion: 1];
|
||||
imageClass = [NSImage class];
|
||||
}
|
||||
}
|
||||
|
||||
+ (BOOL) prefersTrackingUntilMouseUp
|
||||
|
@ -102,7 +107,7 @@
|
|||
|
||||
[self _init];
|
||||
|
||||
NSAssert(anImage == nil || [anImage isKindOfClass: [NSImage class]],
|
||||
NSAssert(anImage == nil || [anImage isKindOfClass: imageClass],
|
||||
NSInvalidArgumentException);
|
||||
|
||||
cell_type = NSImageCellType;
|
||||
|
@ -231,7 +236,7 @@
|
|||
|
||||
- (void) setImage: (NSImage*)anImage
|
||||
{
|
||||
NSAssert(anImage == nil || [anImage isKindOfClass: [NSImage class]],
|
||||
NSAssert(anImage == nil || [anImage isKindOfClass: imageClass],
|
||||
NSInvalidArgumentException);
|
||||
|
||||
ASSIGN(cell_image, anImage);
|
||||
|
@ -674,7 +679,7 @@ static inline NSPoint centerSizeInRect(NSSize innerSize, NSRect outerRect)
|
|||
|
||||
- (void) drawWithFrame: (NSRect)cellFrame inView: (NSView*)controlView
|
||||
{
|
||||
NSDebugLog (@"NSCell drawWithFrame: inView:");
|
||||
NSDebugLog (@"NSCell drawWithFrame: inView: ");
|
||||
|
||||
// Save last view drawn to
|
||||
[self setControlView: controlView];
|
||||
|
@ -817,8 +822,8 @@ static inline NSPoint centerSizeInRect(NSSize innerSize, NSRect outerRect)
|
|||
|
||||
- (void) getPeriodicDelay: (float *)delay interval: (float *)interval
|
||||
{
|
||||
*delay = 0.05;
|
||||
*interval = 0.05;
|
||||
*delay = 0.1;
|
||||
*interval = 0.1;
|
||||
}
|
||||
|
||||
- (BOOL) startTrackingAt: (NSPoint)startPoint inView: (NSView *)controlView
|
||||
|
@ -842,18 +847,19 @@ static inline NSPoint centerSizeInRect(NSSize innerSize, NSRect outerRect)
|
|||
ofView: (NSView *)controlView
|
||||
untilMouseUp: (BOOL)flag
|
||||
{
|
||||
NSApplication *theApp = [NSApplication sharedApplication];
|
||||
unsigned int event_mask = NSLeftMouseDownMask | NSLeftMouseUpMask |
|
||||
NSMouseMovedMask | NSLeftMouseDraggedMask |
|
||||
NSRightMouseDraggedMask;
|
||||
NSPoint location = [theEvent locationInWindow];
|
||||
NSPoint point = [controlView convertPoint: location fromView: nil];
|
||||
float delay, interval;
|
||||
id target = [self target];
|
||||
SEL action = [self action];
|
||||
NSPoint last_point;
|
||||
BOOL done;
|
||||
BOOL mouseWentUp;
|
||||
NSApplication *theApp = [NSApplication sharedApplication];
|
||||
unsigned event_mask = NSLeftMouseDownMask | NSLeftMouseUpMask
|
||||
| NSMouseMovedMask | NSLeftMouseDraggedMask
|
||||
| NSRightMouseDraggedMask;
|
||||
NSPoint location = [theEvent locationInWindow];
|
||||
NSPoint point = [controlView convertPoint: location fromView: nil];
|
||||
float delay;
|
||||
float interval;
|
||||
id target = [self target];
|
||||
SEL action = [self action];
|
||||
NSPoint last_point = point;
|
||||
BOOL done;
|
||||
BOOL mouseWentUp;
|
||||
|
||||
NSDebugLog(@"NSCell start tracking\n");
|
||||
NSDebugLog(@"NSCell tracking in rect %f %f %f %f\n",
|
||||
|
@ -867,14 +873,14 @@ static inline NSPoint centerSizeInRect(NSSize innerSize, NSRect outerRect)
|
|||
if (![controlView mouse: point inRect: cellFrame])
|
||||
return NO; // point is not in cell
|
||||
|
||||
if ([theEvent type] == NSLeftMouseDown &&
|
||||
(action_mask & NSLeftMouseDownMask))
|
||||
[(NSControl*)controlView sendAction: action to:target];
|
||||
if ((action_mask & NSLeftMouseDownMask)
|
||||
&& [theEvent type] == NSLeftMouseDown)
|
||||
[(NSControl*)controlView sendAction: action to: target];
|
||||
|
||||
if (cell_continuous)
|
||||
{
|
||||
[self getPeriodicDelay: &delay interval:&interval];
|
||||
[NSEvent startPeriodicEventsAfterDelay: delay withPeriod:interval];
|
||||
[self getPeriodicDelay: &delay interval: &interval];
|
||||
[NSEvent startPeriodicEventsAfterDelay: delay withPeriod: interval];
|
||||
event_mask |= NSPeriodicMask;
|
||||
}
|
||||
|
||||
|
@ -883,25 +889,44 @@ static inline NSPoint centerSizeInRect(NSSize innerSize, NSRect outerRect)
|
|||
done = NO;
|
||||
while (!done)
|
||||
{
|
||||
NSEventType eventType;
|
||||
BOOL pointIsInCell;
|
||||
NSEventType eventType;
|
||||
BOOL pointIsInCell;
|
||||
unsigned periodCount = 0;
|
||||
|
||||
last_point = point;
|
||||
theEvent = [theApp nextEventMatchingMask: event_mask
|
||||
untilDate: nil
|
||||
inMode: NSEventTrackingRunLoopMode
|
||||
dequeue: YES];
|
||||
eventType = [theEvent type];
|
||||
|
||||
if (eventType != NSPeriodic)
|
||||
if (eventType != NSPeriodic || periodCount == 4)
|
||||
{
|
||||
location = [theEvent locationInWindow];
|
||||
last_point = point;
|
||||
if (eventType == NSPeriodic)
|
||||
{
|
||||
NSWindow *w = [controlView window];
|
||||
|
||||
/*
|
||||
* Too many periodic events in succession -
|
||||
* update the mouse location and reset the counter.
|
||||
*/
|
||||
location = [w mouseLocationOutsideOfEventStream];
|
||||
periodCount = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
location = [theEvent locationInWindow];
|
||||
}
|
||||
point = [controlView convertPoint: location fromView: nil];
|
||||
NSDebugLog(@"NSCell location %f %f\n", location.x, location.y);
|
||||
NSDebugLog(@"NSCell point %f %f\n", point.x, point.y);
|
||||
}
|
||||
else
|
||||
NSDebugLog (@"got a periodic event");
|
||||
{
|
||||
periodCount++;
|
||||
NSDebugLog (@"got a periodic event");
|
||||
}
|
||||
|
||||
if (![controlView mouse: point inRect: cellFrame])
|
||||
{
|
||||
NSDebugLog(@"NSCell point not in cell frame\n");
|
||||
|
@ -914,7 +939,9 @@ static inline NSPoint centerSizeInRect(NSSize innerSize, NSRect outerRect)
|
|||
}
|
||||
}
|
||||
else
|
||||
pointIsInCell = YES;
|
||||
{
|
||||
pointIsInCell = YES;
|
||||
}
|
||||
|
||||
if (!done && ![self continueTracking: last_point // should continue
|
||||
at: point // tracking?
|
||||
|
@ -929,9 +956,9 @@ static inline NSPoint centerSizeInRect(NSSize innerSize, NSRect outerRect)
|
|||
NSDebugLog(@"NSCell mouse went up\n");
|
||||
mouseWentUp = YES;
|
||||
done = YES;
|
||||
[self setState:![self state]];
|
||||
[self setState: ![self state]];
|
||||
if ((action_mask & NSLeftMouseUpMask))
|
||||
[(NSControl*)controlView sendAction: action to:target];
|
||||
[(NSControl*)controlView sendAction: action to: target];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -939,7 +966,7 @@ static inline NSPoint centerSizeInRect(NSSize innerSize, NSRect outerRect)
|
|||
&& (action_mask & NSLeftMouseDraggedMask))
|
||||
|| ((eventType == NSPeriodic)
|
||||
&& (action_mask & NSPeriodicMask))))
|
||||
[(NSControl*)controlView sendAction: action to:target];
|
||||
[(NSControl*)controlView sendAction: action to: target];
|
||||
}
|
||||
}
|
||||
// Tell ourselves to stop tracking
|
||||
|
@ -957,9 +984,7 @@ static inline NSPoint centerSizeInRect(NSSize innerSize, NSRect outerRect)
|
|||
return YES;
|
||||
}
|
||||
|
||||
#if 1
|
||||
[controlView setNeedsDisplayInRect: cellFrame];
|
||||
#endif
|
||||
|
||||
NSDebugLog(@"NSCell mouse did not go up in cell\n");
|
||||
return NO; // Otherwise return NO
|
||||
|
@ -1089,7 +1114,7 @@ static inline NSPoint centerSizeInRect(NSSize innerSize, NSRect outerRect)
|
|||
//
|
||||
@implementation NSCell (GNUstepBackend)
|
||||
|
||||
+ (NSSize)sizeForBorderType: (NSBorderType)aType
|
||||
+ (NSSize) sizeForBorderType: (NSBorderType)aType
|
||||
{
|
||||
// Returns the size of a border
|
||||
switch (aType)
|
||||
|
|
|
@ -38,50 +38,46 @@
|
|||
#include <AppKit/NSApplication.h>
|
||||
#include <AppKit/NSCell.h>
|
||||
|
||||
//
|
||||
// Class variables
|
||||
//
|
||||
static id _NSCONTROL_CELL_CLASS = nil;
|
||||
|
||||
|
||||
/*
|
||||
* Class variables
|
||||
*/
|
||||
static Class cellClass;
|
||||
|
||||
@implementation NSControl
|
||||
|
||||
//
|
||||
// Class methods
|
||||
//
|
||||
/*
|
||||
* Class methods
|
||||
*/
|
||||
+ (void) initialize
|
||||
{
|
||||
if (self == [NSControl class])
|
||||
{
|
||||
NSDebugLog(@"Initialize NSControl class\n");
|
||||
[self setVersion: 1];
|
||||
cellClass = [NSCell class];
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Setting the Control's Cell
|
||||
//
|
||||
/*
|
||||
* Setting the Control's Cell
|
||||
*/
|
||||
+ (Class) cellClass
|
||||
{
|
||||
return _NSCONTROL_CELL_CLASS;
|
||||
return cellClass;
|
||||
}
|
||||
|
||||
+ (void) setCellClass: (Class)factoryId
|
||||
{
|
||||
_NSCONTROL_CELL_CLASS = factoryId;
|
||||
cellClass = factoryId ? factoryId : [NSCell class];
|
||||
}
|
||||
|
||||
//
|
||||
// Instance methods
|
||||
//
|
||||
/*
|
||||
* Instance methods
|
||||
*/
|
||||
- (id) initWithFrame: (NSRect)frameRect
|
||||
{
|
||||
[super initWithFrame: frameRect];
|
||||
if (_NSCONTROL_CELL_CLASS)
|
||||
[self setCell: [[_NSCONTROL_CELL_CLASS new] autorelease]];
|
||||
else
|
||||
[self setCell: [[NSCell new] autorelease]];
|
||||
[self setCell: AUTORELEASE([cellClass new])];
|
||||
tag = 0;
|
||||
|
||||
return self;
|
||||
|
@ -89,26 +85,26 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
|
||||
- (void) dealloc
|
||||
{
|
||||
[cell release];
|
||||
RELEASE(cell);
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
//
|
||||
// Creating copies
|
||||
//
|
||||
/*
|
||||
* Creating copies
|
||||
*/
|
||||
- (id) copyWithZone: (NSZone*)zone
|
||||
{
|
||||
id c = NSCopyObject(self, 0, zone);
|
||||
NSCell *o = [cell copy];
|
||||
|
||||
[c setCell: o];
|
||||
[o release];
|
||||
RELEASE(o);
|
||||
return c;
|
||||
}
|
||||
|
||||
//
|
||||
// Setting the Control's Cell
|
||||
//
|
||||
/*
|
||||
* Setting the Control's Cell
|
||||
*/
|
||||
- (id) cell
|
||||
{
|
||||
return cell;
|
||||
|
@ -123,14 +119,12 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
[cell setControlView: nil];
|
||||
[aCell setControlView: self];
|
||||
|
||||
[aCell retain];
|
||||
[cell release];
|
||||
cell = aCell;
|
||||
ASSIGN(ell, aCell);
|
||||
}
|
||||
|
||||
//
|
||||
// Enabling and Disabling the Control
|
||||
//
|
||||
/*
|
||||
* Enabling and Disabling the Control
|
||||
*/
|
||||
- (BOOL) isEnabled
|
||||
{
|
||||
return [[self selectedCell] isEnabled];
|
||||
|
@ -141,9 +135,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
[[self selectedCell] setEnabled: flag];
|
||||
}
|
||||
|
||||
//
|
||||
// Identifying the Selected Cell
|
||||
//
|
||||
/*
|
||||
* Identifying the Selected Cell
|
||||
*/
|
||||
- (id) selectedCell
|
||||
{
|
||||
if ([cell state])
|
||||
|
@ -157,9 +151,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
return [[self selectedCell] tag];
|
||||
}
|
||||
|
||||
//
|
||||
// Setting the Control's Value
|
||||
//
|
||||
/*
|
||||
* Setting the Control's Value
|
||||
*/
|
||||
- (double) doubleValue
|
||||
{
|
||||
return [[self selectedCell] doubleValue];
|
||||
|
@ -209,9 +203,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
return [[self selectedCell] stringValue];
|
||||
}
|
||||
|
||||
//
|
||||
// Interacting with Other Controls
|
||||
//
|
||||
/*
|
||||
* Interacting with Other Controls
|
||||
*/
|
||||
- (void) takeDoubleValueFrom: (id)sender
|
||||
{
|
||||
[[self selectedCell] takeDoubleValueFrom: sender];
|
||||
|
@ -236,9 +230,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
[self setNeedsDisplay: YES];
|
||||
}
|
||||
|
||||
//
|
||||
// Formatting Text
|
||||
//
|
||||
/*
|
||||
* Formatting Text
|
||||
*/
|
||||
- (NSTextAlignment) alignment
|
||||
{
|
||||
if (cell)
|
||||
|
@ -276,9 +270,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Managing the Field Editor
|
||||
//
|
||||
/*
|
||||
* Managing the Field Editor
|
||||
*/
|
||||
- (BOOL) abortEditing
|
||||
{
|
||||
return NO;
|
||||
|
@ -293,9 +287,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
{
|
||||
} // FIX ME
|
||||
|
||||
//
|
||||
// Resizing the Control
|
||||
//
|
||||
/*
|
||||
* Resizing the Control
|
||||
*/
|
||||
- (void) calcSize
|
||||
{
|
||||
} // FIX ME
|
||||
|
@ -304,9 +298,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Displaying the Control and Cell
|
||||
//
|
||||
/*
|
||||
* Displaying the Control and Cell
|
||||
*/
|
||||
- (void) drawRect: (NSRect)aRect
|
||||
{
|
||||
[self drawCell: cell];
|
||||
|
@ -344,9 +338,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
[self setNeedsDisplay: YES];
|
||||
}
|
||||
|
||||
//
|
||||
// Target and Action
|
||||
//
|
||||
/*
|
||||
* Target and Action
|
||||
*/
|
||||
- (SEL) action
|
||||
{
|
||||
return [cell action];
|
||||
|
@ -392,9 +386,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
return [cell target];
|
||||
}
|
||||
|
||||
//
|
||||
// Assigning a Tag
|
||||
//
|
||||
/*
|
||||
* Assigning a Tag
|
||||
*/
|
||||
- (void) setTag: (int)anInt
|
||||
{
|
||||
tag = anInt;
|
||||
|
@ -405,9 +399,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
return tag;
|
||||
}
|
||||
|
||||
//
|
||||
// Tracking the Mouse
|
||||
//
|
||||
/*
|
||||
* Tracking the Mouse
|
||||
*/
|
||||
- (void) mouseDown: (NSEvent *)theEvent
|
||||
{
|
||||
NSApplication *theApp = [NSApplication sharedApplication];
|
||||
|
@ -493,9 +487,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Methods Implemented by the Delegate
|
||||
//
|
||||
/*
|
||||
* Methods Implemented by the Delegate
|
||||
*/
|
||||
- (BOOL) control: (NSControl *)control
|
||||
textShouldBeginEditing: (NSText *)fieldEditor
|
||||
{
|
||||
|
@ -520,9 +514,9 @@ static id _NSCONTROL_CELL_CLASS = nil;
|
|||
{
|
||||
}
|
||||
|
||||
//
|
||||
// NSCoding protocol
|
||||
//
|
||||
/*
|
||||
* NSCoding protocol
|
||||
*/
|
||||
- (void) encodeWithCoder: (NSCoder*)aCoder
|
||||
{
|
||||
[super encodeWithCoder: aCoder];
|
||||
|
|
Loading…
Reference in a new issue