~ubuntu-branches/ubuntu/lucid/sawfish/lucid-updates

« back to all changes in this revision

Viewing changes to lisp/sawfish/wm/frames.jl

  • Committer: Bazaar Package Importer
  • Author(s): Christian Marillat
  • Date: 2005-02-23 16:16:46 UTC
  • mfrom: (1.2.1 upstream) (2.1.2 hoary)
  • Revision ID: james.westby@ubuntu.com-20050223161646-4id6qyw4h9lkvb0v
Tags: 1:1.3+cvs20050222-1
* New cvs release.
* Add an emacs initialisation script to load sawfish.el (Closes: #295290)
* Updated sawfish.el to 1.32

Show diffs side-by-side

added added

removed removed

Lines of Context:
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 $
3
3
 
4
4
;; Copyright (C) 1999 John Harper <john@dcs.warwick.ac.uk>
5
5
 
38
38
             frame-style-editable-p
39
39
             window-type
40
40
             set-window-type
 
41
             push-window-type
 
42
             pop-window-type
41
43
             window-type-remove-title
42
44
             window-type-remove-border
43
45
             window-type-add-title
58
60
          rep.io.files
59
61
          rep.io.timers
60
62
          sawfish.wm.frames.subrs
61
 
          sawfish.wm.windows.subrs
 
63
          sawfish.wm.windows
62
64
          sawfish.wm.misc
63
65
          sawfish.wm.custom
64
66
          sawfish.wm.commands
65
67
          sawfish.wm.events
66
68
          sawfish.wm.gaol
67
69
          sawfish.wm.session.init
68
 
          sawfish.wm.workspace
69
 
          sawfish.wm.state.maximize)
 
70
          sawfish.wm.workspace)
70
71
 
71
72
  ;; Commentary:
72
73
 
86
87
  ;;    unframed                no frame at all
87
88
  ;;    icon
88
89
  ;;    dock
 
90
  ;;    menu, toolbar
 
91
  ;;    utility
 
92
  ;;    splash
89
93
 
90
94
  ;; There is also a similar concept of frame types. The window type
91
95
  ;; never changes (unless the user explicitly does so). But the frame
134
138
    "Default frame style:"
135
139
    :type frame-style
136
140
    :widget-flags (expand-vertically)
137
 
    :user-level novice
138
141
    :group appearance
139
142
    :after-set (lambda () (after-setting-default-frame)))
140
143
 
141
144
  (defcustom reload-themes-when-changed t
142
145
    "Automatically reload themes when they are updated."
143
146
    :type boolean
144
 
    :user-level expert
145
147
    :group misc)
146
148
 
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)
154
 
      (dock . icon))
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)
163
 
    :group appearance
164
 
    :user-level expert
165
 
    :after-set (lambda () (after-setting-frame-option)))
 
156
      (dock . icon)
 
157
      (utility . default)
 
158
      (shaded-utility . shaded-transient)
 
159
      (toolbar . utility)
 
160
      (shaded-toolbar . shaded-utility)
 
161
      (menu . utility)
 
162
      (shaded-menu . shaded-utility)
 
163
      (splash . unframed))
 
164
    "Frame type fallbacks.")
166
165
 
167
166
  (defvar theme-update-interval 60
168
167
    "Number of seconds between checking if theme files have been modified.")
216
215
    :group appearance
217
216
    :type font
218
217
    :widget-flags (expand-horizontally)
219
 
    :user-level novice
220
218
    :after-set (lambda () (after-setting-frame-option)))
221
219
 
222
 
  (defcustom default-bevel-percent nil
223
 
    "Bevel intensity: \\wpercent."
224
 
    :group appearance
225
 
    :type (number 0 100)
226
 
    :user-level expert
227
 
    :after-set (lambda () (after-setting-frame-option)))
 
220
  (defvar default-bevel-percent nil
 
221
    "Bevel intensity as a percentage.")
228
222
 
229
223
 
230
224
;;; managing frame types
392
386
            'default))))
393
387
 
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))))
 
395
 
 
396
  ;; XXX do something with KEY. (It's a unique symbol used to mark
 
397
  ;; XXX the different users of these functions)
 
398
 
 
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)))
399
407
 
 
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)))
 
415
    (reframe-window w))
 
416
 
400
417
  (define (window-type-remove-title type)
401
418
    (case type
402
419
      ((default) 'transient)
595
612
      ok-to-bind))
596
613
 
597
614
  (define ((cursor-for-frame-part part) w)
 
615
    (require 'sawfish.wm.state.maximize)
598
616
    (if (frame-part-movable-p w part)
599
617
        (case part
600
618
          ((top-border) 'top_side)
640
658
 
641
659
  (make-timer frames-on-idle theme-update-interval)
642
660
 
643
 
  (sm-add-saved-properties 'type 'ignored 'frame-style)
 
661
  (add-hook 'sm-window-save-functions
 
662
            (lambda (w)
 
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)))))))
 
667
 
 
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))