[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4. XWEM Subsystems

There many subsystems in XWEM. Such as keyboard operations, pointer operations, text and graphical contexts operations, manage database operations and so on.

TODO: write me

4.1 Keyboard  Keyboard support.
4.2 Mouse  Mouse support.
4.3 Text  Various texts support.
4.4 Manage Database  How various X11 clients are managed.
4.5 System Tray  Make your xwem minibuffer to be a dockapp holder.
4.6 Help  XWEM is self documented.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.1 Keyboard

Keyboard support in XWEM is much like how XEmacs deals with keyboard i.e. keymap notation used to interpret key sequences to commands relation.

4.1.1 Keymaps  Keymaps used by XWEM.
4.1.2 Keymap Operations  What you can do with XWEM keymaps.
4.1.3 Smart Modifiers  Special modifiers mode support.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.1.1 Keymaps

Keymaps used in XWEM is:

Variable: xwem-global-map
This is global XWEM keymap.

Variable: xwem-help-map
Keymap for help commands.

Variable: xwem-hyp-x-map
This keymap is for Hyper-X commands.

Variable: xwem-hyp-x-4-map
Keymap for Hyper-X-4 commands.

Variable: xwem-hyp-x-5-map
Keymap for Hyper-X-5 commands.

Variable: xwem-hyp-x-7-map
Keymap for Hyper-X-7 commands.

Variable: xwem-launcher-map
Keymap for XWEM launcher.

Variable: xwem-launcher-other-win-map
Keymap for launcher commands in other Window.

Variable: xwem-launcher-other-frame-map
Keymap for launcher commands in other Frame.

Variable: xwem-user-macros-map
Keymap for user's keyboard macros.

Variable: xwem-hyp-resize-map
Keymap for Window resize commands.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.1.2 Keymap Operations

TODO: write me


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.1.3 Smart Modifiers

Smart modifier is key which can act as modifier when it is used in combination with some other key and as normal key when it is just clicked i.e. pressed and released.

To use smart modifiers you must set (setq xwem-use-smart-modifiers t), default is nil. And add items to xwem-key-smart-modifiers. Item is vector in form [Modifier-keysym Key-Keysym nil nil]. Second and third elements is used internally and it is no need to fill them.

Example:

 
(add-to-list 'xwem-key-smart-modifiers (vector XK-Control-R XK-Space nil
nil))
        => add right control to active grabs and send space key
        when it is clicked.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2 Mouse

When I was planning to write XWEM I thought that mouse support will be minimal, but when I played a little with X11 stuff I realized where mouse may be used to get really useful functionality. Main mouse feature over keyboard is that you can generate multiple movement or button press/release events in a moment. It can be used to interact with Strokes.

Stroke is some mouse motion which yields some command.

TODO: xwem strokes description.

TODO: popup menus description.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.3 Text

Text Specification is list of conses in form (lala-text . GC).

TODO: write me


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.4 Manage Database

Manage Database is list of some information about certain X11 applications. It contain info about how to deal with that X11 application, how it should managed, demanaged, iconified, refited, etc.

TODO: write me


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.5 System Tray

System Tray is some area in your screen, that used to hold some X applications called dock applications or dockapps in short. XWEM's system tray uses 3.4 XWEM Minibuffer as that area, so you does not lost it. It is morden to implement system tray using XEMBED protocol, which describes how dockapps and tray window should communicate. XWEM's system tray uses extended version of XEMBED protocol, which allow any dockapp to run Emacs Lisp!

Variable: xwem-tray-enabled
Non-nil mean that System tray will be used by XWEM.

Variable: xwem-tray-max-docks
Maximum number of dockapps to be used in system tray. If value is to much, than system tray may eat too much space in XWEM's minibuffer and you will not be able to comfortable interact with it. Default value is 6.

Variable: xwem-tray-minib-position
Symbol that may be 'right or 'left specifies position in XWEM's minibuffer where first dockapp appears.

Variable: xwem-tray-minib-posoffset
Offset in pixels from XWEM's minibuffer edge.

Variable: xwem-tray-minib-docoffset
Offset in pixels between two dockapps.

Variable: xwem-tray-cursor-shape
Shape of cursor when pointer is over one of dockapp, see X-XC-XXX constants values. Default is value of X-XC-right_ptr.

Variable: xwem-tray-cursor-foreground-color
Specifies foreground color of cursor, when pointer is over one of dockapp.

Variable: xwem-tray-cursor-background-color
Cursor's background color, when pointer over System tray.

Variable: xwem-tray-config
This is a list of vectors and each vector is in form [type value]. Type is one of XWEM-TRAY-DOCK or XWEM-TRAY-DELIM. If type is XWEM-TRAY-DOCK than value is string and it specifies program and program's arguments you need to launch and put in system tray. If type is XWEM-TRAY-DELIM than value is integer, which specifies offset in pixels to be inserted in system tray.
 
xwem-tray-config
=>
([XWEM-TRAY-DOCK "/path/to/xwem-minitime -f 004400 -b bbbbbb"]
 [XWEM-TRAY-DOCK "/path/to/xwem-miniapm"]
 [XWEM-TRAY-DELIM 10]
 [XWEM-TRAY-DOCK "path/to/xwem-minilaunch
                  -l /path/to/icons/xterm.xpm xterm"]
 [XWEM-TRAY-DOCK "/path/to/xwem-minilaunch
                  -l /path/to/icons/xterm_big.xpm
                  xterm -fn 10x20"]
 [XWEM-TRAY-DOCK "/path/to/xwem-minilaunch
                  -e \"(make-frame)\"
                  /path/to/icons/xemacs.xpm emacs"]
 [XWEM-TRAY-DOCK "/path/to/xwem-minilaunch
                  -l /path/to/icons/netscape.xpm
                  netscape"])

Function: xwem-tray-run-config &optional config
This function takes config in format described above, and executes it. See example of its usage.
 
(add-hook 'xwem-after-init-hooks 'xwem-tray-run-config)

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6 Help

Help subsysem in XWEM is much like XEmacs help subsystem.

TODO: write me


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by XEmacs shared group account on December, 19 2009 using texi2html 1.65.