mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-22 13:10:59 +00:00
Fill out implementation of NSMenu, NSMatrix and NSWindow.
Many bug fixes for NSMatrix. Assign values for global exception and notification strings. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@1842 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
4f871af2e9
commit
acc25ab0e2
6 changed files with 725 additions and 412 deletions
19
ChangeLog
19
ChangeLog
|
@ -1,4 +1,21 @@
|
|||
Sat Sep 21 12:25:23 1996 GNUstep Development <gnustep@duncan.ocbi.com>
|
||||
Wed Oct 2 10:40:23 1996 GNUstep Development <gnustep@duncan.ocbi.com>
|
||||
|
||||
* Headers/gnustep/gui/NSWindow.h: Add additional instance variables
|
||||
to fill out implementation.
|
||||
(-initDefaults): New method.
|
||||
* Source/NSApplication.m: Assign values to the global exception and
|
||||
notification strings. Post notifications to the default notification
|
||||
center. Fixed bug where the first event was being removed from the
|
||||
queue versus removing the event actually being processed.
|
||||
* Source/NSMatrix.m: Fill out implementation, reimplement many
|
||||
methods, and fix lots of bugs.
|
||||
* Source/NSMenu.m: Don't create NSView as content view, just make
|
||||
the menu matrix the content view.
|
||||
* Source/NSWindow.m: Assign values to the notification strings.
|
||||
Implement many unimplemented methods. Post notifications to the
|
||||
default notification center.
|
||||
|
||||
Sat Sep 21 12:25:23 1996 GNUstep Development <gnustep@ocbi.com>
|
||||
|
||||
* Source/NSButtonCell.m (-initTextCell:): Make default font
|
||||
be the user font instead of the user fixed pitch font.
|
||||
|
|
|
@ -49,7 +49,8 @@
|
|||
{
|
||||
// Attributes
|
||||
NSRect frame;
|
||||
id frame_view;
|
||||
NSSize minimum_size;
|
||||
NSSize maximum_size;
|
||||
id content_view;
|
||||
id first_responder;
|
||||
id original_responder;
|
||||
|
@ -58,18 +59,33 @@
|
|||
NSColor *background_color;
|
||||
NSString *represented_filename;
|
||||
NSString *miniaturized_title;
|
||||
NSImage *miniaturized_image;
|
||||
NSString *window_title;
|
||||
NSPoint last_point;
|
||||
NSBackingStoreType backing_type;
|
||||
unsigned int style_mask;
|
||||
int window_level;
|
||||
|
||||
BOOL is_one_shot;
|
||||
BOOL needs_display;
|
||||
BOOL is_autodisplay;
|
||||
BOOL optimize_drawing;
|
||||
BOOL views_need_display;
|
||||
NSWindowDepth depth_limit;
|
||||
BOOL dynamic_depth_limit;
|
||||
|
||||
BOOL cursor_rects_enabled;
|
||||
|
||||
BOOL visible;
|
||||
BOOL is_key;
|
||||
BOOL is_main;
|
||||
BOOL is_edited;
|
||||
BOOL is_released_when_closed;
|
||||
BOOL is_miniaturized;
|
||||
BOOL disable_flush_window;
|
||||
unsigned int style_mask;
|
||||
BOOL menu_exclude;
|
||||
BOOL hides_on_deactivate;
|
||||
BOOL accepts_mouse_moved;
|
||||
|
||||
// Reserved for back-end use
|
||||
void *be_wind_reserved;
|
||||
|
@ -315,7 +331,7 @@
|
|||
//
|
||||
// Printing and postscript
|
||||
//
|
||||
- (NSDate *)dataWithEPSInsideRect:(NSRect)rect;
|
||||
- (NSData *)dataWithEPSInsideRect:(NSRect)rect;
|
||||
- (void)fax:sender;
|
||||
- (void)print:sender;
|
||||
|
||||
|
@ -354,9 +370,13 @@
|
|||
- (void)encodeWithCoder:aCoder;
|
||||
- initWithCoder:aDecoder;
|
||||
|
||||
@end
|
||||
|
||||
//
|
||||
// GNUstep additional methods
|
||||
// GNUstep backend methods
|
||||
//
|
||||
@interface NSWindow (GNUstepBackend)
|
||||
|
||||
//
|
||||
// Mouse capture/release
|
||||
//
|
||||
|
@ -365,6 +385,7 @@
|
|||
|
||||
// Allow subclasses to init without the backend class
|
||||
// attempting to create an actual window
|
||||
- (void)initDefaults;
|
||||
- cleanInit;
|
||||
|
||||
@end
|
||||
|
|
|
@ -48,56 +48,62 @@ NSString *NSEventTrackingRunLoopMode = @"EventTrackingMode";
|
|||
//
|
||||
// Global Exception Strings
|
||||
//
|
||||
NSString *NSAbortModalException = @"AbortModalException";
|
||||
NSString *NSAbortPrintingException = @"AbortPrintingException";
|
||||
NSString *NSAppKitIgnoredException;
|
||||
NSString *NSAppKitVirtualMemoryException;
|
||||
NSString *NSBadBitmapParametersException;
|
||||
NSString *NSBadComparisonException;
|
||||
NSString *NSBadRTFColorTableException;
|
||||
NSString *NSBadRTFDirectiveException;
|
||||
NSString *NSBadRTFFontTableException;
|
||||
NSString *NSBadRTFStyleSheetException;
|
||||
NSString *NSBrowserIllegalDelegateException;
|
||||
NSString *NSColorListIOException;
|
||||
NSString *NSColorListNotEditableException;
|
||||
NSString *NSDraggingException;
|
||||
NSString *NSFontUnavailableException;
|
||||
NSString *NSIllegalSelectorException;
|
||||
NSString *NSImageCacheException;
|
||||
NSString *NSNibLoadingException;
|
||||
NSString *NSPPDIncludeNotFoundException;
|
||||
NSString *NSPPDIncludeStackOverflowException;
|
||||
NSString *NSPPDIncludeStackUnderflowException;
|
||||
NSString *NSPPDParseException;
|
||||
NSString *NSPasteboardCommunicationException;
|
||||
NSString *NSPrintOperationExistsException;
|
||||
NSString *NSPrintPackageException;
|
||||
NSString *NSPrintingCommunicationException;
|
||||
NSString *NSRTFPropertyStackOverflowException;
|
||||
NSString *NSTIFFException;
|
||||
NSString *NSTextLineTooLongException;
|
||||
NSString *NSTextNoSelectionException;
|
||||
NSString *NSTextReadException;
|
||||
NSString *NSTextWriteException;
|
||||
NSString *NSTypedStreamVersionException;
|
||||
NSString *NSWindowServerCommunicationException;
|
||||
NSString *NSWordTablesReadException;
|
||||
NSString *NSWordTablesWriteException;
|
||||
NSString *NSAbortModalException = @"AbortModal";
|
||||
NSString *NSAbortPrintingException = @"AbortPrinting";
|
||||
NSString *NSAppKitIgnoredException = @"AppKitIgnored";
|
||||
NSString *NSAppKitVirtualMemoryException = @"AppKitVirtualMemory";
|
||||
NSString *NSBadBitmapParametersException = @"BadBitmapParameters";
|
||||
NSString *NSBadComparisonException = @"BadComparison";
|
||||
NSString *NSBadRTFColorTableException = @"BadRTFColorTable";
|
||||
NSString *NSBadRTFDirectiveException = @"BadRTFDirective";
|
||||
NSString *NSBadRTFFontTableException = @"BadRTFFontTable";
|
||||
NSString *NSBadRTFStyleSheetException = @"BadRTFStyleSheet";
|
||||
NSString *NSBrowserIllegalDelegateException = @"BrowserIllegalDelegate";
|
||||
NSString *NSColorListIOException = @"ColorListIO";
|
||||
NSString *NSColorListNotEditableException = @"ColorListNotEditable";
|
||||
NSString *NSDraggingException = @"Draggin";
|
||||
NSString *NSFontUnavailableException = @"FontUnavailable";
|
||||
NSString *NSIllegalSelectorException = @"IllegalSelector";
|
||||
NSString *NSImageCacheException = @"ImageCache";
|
||||
NSString *NSNibLoadingException = @"NibLoading";
|
||||
NSString *NSPPDIncludeNotFoundException = @"PPDIncludeNotFound";
|
||||
NSString *NSPPDIncludeStackOverflowException = @"PPDIncludeStackOverflow";
|
||||
NSString *NSPPDIncludeStackUnderflowException = @"PPDIncludeStackUnderflow";
|
||||
NSString *NSPPDParseException = @"PPDParse";
|
||||
NSString *NSPasteboardCommunicationException = @"PasteboardCommunication";
|
||||
NSString *NSPrintOperationExistsException = @"PrintOperationExists";
|
||||
NSString *NSPrintPackageException = @"PrintPackage";
|
||||
NSString *NSPrintingCommunicationException = @"PrintingCommunication";
|
||||
NSString *NSRTFPropertyStackOverflowException = @"RTFPropertyStackOverflow";
|
||||
NSString *NSTIFFException = @"TIFF";
|
||||
NSString *NSTextLineTooLongException = @"TextLineTooLong";
|
||||
NSString *NSTextNoSelectionException = @"TextNoSelection";
|
||||
NSString *NSTextReadException = @"TextRead";
|
||||
NSString *NSTextWriteException = @"TextWrite";
|
||||
NSString *NSTypedStreamVersionException = @"TypedStreamVersion";
|
||||
NSString *NSWindowServerCommunicationException = @"WindowServerCommunication";
|
||||
NSString *NSWordTablesReadException = @"WordTablesRead";
|
||||
NSString *NSWordTablesWriteException = @"WordTablesWrite";
|
||||
|
||||
// Application notifications
|
||||
NSString *NSApplicationDidBecomeActiveNotification;
|
||||
NSString *NSApplicationDidFinishLaunchingNotification;
|
||||
NSString *NSApplicationDidHideNotification;
|
||||
NSString *NSApplicationDidResignActiveNotification;
|
||||
NSString *NSApplicationDidUnhideNotification;
|
||||
NSString *NSApplicationDidUpdateNotification;
|
||||
NSString *NSApplicationWillBecomeActiveNotification;
|
||||
NSString *NSApplicationWillFinishLaunchingNotification;
|
||||
NSString *NSApplicationWillHideNotification;
|
||||
NSString *NSApplicationWillResignActiveNotification;
|
||||
NSString *NSApplicationWillUnhideNotification;
|
||||
NSString *NSApplicationWillUpdateNotification;
|
||||
NSString *NSApplicationDidBecomeActiveNotification
|
||||
= @"ApplicationDidBecomeActive";
|
||||
NSString *NSApplicationDidFinishLaunchingNotification
|
||||
= @"ApplicationDidFinishLaunching";
|
||||
NSString *NSApplicationDidHideNotification = @"ApplicationDidHide";
|
||||
NSString *NSApplicationDidResignActiveNotification
|
||||
= @"ApplicationDidResignActive";
|
||||
NSString *NSApplicationDidUnhideNotification = @"ApplicationDidUnhide";
|
||||
NSString *NSApplicationDidUpdateNotification = @"ApplicationDidUpdate";
|
||||
NSString *NSApplicationWillBecomeActiveNotification
|
||||
= @"ApplicationWillBecomeActive";
|
||||
NSString *NSApplicationWillFinishLaunchingNotification
|
||||
= @"ApplicationWillFinishLaunching";
|
||||
NSString *NSApplicationWillHideNotification = @"ApplicationWillHide";
|
||||
NSString *NSApplicationWillResignActiveNotification
|
||||
= @"ApplicationWillResignActive";
|
||||
NSString *NSApplicationWillUnhideNotification = @"ApplicationWillUnhide";
|
||||
NSString *NSApplicationWillUpdateNotification = @"ApplicationWillUpdate";
|
||||
|
||||
@implementation NSApplication
|
||||
|
||||
|
@ -164,13 +170,17 @@ NSString *NSApplicationWillUpdateNotification;
|
|||
|
||||
- (void)finishLaunching
|
||||
{
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
// notify that we will finish the launching
|
||||
[self applicationWillFinishLaunching:self];
|
||||
[nc postNotificationName: NSApplicationWillFinishLaunchingNotification
|
||||
object: self];
|
||||
|
||||
// finish the launching
|
||||
// finish the launching
|
||||
|
||||
// notify that the launching has finished
|
||||
[self applicationDidFinishLaunching:self];
|
||||
// notify that the launching has finished
|
||||
[nc postNotificationName: NSApplicationDidFinishLaunchingNotification
|
||||
object: self];
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
|
@ -352,6 +362,9 @@ NSString *NSApplicationWillUpdateNotification;
|
|||
|
||||
if (!theEvent) return NO;
|
||||
|
||||
// Don't check the null event
|
||||
if (theEvent == NullEvent) return NO;
|
||||
|
||||
t = [theEvent type];
|
||||
|
||||
if ((t == NSLeftMouseDown) && (mask & NSLeftMouseDownMask))
|
||||
|
@ -451,7 +464,9 @@ NSString *NSApplicationWillUpdateNotification;
|
|||
if ([self event: e matchMask: mask])
|
||||
{
|
||||
if (e)
|
||||
e = [event_queue dequeueObject];
|
||||
{
|
||||
[event_queue removeObject: e];
|
||||
}
|
||||
done = YES;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,13 +47,16 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
|
||||
+ (void)initialize
|
||||
{
|
||||
if (self == [NSMatrix class])
|
||||
{
|
||||
NSDebugLog(@"Initialize NSMatrix class\n");
|
||||
if (self == [NSMatrix class])
|
||||
{
|
||||
NSDebugLog(@"Initialize NSMatrix class\n");
|
||||
|
||||
// Set initial version
|
||||
[self setVersion: 1];
|
||||
}
|
||||
// Set initial version
|
||||
[self setVersion: 1];
|
||||
|
||||
// Set the default cell class
|
||||
NSMATRIX_DEFAULT_CELL_CLASS = [NSCell class];
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -74,51 +77,51 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
//
|
||||
- (void)createInitialMatrix
|
||||
{
|
||||
NSSize cs;
|
||||
int i, j;
|
||||
id aRow, aFloat;
|
||||
NSSize cs;
|
||||
int i, j;
|
||||
id aRow, aFloat;
|
||||
|
||||
// Determine cell width and height for uniform cell size
|
||||
cs.width = (frame.size.width - (inter_cell.width * (num_cols - 1)))
|
||||
/ num_cols;
|
||||
cs.height = (frame.size.height - (inter_cell.height * (num_rows - 1)))
|
||||
/ num_rows;
|
||||
// Determine cell width and height for uniform cell size
|
||||
cs.width = (frame.size.width - (inter_cell.width * (num_cols - 1)))
|
||||
/ num_cols;
|
||||
cs.height = (frame.size.height - (inter_cell.height * (num_rows - 1)))
|
||||
/ num_rows;
|
||||
|
||||
// Save cell widths and heights in arrays
|
||||
aFloat = [NSNumber numberWithFloat: cs.height];
|
||||
for (i = 0;i < num_rows; ++i)
|
||||
[row_heights addObject:aFloat];
|
||||
aFloat = [NSNumber numberWithFloat: cs.width];
|
||||
for (i = 0;i < num_cols; ++i)
|
||||
[col_widths addObject:aFloat];
|
||||
// Save cell widths and heights in arrays
|
||||
aFloat = [NSNumber numberWithFloat: cs.height];
|
||||
for (i = 0;i < num_rows; ++i)
|
||||
[row_heights addObject:aFloat];
|
||||
aFloat = [NSNumber numberWithFloat: cs.width];
|
||||
for (i = 0;i < num_cols; ++i)
|
||||
[col_widths addObject:aFloat];
|
||||
|
||||
for (i = 0;i < num_rows; ++i)
|
||||
for (i = 0;i < num_rows; ++i)
|
||||
{
|
||||
aRow = [NSMutableArray arrayWithCapacity: num_cols];
|
||||
[rows addObject: aRow];
|
||||
for (j = 0;j < num_cols; ++j)
|
||||
{
|
||||
aRow = [NSMutableArray arrayWithCapacity: num_cols];
|
||||
[rows addObject: aRow];
|
||||
for (j = 0;j < num_cols; ++j)
|
||||
{
|
||||
if (cell_prototype != nil)
|
||||
{
|
||||
[(NSMutableArray *)aRow addObject:
|
||||
[cell_prototype copy]];
|
||||
}
|
||||
else
|
||||
{
|
||||
[(NSMutableArray *)aRow addObject:
|
||||
[[cell_class alloc] init]];
|
||||
}
|
||||
}
|
||||
if (cell_prototype != nil)
|
||||
{
|
||||
[(NSMutableArray *)aRow addObject:
|
||||
[cell_prototype copy]];
|
||||
}
|
||||
else
|
||||
{
|
||||
[(NSMutableArray *)aRow addObject:
|
||||
[[cell_class alloc] init]];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(NSRect)frameRect
|
||||
{
|
||||
return [self initWithFrame:frameRect
|
||||
mode:NSTrackModeMatrix
|
||||
cellClass:[NSCell class]
|
||||
numberOfRows:0
|
||||
numberOfColumns:0];
|
||||
return [self initWithFrame: frameRect
|
||||
mode: NSTrackModeMatrix
|
||||
cellClass: NSMATRIX_DEFAULT_CELL_CLASS
|
||||
numberOfRows: 0
|
||||
numberOfColumns: 0];
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(NSRect)frameRect
|
||||
|
@ -127,48 +130,49 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
numberOfRows:(int)rowsHigh
|
||||
numberOfColumns:(int)colsWide
|
||||
{
|
||||
NSDebugLog(@"NSMatrix start -initWithFrame: ..cellClass:\n");
|
||||
NSDebugLog(@"NSMatrix start -initWithFrame: ..cellClass:\n");
|
||||
|
||||
[super initWithFrame:frameRect];
|
||||
[super initWithFrame:frameRect];
|
||||
|
||||
if (rowsHigh < 0)
|
||||
if (rowsHigh < 0)
|
||||
{
|
||||
NSLog(@"NSMatrix initWithFrame:mode: rows has to be >= 0.\n");
|
||||
NSLog(@"Will create matrix with 0 rows.\n");
|
||||
|
||||
num_rows = 0;
|
||||
NSLog(@"NSMatrix initWithFrame:mode: rows has to be >= 0.\n");
|
||||
NSLog(@"Will create matrix with 0 rows.\n");
|
||||
|
||||
num_rows = 0;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
num_rows = rowsHigh;
|
||||
num_rows = rowsHigh;
|
||||
}
|
||||
|
||||
if (colsWide < 0)
|
||||
{
|
||||
NSLog(@"NSMatrix initWithFrame:mode: columns has to be >= 0.\n");
|
||||
NSLog(@"Will create matrix with 0 columns.\n");
|
||||
|
||||
num_cols = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
num_cols = colsWide;
|
||||
}
|
||||
|
||||
if (colsWide < 0)
|
||||
{
|
||||
NSLog(@"NSMatrix initWithFrame:mode: columns has to be >= 0.\n");
|
||||
NSLog(@"Will create matrix with 0 columns.\n");
|
||||
|
||||
num_cols = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
num_cols = colsWide;
|
||||
}
|
||||
|
||||
rows = [[NSMutableArray alloc] init];
|
||||
row_heights = [[NSMutableArray alloc] init];
|
||||
col_widths = [[NSMutableArray alloc] init];
|
||||
selected_cells = [[NSMutableArray alloc] init];
|
||||
inter_cell.width = inter_cell.height = 2;
|
||||
rows = [[NSMutableArray alloc] init];
|
||||
row_heights = [[NSMutableArray alloc] init];
|
||||
col_widths = [[NSMutableArray alloc] init];
|
||||
selected_cells = [[NSMutableArray alloc] init];
|
||||
inter_cell.width = inter_cell.height = 2;
|
||||
allows_empty_selection = YES;
|
||||
|
||||
cell_prototype = nil;
|
||||
cell_class = classId;
|
||||
mode = aMode;
|
||||
cell_prototype = nil;
|
||||
cell_class = classId;
|
||||
mode = aMode;
|
||||
|
||||
[self createInitialMatrix];
|
||||
[self createInitialMatrix];
|
||||
|
||||
NSDebugLog(@"NSMatrix end -initWithFrame: ..cellClass:\n");
|
||||
return self;
|
||||
NSDebugLog(@"NSMatrix end -initWithFrame: ..cellClass:\n");
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(NSRect)frameRect
|
||||
|
@ -177,25 +181,25 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
numberOfRows:(int)rowsHigh
|
||||
numberOfColumns:(int)colsWide
|
||||
{
|
||||
[super initWithFrame:frameRect];
|
||||
[super initWithFrame:frameRect];
|
||||
|
||||
if (aCell == nil)
|
||||
if (aCell == nil)
|
||||
{
|
||||
NSLog(@"NSMatrix ");
|
||||
NSLog(@"initWithFrame:mode:prototype:numberOfRows:numberOfColumns: ");
|
||||
NSLog(@"prototype can't be nil. ");
|
||||
NSLog(@"Using NSCell as the default class.\n");
|
||||
NSLog(@"NSMatrix ");
|
||||
NSLog(@"initWithFrame:mode:prototype:numberOfRows:numberOfColumns: ");
|
||||
NSLog(@"prototype can't be nil. ");
|
||||
NSLog(@"Using NSCell as the default class.\n");
|
||||
|
||||
cell_prototype = nil;
|
||||
cell_prototype = nil;
|
||||
|
||||
cell_class = [NSCell class];
|
||||
cell_class = [NSCell class];
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
cell_prototype = [aCell retain];
|
||||
cell_prototype = [aCell retain];
|
||||
}
|
||||
|
||||
return self;
|
||||
return self;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -208,7 +212,7 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
|
||||
- (void)setMode:(NSMatrixMode)aMode
|
||||
{
|
||||
mode = aMode;
|
||||
mode = aMode;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -226,12 +230,12 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
|
||||
- (void)setAllowsEmptySelection:(BOOL)flag
|
||||
{
|
||||
allows_empty_selection = flag;
|
||||
allows_empty_selection = flag;
|
||||
}
|
||||
|
||||
- (void)setSelectionByRect:(BOOL)flag
|
||||
{
|
||||
selection_by_rect = flag;
|
||||
selection_by_rect = flag;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -249,12 +253,12 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
|
||||
- (void)setCellClass:(Class)classId
|
||||
{
|
||||
cell_class = classId;
|
||||
cell_class = classId;
|
||||
}
|
||||
|
||||
- (void)setPrototype:(NSCell *)aCell
|
||||
{
|
||||
cell_prototype = [aCell retain];
|
||||
cell_prototype = [aCell retain];
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -262,9 +266,9 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
//
|
||||
- (void)addColumn
|
||||
{
|
||||
int i;
|
||||
NSNumber *anInt;
|
||||
NSMutableArray *aRow;
|
||||
int i;
|
||||
NSNumber *anInt;
|
||||
NSMutableArray *aRow;
|
||||
|
||||
if (num_rows <= 0)
|
||||
{
|
||||
|
@ -299,7 +303,61 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
|
||||
- (void)addColumnWithCells:(NSArray *)cellArray
|
||||
{
|
||||
[self insertColumn:num_cols withCells:cellArray];
|
||||
NSMutableArray *a;
|
||||
id e, o;
|
||||
id re, aRow;
|
||||
int nrows, new_rows;
|
||||
NSNumber *aFloat;
|
||||
NSSize cs;
|
||||
int i;
|
||||
|
||||
NSDebugLog(@"NSMatrix addColumnWithCells:\n");
|
||||
|
||||
// No array then forget the add
|
||||
if (!cellArray)
|
||||
return;
|
||||
|
||||
// Add more rows if need be
|
||||
nrows = [cellArray count];
|
||||
if (nrows > num_rows)
|
||||
{
|
||||
NSDebugLog(@"NSMatrix add more rows %d %d\n", nrows, num_rows);
|
||||
new_rows = nrows - num_rows;
|
||||
for (i = 0; i < new_rows; ++i)
|
||||
{
|
||||
a = [[NSMutableArray alloc] init];
|
||||
[rows addObject: a];
|
||||
++num_rows;
|
||||
}
|
||||
}
|
||||
++num_cols;
|
||||
NSDebugLog(@"NSMatrix rows %d cols %d\n", num_rows, num_cols);
|
||||
|
||||
// Determine cell width and height for uniform cell size
|
||||
cs.width = (frame.size.width - (inter_cell.width * (num_cols - 1)))
|
||||
/ num_cols;
|
||||
cs.height = (frame.size.height - (inter_cell.height * (num_rows - 1)))
|
||||
/ num_rows;
|
||||
|
||||
// Save cell widths and heights in arrays
|
||||
aFloat = [NSNumber numberWithFloat: cs.height];
|
||||
for (i = 0;i < nrows; ++i)
|
||||
[row_heights addObject:aFloat];
|
||||
aFloat = [NSNumber numberWithFloat: cs.width];
|
||||
[col_widths addObject:aFloat];
|
||||
NSDebugLog(@"NSMatrix cell size %f %f\n", cs.width, cs.height);
|
||||
|
||||
e = [cellArray objectEnumerator];
|
||||
o = [e nextObject];
|
||||
re = [rows objectEnumerator];
|
||||
aRow = [re nextObject];
|
||||
while (o)
|
||||
{
|
||||
[aRow addObject: o];
|
||||
[o retain];
|
||||
o = [e nextObject];
|
||||
aRow = [re nextObject];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)addRow
|
||||
|
@ -346,7 +404,90 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
|
||||
- (void)addRowWithCells:(NSArray *)cellArray
|
||||
{
|
||||
[self insertRow:num_rows withCells:cellArray];
|
||||
NSMutableArray *a;
|
||||
id e, o;
|
||||
float ncols;
|
||||
NSNumber *aFloat;
|
||||
NSSize cs;
|
||||
int i;
|
||||
|
||||
NSDebugLog(@"NSMatrix addRowWithCells:\n");
|
||||
|
||||
// No array then forget the add
|
||||
if (!cellArray)
|
||||
return;
|
||||
|
||||
a = [[NSMutableArray alloc] init];
|
||||
[rows addObject: a];
|
||||
++num_rows;
|
||||
ncols = [cellArray count];
|
||||
|
||||
// Determine cell width and height for uniform cell size
|
||||
cs.width = (frame.size.width - (inter_cell.width * (ncols - 1)))
|
||||
/ ncols;
|
||||
cs.height = (frame.size.height - (inter_cell.height * (num_rows - 1)))
|
||||
/ num_rows;
|
||||
|
||||
// Save cell widths and heights in arrays
|
||||
aFloat = [NSNumber numberWithFloat: cs.height];
|
||||
[row_heights addObject:aFloat];
|
||||
aFloat = [NSNumber numberWithFloat: cs.width];
|
||||
for (i = 0;i < ncols; ++i)
|
||||
[col_widths addObject:aFloat];
|
||||
|
||||
e = [cellArray objectEnumerator];
|
||||
o = [e nextObject];
|
||||
while (o)
|
||||
{
|
||||
[a addObject: o];
|
||||
[o retain];
|
||||
o = [e nextObject];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)addRowWithCells:(NSArray *)cellArray
|
||||
rowSizes:(NSArray *)rowSizes
|
||||
columnSizes:(NSArray *)columnSizes
|
||||
{
|
||||
NSMutableArray *a;
|
||||
id e, o;
|
||||
float ncols;
|
||||
NSNumber *aFloat;
|
||||
NSSize cs;
|
||||
int i;
|
||||
|
||||
NSDebugLog(@"NSMatrix addRowWithCells:\n");
|
||||
|
||||
// No array then forget the insert
|
||||
if (!cellArray)
|
||||
return;
|
||||
|
||||
a = [[NSMutableArray alloc] init];
|
||||
[rows addObject: a];
|
||||
++num_rows;
|
||||
ncols = [cellArray count];
|
||||
|
||||
// Determine cell width and height for uniform cell size
|
||||
cs.width = (frame.size.width - (inter_cell.width * (ncols - 1)))
|
||||
/ ncols;
|
||||
cs.height = (frame.size.height - (inter_cell.height * (num_rows - 1)))
|
||||
/ num_rows;
|
||||
|
||||
// Save cell widths and heights in arrays
|
||||
aFloat = [NSNumber numberWithFloat: cs.height];
|
||||
[row_heights addObject:aFloat];
|
||||
aFloat = [NSNumber numberWithFloat: cs.width];
|
||||
for (i = 0;i < ncols; ++i)
|
||||
[col_widths addObject:aFloat];
|
||||
|
||||
e = [cellArray objectEnumerator];
|
||||
o = [e nextObject];
|
||||
while (o)
|
||||
{
|
||||
[a addObject: o];
|
||||
[o retain];
|
||||
o = [e nextObject];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSRect)cellFrameAtRow:(int)row
|
||||
|
@ -361,6 +502,7 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
r.size.width = 0;
|
||||
r.size.height = 0;
|
||||
|
||||
#if 0
|
||||
/* Validate arguments */
|
||||
if ((row >= num_rows) || (row < 0))
|
||||
{
|
||||
|
@ -371,6 +513,7 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
{
|
||||
return r;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Compute the x origin */
|
||||
for (i=0; i<column; i++)
|
||||
|
@ -383,14 +526,16 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
r.size.width = [(NSNumber *)[col_widths objectAtIndex:i] floatValue];
|
||||
|
||||
/* Compute the y origin */
|
||||
for (i=0; i<row; i++)
|
||||
r.origin.y = frame.size.height;
|
||||
r.origin.y -= [(NSNumber *)[row_heights objectAtIndex:0] floatValue];
|
||||
for (i = 1;i < (row+1); i++)
|
||||
{
|
||||
r.origin.y += [(NSNumber *)[row_heights objectAtIndex:i] floatValue];
|
||||
r.origin.y += inter_cell.height;
|
||||
r.origin.y -= inter_cell.height;
|
||||
r.origin.y -= [(NSNumber *)[row_heights objectAtIndex:i] floatValue];
|
||||
}
|
||||
|
||||
/* Get the height */
|
||||
r.size.height = [(NSNumber *)[row_heights objectAtIndex:i] floatValue];
|
||||
r.size.height = [(NSNumber *)[row_heights objectAtIndex:row] floatValue];
|
||||
|
||||
NSDebugLog(@"NSMatrix cellFrameAtRow: %d column:%d is: %f %f %f %f\n",
|
||||
row, column,
|
||||
|
@ -513,32 +658,24 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
|
||||
- (void)insertRow:(int)row withCells:(NSArray *)cellArray
|
||||
{
|
||||
NSCell *newCell;
|
||||
int i, count;
|
||||
NSCell *newCell;
|
||||
int i, count;
|
||||
id e, o;
|
||||
|
||||
[self insertRow:row];
|
||||
// No array then forget the insert
|
||||
if (!cellArray)
|
||||
return;
|
||||
|
||||
if (cellArray != nil)
|
||||
[self insertRow:row];
|
||||
|
||||
e = [cellArray objectEnumerator];
|
||||
o = [e nextObject];
|
||||
i = 0;
|
||||
while (o)
|
||||
{
|
||||
count = [cellArray count];
|
||||
}
|
||||
else
|
||||
{
|
||||
count = 0;
|
||||
}
|
||||
|
||||
for (i=0; i<num_cols; i++)
|
||||
{
|
||||
if (i < count)
|
||||
{
|
||||
newCell = (NSCell *)[cellArray objectAtIndex:i];
|
||||
|
||||
[self putCell:newCell atRow:row column:i];
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
[self putCell: o atRow: row column: i];
|
||||
o = [e nextObject];
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -697,66 +834,82 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
column:(int *)column
|
||||
forPoint:(NSPoint)aPoint
|
||||
{
|
||||
NSRect myFrame = [self bounds];
|
||||
NSRect cFrame;
|
||||
int i, j;
|
||||
NSRect myFrame = [self bounds];
|
||||
NSRect cFrame;
|
||||
id re, ce;
|
||||
id aRow, aCol;
|
||||
int i, j;
|
||||
|
||||
/* Trivial rejection if the point is not in the Matrix's frame rect */
|
||||
/* Trivial rejection if the point is not in the Matrix's frame rect */
|
||||
|
||||
if ((aPoint.x < myFrame.origin.x)
|
||||
|| (aPoint.x > (myFrame.origin.x + myFrame.size.width))
|
||||
|| (aPoint.y < myFrame.origin.y)
|
||||
|| (aPoint.y > (myFrame.origin.y + myFrame.size.height)))
|
||||
if (![self mouse: aPoint inRect: myFrame])
|
||||
{
|
||||
NSDebugLog(@"NSMatrix point %f %f not in rect %f %f %f %f\n",
|
||||
aPoint.x, aPoint.y, myFrame.origin.x, myFrame.origin.y,
|
||||
myFrame.size.width, myFrame.size.height);
|
||||
return NO;
|
||||
NSDebugLog(@"NSMatrix point %f %f not in rect %f %f %f %f\n",
|
||||
aPoint.x, aPoint.y, myFrame.origin.x, myFrame.origin.y,
|
||||
myFrame.size.width, myFrame.size.height);
|
||||
return NO;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Here an optimized algo could be used at the expense of clarity */
|
||||
|
||||
for (i=0; i<num_rows; i++)
|
||||
/* Here an optimized algo could be used at the expense of clarity */
|
||||
|
||||
re = [rows objectEnumerator];
|
||||
aRow = [re nextObject];
|
||||
i = 0;
|
||||
while (aRow)
|
||||
{
|
||||
ce = [aRow objectEnumerator];
|
||||
aCol = [ce nextObject];
|
||||
j = 0;
|
||||
while (aCol)
|
||||
{
|
||||
for (j=0; j<num_cols; j++)
|
||||
{
|
||||
cFrame = [self cellFrameAtRow:i column:j];
|
||||
cFrame = [self cellFrameAtRow:i column:j];
|
||||
|
||||
if ((aPoint.x >= cFrame.origin.x)
|
||||
&& (aPoint.x <= (cFrame.origin.x + cFrame.size.width))
|
||||
&& (aPoint.y >= cFrame.origin.y)
|
||||
&& (aPoint.y <= (cFrame.origin.y + cFrame.size.height)))
|
||||
{
|
||||
*row = i;
|
||||
*column = j;
|
||||
return YES;
|
||||
}
|
||||
if ([self mouse: aPoint inRect: cFrame])
|
||||
{
|
||||
*row = i;
|
||||
*column = j;
|
||||
return YES;
|
||||
}
|
||||
aCol = [ce nextObject];
|
||||
++j;
|
||||
}
|
||||
return NO;
|
||||
aRow = [re nextObject];
|
||||
++i;
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (BOOL)getRow:(int *)row
|
||||
column:(int *)column
|
||||
ofCell:(NSCell *)aCell
|
||||
{
|
||||
int i, j;
|
||||
id re, ce;
|
||||
id aRow, aCol;
|
||||
int i, j;
|
||||
|
||||
for (i=0; i<num_rows; i++)
|
||||
re = [rows objectEnumerator];
|
||||
aRow = [re nextObject];
|
||||
i = 0;
|
||||
while (aRow)
|
||||
{
|
||||
for (j=0; j<num_cols; j++)
|
||||
ce = [aRow objectEnumerator];
|
||||
aCol = [ce nextObject];
|
||||
j = 0;
|
||||
while (aCol)
|
||||
{
|
||||
if ((NSCell *)[self cellAtRow:i column:j] == aCell)
|
||||
if ((NSCell *)[self cellAtRow:i column:j] == aCell)
|
||||
{
|
||||
*row = i;
|
||||
*column = j;
|
||||
return YES;
|
||||
*row = i;
|
||||
*column = j;
|
||||
return YES;
|
||||
}
|
||||
aCol = [ce nextObject];
|
||||
++j;
|
||||
}
|
||||
aRow = [re nextObject];
|
||||
++i;
|
||||
}
|
||||
return NO;
|
||||
return NO;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -785,12 +938,19 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
//
|
||||
- (void)deselectAllCells
|
||||
{
|
||||
if (allows_empty_selection)
|
||||
[selected_cells removeAllObjects];
|
||||
}
|
||||
|
||||
- (void)deselectSelectedCell
|
||||
{
|
||||
[selected_cells removeLastObject];
|
||||
int cnt = [selected_cells count];
|
||||
|
||||
// Is anything even selected?
|
||||
if (cnt > 0)
|
||||
// Only empty array if empty selection is allowed
|
||||
if ((cnt != 1) || (allows_empty_selection))
|
||||
[selected_cells removeLastObject];
|
||||
}
|
||||
|
||||
- (void)selectAll:(id)sender
|
||||
|
@ -802,17 +962,17 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
- (void)selectCellAtRow:(int)row
|
||||
column:(int)column
|
||||
{
|
||||
int index;
|
||||
id aCell = [self cellAtRow:row column:column];
|
||||
int index;
|
||||
id aCell = [self cellAtRow:row column:column];
|
||||
|
||||
NSDebugLog(@"NSMatrix select cell at %d %d\n", row, column);
|
||||
if (aCell != nil)
|
||||
NSDebugLog(@"NSMatrix select cell at %d %d\n", row, column);
|
||||
if (aCell != nil)
|
||||
{
|
||||
index = [selected_cells indexOfObject:aCell];
|
||||
|
||||
if ((index < 0) || (index > [selected_cells count]))
|
||||
// Add to selected cell list if not already
|
||||
index = [selected_cells indexOfObject:aCell];
|
||||
if ((index < 0) || (index > [selected_cells count]))
|
||||
{
|
||||
[selected_cells addObject:aCell];
|
||||
[selected_cells addObject:aCell];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -838,7 +998,7 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
|
||||
- (id)selectedCell
|
||||
{
|
||||
return [selected_cells lastObject];
|
||||
return [selected_cells lastObject];
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -851,66 +1011,42 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
|
||||
- (int)selectedColumn
|
||||
{
|
||||
int row, col;
|
||||
NSMutableArray *aRow, *aCol;
|
||||
id aCell;
|
||||
|
||||
if ([selected_cells count]) {
|
||||
int row, col;
|
||||
id aCell;
|
||||
|
||||
aCell = [selected_cells lastObject];
|
||||
|
||||
for (row=0; row<num_rows; row++)
|
||||
{
|
||||
aRow = [rows objectAtIndex:row];
|
||||
if ([selected_cells count])
|
||||
{
|
||||
aCell = [selected_cells lastObject];
|
||||
|
||||
for (col=0; col<num_cols; col++)
|
||||
{
|
||||
aCol = [aRow objectAtIndex:col];
|
||||
|
||||
if ([aCol indexOfObject:aCell] < num_cols)
|
||||
{
|
||||
return col;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ([self getRow: &row column: &col ofCell: aCell])
|
||||
return col;
|
||||
}
|
||||
|
||||
return -1; /* not found */
|
||||
// Not found
|
||||
return -1;
|
||||
}
|
||||
|
||||
- (int)selectedRow
|
||||
{
|
||||
int row, col;
|
||||
NSMutableArray *aRow, *aCol;
|
||||
id aCell;
|
||||
|
||||
if ([selected_cells count] > 0)
|
||||
{
|
||||
aCell = [selected_cells lastObject];
|
||||
|
||||
for (row=0; row<num_rows; row++)
|
||||
{
|
||||
aRow = [rows objectAtIndex:row];
|
||||
int row, col;
|
||||
id aCell;
|
||||
|
||||
for (col=0; col<num_cols; col++)
|
||||
{
|
||||
aCol = [aRow objectAtIndex:col];
|
||||
|
||||
if ([aCol indexOfObject:aCell] < num_cols)
|
||||
{
|
||||
return row;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ([selected_cells count])
|
||||
{
|
||||
aCell = [selected_cells lastObject];
|
||||
|
||||
if ([self getRow: &row column: &col ofCell: aCell])
|
||||
return row;
|
||||
}
|
||||
|
||||
return -1; /* not found */
|
||||
// Not found
|
||||
return -1;
|
||||
}
|
||||
|
||||
- (void)setSelectionFrom:(int)startPos
|
||||
to:(int)endPos
|
||||
anchor:(int)anchorPos
|
||||
highlight:(BOOL)flag
|
||||
highlight:(BOOL)flag
|
||||
{}
|
||||
|
||||
//
|
||||
|
@ -919,42 +1055,46 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
- (id)cellAtRow:(int)row
|
||||
column:(int)column
|
||||
{
|
||||
if ((row >= num_rows) || (row < 0))
|
||||
id aRow;
|
||||
|
||||
if ((row >= num_rows) || (row < 0))
|
||||
{
|
||||
NSLog(@"NSMatrix cellAt:: invalid row (%d)\n", row);
|
||||
return nil;
|
||||
NSLog(@"NSMatrix cellAt:: invalid row (%d)\n", row);
|
||||
return nil;
|
||||
}
|
||||
aRow = [rows objectAtIndex: row];
|
||||
|
||||
if ((column >= [aRow count]) || (column < 0))
|
||||
{
|
||||
NSLog(@"NSMatrix cellAt:: invalid column (%d)\n", column);
|
||||
return nil;
|
||||
}
|
||||
|
||||
if ((column >= num_cols) || (column < 0))
|
||||
{
|
||||
NSLog(@"NSMatrix cellAt:: invalid column (%d)\n", column);
|
||||
return nil;
|
||||
}
|
||||
|
||||
return [(NSArray *)[rows objectAtIndex:row] objectAtIndex:column];
|
||||
return [(NSArray *)aRow objectAtIndex:column];
|
||||
}
|
||||
|
||||
- (id)cellWithTag:(int)anInt
|
||||
{
|
||||
int i, j;
|
||||
NSMutableArray *aRow;
|
||||
NSCell *aCell;
|
||||
|
||||
for (i=0; i<num_rows; i++)
|
||||
{
|
||||
aRow = (NSMutableArray *)[rows objectAtIndex:i];
|
||||
id re, ce;
|
||||
int i, j;
|
||||
NSMutableArray *aRow;
|
||||
NSCell *aCell;
|
||||
|
||||
for (j=0; j<num_cols; j++)
|
||||
// Loop through the rows and columns and find the cell
|
||||
re = [rows objectEnumerator];
|
||||
aRow = [re nextObject];
|
||||
while (aRow)
|
||||
{
|
||||
ce = [aRow objectEnumerator];
|
||||
aCell = (NSCell *)[ce nextObject];
|
||||
while (aCell)
|
||||
{
|
||||
aCell = [aRow objectAtIndex:j];
|
||||
|
||||
if ([aCell tag] == anInt)
|
||||
{
|
||||
return (id)aCell;
|
||||
}
|
||||
if ([aCell tag] == anInt)
|
||||
return aCell;
|
||||
aCell = (NSCell *)[ce nextObject];
|
||||
}
|
||||
}
|
||||
return nil;
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSArray *)cells
|
||||
|
@ -1171,54 +1311,60 @@ Class NSMATRIX_DEFAULT_CELL_CLASS;
|
|||
//
|
||||
- (void)display;
|
||||
{
|
||||
int row,col;
|
||||
int rcnt, ccnt;
|
||||
NSMutableArray *aRow;
|
||||
id re, ce;
|
||||
int row, col;
|
||||
NSMutableArray *aRow;
|
||||
id aCol;
|
||||
|
||||
NSDebugLog(@"NSMatrix display\n");
|
||||
|
||||
rcnt = [rows count];
|
||||
if (rcnt != num_rows)
|
||||
NSLog(@"NSMatrix internal error: num_rows != actual rows\n");
|
||||
NSDebugLog(@"NSMatrix display %f %f %f %f\n", bounds.origin.x,
|
||||
bounds.origin.y, bounds.size.width, bounds.size.height);
|
||||
|
||||
for (row=0; row<rcnt; row++)
|
||||
re = [rows objectEnumerator];
|
||||
aRow = (NSMutableArray *)[re nextObject];
|
||||
row = 0;
|
||||
while (aRow)
|
||||
{
|
||||
aRow = [rows objectAtIndex:row];
|
||||
ccnt = [aRow count];
|
||||
if (ccnt != num_cols)
|
||||
NSLog(@"NSMatrix internal error: num_cols != actual columns\n");
|
||||
|
||||
for (col=0; col<ccnt; col++)
|
||||
ce = [aRow objectEnumerator];
|
||||
aCol = [ce nextObject];
|
||||
col = 0;
|
||||
while (aCol)
|
||||
{
|
||||
[self drawCellAtRow: row column: col];
|
||||
[self drawCellAtRow: row column: col];
|
||||
++col;
|
||||
aCol = [ce nextObject];
|
||||
}
|
||||
++row;
|
||||
aRow = [re nextObject];
|
||||
}
|
||||
NSDebugLog(@"End NSMatrix display\n");
|
||||
NSDebugLog(@"End NSMatrix display\n");
|
||||
}
|
||||
|
||||
- (void)drawCellAtRow:(int)row
|
||||
column:(int)column
|
||||
{
|
||||
NSMutableArray *aRow = [rows objectAtIndex: row];
|
||||
NSMutableArray *aRow = [rows objectAtIndex: row];
|
||||
NSCell *aCell = [aRow objectAtIndex: column];
|
||||
|
||||
[[aRow objectAtIndex:column] drawWithFrame:
|
||||
[self cellFrameAtRow:row column:column]
|
||||
inView:self];
|
||||
NSDebugLog(@"NSMatrix draw cell %d %d %d %d\n", row, column, [rows count],
|
||||
[aRow count]);
|
||||
[aCell drawWithFrame:
|
||||
[self cellFrameAtRow:row column:column]
|
||||
inView:self];
|
||||
}
|
||||
|
||||
- (void)highlightCell:(BOOL)flag
|
||||
atRow:(int)row
|
||||
column:(int)column
|
||||
{
|
||||
NSCell *aCell = [self cellAtRow:row column:column];
|
||||
NSRect cellFrame;
|
||||
NSCell *aCell = [self cellAtRow:row column:column];
|
||||
NSRect cellFrame;
|
||||
BOOL did_lock = NO;
|
||||
|
||||
if (aCell != nil)
|
||||
if (aCell != nil)
|
||||
{
|
||||
cellFrame = [self cellFrameAtRow:row column:column];
|
||||
[aCell highlight:flag withFrame:cellFrame inView:self];
|
||||
cellFrame = [self cellFrameAtRow:row column:column];
|
||||
[aCell highlight:flag withFrame:cellFrame inView:self];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <gnustep/gui/NSMenuPrivate.h>
|
||||
#include <Foundation/NSLock.h>
|
||||
#include <gnustep/base/NSCoder.h>
|
||||
#include <gnustep/gui/NSApplication.h>
|
||||
|
||||
NSZone *gnustep_gui_nsmenu_zone = NULL;
|
||||
|
||||
|
@ -76,6 +77,8 @@ NSZone *gnustep_gui_nsmenu_zone = NULL;
|
|||
// Default initializer
|
||||
- (id)initWithTitle:(NSString *)aTitle
|
||||
{
|
||||
NSApplication *theApp = [NSApplication sharedApplication];
|
||||
|
||||
// Init our superclass but skip any of its backend implementation
|
||||
[super cleanInit];
|
||||
|
||||
|
@ -83,9 +86,16 @@ NSZone *gnustep_gui_nsmenu_zone = NULL;
|
|||
menu_items = [NSMutableArray array];
|
||||
super_menu = nil;
|
||||
autoenables_items = NO;
|
||||
menu_matrix = nil;
|
||||
// [self setContentView:[[NSView alloc] initWithFrame:frame]];
|
||||
menu_matrix = [[NSMatrix alloc] initWithFrame: NSZeroRect];
|
||||
[menu_matrix setCellClass: [NSMenuCell class]];
|
||||
[menu_matrix setIntercellSpacing: NSZeroSize];
|
||||
[self setContentView: menu_matrix];
|
||||
is_torn_off = NO;
|
||||
|
||||
// Register ourselves with the Application object
|
||||
[theApp addWindowsItem:self title:window_title filename:NO];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
|
|
|
@ -39,20 +39,20 @@
|
|||
#include <gnustep/base/NSCoder.h>
|
||||
|
||||
// NSWindow notifications
|
||||
NSString *NSWindowDidBecomeKeyNotification;
|
||||
NSString *NSWindowDidBecomeMainNotification;
|
||||
NSString *NSWindowDidChangeScreenNotification;
|
||||
NSString *NSWindowDidDeminiaturizeNotification;
|
||||
NSString *NSWindowDidExposeNotification;
|
||||
NSString *NSWindowDidMiniaturizeNotification;
|
||||
NSString *NSWindowDidMoveNotification;
|
||||
NSString *NSWindowDidResignKeyNotification;
|
||||
NSString *NSWindowDidResignMainNotification;
|
||||
NSString *NSWindowDidResizeNotification;
|
||||
NSString *NSWindowDidUpdateNotification;
|
||||
NSString *NSWindowWillCloseNotification;
|
||||
NSString *NSWindowWillMiniaturizeNotification;
|
||||
NSString *NSWindowWillMoveNotification;
|
||||
NSString *NSWindowDidBecomeKeyNotification = @"WindowDidBecomeKey";
|
||||
NSString *NSWindowDidBecomeMainNotification = @"WindowDidBecomeMain";
|
||||
NSString *NSWindowDidChangeScreenNotification = @"WindowDidChangeScreen";
|
||||
NSString *NSWindowDidDeminiaturizeNotification = @"WindowDidDeminiaturize";
|
||||
NSString *NSWindowDidExposeNotification = @"WindowDidExpose";
|
||||
NSString *NSWindowDidMiniaturizeNotification = @"WindowDidMiniaturize";
|
||||
NSString *NSWindowDidMoveNotification = @"WindowDidMove";
|
||||
NSString *NSWindowDidResignKeyNotification = @"WindowDidResignKey";
|
||||
NSString *NSWindowDidResignMainNotification = @"WindowDidResignMain";
|
||||
NSString *NSWindowDidResizeNotification = @"WindowDidResize";
|
||||
NSString *NSWindowDidUpdateNotification = @"WindowDidUpdate";
|
||||
NSString *NSWindowWillCloseNotification = @"WindowWillClose";
|
||||
NSString *NSWindowWillMiniaturizeNotification = @"WindowWillMiniaturize";
|
||||
NSString *NSWindowWillMoveNotification = @"WindowWillMove";
|
||||
|
||||
//
|
||||
// NSWindow implementation
|
||||
|
@ -82,15 +82,13 @@ NSString *NSWindowWillMoveNotification;
|
|||
+ (NSRect)contentRectForFrameRect:(NSRect)aRect
|
||||
styleMask:(unsigned int)aStyle
|
||||
{
|
||||
NSRect t;
|
||||
return t;
|
||||
return aRect;
|
||||
}
|
||||
|
||||
+ (NSRect)frameRectForContentRect:(NSRect)aRect
|
||||
styleMask:(unsigned int)aStyle
|
||||
{
|
||||
NSRect t;
|
||||
return t;
|
||||
return aRect;
|
||||
}
|
||||
|
||||
+ (NSRect)minFrameWidthWithTitle:(NSString *)aTitle
|
||||
|
@ -103,7 +101,7 @@ NSString *NSWindowWillMoveNotification;
|
|||
// Screens and window depths
|
||||
+ (NSWindowDepth)defaultDepthLimit
|
||||
{
|
||||
return 0;
|
||||
return 8;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -159,39 +157,30 @@ NSString *NSWindowWillMoveNotification;
|
|||
screen:aScreen
|
||||
{
|
||||
NSApplication *theApp = [NSApplication sharedApplication];
|
||||
NSRect r = [[NSScreen mainScreen] frame];
|
||||
|
||||
NSDebugLog(@"NSWindow default initializer\n");
|
||||
if (!theApp)
|
||||
NSLog(@"No application!\n");
|
||||
|
||||
[super init];
|
||||
|
||||
NSDebugLog(@"NSWindow start of init\n");
|
||||
|
||||
frame = contentRect;
|
||||
// Initialize attributes and flags
|
||||
[self cleanInit];
|
||||
|
||||
backing_type = bufferingType;
|
||||
style_mask = aStyle;
|
||||
|
||||
// Size attributes
|
||||
frame = [NSWindow frameRectForContentRect: contentRect styleMask: aStyle];
|
||||
minimum_size = NSZeroSize;
|
||||
maximum_size = r.size;
|
||||
|
||||
// Next responder is the application
|
||||
[self setNextResponder:theApp];
|
||||
|
||||
// Initialize attributes and flags
|
||||
frame_view = nil;
|
||||
// Create our content view
|
||||
[self setContentView:[[NSView alloc] initWithFrame:frame]];
|
||||
first_responder = nil;
|
||||
delegate = nil;
|
||||
window_num = 0;
|
||||
background_color = [NSColor lightGrayColor];
|
||||
represented_filename = @"Window";
|
||||
miniaturized_title = @"Window";
|
||||
window_title = @"Window";
|
||||
visible = NO;
|
||||
is_key = NO;
|
||||
is_main = NO;
|
||||
is_edited = NO;
|
||||
is_miniaturized = NO;
|
||||
menu_exclude = NO;
|
||||
backing_type = bufferingType;
|
||||
disable_flush_window = NO;
|
||||
|
||||
// Register ourselves with the Application object
|
||||
[theApp addWindowsItem:self title:window_title filename:NO];
|
||||
|
@ -294,7 +283,7 @@ NSString *NSWindowWillMoveNotification;
|
|||
|
||||
- (BOOL)isOneShot
|
||||
{
|
||||
return NO;
|
||||
return is_one_shot;
|
||||
}
|
||||
|
||||
- (void)setBackingType:(NSBackingStoreType)type
|
||||
|
@ -303,7 +292,9 @@ NSString *NSWindowWillMoveNotification;
|
|||
}
|
||||
|
||||
- (void)setOneShot:(BOOL)flag
|
||||
{}
|
||||
{
|
||||
is_one_shot = flag;
|
||||
}
|
||||
|
||||
- (int)windowNumber
|
||||
{
|
||||
|
@ -320,7 +311,7 @@ NSString *NSWindowWillMoveNotification;
|
|||
//
|
||||
- (NSImage *)miniwindowImage
|
||||
{
|
||||
return nil;
|
||||
return miniaturized_image;
|
||||
}
|
||||
|
||||
- (NSString *)miniwindowTitle
|
||||
|
@ -329,7 +320,9 @@ NSString *NSWindowWillMoveNotification;
|
|||
}
|
||||
|
||||
- (void)setMiniwindowImage:(NSImage *)image
|
||||
{}
|
||||
{
|
||||
miniaturized_image = image;
|
||||
}
|
||||
|
||||
- (void)setMiniwindowTitle:(NSString *)title;
|
||||
{
|
||||
|
@ -353,20 +346,24 @@ NSString *NSWindowWillMoveNotification;
|
|||
//
|
||||
- (void)becomeKeyWindow
|
||||
{
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
// We are the key window
|
||||
is_key = YES;
|
||||
|
||||
// Post notification
|
||||
[self windowDidBecomeKey:self];
|
||||
[nc postNotificationName: NSWindowDidBecomeKeyNotification object: self];
|
||||
}
|
||||
|
||||
- (void)becomeMainWindow
|
||||
{
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
// We are the main window
|
||||
is_main = YES;
|
||||
|
||||
// Post notification
|
||||
[self windowDidBecomeMain:self];
|
||||
[nc postNotificationName: NSWindowDidBecomeMainNotification object: self];
|
||||
}
|
||||
|
||||
- (BOOL)canBecomeKeyWindow
|
||||
|
@ -381,7 +378,7 @@ NSString *NSWindowWillMoveNotification;
|
|||
|
||||
- (BOOL)hidesOnDeactivate
|
||||
{
|
||||
return NO;
|
||||
return hides_on_deactivate;
|
||||
}
|
||||
|
||||
- (BOOL)isKeyWindow
|
||||
|
@ -406,7 +403,7 @@ NSString *NSWindowWillMoveNotification;
|
|||
|
||||
- (int)level
|
||||
{
|
||||
return 0;
|
||||
return window_level;
|
||||
}
|
||||
|
||||
- (void)makeKeyAndOrderFront:sender
|
||||
|
@ -472,25 +469,33 @@ NSString *NSWindowWillMoveNotification;
|
|||
|
||||
- (void)resignKeyWindow
|
||||
{
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
is_key = NO;
|
||||
|
||||
// Post notification
|
||||
[self windowDidResignKey: self];
|
||||
[nc postNotificationName: NSWindowDidResignKeyNotification object: self];
|
||||
}
|
||||
|
||||
- (void)resignMainWindow
|
||||
{
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
is_main = NO;
|
||||
|
||||
// Post notification
|
||||
[self windowDidResignMain: self];
|
||||
[nc postNotificationName: NSWindowDidResignMainNotification object: self];
|
||||
}
|
||||
|
||||
- (void)setHidesOnDeactivate:(BOOL)flag
|
||||
{}
|
||||
{
|
||||
hides_on_deactivate = flag;
|
||||
}
|
||||
|
||||
- (void)setLevel:(int)newLevel
|
||||
{}
|
||||
{
|
||||
window_level = newLevel;
|
||||
}
|
||||
|
||||
//
|
||||
// Moving and resizing the window
|
||||
|
@ -527,12 +532,12 @@ NSString *NSWindowWillMoveNotification;
|
|||
|
||||
- (NSSize)minSize
|
||||
{
|
||||
return NSZeroSize;
|
||||
return minimum_size;
|
||||
}
|
||||
|
||||
- (NSSize)maxSize
|
||||
{
|
||||
return NSZeroSize;
|
||||
return maximum_size;
|
||||
}
|
||||
|
||||
- (void)setContentSize:(NSSize)aSize
|
||||
|
@ -542,23 +547,35 @@ NSString *NSWindowWillMoveNotification;
|
|||
- (void)setFrame:(NSRect)frameRect
|
||||
display:(BOOL)flag
|
||||
{
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
frame = frameRect;
|
||||
|
||||
// post notification
|
||||
[nc postNotificationName: NSWindowDidResizeNotification object: self];
|
||||
|
||||
// display if requested
|
||||
if (!flag) return;
|
||||
[self display];
|
||||
}
|
||||
|
||||
- (void)setFrameOrigin:(NSPoint)aPoint
|
||||
{}
|
||||
{
|
||||
frame.origin = aPoint;
|
||||
}
|
||||
|
||||
- (void)setFrameTopLeftPoint:(NSPoint)aPoint
|
||||
{}
|
||||
|
||||
- (void)setMinSize:(NSSize)aSize
|
||||
{}
|
||||
{
|
||||
minimum_size = aSize;
|
||||
}
|
||||
|
||||
- (void)setMaxSize:(NSSize)aSize
|
||||
{}
|
||||
{
|
||||
maximum_size = aSize;
|
||||
}
|
||||
|
||||
//
|
||||
// Converting coordinates
|
||||
|
@ -592,7 +609,10 @@ NSString *NSWindowWillMoveNotification;
|
|||
}
|
||||
|
||||
- (void)displayIfNeeded
|
||||
{}
|
||||
{
|
||||
if (needs_display)
|
||||
[self display];
|
||||
}
|
||||
|
||||
- (void)enableFlushWindow
|
||||
{
|
||||
|
@ -603,39 +623,56 @@ NSString *NSWindowWillMoveNotification;
|
|||
{}
|
||||
|
||||
- (void)flushWindowIfNeeded
|
||||
{}
|
||||
{
|
||||
if (!disable_flush_window)
|
||||
[self flushWindow];
|
||||
}
|
||||
|
||||
- (BOOL)isAutodisplay
|
||||
{
|
||||
return YES;
|
||||
return is_autodisplay;
|
||||
}
|
||||
|
||||
- (BOOL)isFlushWindowDisabled
|
||||
{
|
||||
return NO;
|
||||
return disable_flush_window;
|
||||
}
|
||||
|
||||
- (void)setAutoDisplay:(BOOL)flag
|
||||
{}
|
||||
{
|
||||
is_autodisplay = flag;
|
||||
}
|
||||
|
||||
- (void)setViewsNeedDisplay:(BOOL)flag
|
||||
{}
|
||||
{
|
||||
views_need_display = flag;
|
||||
}
|
||||
|
||||
- (void)update
|
||||
{}
|
||||
{
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
[nc postNotificationName: NSWindowDidUpdateNotification object: self];
|
||||
}
|
||||
|
||||
- (void)useOptimizedDrawing:(BOOL)flag
|
||||
{}
|
||||
{
|
||||
optimize_drawing = flag;
|
||||
}
|
||||
|
||||
- (BOOL)viewsNeedDisplay
|
||||
{
|
||||
return NO;
|
||||
return views_need_display;
|
||||
}
|
||||
|
||||
// Screens and window depths
|
||||
- (BOOL)canStoreColor
|
||||
{
|
||||
return YES;
|
||||
// If the depth is greater than a single bit
|
||||
if (depth_limit > 1)
|
||||
return YES;
|
||||
else
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSScreen *)deepestScreen
|
||||
|
@ -645,12 +682,12 @@ NSString *NSWindowWillMoveNotification;
|
|||
|
||||
- (NSWindowDepth)depthLimit
|
||||
{
|
||||
return 0;
|
||||
return depth_limit;
|
||||
}
|
||||
|
||||
- (BOOL)hasDynamicDepthLimit
|
||||
{
|
||||
return YES;
|
||||
return dynamic_depth_limit;
|
||||
}
|
||||
|
||||
- (NSScreen *)screen
|
||||
|
@ -659,27 +696,35 @@ NSString *NSWindowWillMoveNotification;
|
|||
}
|
||||
|
||||
- (void)setDepthLimit:(NSWindowDepth)limit
|
||||
{}
|
||||
{
|
||||
depth_limit = limit;
|
||||
}
|
||||
|
||||
- (void)setDynamicDepthLimit:(BOOL)flag
|
||||
{}
|
||||
{
|
||||
dynamic_depth_limit = flag;
|
||||
}
|
||||
|
||||
//
|
||||
// Cursor management
|
||||
//
|
||||
- (BOOL)areCursorRectsEnabled
|
||||
{
|
||||
return NO;
|
||||
return cursor_rects_enabled;
|
||||
}
|
||||
|
||||
- (void)disableCursorRects
|
||||
{}
|
||||
{
|
||||
cursor_rects_enabled = NO;
|
||||
}
|
||||
|
||||
- (void)discardCursorRects
|
||||
{}
|
||||
|
||||
- (void)enableCursorRects
|
||||
{}
|
||||
{
|
||||
cursor_rects_enabled = YES;
|
||||
}
|
||||
|
||||
- (void)invalidateCursorRectsForView:(NSView *)aView
|
||||
{}
|
||||
|
@ -692,20 +737,24 @@ NSString *NSWindowWillMoveNotification;
|
|||
//
|
||||
- (void)close
|
||||
{
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
// Notify our delegate
|
||||
[self windowWillClose:self];
|
||||
[nc postNotificationName: NSWindowWillCloseNotification object: self];
|
||||
|
||||
[self performClose:self];
|
||||
}
|
||||
|
||||
- (void)deminiaturize:sender
|
||||
{
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
// Set our flag to say we are not miniaturized
|
||||
is_miniaturized = NO;
|
||||
visible = YES;
|
||||
|
||||
// Notify our delegate
|
||||
[self windowDidDeminiaturize:self];
|
||||
[nc postNotificationName: NSWindowDidDeminiaturizeNotification object: self];
|
||||
}
|
||||
|
||||
- (BOOL)isDocumentEdited
|
||||
|
@ -715,18 +764,20 @@ NSString *NSWindowWillMoveNotification;
|
|||
|
||||
- (BOOL)isReleasedWhenClosed
|
||||
{
|
||||
return YES;
|
||||
return is_released_when_closed;
|
||||
}
|
||||
|
||||
- (void)miniaturize:sender
|
||||
{
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
// Notify our delegate
|
||||
[self windowWillMiniaturize:self];
|
||||
[nc postNotificationName: NSWindowWillMiniaturizeNotification object: self];
|
||||
|
||||
[self performMiniaturize:self];
|
||||
|
||||
// Notify our delegate
|
||||
[self windowDidMiniaturize:self];
|
||||
[nc postNotificationName: NSWindowDidMiniaturizeNotification object: self];
|
||||
}
|
||||
|
||||
- (void)performClose:sender
|
||||
|
@ -746,17 +797,21 @@ NSString *NSWindowWillMoveNotification;
|
|||
}
|
||||
|
||||
- (void)setDocumentEdited:(BOOL)flag
|
||||
{}
|
||||
{
|
||||
is_edited = flag;
|
||||
}
|
||||
|
||||
- (void)setReleasedWhenClosed:(BOOL)flag
|
||||
{}
|
||||
{
|
||||
is_released_when_closed = flag;
|
||||
}
|
||||
|
||||
//
|
||||
// Aiding event handling
|
||||
//
|
||||
- (BOOL)acceptsMouseMovedEvents
|
||||
{
|
||||
return YES;
|
||||
return accepts_mouse_moved;
|
||||
}
|
||||
|
||||
- (NSEvent *)currentEvent
|
||||
|
@ -768,7 +823,11 @@ NSString *NSWindowWillMoveNotification;
|
|||
|
||||
- (void)discardEventsMatchingMask:(unsigned int)mask
|
||||
beforeEvent:(NSEvent *)lastEvent
|
||||
{}
|
||||
{
|
||||
NSApplication *theApp = [NSApplication sharedApplication];
|
||||
|
||||
[theApp discardEventsMatchingMask: mask beforeEvent: lastEvent];
|
||||
}
|
||||
|
||||
- (NSResponder *)firstResponder
|
||||
{
|
||||
|
@ -821,7 +880,9 @@ NSString *NSWindowWillMoveNotification;
|
|||
|
||||
- (NSEvent *)nextEventMatchingMask:(unsigned int)mask
|
||||
{
|
||||
return nil;
|
||||
NSApplication *theApp = [NSApplication sharedApplication];
|
||||
return [theApp nextEventMatchingMask: mask untilDate: nil
|
||||
inMode: @"" dequeue: YES];
|
||||
}
|
||||
|
||||
- (NSEvent *)nextEventMatchingMask:(unsigned int)mask
|
||||
|
@ -829,7 +890,9 @@ NSString *NSWindowWillMoveNotification;
|
|||
inMode:(NSString *)mode
|
||||
dequeue:(BOOL)deqFlag
|
||||
{
|
||||
return nil;
|
||||
NSApplication *theApp = [NSApplication sharedApplication];
|
||||
return [theApp nextEventMatchingMask: mask untilDate: expiration
|
||||
inMode: mode dequeue: deqFlag];
|
||||
}
|
||||
|
||||
- (void)postEvent:(NSEvent *)event
|
||||
|
@ -841,7 +904,9 @@ NSString *NSWindowWillMoveNotification;
|
|||
}
|
||||
|
||||
- (void)setAcceptsMouseMovedEvents:(BOOL)flag
|
||||
{}
|
||||
{
|
||||
accepts_mouse_moved = flag;
|
||||
}
|
||||
|
||||
- (void)checkTrackingRectangles:(NSView *)theView forEvent:(NSEvent *)theEvent
|
||||
{
|
||||
|
@ -1044,7 +1109,7 @@ NSString *NSWindowWillMoveNotification;
|
|||
|
||||
- (BOOL)worksWhenModal
|
||||
{
|
||||
return YES;
|
||||
return NO;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -1116,7 +1181,7 @@ NSString *NSWindowWillMoveNotification;
|
|||
//
|
||||
// Printing and postscript
|
||||
//
|
||||
- (NSDate *)dataWithEPSInsideRect:(NSRect)rect
|
||||
- (NSData *)dataWithEPSInsideRect:(NSRect)rect
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
@ -1319,9 +1384,12 @@ NSString *NSWindowWillMoveNotification;
|
|||
return self;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
//
|
||||
// GNUstep additional methods
|
||||
// GNUstep backend methods
|
||||
//
|
||||
@implementation NSWindow (GNUstepBackend)
|
||||
|
||||
//
|
||||
// Mouse capture/release
|
||||
|
@ -1338,9 +1406,45 @@ NSString *NSWindowWillMoveNotification;
|
|||
|
||||
// Allow subclasses to init without the backend class
|
||||
// attempting to create an actual window
|
||||
- (void)initDefaults
|
||||
{
|
||||
first_responder = nil;
|
||||
original_responder = nil;
|
||||
delegate = nil;
|
||||
window_num = 0;
|
||||
background_color = [NSColor lightGrayColor];
|
||||
represented_filename = @"Window";
|
||||
miniaturized_title = @"Window";
|
||||
miniaturized_image = nil;
|
||||
window_title = @"Window";
|
||||
last_point = NSZeroPoint;
|
||||
window_level = NSNormalWindowLevel;
|
||||
|
||||
is_one_shot = NO;
|
||||
needs_display = NO;
|
||||
is_autodisplay = YES;
|
||||
optimize_drawing = YES;
|
||||
views_need_display = NO;
|
||||
depth_limit = 8;
|
||||
dynamic_depth_limit = YES;
|
||||
cursor_rects_enabled = NO;
|
||||
visible = NO;
|
||||
is_key = NO;
|
||||
is_main = NO;
|
||||
is_edited = NO;
|
||||
is_released_when_closed = NO;
|
||||
is_miniaturized = NO;
|
||||
disable_flush_window = NO;
|
||||
menu_exclude = NO;
|
||||
hides_on_deactivate = NO;
|
||||
accepts_mouse_moved = YES;
|
||||
}
|
||||
|
||||
- cleanInit
|
||||
{
|
||||
[super init];
|
||||
|
||||
[self initDefaults];
|
||||
return self;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue