minor doc changes
[emacs.git] / README.xwidget
blob0a9e1a221fbaf660e3ee886bf86f68ee9da9ff63
1 * Xwidgets
3 This is an experimental branch to enable embedding of GTK widgets
4 inside an Emacs window. The Emacs abstraction is called an Xwidget,
5 for eXternal widget, and also in reference to the Xembed protocoll.
7 There is a demo file called xwidget-test.el which shows some of the
8 possibilities. There are some screnshots at the emacswiki.
10 Currently its possible to insert buttons, sliders, and xembed widgets
11 in the buffer. It works similar to the support for images in Emacs.
12 Adding more types of widgets should be fairly straightforward, but
13 will require adapter code for each type.
15 A difference from images is that xwidgets live their own life. You
16 create them with an api, get a reference, and tie them to a particular
17 buffer with a display spec. Also, xwidgets exists in only one copy,
18 where a plain image can be shown in several windows. The xwidget code
19 tries to handle this by essentialy making a screen capture of the
20 widget and displaying those in the non-active windows, and the real
21 widget in the active window. This doesnt currently work for xembed
22 widgets.
24 The current state is that one window, one frame, showing many xwidgets
25 is a nice demo.
28 TODO
30 - Examine using XComposite rather than GTK off-screen rendering. This
31   would make xembed widgets work much better.
33 - make the keyboard event code propagation code work.
35 - remove the special-case for when the minibuffer is
36   active. Special-casing will never work properly.
38 - disable emacs cursor drawing on top of an active xwidget
40 - figure out what to do with the multiple frames case
42 - improve the xwidgets programming interface so its less of
43   hand-waving affair
45 - more documentation
47 - look into more ways of displaying xwidgets, like binding them to a
48 window rather than a point in a buffer.