Commit graph

5849 commits

Author SHA1 Message Date
fredkiefer
b90d3a341e * Source/NSGraphicsContext.m (+graphicsContextWithGraphicsPort:flipped:):
Rewrite using an init method.
2018-09-14 22:18:16 +02:00
Wolfgang Lux
397a4116cc Avoid calling iconSize method on a null pointer. 2018-08-05 11:18:32 +02:00
fredkiefer
0e1c392ff0 * Source/NSApplication.m (-applicationIconImage): Lazy load the app icon. 2018-08-03 19:37:29 +02:00
fredkiefer
9d8dc3ba55 * Source/NSView.m (-beginPageInRect:atPlacement): Remove check for
empty rect. This will now use the placement translation all the time.
2018-07-27 10:09:44 +02:00
Gregory John Casamento
d4bfdd5580 Fix issue with app icon. 2018-07-20 09:15:26 -04:00
Gregory John Casamento
c9ae46c7ce Fix app icon in dock 2018-07-20 04:08:26 -04:00
fredkiefer
4b04426c06 * Source/NSPrinter.m (-addPPDKeyword:withScanner:withPPDPath:):
Protect against value being nil.
* Source/NSPageLayout.m (-tableView:objectValueForTableColumn:row:):
With standard papers, calculate margins taking into account factorValue.
* Source/NSPrintInfo.m (-initWithDictionary): Fix border calculation.
Idea by Yavor Doganov <yavor@gnu.org>
2018-07-14 20:21:32 +02:00
Ivan Vučica
44f8a4dccb NSOpenGLView.m: Fix docstring for -[NSOpenGLView initWithFrame:pixelFormat:].
There is no such thing as +[NSOpenGLContext defaultPixelFormat].
2018-07-08 12:43:29 +00:00
Riccardo Mottola
96fbdaa81f Check for floorf() and provide simple replacement 2018-06-11 23:46:06 +02:00
Fred Kiefer
584adbd401
Merge branch 'master' into document-nswindowcontroller 2018-05-28 02:56:25 -04:00
fredkiefer
2f9c16ad81 * Source/NSDocument.m (-revertToContentsOfURL:ofType:error:): Add
override calls for deprecated methods.
2018-03-30 17:01:12 +02:00
Graham Lee
436f5efb8f Document methods I have recently used in NSWindowController 2018-03-29 19:38:54 +01:00
fredkiefer
760cfa6d62 * Headers/AppKit/NSSliderCell.h,
* Source/NSSliderCell.m: Rewrite this class to store and access
the value directly. This brings the behaviour closer to Apple's
horrible implementation.
2018-03-11 19:09:08 +01:00
fredkiefer
5735e0775d * Source/NSSegmentedCell.m (-startTrackingAt:inView:,
-continueTracking:at:inView:): Add this methods to enable
tracking for this class.
Patch suggested by Josh Freeman <pikopixel@twilightedge.com>.
2018-02-27 23:32:11 +01:00
fredkiefer
3ad98f9474 * Headers/Additions/GNUstepGUI/GSTheme.h,
* Source/GSThemeDrawing.m: Correct int/NSInteger mismatch detected
by Josh Freeman <pikopixel@twilightedge.com>.
2018-02-27 22:02:54 +01:00
fredkiefer
f2ebe775d9 * Headers/AppKit/NSKeyValueBinding.h,
* Source/NSKeyValueBinding.m: Add helper function NSIsControllerMarker.
2018-02-26 00:13:15 +01:00
fredkiefer
41e02a5ed5 * Source/GSDisplayServer.m: Store the current display server in a
static variable and not in a thread variable.
Idea by Yavor Doganov  <yavor@gnu.org>
2018-02-09 21:31:03 +01:00
fredkiefer
caa58cf72b Tiny fix for bug found by valgrind.
Make sure nominal gets always set for a glyph.
2018-02-05 23:25:36 +01:00
fredkiefer
712e7a4e15 Close sheet before removing from parent.
* Source/NSAlert.m (NSBeginAlertSheet): Move closing the sheet from
here...
* Source/NSApplication.m (-beginSheet:...:contextInfo:): ...to here.
2018-02-04 21:18:43 +01:00
fredkiefer
9451330883 * Source/NSApplication.m (-targetForAction:to:from:): Warn about
the target not responding to the action.
* Source/NSSavePanel.m (_initWithoutGModel): Don't set the OK
button as the target of the browser. Use helper method instead.
2018-01-23 20:56:52 +01:00
fredkiefer
618e31ff42 * Source/NSMenu.m (-update): Restructure by splitting up into two
helper methods.
* Source/NSMenu.m (-performKeyEquivalent:): Use new helper method
to only autoenable menu item with matching key equivalent.
2018-01-14 18:41:23 +01:00
fredkiefer
d31ae5f49b * Source/GSLayoutManager.m
(-glyphRangeForCharacterRange:actualCharacterRange:): Try to
handle attachments at the end of the file more graceful.
2018-01-14 18:17:05 +01:00
fredkiefer
85ba90244b * Source/NSView.m (-_rebuildCoordinates): Use simple path only
when both window and superview are nil. Set the visibleRect in
this case to bounds.
2018-01-07 16:47:36 +01:00
fredkiefer
0c46bc4380 * Source/NSApplication.m (-targetForAction:to:from:): Return nil
if the target is non-nil but does not respond to the action.
2018-01-07 15:09:57 +01:00
Richard Frith-Macdonald
ec19a2de9a Workaround for apparent clang bug calculating ivar offset into NSThread object. 2017-12-27 12:15:31 +00:00
Ivan Vučica
280c3e0095 Clean up -[NSImage initWithCoder:], reduce amount of releases of self.
Some context available in PR #12 and  PR #13.
2017-12-07 19:07:43 +00:00
fredkiefer
7270f8efc7 Add new backingScaleFactor method on NSScreen. 2017-12-03 22:02:06 +01:00
Ivan Vučica
350ba62d7d
Cleanup: Replace tabs with spaces in NSImage.m. 2017-10-29 14:25:47 +00:00
Graham Lee
aff13d41bb correct decoding of named images from keyed archivers
As @tedge noted on the original pull request for this work, I didn't return the correct object in the keyed archiver case.
2017-10-29 14:23:35 +00:00
Graham Lee
2c34ae8fe5 revert spurious whitespace change 2017-10-28 08:48:36 +01:00
Graham Lee
5e3ed6dff7 If an unknown named image is unarchived, keep the name 2017-10-28 08:45:05 +01:00
fredkiefer
e3d51643ca Protect against [window screen] returning nil. 2017-10-05 23:05:28 +02:00
fredkiefer
3ac7a369c5 * Source/NSStepperCell.m (-trackMouse:...untilMouseUp:): Adjust
to changes in super class.
2017-08-31 23:57:41 +02:00
fredkiefer
c72d2df3ff * Source/NSButtonCell.m (-setButtonType:): Warn about unsupported
button types.
* Source/NSCell.m (-performClickWithFrame:inView:): Highlight the
cell only if drawing is possible.
2017-08-27 11:23:43 +02:00
fredkiefer
e853f4fdbf Rewrote mouse tracking logic to be closer to the Cocoa definition. 2017-08-27 11:13:17 +02:00
Daniel Ferreira
3a1bec5d1f Externs: add private string attribute definitions
Define some private NSAttributedString attribute name definitions. Their
functionality is not yet implemented.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
471a81ddb8 NSSpellChecker: implement stub for +isAutomaticQuoteSubstitutionEnabled
Implement stub for +[NSSpellChecker isAutomaticQuoteSubstitutionEnabled]
for compatibility purposes.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
39d9105d35 NSSpellChecker: implement stub for +isAutomaticDashSubstitutionEnabled
Implement stub for +[NSSpellChecker isAutomaticDashSubstitutionEnabled]
for compatibility purposes.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
9e8ef84b54 NSGestureRecognizer: implement stub for -locationInView:
Implement stub for -[NSGestureRecognizer locationInView:] for
compatibility purposes.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
3e9cdce801 NSWindow: add stub for +windowNumberAtPoint:belowWindowWithWindowNumber:
Add stub for +[NSWindow windowNumberAtPoint:belowWindowWithWindowNumber:]
for compatibility purposes.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
10d0dce115 NSSpellChecker: add stub for -checkGrammarOfString:...
Add a stub for the -checkGrammarOfString:... method for compatibility
purposes.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
677572bef1 NSSpellChecker: add stub for +isAutomaticTextReplacementEnabled
Add stub for +[NSSpellChecker isAutomaticTextReplacementEnabled] for
compatibility purposes.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
9ce55e08ca NSSpellChecker: add missing definitions
Add definitions for the NSCorrectionResponse enum for increased
compatibility, as well as some spell checking notification constants.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
4f4db46c87 NSWindow: add stub for -backingScaleFactor
Add stub for -[NSWindow backingScaleFactor] for compatibility purposes.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
07d0f2002f NS{Application,Window}: define modal constants
Define constants and stubs related to modal sheets in GUI for increased
compatibility.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
5e8b278e93 NSFont: define font weight constants
Define font weight constants introduced in macOS 10.11.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
5a66de7139 Externs: export the _NXSmartPaste constant
Export the private _NXSmartPaste constant for compatibility purposes.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
1560978a60 NSAttributedString: add private attribute stub
Add a stub for NSTextInsertionUndoableAttributeName, a private
NSAttributedString attribute.
2017-08-27 01:42:00 +01:00
Riccardo Mottola
78be5ef0ea Initialize density to 0, so that in case it is unset (72dpi) it is not a random value in case the struct is not zeroed 2017-08-25 14:20:58 +02:00
fredkiefer
b713d0c023 Clean up NSPasteboardItem files. 2017-07-31 23:21:59 +02:00
Daniel Ferreira
257017c65f NSGraphicsContext: create -CGContext methods
Create methods which allow a graphics context to be created with a
CGContext as an equivalent to a graphics port. The context set through
this property will be used in gnustep-back.
2017-07-31 11:41:11 +01:00
Ivan Vučica
1cb15c2735 Remove RETAIN() when returning -[NSPasteboardItem types].
Objective-C memory management policy specifies that methods named with
alloc, new, copy and mutableCopy are the ones that return objects with
refcount 1.

