180 lines
7.3 KiB
Plaintext
180 lines
7.3 KiB
Plaintext
|
;; vtwm-squeezed-window2.gwm --- VTWM Squeezed Title Window
|
||
|
;;
|
||
|
;; Author: Anders Holst (aho@sans.kth.se)
|
||
|
;; Copyright (C) 1995 Anders Holst
|
||
|
;; Version: vtwm-1.0
|
||
|
;; Last change: 6/6 1995
|
||
|
;;
|
||
|
;; This file is copyrighted under the same terms as the rest of GWM
|
||
|
;; (see the X Inc license for details). There is no warranty that it
|
||
|
;; works.
|
||
|
;;
|
||
|
;; ---------------------------------------------------------------------
|
||
|
;;
|
||
|
;; This file defines squeezed title style windows for the VTWM profile.
|
||
|
;; It requires that the normal "vtwm-window.gwm" is already loaded.
|
||
|
;; Use 'set-window' to specify which windows should have squeezed titles.
|
||
|
;;
|
||
|
;; The windows defined here are slightly different from those in
|
||
|
;; "vtwm-squeezed-window.gwm", in that the title is never truncated. This
|
||
|
;; looks better, but makes resize more complicated, and slightly
|
||
|
;; unintuitive in some cases.
|
||
|
;;
|
||
|
|
||
|
(defaults-to
|
||
|
vtwm-squeezed-hilite-size 11 ;; Size of area showing focus
|
||
|
vtwm-squeezed-title-position 'left ;; Left, right or center
|
||
|
)
|
||
|
|
||
|
(defun vtwm-squeezed2-innerbar ()
|
||
|
(with (borderwidth 0
|
||
|
cols (vtwm-get-color)
|
||
|
vtwm-title-foreground (or (# 0 cols) vtwm-title-foreground)
|
||
|
vtwm-title-background (or (# 1 cols) vtwm-title-background)
|
||
|
property (+ (list 'fg vtwm-title-foreground
|
||
|
'bg vtwm-title-background)
|
||
|
property)
|
||
|
background vtwm-title-background
|
||
|
fsm (vtwm-titlebar-fsm)
|
||
|
plug-separator 0
|
||
|
borderpixel vtwm-bordercolor
|
||
|
bar-min-width 1 bar-max-width 10000
|
||
|
bar-list (+ (vtwm-make-pluglist vtwm-left-plugs)
|
||
|
(list (vtwm-space-plug 5)
|
||
|
(vtwm-name-plug)
|
||
|
(with (borderwidth 3
|
||
|
borderpixel vtwm-title-background
|
||
|
fsm (fsm-make vtwm-titlebar-inner-behavior)
|
||
|
bar-min-width vtwm-squeezed-hilite-size
|
||
|
bar-max-width vtwm-squeezed-hilite-size)
|
||
|
(bar-make ()))
|
||
|
(vtwm-space-plug 2))
|
||
|
(vtwm-make-pluglist vtwm-right-plugs)))
|
||
|
(apply bar-make bar-list)))
|
||
|
|
||
|
(defun vtwm-squeezed2-titlebar ()
|
||
|
(with (borderwidth 0
|
||
|
tile t
|
||
|
background vtwm-bordercolor
|
||
|
fsm (fsm-make vtwm-squeezed2-resize-behavior1)
|
||
|
bar-max-width 10000
|
||
|
plug-separator 0)
|
||
|
(bar-make (with (fsm (vtwm-borderbar-fsm))
|
||
|
(bar-make (with (tile t
|
||
|
background vtwm-bordercolor
|
||
|
bar-min-width vtwm-borderwidth
|
||
|
bar-max-width 10000)
|
||
|
(if (= vtwm-squeezed-title-position 'right)
|
||
|
(bar-make ()
|
||
|
(with (tile ()) (bar-make ))
|
||
|
(with (tile ())
|
||
|
(bar-make (bar-make )
|
||
|
(vtwm-squeezed2-innerbar)))
|
||
|
(with (tile ()) (bar-make )))
|
||
|
(= vtwm-squeezed-title-position 'center)
|
||
|
(bar-make ()
|
||
|
(with (tile ()) (bar-make ))
|
||
|
(with (tile ())
|
||
|
(bar-make (bar-make )
|
||
|
(vtwm-squeezed2-innerbar)))
|
||
|
(with (tile ()) (bar-make ))
|
||
|
())
|
||
|
(bar-make (with (tile ()) (bar-make ))
|
||
|
(with (tile ())
|
||
|
(bar-make (bar-make )
|
||
|
(vtwm-squeezed2-innerbar)))
|
||
|
(with (tile ()) (bar-make ))
|
||
|
())))
|
||
|
(with (tile ()
|
||
|
background vtwm-bordercolor
|
||
|
bar-min-width vtwm-borderwidth
|
||
|
bar-max-width vtwm-borderwidth)
|
||
|
(bar-make )))))))
|
||
|
|
||
|
(defun vtwm-squeezed2-leftborder ()
|
||
|
(with (borderwidth 0
|
||
|
tile t
|
||
|
background vtwm-bordercolor
|
||
|
fsm (fsm-make vtwm-squeezed2-resize-behavior1)
|
||
|
plug-separator 0
|
||
|
border (with (tile ()
|
||
|
fsm (vtwm-borderbar-fsm)
|
||
|
background vtwm-bordercolor
|
||
|
bar-min-width vtwm-borderwidth
|
||
|
bar-max-width vtwm-borderwidth)
|
||
|
(bar-make )))
|
||
|
(if (or (= vtwm-squeezed-title-position 'right)
|
||
|
(= vtwm-squeezed-title-position 'center))
|
||
|
(bar-make (with (fsm ())
|
||
|
(bar-make () border)))
|
||
|
border)))
|
||
|
|
||
|
(defun vtwm-squeezed2-rightborder ()
|
||
|
(with (borderwidth 0
|
||
|
tile t
|
||
|
background vtwm-bordercolor
|
||
|
fsm (fsm-make vtwm-squeezed2-resize-behavior1)
|
||
|
plug-separator 0
|
||
|
border (with (tile ()
|
||
|
fsm (vtwm-borderbar-fsm)
|
||
|
background vtwm-bordercolor
|
||
|
bar-min-width vtwm-borderwidth
|
||
|
bar-max-width vtwm-borderwidth)
|
||
|
(bar-make )))
|
||
|
(if (not (= vtwm-squeezed-title-position 'right))
|
||
|
(bar-make (with (fsm ())
|
||
|
(bar-make border ())))
|
||
|
border)))
|
||
|
|
||
|
(: vtwm-squeezed2-resize-behavior1
|
||
|
(state-make
|
||
|
(on geometry-change (send-user-event 'bar-resize wob-parent))))
|
||
|
|
||
|
(: vtwm-squeezed2-resize-behavior2
|
||
|
(state-make
|
||
|
(on (user-event 'bar-resize)
|
||
|
(with (newsize (+ window-client-width (* 2 vtwm-borderwidth))
|
||
|
oldsize wob-width)
|
||
|
(if (not (= oldsize newsize))
|
||
|
(wob-tile (pixmap-make newsize
|
||
|
vtwm-borderwidth)))))))
|
||
|
|
||
|
(defun vtwm-squeezed2-bottomborder-fsm ()
|
||
|
(fsm-make
|
||
|
(state-make
|
||
|
vtwm-squeezed2-resize-behavior2
|
||
|
vtwm-borderbar-behavior
|
||
|
standard-title-behavior)))
|
||
|
|
||
|
(defun vtwm-squeezed2-bottomborder ()
|
||
|
(with (borderwidth 0
|
||
|
tile t
|
||
|
background vtwm-bordercolor
|
||
|
fsm ()
|
||
|
plug-separator 0
|
||
|
bottom (with (tile ()
|
||
|
fsm (vtwm-squeezed2-bottomborder-fsm)
|
||
|
background vtwm-bordercolor
|
||
|
bar-min-width vtwm-borderwidth
|
||
|
bar-max-width vtwm-borderwidth)
|
||
|
(plug-make (pixmap-make (+ window-client-width
|
||
|
(* 2 vtwm-borderwidth))
|
||
|
vtwm-borderwidth))))
|
||
|
(if (= vtwm-squeezed-title-position 'right)
|
||
|
(bar-make () bottom)
|
||
|
(= vtwm-squeezed-title-position 'center)
|
||
|
(bar-make () bottom ())
|
||
|
(bar-make bottom ()))))
|
||
|
|
||
|
(defun vtwm-squeezed-window2 ()
|
||
|
(with (inner-borderwidth 0
|
||
|
borderwidth 0
|
||
|
fsm (vtwm-titled-window-fsm)
|
||
|
borderpixel vtwm-bordercolor)
|
||
|
(window-make (vtwm-squeezed2-titlebar)
|
||
|
(vtwm-squeezed2-leftborder)
|
||
|
(vtwm-squeezed2-rightborder)
|
||
|
(vtwm-squeezed2-bottomborder)
|
||
|
())))
|
||
|
|