mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-31 19:00:47 +00:00
Run loop integrated. Configure detects libFoundation.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2280 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
12cb8088c1
commit
f38b177296
27 changed files with 2770 additions and 1535 deletions
138
ChangeLog
138
ChangeLog
|
@ -1,3 +1,141 @@
|
||||||
|
Mon Apr 21 18:57:30 1997 Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
|
|
||||||
|
* Implement NSCopying protocol to cell classes.
|
||||||
|
* Headers/gnustep/gui/NSCell.h: Declare class to conform to
|
||||||
|
NSCopying.
|
||||||
|
* Headers/gnustep/gui/NSActionCell.h: Likewise.
|
||||||
|
* Headers/gnustep/gui/NSButtonCell.h: Likewise.
|
||||||
|
* Source/NSCell.m: Implement copyWithZone:.
|
||||||
|
* Source/NSActionCell.m: Likewise.
|
||||||
|
* Source/NSButtonCell.m: Likewise.
|
||||||
|
|
||||||
|
* Use NSRunLoop to get the events.
|
||||||
|
* Headers/gnustep/gui/NSApplication.h: Define USE_RUN_LOOP macro if you
|
||||||
|
want NSRunLoop class to be used instead of the default busy wait. Note
|
||||||
|
that some classes will not work with the "default" loop. This macro
|
||||||
|
should be removed eventually.
|
||||||
|
(-setupRunLoopInputSourcesForMode:): New method to be implemented in
|
||||||
|
backend. In this method the backend should register to run loop the
|
||||||
|
input sources it uses.
|
||||||
|
* Source/NSApplication.m (-init): Call backend method
|
||||||
|
-setupRunLoopInputSourcesForMode: to setup the input source is several
|
||||||
|
modes used by NSApp.
|
||||||
|
(-run): Get the events from NSDefaultRunLoopMode mode instead of nil.
|
||||||
|
(-nextEventMatchingMask:untilDate:inMode:dequeue:): Check for a
|
||||||
|
matching event into the events queue in the order in which the events
|
||||||
|
occured. Temporary retain the event found before removing it from the
|
||||||
|
events queue to avoid an unneeded deallocation.
|
||||||
|
Inside the loop fire the timers then wait for inputs on the input
|
||||||
|
sources of run loop.
|
||||||
|
* Source/NSButton.m: Call the nextEventMatchingMask:... using the
|
||||||
|
NSEventTrackingRunLoopMode mode instead of nil.
|
||||||
|
* Source/NSCell.m: (-trackMouse:inRect:ofView:untilMouseUp:): Likewise.
|
||||||
|
(-trackScrollButtons:): Likewise.
|
||||||
|
* Source/NSScroller.m (-trackKnob:): Likewise.
|
||||||
|
* Source/NSWindow.m (-nextEventMatchingMask:): Likewise.
|
||||||
|
|
||||||
|
* NSMatrix class completely reworked to be compliant to the OpenStep
|
||||||
|
specification.
|
||||||
|
* Source/NSMatrix.m: The second implementation.
|
||||||
|
* Headers/gnustep/gui/NSMatrix.h: Likewise.
|
||||||
|
|
||||||
|
* Implementation of NSForm, not tested.
|
||||||
|
* Source/NSForm.m: Initial implementation.
|
||||||
|
* Headers/gnustep/gui/NSForm.h: Likewise.
|
||||||
|
* Source/NSFormCell.m: Initial implementation.
|
||||||
|
* Headers/gnustep/gui/NSFormCell.h: Likewise.
|
||||||
|
|
||||||
|
* Added support in configure and makefiles for libFoundation.
|
||||||
|
* configure.in: Configure checks now for the underlaying Foundation
|
||||||
|
library and the Objective-C runtime for whom the library was compiled
|
||||||
|
for. The code is copied with copy/paste from libFoundation sources.
|
||||||
|
* aclocal.m4: Likewise.
|
||||||
|
* Source/Makefile.in: New OBJC_RUNTIME_FLAG that gets replaced by
|
||||||
|
configure. Remove OBJC_LIB since the runtime library is added to LIBS
|
||||||
|
by configure.
|
||||||
|
|
||||||
|
* Source/NSButton.m: Comment out captureMouse: method call to make
|
||||||
|
possible debugging. Anyway it seems we don't need to capture the mouse.
|
||||||
|
* Source/NSButtonCell.m: Remove the -prefersTrackingUntilMouseUp
|
||||||
|
method.
|
||||||
|
|
||||||
|
* Source/NSCell.m: Changed the way in which a cell gets initialized.
|
||||||
|
Moved all the common things into the -_init method.
|
||||||
|
|
||||||
|
* Added support for periodic events.
|
||||||
|
* Source/NSEvent.m: (+startPeriodicEventsAfterDelay:withPeriod:,
|
||||||
|
+stopPeriodicEvents): New public methods.
|
||||||
|
(+_timerFired:, +_registerRealTimer:): New private methods.
|
||||||
|
|
||||||
|
Mon Apr 21 18:57:30 1997 Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
|
|
||||||
|
* Implement NSCopying protocol to cell classes.
|
||||||
|
* Headers/gnustep/gui/NSCell.h: Declare class to conform to
|
||||||
|
NSCopying.
|
||||||
|
* Headers/gnustep/gui/NSActionCell.h: Likewise.
|
||||||
|
* Headers/gnustep/gui/NSButtonCell.h: Likewise.
|
||||||
|
* Source/NSCell.m: Implement copyWithZone:.
|
||||||
|
* Source/NSActionCell.m: Likewise.
|
||||||
|
* Source/NSButtonCell.m: Likewise.
|
||||||
|
|
||||||
|
* Use NSRunLoop to get the events.
|
||||||
|
* Headers/gnustep/gui/NSApplication.h: Define USE_RUN_LOOP macro if you
|
||||||
|
want NSRunLoop class to be used instead of the default busy wait. Note
|
||||||
|
that some classes will not work with the "default" loop. This macro
|
||||||
|
should be removed eventually.
|
||||||
|
(-setupRunLoopInputSourcesForMode:): New method to be implemented in
|
||||||
|
backend. In this method the backend should register to run loop the
|
||||||
|
input sources it uses.
|
||||||
|
* Source/NSApplication.m (-init): Call backend method
|
||||||
|
-setupRunLoopInputSourcesForMode: to setup the input source is several
|
||||||
|
modes used by NSApp.
|
||||||
|
(-run): Get the events from NSDefaultRunLoopMode mode instead of nil.
|
||||||
|
(-nextEventMatchingMask:untilDate:inMode:dequeue:): Check for a
|
||||||
|
matching event into the events queue in the order in which the events
|
||||||
|
occured. Temporary retain the event found before removing it from the
|
||||||
|
events queue to avoid an unneeded deallocation.
|
||||||
|
Inside the loop fire the timers then wait for inputs on the input
|
||||||
|
sources of run loop.
|
||||||
|
* Source/NSButton.m: Call the nextEventMatchingMask:... using the
|
||||||
|
NSEventTrackingRunLoopMode mode instead of nil.
|
||||||
|
* Source/NSCell.m: (-trackMouse:inRect:ofView:untilMouseUp:): Likewise.
|
||||||
|
(-trackScrollButtons:): Likewise.
|
||||||
|
* Source/NSScroller.m (-trackKnob:): Likewise.
|
||||||
|
* Source/NSWindow.m (-nextEventMatchingMask:): Likewise.
|
||||||
|
|
||||||
|
* NSMatrix class completely reworked to be compliant to the OpenStep
|
||||||
|
specification.
|
||||||
|
* Source/NSMatrix.m: The second implementation.
|
||||||
|
* Headers/gnustep/gui/NSMatrix.h: Likewise.
|
||||||
|
|
||||||
|
* Implementation of NSForm, not tested.
|
||||||
|
* Source/NSForm.m: Initial implementation.
|
||||||
|
* Headers/gnustep/gui/NSForm.h: Likewise.
|
||||||
|
* Source/NSFormCell.m: Initial implementation.
|
||||||
|
* Headers/gnustep/gui/NSFormCell.h: Likewise.
|
||||||
|
|
||||||
|
* Added support in configure and makefiles for libFoundation.
|
||||||
|
* configure.in: Configure checks now for the underlaying Foundation
|
||||||
|
library and the Objective-C runtime for whom the library was compiled
|
||||||
|
for. The code is copied with copy/paste from libFoundation sources.
|
||||||
|
* aclocal.m4: Likewise.
|
||||||
|
* Source/Makefile.in: New OBJC_RUNTIME_FLAG that gets replaced by
|
||||||
|
configure. Remove OBJC_LIB since the runtime library is added to LIBS
|
||||||
|
by configure.
|
||||||
|
|
||||||
|
* Source/NSButton.m: Comment out captureMouse: method call to make
|
||||||
|
possible debugging. Anyway it seems we don't need to capture the mouse.
|
||||||
|
* Source/NSButtonCell.m: Remove the -prefersTrackingUntilMouseUp
|
||||||
|
method.
|
||||||
|
|
||||||
|
* Source/NSCell.m: Changed the way in which a cell gets initialized.
|
||||||
|
Moved all the common things into the -_init method.
|
||||||
|
|
||||||
|
* Added support for periodic events.
|
||||||
|
* Source/NSEvent.m: (+startPeriodicEventsAfterDelay:withPeriod:,
|
||||||
|
+stopPeriodicEvents): New public methods.
|
||||||
|
(+_timerFired:, +_registerRealTimer:): New private methods.
|
||||||
|
|
||||||
Fri Apr 04 14:03:40 1997 Scott Christley <scottc@net-community.com>
|
Fri Apr 04 14:03:40 1997 Scott Christley <scottc@net-community.com>
|
||||||
|
|
||||||
* Source/NSSlider.m (MB_NSSLIDER_CLASS): Rename to follow GNU
|
* Source/NSSlider.m (MB_NSSLIDER_CLASS): Rename to follow GNU
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Author: Ovidiu Predescu <ovidiu@bx.logicnet.ro>
|
Author: Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
Date: February 1997
|
Date: February 1997
|
||||||
|
|
||||||
This file is part of the GNUstep GUI Library.
|
This file is part of the GNUstep GUI Library.
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
#include <AppKit/NSCell.h>
|
#include <AppKit/NSCell.h>
|
||||||
|
|
||||||
@interface NSActionCell : NSCell <NSCoding>
|
@interface NSActionCell : NSCell <NSCopying, NSCoding>
|
||||||
{
|
{
|
||||||
// Attributes
|
// Attributes
|
||||||
int tag;
|
int tag;
|
||||||
|
|
|
@ -31,6 +31,8 @@
|
||||||
|
|
||||||
#include <AppKit/NSResponder.h>
|
#include <AppKit/NSResponder.h>
|
||||||
|
|
||||||
|
#define USE_RUN_LOOP 1
|
||||||
|
|
||||||
@class NSArray;
|
@class NSArray;
|
||||||
@class NSMutableArray;
|
@class NSMutableArray;
|
||||||
@class NSString;
|
@class NSString;
|
||||||
|
@ -277,6 +279,9 @@ extern NSString *NSEventTrackingRunLoopMode;
|
||||||
// handle a non-translated event
|
// handle a non-translated event
|
||||||
- (void)handleNullEvent;
|
- (void)handleNullEvent;
|
||||||
|
|
||||||
|
/* Set up the run loop input sources for a given mode */
|
||||||
|
- (void)setupRunLoopInputSourcesForMode:(NSString*)mode;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface NSObject (NSServicesRequests)
|
@interface NSObject (NSServicesRequests)
|
||||||
|
|
|
@ -44,7 +44,7 @@ typedef enum _NSButtonType {
|
||||||
NSMomentaryLight
|
NSMomentaryLight
|
||||||
} NSButtonType;
|
} NSButtonType;
|
||||||
|
|
||||||
@interface NSButtonCell : NSActionCell <NSCoding>
|
@interface NSButtonCell : NSActionCell <NSCopying, NSCoding>
|
||||||
{
|
{
|
||||||
// Attributes
|
// Attributes
|
||||||
NSString *altContents;
|
NSString *altContents;
|
||||||
|
|
|
@ -94,7 +94,7 @@ enum {
|
||||||
NSChangeBackgroundCellMask = 8
|
NSChangeBackgroundCellMask = 8
|
||||||
};
|
};
|
||||||
|
|
||||||
@interface NSCell : NSObject <NSCoding>
|
@interface NSCell : NSObject <NSCopying, NSCoding>
|
||||||
{
|
{
|
||||||
// Attributes
|
// Attributes
|
||||||
NSString *contents;
|
NSString *contents;
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Author: Scott Christley <scottc@net-community.com>
|
Author: Scott Christley <scottc@net-community.com>
|
||||||
Author: Ovidiu Predescu <ovidiu@bx.logicnet.ro>
|
Author: Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
Date: 1996, 1997
|
Date: 1996, 1997
|
||||||
|
|
||||||
This file is part of the GNUstep GUI Library.
|
This file is part of the GNUstep GUI Library.
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Author: Scott Christley <scottc@net-community.com>
|
Author: Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
Date: 1996
|
Date: March 1997
|
||||||
|
|
||||||
This file is part of the GNUstep GUI Library.
|
This file is part of the GNUstep GUI Library.
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
This library is free software; you can redistribute it and/or
|
||||||
|
@ -35,15 +35,12 @@
|
||||||
@class NSFont;
|
@class NSFont;
|
||||||
|
|
||||||
@interface NSForm : NSMatrix <NSCoding>
|
@interface NSForm : NSMatrix <NSCoding>
|
||||||
{
|
|
||||||
// Attributes
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Laying Out the Form
|
// Laying Out the Form
|
||||||
//
|
//
|
||||||
- (NSFormCell *)addEntry:(NSString *)title;
|
- (NSFormCell*)addEntry:(NSString*)title;
|
||||||
- (NSFormCell *)insertEntry:(NSString *)title
|
- (NSFormCell*)insertEntry:(NSString*)title
|
||||||
atIndex:(int)index;
|
atIndex:(int)index;
|
||||||
- (void)removeEntryAtIndex:(int)index;
|
- (void)removeEntryAtIndex:(int)index;
|
||||||
- (void)setInterlineSpacing:(float)spacing;
|
- (void)setInterlineSpacing:(float)spacing;
|
||||||
|
@ -60,15 +57,9 @@
|
||||||
- (void)setBezeled:(BOOL)flag;
|
- (void)setBezeled:(BOOL)flag;
|
||||||
- (void)setBordered:(BOOL)flag;
|
- (void)setBordered:(BOOL)flag;
|
||||||
- (void)setTextAlignment:(int)mode;
|
- (void)setTextAlignment:(int)mode;
|
||||||
- (void)setTextFont:(NSFont *)fontObject;
|
- (void)setTextFont:(NSFont*)fontObject;
|
||||||
- (void)setTitleAlignment:(NSTextAlignment)mode;
|
- (void)setTitleAlignment:(NSTextAlignment)mode;
|
||||||
- (void)setTitleFont:(NSFont *)fontObject;
|
- (void)setTitleFont:(NSFont*)fontObject;
|
||||||
|
|
||||||
//
|
|
||||||
// Setting the Cell Class
|
|
||||||
//
|
|
||||||
+ (Class)cellClass;
|
|
||||||
+ (void)setCellClass:(Class)classId;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Getting a Cell
|
// Getting a Cell
|
||||||
|
@ -90,12 +81,6 @@
|
||||||
//
|
//
|
||||||
- (void)setEntryWidth:(float)width;
|
- (void)setEntryWidth:(float)width;
|
||||||
|
|
||||||
//
|
|
||||||
// NSCoding protocol
|
|
||||||
//
|
|
||||||
- (void)encodeWithCoder:aCoder;
|
|
||||||
- initWithCoder:aDecoder;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
#endif // _GNUstep_H_NSForm
|
#endif // _GNUstep_H_NSForm
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Author: Scott Christley <scottc@net-community.com>
|
Author: Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
Date: 1996
|
Date: March 1997
|
||||||
|
|
||||||
This file is part of the GNUstep GUI Library.
|
This file is part of the GNUstep GUI Library.
|
||||||
|
|
||||||
|
@ -31,21 +31,14 @@
|
||||||
|
|
||||||
#include <AppKit/NSActionCell.h>
|
#include <AppKit/NSActionCell.h>
|
||||||
|
|
||||||
|
@class NSTextFieldCell;
|
||||||
|
|
||||||
@interface NSFormCell : NSActionCell <NSCoding>
|
@interface NSFormCell : NSActionCell <NSCoding>
|
||||||
{
|
{
|
||||||
// Attributes
|
float titleWidth;
|
||||||
|
NSTextFieldCell* textCell;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Initializing an NSFormCell
|
|
||||||
//
|
|
||||||
- (id)initTextCell:(NSString *)aString;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Determining an NSFormCell's Size
|
|
||||||
//
|
|
||||||
- (NSSize)cellSizeForBounds:(NSRect)aRect;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Determining Graphic Attributes
|
// Determining Graphic Attributes
|
||||||
//
|
//
|
||||||
|
@ -54,13 +47,13 @@
|
||||||
//
|
//
|
||||||
// Modifying the Title
|
// Modifying the Title
|
||||||
//
|
//
|
||||||
- (void)setTitle:(NSString *)aString;
|
- (void)setTitle:(NSString*)aString;
|
||||||
- (void)setTitleAlignment:(NSTextAlignment)mode;
|
- (void)setTitleAlignment:(NSTextAlignment)mode;
|
||||||
- (void)setTitleFont:(NSFont *)fontObject;
|
- (void)setTitleFont:(NSFont*)fontObject;
|
||||||
- (void)setTitleWidth:(float)width;
|
- (void)setTitleWidth:(float)width;
|
||||||
- (NSString *)title;
|
- (NSString*)title;
|
||||||
- (NSTextAlignment)titleAlignment;
|
- (NSTextAlignment)titleAlignment;
|
||||||
- (NSFont *)titleFont;
|
- (NSFont*)titleFont;
|
||||||
- (float)titleWidth;
|
- (float)titleWidth;
|
||||||
- (float)titleWidth:(NSSize)aSize;
|
- (float)titleWidth:(NSSize)aSize;
|
||||||
|
|
||||||
|
@ -68,7 +61,7 @@
|
||||||
// Displaying
|
// Displaying
|
||||||
//
|
//
|
||||||
- (void)drawInteriorWithFrame:(NSRect)cellFrame
|
- (void)drawInteriorWithFrame:(NSRect)cellFrame
|
||||||
inView:(NSView *)controlView;
|
inView:(NSView*)controlView;
|
||||||
|
|
||||||
//
|
//
|
||||||
// NSCoding protocol
|
// NSCoding protocol
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Author: Ovidiu Predescu <ovidiu@bx.logicnet.ro>
|
Author: Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
Date: February 1997
|
Date: February 1997
|
||||||
|
|
||||||
This file is part of the GNUstep GUI Library.
|
This file is part of the GNUstep GUI Library.
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
/*
|
/*
|
||||||
NSMatrix.h
|
NSMatrix.h
|
||||||
|
|
||||||
This is the Matrix class. This class corresponds to NSMatrix
|
|
||||||
of the OpenStep specification, but it also allows for rows
|
|
||||||
and columns of different sizes.
|
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Author: Pascal Forget <pascal@wsc.com>
|
Author: Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
Date: 1996
|
Date: March 1997
|
||||||
|
A completely rewritten version of the original source by Pascal Forget and
|
||||||
|
Scott Christley.
|
||||||
|
|
||||||
This file is part of the GNUstep GUI Library.
|
This file is part of the GNUstep GUI Library.
|
||||||
|
|
||||||
|
@ -51,26 +49,31 @@ typedef enum _NSMatrixMode {
|
||||||
|
|
||||||
@interface NSMatrix : NSControl <NSCoding>
|
@interface NSMatrix : NSControl <NSCoding>
|
||||||
{
|
{
|
||||||
// Attributes
|
NSMutableArray* cells;
|
||||||
NSMutableArray *rows;
|
NSMatrixMode mode;
|
||||||
NSMutableArray *col_widths;
|
int numRows;
|
||||||
NSMutableArray *row_heights;
|
int numCols;
|
||||||
int num_cols;
|
Class cellClass;
|
||||||
int num_rows;
|
id cellPrototype;
|
||||||
NSCell *cell_prototype;
|
NSSize cellSize;
|
||||||
NSSize inter_cell;
|
NSSize intercell;
|
||||||
Class cell_class;
|
NSColor* backgroundColor;
|
||||||
BOOL allows_empty_selection;
|
NSColor* cellBackgroundColor;
|
||||||
BOOL selection_by_rect;
|
id delegate;
|
||||||
BOOL draws_background;
|
id target;
|
||||||
BOOL draws_cell_background;
|
SEL action;
|
||||||
NSMutableArray *selected_cells;
|
SEL doubleAction;
|
||||||
BOOL autoscroll;
|
SEL errorAction;
|
||||||
BOOL scrollable;
|
id selectedCell;
|
||||||
BOOL autosize;
|
int selectedRow;
|
||||||
NSMatrixMode mode;
|
int selectedColumn;
|
||||||
SEL double_action;
|
void* selectedCells;
|
||||||
SEL error_action;
|
BOOL allowsEmptySelection;
|
||||||
|
BOOL selectionByRect;
|
||||||
|
BOOL drawsBackground;
|
||||||
|
BOOL drawsCellBackground;
|
||||||
|
BOOL autosizesCells;
|
||||||
|
BOOL autoscroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -147,6 +150,8 @@ typedef enum _NSMatrixMode {
|
||||||
- (void)sortUsingFunction:(int (*)(id element1, id element2, void *userData))comparator
|
- (void)sortUsingFunction:(int (*)(id element1, id element2, void *userData))comparator
|
||||||
context:(void *)context;
|
context:(void *)context;
|
||||||
- (void)sortUsingSelector:(SEL)comparator;
|
- (void)sortUsingSelector:(SEL)comparator;
|
||||||
|
- (int)numberOfColumns;
|
||||||
|
- (int)numberOfRows;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Finding Matrix Coordinates
|
// Finding Matrix Coordinates
|
||||||
|
@ -258,8 +263,11 @@ typedef enum _NSMatrixMode {
|
||||||
//
|
//
|
||||||
//Target and Action
|
//Target and Action
|
||||||
//
|
//
|
||||||
- (SEL)doubleAction;
|
- (void)setAction:(SEL)aSelector;
|
||||||
|
- (SEL)action;
|
||||||
- (void)setDoubleAction:(SEL)aSelector;
|
- (void)setDoubleAction:(SEL)aSelector;
|
||||||
|
- (SEL)doubleAction;
|
||||||
|
- (void)setErrorAction:(SEL)aSelector;
|
||||||
- (SEL)errorAction;
|
- (SEL)errorAction;
|
||||||
- (BOOL)sendAction;
|
- (BOOL)sendAction;
|
||||||
- (void)sendAction:(SEL)aSelector
|
- (void)sendAction:(SEL)aSelector
|
||||||
|
@ -281,12 +289,6 @@ typedef enum _NSMatrixMode {
|
||||||
//
|
//
|
||||||
- (void)resetCursorRects;
|
- (void)resetCursorRects;
|
||||||
|
|
||||||
//
|
|
||||||
// NSCoding protocol
|
|
||||||
//
|
|
||||||
- (void)encodeWithCoder:aCoder;
|
|
||||||
- initWithCoder:aDecoder;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
#endif // _GNUstep_H_NSMatrix
|
#endif // _GNUstep_H_NSMatrix
|
||||||
|
|
|
@ -53,7 +53,6 @@ ALL_CFLAGS = $(ALL_CPPFLAGS) $(CFLAGS)
|
||||||
DEFS = -DGNUSTEP_INSTALL_LIBDIR=\"$(gnustep_libdir)\" @DEFS@
|
DEFS = -DGNUSTEP_INSTALL_LIBDIR=\"$(gnustep_libdir)\" @DEFS@
|
||||||
|
|
||||||
GCC_LIB =
|
GCC_LIB =
|
||||||
OBJC_LIB = -lobjc
|
|
||||||
SYS_LIBS =
|
SYS_LIBS =
|
||||||
ADD_LIBS = @LIBS@
|
ADD_LIBS = @LIBS@
|
||||||
|
|
||||||
|
@ -236,14 +235,14 @@ OBJS = $(OBJS_WITHOUT_INIT)
|
||||||
|
|
||||||
.SUFFIXES: .m
|
.SUFFIXES: .m
|
||||||
.m$(oext):
|
.m$(oext):
|
||||||
$(CC) -c $(ALL_CFLAGS) $(DEFS) -o $@ $<
|
$(CC) @OBJC_RUNTIME_FLAG@ -c $(ALL_CFLAGS) $(DEFS) -o $@ $<
|
||||||
.c$(oext):
|
.c$(oext):
|
||||||
$(CC) -c $(ALL_CFLAGS) $(DEFS) -o $@ $<
|
$(CC) -c $(ALL_CFLAGS) $(DEFS) -o $@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# libraries
|
# libraries
|
||||||
#
|
#
|
||||||
LIBS = $(GCC_LIB) $(OBJC_LIB) $(SYS_LIBS) $(ADD_LIBS)
|
LIBS = $(GCC_LIB) $(SYS_LIBS) $(ADD_LIBS)
|
||||||
|
|
||||||
#
|
#
|
||||||
# targets
|
# targets
|
||||||
|
|
|
@ -219,6 +219,17 @@
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (id)copyWithZone:(NSZone*)zone
|
||||||
|
{
|
||||||
|
NSActionCell* c = [super copyWithZone:zone];
|
||||||
|
|
||||||
|
[c setTag:tag];
|
||||||
|
[c setTarget:target];
|
||||||
|
[c setAction:action];
|
||||||
|
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// NSCoding protocol
|
// NSCoding protocol
|
||||||
//
|
//
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
|
|
||||||
#include <Foundation/NSArray.h>
|
#include <Foundation/NSArray.h>
|
||||||
#include <Foundation/NSNotification.h>
|
#include <Foundation/NSNotification.h>
|
||||||
|
#include <Foundation/NSRunLoop.h>
|
||||||
#include <DPSClient/NSDPSContext.h>
|
#include <DPSClient/NSDPSContext.h>
|
||||||
#include <AppKit/NSApplication.h>
|
#include <AppKit/NSApplication.h>
|
||||||
#include <AppKit/NSPopUpButton.h>
|
#include <AppKit/NSPopUpButton.h>
|
||||||
|
@ -172,6 +173,12 @@ NSString *NSApplicationWillUpdateNotification = @"ApplicationWillUpdate";
|
||||||
//
|
//
|
||||||
[self setNextResponder:NULL];
|
[self setNextResponder:NULL];
|
||||||
|
|
||||||
|
/* Set up the run loop object for the current thread */
|
||||||
|
[self setupRunLoopInputSourcesForMode:NSDefaultRunLoopMode];
|
||||||
|
[self setupRunLoopInputSourcesForMode:NSConnectionReplyMode];
|
||||||
|
[self setupRunLoopInputSourcesForMode:NSModalPanelRunLoopMode];
|
||||||
|
[self setupRunLoopInputSourcesForMode:NSEventTrackingRunLoopMode];
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,9 +274,10 @@ NSString *NSApplicationWillUpdateNotification = @"ApplicationWillUpdate";
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
e = [self nextEventMatchingMask:NSAnyEventMask untilDate:nil
|
e = [self nextEventMatchingMask:NSAnyEventMask
|
||||||
inMode:nil dequeue:YES];
|
untilDate:[NSDate distantFuture]
|
||||||
if (e != gnustep_gui_null_event)
|
inMode:NSDefaultRunLoopMode dequeue:YES];
|
||||||
|
if (e)
|
||||||
[self sendEvent: e];
|
[self sendEvent: e];
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -447,14 +455,16 @@ NSString *NSApplicationWillUpdateNotification = @"ApplicationWillUpdate";
|
||||||
if ([event_queue count])
|
if ([event_queue count])
|
||||||
{
|
{
|
||||||
j = [event_queue count];
|
j = [event_queue count];
|
||||||
for (i = j-1;i >= 0; --i)
|
// for (i = j-1;i >= 0; --i)
|
||||||
|
for (i = 0; i < j; i++)
|
||||||
{
|
{
|
||||||
e = [event_queue objectAtIndex: i];
|
e = [event_queue objectAtIndex: i];
|
||||||
if ([self event: e matchMask: mask])
|
if ([self event: e matchMask: mask])
|
||||||
{
|
{
|
||||||
|
[e retain];
|
||||||
[event_queue removeObjectAtIndex: i];
|
[event_queue removeObjectAtIndex: i];
|
||||||
[self setCurrentEvent: e];
|
[self setCurrentEvent: e];
|
||||||
return e;
|
return [e autorelease];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -463,18 +473,39 @@ NSString *NSApplicationWillUpdateNotification = @"ApplicationWillUpdate";
|
||||||
done = NO;
|
done = NO;
|
||||||
while (!done)
|
while (!done)
|
||||||
{
|
{
|
||||||
e = [self getNextEvent];
|
#if USE_RUN_LOOP
|
||||||
|
NSRunLoop* currentLoop = [NSRunLoop currentRunLoop];
|
||||||
|
NSDate* limitDate = [currentLoop limitDateForMode:mode];
|
||||||
|
|
||||||
// Check mask
|
if (!expiration)
|
||||||
if ([self event: e matchMask: mask])
|
expiration = [NSDate distantFuture];
|
||||||
{
|
|
||||||
if (e)
|
if (limitDate)
|
||||||
{
|
limitDate = [expiration earlierDate:limitDate];
|
||||||
[event_queue removeObject: e];
|
else
|
||||||
}
|
limitDate = expiration;
|
||||||
done = YES;
|
|
||||||
|
// NSLog (@"calling runMode:beforeDate:");
|
||||||
|
[currentLoop runMode:mode beforeDate:limitDate];
|
||||||
|
// NSLog (@"return from runMode:beforeDate:");
|
||||||
|
#else
|
||||||
|
e = [self getNextEvent];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if ([event_queue count]) {
|
||||||
|
e = [[event_queue lastObject] retain];
|
||||||
|
|
||||||
|
// Check mask
|
||||||
|
if ([self event: e matchMask: mask])
|
||||||
|
{
|
||||||
|
if (e)
|
||||||
|
{
|
||||||
|
[event_queue removeObject: e];
|
||||||
|
}
|
||||||
|
done = YES;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unhide the cursor if necessary
|
// Unhide the cursor if necessary
|
||||||
// but only if its not a null event
|
// but only if its not a null event
|
||||||
|
@ -495,7 +526,7 @@ NSString *NSApplicationWillUpdateNotification = @"ApplicationWillUpdate";
|
||||||
}
|
}
|
||||||
|
|
||||||
[self setCurrentEvent: e];
|
[self setCurrentEvent: e];
|
||||||
return e;
|
return [e autorelease];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSEvent *)peekEventMatchingMask:(unsigned int)mask
|
- (NSEvent *)peekEventMatchingMask:(unsigned int)mask
|
||||||
|
@ -1129,4 +1160,7 @@ NSString *NSApplicationWillUpdateNotification = @"ApplicationWillUpdate";
|
||||||
- (void)handleNullEvent
|
- (void)handleNullEvent
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
- (void)setupRunLoopInputSourcesForMode:(NSString*)mode
|
||||||
|
{}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -293,7 +293,7 @@ id gnustep_gui_nsbutton_class = nil;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// capture mouse
|
// capture mouse
|
||||||
[[self window] captureMouse: self];
|
// [[self window] captureMouse: self];
|
||||||
[self lockFocus];
|
[self lockFocus];
|
||||||
|
|
||||||
done = NO;
|
done = NO;
|
||||||
|
@ -311,12 +311,12 @@ id gnustep_gui_nsbutton_class = nil;
|
||||||
{
|
{
|
||||||
NSDebugLog(@"NSButton process another event\n");
|
NSDebugLog(@"NSButton process another event\n");
|
||||||
e = [theApp nextEventMatchingMask:event_mask untilDate:nil
|
e = [theApp nextEventMatchingMask:event_mask untilDate:nil
|
||||||
inMode:nil dequeue:YES];
|
inMode:NSEventTrackingRunLoopMode dequeue:YES];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Release mouse
|
// Release mouse
|
||||||
[[self window] releaseMouse: self];
|
// [[self window] releaseMouse: self];
|
||||||
|
|
||||||
// If the mouse went up in the button
|
// If the mouse went up in the button
|
||||||
if (mouseUp)
|
if (mouseUp)
|
||||||
|
|
|
@ -319,11 +319,6 @@
|
||||||
control_view = controlView;
|
control_view = controlView;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (BOOL)prefersTrackingUntilMouseUp
|
|
||||||
{
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Simulating a Click
|
// Simulating a Click
|
||||||
//
|
//
|
||||||
|
@ -331,6 +326,22 @@
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (id)copyWithZone:(NSZone*)zone
|
||||||
|
{
|
||||||
|
NSButtonCell* c = [super copyWithZone:zone];
|
||||||
|
|
||||||
|
[c setAlternateTitle:altContents];
|
||||||
|
[c setAlternateImage:altImage];
|
||||||
|
[c setKeyEquivalent:keyEquivalent];
|
||||||
|
[c setKeyEquivalentFont:keyEquivalentFont];
|
||||||
|
[c setKeyEquivalentModifierMask:keyEquivalentModifierMask];
|
||||||
|
[c setTransparent:transparent];
|
||||||
|
c->highlightsByMask = highlightsByMask;
|
||||||
|
c->showAltStateMask = showAltStateMask;
|
||||||
|
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// NSCoding protocol
|
// NSCoding protocol
|
||||||
//
|
//
|
||||||
|
|
|
@ -64,9 +64,8 @@
|
||||||
//
|
//
|
||||||
// Initializing an NSCell
|
// Initializing an NSCell
|
||||||
//
|
//
|
||||||
- init
|
- _init
|
||||||
{
|
{
|
||||||
[super init];
|
|
||||||
cell_type = NSNullCellType;
|
cell_type = NSNullCellType;
|
||||||
cell_image = nil;
|
cell_image = nil;
|
||||||
cell_font = nil;
|
cell_font = nil;
|
||||||
|
@ -86,9 +85,16 @@
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- init
|
||||||
|
{
|
||||||
|
self = [super init];
|
||||||
|
[self _init];
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
- (id)initImageCell:(NSImage *)anImage
|
- (id)initImageCell:(NSImage *)anImage
|
||||||
{
|
{
|
||||||
[super init];
|
[self _init];
|
||||||
|
|
||||||
// Not an image class --then forget it
|
// Not an image class --then forget it
|
||||||
if (![anImage isKindOfClass:[NSImage class]])
|
if (![anImage isKindOfClass:[NSImage class]])
|
||||||
|
@ -98,24 +104,12 @@
|
||||||
cell_image = [anImage retain];
|
cell_image = [anImage retain];
|
||||||
image_position = NSImageOnly;
|
image_position = NSImageOnly;
|
||||||
cell_font = [[NSFont userFontOfSize:16] retain];
|
cell_font = [[NSFont userFontOfSize:16] retain];
|
||||||
cell_state = NO;
|
|
||||||
cell_highlighted = NO;
|
|
||||||
cell_enabled = YES;
|
|
||||||
cell_editable = NO;
|
|
||||||
cell_bordered = NO;
|
|
||||||
cell_bezeled = NO;
|
|
||||||
cell_scrollable = NO;
|
|
||||||
cell_selectable = NO;
|
|
||||||
cell_continuous = NO;
|
|
||||||
cell_float_autorange = NO;
|
|
||||||
cell_float_left = 0;
|
|
||||||
cell_float_right = 0;
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id)initTextCell:(NSString *)aString
|
- (id)initTextCell:(NSString *)aString
|
||||||
{
|
{
|
||||||
[super init];
|
[self _init];
|
||||||
|
|
||||||
// Not a string class --then forget it
|
// Not a string class --then forget it
|
||||||
//if (![aString isKindOfClass:[NSString class]])
|
//if (![aString isKindOfClass:[NSString class]])
|
||||||
|
@ -127,15 +121,6 @@
|
||||||
text_align = NSCenterTextAlignment;
|
text_align = NSCenterTextAlignment;
|
||||||
cell_image = nil;
|
cell_image = nil;
|
||||||
image_position = NSNoImage;
|
image_position = NSNoImage;
|
||||||
cell_state = NO;
|
|
||||||
cell_highlighted = NO;
|
|
||||||
cell_enabled = YES;
|
|
||||||
cell_editable = NO;
|
|
||||||
cell_bordered = NO;
|
|
||||||
cell_bezeled = NO;
|
|
||||||
cell_scrollable = NO;
|
|
||||||
cell_selectable = NO;
|
|
||||||
cell_continuous = NO;
|
|
||||||
cell_float_autorange = YES;
|
cell_float_autorange = YES;
|
||||||
cell_float_left = 0;
|
cell_float_left = 0;
|
||||||
cell_float_right = 6;
|
cell_float_right = 6;
|
||||||
|
@ -649,7 +634,7 @@
|
||||||
{
|
{
|
||||||
last_point = point;
|
last_point = point;
|
||||||
e = [theApp nextEventMatchingMask:event_mask untilDate:nil
|
e = [theApp nextEventMatchingMask:event_mask untilDate:nil
|
||||||
inMode:nil dequeue:YES];
|
inMode:NSEventTrackingRunLoopMode dequeue:YES];
|
||||||
location = [e locationInWindow];
|
location = [e locationInWindow];
|
||||||
point = [controlView convertPoint: location fromView: nil];
|
point = [controlView convertPoint: location fromView: nil];
|
||||||
NSDebugLog(@"NSCell location %f %f\n", location.x, location.y);
|
NSDebugLog(@"NSCell location %f %f\n", location.x, location.y);
|
||||||
|
@ -751,6 +736,36 @@
|
||||||
- (void)setRepresentedObject:(id)anObject
|
- (void)setRepresentedObject:(id)anObject
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
- (id)copyWithZone:(NSZone*)zone
|
||||||
|
{
|
||||||
|
NSCell* c = NSAllocateObject (isa, 0, zone);
|
||||||
|
|
||||||
|
[c setStringValue:contents];
|
||||||
|
[c setImage:cell_image];
|
||||||
|
[c setFont:cell_font];
|
||||||
|
[c setState:cell_state];
|
||||||
|
c->cell_highlighted = cell_highlighted;
|
||||||
|
[c setEnabled:cell_enabled];
|
||||||
|
[c setEditable:cell_editable];
|
||||||
|
[c setBordered:cell_bordered];
|
||||||
|
[c setBezeled:cell_bezeled];
|
||||||
|
[c setScrollable:cell_scrollable];
|
||||||
|
[c setSelectable:cell_selectable];
|
||||||
|
[c setContinuous:cell_continuous];
|
||||||
|
[c setFloatingPointFormat:cell_float_autorange
|
||||||
|
left:cell_float_left
|
||||||
|
right:cell_float_right];
|
||||||
|
c->image_position = image_position;
|
||||||
|
[c setType:cell_type];
|
||||||
|
[c setAlignment:text_align];
|
||||||
|
[c setEntryType:entry_type];
|
||||||
|
c->control_view = control_view;
|
||||||
|
c->cell_size = cell_size;
|
||||||
|
c->represented_object = [represented_object retain];
|
||||||
|
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// NSCoding protocol
|
// NSCoding protocol
|
||||||
//
|
//
|
||||||
|
|
104
Source/NSEvent.m
104
Source/NSEvent.m
|
@ -6,6 +6,7 @@
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Author: Scott Christley <scottc@net-community.com>
|
Author: Scott Christley <scottc@net-community.com>
|
||||||
|
Author: Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
Date: 1996
|
Date: 1996
|
||||||
|
|
||||||
This file is part of the GNUstep GUI Library.
|
This file is part of the GNUstep GUI Library.
|
||||||
|
@ -26,11 +27,23 @@
|
||||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <Foundation/NSDictionary.h>
|
||||||
|
#include <Foundation/NSLock.h>
|
||||||
|
#include <Foundation/NSTimer.h>
|
||||||
|
#include <Foundation/NSRunLoop.h>
|
||||||
|
#include <Foundation/NSThread.h>
|
||||||
|
#include <Foundation/NSValue.h>
|
||||||
|
#include <Foundation/NSException.h>
|
||||||
|
|
||||||
#include <AppKit/NSEvent.h>
|
#include <AppKit/NSEvent.h>
|
||||||
#include <AppKit/NSApplication.h>
|
#include <AppKit/NSApplication.h>
|
||||||
|
|
||||||
@implementation NSEvent
|
@implementation NSEvent
|
||||||
|
|
||||||
|
// Class variables
|
||||||
|
static NSMutableDictionary* timers = nil;
|
||||||
|
static NSRecursiveLock* timersLock = nil;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Private methods
|
// Private methods
|
||||||
//
|
//
|
||||||
|
@ -142,6 +155,8 @@
|
||||||
|
|
||||||
// Initial version
|
// Initial version
|
||||||
[self setVersion:1];
|
[self setVersion:1];
|
||||||
|
timers = [NSMutableDictionary new];
|
||||||
|
timersLock = [NSRecursiveLock new];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -287,10 +302,95 @@
|
||||||
//
|
//
|
||||||
+ (void)startPeriodicEventsAfterDelay:(NSTimeInterval)delaySeconds
|
+ (void)startPeriodicEventsAfterDelay:(NSTimeInterval)delaySeconds
|
||||||
withPeriod:(NSTimeInterval)periodSeconds
|
withPeriod:(NSTimeInterval)periodSeconds
|
||||||
{}
|
{
|
||||||
|
NSTimer* timer;
|
||||||
|
NSThread* currentThread = [NSThread currentThread];
|
||||||
|
|
||||||
|
[timersLock lock];
|
||||||
|
|
||||||
|
NSDebugLog (@"startPeriodicEventsAfterDelay:withPeriod:");
|
||||||
|
/* Check for any pending timer for this thread */
|
||||||
|
if ([timers objectForKey:currentThread])
|
||||||
|
[NSException raise:NSInternalInconsistencyException
|
||||||
|
format:@"Periodic events are already being generated for "
|
||||||
|
@"this thread %x", currentThread];
|
||||||
|
|
||||||
|
/* If the delay time is 0 then register a timer right now. Otherwise register
|
||||||
|
a timer with no repeat that when fired registers the real timer */
|
||||||
|
if (!delaySeconds)
|
||||||
|
timer = [NSTimer timerWithTimeInterval:periodSeconds
|
||||||
|
target:self
|
||||||
|
selector:@selector(_timerFired:)
|
||||||
|
userInfo:nil
|
||||||
|
repeats:YES];
|
||||||
|
else
|
||||||
|
timer = [NSTimer timerWithTimeInterval:delaySeconds
|
||||||
|
target:self
|
||||||
|
selector:@selector(_registerRealTimer:)
|
||||||
|
userInfo:[NSNumber numberWithDouble:periodSeconds]
|
||||||
|
repeats:NO];
|
||||||
|
|
||||||
|
[[NSRunLoop currentRunLoop]
|
||||||
|
addTimer:timer forMode:NSEventTrackingRunLoopMode];
|
||||||
|
[timers setObject:timer forKey:currentThread];
|
||||||
|
|
||||||
|
[timersLock unlock];
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (void)_timerFired:(NSTimer*)timer
|
||||||
|
{
|
||||||
|
NSEvent* periodicEvent
|
||||||
|
= [self otherEventWithType:NSPeriodic
|
||||||
|
location:NSZeroPoint
|
||||||
|
modifierFlags:0
|
||||||
|
timestamp:[[NSDate date] timeIntervalSinceReferenceDate]
|
||||||
|
windowNumber:0
|
||||||
|
context:[NSApp context]
|
||||||
|
subtype:0
|
||||||
|
data1:0
|
||||||
|
data2:0];
|
||||||
|
|
||||||
|
NSDebugLog (@"_timerFired:");
|
||||||
|
[NSApp postEvent:periodicEvent atStart:NO];
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (void)_registerRealTimer:(NSTimer*)timer
|
||||||
|
{
|
||||||
|
NSTimeInterval periodSeconds = [[timer userInfo] doubleValue];
|
||||||
|
NSTimer* realTimer = [NSTimer timerWithTimeInterval:periodSeconds
|
||||||
|
target:self
|
||||||
|
selector:@selector(_timerFired:)
|
||||||
|
userInfo:nil
|
||||||
|
repeats:YES];
|
||||||
|
NSThread* currentThread = [NSThread currentThread];
|
||||||
|
|
||||||
|
NSDebugLog (@"_registerRealTimer:");
|
||||||
|
[timersLock lock];
|
||||||
|
|
||||||
|
/* Add the real timer into the timers dictionary and to the run loop */
|
||||||
|
[timers setObject:realTimer forKey:currentThread];
|
||||||
|
[[NSRunLoop currentRunLoop]
|
||||||
|
addTimer:realTimer forMode:NSEventTrackingRunLoopMode];
|
||||||
|
|
||||||
|
[timersLock unlock];
|
||||||
|
}
|
||||||
|
|
||||||
+ (void)stopPeriodicEvents
|
+ (void)stopPeriodicEvents
|
||||||
{}
|
{
|
||||||
|
NSTimer* timer;
|
||||||
|
NSThread* currentThread;
|
||||||
|
|
||||||
|
NSDebugLog (@"stopPeriodicEvents");
|
||||||
|
[timersLock lock];
|
||||||
|
|
||||||
|
currentThread = [NSThread currentThread];
|
||||||
|
/* Remove any existing timer for this thread */
|
||||||
|
timer = [timers objectForKey:currentThread];
|
||||||
|
[timer invalidate];
|
||||||
|
[timers removeObjectForKey:currentThread];
|
||||||
|
|
||||||
|
[timersLock unlock];
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Instance methods
|
// Instance methods
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Author: Ovidiu Predescu <ovidiu@bx.logicnet.ro>
|
Author: Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
Date: February 1997
|
Date: February 1997
|
||||||
A completely rewritten version of the original source by Scott Christley.
|
A completely rewritten version of the original source by Scott Christley.
|
||||||
|
|
||||||
|
|
180
Source/NSForm.m
180
Source/NSForm.m
|
@ -1,12 +1,12 @@
|
||||||
/*
|
/*
|
||||||
NSForm.m
|
NSForm.m
|
||||||
|
|
||||||
Form class, a text field with a label
|
Form class, a text field with a label
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Author: Scott Christley <scottc@net-community.com>
|
Author: Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
Date: 1996
|
Date: March 1997
|
||||||
|
|
||||||
This file is part of the GNUstep GUI Library.
|
This file is part of the GNUstep GUI Library.
|
||||||
|
|
||||||
|
@ -27,103 +27,145 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <AppKit/NSForm.h>
|
#include <AppKit/NSForm.h>
|
||||||
|
#include <AppKit/NSFormCell.h>
|
||||||
|
|
||||||
@implementation NSForm
|
@implementation NSForm
|
||||||
|
|
||||||
//
|
- (NSFormCell*)addEntry:(NSString*)title
|
||||||
// Laying Out the Form
|
|
||||||
//
|
|
||||||
- (NSFormCell *)addEntry:(NSString *)title
|
|
||||||
{
|
{
|
||||||
return nil;
|
return [self insertEntry:title atIndex:[self numberOfRows]];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSFormCell *)insertEntry:(NSString *)title
|
- (NSFormCell*)insertEntry:(NSString*)title
|
||||||
atIndex:(int)index
|
atIndex:(int)index
|
||||||
{
|
{
|
||||||
return nil;
|
[self insertRow:index];
|
||||||
|
return [self cellAtRow:index column:0];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)removeEntryAtIndex:(int)index
|
- (void)removeEntryAtIndex:(int)index
|
||||||
{}
|
{
|
||||||
|
[self removeRow:index];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setBezeled:(BOOL)flag
|
||||||
|
{
|
||||||
|
int i, count = [self numberOfRows];
|
||||||
|
|
||||||
|
/* Set the bezeled attribute to the cell prototype */
|
||||||
|
[[self prototype] setBezeled:flag];
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
[[self cellAtRow:i column:0] setBezeled:flag];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setBordered:(BOOL)flag
|
||||||
|
{
|
||||||
|
int i, count = [self numberOfRows];
|
||||||
|
|
||||||
|
/* Set the bordered attribute to the cell prototype */
|
||||||
|
[[self prototype] setBordered:flag];
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
[[self cellAtRow:i column:0] setBordered:flag];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setEntryWidth:(float)width
|
||||||
|
{
|
||||||
|
NSSize size = [self cellSize];
|
||||||
|
|
||||||
|
size.width = width;
|
||||||
|
[self setCellSize:size];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)setInterlineSpacing:(float)spacing
|
- (void)setInterlineSpacing:(float)spacing
|
||||||
{}
|
{
|
||||||
|
[self setIntercellSpacing:NSMakeSize(0, spacing)];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* For the title attributes we use the corresponding attributes from the cell.
|
||||||
|
For the text attributes we use instead the attributes inherited from the
|
||||||
|
NSCell class. */
|
||||||
|
- (void)setTitleAlignment:(NSTextAlignment)aMode
|
||||||
|
{
|
||||||
|
int i, count = [self numberOfRows];
|
||||||
|
|
||||||
|
/* Set the title alignment attribute to the cell prototype */
|
||||||
|
[[self prototype] setTitleAlignment:aMode];
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
[[self cellAtRow:i column:0] setTitleAlignment:aMode];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setTextAlignment:(int)aMode
|
||||||
|
{
|
||||||
|
int i, count = [self numberOfRows];
|
||||||
|
|
||||||
|
/* Set the text alignment attribute to the cell prototype */
|
||||||
|
[[self prototype] setAlignment:aMode];
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
[[self cellAtRow:i column:0] setAlignment:aMode];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setTitleFont:(NSFont*)fontObject
|
||||||
|
{
|
||||||
|
int i, count = [self numberOfRows];
|
||||||
|
|
||||||
|
/* Set the title font attribute to the cell prototype */
|
||||||
|
[[self prototype] setTitleFont:fontObject];
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
[[self cellAtRow:i column:0] setTitleFont:fontObject];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setTextFont:(NSFont*)fontObject
|
||||||
|
{
|
||||||
|
int i, count = [self numberOfRows];
|
||||||
|
|
||||||
|
/* Set the text font attribute to the cell prototype */
|
||||||
|
[[self prototype] setFont:fontObject];
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
[[self cellAtRow:i column:0] setFont:fontObject];
|
||||||
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Finding Indices
|
|
||||||
//
|
|
||||||
- (int)indexOfCellWithTag:(int)aTag
|
- (int)indexOfCellWithTag:(int)aTag
|
||||||
{
|
{
|
||||||
return 0;
|
int i, count = [self numberOfRows];
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
if ([[self cellAtRow:i column:0] tag] == aTag)
|
||||||
|
return i;
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (int)indexOfSelectedItem
|
- (int)indexOfSelectedItem
|
||||||
{
|
{
|
||||||
return 0;
|
return [self selectedRow];
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Modifying Graphic Attributes
|
|
||||||
//
|
|
||||||
- (void)setBezeled:(BOOL)flag
|
|
||||||
{}
|
|
||||||
|
|
||||||
- (void)setBordered:(BOOL)flag
|
|
||||||
{}
|
|
||||||
|
|
||||||
- (void)setTextAlignment:(int)mode
|
|
||||||
{}
|
|
||||||
|
|
||||||
- (void)setTextFont:(NSFont *)fontObject
|
|
||||||
{}
|
|
||||||
|
|
||||||
- (void)setTitleAlignment:(NSTextAlignment)mode
|
|
||||||
{}
|
|
||||||
|
|
||||||
- (void)setTitleFont:(NSFont *)fontObject
|
|
||||||
{}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Setting the Cell Class
|
|
||||||
//
|
|
||||||
+ (Class)cellClass
|
|
||||||
{
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)setCellClass:(Class)classId
|
|
||||||
{}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Getting a Cell
|
|
||||||
//
|
|
||||||
- (id)cellAtIndex:(int)index
|
- (id)cellAtIndex:(int)index
|
||||||
{
|
{
|
||||||
return nil;
|
return [self cellAtRow:index column:0];
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Displaying a Cell
|
|
||||||
//
|
|
||||||
- (void)drawCellAtIndex:(int)index
|
- (void)drawCellAtIndex:(int)index
|
||||||
{}
|
{
|
||||||
|
id theCell = [self cellAtIndex:index];
|
||||||
|
|
||||||
|
[theCell drawWithFrame:[self cellFrameAtRow:index column:0]
|
||||||
|
inView:self];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)drawCellAtRow:(int)row column:(int)column
|
||||||
|
{
|
||||||
|
[self drawCellAtIndex:row];
|
||||||
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Editing Text
|
|
||||||
//
|
|
||||||
- (void)selectTextAtIndex:(int)index
|
- (void)selectTextAtIndex:(int)index
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//
|
|
||||||
// Resizing the Form
|
|
||||||
//
|
|
||||||
- (void)setEntryWidth:(float)width
|
|
||||||
{}
|
|
||||||
|
|
||||||
//
|
|
||||||
// NSCoding protocol
|
|
||||||
//
|
|
||||||
- (void)encodeWithCoder:aCoder
|
- (void)encodeWithCoder:aCoder
|
||||||
{
|
{
|
||||||
[super encodeWithCoder:aCoder];
|
[super encodeWithCoder:aCoder];
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
|
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Author: Scott Christley <scottc@net-community.com>
|
Author: Ovidiu Predescu <ovidiu@net-community.com>
|
||||||
Date: 1996
|
Date: March 1997
|
||||||
|
|
||||||
This file is part of the GNUstep GUI Library.
|
This file is part of the GNUstep GUI Library.
|
||||||
|
|
||||||
|
@ -27,83 +27,101 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <AppKit/NSFormCell.h>
|
#include <AppKit/NSFormCell.h>
|
||||||
|
#include <AppKit/NSFont.h>
|
||||||
|
#include <AppKit/NSTextFieldCell.h>
|
||||||
|
|
||||||
@implementation NSFormCell
|
@implementation NSFormCell
|
||||||
|
|
||||||
//
|
/* The title attributes are those inherited from the NSActionCell class. */
|
||||||
// Initializing an NSFormCell
|
|
||||||
//
|
- init
|
||||||
- (id)initTextCell:(NSString *)aString
|
|
||||||
{
|
{
|
||||||
return nil;
|
self = [super init];
|
||||||
|
[self setBordered:NO];
|
||||||
|
[self setBezeled:NO];
|
||||||
|
titleWidth = -1;
|
||||||
|
textCell = [NSTextFieldCell new];
|
||||||
|
[textCell setBordered:YES];
|
||||||
|
[textCell setBezeled:YES];
|
||||||
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
- (void)dealloc
|
||||||
// Determining an NSFormCell's Size
|
|
||||||
//
|
|
||||||
- (NSSize)cellSizeForBounds:(NSRect)aRect
|
|
||||||
{
|
{
|
||||||
return NSZeroSize;
|
[textCell release];
|
||||||
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Determining Graphic Attributes
|
|
||||||
//
|
|
||||||
- (BOOL)isOpaque
|
- (BOOL)isOpaque
|
||||||
{
|
{
|
||||||
return NO;
|
return [super isOpaque] && [textCell isOpaque];
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
- (void)setTitle:(NSString*)aString
|
||||||
// Modifying the Title
|
{
|
||||||
//
|
[self setStringValue:aString];
|
||||||
- (void)setTitle:(NSString *)aString
|
}
|
||||||
{}
|
|
||||||
|
|
||||||
- (void)setTitleAlignment:(NSTextAlignment)mode
|
- (void)setTitleAlignment:(NSTextAlignment)mode
|
||||||
{}
|
{
|
||||||
|
[self setAlignment:mode];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)setTitleFont:(NSFont *)fontObject
|
- (void)setTitleFont:(NSFont*)fontObject
|
||||||
{}
|
{
|
||||||
|
[self setFont:fontObject];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)setTitleWidth:(float)width
|
- (void)setTitleWidth:(float)width
|
||||||
{}
|
|
||||||
|
|
||||||
- (NSString *)title
|
|
||||||
{
|
{
|
||||||
return nil;
|
titleWidth = width;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString*)title
|
||||||
|
{
|
||||||
|
return [self stringValue];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSTextAlignment)titleAlignment
|
- (NSTextAlignment)titleAlignment
|
||||||
{
|
{
|
||||||
return 0;
|
return [self alignment];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSFont *)titleFont
|
- (NSFont*)titleFont
|
||||||
{
|
{
|
||||||
return nil;
|
return [self font];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (float)titleWidth
|
- (float)titleWidth
|
||||||
{
|
{
|
||||||
return 0;
|
if (titleWidth < 0)
|
||||||
|
return [[self font] widthOfString:[self title]];
|
||||||
|
else
|
||||||
|
return titleWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (float)titleWidth:(NSSize)aSize
|
- (float)titleWidth:(NSSize)size
|
||||||
{
|
{
|
||||||
|
// TODO
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Displaying
|
|
||||||
//
|
|
||||||
- (void)drawInteriorWithFrame:(NSRect)cellFrame
|
- (void)drawInteriorWithFrame:(NSRect)cellFrame
|
||||||
inView:(NSView *)controlView
|
inView:(NSView*)controlView
|
||||||
{}
|
{
|
||||||
|
NSRect titleRect = cellFrame;
|
||||||
|
NSRect textRect;
|
||||||
|
|
||||||
|
titleRect.size.width = [self titleWidth] + 4;
|
||||||
|
[super drawInteriorWithFrame:titleRect inView:controlView];
|
||||||
|
|
||||||
|
textRect.origin.x = cellFrame.origin.x + titleRect.size.width;
|
||||||
|
textRect.origin.y = cellFrame.origin.y;
|
||||||
|
textRect.size.width = cellFrame.size.width - titleRect.size.width;
|
||||||
|
textRect.size.height = cellFrame.size.height;
|
||||||
|
[textCell drawInteriorWithFrame:textRect inView:controlView];
|
||||||
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// NSCoding protocol
|
|
||||||
//
|
|
||||||
- (void)encodeWithCoder:aCoder
|
- (void)encodeWithCoder:aCoder
|
||||||
{
|
{
|
||||||
[super encodeWithCoder:aCoder];
|
[super encodeWithCoder:aCoder];
|
||||||
|
|
2940
Source/NSMatrix.m
2940
Source/NSMatrix.m
File diff suppressed because it is too large
Load diff
|
@ -288,7 +288,7 @@ id gnustep_gui_nsscroller_class = nil;
|
||||||
{
|
{
|
||||||
last_point = point;
|
last_point = point;
|
||||||
e = [theApp nextEventMatchingMask:event_mask untilDate:nil
|
e = [theApp nextEventMatchingMask:event_mask untilDate:nil
|
||||||
inMode:nil dequeue:YES];
|
inMode:NSEventTrackingRunLoopMode dequeue:YES];
|
||||||
point = [self convertPoint: [e locationInWindow] fromView: nil];
|
point = [self convertPoint: [e locationInWindow] fromView: nil];
|
||||||
|
|
||||||
if (is_horizontal)
|
if (is_horizontal)
|
||||||
|
@ -383,7 +383,7 @@ id gnustep_gui_nsscroller_class = nil;
|
||||||
{
|
{
|
||||||
last_point = point;
|
last_point = point;
|
||||||
e = [theApp nextEventMatchingMask:event_mask untilDate:nil
|
e = [theApp nextEventMatchingMask:event_mask untilDate:nil
|
||||||
inMode:nil dequeue:YES];
|
inMode:NSEventTrackingRunLoopMode dequeue:YES];
|
||||||
|
|
||||||
point = [self convertPoint: [e locationInWindow] fromView: nil];
|
point = [self convertPoint: [e locationInWindow] fromView: nil];
|
||||||
|
|
||||||
|
|
|
@ -936,7 +936,7 @@ NSString *NSWindowWillMoveNotification = @"WindowWillMove";
|
||||||
{
|
{
|
||||||
NSApplication *theApp = [NSApplication sharedApplication];
|
NSApplication *theApp = [NSApplication sharedApplication];
|
||||||
return [theApp nextEventMatchingMask: mask untilDate: nil
|
return [theApp nextEventMatchingMask: mask untilDate: nil
|
||||||
inMode: @"" dequeue: YES];
|
inMode:NSEventTrackingRunLoopMode dequeue: YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSEvent *)nextEventMatchingMask:(unsigned int)mask
|
- (NSEvent *)nextEventMatchingMask:(unsigned int)mask
|
||||||
|
|
138
aclocal.m4
vendored
138
aclocal.m4
vendored
|
@ -2,7 +2,8 @@
|
||||||
#
|
#
|
||||||
# Copyright (C) 1995, 1996 Free Software Foundation, Inc.
|
# Copyright (C) 1995, 1996 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# Written by: Adam Fedor <fedor@boulder.colorado.edu>
|
# Author: Adam Fedor <fedor@boulder.colorado.edu>
|
||||||
|
# Author: Ovidiu Predescu <ovidiu@bx.logicnet.ro>
|
||||||
#
|
#
|
||||||
# This file is part of the GNU Objective-C library.
|
# This file is part of the GNU Objective-C library.
|
||||||
#
|
#
|
||||||
|
@ -145,3 +146,138 @@ AC_SUBST(DYNAMIC_BUNDLER_LINKER)dnl
|
||||||
AC_SUBST(DYNAMIC_LDFLAGS)dnl
|
AC_SUBST(DYNAMIC_LDFLAGS)dnl
|
||||||
AC_SUBST(DYNAMIC_CFLAGS)dnl
|
AC_SUBST(DYNAMIC_CFLAGS)dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AC_DEFUN(AC_LANG_OBJECTIVE_C,
|
||||||
|
[AC_REQUIRE([AC_PROG_CC])dnl
|
||||||
|
define([AC_LANG], [AC_LANG_OBJECTIVE_C])dnl
|
||||||
|
ac_ext=m
|
||||||
|
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
||||||
|
ac_cpp='$CPP $OBJC_RUNTIME_FLAG'
|
||||||
|
ac_compile='${CC-cc} -c $OBJC_RUNTIME_FLAG $CFLAGS conftest.$ac_ext 1>&AC_FD_CC 2>&AC_FD_CC'
|
||||||
|
ac_link='${CC-cc} -o conftest $OBJC_RUNTIME_FLAG $CFLAGS $LDFLAGS conftest.$ac_ext $LIBS $OBJC_LIBS 1>&AC_FD_CC 2>&AC_FD_CC'
|
||||||
|
])dnl
|
||||||
|
|
||||||
|
AC_DEFUN(AC_FIND_FOUNDATION,
|
||||||
|
[dnl
|
||||||
|
AC_SUBST(FOUNDATION_LIBRARY)dnl
|
||||||
|
dnl
|
||||||
|
AC_REQUIRE([AC_PROG_CC])dnl
|
||||||
|
AC_REQUIRE([AC_C_CROSS])dnl
|
||||||
|
AC_MSG_CHECKING(for the Foundation library)
|
||||||
|
AC_CACHE_VAL(ac_cv_foundation_library,
|
||||||
|
[AC_LANG_SAVE[]dnl
|
||||||
|
AC_LANG_OBJECTIVE_C[]
|
||||||
|
AC_TRY_COMPILE(
|
||||||
|
#include <Foundation/preface.h>
|
||||||
|
,
|
||||||
|
, ac_cv_foundation_library="$ac_cv_foundation_library gnustep-base")
|
||||||
|
AC_TRY_COMPILE(
|
||||||
|
#include <Foundation/exceptions/FoundationException.h>
|
||||||
|
,
|
||||||
|
, ac_cv_foundation_library="$ac_cv_foundation_library libFoundation")
|
||||||
|
AC_TRY_COMPILE(
|
||||||
|
#include <objects/stdobjects.h>
|
||||||
|
,
|
||||||
|
, ac_cv_foundation_library="$ac_cv_foundation_library libobjects")
|
||||||
|
AC_LANG_RESTORE[]dnl
|
||||||
|
if test "$FOUNDATION" = ""; then
|
||||||
|
AC_TRY_CPP(
|
||||||
|
#include <foundation/NSObject.h>
|
||||||
|
, ac_cv_foundation_library=foundation)
|
||||||
|
else
|
||||||
|
ac_cv_foundation_library=$FOUNDATION
|
||||||
|
fi
|
||||||
|
])dnl
|
||||||
|
libs_found=`echo ${ac_cv_foundation_library} | awk '{print NF}' -`
|
||||||
|
if test $libs_found -gt 1; then
|
||||||
|
echo "" 1>&2
|
||||||
|
AC_MSG_ERROR([More than one Foundation library installed on your system. In the FOUNDATION variable you must specify exactly one of the following libraries: ${ac_cv_foundation_library}])
|
||||||
|
fi
|
||||||
|
FOUNDATION_LIBRARY=`echo ${ac_cv_foundation_library} | awk '{print $1}'`
|
||||||
|
case "$FOUNDATION_LIBRARY" in
|
||||||
|
foundation)
|
||||||
|
OBJC_RUNTIME=next
|
||||||
|
|
||||||
|
# save the prefix
|
||||||
|
old_prefix=$prefix
|
||||||
|
prefix=$ac_default_prefix
|
||||||
|
CFLAGS="-I`eval \"echo $includedir\"`/next $CFLAGS"
|
||||||
|
# restore the value of prefix
|
||||||
|
prefix=$old_prefix
|
||||||
|
|
||||||
|
LIBS="$LIBS -lFoundation_s";
|
||||||
|
AC_DEFINE(NeXT_foundation_LIBRARY);;
|
||||||
|
libobjects)
|
||||||
|
LIBS="$LIBS -lobjects"
|
||||||
|
AC_DEFINE(GNUSTEP_BASE_LIBRARY);;
|
||||||
|
gnustep-base)
|
||||||
|
LIBS="$LIBS -lgnustep-base"
|
||||||
|
AC_DEFINE(GNUSTEP_BASE_LIBRARY);;
|
||||||
|
libFoundation)
|
||||||
|
if test "$FOUNDATION_LIB" = ""; then
|
||||||
|
FOUNDATION_LIB=Foundation
|
||||||
|
fi
|
||||||
|
LIBS="-l${FOUNDATION_LIB} $LIBS"
|
||||||
|
AC_DEFINE(LIB_FOUNDATION_LIBRARY);;
|
||||||
|
*)
|
||||||
|
AC_MSG_ERROR(Unknown $FOUNDATION_LIBRARY library!);;
|
||||||
|
esac
|
||||||
|
AC_MSG_RESULT(${ac_cv_foundation_library})
|
||||||
|
AC_DETERMINE_FOUNDATION_RUNTIME
|
||||||
|
])dnl
|
||||||
|
|
||||||
|
AC_DEFUN(AC_DETERMINE_FOUNDATION_RUNTIME,
|
||||||
|
[dnl
|
||||||
|
AC_SUBST(OBJC_RUNTIME)dnl
|
||||||
|
AC_SUBST(OBJC_RUNTIME_FLAG)dnl
|
||||||
|
dnl
|
||||||
|
AC_REQUIRE([AC_PROG_CC])dnl
|
||||||
|
AC_REQUIRE([AC_C_CROSS])dnl
|
||||||
|
AC_MSG_CHECKING(for the Objective-C runtime)
|
||||||
|
AC_CACHE_VAL(ac_cv_objc_runtime,
|
||||||
|
[if test "$OBJC_RUNTIME" = ""; then
|
||||||
|
AC_LANG_SAVE[]dnl
|
||||||
|
AC_LANG_OBJECTIVE_C[]
|
||||||
|
AC_TRY_LINK([#include <Foundation/NSString.h>],
|
||||||
|
[extern id objc_lookUpClass(char*);
|
||||||
|
id class = objc_lookUpClass("NSObject");
|
||||||
|
id obj = [class alloc];
|
||||||
|
puts([[obj description] cString]);
|
||||||
|
], ac_cv_objc_runtime=NeXT, ac_cv_objc_runtime=unknown)
|
||||||
|
if test $ac_cv_objc_runtime = unknown; then
|
||||||
|
OBJC_RUNTIME_FLAG=-fgnu-runtime
|
||||||
|
LIBS="$LIBS -lobjc"
|
||||||
|
AC_TRY_LINK([#include <Foundation/NSString.h>
|
||||||
|
#include <objc/objc-api.h>],
|
||||||
|
[id class = objc_lookup_class("NSObject");
|
||||||
|
id obj = [class alloc];
|
||||||
|
puts([[obj description] cString]);
|
||||||
|
], ac_cv_objc_runtime=GNU, ac_cv_objc_runtime=unknown)
|
||||||
|
fi
|
||||||
|
AC_LANG_RESTORE[]
|
||||||
|
fi
|
||||||
|
])dnl
|
||||||
|
OBJC_RUNTIME=$ac_cv_objc_runtime
|
||||||
|
if test "`echo ${OBJC_RUNTIME} | tr a-z A-Z`" = "GNU"; then
|
||||||
|
OBJC_RUNTIME=GNU
|
||||||
|
OBJC_RUNTIME_FLAG=-fgnu-runtime
|
||||||
|
ac_cv_objc_runtime=GNU
|
||||||
|
LIBS="$LIBS -lobjc"
|
||||||
|
AC_DEFINE(GNU_RUNTIME)
|
||||||
|
elif test "`echo ${OBJC_RUNTIME} | tr a-z A-Z`" = "NEXT"; then
|
||||||
|
OBJC_RUNTIME=NeXT
|
||||||
|
OBJC_RUNTIME_FLAG=-fnext-runtime
|
||||||
|
ac_cv_objc_runtime=NeXT
|
||||||
|
AC_DEFINE(NeXT_RUNTIME)
|
||||||
|
else
|
||||||
|
OBJC_RUNTIME=unknown
|
||||||
|
fi
|
||||||
|
if test ${OBJC_RUNTIME} = unknown; then
|
||||||
|
echo
|
||||||
|
rm -f conftest* confdefs* core core.* *.core
|
||||||
|
AC_MSG_ERROR([Cannot determine the Objective-C runtime! Probably you have
|
||||||
|
to specify some additional libraries needed to link an ObjC program, so please
|
||||||
|
take a look in the config.log file to see the reason and try again.])
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT(${ac_cv_objc_runtime})
|
||||||
|
])dnl
|
||||||
|
|
370
configure
vendored
370
configure
vendored
|
@ -1098,6 +1098,373 @@ fi
|
||||||
config_include=''
|
config_include=''
|
||||||
|
|
||||||
|
|
||||||
|
# Checking for some additional libraries we might need
|
||||||
|
echo $ac_n "checking for -ldl""... $ac_c" 1>&6
|
||||||
|
ac_lib_var=`echo dl'_'dlopen | tr './+\055' '__p_'`
|
||||||
|
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||||
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
else
|
||||||
|
ac_save_LIBS="$LIBS"
|
||||||
|
LIBS="-ldl $LIBS"
|
||||||
|
cat > conftest.$ac_ext <<EOF
|
||||||
|
#line 1111 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
/* Override any gcc2 internal prototype to avoid an error. */
|
||||||
|
/* We use char because int might match the return type of a gcc2
|
||||||
|
builtin and then its argument prototype would still apply. */
|
||||||
|
char dlopen();
|
||||||
|
|
||||||
|
int main() { return 0; }
|
||||||
|
int t() {
|
||||||
|
dlopen()
|
||||||
|
; return 0; }
|
||||||
|
EOF
|
||||||
|
if { (eval echo configure:1123: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
|
||||||
|
rm -rf conftest*
|
||||||
|
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||||
|
else
|
||||||
|
rm -rf conftest*
|
||||||
|
eval "ac_cv_lib_$ac_lib_var=no"
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
LIBS="$ac_save_LIBS"
|
||||||
|
|
||||||
|
fi
|
||||||
|
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
||||||
|
echo "$ac_t""yes" 1>&6
|
||||||
|
ac_tr_lib=HAVE_LIB`echo dl | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
||||||
|
cat >> confdefs.h <<EOF
|
||||||
|
#define $ac_tr_lib 1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
LIBS="-ldl $LIBS"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$ac_t""no" 1>&6
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo $ac_n "checking for -lpthread""... $ac_c" 1>&6
|
||||||
|
ac_lib_var=`echo pthread'_'pthread_create | tr './+\055' '__p_'`
|
||||||
|
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||||
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
else
|
||||||
|
ac_save_LIBS="$LIBS"
|
||||||
|
LIBS="-lpthread $LIBS"
|
||||||
|
cat > conftest.$ac_ext <<EOF
|
||||||
|
#line 1155 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
/* Override any gcc2 internal prototype to avoid an error. */
|
||||||
|
/* We use char because int might match the return type of a gcc2
|
||||||
|
builtin and then its argument prototype would still apply. */
|
||||||
|
char pthread_create();
|
||||||
|
|
||||||
|
int main() { return 0; }
|
||||||
|
int t() {
|
||||||
|
pthread_create()
|
||||||
|
; return 0; }
|
||||||
|
EOF
|
||||||
|
if { (eval echo configure:1167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
|
||||||
|
rm -rf conftest*
|
||||||
|
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||||
|
else
|
||||||
|
rm -rf conftest*
|
||||||
|
eval "ac_cv_lib_$ac_lib_var=no"
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
LIBS="$ac_save_LIBS"
|
||||||
|
|
||||||
|
fi
|
||||||
|
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
||||||
|
echo "$ac_t""yes" 1>&6
|
||||||
|
ac_tr_lib=HAVE_LIB`echo pthread | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
||||||
|
cat >> confdefs.h <<EOF
|
||||||
|
#define $ac_tr_lib 1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
LIBS="-lpthread $LIBS"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$ac_t""no" 1>&6
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo $ac_n "checking for -lm""... $ac_c" 1>&6
|
||||||
|
ac_lib_var=`echo m'_'sqrt | tr './+\055' '__p_'`
|
||||||
|
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||||
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
else
|
||||||
|
ac_save_LIBS="$LIBS"
|
||||||
|
LIBS="-lm $LIBS"
|
||||||
|
cat > conftest.$ac_ext <<EOF
|
||||||
|
#line 1199 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
/* Override any gcc2 internal prototype to avoid an error. */
|
||||||
|
/* We use char because int might match the return type of a gcc2
|
||||||
|
builtin and then its argument prototype would still apply. */
|
||||||
|
char sqrt();
|
||||||
|
|
||||||
|
int main() { return 0; }
|
||||||
|
int t() {
|
||||||
|
sqrt()
|
||||||
|
; return 0; }
|
||||||
|
EOF
|
||||||
|
if { (eval echo configure:1211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
|
||||||
|
rm -rf conftest*
|
||||||
|
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||||
|
else
|
||||||
|
rm -rf conftest*
|
||||||
|
eval "ac_cv_lib_$ac_lib_var=no"
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
LIBS="$ac_save_LIBS"
|
||||||
|
|
||||||
|
fi
|
||||||
|
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
||||||
|
echo "$ac_t""yes" 1>&6
|
||||||
|
ac_tr_lib=HAVE_LIB`echo m | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
||||||
|
cat >> confdefs.h <<EOF
|
||||||
|
#define $ac_tr_lib 1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
LIBS="-lm $LIBS"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$ac_t""no" 1>&6
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Determine the Foundation library
|
||||||
|
echo $ac_n "checking for the Foundation library""... $ac_c" 1>&6
|
||||||
|
if eval "test \"`echo '$''{'ac_cv_foundation_library'+set}'`\" = set"; then
|
||||||
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
else
|
||||||
|
ac_ext=m
|
||||||
|
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
||||||
|
ac_cpp='$CPP $OBJC_RUNTIME_FLAG'
|
||||||
|
ac_compile='${CC-cc} -c $OBJC_RUNTIME_FLAG $CFLAGS conftest.$ac_ext 1>&5 2>&5'
|
||||||
|
ac_link='${CC-cc} -o conftest $OBJC_RUNTIME_FLAG $CFLAGS $LDFLAGS conftest.$ac_ext $LIBS $OBJC_LIBS 1>&5 2>&5'
|
||||||
|
|
||||||
|
cat > conftest.$ac_ext <<EOF
|
||||||
|
#line 1248 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
#include <Foundation/preface.h>
|
||||||
|
|
||||||
|
int main() { return 0; }
|
||||||
|
int t() {
|
||||||
|
|
||||||
|
; return 0; }
|
||||||
|
EOF
|
||||||
|
if { (eval echo configure:1257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||||
|
rm -rf conftest*
|
||||||
|
ac_cv_foundation_library="$ac_cv_foundation_library gnustep-base"
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
|
cat > conftest.$ac_ext <<EOF
|
||||||
|
#line 1264 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
#include <Foundation/exceptions/FoundationException.h>
|
||||||
|
|
||||||
|
int main() { return 0; }
|
||||||
|
int t() {
|
||||||
|
|
||||||
|
; return 0; }
|
||||||
|
EOF
|
||||||
|
if { (eval echo configure:1273: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||||
|
rm -rf conftest*
|
||||||
|
ac_cv_foundation_library="$ac_cv_foundation_library libFoundation"
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
|
cat > conftest.$ac_ext <<EOF
|
||||||
|
#line 1280 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
#include <objects/stdobjects.h>
|
||||||
|
|
||||||
|
int main() { return 0; }
|
||||||
|
int t() {
|
||||||
|
|
||||||
|
; return 0; }
|
||||||
|
EOF
|
||||||
|
if { (eval echo configure:1289: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||||
|
rm -rf conftest*
|
||||||
|
ac_cv_foundation_library="$ac_cv_foundation_library libobjects"
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
|
ac_ext=c
|
||||||
|
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
||||||
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
|
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
|
||||||
|
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
|
||||||
|
if test "$FOUNDATION" = ""; then
|
||||||
|
cat > conftest.$ac_ext <<EOF
|
||||||
|
#line 1302 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
#include <foundation/NSObject.h>
|
||||||
|
|
||||||
|
EOF
|
||||||
|
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||||
|
{ (eval echo configure:1308: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||||
|
ac_err=`grep -v '^ *+' conftest.out`
|
||||||
|
if test -z "$ac_err"; then
|
||||||
|
rm -rf conftest*
|
||||||
|
ac_cv_foundation_library=foundation
|
||||||
|
else
|
||||||
|
echo "$ac_err" >&5
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
else
|
||||||
|
ac_cv_foundation_library=$FOUNDATION
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
libs_found=`echo ${ac_cv_foundation_library} | awk '{print NF}' -`
|
||||||
|
if test $libs_found -gt 1; then
|
||||||
|
echo "" 1>&2
|
||||||
|
{ echo "configure: error: More than one Foundation library installed on your system. In the FOUNDATION variable you must specify exactly one of the following libraries: ${ac_cv_foundation_library}" 1>&2; exit 1; }
|
||||||
|
fi
|
||||||
|
FOUNDATION_LIBRARY=`echo ${ac_cv_foundation_library} | awk '{print }'`
|
||||||
|
case "$FOUNDATION_LIBRARY" in
|
||||||
|
foundation)
|
||||||
|
OBJC_RUNTIME=next
|
||||||
|
|
||||||
|
# save the prefix
|
||||||
|
old_prefix=$prefix
|
||||||
|
prefix=$ac_default_prefix
|
||||||
|
CFLAGS="-I`eval \"echo $includedir\"`/next $CFLAGS"
|
||||||
|
# restore the value of prefix
|
||||||
|
prefix=$old_prefix
|
||||||
|
|
||||||
|
LIBS="$LIBS -lFoundation_s";
|
||||||
|
cat >> confdefs.h <<\EOF
|
||||||
|
#define NeXT_foundation_LIBRARY 1
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
libobjects)
|
||||||
|
LIBS="$LIBS -lobjects"
|
||||||
|
cat >> confdefs.h <<\EOF
|
||||||
|
#define GNUSTEP_BASE_LIBRARY 1
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
gnustep-base)
|
||||||
|
LIBS="$LIBS -lgnustep-base"
|
||||||
|
cat >> confdefs.h <<\EOF
|
||||||
|
#define GNUSTEP_BASE_LIBRARY 1
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
libFoundation)
|
||||||
|
if test "$FOUNDATION_LIB" = ""; then
|
||||||
|
FOUNDATION_LIB=Foundation
|
||||||
|
fi
|
||||||
|
LIBS="-l${FOUNDATION_LIB} $LIBS"
|
||||||
|
cat >> confdefs.h <<\EOF
|
||||||
|
#define LIB_FOUNDATION_LIBRARY 1
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
{ echo "configure: error: Unknown $FOUNDATION_LIBRARY library!" 1>&2; exit 1; };;
|
||||||
|
esac
|
||||||
|
echo "$ac_t""${ac_cv_foundation_library}" 1>&6
|
||||||
|
echo $ac_n "checking for the Objective-C runtime""... $ac_c" 1>&6
|
||||||
|
if eval "test \"`echo '$''{'ac_cv_objc_runtime'+set}'`\" = set"; then
|
||||||
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
else
|
||||||
|
if test "$OBJC_RUNTIME" = ""; then
|
||||||
|
ac_ext=m
|
||||||
|
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
||||||
|
ac_cpp='$CPP $OBJC_RUNTIME_FLAG'
|
||||||
|
ac_compile='${CC-cc} -c $OBJC_RUNTIME_FLAG $CFLAGS conftest.$ac_ext 1>&5 2>&5'
|
||||||
|
ac_link='${CC-cc} -o conftest $OBJC_RUNTIME_FLAG $CFLAGS $LDFLAGS conftest.$ac_ext $LIBS $OBJC_LIBS 1>&5 2>&5'
|
||||||
|
|
||||||
|
cat > conftest.$ac_ext <<EOF
|
||||||
|
#line 1381 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
#include <Foundation/NSString.h>
|
||||||
|
int main() { return 0; }
|
||||||
|
int t() {
|
||||||
|
extern id objc_lookUpClass(char*);
|
||||||
|
id class = objc_lookUpClass("NSObject");
|
||||||
|
id obj = [class alloc];
|
||||||
|
puts([[obj description] cString]);
|
||||||
|
|
||||||
|
; return 0; }
|
||||||
|
EOF
|
||||||
|
if { (eval echo configure:1393: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
|
||||||
|
rm -rf conftest*
|
||||||
|
ac_cv_objc_runtime=NeXT
|
||||||
|
else
|
||||||
|
rm -rf conftest*
|
||||||
|
ac_cv_objc_runtime=unknown
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
|
if test $ac_cv_objc_runtime = unknown; then
|
||||||
|
OBJC_RUNTIME_FLAG=-fgnu-runtime
|
||||||
|
LIBS="$LIBS -lobjc"
|
||||||
|
cat > conftest.$ac_ext <<EOF
|
||||||
|
#line 1406 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
#include <Foundation/NSString.h>
|
||||||
|
#include <objc/objc-api.h>
|
||||||
|
int main() { return 0; }
|
||||||
|
int t() {
|
||||||
|
id class = objc_lookup_class("NSObject");
|
||||||
|
id obj = [class alloc];
|
||||||
|
puts([[obj description] cString]);
|
||||||
|
|
||||||
|
; return 0; }
|
||||||
|
EOF
|
||||||
|
if { (eval echo configure:1418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
|
||||||
|
rm -rf conftest*
|
||||||
|
ac_cv_objc_runtime=GNU
|
||||||
|
else
|
||||||
|
rm -rf conftest*
|
||||||
|
ac_cv_objc_runtime=unknown
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
|
fi
|
||||||
|
ac_ext=c
|
||||||
|
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
||||||
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
|
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
|
||||||
|
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
OBJC_RUNTIME=$ac_cv_objc_runtime
|
||||||
|
if test "`echo ${OBJC_RUNTIME} | tr a-z A-Z`" = "GNU"; then
|
||||||
|
OBJC_RUNTIME=GNU
|
||||||
|
OBJC_RUNTIME_FLAG=-fgnu-runtime
|
||||||
|
ac_cv_objc_runtime=GNU
|
||||||
|
LIBS="$LIBS -lobjc"
|
||||||
|
cat >> confdefs.h <<\EOF
|
||||||
|
#define GNU_RUNTIME 1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
elif test "`echo ${OBJC_RUNTIME} | tr a-z A-Z`" = "NEXT"; then
|
||||||
|
OBJC_RUNTIME=NeXT
|
||||||
|
OBJC_RUNTIME_FLAG=-fnext-runtime
|
||||||
|
ac_cv_objc_runtime=NeXT
|
||||||
|
cat >> confdefs.h <<\EOF
|
||||||
|
#define NeXT_RUNTIME 1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
else
|
||||||
|
OBJC_RUNTIME=unknown
|
||||||
|
fi
|
||||||
|
if test ${OBJC_RUNTIME} = unknown; then
|
||||||
|
echo
|
||||||
|
rm -f conftest* confdefs* core core.* *.core
|
||||||
|
{ echo "configure: error: Cannot determine the Objective-C runtime! Probably you have
|
||||||
|
to specify some additional libraries needed to link an ObjC program, so please
|
||||||
|
take a look in the config.log file to see the reason and try again." 1>&2; exit 1; }
|
||||||
|
fi
|
||||||
|
echo "$ac_t""${ac_cv_objc_runtime}" 1>&6
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# Write the Makefiles and configuration files
|
# Write the Makefiles and configuration files
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
|
@ -1225,6 +1592,9 @@ s%@INSTALL_DATA@%$INSTALL_DATA%g
|
||||||
s%@RANLIB@%$RANLIB%g
|
s%@RANLIB@%$RANLIB%g
|
||||||
s%@LN_S@%$LN_S%g
|
s%@LN_S@%$LN_S%g
|
||||||
s%@config_include@%$config_include%g
|
s%@config_include@%$config_include%g
|
||||||
|
s%@FOUNDATION_LIBRARY@%$FOUNDATION_LIBRARY%g
|
||||||
|
s%@OBJC_RUNTIME@%$OBJC_RUNTIME%g
|
||||||
|
s%@OBJC_RUNTIME_FLAG@%$OBJC_RUNTIME_FLAG%g
|
||||||
|
|
||||||
CEOF
|
CEOF
|
||||||
EOF
|
EOF
|
||||||
|
|
|
@ -91,6 +91,14 @@ fi
|
||||||
config_include=''
|
config_include=''
|
||||||
AC_SUBST(config_include)
|
AC_SUBST(config_include)
|
||||||
|
|
||||||
|
# Checking for some additional libraries we might need
|
||||||
|
AC_CHECK_LIB(dl, dlopen)
|
||||||
|
AC_CHECK_LIB(pthread, pthread_create)
|
||||||
|
AC_CHECK_LIB(m, sqrt)
|
||||||
|
|
||||||
|
# Determine the Foundation library
|
||||||
|
AC_FIND_FOUNDATION
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# Write the Makefiles and configuration files
|
# Write the Makefiles and configuration files
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue