- 28 Aug, 2003 3 commits
- 11 Jun, 2003 1 commit
-
-
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 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
-
- 14 May, 2003 1 commit
-
-
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.
-
- 13 May, 2003 1 commit
-
-
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 exit). 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).
-
- 07 Apr, 2003 3 commits
-
-
hatchond authored
-
hatchond authored
-
hatchond authored
misc.lisp: wrong type in geometry structure. input.lisp: Erik Enge patch for focus widget when click on maximize/menu button The rest is Christian Lynbech patch for eclipse buildings scripts (configure.in Makefile.in ... new file config.lisp.in) Thanks to both of you for your patches.
-
- 21 Mar, 2003 1 commit
-
-
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.
-
- 19 Mar, 2003 6 commits
-
-
hatchond authored
Please note that we now declare handling :_net_wm_state_fullscreen. this could break some application behavior (like xawtv for instance). If most of you are embarassed with; we can turn it of, wating for the desktop.org peoples to clarify it a little bit.
-
hatchond authored
-
hatchond authored
-
hatchond authored
Turn dismiss-move into dismiss-move-resize to fix window destruction during resize and move. Also fixed window-geometry-info-box that didn't disapear if window if destroyed dusring the process.
-
hatchond authored
-
hatchond authored
-
- 17 Mar, 2003 1 commit
-
-
hatchond authored
fix typo prenthesis, and grid undraw in mouse stroke resize/move.
-
- 16 Mar, 2003 12 commits
-
-
hatchond authored
-
hatchond authored
new options add.
-
hatchond authored
It now behave as expected. (At least I presume the current behavior to be the expected one)
-
hatchond authored
becomes event-process ((event keyboard-event) (root root))) - support for mouse strokes in: event-process ((event button-press) (root root) - support for mapping-notify: event-process ((event mapping-notify) null-widget fix some focus inconsistency in on-click policy. support for net-wm-state in event-process for client-message.
-
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.
-
hatchond authored
-
hatchond authored
-
hatchond authored
- *focus-new-mapped-window* new option. - *focus-when-window-cycle* new option. aVS: ----------------------------------------------------------------------
-
hatchond authored
fix some focus inconsistency under on-click policy. - *focus-new-map-window* is a new option: to do that a new application slot had been add: wants-focus-p who is sets to *focus-new-map-window* at map-request time, and at iconify time. (Maybe we don't want it at iconify time, just tell me) Then when we process a visibility-notify event we just give it or not the focus according the wants-focus-p value. - *focus-when-window-cycle* is a new option. - *wrap-pointer-when-cycle* is a new option: move or not pointer during window cycling. - lookup-widget (window) [function] returns the widget cache for the window or null (It is done to avoid proliferation of (gethash window *widget-table*)) had been declared inline.
-
hatchond authored
One function add (exported): - restack-window (window screen &key (position 0)) [function] Changes the actual window position for the given one in the given screen. Does nothing if window insn't in the given screen. Does nothing if new position is out of the screen bounds.
-
hatchond authored
Added mouse-stroke. please feel free to comment the next. (some minor changes in the action-key->lambda function where two entries had been added as predifined strokes: :move-window :resize-window they are mouse stroke). - stroke [protocol class] - stroke-name stroke [generic function] return the the name of the stroke as keyword. - default-modifiers-p stroke [generic function] return true if the default-modifiers should be applied. The default modifiers are :NUM-LOCK and :CAPS-LOCK - stroke-modifiers stroke [generic function] return a keyword list that represent the set of all possible modifiers used for creating this stroke. If the car of the returned list is :AND, then the modifiers cdr list should be considered as a composition. - stroke-action stroke [generic function] return the action (lambda (event) ..) to perform when this stroke is invoked. - stroke-keys stroke [generic function] return the keycodes list of the differents possible keys to invoke that stroke. (In the case of a mouse stroke, this list should contain one and only one integer ; which is a mouse button) - lookup-keystroke (code state) [function] return the keystroke that is registered for this particular combination (keycode . state), or nil. - lookup-mouse-stroke (button state) [function] return the mouse stroke hat is registered for this particular combination (button . state), or nil. - keycode-registered-p (keycode &optional (count 1)) [function]: return true if a keycode is used in the indicated range for registering a keystroke. - unregister-all-keystrokes () [function]: unregister all defined keystrokes. - register-all-keystrokes () [function]: register all defined keystrokes. - unregister-all-mouse-strokes () [function]: unregister all defined mouse-strokes. - register-all-mouse-strokes () [function]: register all defined mouse-strokes. - action ((&rest f1) (&rest f2)) [macro]: used to define a stroke action It simply checks for keywords :press or :release to be the car of the forms and produces function as follows: (action (:press form1 form2) ()) (action () (:press form1 form2)) ==> (lambda (event) (typepcase event (key-press form1 form2) (key-release nil))) (action (:release form1 form2) (:press another-form)) ==> (lambda (event) (typepcase event (key-press another-form) (key-release form1 form2))) - keystroke [class] represent a keystroke. - make-keystroke (name key-name-set modifiers default-modifiers-p action) [function] return a newly created keystroke. - keystroke-p (object) [function] return true if object is a keystroke. - mouse-stroke [class] represent a mouse-stroke. - make-mouse-stroke (name button modifiers default-modifiers-p action) [function]: return a newly created mouse-stroke. - mouse-stroke-p (stroke) [function]: return true if object is a mouse-stroke. - define-key-combo (name &key keys (default-modifiers-p t) (modifiers :any) fun) [function]: user interface to define keystroke. modifiers can be passed as: - composition of modifiers as '(:and :ALT-LEFT :CONTROL-RIGHT) - a simple modifier as :ALT-LEFT or 18 (a modifier mask) - a list of possible modifiers as '(:ALT-LEFT :CONTOL-RIGHT) keys is alist of keyword keys (see keysymdef.h) fun is function as defined by the macro action or by: (lambda (event) ...) - define-mouse-combo (name &key button (default-modifiers-p t) (modifiers :any) fun) [function]: user interface to define mouse stroke. modifiers can be passed as: - composition of modifiers as '(:and :ALT-LEFT :CONTROL-RIGHT) - a simple modifier as :ALT-LEFT or 18 (a modifier mask) - a list of possible modifiers as '(:ALT-LEFT :CONTOL-RIGHT) button is an integer that represent a mouse button. fun is function as defined by the macro action or by: (lambda (event) ...)
-
hatchond authored
two classes added, and some inheriting changed (defclass pointer-event (keyboard-pointer-event) ()) ;; added (defclass button-press (pointer-event) ()) (defclass button-release (pointer-event) ()) (defclass motion-notify (pointer-event) ()) (defclass keyboard-event (keyboard-pointer-event) ()) ;; added (defclass key-press (keyboard-event) ()) (defclass key-release (keyboard-event) ()) - lib/clx-ext/package.lisp modified for exporting those two classes. - lib/clx-ext/keysyms.lisp: minor changes for handling mapping-notify event - modifier-map-changed-p display [function]: return true if the cached modifier map is obsolete in regards of the X server information. (exported)
-
- 15 Mar, 2003 1 commit
-
-
hatchond authored
event.lisp: has moved couple month ago in lib/clx and I forgot to removed it.
-
- 10 Feb, 2003 1 commit
-
-
hatchond authored
-
- 03 Feb, 2003 1 commit
-
-
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'.
-
- 18 Dec, 2002 1 commit
-
-
hatchond authored
-
- 12 Nov, 2002 2 commits
- 07 Nov, 2002 5 commits