Merge branch 'master' into NSTableRowView_branch

This commit is contained in:
Gregory Casamento 2024-06-02 00:23:59 -04:00 committed by GitHub
commit d3e2d8c348
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 597 additions and 449 deletions

View file

@ -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 Apples 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.
Groups 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:

View file

@ -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>

View file

@ -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}

839
NEWS

File diff suppressed because it is too large Load diff

View file

@ -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];
}
}

View file

@ -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)

View file

@ -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;
}

View file

@ -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];
}
}

View file

@ -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,

View file

@ -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;
}

View file

@ -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}