Initial tab-layout modifications for inclusion into McCLIM. - temporarily added a common system definition clim-tab-layout.lisp (to be removed once the tab-layout moves into McCLIM proper) - temporarily added a common package file package.lisp (to be moved into mcclim/package.lisp ultimately) - temporarily moved stack-layout and radio-layout into the same package (ultimately, the tab-layout will not be radio-layout-based at all anymore) Changes to the stack- and radio-layout: - removed the hand-written ENABLED-PANE wrapper for the slot ENABLED-RADIO-PANE in favour of a direct slot reader RADIO-LAYOUT-ENABLED-CHILD. - Add a setf method (SETF RADIO-LAYOUT-ENABLED-CHILD) as the primary interface instead of SWITCH-TO-PANE. - Keep SWITCH-TO-PANE as a convenience wrapper, but remove its second argument. - In INITIALIZE-INSTANCE, support having no children initially. - Replace ADD-PANE and REMOVE-PANE and their methods with methods defined directly on SHEET-ADOPT-CHILD and SHEET-DISOWN-CHILD so that user code and use normal CLIM functions to modify the sheet hierarchy. Changes to the tab-layout: - For frame manager support, split the TAB-LAYOUT-PANE into the abstract superclass TAB-LAYOUT and its generic TAB-LAYOUT-PANE subclass. - Rename TAB-PANE to TAB-PAGE, since it's -not- a pane. The presentation type is also called TAB-PAGE, commands changed accordingly. - Rename TAB-PANES-OF-TAB-LAYOUT to TAB-LAYOUT-PAGES. Rename TAB-PANE-TITLE to TAB-PAGE-TITLE and export the latter. Rename TAB-PANE-PANE to TAB-PAGE-PANE and export the latter. Rename TAB-PANE-PTYPE to TAB-PAGE-PRESENTATION-TYPE and export the latter. Rename DRAWING-OPTIONS-OF-TAB-PANE to TAB-PAGE-DRAWING-OPTIONS and export the latter. - Add :DRAWING-OPTIONS as an initarg to TAB-PAGE-DRAWING-OPTIONS slot. - Add a new slot TAB-PAGE-TAB-LAYOUT, automatically maintianed when a page is added to and removed from the tab-layout. - Added a new slot TAB-PAGE-ENABLED-CALLBACK, fixing a terrible kludge in beirc, which wants to be notified when a page is enabled. - New function FIND-TAB-PAGE-NAMED, replaces the STRING case of FIND-IN-TAB-PANES-LIST. - New function SHEET-TO-PAGE, replaces the SHEET case of FIND-IN-TAB-PANES-LIST. - Rename ENABLED-PANE to TAB-LAYOUT-ENABLED-PAGE. - Rename SWITCH-TO-PANE to SWITCH-TO-PAGE. Remove its second argument. - Rename MAKE-TAB-PANE-FROM-LIST to MAKE-TAB-PANE, since there is no list as an argument. This is an internal helper function for our macro. User code is encouraged to just use MAKE-INSTANCE instead. - Removed MAKE-LIST-FROM-TAB-PANE, since it was not being used. - Remove SET-DRAWING-OPTIONS-FOR-PANE-IN-TAB-LAYOUT in favour of the normal slot accessor TAB-PAGE-DRAWING-OPTIONS. - Replace ADD-PANE with ADD-PAGE, split into general methods for the superclass and subclass. Add some error checking code. - Replace REMOVE-PANE with REMOVE-PANE-USING-PARENT. Add a new function REMOVE-PAGE as a convenience one-argument version. Add some error checking code. - Add a convenience function REMOVE-PAGE-NAMED, replacing the STRING method of REMOVE-PANE. - No replacement is offered for the SHEET method of REMOVE-PANE, users should call (remove-page (sheet-to-page )) instead. - Change WITH-TAB-LAYOUT to create the abstract TAB-LAYOUT, moving all implementation-specific code into new INITIALIZE-INSTANCE methods on TAB-LAYOUT-PANE. Also fixes the macro to not evaluate the panes multiple times. Change the syntax as parsed by MAKE-TAB-PAGE to accepts arbitrary keyword arguments. Application code that use the optional ptype argument need to switch to the :PRESENTATION-TYPE keyword. New keyword arguments are :DRAWING-OPTIONS and :ENABLED-CALLBACK.