Commit graph

5438 commits

Author SHA1 Message Date
espectador
f96885c63e Set _lastPoint after update the cursor in NSWindow.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37213 72102866-910b-0410-8b05-ffd578937521
2013-10-09 18:52:39 +00:00
ericwa
ddbcf53054 * Source/GSThemeDrawing.m:
* Source/GSTheme.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Add part names for
themeing bottom tabs.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37211 72102866-910b-0410-8b05-ffd578937521
2013-10-09 01:48:50 +00:00
ericwa
37404490a1 * Source/GSThemeDrawing.m (-drawBoxInClipRect:...):
* Source/NSBox.m (-calcSizesAllowingNegative):
Special case for box type NSBoxSeparator to draw a centered line


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37210 72102866-910b-0410-8b05-ffd578937521
2013-10-08 23:42:30 +00:00
ericwa
88a3f4a16e * Source/NSTabView.m: Fix incorrect content rect now that view
is flipped.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37209 72102866-910b-0410-8b05-ffd578937521
2013-10-08 20:30:28 +00:00
ericwa
3b991352f8 * Source/GSTheme.m (-tilesNamed:state:): Interpret .9.png files
as NinePatch=YES. If a tile isn't listed in GSThemeTiles in the
plist, try to find it in the ThemeTiles directory anyway. This
lets you avoid declaring tiles in the info plist.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37208 72102866-910b-0410-8b05-ffd578937521
2013-10-08 19:32:09 +00:00
ericwa
b1340d7958 * Source/GSThemeDrawing.m (NSBox): If drawing with theme tiles,
use actual clipping to clip a hole in the border, so we can avoid
filling anything with the background color.
* Source/NSBox.m (-isOpaque:): change to NO.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37207 72102866-910b-0410-8b05-ffd578937521
2013-10-08 18:22:15 +00:00
ericwa
d015c4a1c8 * Source/NSTabView.m: Uncomment - (BOOL) isFlipped { return YES; }
* Source/GSThemeDrawing.m: Change tab drawing to assume flipped
coordinates


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37206 72102866-910b-0410-8b05-ffd578937521
2013-10-08 17:35:44 +00:00
ericwa
4b5afa085d * Source/GSThemeDrawing.m: Rewrite tab drawing code to be more
organized, lay out the images in a straightforward way, and
allow themeing the fill part of the tab between the end images.
The output is almost pixel-identical to
the old code (only some unnoticable 1-pixel differences
in where shadows end). It's also organized so that adding support
for left and right tabs should be easy.
* Headers/Additions/GNUstepGUI/GSTheme.h: Add some part names
* Images/common_Tab*.tiff: Tweak to work with the new layout code.
All top images are now the same size, as are all bottom images.
* Images/GNUmakefile:
* Images/common_TabUnSelectToSelectedJunction.tiff: Renamed to
Images/common_TabUnSelectedToSelectedJunction.tiff
* Source/GSThemePrivate.h:
* Source/GSTheme.m: Add GSStringFromTabViewType utility function


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37205 72102866-910b-0410-8b05-ffd578937521
2013-10-08 08:01:23 +00:00
ericwa
8253cb0c29 * Source/GSThemeDrawing.m (-drawTableViewGridInClipRect:inView:):
Clean up grid drawing code; use rect fills to avoid blurriness.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37204 72102866-910b-0410-8b05-ffd578937521
2013-10-07 23:32:14 +00:00
ericwa
cb7205389d * Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/GSThemeDrawing.m:
* Source/NSPopUpButtonCell.m:
Remove -[GSTheme drawBorderAndBackgroundForPopUpButtonCell:
withFrame:inView:state:] which I added recently, and just use
-[GSTheme drawButton:in:view:style:state]. This way,
NSPopUpButtonCell automatically supports all of the different
NSBezelStyles.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37202 72102866-910b-0410-8b05-ffd578937521
2013-10-07 07:29:13 +00:00
ericwa
703f72ff3c * Source/GSTitleView.m: Use the GSTheme
-setName:forElement:temporary: mechanism to bind the menu close
button's cell to the name GSMenuCloseButton, so themes can provide
a custom border for this button.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37201 72102866-910b-0410-8b05-ffd578937521
2013-10-07 06:23:02 +00:00
ericwa
3009711bf0 * Documentation/GuiUser/DefaultsSummary.gsdoc:
* Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/GSThemeDrawing.m:
* Source/NSScroller.m: Add defaults GSScrollerScrollsByPage
and GSScrollerArrowsSameEnd to allow customizing scroller
behaviour beyond the combinations provided by NSInterfaceStyle.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37200 72102866-910b-0410-8b05-ffd578937521
2013-10-07 03:29:14 +00:00
ericwa
a2975a65f0 * Source/NSColor.m:
* Source/NSColorWell.m: Move code to draw the black and white
triangles background for transparent colors to
-[NSColor drawSwatchInRect:].


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37194 72102866-910b-0410-8b05-ffd578937521
2013-10-04 07:18:27 +00:00
ericwa
e6357523a4 * Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/GSThemeDrawing.m:
* Source/NSBrowser.m:
* Source/NSTableHeaderCell.m: Add custom color names
tableHeaderTextColor and browserHeaderTextColor for
table and browser headers.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37193 72102866-910b-0410-8b05-ffd578937521
2013-10-04 02:23:16 +00:00
ericwa
07d2fc465b * Source/NSMenuItemCell.m: If the cell is highlighted, draw
the arrow using NSHighlightedMenuArrow (if available).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37192 72102866-910b-0410-8b05-ffd578937521
2013-10-04 00:50:45 +00:00
ericwa
ddba9eefa8 * Source/GSThemeDrawing.m: Use new -[GSDrawTiles themeMargins]
to get the margins for draw tiles.
* Source/GSThemePrivate.h:
* Source/GSThemeTools.m: Get the 9-patch content rect support
working from end-to-end.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37191 72102866-910b-0410-8b05-ffd578937521
2013-10-03 22:24:57 +00:00
ericwa
edfc7a3923 * Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/GSTheme.m:
* Source/GSThemeDrawing.m:
* Source/NSBox.m: Factor out -[NSBox drawRect:] to GSTheme
method -drawBoxInClipRect:boxType:borderType:inView:.
Add a tiles name GSBoxBorder for themeing the box border.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37188 72102866-910b-0410-8b05-ffd578937521
2013-10-03 19:52:05 +00:00
ericwa
97d5edec42 * Source/NSSliderCell.m: Support themeing the circular slider
with the image @"common_CircularSlider". Draw the dimple
with @"common_Dimple" instead of an NSBezierPath.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37186 72102866-910b-0410-8b05-ffd578937521
2013-10-03 06:55:45 +00:00
ericwa
d34a33eef0 * Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/GSTheme.m:
Declare GSSliderHorizontalTrack and GSSliderVerticalTrack
part names for themeing the background of NSSlider
* Source/GSThemeDrawing.m:
Add new drawSliderBorderAndBackground:frame:inCell:isHorizontal:
method to draw the slider border and background.
* Source/GSThemePrivate.h:
* Source/GSThemeTools.m:
Add a -size method on GSDrawTiles which returns the total
original size of the tiles, so we can easily compute a rect
that scales the tiles in only one dimension.
* Source/NSSliderCell.m:
Override _drawBorderAndBackgroundWithFrame: to call new
GSTheme method. Also, tweak the knob drawing code; the knob
is now centered and drawn at its native size. This still looks
correct with the default slider sizes create by Gorm.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37185 72102866-910b-0410-8b05-ffd578937521
2013-10-03 04:51:10 +00:00
ericwa
2d9baa6c5e * Source/NSMenuView.m (heightForItem:, yOriginForItem:):
Accept negative item indicies, which are passed in when
opening the preferences window in TextEdit. Need to investigate
further why that is happening.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37184 72102866-910b-0410-8b05-ffd578937521
2013-10-03 00:35:27 +00:00
ericwa
93eeb1101c * Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/GSTheme.m:
* Source/GSThemeDrawing.m:
* Source/NSPopUpButtonCell.m: Add a theme part GSPopUpButton
so NSPopUpButtonCell can be drawn with a different background
than NSMenuItemCell.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37183 72102866-910b-0410-8b05-ffd578937521
2013-10-02 23:56:16 +00:00
ericwa
3b57b63430 * Source/NSMenuView.m: Read the menu item/menu bar/separator
height from GSTheme.
* Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/GSThemeDrawing.m: Add -menuBarHeight, -menuItemHeight,
-menuSeparatorHeight. Corresponding defaults are GSMenuBarHeight,
GSMenuItemHeight, GSMenuSeparatorHeight


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37182 72102866-910b-0410-8b05-ffd578937521
2013-10-02 22:06:24 +00:00
ericwa
31c0b939b2 * Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/NSScrollView.m:
* Source/GSThemeDrawing.m:
* Source/GSTheme.m: Add GSScrollViewUseBottomCorner default,
which themes can set to NO to leave a square gap in the bottom-
left (or bottom-right) corner where the horizontal and vertical
scrollers meet.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37176 72102866-910b-0410-8b05-ffd578937521
2013-09-30 05:53:21 +00:00
ericwa
c84655da3d * Source/NSBrowser.m: Fix some position calculations from the last
commit


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37175 72102866-910b-0410-8b05-ffd578937521
2013-09-30 02:29:28 +00:00
ericwa
17303e9182 * Source/NSBrowser.m:
* Source/GSThemeDrawing.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Add GSBrowserUseBezels
user default. Themes can set it to NO to prevent NSBrowser from
drawing any bezels, even if separatesColumns is set to YES.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37174 72102866-910b-0410-8b05-ffd578937521
2013-09-30 00:38:09 +00:00
ericwa
b44e528c8c * Source/NSBrowser.m: Small refactoring to simplify code.
Remove update logic from -setSeparatesColumns: and just use
-tile. Tested by toggling "separates columns" flag in Gorm.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37173 72102866-910b-0410-8b05-ffd578937521
2013-09-29 22:44:57 +00:00
ericwa
176305a0e8 * Source/NSBrowser.m: Change NSBR_COLUMN_SEP and NSBR_VOFFSET
macros to static floats. Cache the values in +initialize and
when GSThemeDidActivateNotification is sent, by calling the
new GSTheme methods.
* Source/GSThemeDrawing.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Add
-browserColumnSeparation and -browserVerticalPadding methods
which access user defaults GSBrowserColumnSeparation and
GSBrowserVerticalPadding. These determine the padding between
browser columns, and the vertical padding between the bottom
scroller, contents, and headers.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37171 72102866-910b-0410-8b05-ffd578937521
2013-09-29 19:36:08 +00:00
fredkiefer
a00b4fa98f * Source/NSImage.m: Better protection against representation being nil.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37169 72102866-910b-0410-8b05-ffd578937521
2013-09-29 16:37:59 +00:00
espectador
c5b6909179 Check the scrollview style to display the autocomplete window.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37166 72102866-910b-0410-8b05-ffd578937521
2013-09-29 07:14:01 +00:00
ericwa
d4dff12435 * Source/GSTheme.m:
* Source/GSTitleView.m:
* Source/GSThemeDrawing.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Add GSMenuTitleBackground
theme tile for themeing the background of GSTitleView.

