aboutsummaryrefslogtreecommitdiffstats
path: root/eazel-engine/ChangeLog
blob: 8dc74ffd5d860f21c586185b7b3c00f819f9cdc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
2001-05-22  John Harper  <jsh@pixelslut.com>

	Fixed bug 8050 (GIMP crashes in eazel-theme-gradient.c):

	* src/eazel-theme-draw.c: in some of the drawing functions,
	assert that passed-in WIDTH and HEIGHT parameters are less than
	32768. This is a kludge, but it avoids the case where GTK
	widgets do unsigned arithmetic on 16-bit values and ask us to
	draw things 65535 by 65535!

	(GtkOptionMenu was the offender in the reported bug)

2001-03-23  John Harper  <jsh@eazel.com>

	* src/eazel-theme-main.c (parse_gradient): if the contents of
	the output pointer is non-null, unref it (thanks to Jacob
	Berkman for pointing this out)

2001-02-14  John Harper  <jsh@eazel.com>

	* test.c, configure.in: added feature tests for setenv () and
	putenv () then use whatever exists. Fixes problem on solaris
	systems

	* config.h.in: removed from cvs, it's autogenerated

2001-02-12  John Harper  <jsh@eazel.com>

	* configure.in: version 0.3

	* make-gtkrc.pl, gtkrc.in: 
	* Crux/gtk/Makefile.am:

	Include a `module_path' setting in the built gtkrc files. It
	points to the directory in which the engine got installed. This
	fixes the problem where using a GTK in a different prefix
	couldn't find the engine module. Unfortunately it also means
	that Perl is required at compile-time (since the necessary
	directory isn't known until then)

	* src/eazel-theme-main.c: reworked how the focus-change state
	is kept, only non-trivial difference is that we can now
	disconnect all signals we connected to - this allows theme_exit
	() to not leave any stale signal handlers connected

	* gtkrc.in: fixed some minor typos (`@endif' -> `@endif@')

2001-02-09  John Harper  <jsh@eazel.com>

	* configure.in: version 0.2

