* Source/NSCell.m (-setUpFieldEditorAttributes:): Clear the
text object's string.
* Source/NSControl.m (-setDoubleValue:, -setFloatValue:)
(-setIntValue:, -setStringValue:, -setObjectValue:): If the receiver
was being edited when the method was called, make it the first
responder after changing the value.
(-abortEditing): Don't clear the text object's string.
* Source/NSMatrix.m (-abortEditing): Don't clear the text object's
string.
* Source/NSTableView.m (-abortEditing): Ditto.
* Source/NSTextField.m (-abortEditing): Ditto.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@20580 72102866-910b-0410-8b05-ffd578937521
* Source/NSMatrix.m: Rename vaguely-named macro.
(Based on Path #3499 from Patrick Middleton).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@20346 72102866-910b-0410-8b05-ffd578937521
is called. Do not round cellsizes to be integers as that is just removing
information we instead want to pass to the backend for better rendering.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@13703 72102866-910b-0410-8b05-ffd578937521
same size (this is what specification says). If it is not the case, weird
behaviour can happen ...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10739 72102866-910b-0410-8b05-ffd578937521
mode matrix. Use _selectCell: to select the cell.
([NSMatrix -_setState:highlight:startIndex:endIndex:]): fixed cell
selection/display. Check for selectionByRect.
([NSMatrix -setSelectionFrom:to:anchor:highlight:]): removed code for
selectionByRect. Set dotted outline and last selected cell.
([NSMatrix -_shiftModifier:]): implement shift selection.
([NSMatrix -_altModifier:]): implement alt selection.
([NSMatrix -keyDown:]): use _shiftSelection: and _altSelection to
implement full keyboard selection.
([NSMatrix -_selectCell:atRow:column:]): redisplay previous dotted
cell. Set cell highlight in list mode matrix.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10052 72102866-910b-0410-8b05-ffd578937521
FreeBSD. Use ADDITIONAL_LIB_DIRS instead of ADDITIONAL_LD_FLAGS.
* config.make.in (ADDITIONAL_LIB_DIRS): renamed.
* config.guess: new file.
* config.sub: new file.
* install-sh: new file.
* Source/NSSavePanel.m ([NSSavePanel -setDelegate:]): check for -panel:
userEnteredFilename:confirmed:
([NSSavePanel -ok:]): call delegate method -panel:userEnteredFilename:
confirmed: (MacOS X). Run an alert panel if the filename already exists
([NSSavePanel -browser:selectCellWithString:inColumn:]): removed
keyboard handling.
* Headers/gnustep/gui/NSSavePanel.h: added ivar.
* Source/NSBrowserCell.m ([NSBrowserCell -highlightColorInView:]):
return the highlight color of the cell. (Mac OS X)
([NSBrowserCell -drawInteriorWithFrame:inView:]): use highlight color
from previous method.
* Headers/gnustep/gui/NSBrowserCell.h: added method.
* Source/NSMatrix.m ([NSMatrix -_mouseDownNonListMode:]): when
tracking the mouse use cell's +prefersTrackingUntilMouseUp
([NSMatrix -_move:]): new private method.
Fixed deselection of cells in NSRadioModeMatrix and NSListModeMatrix.
([NSMatrix -moveUp:]): use _move: to reduce maintance.
([NSMatrix -moveDown:]): likewise.
([NSMatrix -moveLeft:]): likewise.
([NSMatrix -moveRight:]): likewise.
([NSMatrix -getRow:column:ofCell:]): if cell does not exist set row and
column to -1.
([NSMatrix -mouseDown:]): does not select and highlight a cell at the
same time. Ensure that only a cell at a time has the dotted outile.
* Source/NSBrowser.m ([NSBrowser -addColumn]): load a column and scroll
if necessary.
([NSBrowser -doClick:]): rearranged for the new -addColumn
([NSBrowser -setPath:]): likewise and removed additional redisplay.
([NSBrowser -_createColumn]): method to create a new NSBrowserColumn.
([NSBrowser -setMaxVisibleColumns:]): use _createColumn
([NSBrowser -initWithFrame:]): likewise.
([NSBrowser -doClick:]): fixed selection problems.
([NSBrowser -selectRow:inColumn:]): fixed cell selection and perform
load of column if cell is not a leaf.
([NSBrowser -loadColumnZero]): use -addColumn to load column zero.
([NSBrowser -setLastColumn:]): check for min value of column.
([NSBrowser -reloadColumn:]): check with _lastColumnLoaded instead in
the column browser.
([NSBrowser -moveLeft:]): fixed an index out of bound exception when
it was selected the first column.
([NSBrowser -moveRight:]): does nothing if multiple cells are selected
or if the cell is a leaf.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@9938 72102866-910b-0410-8b05-ffd578937521
inMatrix:]): do not treat a file package a directory with an empty
extension.
* Source/NSMatrix.m ([NSMatrix -_mouseDownNonListMode:]): retain the
currentEvent. Fix to prevent theEvent to become nil.
Do not allow empty selection in NSRadioModeMatrix.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@9834 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
* Source/NSBrowser.m ([NSBrowser -_performLoadOfColumn:]): set
intercell spacing to 0.
* Source/NSMatrix.m ([NSMatrix -mouseDown:]): in NSRadioModeMatrix
deselect the previous selected cell only if the cell is valid.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@7471 72102866-910b-0410-8b05-ffd578937521
* Tools/gpbs.m ([PasteboardEntry -lostOwnership]): workaround to avoid
core dump due to NSConnection bug.
* Source/NSWindow.m ([NSWindow -keyDown:]): discard and do not perform
key equivalent for null character events. Triggered return key for
default button cell.
([NSWindow -defaultButtonCell]), ([NSWindow -setDefaultButtonCell:]),
([NSWindow -disableKeyEquivalentForDefaultButtonCell]),
([NSWindow -enableKeyEquivalentForDefaultButtonCell]): implemented.
([NSWindow -dealloc]): release _defaultButtonCell
* Headers/AppKit/NSWindow.h: added ivar and flag.
* Source/NSOpenPanel.m ([NSOpenPanel -controlTextDidEndEditing:]),
([NSOpenPanel -controlTextDidChange:]), ([NSOpenPanel -ok:]):
implemented keyboard navigation.
([NSOpenPanel -runModalForDirectory:file:types:]): do not allow
branch selection if can't choose directories.
([NSOpenPanel -_selectTextInColumn:]),
([NSOpenPanel -_selectCellName:]): new private methods.
([NSOpenPanel -filenames]): change for choose dirs.
* Source/NSText.m ([NSText -keyDown:]): forwards text field illegal
events to the next responder.
* Source/NSBrowser.m ([NSBrowser -moveUp:]), ([NSBrowser -moveDown:]),
([NSBrowser -moveLeft:]), ([NSBrowser -moveRight:]),
([NSBrowser -keyDown:]): implemented keyboard navigation
([NSBrowser -selectedCell]), ([NSBrowser -selectedCells]),
([NSBrowser -columnOfMatrix:]), ([NSBrowser -selectedColumn]):
changed return value from NSNotFound to -1 to conforms to NSMatrix
([NSBrowser -doClick:]): fix for new return values, added support for
multiple and branch selection.
([NSBrowser -setLastColumn:]): mark column titles need display
([NSBrowser -_getTitleOfColumn:]): fix for multiple selection.
* Source/NSCell.m ([NSCell -setState:]): bug fix: set value to
NSOnState if someone try to set NSMixedState in a two state cell.
([NSCell -performClick:]): do not perform click if the cell is
disabled.
* Source/NSMatrix.m ([NSMatrix
-_privateFrame:mode:numberOfRows:numberOfColumns:]),
([NSMatrix -deselectAllCells]), ([NSMatrix -deselectSelectedCell]),
([NSMatrix -selectAll:]): bug fix: set _selectRow and _selectColumn
to -1 when no cells are selected
([NSMatrix -performKeyEquivalent:]): saves _selectedRow and
_selectedColumn.
([NSMatrix -getRow:column:ofCell:]): check for null values for row and
column.
([NSMatrix -selectCellAtRow:column:]): deselect the current selection
only in NSRadioModeMatrix mode.
([NSMatrix -mouseDown:]): use the new code also for NSRadioModeMatrix
and fix for this mode.
* Source/NSSavePanel.m ([NSSavePanel -selectCellWithString:]): select
text of the cell and enable okButton.
([NSSavePanel -controlTextDidChange:]): implemented.
([NSSavePanel -controlTextDidEndEditing:]): removed.
([NSSavePanel -browser:createRowsForColumn:inMatrix:]): follows
symbolic links.
([NSSavePanel -_initWithoutGModel]): set browser doubleAction to
performClick: of the _okButton. Set _okButton as default window button.
Disable _okButton.
([NSSavePanel -browser:selectCellWithString:inColumn:]),
([NSSavePanel -selectText:]), ([NSSavePanel -keyDown:]): implemented
keyboard navigation.
([NSSavePanel -runModalForDirectory:file:]): enable _okButton if
filename is valid.
([NSSavePanel -_selectTextInColumn:]), ([NSSavePanel -_selectText:]),
([NSSavePanel -_selectCellName:]): new private methods.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@7468 72102866-910b-0410-8b05-ffd578937521
various methods add fieldEditor support.
* GSContext.m/GSContext.h revert to previous code as solution discussed
with Adam Fedor regarding backends had problems I had not forseen.
* NSBrowserCell.h/.m specify text subcell as an NSCell, eliminate image
cell, copyWithZone: optimize and eliminate use of ASSIGN (fixes serious
dealloc bug), highlight: eliminate method (fixes dup display bug).
* NSButtonCell.m copyWithZone: optimize and eliminate use of ASSIGN
* NSStringDrawing.h/.m remove unimplemented draw methods from Category
(these are backend specific, can't be defined twice and are already
implemented in xraw).
* NSApplication.h redefine initialize_gnustep_backend () per Adam's
redefinition in the backend.
* Functions.m/.h remove initialize_gnustep_backend()
* NSCell.m preliminary implementation of fieldEditor mechanism,
copyWithZone: optimize and eliminate use of ASSIGN
* NSControl.m rename cell class global to _NSCONTROL_CELL_CLASS
* NSMatrix.m implement NSControl's updateCell: to prevent unecessary
matrix drawing if possible.
* NSView.m -resizeWithOldSuperviewSize reverted code to my own once more
(fewer lines and no if/else logic), changed code to use view frame instead
of bounds per 3.3/4.2 docs, optimize to avoid floating point math and scale
adjustment unless view has been scaled.
* NSScrollView.m define as externs various PS* functions for use in
drawing, polish drawing, move all backend code to front.
* Tools/dummy.m define dummy PS* functions employed in gui.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@3454 72102866-910b-0410-8b05-ffd578937521
* NSAttributedString.m sizeWithAttributes: implement tab support.
* NSStringDrawing.m sizeWithAttributes: implement tab support.
* NSScroller.m trackScrollButtons: add temporary hack in support of XRAW's
heavily optimized scrolling machinery.
* NSScroller.m remove sendAction:to:
* NSScrolView.m _doScroll: implement scroller update when scrolling via
buttons
* NSScrolView.m reflectScrolledClipView comment out setNeedsDisplay as it
causes display flicker.
* NSText.m add changes from Daniel B�hringer, set initFrame to default
values to prevent infinite loop in rebuildLineLayout, minor tweaks
* NSView.m minor optimiztions.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@3071 72102866-910b-0410-8b05-ffd578937521
_resizeMenuForCellSize for performance reasons. _resizeMenuForCellSize
is called later on a sizeToFit.
* NSMenu.m->NSMenuMatrix in removeItem: removed call to
_resizeMenuForCellSize for performance reasons. _resizeMenuForCellSize
is called later on a sizeToFit.
* NSMenu.m->NSMenu in insertItemWithTitle: replaced call to _menuChanged
with menuHasChanged=YES for performance reasons.
* NSMenu.m->NSMenu in removeItem: replaced call to _menuChanged with
menuHasChanged=YES for performance reasons.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2973 72102866-910b-0410-8b05-ffd578937521
* NSApplication.m in init set default for main_menu, windows_need_update.
* NSApplication.m in run added support for OPENSTEP autodisplay mechanism.
* NSApplication.m _eventMatchingMask: reformat.
* NSApplication.m nextEventMatchingMask:untilDate:inMode:dequeue:
move calls to _flushWindows to XDPS backend.
* NSApplication.m implemented updateWindows.
* NSApplication.m implemented setWindowsNeedUpdate:.
* NSApplication.m setMainMenu: test for menu prior to release.
* NSActionCell.m removed setState: method.
* NSActionCell.m copyWithZone: optimized ivar copying.
* NSButtonCell.m added _init and moved common defaults to this method.
* NSButtonCell.m initImageCell: and initTextCell: minor optimizations.
* NSButtonCell.m setAlternateTitle: optimize and use ASSIGN macro.
* NSButtonCell.m setKeyEquivalent: remove [copy release].
* NSButtonCell.m setKeyEquivalentFont:size: optimize.
* NSButtonCell.m copyWithZone: optimized ivar copying where possible.
* NSCell.m _init removed call to [super init].
* NSCell.m initTextCell: removed duplicate default initializers.
* NSCell.m setImage: rewrote to use ASSIGN macro.
* NSCell.m setDoubleValue: rewrote to use ASSIGN macro.
* NSCell.m setFloatValue: rewrote to use ASSIGN macro.
* NSCell.m setIntValue: rewrote to use ASSIGN macro.
* NSCell.m setStringValue: rewrote to use ASSIGN macro.
* NSCell.m setFont: rewrote to use ASSIGN macro.
* NSCell.m setRepresentedObject: rewrote to use ASSIGN macro.
* NSCell.m copyWithZone: optimized ivar copying where possible.
* NSClipView.m viewBoundsChanged: minor optimization.
* NSClipView.m viewFrameChanged: minor optimization.
* NSClipView.m scaleUnitSquareToSize: minor optimization.
* NSClipView.m setBoundsOrigin: minor optimization.
* NSClipView.m setBoundsSize: minor optimization.
* NSClipView.m setFrameSize: minor optimization.
* NSClipView.m setFrameOrigin: minor optimization.
* NSClipView.m setFrame: minor optimization.
* NSClipView.m translateOriginToPoint: minor optimization.
* NSMatrix.m eliminate retain/release of selected cell via ASSIGN.
* NSMatrix.m initWithFrame: remove duplicate setting of selected row and
column.
* NSMatrix.m removeColumn: rewrite so that col is removed before new
selection is attempted (needed because selected cell is not retained).
* NSMatrix.m removeRow: rewrite so that row is removed before new
selection is attempted (needed because selected cell is not retained).
* NSMatrix.m deselectAllCells per OS spec try to select a cell at end
if empty selection is not allowed.
* NSMatrix.m deselectSelectedCell set default selected row/col to 0.
* NSMatrix.m mouseDown: optimize for new drawing behaviour.
* NSMenu.m setSelectedCell: eliminate use of retain/release of selected
cell via ASSIGN.
* NSMenuItem.m copyWithZone: optimized ivar copying where possible.
* NSMenuItem.m dealloc minor optimization.
* NSMenuItem.m setTarget: minor optimization.
* NSScroller.m trackScrollButtons: heavily optimized.
* NSScroller.m sendAction: reimplemented to use sendAction: per spec also
optimized.
* NSText.m implemented init method.
* NSText.m initWithFrame: fixed initialization of ivars which are released
to retain.
* NSText.m dealloc add release of retained ivars.
* NSView.m dealloc add release of retained ivars.
* NSView.m displayRect: and _addSubviewForNeedingDisplay reformatted code
and rewrote comments.
* NSWindow.m setFrame:display: rewrote for clarity.
* NSWindow.m implemented update method per OPENSTEP spec.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2941 72102866-910b-0410-8b05-ffd578937521
* NSView.m implemented resizeWithOldSuperviewSize (needs work).
* NSMatrix.m mousedown clarified description comment.
* NSSavePanel.m integrated source from Daniel B�hringer into premliminary
implementations provided by Scott Christley.
* NSSavePanel.h integrated source from Daniel B�hringer into premliminary
implementations provided by Scott Christley.
* NSOpenPanel.m integrated source from Daniel B�hringer into premliminary
implementations provided by Scott Christley.
* NSOpenPanel.h integrated source from Daniel B�hringer into premliminary
implementations provided by Scott Christley.
* NSStringDrawing.h defined NSAttributedString portion of extension.
* NSAttributedString.h created preliminary implementation of extension.
* Appkit.h added includes for NSAttributedString and NSStringDrawing.
* NSPasteboard.h added extern NSRTFDPboardType define.
* externs.m defined NSRTFDPboardType.
* NSText.h integrated source from Daniel B�hringer
* NSTextView.m preliminary implementation from Daniel B�hringer
* NSTextView.h preliminary implementation from Daniel B�hringer
* NSSplitView.m in drawRect use NSRectFill()
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2934 72102866-910b-0410-8b05-ffd578937521
* NSSavePanel modified to inherit from NSPanel per OS spec.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2896 72102866-910b-0410-8b05-ffd578937521
prior to calling trackMouse. In keeping with new behaviour of NSCell.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2867 72102866-910b-0410-8b05-ffd578937521