CVS update: eclipse

[email protected] 11 Jun 2003 18:29:23 -0000
Newsgroups gmane.comp.window-managers.eclipse.cvs
Message-ID <[email protected]>
Date:	Wednesday June 11, 2003 @ 10:29
Author:	hatchond

Update of /home/cvsroot/eclipse
In directory kappa:/tmp/cvs-serv3170

Modified Files:
	gestures.lisp input.lisp package.lisp themer.lisp widgets.lisp 
	wm.lisp xnest 
Log Message:
- package.lisp: now export almost every symbols. They are sorted in
  alphabetical order and type order (class, generic function,
  function, ...)

- input.lisp: minor modification in event-process for client-message on
  application. An application that does not support to be maximized in
  fullscreen don't have the _net_wm_state_fullscreen property sets
  anymore.

- lib/clx-patch.lisp: fixed bug found in input-focus.
  
- wm.lisp: 
   focused-p modified.
   dispatch-repaint: new method for the repaint protocol.    
   draw-focused-decoration & draw-unfocused-decoration: removed.

- widget.lisp: 
   focused-p modified.
   repaint implementations for icon, button and box-button.

- themer.lisp: themes are now defined in their own packages.

- themes/*/theme.lisp: All default themes converted in this new
  system.

The rest concern what we discuss on precedent post about a repaint
protocol.

The two generic functions draw-on-focus-{in,out} had been supressed in
favor of a single one named repaint.

 repaint widget name focus [generic function]
  This method is dedicated to widget repaint such as every buttons,
  icons, edges ... 
  It is specialized on widget type, theme name (via an eql
  specializer) and a boolean that indicate if the corresponding
  toplevel (type decoration) is or not focused.

  Except for standard expose events, the repaint dispatching on focus
  change will be perform according to parts-to-redraw-on-focus list
  given in define-theme.

  The core of eclipse provide some basic implementation for the
  repaint method: 

  (defmethod repaint ((widget base-widget) theme-name (focused-p t))
    (values))

  (defmethod repaint ((widget button) theme-name (focused-p t))
    ;; draw a pixmap if the button provide a pixmap to display when
    ;; toplevel is focused.
    ;; in case of title bar draw a centered text corresponding to the app
    ;; name.
    )

  (defmethod repaint ((widget button) theme-name (focused-p null))
    ;; clear the button.
    )

  (defmethod repaint ((widget box-button) theme-name focused-p)
    ;; draw the message that is displayed by this box.
    )

  (defmethod repaint ((widget icon) theme-name focused-p)
    ;; draw the icon name if aplication does not provide a pixmap for it.
    )

  This method is expected to be overloaded by theme implementors as
  well as to be exported by theme package definition.

  Theme implementation notes:
  --------------------------
  
   - themes are supposed to be defined in their own packages.
   - theme package definition should be suplied.
   - the naming convention for themes packages is:
     <theme-name>-ECLIPSE-THEME.
   
   Typically a theme package will export at least two symbols:
    - INITIALIZE-FRAME
    - REPAINT

   Here comes an example of how defining a theme (see our predefined
   themes for more): 

   ;;; -*- Mode: Lisp; Package: FOO-ECLIPSE-THEME -*-
   ;;; GPL Disclaimer for example.
   ;;; file theme.lisp
   
   (common-lisp:in-package :common-lisp-user)

   (defpackage "FOO-ECLIPSE-THEME"
     (:use eclipse clx-ext common-lisp)
     (:size 10)
     (:export repaint initialize-frame)
     (:documentation 
      "Foo theme decoration for the eclipse window manager. Written by ...")
     )

   (in-package "FOO-ECLIPSE-THEME")

   (define-theme "Foo"
       ;; the rest of the definition
       )

   (defmethod repaint ((widget title-bar) (name (eql "Foo")) (focus t))
     "handle repaint WHEN focused."
     ;; do some stuff
     )

   (defmethod repaint ((widget title-bar) (name (eql "Foo")) (focus null))
     "handle repaint WHEN NOT focused."
     ;; do some stuff
     )

   (defun bar ()
     ;; do what you want
     )

   ;;; end of theme.lisp
   


===================================================================
File: no file gestures.lisp		Status: Needs Checkout

   Working revision:	1.4	Wed Jun 11 18:29:23 2003
   Repository revision:	1.4	/home/cvsroot/eclipse/gestures.lisp,v

   Existing Tags:
	No Tags Exist

===================================================================
File: no file input.lisp		Status: Needs Checkout

   Working revision:	1.8	Wed Jun 11 18:29:23 2003
   Repository revision:	1.8	/home/cvsroot/eclipse/input.lisp,v

   Existing Tags:
	No Tags Exist

===================================================================
File: no file package.lisp		Status: Needs Checkout

   Working revision:	1.3	Wed Jun 11 18:29:23 2003
   Repository revision:	1.3	/home/cvsroot/eclipse/package.lisp,v

   Existing Tags:
	No Tags Exist

===================================================================
File: no file themer.lisp		Status: Needs Checkout

   Working revision:	1.3	Wed Jun 11 18:29:23 2003
   Repository revision:	1.3	/home/cvsroot/eclipse/themer.lisp,v

   Existing Tags:
	No Tags Exist

===================================================================
File: no file widgets.lisp		Status: Needs Checkout

   Working revision:	1.8	Wed Jun 11 18:29:23 2003
   Repository revision:	1.8	/home/cvsroot/eclipse/widgets.lisp,v

   Existing Tags:
	No Tags Exist

===================================================================
File: no file wm.lisp		Status: Needs Checkout

   Working revision:	1.13	Wed Jun 11 18:29:23 2003
   Repository revision:	1.13	/home/cvsroot/eclipse/wm.lisp,v

   Existing Tags:
	init                     	(revision: 1.1.1.1)
	ECLIPSE                  	(branch: 1.1.1)

===================================================================
File: no file xnest		Status: Needs Checkout

   Working revision:	1.4	Wed Jun 11 18:29:23 2003
   Repository revision:	1.4	/home/cvsroot/eclipse/xnest,v

   Existing Tags:
	No Tags Exist