2001-01-26  John Harper  <jsh@eazel.com>

	Work to make accent-colored widgetry `grey-out' when the window
	they're in isn't focused:

	* src/eazel-theme-main.c (theme_set_background): added an
	`interesting' hack to check if the GdkWindow is associated with
	a GtkWindow. If so, then make sure that focus-in/out signals
	are connected, so that we can queue redraws of the necessary
	widgets when the top-level focus changes

	* src/eazel-theme-main.c
	(eazel_engine_widget_in_focused_window_p): new function,
	returns true if the given widget is in the currently focused
	window

	* gtkrc.in, src/eazel-theme.h, src/eazel-theme-pixmaps.c,
	src/eazel-theme-draw.c: added `_INACTIVE' variants of all
	images that get recolored with the accent color. Use them when
	the window containing the widget is unfocused

2001-01-22  John Harper  <jsh@eazel.com>

	* test.c, Makefile.am: fixed the test program after changing
	the theme names

	* src/eazel-theme-draw.c (draw_box): call
	gdk_gc_set_clip_rectangle for each gc used, not just the bg

	* eazel-engine.spec.in, Crux/Makefile.am, Crux/gtk/Makefile.am:
	fix build problems

	Removed all `Eazel-Foo' themes. There's just a single theme
	`Crux' now. It's a copy of what used to be `Eazel-Custom'

	Bumped version to 0.1

	* configure.in, Makefile.am: 
	* Crux/README, Crux/Makefile.am, Crux/.cvsignore: 
	* Crux/gtk/Makefile.am, Crux/gtk/.cvsignore: added

	* Eazel-Blue/README, Eazel-Blue/Makefile.am,
	Eazel-Blue/.cvsignore: 
	* Eazel-Blue/gtk/Makefile.am, Eazel-Blue/gtk/.cvsignore: 
	* Eazel-Custom/README, Eazel-Custom/Makefile.am,
	Eazel-Custom/.cvsignore: 
	* Eazel-Custom/gtk/Makefile.am, Eazel-Custom/gtk/.cvsignore: 
	* Eazel-Orange/README, Eazel-Orange/Makefile.am,
	Eazel-Orange/.cvsignore: 
	* Eazel-Orange/gtk/Makefile.am, Eazel-Orange/gtk/.cvsignore: 
	* Eazel-Purple/README, Eazel-Purple/Makefile.am,
	Eazel-Purple/.cvsignore: 
	* Eazel-Purple/gtk/Makefile.am, Eazel-Purple/gtk/.cvsignore: 
	* Eazel-Teal/README, Eazel-Teal/Makefile.am,
	Eazel-Teal/.cvsignore: 
	* Eazel-Teal/gtk/Makefile.am, Eazel-Teal/gtk/.cvsignore: 
	Deleted

	* capplet/eazel-engine-properties.desktop,
	capplet/eazel-engine-capplet.c: changed text for the new theme
	name

	* src/eazel-theme-main.c (parse_color): when trying to read
	colours from files, if the file doesn't exist, default to the
	`teal' colour

2001-01-21  John Harper  <jsh@eazel.com>

	* capplet/eazel-engine-capplet.c: this now displays a
	GnomeColorPicker widget, instead of embedding the color
	selector into the actual capplet window

	* make-gtkrc.pl, gtkrc.in: new substitution option
	`lists_have_separators'. Disabled by default

	* capplet/Makefile.am: fix `make distcheck'

	Work to make the theme be customizable within the control
	center:

	* Eazel-Blue/gtk/substs, Eazel-Blue/gtk/Makefile.am: 
	* Eazel-Orange/gtk/substs, Eazel-Orange/gtk/Makefile.am: 
	* Eazel-Purple/gtk/substs, Eazel-Purple/gtk/Makefile.am: 
	* Eazel-Teal/gtk/substs, Eazel-Teal/gtk/Makefile.am: 

	Removed the `substs' files. The sole argument to the expansion
	(the selection color) is set in the Makefile.am now

	* src/eazel-theme.h, src/eazel-theme-main.c: lots of syntax
	changes. Expanded the use of the palette so that any color or
	gradient may be fetched from a palette entry. This is how the
	customizable theme works, it loads the color into a palette
	slot, then references that slot from multiple places

	* gtkrc.in: many changes to use new syntax, mostly to make the
	`Eazel-Custom' theme possible

	* Eazel-Custom/README, Eazel-Custom/Makefile.am,
	Eazel-Custom/.cvsignore: 
	* Eazel-Custom/gtk/Makefile.am, Eazel-Custom/gtk/.cvsignore: 

	New theme variant. The accent color is read from
	~/.eazel-engine-color

	* capplet/eazel-engine-properties.desktop,
	capplet/eazel-engine-capplet.c, capplet/Makefile.am,
	capplet/.cvsignore: 

	Control center applet to read and write ~/.eazel-engine-color.
	Needs more work before it's remotely presentable (currently its
	just a GtkColorSelection widget)

	* make-gtkrc.pl: added `-c COLOR' option to set the focus_color
	substitution

	* src/eazel-theme-draw.c (draw_arrow): fixed drawing
	insensitive spin buttons, by using a mixture of kludges

2001-01-18  John Harper  <jsh@eazel.com>

	* make-gtkrc.pl: fixed typo in one of the default insensitive
	colors

2001-01-17  John Harper  <jsh@eazel.com>

	* Eazel-Purple/gtk/substs: washed out the purple colors
	slightly

