Commit graph

156 commits

Author SHA1 Message Date
Eric Wasylishen
5501a5a4b7 * Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/GSTheme.m: Add GSProgressIndicatorBezel part name
* Source/GSThemeDrawing.m (-drawProgressIndicatorBezel:withClip:):
Use GSProgressIndicatorBezel to draw bezel if available.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37222 72102866-910b-0410-8b05-ffd578937521
2013-10-14 03:31:54 +00:00
Eric Wasylishen
3e533f43b1 * 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
Eric Wasylishen
7d7cac6780 * 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
Eric Wasylishen
69acbb22b1 * 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
Eric Wasylishen
e72fe86870 * 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
Eric Wasylishen
53dcd018ad * 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
Eric Wasylishen
c63df23ba8 * 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
Eric Wasylishen
2347347cf9 * 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
Eric Wasylishen
dfab5c6196 * 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
Eric Wasylishen
ea8ded398f * 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
Eric Wasylishen
3bbfcbaab2 * 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
Eric Wasylishen
67de37f017 * 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
Eric Wasylishen
8b6fffb7fc * 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
Eric Wasylishen
2fe4c2e708 * 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
Riccardo Mottola
28fff5bc13 Add license to the Theme properties
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36889 72102866-910b-0410-8b05-ffd578937521
2013-07-15 13:20:41 +00:00
Quentin Mathe
da2351d2b2 Added support for providing custom theme control images (e.g. checkbox) in the same way we support it for tiles
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36836 72102866-910b-0410-8b05-ffd578937521
2013-07-04 15:46:11 +00:00
Gregory John Casamento
f248bc9988 * Headers/Additions/GNUstepGUI/GSTheme.h: Add declaration
for method setKeyEquivalent:forButtonCell:
	* Source/GSThemeDrawing.m: Add implementation for method
	setKeyEquivalent:forButtonCell:
	* Source/NSButtonCell.m: Add call to new method.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35702 72102866-910b-0410-8b05-ffd578937521
