Re: Word Processors



Yes, that would be nice... a pool of modules (CORBA objects) which could be
fitted (drag-n-dropped) into a "back panel" (configuration panel).

Has anyone ever used Pinball Construction Set from Electronic Arts? 
Remember how you could get under the machine and reconnect the wiring?  I
envision something similar for application configuration.  You could easily
create your own modules (in C or GUILE or whatever) and "wire them in" to
fitted "sockets."  Two objects can be wired together if they have matching
interface definitions, with one exporting and the other requiring the
interface.

The interfaces could be graphically distinguished by different shaped "plugs
& sockets" and/or by color.  By right-clicking on a "plug" and selecting 
"Properties" (or whatever), you could get a detailed description of the
interface.  The modules could be dragged from any folder anywhere you happen
to have them, with most commonly selected directories being offered in the
panel as a "toybox."

Actually, one might say it's a bit more like the old kid's motorized
construction toy "Capsela" than Pinball Construction Set.

The "socket" side (I know it's confusing what with TCP/IP) is much like a
"hook" in Emacs... something you have decided to make user configurable. 
You can't make everything a hook, because the program would run too slowly -
that would be like running a shell script.  However, GIMP plug-ins could be
added this way.  Spell-checkers could be added this way.  The advantage is
that you can always create your own custom "filter" module that sits between
a standard module and the program hook.  Every time an error is reported by
the spell checker, your custom module could log it, or send it to the GIMP
to be rendered as spinning 3D-text and thrown onto your screen saver, so
the next time your screen blanks, you will be reminded of your error.

Mail filters could be handled this way.  Dialog boxes could be customized or
overridden.  Menu options could be added.  Keystrokes could be customized.

The "wiring" for each hook could be hidden as closely as possible to the UI
elements which relate to them, rather than in some giant hodge-podge.  It
would be revealed by entering a special configuration mode.  The look of an
icon representing a module might change when it gets near the sockets it
matches.  For example, when you drag  a module which can "fit" a menu into 
the area of the menu, it would suddenly look like a menu item, with little
tab- or hook-looking appendages.  You could then "hook" or "plug" it into
the bottom of the menu.  If you dragged it between two menu items and held
it there for a certain fraction of a second, the menu would "slide apart" to
open a slot for the new item, perhaps with rubberbands between them.  When
you dropped in the menu item, the rubberbands would snap (just disappear, no
fancy animation), and the new item's tabs/hooks would appear connected to
the surrounding menu items.

Any changes in the GUI would immediately be mirrored in the internal
configuration, and changes to the internal configuration made
non-graphically via CORBA would be mirrored in the GUI.  You could even have
a text-based interface to the same thing.  They would all be live-updating
each other via CORBA.

Invisible calculating processes could be wired on clearly diagrammed panels.
For example, you might want to replace the pagination mechanism in your WP,
or the font rendering.  Or the peephole optimizer in your compiler.  Or what
your spreadsheet does when you exit.

/-------- Quantum Seep, qseep@iname.com ---
  "His funny bone's connected to the M-bone"
   PGP fingerprint: 5B 3B 7B EC AA 5B 4B 7F  65 7D 2A CD 69 11 29 2A

On Wed, 16 Sep 1998, Rebecca Ore wrote:

> 	 If I'm understanding correctly, we could have a file library
> of draggable/droppable modules and plug-ins also available as
> command-line options.
> 
>          Maybe pull-down menus that are drag and drop or command line
> options.  You don't load them; they're not there.  You want these
> additional pull down choices, you load this modules.
> 
> -- 
> Rebecca



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]