mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-22 12:00:45 +00:00
Merge branch 'master' into NSTableRowView_branch
This commit is contained in:
commit
d3e2d8c348
11 changed files with 597 additions and 449 deletions
81
ANNOUNCE
81
ANNOUNCE
|
@ -1,13 +1,13 @@
|
|||
1 Announcement
|
||||
**************
|
||||
|
||||
This is version 0.29.0 of the GNUstep GUI library ('gnustep-gui').
|
||||
This is version 0.31.0 of the GNUstep GUI library (‘gnustep-gui’).
|
||||
|
||||
1.1 What is the GNUstep GUI Library?
|
||||
====================================
|
||||
|
||||
It is a library of graphical user interface classes written completely
|
||||
in the Objective-C language; the classes are based upon Apple's Cocoa
|
||||
in the Objective-C language; the classes are based upon Apple’s Cocoa
|
||||
framework. The library has been enhanced in a number of ways to take
|
||||
advantage of the GNU system. These classes include graphical objects
|
||||
such as buttons, text fields, popup lists, browser lists, and windows;
|
||||
|
@ -25,58 +25,65 @@ systems.
|
|||
|
||||
The GNUstep GUI Library requires the GNU Objective-C compiler, the
|
||||
GNUstep Base Library, the TIFF Graphics library, Independent JPEG
|
||||
Group's libjpeg library, and a back-end component from the GNUstep
|
||||
'Back' library.
|
||||
Group’s libjpeg library, and a back-end component from the GNUstep
|
||||
’Back’ library.
|
||||
|
||||
Additional functionality may be enabled by installing additional
|
||||
libraries. For example, to build the Cairo backend in the GNUstep Back
|
||||
library, you will need to install Cairo.
|
||||
|
||||
1.2 Noteworthy changes in version '0.29.0'
|
||||
1.2 Noteworthy changes in version ‘0.31.0’
|
||||
==========================================
|
||||
|
||||
This version adds support for storyboard files and many new classes.
|
||||
Plus the usual bunch of bug fixes.
|
||||
This version adds view based cell support for NSTableView and
|
||||
NSOutlineView. Plus the usual bunch of bug fixes.
|
||||
|
||||
* Support loading of storyboard files.
|
||||
* Add classes NSSwitch, NSFontAssetRequest,
|
||||
NSMediaLibraryBrowserController, NSScrubberItemView,
|
||||
NSScrubberLayout, NSScrubber, NSSharingServicePickerToolbarItem,
|
||||
NSPathCell, NSPathComponentCell, NSPathControl, NSPathControlItem,
|
||||
NSPersistentDocument, NSAccessibilityCustomAction,
|
||||
NSAccessibilityCustomRotor, NSAccessibilityElement, NSStoryboard,
|
||||
NSStoryboardSegue, NSPageController, NSSplitViewController,
|
||||
NSSplitViewItem, NSTabViewController, NSLayoutAnchor,
|
||||
NSLayoutConstraint, NSLayoutGuide, NSStatusBarButton,
|
||||
NSTextCheckingController, NSTextFinder, NSTextInputContext,
|
||||
NSGridView. Some of these classes are still skeletons.
|
||||
* Fix extraline fragment in text layout.
|
||||
* Better encoding handling in RTF files.
|
||||
* Add more italian translations.
|
||||
* Add MacOSX methods to NSNib, NSMenu and NSWindow.
|
||||
* Focus handling fixes for WindowMaker.
|
||||
* Fix missing colours when loading old colour lists.
|
||||
* Support JPEG export as greyscale image.
|
||||
* Fix memory leak in NSPopupButtonCell.
|
||||
* Fix toolbar flickering.
|
||||
* NSSearchFieldCell use code from GSTheme to display popup.
|
||||
* Fix int decoding to get it working on 64 bit big endian machines.
|
||||
* Add tab stops after last defined at default intervals.
|
||||
* Stop NSWindow from handling windows that are gone, but possibly
|
||||
returned by a slow window manager.
|
||||
* Fix NSTableView/NSTableColumn bindings.
|
||||
• Add TGA detection for ImageMagick extension.
|
||||
• Correct endianess swapping for saving 16 and 32 bit TIFF images.
|
||||
• NSParagraphStyle restore old behaviour to have default tab stops.
|
||||
• Documentation updates.
|
||||
• A fix for autogsdoc documentation creation.
|
||||
• Improve theming for many classes.
|
||||
• Correct keyEquivalentModifierMask decoding in XIB files.
|
||||
• Add imageViewWithImage: to NSImageView.
|
||||
• Add implementation of NSUserInterfaceItemIdentifier to NSView.
|
||||
• Fix NSImageView intercepting mouse events when not editable
|
||||
• Move NSBox method isOpaque to GSTheme.
|
||||
• Many decoding improvements.
|
||||
• Fix compiler warnings.
|
||||
• Generate and install a gnustep-gui.pc file.
|
||||
• Add support for NSFilenamenPboardType in NSTextView.
|
||||
• Add support for NSPasteboardTypePNG in NSBitmapImageRep if the
|
||||
libpng is present.
|
||||
• Add support for ImageMagick >= 7.0
|
||||
• Increase pasteboard timeout to 30 seconds.
|
||||
• Add NSAppearance implementation.
|
||||
• Make PACKAGE_SCOPE public on MinGW.
|
||||
• Started implementing NSShadow.
|
||||
• Move awakeFromNib implementation to NSObject instead of NSView.
|
||||
• Changes for libGIF 5.2 and later.
|
||||
• Update NSViewController with lifeCycle methods.
|
||||
• Avoid accessing instance variables in inline functions when
|
||||
compiling with MSVC.
|
||||
• Add method removeAllItems to NSMenu.
|
||||
• Add badge handling to NSDockTile.
|
||||
• More improvements to layout constraints.
|
||||
• Add implementation of NSDictionaryController.
|
||||
• Add implementation of the NSCollectionView classes.
|
||||
• Improve NSDrawer opening.
|
||||
• Improver CI pipeline.
|
||||
|
||||
1.3 Where can you get it? How can you compile it?
|
||||
=================================================
|
||||
|
||||
The gnustep-gui-0.29.0.tar.gz distribution file has been placed at
|
||||
The gnustep-gui-0.31.0.tar.gz distribution file has been placed at
|
||||
<ftp://ftp.gnustep.org/pub/gnustep/core>.
|
||||
|
||||
It is accompanied by gnustep-gui-0.29.0.tar.gz.sig, a PGP signature
|
||||
It is accompanied by gnustep-gui-0.31.0.tar.gz.sig, a PGP signature
|
||||
which you can validate by putting both files in the same directory and
|
||||
using:
|
||||
|
||||
gpg --verify gnustep-gui-0.29.0.tar.gz.sig
|
||||
gpg --verify gnustep-gui-0.31.0.tar.gz.sig
|
||||
|
||||
Signature has been created using the key with the following
|
||||
fingerprint:
|
||||
|
|
15
ChangeLog
15
ChangeLog
|
@ -14,6 +14,21 @@
|
|||
NSTableRowView implementation.
|
||||
* Source/NSTableView.m: Update to use NSTableRowView
|
||||
when it is view-based.
|
||||
|
||||
2024-05-30 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/GSDisplayServer.m:
|
||||
* Source/NSGraphicsContext.m:
|
||||
* Source/NSWorkspace.m:
|
||||
Avoid using old gnustep_global_lock (removed from base)
|
||||
|
||||
2024-05-26 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* ChangeLog: Update for new release
|
||||
* ANNOUNCE:
|
||||
* NEWS:
|
||||
* Documentation/news.texi: Update of release notes for 0.31.0.
|
||||
* Version: bump to 0.31.0
|
||||
|
||||
2024-05-13 Adam Fox <adam.fox@keysight.com>
|
||||
|
||||
|
|
|
@ -9,6 +9,48 @@
|
|||
The currently released version of the library is @samp{@value{GNUSTEP-GUI-VERSION}}.
|
||||
@end ifclear
|
||||
|
||||
@section Noteworthy changes in version @samp{0.31.0}
|
||||
|
||||
This version adds view based cell support for NSTableView and NSOutlineView.
|
||||
Plus the usual bunch of bug fixes.
|
||||
|
||||
@itemize @bullet
|
||||
@item Add TGA detection for ImageMagick extension.
|
||||
@item Correct endianess swapping for saving 16 and 32 bit TIFF images.
|
||||
@item NSParagraphStyle restore old behaviour to have default tab stops.
|
||||
@item Documentation updates.
|
||||
@item A fix for autogsdoc documentation creation.
|
||||
@item Improve theming for many classes.
|
||||
@item Correct keyEquivalentModifierMask decoding in XIB files.
|
||||
@item Add imageViewWithImage: to NSImageView.
|
||||
@item Add implementation of NSUserInterfaceItemIdentifier to NSView.
|
||||
@item Fix NSImageView intercepting mouse events when not editable
|
||||
@item Move NSBox method isOpaque to GSTheme.
|
||||
@item Many decoding improvements.
|
||||
@item Fix compiler warnings.
|
||||
@item Generate and install a gnustep-gui.pc file.
|
||||
@item Add support for NSFilenamenPboardType in NSTextView.
|
||||
@item Add support for NSPasteboardTypePNG in NSBitmapImageRep if the libpng is present.
|
||||
@item Add support for ImageMagick >= 7.0
|
||||
@item Increase pasteboard timeout to 30 seconds.
|
||||
@item Add NSAppearance implementation.
|
||||
@item Make PACKAGE_SCOPE public on MinGW.
|
||||
@item Started implementing NSShadow.
|
||||
@item Move awakeFromNib implementation to NSObject instead of NSView.
|
||||
@item Changes for libGIF 5.2 and later.
|
||||
@item Update NSViewController with lifeCycle methods.
|
||||
@item Avoid accessing instance variables in inline functions when compiling with MSVC.
|
||||
@item Add method removeAllItems to NSMenu.
|
||||
@item Add badge handling to NSDockTile.
|
||||
@item More improvements to layout constraints.
|
||||
@item Add implementation of NSDictionaryController.
|
||||
@item Add implementation of the NSCollectionView classes.
|
||||
@item Improve NSDrawer opening.
|
||||
@item Improver CI pipeline.
|
||||
@end itemize
|
||||
|
||||
@ifclear ANNOUNCE-ONLY
|
||||
|
||||
@section Noteworthy changes in version @samp{0.30.0}
|
||||
|
||||
This version adds parsing support for layout constraints, compilation with MSVC
|
||||
|
@ -48,11 +90,8 @@ and many new classes. Plus the usual bunch of bug fixes.
|
|||
@item Support ImageMagick version >= 7.
|
||||
@item Add github workflow.
|
||||
@item Add icon for speech synthesizer.
|
||||
@item
|
||||
@item
|
||||
@end itemize
|
||||
|
||||
@ifclear ANNOUNCE-ONLY
|
||||
|
||||
@section Noteworthy changes in version @samp{0.29.0}
|
||||
|
||||
|
|
|
@ -123,7 +123,6 @@ GSCurrentServer(void)
|
|||
{
|
||||
if (serverLock == nil)
|
||||
{
|
||||
[gnustep_global_lock lock];
|
||||
if (serverLock == nil)
|
||||
{
|
||||
serverLock = [NSRecursiveLock new];
|
||||
|
@ -132,7 +131,6 @@ GSCurrentServer(void)
|
|||
windowmaps = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
||||
NSNonOwnedPointerMapValueCallBacks, 20);
|
||||
}
|
||||
[gnustep_global_lock unlock];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,9 +2,11 @@
|
|||
|
||||
<abstract>ImageMagick image representation.</abstract>
|
||||
|
||||
Copyright (C) 2011 Free Software Foundation, Inc.
|
||||
Copyright (C) 2011-2024 Free Software Foundation, Inc.
|
||||
|
||||
Author: Eric Wasylishen <ewasylishen@gmail.com>
|
||||
Riccardo Mottola
|
||||
|
||||
Date: June 2011
|
||||
|
||||
This file is part of the GNUstep Application Kit Library.
|
||||
|
@ -123,13 +125,17 @@
|
|||
return bmp;
|
||||
}
|
||||
|
||||
#define SIGNATURE_LENGTH 18
|
||||
|
||||
+ (NSArray*) imageRepsWithData: (NSData *)data allImages: (BOOL)allImages
|
||||
{
|
||||
NSMutableArray *reps = [NSMutableArray array];
|
||||
|
||||
ExceptionInfo *exception = AcquireExceptionInfo();
|
||||
ImageInfo *imageinfo = CloneImageInfo(NULL);
|
||||
Image *images, *image;
|
||||
Image *images;
|
||||
Image *image;
|
||||
char signature[SIGNATURE_LENGTH];
|
||||
|
||||
// Set the background color to transparent
|
||||
// (otherwise SVG's are rendered against a white background by default)
|
||||
|
@ -139,6 +145,14 @@
|
|||
QueryColorDatabase("none", &imageinfo->background_color, exception);
|
||||
#endif
|
||||
|
||||
memset(signature, 0, SIGNATURE_LENGTH);
|
||||
[data getBytes: signature range: NSMakeRange([data length] - 18, 18)];
|
||||
if (strncmp(signature, "TRUEVISION-XFILE.", 17) == 0)
|
||||
{
|
||||
NSWarnLog(@"Targa file detected!, giving a magick hint...");
|
||||
strcpy(imageinfo->magick, "TGA");
|
||||
}
|
||||
|
||||
images = BlobToImage(imageinfo, [data bytes], [data length], exception);
|
||||
|
||||
if (exception->severity != UndefinedException)
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#import <Foundation/NSRunLoop.h>
|
||||
#import <Foundation/NSThread.h>
|
||||
#import <Foundation/NSValue.h>
|
||||
#import <GNUstepBase/GSLock.h>
|
||||
#import <Foundation/NSLock.h>
|
||||
|
||||
#import "AppKit/NSAnimation.h"
|
||||
#import "AppKit/NSApplication.h"
|
||||
|
@ -418,7 +418,7 @@ nsanimation_progressMarkSorter(NSAnimationProgress first, NSAnimationProgress se
|
|||
(BOOL (*)(id,SEL,NSAnimation*)) NULL;
|
||||
|
||||
_isThreaded = NO;
|
||||
_isAnimatingLock = [GSLazyRecursiveLock new];
|
||||
_isAnimatingLock = [NSRecursiveLock new];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
@ -430,7 +430,7 @@ nsanimation_progressMarkSorter(NSAnimationProgress first, NSAnimationProgress se
|
|||
c->_progressMarks = GSIArrayCopyWithZone(_progressMarks, zone);
|
||||
c->_animator = nil;
|
||||
c->_isANewAnimatorNeeded = YES;
|
||||
c->_isAnimatingLock = [GSLazyRecursiveLock new];
|
||||
c->_isAnimatingLock = [NSRecursiveLock new];
|
||||
return c;
|
||||
}
|
||||
|
||||
|
|
|
@ -138,7 +138,6 @@ NSGraphicsContext *GSCurrentContext(void)
|
|||
{
|
||||
if (contextLock == nil)
|
||||
{
|
||||
[gnustep_global_lock lock];
|
||||
if (contextLock == nil)
|
||||
{
|
||||
contextLock = [NSRecursiveLock new];
|
||||
|
@ -147,7 +146,6 @@ NSGraphicsContext *GSCurrentContext(void)
|
|||
classMethodTable =
|
||||
[[NSMutableDictionary allocWithZone: _globalGSZone] init];
|
||||
}
|
||||
[gnustep_global_lock unlock];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
#import <Foundation/NSMapTable.h>
|
||||
#import <Foundation/NSValue.h>
|
||||
#import <Foundation/NSValueTransformer.h>
|
||||
#import <GNUstepBase/GSLock.h>
|
||||
#import <Foundation/NSLock.h>
|
||||
|
||||
#import "AppKit/NSKeyValueBinding.h"
|
||||
#import "GSBindingHelpers.h"
|
||||
|
@ -145,7 +145,7 @@ void GSBindingInvokeAction(NSString *targetKey, NSString *argumentKey,
|
|||
{
|
||||
if (self == [GSKeyValueBinding class])
|
||||
{
|
||||
bindingLock = [GSLazyRecursiveLock new];
|
||||
bindingLock = [NSRecursiveLock new];
|
||||
classTable = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
||||
NSObjectMapValueCallBacks, 128);
|
||||
objectTable = NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks,
|
||||
|
|
|
@ -131,6 +131,7 @@ static NSImage *multipleFiles = nil;
|
|||
static NSImage *unknownApplication = nil;
|
||||
static NSImage *unknownTool = nil;
|
||||
|
||||
static NSLock *classLock = nil;
|
||||
static NSLock *mlock = nil;
|
||||
|
||||
static NSString *GSWorkspaceNotification = @"GSWorkspaceNotification";
|
||||
|
@ -598,26 +599,22 @@ static NSDictionary *urlPreferences = nil;
|
|||
{
|
||||
if (self == [NSWorkspace class])
|
||||
{
|
||||
static BOOL beenHere = NO;
|
||||
NSFileManager *mgr = [NSFileManager defaultManager];
|
||||
NSString *service;
|
||||
NSData *data;
|
||||
NSDictionary *dict;
|
||||
|
||||
[self setVersion: 1];
|
||||
|
||||
[gnustep_global_lock lock];
|
||||
if (beenHere == YES)
|
||||
if (classLock)
|
||||
{
|
||||
[gnustep_global_lock unlock];
|
||||
return;
|
||||
}
|
||||
|
||||
beenHere = YES;
|
||||
classLock = [NSLock new];
|
||||
mlock = [NSLock new];
|
||||
|
||||
NS_DURING
|
||||
{
|
||||
NSFileManager *mgr = [NSFileManager defaultManager];
|
||||
NSString *service;
|
||||
NSData *data;
|
||||
NSDictionary *dict;
|
||||
|
||||
|
||||
service = [[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
|
||||
NSUserDomainMask, YES) objectAtIndex: 0]
|
||||
stringByAppendingPathComponent: @"Services"];
|
||||
|
@ -675,12 +672,9 @@ static NSDictionary *urlPreferences = nil;
|
|||
}
|
||||
NS_HANDLER
|
||||
{
|
||||
[gnustep_global_lock unlock];
|
||||
[localException raise];
|
||||
}
|
||||
NS_ENDHANDLER
|
||||
|
||||
[gnustep_global_lock unlock];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -698,14 +692,14 @@ static NSDictionary *urlPreferences = nil;
|
|||
{
|
||||
if (sharedWorkspace == nil)
|
||||
{
|
||||
[gnustep_global_lock lock];
|
||||
[classLock lock];
|
||||
if (sharedWorkspace == nil)
|
||||
{
|
||||
sharedWorkspace =
|
||||
(NSWorkspace*)NSAllocateObject(self, 0, NSDefaultMallocZone());
|
||||
[sharedWorkspace init];
|
||||
}
|
||||
[gnustep_global_lock unlock];
|
||||
[classLock unlock];
|
||||
}
|
||||
return sharedWorkspace;
|
||||
}
|
||||
|
|
6
Version
6
Version
|
@ -5,15 +5,15 @@
|
|||
GNUSTEP_GUI_GCC=4.0.0
|
||||
|
||||
# Versions for libraries that gnustep-gui is dependent upon
|
||||
GNUSTEP_GUI_BASE=1.28.0
|
||||
GNUSTEP_GUI_BASE=1.30.0
|
||||
GNUSTEP_GUI_LIBTIFF=3.4
|
||||
|
||||
# The version number of this release.
|
||||
GNUSTEP_GUI_MAJOR_VERSION=0
|
||||
GNUSTEP_GUI_MINOR_VERSION=30
|
||||
GNUSTEP_GUI_MINOR_VERSION=31
|
||||
GNUSTEP_GUI_SUBMINOR_VERSION=0
|
||||
# numeric value should match above
|
||||
VERSION_NUMBER=030.0
|
||||
VERSION_NUMBER=031.0
|
||||
GNUSTEP_GUI_VERSION=${GNUSTEP_GUI_MAJOR_VERSION}.${GNUSTEP_GUI_MINOR_VERSION}.${GNUSTEP_GUI_SUBMINOR_VERSION}
|
||||
VERSION=${GNUSTEP_GUI_VERSION}
|
||||
|
||||
|
|
Loading…
Reference in a new issue