2001-01-17  John Harper  <jsh@eazel.com>

	* Eazel-Blue/gtk/substs, Eazel-Orange/gtk/substs,
	Eazel-Purple/gtk/substs, Eazel-Teal/gtk/substs: changed the
	menuitem gradients to be 4-point gradients (to get a shadow
	effect)

	* src/eazel-theme-hacks.c: removed the gtk_menu_size_allocate
	hack. (We want menus to have drop-shadows now). Down to two
	hacks only!

	* src/eazel-theme-draw.c (paint_menuitem_shadow): new function,
	used to draw shadows for menuitems. Make them look as though
	they're sunk into the menu pane

	* src/eazel-theme-gradient.c
	(eazel_engine_fill_gradient_rgb_buffer): when calculating the
	number of pixels to draw in each step, multiply before dividing
	to avoid loss of accuracy (which could mean that the last
	gradient didn't quite reach the last pixel to be drawn)

	* src/eazel-theme-main.c (theme_init): reversed the default
	ACTIVE gradient (so it's the same direction as the other
	gradients)

	* gtkrc.in: changed `bg[ACTIVE]' to #bbbbbb instead of
	something darker; makes shadows of buttons and toolbar handles
	look a lot better

	* make-gtkrc.pl: added @if bool@, @else@ and @endif@ statements
	to the substitution language. Removed the `booleans as
	comments' hack

	* gtkrc.in: used @if@ and friends to express some expansions

	* gtkrc.in: added GtkPlug, GtkSocket, BonoboPlug and
	BonoboSocket to the list of widgets that use the
	parent-relative background style. Partially fixes the problems
	with the new nautilus throbber (bug 5685)

	* src/eazel-theme-draw.c (draw_handle): draw the `grip'
	correctly for vertically oriented toolbars

	* gtkrc.in: set borders of {V,H}_SLIDER_THUMB images

2001-01-16  John Harper  <jsh@eazel.com>

	* src/eazel-theme-draw.c (draw_handle): if `detail' is
	"dockitem" and state is NORMAL, change state to ACTIVE. (This
	makes the handle on dock items darker, fixing bug 5467)

	* data/slider_v_trough_focus.png,
	data/slider_h_trough_focus.png: 
	* src/eazel-theme-draw.c: 

	Tweaked focused state of sliders to have a single pixel outline
	instead of two. Also fixed the bug of draw_focus () redrawing
	the slider focus ring

	* data/slider_v_trough_focus.png, data/slider_v_trough.png,
	data/slider_v_thumb.png, data/slider_h_trough_focus.png,
	data/slider_h_trough.png, data/slider_h_thumb.png:

	Added new slider design

	* gtkrc.in: 
	* data/tab_usel-bottom.png, data/tab_usel-bottom-left.png,
	data/tab_sel-bottom.png, data/Makefile.am: 

	Added Arlo's new design for bottom-oriented tabs

2001-01-15  John Harper  <jsh@eazel.com>

	* src/eazel-theme-draw.c, gtkrc.in: scale the slider thumb to
	meet the requested size, also set thickness to zero. Arlo's
	working on some tweaks for the images..

	* src/eazel-theme-draw.c: centered the pair of arrows on option
	menu buttons

	* src/eazel-theme-draw.c, src/eazel-theme.h, gtkrc.in:
	implemented new tab design (code to draw focus on tabs is
	disabled for now)

	* src/eazel-theme-draw.c (paint_arrow): chopped a pixel from
	the base of arrows per Arlo's request

	* src/eazel-theme-draw.c (paint_background_area): new function,
	used in a couple of places to make sure the background pixels
	of shaped images are drawn the right color

	* make-gtkrc.pl: disable gradiented menus by default

	* src/eazel-theme-draw.c (paint_arrow): draw fixed size arrows,
	disregarding the WIDTH and HEIGHT parameters that are passed
	in.. it looks better this way

	* src/eazel-theme-draw.c (draw_box): progress bar is now drawn
	in three sections (two of which are optional, depending on the
	left/right positions of the bar)

	* data/progressbar_trough.png, data/progressbar.png,
	data/progressbar-right.png, data/progressbar-left.png,
	data/Makefile.am:
	* gtkrc.in:
	* src/eazel-theme.h:

	Added new progress bar design from Arlo

2001-01-12  John Harper  <jsh@eazel.com>

	* make-gtkrc.pl, gtkrc.in: add support for boolean options that
	expand to one of two strings depending on their value. Used
	this to add two new substitution options: `gradiented_menus'
	and `prelight_check_buttons'

	* Eazel-Blue/gtk/Makefile.am:
	* Eazel-Orange/gtk/Makefile.am:
	* Eazel-Purple/gtk/Makefile.am:
	* Eazel-Teal/gtk/Makefile.am:
	Added make-gtkrc.pl to dependences for gtkrc targets

2001-01-11  John Harper  <jsh@eazel.com>

	* Eazel-Purple/gtk/substs: toned down the purple a bit

	* configure.in, Makefile.am: 
	* Eazel-Orange/README, Eazel-Orange/Makefile.am,
	Eazel-Orange/.cvsignore: 
	* Eazel-Orange/gtk/substs, Eazel-Orange/gtk/Makefile.am,
	Eazel-Orange/gtk/.cvsignore: 
	* Eazel-Purple/README, Eazel-Purple/Makefile.am,
	Eazel-Purple/.cvsignore: 
	* Eazel-Purple/gtk/substs, Eazel-Purple/gtk/Makefile.am,
	Eazel-Purple/gtk/.cvsignore: 

	Added Eazel-Purple and Eazel-Orange color schemes (my colors,
	not Arlo's, so blame me..)

	* gtkrc.in: insensitive colors setting is now got from
	@insensitive_colors@ expansion; removed thickness=0 setting for
	GtkRange-derived widgets

	* data/Makefile.am, data/scroller-v-thumb-pressed.png,
	data/scroller-v-pressed.png, data/scroller-h-thumb-pressed.png,
	data/scroller-h-pressed.png: removed these images - GTK never
	lets them be used

	* src/eazel-theme-draw.c: don't even try to use ACTIVE variants
	of scrollbar images (they never were, anyway)

	* data/scroller-v.png, data/scroller-v-trough.png,
	data/scroller-v-thumb.png, data/scroller-v-thumb-hilight.png,
	data/scroller-v-hilight.png, data/scroller-h.png,
	data/scroller-h-trough.png, data/scroller-h-thumb.png,
	data/scroller-h-thumb-hilight.png, data/scroller-h-hilight.png,
	data/scroller-arrow-up.png, data/scroller-arrow-up-pressed.png,
	data/scroller-arrow-up-hilight.png,
	data/scroller-arrow-right.png,
	data/scroller-arrow-right-pressed.png,
	data/scroller-arrow-right-hilight.png,
	data/scroller-arrow-left.png,
	data/scroller-arrow-left-pressed.png,
	data/scroller-arrow-left-hilight.png,
	data/scroller-arrow-down.png,
	data/scroller-arrow-down-pressed.png,
	data/scroller-arrow-down-hilight.png:

	New scrollbar design from Arlo. The `hilight' state images were
	done by me by just changing the color curves in the Gimp, so
	they may need to be redone. The `pressed' images are currently
	the same as the normal images

	* src/eazel-theme-main.c: give newly allocated stock tables a
	ref count of one (don't leave it at zero!). This fixes the
	crashes when switching themes. Made the method of handling
	default stock tables and settings somewhat saner (any engine
	data sections that specify a stock table also set any default
	values, and the default stock table, for subsequent sections).
	Also changed the range class geometry settings to match the new
	scrollbars

2001-01-10  John Harper  <jsh@eazel.com>

	* data/Makefile.am: list all images individually so that `make
	distcheck' passes
	* Eazel-Blue/gtk/Makefile.am, Eazel-Teal/gtk/Makefile.am: when
	`make dist'ing, copy gtkrc from the directory it was found in

	* gtkrc.in, src/eazel-theme.h: remove TAB_{LEFT,RIGHT}_* images
	(for now, anyway)

	* check-data.sh: new script, checks that all the necessary
	images are listed in data/Makefile.am. If it fails, so does
	`make dist'

	* Big reorganizational changes. Image files are now in `data'
	subdirectory; two theme directories `Eazel-Teal' and
	`Eazel-Blue'. The gtkrc files for these are generated from a
	common template gtkrc.in, using a Perl script (but they're
	built by the `dist' target, so Perl isn't required unless
	compiling from CVS)

	The other main change is adding support for recolouring images
	as they're loaded into the stock table. Given a gradient, any
	pixels in the recoloured image with zero red and blue channels
	gets a colour from the gradient (using the value of the green
	channel to pick where to sample the gradient)

	Also, the `make dist' target now works properly, and I've added
	a .spec file for building rpms. The eazel-engine directory is
	now completely self-standing - it no longer has any relation to
	the rest of the eazel-themes module

	* src/eazel-theme-draw.c: first attempt at drawing spin buttons

	* src/eazel-theme-gradient.c, src/eazel-theme.h: gradients are
	now ref-counted

	* src/eazel-theme-pixmaps.c (recolor_pixbuf): the function to
	do the recolouring, deleted the old multiplication and
	sunbstitution functions, which aren't going to be used anyway

2001-01-08  John Harper  <jsh@eazel.com>

	* gtk+/eazel-engine/src/eazel-theme-main.c (free_gradient): if
	`do_not_free' flag is set, don't free anything

	(theme_init): set `do_not_free' flag of gradient in the
	default_theme_data (since they get copied into multiple styles)

	This may leak memory, but at least it means that we don't free
	data multiple times (which was causing the crashes when
	changing from this theme to another). And the size of the
	leakage is bounded, anyway ;-)

	* gtk+/eazel-engine/src/eazel-theme.h (eazel_engine_gradient):
	added flag `do_not_free'

	* gtk+/eazel-engine/src/eazel-theme-hacks.c (restore_funcs):
	don't print a message unconditionally

2001-01-06  John Harper  <jsh@eazel.com>

	* gtk+/eazel-engine/src/eazel-theme-draw.c (paint_stock_image):
	if area != 0, clip to it by hand. Can't use the gc's clip area
	since we may also use its clip mask. Fixes the bug where
	notebook page labels get cleared (part of bug 5471)

	* gtk+/eazel-engine/src/eazel-theme-draw.c (paint_tick,
	paint_bullet): new functions

	(paint_check): use the above two when drawing check/radio
	buttons on menu items, don't draw anything for unset items

	* gtk+/eazel-engine/src/eazel-theme-draw.c (paint_default):
	factored from paint_default_box, with an extra argument, the
	background color

	(paint_default_highlight): new function, draws the highlight
	into the top-left corner of the `has-default' ring

2001-01-02  John Harper  <jsh@eazel.com>

	* gtk+/eazel-engine/*: lots of changes that I'm not going to
	list individually (including: moved image configuration to
	gtkrc, some code to do image recoloration)

2000-12-21  John Harper  <jsh@eazel.com>

	* gtk+/eazel-engine/src/eazel-theme-draw.c: re-fixed text/entry
	shadows; don't draw default marking on focused buttons, just
	focus marking

	* gtk+/eazel-engine/EazelEngine/gtk/progressbar.png: 
	* gtk+/eazel-engine/src/eazel-theme-pixmaps.c: shrunk height of
	this image, so that it fits flush against the top of its trough

2000-12-20  John Harper  <jsh@eazel.com>

	* gtk+/eazel-engine/EazelEngine/gtk/gtkrc,
	gtk+/eazel-engine/src/eazel-theme.h,
	gtk+/eazel-engine/src/eazel-theme-main.c: removed all the
	bg_gradient junk (not necessary anymore)

	Work to support n-point gradients:

	* gtk+/eazel-engine/src/eazel-theme-main.c
	(set_two_point_gradient): new function

	(theme_init): use set_two_point_gradient to manually create the
	default gradients

	(parse_gradient): now parses n-point gradients (with n >= 1).
	Syntax is either `C1, ..., CN'. Any of the commas can be
	replaced by a number (int or float) in square brackets. Commas
	have a weight of one

	(theme_data_unref): free the gradient when ref-count is zero

	* gtk+/eazel-engine/src/eazel-theme.h (eazel_engine_gradient):
	gradients are now specified as a single `from' color and a list
	of `to' colors. Each `to' color has a weight defining the
	relative size it has in the drawn gradient

	* gtk+/eazel-engine/src/eazel-theme-gradient.c
	(fill_gradient_rgb_buffer): split into two functions, to make
	it easier to loop over the individual `to' colors

	* gtk+/eazel-engine/EazelEngine/gtk/gtkrc: use a 3-point
	gradient for prelighted menuitems

2000-12-19  John Harper  <jsh@eazel.com>

	* gtk+/eazel-engine/EazelEngine/gtk/gtkrc: turn off gradients
	for the panel's Foobar widget (otherwise there's a patch of
	grey between the two menu bars)

	* gtk+/eazel-engine/src/eazel-theme-draw.c (draw_handle): don't
	draw the dots on the handle box

	* gtk+/eazel-engine/test.glade, gtk+/eazel-engine/test.c: added
	some more widgets, connected the delete_event signal properly

2000-12-18  John Harper  <jsh@eazel.com>

	* gtk+/eazel-engine/src/eazel-theme-draw.c (draw_box): don't
	try to set the background pixmap of pixmaps (fixes deskguide X
	error)

	* gtk+/eazel-engine/src/eazel-theme-draw.c (draw_box): if width
	== -1 and height == -1, then set the background {pixmap,pixel}
	of the window instead of just drawing. This works a lot better
	than the old method

	* gtk+/eazel-engine/src/eazel-theme-gradient.c
	(eazel_engine_set_bg_gradient): new function, renders a tile,
	then sets it as the background pixmap of a window

	* gtk+/eazel-engine/src/eazel-theme-main.c
	(theme_set_background): use eazel_engine_set_bg_gradient

	* gtk+/eazel-engine/src/eazel-theme-hacks.c (class_hacks):
	don't replace the `draw' and `expose_event' methods of
	GtkMenuItem. Use a `bg_gradient' setting instead

	* gtk+/eazel-engine/src/eazel-theme-main.c
	(theme_set_background): implemented this function (one of the
	GtkStyleClass members). If the given state has an associated
	`bg_gradient', render this gradient to a pixmap tile, then
	install it as the window's background pixmap

	* gtk+/eazel-engine/src/eazel-theme-gradient.c
	(eazel_engine_draw_vertical_gradient,
	eazel_engine_draw_horizontal_gradient): if the `dither_mode'
	variable is set to something other than GDK_RGB_DITHER_NONE,
	use GdkRGB to render the gradient (instead of just drawing
	lines of each color). This gives _much_ higher quality
	gradients on 16-bit displays!

	* gtk+/eazel-engine/src/eazel-theme-draw.c: removed some
	kludges that are no longer needed

	* AUTHORS: added myself

2000-12-15  John Harper  <jsh@eazel.com>

	* gtk+/eazel-engine/*:

	New sub-directory, the beginnings of a gtk theme engine to
	implement Arlo's gtk style. Still very much a work in progress