1. 30 Sep, 2003 1 commit
    • hatchond's avatar
      Documentation added on almost all functions and methods. · e71096ac
      hatchond authored
      Minor modification in the move/resize process to make it a bit more stand alone.
      A "build-in" theme named no-decoration has been added. To use it do as usual:
       (setf (decoration-theme) "no-decoration")
       This isn't already in the man page but I will as soon as I can.
  2. 16 Sep, 2003 1 commit
    • hatchond's avatar
      - misc.lisp: · a5552880
      hatchond authored
        lots documentation added
        gnome-desktop-num turned in window-desktop-num
      - input.lisp, wm.lisp, virtual-screen.lisp, package.lisp, global.lisp
        gnome-desktop-num -> window-desktop-num
  3. 12 Sep, 2003 1 commit
  4. 08 Sep, 2003 1 commit
  5. 29 Aug, 2003 1 commit
  6. 28 Aug, 2003 1 commit
    • hatchond's avatar
      shade is now implemented (wm.lisp). · b20c403d
      hatchond authored
        To {un}shade a window double click on title bar.
        shaded-p widget: [generic function]
        return the actual shade state in the sens of the extended wm
        timestamp: slot of the title-bar class. (NEW)
        :_net_wm_state_shaded added in +netwm-protocol+
      - *double-click-speed*: [global variable]
        use it to customize the time you want for double click.
        Default value: 200 (timestamp unit of the X server)
      - added support for the xvidmode extension
      - added support for :net_wm_state_{below, above} in input.lisp
      - the following methods have created for manipulating widgets stacking
        - put-on-top widget [generic function]
          sets the widget stacking order on top of the others.
        - put-on-bottom widget [generic function]
          sets the widget stacking order on bottom of the others (except if
          any widget with :_net_wm_type_desktop is present and widget is or
          an application or a decoration).
      - various  bug fix and improvements:
        - typo fix *wRAp-pointer-when-cycle* => *wARp-pointer-when-cycle*
        - set-focus now cares of the map state of the window it is supose to
          gives the focus to. (Should avoid lots of match-error).
          Wrong nil timestamp has been fixed.
        - minor change in the unmap-notify event handling. Closing an
          application should not any more systematically provoke a
          window-error error. (input.lisp)
        - fullscreen-mode should now be correct: the spec say it would be
          better to undecore the window when in fullscreen. It is now how it
          works. (widgets.lisp)
          (One more feature of this function is still under discussion in
          the freedesktop team that may introduce modifications in the
          typo fix full-screen-mode => fullscreen-mode
        - maximize-window signature changes (wm.lisp):
          It now expect an application instead of a decoration.
          This have been done because non decorated window should be
          able to be maximized as well as decorated one. It is now the
          case. It has serval side effects:
           - slot initial-geometry in class decoration doesn't exist
           - new private slot added in class application: max-geometry.
        - minor changes in update-edges-geometry, and move-resize.lisp.
        - clean up in eclipse.lisp (delete unused code).
        - virtual-screen.lisp re-implementation. It now use the X server
          data such the root window tree, and window property that hold the
          desktop number instead of a substructure hold by the root object
          that has to be updated each time you destroy, iconify, unicofy,
          shade, unshade, etc.
  7. 11 Jun, 2003 1 commit
    • hatchond's avatar
      - package.lisp: now export almost every symbols. They are sorted in · 64c49c91
      hatchond authored
        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
      - 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
      The rest concern what we discuss on precedent post about a repaint
      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))
        (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:
         Typically a theme package will export at least two symbols:
          - 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)
            "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
  8. 14 May, 2003 1 commit
    • hatchond's avatar
      ICCCM complience and extended window manager specification complience. · eaabc4cf
      hatchond authored
       - bugs fix relative to ewt wm spec (i.e.: we now should interact correctly with gnome 2.2)
       - added ICCCM session managment complience: we now use/react to the owning of the WM_S{screen number} selection. see ICCCM 2.8
      we still need gnome session managment conection.
  9. 13 May, 2003 1 commit
    • hatchond's avatar
      applied Christian Lynbech patch for icon managment: · afc32f42
      hatchond authored
      "Here is a diff that adds what I think is improved icon handling. It
      provides an icon box, ie. a configurable place where icons are
      stacked. As part of this change, I have changed the default location
      of icons from (750,50) to (0,0). If the icon box overflows, icons will
      be created ayt (0,0). I have also decreased the default height from 60
      to 20 to minimize the space waste (if the application supplies an
      icon, it will of course take precedence).
      The patch allso adds different kinds of sorting options. Icons can be
      sorted by creation time (I have added a new slot in the `icon' class)
      or name or class (or whatever else you can think of).
      Unrelated to the icon box thing, the patch also contains a set of
      application inspection function (see the end of "misc.lisp"), A
      disabling of the expression that removes the "Exit" entry in the root
      menu so that you can close Eclipse down and finally a new option,
      *close-display-p*, that regulates whether exiting Eclipse also kills
      the entire X session (if *close-display-p* is nil, Eclipse will just
      It still needs a few things, such as the possibility of disabling the
      icon box and other fill orders than :top-right (ie. filling from the
      top right corner of the box).
      Let me know what you think."
      plus small corrections from me (for fullscreen-mode, but it still cause problems).
  10. 21 Mar, 2003 1 commit
    • hatchond's avatar
      added one missing specialized method focus-widget on push-button. · 14d8ecda
      hatchond authored
      The rest is more or less some netwm complience improvement (fullscreen, hidden, icon-name, maximized).
       - initial-geometry decoration slot type changed: it is now a struct defined in misc.lisp.
       - the same slot has been add in application for fullscreen purpose.
       - fix bogus undecore-application.
  11. 19 Mar, 2003 1 commit
  12. 17 Mar, 2003 1 commit
  13. 16 Mar, 2003 1 commit
    • hatchond's avatar
      typo fixed. · dada5a45
      hatchond authored
      procede-decoration code is inside an unwind-protect.
      support for focus-new-mapped-window
      support for :_net_wm_state_maximized_horz/vert :_net_wm_state_fullscreen.
  14. 03 Feb, 2003 1 commit
    • hatchond's avatar
      commit Christian Lynbech patch: · 0b992080
      hatchond authored
      CMUCL seems to have tighten the handling of certain things so this
      patch will do three necessary things:
      - in system.lisp (compile-theme) remove path from :output-file name as
        this includes path specs from the input file.
      - in wm.lisp (menu-3-prcess) removes the &allow-other-keys which CMUCL
        18d chokes on (some previous versions seemed more lax, they also
        accepted (lambda (&rest) ...) which 18d does not but you have gotten
        rid of that).
      - in lib/image-reader.lisp (load-ppm) changes function to use two
        streams as there are many things you cannot do on a non-character
        string including calling `unread-char'.
  15. 07 Nov, 2002 1 commit
    • hatchond's avatar
      created an eclipse-internals package. · 6edb0897
      hatchond authored
      some bugs fix.
      some functionalities added.
      file splitting to reorganize the project a little:
       - wm.lisp and global.lisp had been splitted into:
      	- widgets.lisp (base-widget, root, application, buttons, ...)
      	- input.lisp (general event processing)
      	- gestures.lisp (key-combo, cursor movement)
      	- eclipse.lisp (Top level functions)
      	- move-resize (moving and resizing master)
      	- misc.lisp (...)
      	- lib/clx-ext/clx-extensions.lisp
       - gnome-manager.lisp had been splitted into:
      	- manager-commons.lisp
      	- gnome-manager.lisp
      	- netwm-manager.lisp
      one directory added with one sub-directory: lib and lib/clx-ext
      a new package clx-extensions in lib/clx-ext
      some files had moved:
      	- image-reader.lisp into lib
      	- event.lisp ...... into lib/clx-ext
      	- cursor.lisp ..... ----------------
      	- cursordef.lisp .. ----------------
      	- keysysms.lisp ... ----------------
      	- keysymdef.lisp .. ----------------
  16. 04 Jul, 2002 1 commit
  17. 02 Jul, 2002 1 commit
    • hatchond's avatar
      added two more keystrokes. · 8196fcb4
      hatchond authored
      added some #. macro reader to avoid some consing in defconstant definitions.
      correct a type error in gnome-manager.lisp
  18. 24 Jun, 2002 1 commit
  19. 22 Jun, 2002 1 commit