Additionally, `@property (..., copy, ...)` only modifies the setter; the getter
still returns the object as-is. While it should be correct to create
a new immutable object every time, we should not create an object
with refcount 1, but an autoreleased object.
2017-07-31 11:36:15 +01:00
Ivan Vučica
4026fbc2be Add _startingItemNumber-related TODOs to NSTextList. 2017-07-31 11:26:43 +01:00
Daniel Ferreira
6d4302cd97 NSTextList: create startingItemNumber property
Add the `startingItemNumber` property to NSTextList introduced in macOS
10.6.
2017-07-31 11:22:59 +01:00
Daniel Ferreira
5403e47b60 NSPasteboardItem: create base implementation
Implement the NSPasteboardItem class. For now, it remains relatively
useless since NSPasteboard does not yet know how to use it. However, it
should be pluggable into NSPasteboard once NSPasteboard learns about
NSPasteboardReading and NSPasteboardWriting.
2017-07-31 11:22:59 +01:00
Daniel Ferreira
ac26b6725b NSTextAlternatives: implement text alternatives class
Implement NSTextAlternatives, a class usually used for choosing
alternatives from a basic string usually for dictation purposes.
2017-07-31 11:22:59 +01:00
Daniel Ferreira
fcb11edca8 NSScroller: define scroller styles
As of macOS 10.7, scrollers gained two types: Legacy and Overlay. Here,
we define these styles as well as a method to determine which is the
"default" style to be used.
2017-07-31 11:22:59 +01:00
fredkiefer
e85a1a0664 * Source/NSMenuView.m (-attachSubmenuForItemAtIndex:): We should
not use [NSMenu display] for NSWindows95InterfaceStyle as there we
	have two NSMenuViews for the NSMenu.
