1
1
;; frames.jl -- handle window framing
2
;; $Id: frames.jl,v 1.84 2001/04/13 00:38:59 jsh Exp $
2
;; $Id: frames.jl,v 1.93 2003/10/21 16:17:59 jsh Exp $
4
4
;; Copyright (C) 1999 John Harper <john@dcs.warwick.ac.uk>
134
138
"Default frame style:"
135
139
:type frame-style
136
140
:widget-flags (expand-vertically)
138
141
:group appearance
139
142
:after-set (lambda () (after-setting-default-frame)))
141
144
(defcustom reload-themes-when-changed t
142
145
"Automatically reload themes when they are updated."
147
(defcustom frame-type-fallback-alist
149
(defvar frame-type-fallback-alist
148
150
'((transient . default)
149
151
(shaped . default)
150
152
(shaped-transient . shaped)
151
153
(shaded . shaped)
152
154
(shaded-transient . shaped-transient)
153
155
(icon . shaped-transient)
155
"Frame type fallbacks:"
156
:tooltip "Associate frame types with type to try if the theme doesn't \
157
implement the requested type."
158
:type (alist ((symbol default shaped transient
159
shaped-transient icon doc) "From")
160
((symbol default shaped transient
161
shaped-transient icon doc) "To"))
162
:widget-flags (expand-vertically framed)
165
:after-set (lambda () (after-setting-frame-option)))
158
(shaded-utility . shaded-transient)
160
(shaded-toolbar . shaded-utility)
162
(shaded-menu . shaded-utility)
164
"Frame type fallbacks.")
167
166
(defvar theme-update-interval 60
168
167
"Number of seconds between checking if theme files have been modified.")
216
215
:group appearance
218
217
:widget-flags (expand-horizontally)
220
218
:after-set (lambda () (after-setting-frame-option)))
222
(defcustom default-bevel-percent nil
223
"Bevel intensity: \\wpercent."
227
:after-set (lambda () (after-setting-frame-option)))
220
(defvar default-bevel-percent nil
221
"Bevel intensity as a percentage.")
230
224
;;; managing frame types
394
388
(define (set-window-type w type)
395
(unless (eq (window-get w 'type) type)
389
(if (window-get w 'type/saved)
390
(window-put w 'type/saved type)
391
(unless (eq (window-get w 'type) type)
392
(window-put w 'type type)
393
(call-window-hook 'window-state-change-hook w (list '(type)))
394
(reframe-window w))))
396
;; XXX do something with KEY. (It's a unique symbol used to mark
397
;; XXX the different users of these functions)
399
(define (push-window-type w type key)
400
(window-put w 'type/key key)
401
(unless (eq (window-get w 'type type))
402
(unless (window-get w 'type/saved)
403
(window-put w 'type/saved (window-get w 'type)))
396
404
(window-put w 'type type)
397
405
(call-window-hook 'window-state-change-hook w (list '(type)))
398
406
(reframe-window w)))
408
(define (pop-window-type w key)
409
(when (and (window-get w 'type/saved)
410
(eq (window-get w 'type/key) key))
411
(window-put w 'type (window-get w 'type/saved))
412
(window-put w 'type/saved nil)
413
(window-put w 'type/key nil))
414
(call-window-hook 'window-state-change-hook w (list '(type)))
400
417
(define (window-type-remove-title type)
402
419
((default) 'transient)
641
659
(make-timer frames-on-idle theme-update-interval)
643
(sm-add-saved-properties 'type 'ignored 'frame-style)
661
(add-hook 'sm-window-save-functions
663
(cond ((window-get w 'type/saved)
664
(list (cons 'type (window-get w 'type/saved))))
665
((window-get w 'type)
666
(list (cons 'type (window-get w 'type)))))))
668
(sm-add-saved-properties 'ignored 'frame-style)
669
(sm-add-restored-properties 'type)
644
670
(add-swapped-properties 'frame-active-color 'frame-inactive-color))