2012-10-16 21:23:48 +00:00
Richard Frith-MacDonald
28460f68e4 Cleanup/simplify code for handling theme names in defaults system
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34527 72102866-910b-0410-8b05-ffd578937521
2012-01-14 16:10:48 +00:00
Quentin Mathe
96aad93e0f Improved the menu theming to support some common menu look variations.
Fixed bug #34792 too.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34174 72102866-910b-0410-8b05-ffd578937521
2011-11-16 10:32:15 +00:00
Eric Wasylishen
60674d5076 * Headers/AppKit/NSImageCell.h:
* Headers/AppKit/NSCell.h: Move NSImageScaling constants to NSCell
* Source/NSImageCell.m:
* Source/NSCell.m: Refactor the image scaling logic to a private
method in NSCell, -_scaleImageWithSize:toFitInSize:scalingType:
which can be share by NSImageCell, NSButtonCell, and any other
cell classes that need it.
* Source/NSButtonCell.m:
* Headers/AppKit/NSButtonCell.h: Implement -imageScaling and
-setImageScaling methods. 
* Source/GSThemeDrawing.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Remove the
-drawImage:inButtonCell:withFrame:position: API intended
to let themes substitute images right before drawing,
as IMHO it's the wrong place to hook in new images (by
the time this method was caleld, sizing/positionging
was already done).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34160 72102866-910b-0410-8b05-ffd578937521
2011-11-11 23:10:15 +00:00
Quentin Mathe
e2967ab5bc Made separator menu item themable, by moving the drawing code from
NSMenuItemCell to a new method in GSThemeDrawing.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34079 72102866-910b-0410-8b05-ffd578937521
2011-10-28 09:40:41 +00:00
Eric Wasylishen
01c4a0be63 * Headers/Additions/GNUstepGUI/GSTheme.h: New GSThemeMargins struct.
Rename buttonBorderForCell:style:state: to buttonMarginsForCell:style:state:
and return the top/bottom/left/right margins instead of just two values.
(This is a theme API break.)
* Source/GSThemeDrawing.m: Implement buttonMarginsForCell:style:state:.
Also reduce the top and left margin of the default button by 1 pt, to
better reflect the button's appearance.
* Source/GSGuiPrivate.h: Add a GSRoundTowardsNegativeInfinity function
* Source/NSButtonCell.m (-drawImage:withFrame:inView:): Round the image
position down and to the right, as this seems to look the best.
* Source/NSButtonCell.m (-cellSize): Call new buttonMarginsForCell: method
* Source/NSButtonCell.m (-drawingRectForBounds:): Call new
buttonMarginsForCell: method


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33743 72102866-910b-0410-8b05-ffd578937521
2011-08-15 23:12:37 +00:00
Gregory John Casamento
828bc672f6 Add method to ask if the menu should show the icon. In some themes it
is redundant.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32829 72102866-910b-0410-8b05-ffd578937521
2011-04-10 20:14:53 +00:00
Gregory John Casamento
64516b7af5 Additional table view methods for themeing.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31679 72102866-910b-0410-8b05-ffd578937521
2010-11-28 03:55:58 +00:00
Gregory John Casamento
529856ef33 Added NSTableView to the drawing methods for GSTheme.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31678 72102866-910b-0410-8b05-ffd578937521
2010-11-28 00:05:46 +00:00
Gregory John Casamento
be0954d2ac Change to GSThemeDrawing to implement drawTableHeaderRect:inView:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31673 72102866-910b-0410-8b05-ffd578937521
2010-11-27 18:17:49 +00:00
Gregory John Casamento
942841a1d4 Added methods for drawing tableheader cell.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31668 72102866-910b-0410-8b05-ffd578937521
2010-11-27 03:51:13 +00:00
Gregory John Casamento
5751234b4b Adding methods to draw knob and bar to theme.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31666 72102866-910b-0410-8b05-ffd578937521
2010-11-26 22:48:46 +00:00
Gregory John Casamento
03ef6c2fb5 Correction for previous commit
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31664 72102866-910b-0410-8b05-ffd578937521
2010-11-26 21:41:19 +00:00
Gregory John Casamento
72963b2f49 Added theming for NSMenuView into GSTheme.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31660 72102866-910b-0410-8b05-ffd578937521
2010-11-26 20:28:45 +00:00
Gregory John Casamento
eac1ad07ad Adding theme method for NSBrowser drawing.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31658 72102866-910b-0410-8b05-ffd578937521
2010-11-26 19:49:04 +00:00
Gregory John Casamento
538432c72f Added method to draw scroller using theme.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31656 72102866-910b-0410-8b05-ffd578937521
2010-11-26 19:16:46 +00:00
Gregory John Casamento
8ed87de2f2 Added method to draw tab view to theme.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31654 72102866-910b-0410-8b05-ffd578937521
2010-11-26 18:08:58 +00:00
Fred Kiefer
49fdc602ba Remove a few compiler warnings.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31587 72102866-910b-0410-8b05-ffd578937521
2010-11-03 20:26:30 +00:00
Gregory John Casamento
70ab53498d * Headers/Additions/GNUstepGUI/GSTheme.h: Added method
displayPopUpMenu:... to handle the display of the popup menus for
	themes.
	* Source/GSThemeMenu.m: Added default implementation.
	* Source/NSPopUpButtonCell.m: Call the displayPopUpMenu:... method
	in the method attachPopUpWithFrame:inView:.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30433 72102866-910b-0410-8b05-ffd578937521
2010-05-20 08:09:08 +00:00
Gregory John Casamento
562f545bd3 * Headers/Additions/GNUstepGUI/GSTheme.h: Added method
rightMouseMenu:forEvent: to allow theming of transient and
	context menus.
	* Source/GSThemeMenu.m: Implementation of method 
	rightMouseMenu:forEvent: to allow theming of transient and
	context menus.
	* Source/NSMenu.m: use the theming code implemented above instead
	of rendering the menu directly.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30370 72102866-910b-0410-8b05-ffd578937521
