Commit graph

96 commits

Author SHA1 Message Date
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
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
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
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
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
rmottola
2282989353 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
qmathe
f73c6013ba 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
ericwa
82a968380f * Source/GSTheme.m:
* Source/NSImage.m: Revert previous commit and write a much cleaner
implementation that fixes the same bug.

I removed the step in theme activation where we call
+[NSImage _setImagePath:name:] on each image in the theme, and instead
modified +[NSImage _pathForImageNamed:] to also search the theme images
directory.

When a GSTheme activates now, it only calls +[NSImage _reloadCachedImages]
which checks all NSImage cached by name and reloads any whose path has
changed.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36482 72102866-910b-0410-8b05-ffd578937521
2013-04-06 19:30:48 +00:00
ericwa
ac2faeaa9e Revert "Allow themes to override only a "base" image like"
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36481 72102866-910b-0410-8b05-ffd578937521
2013-04-06 19:30:30 +00:00
ericwa
709dcde42d Allow themes to override only a "base" image like
common_3DArrowRight and have images that map to it (NSMenuArrow)
automatically update.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36474 72102866-910b-0410-8b05-ffd578937521
2013-04-06 07:57:57 +00:00
theraven
30eb57e642 Fix all current compiler warnings on FreeBSD/x86-64.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36038 72102866-910b-0410-8b05-ffd578937521
2013-01-30 09:48:54 +00:00
fredkiefer
e278d9956c Fix clang compiler warnings as reported by Sebastian Reitenbach
<sebastia@l00-bugdead-prods.de>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34608 72102866-910b-0410-8b05-ffd578937521
2012-01-23 14:27:58 +00:00
rfm
4354640dd1 Attempt to get gnome and windows themes working again.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34528 72102866-910b-0410-8b05-ffd578937521
2012-01-14 17:55:43 +00:00
rfm
39fbad9a42 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
ericwa
450a7402db * Source/GSTheme.m: Remove code which sets and unsets images
on theme activation/deactivation.
* Source/NSImage.m (+imageNamed:): Factor out code for finding
the path for a name to a separate method, +pathForImageNamed.
The code is unchanged otherwise, except for fixing the retrieval
of images from the theme bundle, which was broken.
* Source/NSImage.m (-setName:): Remove code for creating theme
proxy. Subscribe/unscribe to theme change notification when
the receiver is added/removed from the name dictionary.
* Source/NSImage.m (-themeDidActivate:): Method called in
response to a GSThemeDidActivateNotification on images with
a name set. It does a path lookup in the same way that
+imageNamed: would, and checks if the path has changed due
to the theme change. If it has, all reps are discarded and
the image at the new path is loaded. This avoids the need for
the theme proxy objects.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34474 72102866-910b-0410-8b05-ffd578937521
2012-01-10 04:38:10 +00:00
fredkiefer
ccf59ac3ca Replace some occurences of int with NSInteger
and unsigned with NSUInteger. This allows to recompile gui on 
64 bit systems after the change to NSNotFound in base.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34312 72102866-910b-0410-8b05-ffd578937521
2011-12-17 17:16:09 +00:00
qmathe
78fbad84c3 Removed logging statement that shouldn't have been committed
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34175 72102866-910b-0410-8b05-ffd578937521
2011-11-16 10:37:47 +00:00
qmathe
effd2e71de 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
qmathe
93988bdfbd 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
gcasa
87920fb9b9 2011-06-09 13:49-EDT Gregory John Casamento <greg.casamento@gmail.com>
* Source/GSTheme.m: Move notifications handling code to
	setTheme: instead and add code which deactivates the notifications
	and then starts listening again after activate is called.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33267 72102866-910b-0410-8b05-ffd578937521
2011-06-09 17:51:39 +00:00
gcasa
2138dcdb9f 2011-06-09 13:43-EDT Gregory John Casamento <greg.casamento@gmail.com>
* Source/GSTheme.m: Move call to listen to default changes to 
	activate instead of +initialize. 


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33266 72102866-910b-0410-8b05-ffd578937521
2011-06-09 17:46:36 +00:00
theraven
848c7ca237 More unsigned < 0 tests.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32351 72102866-910b-0410-8b05-ffd578937521
2011-02-24 13:28:20 +00:00
ericwa
82ac6117e8 Replace sel_eq with sel_isEqual
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31285 72102866-910b-0410-8b05-ffd578937521
2010-09-09 23:50:38 +00:00
gcasa
42bbcde0a9 * Source/GSTheme.m: remove forward declaration for _setArchiveByName
from NSImage category.
	* Source/NSImage.m: Added code in _setImage:forName: to archive
	by name instead.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31075 72102866-910b-0410-8b05-ffd578937521