NOTE: I removed some code that was in -[GSTitleView drawRect:] for
drawing with a different style when the GSTitleView is NOT owned
by an NSMenu, but by an NSWindow/NSPanel (_ownedByMenu == NO).
If needed, this can be added back, but it doesn't appear to ever
be used in gnustep-gui - GSTitleView is only created in one place,
with NSMenu as the owner.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37165 72102866-910b-0410-8b05-ffd578937521
2013-09-29 00:30:59 +00:00
ericwa
d81d463a64 * Source/NSCell.m (-highlight:withFrame:inView:):
Remove call to [controlView displayRect: cellFrame];
There was a comment saying it should be removed, and when
combined with the -[NSButtonCell isOpaque] change, it
was casuing scroller buttons to stay "stuck" down.
* Source/NSBrowser.m (-isOpaque):
* Source/NSButtonCell.m (-isOpaque):
* Source/NSColorWell.m (-isOpaque):
Force -isOpaque to return NO, because it's
possible to make all of these controls semitransparent with
theme tiles. This was visible with the Narcissus theme
(svn://svn.gna.org/svn/etoile/trunk/Etoile/Themes/Narcissus.theme)


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37164 72102866-910b-0410-8b05-ffd578937521
2013-09-28 21:38:29 +00:00
ericwa
7a25520ef2 * Source/GSThemeDrawing.m: Add GSScrollerDefaultWidth user default
so non-code themes can change -[GSTheme defaultScrollerWidth]


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37163 72102866-910b-0410-8b05-ffd578937521
2013-09-28 20:40:42 +00:00
ericwa
ec3a8cd060 * Source/NSScroller.m: Add GSScrollerKnobOvershoot default which
allows themes to make the scroller knob overlap the scroller buttons
by a specified amount.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37162 72102866-910b-0410-8b05-ffd578937521
2013-09-28 18:51:00 +00:00
espectador
5ec2ca791b Don't change the location of submenus in NSMacintoshInterfaceStyle.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37161 72102866-910b-0410-8b05-ffd578937521
2013-09-27 22:20:12 +00:00
fredkiefer
b751aed5b0 * Source/NSBrowserCell.m (-drawInteriorWithFrame:inView:): Don't
draw string when editing.
        * Source/NSBrowserCell.m (-titleRectForBounds:): Implement to
        exactly match calculation in -drawInteriorWithFrame:inView:.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37159 72102866-910b-0410-8b05-ffd578937521
2013-09-27 13:10:23 +00:00
espectador
054851fa01 Close popup if user press a modifier flag an theme process events.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37158 72102866-910b-0410-8b05-ffd578937521
2013-09-27 07:47:01 +00:00
espectador
7baaaf9425 Revert last change and implement a better solution.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37157 72102866-910b-0410-8b05-ffd578937521
2013-09-27 04:33:30 +00:00
espectador
ecd8160ff7 Improvements at pulldown popups when the theme process events.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37154 72102866-910b-0410-8b05-ffd578937521
2013-09-25 05:42:27 +00:00
ivucica
b75ea68510 * Source/NSImage.m: Missing -retain inside the method
-drawInRect:fromRect:... caused a crash inside Opal backend.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37141 72102866-910b-0410-8b05-ffd578937521
2013-09-23 17:12:25 +00:00
ivucica
7cd5676bb5 * Source/NSImage.m: Missing -retain inside the method
-compositeToPoint:fromRect:operation:fraction caused a crash
inside Opal backend.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37140 72102866-910b-0410-8b05-ffd578937521
2013-09-23 16:58:18 +00:00
gcasa
c7652bd6d4 2013-09-18 18:17-EDT Gregory John Casamento <greg.casamento@gmail.com>
* Headers/AppKit/AppKit.h: Add NSTrackingArea.h                                                                                                         
        * Headers/AppKit/NSTrackingArea.h: Add interface for NSTrackingArea                                                                                     
        * Source/GNUmakefile: Add NSTrackingArea.[hm] to makefile.                                                                                              
        * Source/NSTrackingArea.m: Add implementation for NSTrackingArea  


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37112 72102866-910b-0410-8b05-ffd578937521
2013-09-18 22:19:12 +00:00
rmottola
9f329f337c silence more warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37102 72102866-910b-0410-8b05-ffd578937521
2013-09-17 23:19:12 +00:00
ivucica
04b988ee6b NSLayoutManager: advancementbuf[0] was not being filled. Most backends, including cairo, ignore advancements, so the bug was not immediately apparent until opal backend started using the advancements.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37100 72102866-910b-0410-8b05-ffd578937521
2013-09-17 21:58:21 +00:00
rmottola
7535e30d2d warning fix
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37088 72102866-910b-0410-8b05-ffd578937521
2013-09-17 09:39:47 +00:00
fredkiefer
00dc04169b * Source/NSBrowser.m (-setPath:): Fixed a bug where setting the
path to "/" would not deselect the cells.
  Based on patch by Frank Le Grand <frank.legrand@testplant.com>


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37081 72102866-910b-0410-8b05-ffd578937521
2013-09-16 18:18:07 +00:00
rmottola
422bb8d17d Prepare for additional argument to function DGifOpen in newer libgif versions.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37078 72102866-910b-0410-8b05-ffd578937521
2013-09-13 15:50:05 +00:00
fredkiefer
2767d3548e * Source\NSAttributedString.m (-fixFontAttributeInRange:): In
* the
        absence of a NSFontAttributeName attribute, use a default font
to
        prevent the substitution from stopping. This fixes a bug where
        unicode characters would not get the proper font substitution.
        Patch by: Frank Le Grand <frank.legrand@testplant.com>



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37027 72102866-910b-0410-8b05-ffd578937521
2013-08-30 15:30:22 +00:00
fredkiefer
23d7de30cb * Headers/Additions/GNUstepGUI/GSDisplayServer.h
* Source/GSDisplayServer.m: Add new method -_printEventQueue.
* Source/NSWindow.m (-_checkCursorRectangles:forEvent:): Replace
  hack with proper functions that handle cursor rectangles.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37026 72102866-910b-0410-8b05-ffd578937521
2013-08-30 11:27:10 +00:00
fredkiefer
645a552a58 * Source/NSCursor.m (-mouseEntered:, -mouseExited:):
Add better debug output.
* Source/NSWindow.m (-_checkCursorRectangles:forEvent:): Add
hack that updates cursor rectangles more correctly.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37022 72102866-910b-0410-8b05-ffd578937521
2013-08-27 21:00:42 +00:00
fredkiefer
cc4fbf9642 * Headers/AppKit/NSTreeController.h,
* Headers/AppKit/NSTreeNode.h: Add method declarations to these
        * files.
        * Headers/AppKit/AppKit.h,
        * Source/GNUmakefile: Include new files.
        * Source/NSObjectController.m (+initialize, -selection): Get
        * basic
        binding example working.
        * Source/NSTreeController.m: Minimal implementation.
        * Source/NSTreeNode.m: Full implementation of this class.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36991 72102866-910b-0410-8b05-ffd578937521
2013-08-19 19:10:22 +00:00