* Headers/AppKit/NSCell.h (-_sendsActionOn:): New method.
* Source/NSCell.m (-_sendsActionOn:): Implement it.
* Source/NSTextFieldCell.m (-initTextCell:): Change _action_mask to a
key press.
* Source/NSTableView.m (-mouseDown:): Use _sendsActionOn: to only modify the object value and send the event to the cell if the cell works on
mouse events. (Fixes#9609).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@20046 72102866-910b-0410-8b05-ffd578937521
of isContinuous to insure backward compatiblity of archives.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16215 72102866-910b-0410-8b05-ffd578937521
[setControlSize:], [controlTint], [setControlTint:] and
[highlightColorWithFrame:inView:]. Rewrote [isContinuous],
[setContinuous:] and [trackMouse:...untilMouseUp:] to work via the
_action_mask.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16202 72102866-910b-0410-8b05-ffd578937521
In all [XXXValue] methods try to get the value from the objectValue
first and use [stringValue] instead of accessing the contents directly.
Removed AUTORELEASE calls from [attributedStringValue] and similar
places.
In [cellSize] use [attributedStringValue] to get the string to size.
In [drawInteriorWithFrame:inView:] use [attributedStringValue] to
get the string to draw. This make the method [_drawText:inFrame:]
obsolete for this class, but subclasses still use it.
New method [_setupTextWithFrame:inView:editor:] with the common
text view setup from [editWithFrame:inView:editor:delegate:event:]
and [selectWithFrame:inView:editor:delegate:start:length:].
Calls to [setFont:] and [setAlignment:] switch the cell to NSTextCellType.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@14952 72102866-910b-0410-8b05-ffd578937521
Retain the decoded background color.
* Source/NSTextView.m :
multiple location: don't ignore textContainer's inset
([NSTextView -initWithCoder:])
([NSTextView -encodeWithCoder:])
Encode caret color, textContainer's size and whether the
textContainer has widthTracksTextView or heightTracksTextView set.
([NSTextView -sizeToFit]) Change width (height) only if
is_horizontally_resizable (is_vertically_resizable).
([NSTextView -scrollRangeToVisible:]) scrolls to the first char of
the range.
([NSTextView -invalidateTextContainerOrigin]): Don't ignore inset,
set the origin so that the justification is preserved even if the
textContainer's width is larger that the textview's width.
([NSTextView -updateInsertionPointStateAndRestartTimer:]):
update and place the insertion point properly.
([NSTextView -moveDown:]) & ([NSTextView -moveUp:]):
Don't ignore inset. Make insertion point visible.
* Source/NSTextField.m ([NSTextField -acceptsFirstResponder:]):
responds NO if the editing is still in progrss.
* Source/NSLayoutManager.m
([NSLayoutManager -drawBackgroundForGlyphRange:atPoint:]):
Don't ignore textContainer's inset.
* Source/GSSimpleLayoutManager.m
Replaced [-drawLinesInLineRange:] with [-drawLinesInLineRange:atPoint:].
Replaced [-drawSelectionAsRangeNoCaret:] with
[-drawSelectionAsRangeNoCaret:atPoint:].
Those replacements make it easier to take inset into account.
([-lineFragmentUsedRectForGlyphAtIndex:effectiveRange:])
([-locationForGlyphAtIndex:])
([-boundingRectForGlyphRange:inTextContainer:])
([-rectForCharacterIndex:])
([-setNeedsDisplayForLineRange:inTextContainer:]):
Various fixes.
([-textStorage:edited:range:changeInLength:invalidatedRange:])
Update insertion point if needed (useful when alignment changes).
([-rebuildForRange:delta:inTextContainer:]):
Update layout mechanism.
* Source/NSCell.m
([NSCell -highlight:withFrame:inView:]):
Ask the control to draw the background if we are not opaque.
([NSCell -editWithFrame:inView:editor:delegate:event:]):
([NSCell -selectWithFrame:inView:editor:delegate:start:length:]):
([NSCell -endEditing:]):
instantiate (and remove) the textview so that it can be scrolled.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@14429 72102866-910b-0410-8b05-ffd578937521
inView:]): fix mask if cell is highlighted and it isn't in off state.
* Source/NSCell.m ([NSCell -trackMouse:inRect:ofView:untilMouseUp:]):
set next cell state and send action after -stopTracking:
* Source/NSBrowser.m ([NSBrowser -keyDown:]): does nothing for arrow up
and down.
([NSBrowser -moveUp:]): removed.
([NSBrowser -moveDown:]): removed.
([NSBrowser -_performLoadOfColumn:]): fix matrix creation, enable
matrix autoscroll.
([NSBrowser -_performLoadOfColumn:]): implemented reusesColumns.
* Source/NSMatrix.m ([NSMatrix -keyDown:]): implemented keyboard
navigation.
([NSMatrix -moveUp:]): likewise.
([NSMatrix -moveDown:]): likewise.
([NSMatrix -moveLeft:]): likewise.
([NSMatrix -moveRight:]): likewise.
([NSMatrix -performClick:]): implemented.
([NSMatrix -mouseDown:]): scroll rect only if autoscroll is enabled,
do not hightlight a cell directly but use the matrix method.
Now it handles only NSListModeMatrix mode to reduce complexity
introduced by other modes.
([NSMatrix -_mouseDownNonListMode:]): fixed.
([NSMatrix -highlightCell:atRow:column:]): enable the cell dotted
outline.
([NSMatrix -drawCellAtRow:column:]): likewise.
([NSMatrix -drawRect:]): removed drawing of dotted outline. Rewritten
due to changes in -getRow:column:forPoint:
([NSMatrix -getRow:column:forPoint:]): set row and column to -1 if
point is not inside a cell.
([NSMatrix -_selectCell:atRow:column:]): use mnemonic value for cell
state, does not enable dotted outline and check for nil aCell.
([NSMatrix -selectTextAtRow:column:]): likewise.
([NSMatrix -_setState:highlight:startIndex:endIndex:]): use matrix
highlightCell: method and mnemonic for cell state.
([NSMatrix -deselectAllCells]): likewise.
([NSMatrix -selectAll:]): likewise.
([NSMatrix -setSelectionFrom:to:anchor:highlight:]): likewise.
([NSMatrix -performKeyEquivalent:]): select next cell state.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@9594 72102866-910b-0410-8b05-ffd578937521
check if the control that owns the cell is the first responder.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@9485 72102866-910b-0410-8b05-ffd578937521
the operator for imag composition not NSCompositeCopy. This
replacement may be necessary in other parts of the GUI as well!!!!
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@8424 72102866-910b-0410-8b05-ffd578937521