2010-08-03 21:11:00 +00:00
gcasa
7c984daa0b 2010-07-22 19:35-EDT Gregory John Casamento <greg.casamento@gmail.com>
* Source/GSTheme.m: Call method _setArchiveByName: with YES so that
	images loaded by a theme will not be persisted as image data, but
	rather as references.  This will avoid an issue with saving theme
	images when saving files in Gorm while a theme is loaded.
	* Source/NSImage.m: Added method _setArchiveByName:.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31021 72102866-910b-0410-8b05-ffd578937521
2010-07-22 23:27:36 +00:00
rfm
68a1850fd5 Attempt fix for Riccardos's latest issue.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30328 72102866-910b-0410-8b05-ffd578937521
2010-05-09 06:55:33 +00:00
ericwa
dcebe1ef37 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
fredkiefer
9768ee6425 Next bit of #include -> #import replacement.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30029 72102866-910b-0410-8b05-ffd578937521
2010-03-24 09:18:14 +00:00
rfm
949deb4d7a make non-standard images persist oafter theme has unloaded, in case anything
in the gui is still using them.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29851 72102866-910b-0410-8b05-ffd578937521
2010-03-05 10:43:40 +00:00
rfm
7f3482e73a Updates for changes in base
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29839 72102866-910b-0410-8b05-ffd578937521
2010-03-05 05:18:39 +00:00
ericwa
130f420011 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
ericwa
e4b84cdeda Draw borders using image tiles, if available.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29503 72102866-910b-0410-8b05-ffd578937521
2010-02-07 21:42:50 +00:00
ericwa
1e62a48e11 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
ericwa
feac9a489a 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
ericwa
b6ff87adec 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
ericwa
f886235d70 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
ericwa
2d68d4d027 Add support for looking up button tiles based on bezel style
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29441 72102866-910b-0410-8b05-ffd578937521
2010-01-29 08:08:10 +00:00
theraven
ef47f509c2 Made GSTheme implement fast forwarding. Should speed things up a lot with the new ABI.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29052 72102866-910b-0410-8b05-ffd578937521
2009-11-23 23:13:26 +00:00
rfm
e954a93ff3 tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29044 72102866-910b-0410-8b05-ffd578937521
2009-11-20 13:36:46 +00:00
rfm
b2bd0b411e tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29043 72102866-910b-0410-8b05-ffd578937521
2009-11-20 12:55:57 +00:00
rfm
2211c22d20 Support overriding of methods in any class by the theme.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29042 72102866-910b-0410-8b05-ffd578937521
2009-11-20 12:13:10 +00:00
rfm
e901475983 api cleanup
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29039 72102866-910b-0410-8b05-ffd578937521
2009-11-19 20:37:43 +00:00
rfm
3777fc7194 theming cleanups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29024 72102866-910b-0410-8b05-ffd578937521
2009-11-16 14:28:11 +00:00
fredkiefer
83e26ad83f Extract a few more drawing and colour methods to GSTheme.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28937 72102866-910b-0410-8b05-ffd578937521
2009-11-02 11:48:22 +00:00
rfm
35b11f6c6b Add method to return theme version
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28883 72102866-910b-0410-8b05-ffd578937521
2009-10-26 09:48:08 +00:00
rfm
30e8ce9365 fixup fill style name conversion
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28849 72102866-910b-0410-8b05-ffd578937521
2009-10-19 14:09:05 +00:00
rfm
481441ccea Tweak last change
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28846 72102866-910b-0410-8b05-ffd578937521
2009-10-19 10:49:10 +00:00
rfm
37b8ed30da add functions for handling fill style names
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28845 72102866-910b-0410-8b05-ffd578937521
2009-10-19 10:34:55 +00:00
rfm
c8916fd438 minor fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28843 72102866-910b-0410-8b05-ffd578937521
2009-10-19 07:44:22 +00:00
rio
58a3a56cde Added 'NinePatch' drawing style, more efficient drawing and fixed bugs.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28841 72102866-910b-0410-8b05-ffd578937521
2009-10-19 03:19:01 +00:00