;;;; ;;;; and classes ;;;; ;;;; Copyright © 1993-1996 Erick Gallesio - I3S-CNRS/ESSI ;;;; ;;;; Permission to use, copy, and/or distribute this software and its ;;;; documentation for any purpose and without fee is hereby granted, provided ;;;; that both the above copyright notice and this permission notice appear in ;;;; all copies and derived works. Fees for distribution or use of this ;;;; software or derived works may only be charged with express written ;;;; permission of the copyright holder. ;;;; This software is provided ``as is'' without express or implied warranty. ;;;; ;;;; ;;;; Idea of multiples windows comes from a Tcl package called mdw_lib.tk ;;;; (a classlib for [m]ulti-[d]ocument-[w]indow applications). ;;;; The mdw-lib is a number of Tcl/Tk procedures to create and manipulate ;;;; multiple childwindows in one Tk application window ;;;; The mdw_lib author is Thomas Schwarze ;;;; Original package is GPL'ed. However, code and way to implement ;;;; multiple windows and mdw_lib are completely different. ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 5-Apr-1996 18:04 ;;;; Last file update: 13-Aug-1996 23:22 (require "Frame") (require "Button") (image 'create 'bitmap '*bitmap-cross* :data "#define cross_width 10 #define cross_height 10 static unsigned char cross_bits[] = { 0,0,0,0,0xc,3,0x9c,3,0xf8,1,0xf0,0,0xf0,0,0xf8,1,0x9c,3,0x0c,3};") (image 'create 'bitmap '*bitmap-icon* :data "#define icon_width 10 #define icon_height 10 static unsigned char icon_bits[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc,3,0xfc,3,0,0};") (image 'create 'bitmap '*bitmap-max* :data "#define max_width 10 #define max_height 10 static unsigned char max_bits[] = { 0,0,0,0,0xfc,3,0xfc,3,0xfc,3,0xfc,3,0xfc,3,0xfc,3,0xfc,3,0xfc,3};") (image 'create 'bitmap '*bitmap-min* :data "#define min_width 10 #define min_height 10 static unsigned char min_bits[] = { 0,0,0,0,0,0,0,0,0xf0,0,0xf0,0,0xf0,0,0xf0,0,0,0,0,0};") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; ;;;; class ;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-class () (bottom-bar bottom-bar-title (current :initform #f) (children :initform '()) (child-selected-col :initform '("white" . "RoyalBlue1")) (child-unselected-col :initform '("gray80" . "gray50")))) (define-method initialize ((self ) initargs) (next-method) (if (zero? (width self)) (set! (width self) 640)) (if (zero? (height self)) (set! (height self) 480)) (pack 'propagate self #f) ;; Create the bottom bar (let* ((bb (make :parent self :border-width 3 :relief "groove")) (l (make