* 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
not hightlight the cell. The new behavior is as described in the spec
for NSControl, NSMatrix and NSCell. According to the spec it is the
responsibility of the control to highlight the cell prior to calling
cell's track method.
* NSMatrix.m: rewrote mousedown to more closely mimic the NS/OS behavior.
* NSButton.m: modified to support new behavior of NSCell's track mode.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2865 72102866-910b-0410-8b05-ffd578937521
various changes to NSMatrix's mousedown to support double clicks
added field editor instance variable to NSWindow
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@2830 72102866-910b-0410-8b05-ffd578937521