2017-07-28 19:24:45 +02:00
Riccardo Mottola
5627b69f1a Do not initialize a string constant with another string constant or it breaks GCC build as is. Better proposals to ensure the exact same string pointer is used welcome. 2017-07-26 14:23:00 +02:00
Daniel Ferreira
fbdea829c0 NSAttributedString: define writing direction attribute
Define an (unimplemented) NSAttributedString attribute for Unicode
writing direction.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
b29d85f451 NSAttributedString: define NSTextAlternatives attribute
Define an (unimplemented) NSAttributedString attribute for an
NSTextAlternatives object.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
758d524547 NS{Cell,View}: implement stubs for layout direction handling
Implement stubs for the layout direction properties in NSCell and
NSView. Currently, they default to left-to-right layouting.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
05c58fe023 NSAccessibility: declare base Accessibility APIs
Declare base NSAccessibility functions and constants, which have been
implemented as stubs.

In the near future, we could begin supporting some NSAccessibility
informal protocol features (for instance, elements ignored in the
accessible view hierarchy). However, for even considering thorough
accessibility support we would require, at least:

* A proper implementation of the AX* API in gnustep-boron;
* Design integration with screen reading software and other components
for an accessible graphic environment.

which are most certainly long-term tasks.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
e9b0367207 NSControl: create stub for -sizeThatFits:
Create a stub for the -[NSControl sizeThatFits:] function.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
16b0299916 NSVisualEffectView: create class stub
Create stub for the NSVisualEffectView class.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
62ec654335 NSScrollView: create stubs for inset properties
Create stubs for the content/scroller inset properties in NSScrollView.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
ecb4178417 NSGestureRecognizer: create stub for class
Create stub for the NSGestureRecognizer class.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
f1abcb313a NSSpeechSynthesizer: define new constants
Define new constants in NSSpeechSynthesizer. These are not yet handled
by the implementation.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
75dd71b149 NSRunningApplication: create stub for class
Create a stub for the NSRunningApplication class.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
819c459f6f NSUserInterfaceLayout: create interface layout constants
Define interface layout enums to be used by AppKit. This improves
compatibility with the reference platform.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
3d88922f45 NSUserInterfaceItemIdentification: introduce protocol
Introduce the NSUserInterfaceItemIdentification protocol, which required
an user interface class provide an unique identifier.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
4769fc8edd NSSharingService: define class
Define the NSSharingService class as an unimplemented stub for
compatibility purposes.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
bb6805742d NSView: define layer-related properties
Define layer-related properties in NSView for compatibility purposes,
and keep their getters and setters as stubs, since they will not have
any effect before NSView-CALayer integration is implemented.
2017-07-25 22:33:12 +01:00
Daniel Ferreira
9e80b07531 NSPasteboard: define new constants
Define new constants for NSPasteboard type identifiers. Most of them are
aliases to the old "Pboard"-style types, although some new ones are not
fully implemented:

* NSPasteboardTypePNG
* NSPasteboardTypeSound
* NSPasteboardTypeMultipleTextSelection
* NSPasteboardTypeTextFinderOptions
2017-07-25 22:33:12 +01:00
fredkiefer
fd6e7f2e42 Fix small bug found by compiler. 2017-07-22 20:44:45 +02:00
fredkiefer
6f22d6429e Add phase method forgotten in last commit. 2017-07-22 20:38:39 +02:00
fredkiefer
a02b40a9dd Add some enums and the method -momentumPhase to NSEvent. 2017-07-22 20:17:00 +02:00
fredkiefer
025b73ce6d Add some newer Cocoa methods for NSEvent. 2017-07-09 22:02:40 +02:00
Riccardo Mottola
4ba0fa25cc Save resolution information if it is different from 72 dpi 2017-06-20 20:14:50 +00:00
fredkiefer
fc8c034aca * Source/externs.m: Added semicolons missing in last commit.
* Source/NSSavePanel.m: Fix return type of sorting function.
2017-06-20 20:14:40 +00:00
TheDharc
2f4343438a Update externs.m
adding what lacks
2017-06-20 20:13:36 +00:00
Riccardo Mottola
9c7eeb9c20 Support for writing resolution
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40491 72102866-910b-0410-8b05-ffd578937521
2017-04-24 10:42:32 +00:00
Fred Kiefer
099257dac9 Fix some clang static analyser warnings reported by
Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40484 72102866-910b-0410-8b05-ffd578937521
2017-04-16 11:54:21 +00:00
Fred Kiefer
521fd071b4 Make the class GSXibKeyedUnarchiver public again.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40449 72102866-910b-0410-8b05-ffd578937521
2017-04-05 21:51:43 +00:00
Fred Kiefer
753415895b 2017-04-01 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSMenu.m (-displayTransient): Update menu before displaying.
	* Source/NSMenuView.m (-attachSubmenuForItemAtIndex:): Use NSMenu
	display method.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40431 72102866-910b-0410-8b05-ffd578937521
