;;;;
;;;; T k - c l a s s e s . s t k l o s	-- A set of autoloads for Tk classes
;;;;
;;;; Copyright © 1993-1999 Erick Gallesio - I3S-CNRS/ESSI <eg@unice.fr>
;;;; 
;;;; Permission to use, copy, modify, distribute,and license this
;;;; software and its documentation for any purpose is hereby granted,
;;;; provided that existing copyright notices are retained in all
;;;; copies and that this notice is included verbatim in any
;;;; distributions.  No written agreement, license, or royalty fee is
;;;; required for any of the authorized uses.
;;;; This software is provided ``AS IS'' without express or implied
;;;; warranty.
;;;;
;;;;           Author: Erick Gallesio [eg@unice.fr]
;;;;    Creation date: 19-Sep-1994 16:00
;;;; Last file update:  3-Sep-1999 20:11 (eg)


(require "Tk-meta")	; for all the Tk meta classe

(with-module STklos+Tk

  (define-macro (add-autoload name . l)
    `(begin
       ;; Specify a suffix for autoload because filenames are not case
       ;; sensitive under Win32!
       (autoload ,(string-append name ".stklos") ,@l)
       (export ,@l)))

  (define-macro (make-autoload name . l)
    ;; make 'name' autoload iff not already provided.
    `(unless (provided? ,name)
       (add-autoload ,name ,@l)
       (provide ,name)))  	;; to avoid double definition. This is ugly

  ;====  Basic Tk widgets
  (make-autoload "Basics"  	<Tk-composite-widget> <Tk-composite-toplevel> 
				<Tk-simple-widget>)
  (make-autoload "Button"  	<Label> <Button> <Check-button> <Radio-button>)
  (make-autoload "Canvas"  	<Canvas> <Canvas-group> <Tk-canvas-item>
		 		<Tk-canvas-figure> <Tk-composite-item> 
				<Canvas-group> <Arc> <Bitmap-item> <Image-item>
				<Line> <Oval> <Polygon> <Rectangle> <Text-item>
				<Canvas-Window>) 
  (make-autoload "Combobox"	<Combobox>)
  (make-autoload "Entry"   	<Entry>)
  (make-autoload "Listbox"  	<Listbox>)
  (make-autoload "Menu"    	<Menu> <Menu-button> make-menubar)
  (make-autoload "Message" 	<Message>)
  (make-autoload "Scale"   	<Scale>)
  (make-autoload "Scrollbar" 	<Scrollbar>)
  (make-autoload "Text"	 	<Text>)
  (make-autoload "Toplevel"	<Frame> <Toplevel> *top-root*)

  ;==== Composite widgets
  (make-autoload "Balloon"	<Help-Balloon>)
  (make-autoload "Choicebox"	<Choice-box>)
  (make-autoload "Colorbox"	<Color-box>)
  (make-autoload "Defbutton"	<Default-button>)
  (make-autoload "Filebox"	<File-box> make-file-box)
  (make-autoload "Font"		<Font>)
  (make-autoload "Gauge"	<Gauge> <Valued-gauge>)
  (make-autoload "Hierarchy"	<Hierarchy-tree> <Hierarchy-item>)
  (make-autoload "Lentry"	<Labeled-entry>)
  (make-autoload "Lframe"	<Labeled-frame>)
  (make-autoload "Msgbox"	<Tk-message-box> <Abort-retry-ignore-message-box>
		 		<Ok-message-box> <Ok-cancel-message-box>
				<Ok-cancel-message-box> <Retry-cancel-message-box>
				<Yes-no-message-box> <Yes-no-cancel-message-box>)
  (make-autoload "Multiwin"	<Multiple-window> <Inner-window>)
  (make-autoload "Notepad"	<Notepad> <Notepad-tab>)
  (make-autoload "Paned"	<HPaned> <VPaned>)
  (make-autoload "Schemetext"	<Scheme-text>)
  (make-autoload "Scrollbox"	<Scroll-Listbox>)
  (make-autoload "Scrollframe"	<Scroll-Frame>)
  (make-autoload "Scrollcanvas"	<Scroll-Canvas>)
  (make-autoload "Scrolltext"	<Scroll-Text>)
  (make-autoload "Toolbar"	<Toolbar> make-toolbar default-release-toolbar)
  (make-autoload "Image" 	<Image> <Bitmap-image> <Photo-image> <Pixmap-Image>)

  (make-autoload "Tk-active"	<Tk-active-metaclass> 
		 		<Tk-active-and-propagated-metaclass>)

  ;==== OS dependent part
  (when (eq? (os-kind) 'Unix)
    (add-autoload "Colorbox"  Tk:choose-color)
    (add-autoload "Msgbox"    Tk:message-box)
    (add-autoload "Filebox"   Tk:get-file Tk:get-open-file Tk:get-save-file)))

(provide "Tk-classes")
