2009-12-28

implicit gui programming

9.17: adda/implicit gui programming:

. servers can see the same thing we see
by having windows as a list of coords
and a list of obj's within those coords .

. they can see graphic types like we do, anyway;
since a picts` binary rep is the same as their graphic rep .
. with special effects it may be difficult to know a char's
preferred minimal pixel size,
I guess that's why mac went with points?
(9.18: also:
when looking at picts as graphs of functions,
functions are composed of sets of points) .
. the min height of a character determines
the size of a word's pictorial rep .
. another shortcut to compacting text by making use of the 4-byte coding
is by including in that coding
how it is being separated from the next word;
is next connector a {space, dash, dot, comma}?
-- that way you are compressing all the spaces down to 2-bits .

. every native type has an image which is the
pict it makes in a rect of size in points .

. the servers can invent new types
that also have server-defined images .
. say a line drawn is supposed to generate a circle of varying size
that selects any obj's it overlaps;
then its building the selector set as links to
obj's whose images are overlapping
. image is 2parts (as first described by [inside mac])
. an enclosing rect; and, a subset of that
where active points are given by mask or formula .

. servers see graphics as trees of rectangles;
ie, subtrees are subrectangles,
. here agent refers to gui agent, or presentation agent .
. servers are either processors or type'mgt's .

. word server depends on graphics parameters for doing word wrap
-- an example of how, generally,
servers will have a need for dealing with graphics as
some operations are inherently graphical
and not just a translation for the user's needs .

9.18: adda/implicit gui support:
. a key strategy of adda is implicit gui support,
where the programmer need only create the usual api,
and then the user`agent would tranlate to a gui for the user .
. how is the api sorting cmd's by skill or task?
[9.22: . this is already seen in the use of wrapper api's
where there is a low-level api for the primitives,
and then a high-level api for helping with
simplifying the tasks most often used .
]
. think of some examples where the user or system
is imposing an arbitrary order:
. the mac likes a file menu to have a set of functions {save/as, ... };
but, the server doesn't follow that;
rather the person porting the app to mac (the porter)
creates a map from sys'req's to server rsrc's .
. there is a 1-1 correspondence on (adda, graphics);
ie, a name for types of widgets,
the porters create the map they think the user wants to see;
the user can edit the map like an html form and save .
. the still-unsolved part to this map
is how to name and org widgets ... .
. menu's are records of function.ptr's;
the server itself is welcome to org its face this way .

No comments:

Post a Comment