The Dialog/Control ADT question

From: [at]} <Wojtek>
Date: Mon, 30 Jun 2003 21:34:04 -0400 (EDT)

----boundary-LibPST-iamunique-1900885991_-_-
Content-type: text/plain

Hi:

  I have a somewhat provocative question whether it is possible at all
to make an abstract data type dealing with Dialogs, such that this
ADT would be able to take advantage of Controls. The entire Dialog
module seems to be setup with records, not pointers to records.
The intended use of Dialogs is to declare a static global variable,
fill it with data, and then pass the name "module.variable" to the
Controls. The Controls will use Meta to search for the variable
under the hood, using the ingenious Meta wizard, and somehow the
Dialog data will be visible on-screen.

This is great. But now I want to make a free-floating View the usual
BlackBox way. I can create a view which will have a Dialog variable
as its data field. This variable can be either a pointer or just
a record, no problem. I can fill this variable with data. And then what?
How do I pass this variable to Controls.Control such that the control
will link itself to my free-floating viewer, whose content is accessible
only via string of pointers?

The problem seems to be that Controls.Control does not define any
method which would take a pointer to a Dialog variable. It only takes
the name of the variable in the form "module.name", and then locates
the variable using Meta. I guess I want to ask whether there is a more
direct way to establish the link Dialog <--> Control than with passing
a string. Using a pointer would accomplish this. But it does not seem
to be defined.

Can you see what I am aiming at? Does this make a good sense to be
able to construct views which would show Controls linked to the local
view variables?

This all appears in the context of making the Dialog.Tree persistent.
I am trying to accomplish a view, which would show a visible tree Control,
and which I can store to disk like any other view, with the underlying
Dialog tree _and_ with objects pointed to by the Dialog TreeNodes.
I guess this is a perfectly legimate thing to do. But I am now stuck
with the above problem.

I am not insisting on that solution. Maybe there is more sensible way,
though it looks to me the above is legitimate. If not, why not, and how
to accomplish the goal of storing the Dialog.Tree _and_ its pointees?
Gerard has suggested a possible solution using Meta and SYSTEM, which we
both seem to dislike. Also, his solution requires a global variable,
because he is using Meta. Thus it only works for such singletons.
How about a general ADT? Possible, or not?

Cheers,

Wojtek Skulski skulski{([at]})nowhere.xy

--------------------------------------------

To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.


