Mercurial > hg > xemacs-beta
diff man/widget.texi @ 2028:2ba4f06a264d
[xemacs-hg @ 2004-04-19 08:02:27 by stephent]
texi doc improvements <87zn98wg4q.fsf@tleepslib.sk.tsukuba.ac.jp>
author | stephent |
---|---|
date | Mon, 19 Apr 2004 08:02:38 +0000 |
parents | 8d350b095c21 |
children | 1094d6d400fb |
line wrap: on
line diff
--- a/man/widget.texi Mon Apr 19 06:40:45 2004 +0000 +++ b/man/widget.texi Mon Apr 19 08:02:38 2004 +0000 @@ -40,15 +40,20 @@ @comment node-name, next, previous, up @section Introduction -Most graphical user interface toolkits, such as Motif and XView, provide +@c XEmacs changes to reflect history, native widgets, and GTK +Most graphical user interface toolkits, since Motif and XView, provide a number of standard user interface controls (sometimes known as -`widgets' or `gadgets'). Emacs doesn't really support anything like -this, except for an incredible powerful text ``widget''. On the other -hand, Emacs does provide the necessary primitives to implement many -other widgets within a text buffer. The @code{widget} package -simplifies this task. +`widgets' or `gadgets'). Historically, Emacs didn't support anything like +this, except for its incredible powerful text ``widget''. However, +since XEmacs 21.4, XEmacs has supported ``native'' widgets (GUI controls +implemented as Lisp APIs in C for the MS Windows, Motif, Athena, and GTK +toolkits) and libglade (GUI controls with an XML API for the GTK +toolkit). On the other hand, Emacs does provide the necessary +primitives to implement many other widgets within a text buffer, and of +course this is the only way to implement self-contained controls in a +text terminal. The @code{widget} package simplifies this task. -The basic widgets are: +Examples of some basic widgets include: @table @code @item link @@ -83,7 +88,7 @@ Now of what possible use can support for widgets be in a text editor? I'm glad you asked. The answer is that widgets are useful for -implementing forms. A @dfn{form} in emacs is a buffer where the user is +implementing forms. A @dfn{form} in Emacs is a buffer where the user is supposed to fill out a number of fields, each of which has a specific meaning. The user is not supposed to change or delete any of the text between the fields. Examples of forms in Emacs are the @file{forms} @@ -100,19 +105,22 @@ You can give the user immediate feedback if he enters invalid data in a text field, and sometimes prevent entering invalid data. @item -You can have fixed sized fields, thus allowing multiple field to be +You can have fixed sized fields, thus allowing multiple fields to be lined up in columns. @item It is simple to query or set the value of a field. @item -Editing happens in buffer, not in the mini-buffer. +Editing happens in a normal buffer, not in the mini-buffer. @item -Packages using the library get a uniform look, making them easier for +Packages using the library get a uniform look-and-feel, making them easier for the user to learn. @item -As support for embedded graphics improve, the widget library will +As support for embedded graphics has improved, the widget library will extended to support it. This means that your code using the widget -library will also use the new graphic features by automatic. +library will also use the new graphic features automatically. +@item +A widget specification is implemented as a class, and new subclasses can +be derived from any class, by restricting or extending the behavior. @end enumerate In order to minimize the code that is loaded by users who does not @@ -120,10 +128,10 @@ @table @file @item widget.el -This will declare the user variables, define the function -@code{define-widget}, and autoload the function @code{widget-create}. +This declares the user variables, defines the function +@code{define-widget}, and autoloads the function @code{widget-create}. @item wid-edit.el -Everything else is here, there is no reason to load it explicitly, as +Everything else is here. Do not load it explicitly, as it will be autoloaded when needed. @end table @@ -168,7 +176,7 @@ @b{[Apply Form]} @b{[Reset Form]} @end example -The top level widgets in is example are tagged @samp{Name}, +The top level widgets in this example are tagged @samp{Name}, @samp{Choose}, @samp{Address}, @samp{_other work_}, @samp{Numbers}, @samp{Select multiple}, @samp{Select one}, @samp{[Apply Form]}, and @samp{[Reset Form]}. There are basically two thing the user can do within