ViewVC logotype

Log of /eclipse/themer.lisp

Parent Directory Parent Directory | Revision Log Revision Log

Links to HEAD: (view) (annotate)
Sticky Tag:

Revision 1.14 - (view) (annotate) - [select for diffs]
Wed Nov 18 13:42:39 2009 UTC (4 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.13: +3 -2 lines
Diff to previous 1.13
Fix: nil as initial element is needed otherwise 0 might be used and will not be a pixmap.

Revision 1.13 - (view) (annotate) - [select for diffs]
Tue Nov 17 21:17:29 2009 UTC (4 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.12: +32 -29 lines
Diff to previous 1.12
Fix: theme rework to remove eql specializer on theme name in favor of theme object.

Revision 1.12 - (view) (annotate) - [select for diffs]
Tue Nov 17 18:08:43 2009 UTC (4 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.11: +11 -15 lines
Diff to previous 1.11
Fix: array creation is macroexpanded instead of creating it during macroexpansion.

Revision 1.11 - (view) (annotate) - [select for diffs]
Tue Mar 1 10:06:37 2005 UTC (9 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.10: +46 -30 lines
Diff to previous 1.10
Documentation update and minor enhancements.

Revision 1.10 - (view) (annotate) - [select for diffs]
Fri Jan 7 16:32:17 2005 UTC (9 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.9: +15 -16 lines
Diff to previous 1.9
Replace some gethash for lookup-theme.

Revision 1.9 - (view) (annotate) - [select for diffs]
Tue Mar 9 19:26:27 2004 UTC (10 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.8: +11 -7 lines
Diff to previous 1.8
some type declaration added.

Revision 1.8 - (view) (annotate) - [select for diffs]
Mon Mar 1 14:53:57 2004 UTC (10 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.7: +2 -2 lines
Diff to previous 1.7
- system def and packages updated.
- fix theme defualt value for title bar position.
- minor hack for frame edges.

Revision 1.7 - (view) (annotate) - [select for diffs]
Wed Jan 21 17:48:35 2004 UTC (10 years, 2 months ago) by ihatchondo
Branch: MAIN
Changes since 1.6: +63 -42 lines
Diff to previous 1.6
a very little change in the define-theme syntax. Style parts are now defined in
a list (such as the class slots for example). This allow to have the
:title-bar-position :parts-to-redraw-on-focus potions to be effectively
optional. Plus a :background option has been added. This will be
useful to the one who wants to define a no-decoration style like but
with colored border.

See the documentation.

make-decoration use the theme style-background. (wm.lisp)

- themes has been updated
- doc updated.

Revision 1.6 - (view) (annotate) - [select for diffs]
Tue Sep 30 12:18:36 2003 UTC (10 years, 6 months ago) by hatchond
Branch: MAIN
Changes since 1.5: +14 -1 lines
Diff to previous 1.5
Documentation added on almost all functions and methods.
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.

Revision 1.5 - (view) (annotate) - [select for diffs]
Mon Sep 8 12:58:05 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.4: +6 -3 lines
Diff to previous 1.4
fix invalide call to xlib:free-pixmap when call with nil.

Revision 1.4 - (view) (annotate) - [select for diffs]
Sun Sep 7 01:35:17 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.3: +53 -21 lines
Diff to previous 1.3
some documentation added.
added: widget->frame-item-key widget [function]
  returns the keyword or nil that correspond to the widget.

Revision 1.3 - (view) (annotate) - [select for diffs]
Wed Jun 11 18:29:23 2003 UTC (10 years, 10 months ago) by hatchond
Branch: MAIN
Changes since 1.2: +60 -30 lines
Diff to previous 1.2
- 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

- 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:

   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

Revision 1.2 - (view) (annotate) - [select for diffs]
Wed May 14 08:56:17 2003 UTC (10 years, 11 months ago) by hatchond
Branch: MAIN
Changes since 1.1: +2 -2 lines
Diff to previous 1.1
ICCCM complience and extended window manager specification complience.
 - 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.

Revision 1.1 - (view) (annotate) - [select for diffs]
Thu Nov 7 14:54:27 2002 UTC (11 years, 5 months ago) by hatchond
Branch: MAIN
created an eclipse-internals package.
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 .. ----------------



This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5