----boundary-LibPST-iamunique-1900885991_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIEhpOlxwYXINClxwYXINCiAgSSBoYXZlIGEgc29t
ZXdoYXQgcHJvdm9jYXRpdmUgcXVlc3Rpb24gd2hldGhlciBpdCBpcyBwb3NzaWJsZSBhdCBhbGxc
cGFyDQp0byBtYWtlIGFuIGFic3RyYWN0IGRhdGEgdHlwZSBkZWFsaW5nIHdpdGggRGlhbG9ncywg
c3VjaCB0aGF0IHRoaXNccGFyDQpBRFQgd291bGQgYmUgYWJsZSB0byB0YWtlIGFkdmFudGFnZSBv
ZiBDb250cm9scy4gVGhlIGVudGlyZSBEaWFsb2dccGFyDQptb2R1bGUgc2VlbXMgdG8gYmUgc2V0
dXAgd2l0aCByZWNvcmRzLCBub3QgcG9pbnRlcnMgdG8gcmVjb3Jkcy5ccGFyDQpUaGUgaW50ZW5k
ZWQgdXNlIG9mIERpYWxvZ3MgaXMgdG8gZGVjbGFyZSBhIHN0YXRpYyBnbG9iYWwgdmFyaWFibGUs
XHBhcg0KZmlsbCBpdCB3aXRoIGRhdGEsIGFuZCB0aGVuIHBhc3MgdGhlIG5hbWUgIm1vZHVsZS52
YXJpYWJsZSIgdG8gdGhlXHBhcg0KQ29udHJvbHMuIFRoZSBDb250cm9scyB3aWxsIHVzZSBNZXRh
IHRvIHNlYXJjaCBmb3IgdGhlIHZhcmlhYmxlXHBhcg0KdW5kZXIgdGhlIGhvb2QsIHVzaW5nIHRo
ZSBpbmdlbmlvdXMgTWV0YSB3aXphcmQsIGFuZCBzb21laG93IHRoZVxwYXINCkRpYWxvZyBkYXRh
IHdpbGwgYmUgdmlzaWJsZSBvbi1zY3JlZW4uXHBhcg0KXHBhcg0KVGhpcyBpcyBncmVhdC4gQnV0
IG5vdyBJIHdhbnQgdG8gbWFrZSBhIGZyZWUtZmxvYXRpbmcgVmlldyB0aGUgdXN1YWxccGFyDQpC
bGFja0JveCB3YXkuIEkgY2FuIGNyZWF0ZSBhIHZpZXcgd2hpY2ggd2lsbCBoYXZlIGEgRGlhbG9n
IHZhcmlhYmxlXHBhcg0KYXMgaXRzIGRhdGEgZmllbGQuIFRoaXMgdmFyaWFibGUgY2FuIGJlIGVp
dGhlciBhIHBvaW50ZXIgb3IganVzdFxwYXINCmEgcmVjb3JkLCBubyBwcm9ibGVtLiBJIGNhbiBm
aWxsIHRoaXMgdmFyaWFibGUgd2l0aCBkYXRhLiBBbmQgdGhlbiB3aGF0P1xwYXINCkhvdyBkbyBJ
IHBhc3MgdGhpcyB2YXJpYWJsZSB0byBDb250cm9scy5Db250cm9sIHN1Y2ggdGhhdCB0aGUgY29u
dHJvbFxwYXINCndpbGwgbGluayBpdHNlbGYgdG8gbXkgZnJlZS1mbG9hdGluZyB2aWV3ZXIsIHdo
b3NlIGNvbnRlbnQgaXMgYWNjZXNzaWJsZVxwYXINCm9ubHkgdmlhIHN0cmluZyBvZiBwb2ludGVy
cz9ccGFyDQpccGFyDQpUaGUgcHJvYmxlbSBzZWVtcyB0byBiZSB0aGF0IENvbnRyb2xzLkNvbnRy
b2wgZG9lcyBub3QgZGVmaW5lIGFueVxwYXINCm1ldGhvZCB3aGljaCB3b3VsZCB0YWtlIGEgcG9p
bnRlciB0byBhIERpYWxvZyB2YXJpYWJsZS4gSXQgb25seSB0YWtlc1xwYXINCnRoZSBuYW1lIG9m
IHRoZSB2YXJpYWJsZSBpbiB0aGUgZm9ybSAibW9kdWxlLm5hbWUiLCBhbmQgdGhlbiBsb2NhdGVz
XHBhcg0KdGhlIHZhcmlhYmxlIHVzaW5nIE1ldGEuIEkgZ3Vlc3MgSSB3YW50IHRvIGFzayB3aGV0
aGVyIHRoZXJlIGlzIGEgbW9yZVxwYXINCmRpcmVjdCB3YXkgdG8gZXN0YWJsaXNoIHRoZSBsaW5r
IERpYWxvZyA8LS0+IENvbnRyb2wgdGhhbiB3aXRoIHBhc3NpbmdccGFyDQphIHN0cmluZy4gVXNp
bmcgYSBwb2ludGVyIHdvdWxkIGFjY29tcGxpc2ggdGhpcy4gQnV0IGl0IGRvZXMgbm90IHNlZW1c
cGFyDQp0byBiZSBkZWZpbmVkLlxwYXINClxwYXINCkNhbiB5b3Ugc2VlIHdoYXQgSSBhbSBhaW1p
bmcgYXQ/IERvZXMgdGhpcyBtYWtlIGEgZ29vZCBzZW5zZSB0byBiZVxwYXINCmFibGUgdG8gY29u
c3RydWN0IHZpZXdzIHdoaWNoIHdvdWxkIHNob3cgQ29udHJvbHMgbGlua2VkIHRvIHRoZSBsb2Nh
bFxwYXINCnZpZXcgdmFyaWFibGVzP1xwYXINClxwYXINClRoaXMgYWxsIGFwcGVhcnMgaW4gdGhl
IGNvbnRleHQgb2YgbWFraW5nIHRoZSBEaWFsb2cuVHJlZSBwZXJzaXN0ZW50LlxwYXINCkkgYW0g
dHJ5aW5nIHRvIGFjY29tcGxpc2ggYSB2aWV3LCB3aGljaCB3b3VsZCBzaG93IGEgdmlzaWJsZSB0
cmVlIENvbnRyb2wsXHBhcg0KYW5kIHdoaWNoIEkgY2FuIHN0b3JlIHRvIGRpc2sgbGlrZSBhbnkg
b3RoZXIgdmlldywgd2l0aCB0aGUgdW5kZXJseWluZ1xwYXINCkRpYWxvZyB0cmVlIF9hbmRfIHdp
dGggb2JqZWN0cyBwb2ludGVkIHRvIGJ5IHRoZSBEaWFsb2cgVHJlZU5vZGVzLlxwYXINCkkgZ3Vl
c3MgdGhpcyBpcyBhIHBlcmZlY3RseSBsZWdpbWF0ZSB0aGluZyB0byBkby4gQnV0IEkgYW0gbm93
IHN0dWNrXHBhcg0Kd2l0aCB0aGUgYWJvdmUgcHJvYmxlbS5ccGFyDQpccGFyDQpJIGFtIG5vdCBp
bnNpc3Rpbmcgb24gdGhhdCBzb2x1dGlvbi4gTWF5YmUgdGhlcmUgaXMgbW9yZSBzZW5zaWJsZSB3
YXksXHBhcg0KdGhvdWdoIGl0IGxvb2tzIHRvIG1lIHRoZSBhYm92ZSBpcyBsZWdpdGltYXRlLiBJ
ZiBub3QsIHdoeSBub3QsIGFuZCBob3dccGFyDQp0byBhY2NvbXBsaXNoIHRoZSBnb2FsIG9mIHN0
b3JpbmcgdGhlIERpYWxvZy5UcmVlIF9hbmRfIGl0cyBwb2ludGVlcz9ccGFyDQpHZXJhcmQgaGFz
IHN1Z2dlc3RlZCBhIHBvc3NpYmxlIHNvbHV0aW9uIHVzaW5nIE1ldGEgYW5kIFNZU1RFTSwgd2hp
Y2ggd2VccGFyDQpib3RoIHNlZW0gdG8gZGlzbGlrZS4gQWxzbywgaGlzIHNvbHV0aW9uIHJlcXVp
cmVzIGEgZ2xvYmFsIHZhcmlhYmxlLFxwYXINCmJlY2F1c2UgaGUgaXMgdXNpbmcgTWV0YS4gVGh1
cyBpdCBvbmx5IHdvcmtzIGZvciBzdWNoIHNpbmdsZXRvbnMuXHBhcg0KSG93IGFib3V0IGEgZ2Vu
ZXJhbCBBRFQ/IFBvc3NpYmxlLCBvciBub3Q/XHBhcg0KXHBhcg0KQ2hlZXJzLFxwYXINClxwYXIN
CldvanRlayBTa3Vsc2tpIHNrdWxza2lAcGFzLnJvY2hlc3Rlci5lZHVccGFyDQpccGFyDQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxwYXINClxwYXINClRvIHVu
c3Vic2NyaWJlIGZyb20gdGhpcyBtYWlsaW5nIGxpc3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5p
bmcgdGhlIHdvcmQgInVuc3Vic2NyaWJlIiB0bzpccGFyDQogICBibGFja2JveC1yZXF1ZXN0QG9i
ZXJvbi5jaFxwYXINClxwYXINClRvIGdldCBhIGxpc3Qgb2YgdmFsaWQgZS1tYWlsIGNvbW1hbmRz
IGFuZCBpbnN0cnVjdGlvbnMgb24gdGhlaXIgdXNhZ2UsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5p
bmcgdGhlIHdvcmQgImhlbHAiIHRvIHRoZSBhYm92ZSBhZGRyZXNzLlxwYXINClxwYXINClNlbmQg
YW55IHByb2JsZW0gcmVwb3J0cyBvciBxdWVzdGlvbnMgcmVsYXRlZCB0byB0aGlzIGVtYWlsIGxp
c3QgdG8gdGhlIGxpc3Qgb3duZXIgYXRccGFyDQogICBvd25lci1ibGFja2JveEBvYmVyb24uY2hc
cGFyDQpccGFyDQpDdXJyZW50IHBvc3RpbmcgcG9saWN5OlxwYXINClxwYXINCmEpIFRvIHBvc3Qg
eW91IHNob3VsZCB1c2UgdGhlIHNhbWUgYWRkcmVzcyBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmli
ZWQgdG8gdGhlIG1haWxpbmcgbGlzdC4gVGhhdCB3YXksIHRoZSBsaXN0IHNlcnZlciB3aWxsIHJl
Y29nbml6ZSB5b3UgYXMgc3Vic2NyaWJlciBhbmQgZm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRp
YXRlbHksIHdpdGhvdXQgY3JlYXRpbmcgYW55IG92ZXJoZWFkLlxwYXINClxwYXINCmIpIElmLCBm
b3Igc29tZSByZWFzb24sIHlvdSBjYW5ub3QgcG9zdCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGlj
aCB5b3UgYXJlIHN1YnNjcmliZWQsIHlvdXIgbWVzc2FnZSB3aWxsIGJlIG1vZGVyYXRlZCB0byBh
dm9pZCBzcGFtLiBQbGVhc2UgdW5kZXJzdGFuZCB0aGF0IG1vZGVyYXRpb24gd2lsbCBvZnRlbiBj
YXVzZSBzb21lIGRlbGF5LCBpbiBwYXJ0aWN1bGFyIG92ZXIgd2Vla2VuZHMgb3IgaG9seWRheX19
AHRoIHRoZQ==


----boundary-LibPST-iamunique-1900885991_-_---
Received on Tue Jul 01 2003 - 03:34:04 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:29:10 UTC