2010-05-12 22:47:10 +00:00
Fred Kiefer
0ecdeae752 Remove compiler warning for NSBrowser header cell drawing.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30360 72102866-910b-0410-8b05-ffd578937521
2010-05-11 16:48:44 +00:00
Eric Wasylishen
0d365b7d10 NSBrowser header themeing
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30189 72102866-910b-0410-8b05-ffd578937521
2010-04-19 03:14:36 +00:00
Fred Kiefer
7ebb2818cc Final set of #include -> #import replacement in additional headers.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30097 72102866-910b-0410-8b05-ffd578937521
2010-04-07 08:59:43 +00:00
Gregory John Casamento
cc37831c44 * Headers/Additions/GNUstepGUI/GSTheme.h: Add category to allow
overriding of classes used for save/open panels.
	* Source/GNUmakefile: Build new category.
	* Source/GSThemeOpenSavePanels.m: Implementation of methods
	-savePanelClass and -openPanelClass.
	* Source/NSOpenPanel.m: Modifications to use class from current 
	theme.
	* Source/NSSavePanel.m: Modifications to use class from current 
	theme.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29791 72102866-910b-0410-8b05-ffd578937521
2010-02-28 04:31:54 +00:00
Eric Wasylishen
411d3e27bc NSColorWell themeing
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29594 72102866-910b-0410-8b05-ffd578937521
2010-02-12 23:09:35 +00:00
Eric Wasylishen
82d6f25159 Add GSThemeDisabledState
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29455 72102866-910b-0410-8b05-ffd578937521
2010-02-01 08:26:40 +00:00
Eric Wasylishen
1d764b8771 Use theme tiles (if available) to draw progress bars.
New tile name: GSProgressIndicatorBarDeterminate


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29453 72102866-910b-0410-8b05-ffd578937521
2010-02-01 06:20:11 +00:00
Eric Wasylishen
7225f6e380 Use theme tiles (if available) to draw menu backgrounds and items.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29447 72102866-910b-0410-8b05-ffd578937521
2010-01-30 05:00:29 +00:00
Gregory John Casamento
a7b418e691 * Headers/Additions/GNUstepGUI/GSTheme.h: Added new method
declaration for updateAllWindowsWithMenu:
	* Source/GSThemeMenu.m: Added default implementation of 
	updateAllWindowsWithMenu:
	* Source/NSMenu.m: Added call to updateAllWindowsWithMenu: on
	current theme.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29445 72102866-910b-0410-8b05-ffd578937521
2010-01-30 03:11:56 +00:00
Eric Wasylishen
ffc734898c Use theme tiles (if available) to draw table headers. New tile names are
GSTableHeader and GSTableCorner.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29444 72102866-910b-0410-8b05-ffd578937521
2010-01-29 22:21:34 +00:00
Eric Wasylishen
e6c79f2fb8 NSSegmentedCell themeing support
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29435 72102866-910b-0410-8b05-ffd578937521
2010-01-29 03:11:43 +00:00
Eric Wasylishen
253a3dff34 Factor out table header cell drawing into a new GSTheme method,
-drawTableHeaderCell:withFrame:inView:state:


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29431 72102866-910b-0410-8b05-ffd578937521
2010-01-28 07:25:04 +00:00
Eric Wasylishen
f03ffb9793 Create a new GSTheme method for drawing the background of NSMenuView,
-drawBackgroundForMenuView:withFrame:dirtyRect:horizontal:


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29430 72102866-910b-0410-8b05-ffd578937521
2010-01-28 04:28:23 +00:00
Quentin Mathe
84683f1c4d Added the possibility to customize the title view look and behavior in a theme
with a GSTitleView subclass.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29419 72102866-910b-0410-8b05-ffd578937521
2010-01-27 11:29:07 +00:00