2017-03-31 22:14:50 +00:00
Fred Kiefer
34bbb5e95d 2017-03-31 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSAttributedString.m: Check for surrogate UTF16
	characters to prevent nil strings when trying to attempt fonst
	substitution.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40430 72102866-910b-0410-8b05-ffd578937521
2017-03-31 21:49:09 +00:00
Riccardo Mottola
90d793695b Ignore density if unit is 0
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40429 72102866-910b-0410-8b05-ffd578937521
2017-03-31 15:35:46 +00:00
Riccardo Mottola
c774fd75c3 use double and better math to avoid rounding errors especially with cm->inch conversion
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40427 72102866-910b-0410-8b05-ffd578937521
2017-03-28 15:35:38 +00:00
Riccardo Mottola
28b15bce9f Parse density data and set size accordingly
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40425 72102866-910b-0410-8b05-ffd578937521
2017-03-28 13:51:12 +00:00
Fred Kiefer
083b34fe1c * Source/NSBitmapImageRep+JPEG.m(-_JPEGRepresentationWithProperties:errorMessage:):
Correct JPEG export which was using size instead of pixelsWide and pixelsHigh.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40415 72102866-910b-0410-8b05-ffd578937521
2017-03-24 23:06:31 +00:00
Fred Kiefer
19dc4dbb94 * Source/GSXibKeyedUnarchiver.m:
Merge some of the changes from the testplant branch.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40406 72102866-910b-0410-8b05-ffd578937521
2017-03-20 23:04:27 +00:00
Fred Kiefer
db123bcd81 Merge some of the changes from the testplant branch.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40403 72102866-910b-0410-8b05-ffd578937521
2017-03-19 19:26:04 +00:00
Riccardo Mottola
3d777c81fe log the event itself (by Fred)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40365 72102866-910b-0410-8b05-ffd578937521
2017-03-06 09:40:01 +00:00
Fred Kiefer
2efe9de227 Merge some of the changes from the testplant branch.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40362 72102866-910b-0410-8b05-ffd578937521
2017-03-05 22:12:15 +00:00
Fred Kiefer
1323c50d6e * Source/GSHorizontalTypesetter.m (-layoutLineNewParagraph:): Add
extra line fragment for empty string here.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40350 72102866-910b-0410-8b05-ffd578937521
2017-02-20 22:32:13 +00:00
Fred Kiefer
a33b4c5073 * Source/GSLayoutManager.m (-usedRectForTextContainer:): Add extra
line rect when needed.
	* Source/NSTextView.m (sizeToFit): Don't add extra line rect, as
	it is now already included.
	* Source/NSStringDrawing.m (cache_lookup): Remove hack for empty string.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40346 72102866-910b-0410-8b05-ffd578937521
2017-02-17 19:44:25 +00:00
Fred Kiefer
f5ce3badde * Source/NSStringDrawing.m: Use shared drawing code.
* Source/NSStringDrawing.m (cache_lookup): Try to handle case of
	empty string.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40342 72102866-910b-0410-8b05-ffd578937521
2017-02-12 21:08:51 +00:00
Fred Kiefer
31cb9914d1 * Source/NSStringDrawing.m: Clean up string drawing cache code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40334 72102866-910b-0410-8b05-ffd578937521
2017-02-12 15:47:17 +00:00
Fred Kiefer
3a89e9e7c5 * Source/NSMenu.m (-_isVisible, -_isMain): Add two helper
methods. And make sure we update the menu items before display and
	keyEquivalent processing.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40285 72102866-910b-0410-8b05-ffd578937521
2017-01-08 19:33:32 +00:00
Fred Kiefer
baee6ec03b * Source/NSMenu.m (-update): Update only visible submenus.
* Source/NSMenu.m: Complete switch to NSUInteger.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40283 72102866-910b-0410-8b05-ffd578937521
2016-12-31 16:03:01 +00:00