Re: Q - HowTo: Primary & Secondary selected View (Topmost Windows)

From: [at]} <robert.d.campbell{>
Date: Mon, 24 Jun 2002 09:51:40 +0000 (GMT)

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


> Dev->Compare (F9) aka DevSearch.Compare compares the contents of two text
> views.
>
> Focus and last focus was my impression until today, but the
> Dev/Docu/Search.odc says:
>
> "Perform a textual comparison of the two topmost windows' contents."
>
> I would need the same functionality for an upgrade of NW's M2O, which I took
> under my hood. It would be fine to have the last focus on the DEFINITION
> MODULE and the focus on the IMPLEMENTATION MODULE of some
> Modula-2 program and the perform a translation.
>
> Does anybody have an idea how this can be done ?
>
> regards
> Bernhard Treutwein
> BdT{([at]})nowhere.xy
> http://www.lrz.de/~bernhard


Not exactly. But I guess that what you want are the two relevant Views.
If you opened the windows yourself (StdApi.OpenXxx) you already have
access to the Views. Alternatively if you know the window titles you
might be able to do something like the attached routines which scan all
open windows.

Note: this routines are not examples of safety. For Docus see LibMisc on
Helmuts page.


Regards

Robert Campbell


PROCEDURE CloseWindow* (title : Views.Title; askIfDirty : BOOLEAN);
  VAR
    w, w2 : Windows.Window;
    wTitle : Views.Title;
    res : INTEGER;
  BEGIN
    w := Windows.stdDir.First ();
    WHILE w # NIL DO
      w.GetTitle (wTitle); w2 := w; w := Windows.stdDir.Next (w);
      IF wTitle = title THEN
        IF askIfDirty & w2.seq.Dirty () THEN
          Dialog.GetOK ('Close Dirty window ^0 ?', title, '', '',
                        {Dialog.yes, Dialog.no, Dialog.cancel}, res);
          IF res = Dialog.yes THEN w2.Close
          ELSIF res = Dialog.cancel THEN w := NIL END
        ELSE
          w2.Close
        END
      END
    END
  END CloseWindow;


PROCEDURE CloseWindowOn* (model : Models.Model; askIfDirty : BOOLEAN);
  VAR
    w, w2 : Windows.Window;
    wTitle : Views.Title;
    res : INTEGER;
    ask : BOOLEAN;
  BEGIN
    IF model # NIL THEN
      w := Windows.stdDir.First (); ask := TRUE;
      WHILE w # NIL DO
        w2 := w; w := Windows.stdDir.Next (w);
        IF w2.doc.ThisView ().ThisModel () = model THEN
          IF w2.seq.Dirty () THEN
            IF askIfDirty THEN
              IF ask THEN
                w2.GetTitle (wTitle); ask := FALSE;
                Dialog.GetOK ('Close Dirty model in window ^0 ?', wTitle, '',
'',
                              {Dialog.yes, Dialog.no, Dialog.cancel}, res)
              END
            ELSE
              res := Dialog.yes
            END;
            IF res = Dialog.yes THEN w2.Close
            ELSIF res = Dialog.cancel THEN w := NIL END
          ELSE
            w2.Close
          END
        END
      END
    END
  END CloseWindowOn;



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

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-298419140_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIFxwYXINCj4gRGV2LT5Db21wYXJlIChGOSkgYWth
IERldlNlYXJjaC5Db21wYXJlIGNvbXBhcmVzIHRoZSBjb250ZW50cyBvZiB0d28gdGV4dFxwYXIN
Cj4gdmlld3MuXHBhcg0KPiBccGFyDQo+IEZvY3VzIGFuZCBsYXN0IGZvY3VzIHdhcyBteSBpbXBy
ZXNzaW9uIHVudGlsIHRvZGF5LCBidXQgdGhlXHBhcg0KPiBEZXYvRG9jdS9TZWFyY2gub2RjIHNh
eXM6XHBhcg0KPiBccGFyDQo+ICJQZXJmb3JtIGEgdGV4dHVhbCBjb21wYXJpc29uIG9mIHRoZSB0
d28gdG9wbW9zdCB3aW5kb3dzJyBjb250ZW50cy4iXHBhcg0KPiBccGFyDQo+IEkgd291bGQgbmVl
ZCB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5IGZvciBhbiB1cGdyYWRlIG9mIE5XJ3MgTTJPLCB3aGlj
aCBJIHRvb2tccGFyDQo+IHVuZGVyIG15IGhvb2QuIEl0IHdvdWxkIGJlIGZpbmUgdG8gaGF2ZSB0
aGUgbGFzdCBmb2N1cyBvbiB0aGUgREVGSU5JVElPTlxwYXINCj4gTU9EVUxFIGFuZCB0aGUgZm9j
dXMgb24gdGhlIElNUExFTUVOVEFUSU9OIE1PRFVMRSBvZiBzb21lXHBhcg0KPiBNb2R1bGEtMiBw
cm9ncmFtIGFuZCB0aGUgcGVyZm9ybSBhIHRyYW5zbGF0aW9uLlxwYXINCj4gXHBhcg0KPiBEb2Vz
IGFueWJvZHkgaGF2ZSBhbiBpZGVhIGhvdyB0aGlzIGNhbiBiZSBkb25lID9ccGFyDQo+IFxwYXIN
Cj4gcmVnYXJkc1xwYXINCj4gICAgIEJlcm5oYXJkIFRyZXV0d2VpblxwYXINCj4gICAgIEJkVEB3
aWxkd2Vpbi5kZSAoaG9tZSlccGFyDQo+ICAgICBodHRwOi8vd3d3Lmxyei5kZS9+YmVybmhhcmRc
cGFyDQpccGFyDQpccGFyDQpOb3QgZXhhY3RseS4gQnV0IEkgZ3Vlc3MgdGhhdCB3aGF0IHlvdSB3
YW50IGFyZSB0aGUgdHdvIHJlbGV2YW50IFZpZXdzLlxwYXINCklmIHlvdSBvcGVuZWQgdGhlIHdp
bmRvd3MgeW91cnNlbGYgKFN0ZEFwaS5PcGVuWHh4KSB5b3UgYWxyZWFkeSBoYXZlXHBhcg0KYWNj
ZXNzIHRvIHRoZSBWaWV3cy4gQWx0ZXJuYXRpdmVseSBpZiB5b3Uga25vdyB0aGUgd2luZG93IHRp
dGxlcyB5b3VccGFyDQptaWdodCBiZSBhYmxlIHRvIGRvIHNvbWV0aGluZyBsaWtlIHRoZSBhdHRh
Y2hlZCByb3V0aW5lcyB3aGljaCBzY2FuIGFsbFxwYXINCm9wZW4gd2luZG93cy5ccGFyDQpccGFy
DQpOb3RlOiB0aGlzIHJvdXRpbmVzIGFyZSBub3QgZXhhbXBsZXMgb2Ygc2FmZXR5LiBGb3IgRG9j
dXMgc2VlIExpYk1pc2Mgb25ccGFyDQpIZWxtdXRzIHBhZ2UuXHBhcg0KXHBhcg0KXHBhcg0KUmVn
YXJkc1xwYXINClxwYXINClJvYmVydCBDYW1wYmVsbFxwYXINClxwYXINClxwYXINClBST0NFRFVS
RSAgQ2xvc2VXaW5kb3cqICh0aXRsZSA6IFZpZXdzLlRpdGxlOyBhc2tJZkRpcnR5IDogQk9PTEVB
Tik7XHBhcg0KICBWQVJccGFyDQogICAgdywgdzIgICA6ICBXaW5kb3dzLldpbmRvdztccGFyDQog
ICAgd1RpdGxlICA6ICBWaWV3cy5UaXRsZTtccGFyDQogICAgcmVzICAgICA6ICBJTlRFR0VSO1xw
YXINCiAgQkVHSU5ccGFyDQogICAgdyAgOj0gIFdpbmRvd3Muc3RkRGlyLkZpcnN0ICgpO1xwYXIN
CiAgICBXSElMRSAgdyAgIyAgTklMICBET1xwYXINCiAgICAgIHcuR2V0VGl0bGUgKHdUaXRsZSk7
ICB3MiAgOj0gIHc7ICB3ICA6PSAgV2luZG93cy5zdGREaXIuTmV4dCAodyk7XHBhcg0KICAgICAg
SUYgIHdUaXRsZSAgPSAgdGl0bGUgIFRIRU5ccGFyDQogICAgICAgIElGICBhc2tJZkRpcnR5ICAm
ICB3Mi5zZXEuRGlydHkgKCkgIFRIRU5ccGFyDQogICAgICAgICAgRGlhbG9nLkdldE9LICgnQ2xv
c2UgRGlydHkgd2luZG93IF4wID8nLCB0aXRsZSwgJycsICcnLFxwYXINCiAgICAgICAgICAgICAg
ICAgICAgICAgIFx7RGlhbG9nLnllcywgRGlhbG9nLm5vLCBEaWFsb2cuY2FuY2VsXH0sIHJlcyk7
XHBhcg0KICAgICAgICAgIElGICAgICByZXMgID0gIERpYWxvZy55ZXMgICAgIFRIRU4gIHcyLkNs
b3NlXHBhcg0KICAgICAgICAgIEVMU0lGICByZXMgID0gIERpYWxvZy5jYW5jZWwgIFRIRU4gIHcg
IDo9ICBOSUwgIEVORFxwYXINCiAgICAgICAgRUxTRVxwYXINCiAgICAgICAgICB3Mi5DbG9zZVxw
YXINCiAgICAgICAgRU5EXHBhcg0KICAgICAgRU5EXHBhcg0KICAgIEVORFxwYXINCiAgRU5EICBD
bG9zZVdpbmRvdztccGFyDQpccGFyDQpccGFyDQpQUk9DRURVUkUgIENsb3NlV2luZG93T24qICht
b2RlbCA6IE1vZGVscy5Nb2RlbDsgYXNrSWZEaXJ0eSA6IEJPT0xFQU4pO1xwYXINCiAgVkFSXHBh
cg0KICAgIHcsIHcyICAgOiAgV2luZG93cy5XaW5kb3c7XHBhcg0KICAgIHdUaXRsZSAgOiAgVmll
d3MuVGl0bGU7XHBhcg0KICAgIHJlcyAgICAgOiAgSU5URUdFUjtccGFyDQogICAgYXNrICAgICA6
ICBCT09MRUFOO1xwYXINCiAgQkVHSU5ccGFyDQogICAgSUYgIG1vZGVsICAjICBOSUwgIFRIRU5c
cGFyDQogICAgICB3ICA6PSAgV2luZG93cy5zdGREaXIuRmlyc3QgKCk7ICBhc2sgIDo9ICBUUlVF
O1xwYXINCiAgICAgIFdISUxFICB3ICAjICBOSUwgIERPXHBhcg0KICAgICAgICB3MiAgOj0gIHc7
ICB3ICA6PSAgV2luZG93cy5zdGREaXIuTmV4dCAodyk7XHBhcg0KICAgICAgICBJRiAgdzIuZG9j
LlRoaXNWaWV3ICgpLlRoaXNNb2RlbCAoKSAgPSAgbW9kZWwgIFRIRU5ccGFyDQogICAgICAgICAg
SUYgIHcyLnNlcS5EaXJ0eSAoKSAgVEhFTlxwYXINCiAgICAgICAgICAgIElGICBhc2tJZkRpcnR5
ICBUSEVOXHBhcg0KICAgICAgICAgICAgICBJRiAgYXNrICBUSEVOXHBhcg0KICAgICAgICAgICAg
ICAgIHcyLkdldFRpdGxlICh3VGl0bGUpOyAgYXNrICA6PSAgRkFMU0U7XHBhcg0KICAgICAgICAg
ICAgICAgIERpYWxvZy5HZXRPSyAoJ0Nsb3NlIERpcnR5IG1vZGVsIGluIHdpbmRvdyBeMCA/Jywg
d1RpdGxlLCAnJyxccGFyDQonJyxccGFyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
e0RpYWxvZy55ZXMsIERpYWxvZy5ubywgRGlhbG9nLmNhbmNlbFx9LCByZXMpXHBhcg0KICAgICAg
ICAgICAgICBFTkRccGFyDQogICAgICAgICAgICBFTFNFXHBhcg0KICAgICAgICAgICAgICByZXMg
IDo9ICBEaWFsb2cueWVzXHBhcg0KICAgICAgICAgICAgRU5EO1xwYXINCiAgICAgICAgICAgIElG
ICAgICByZXMgID0gIERpYWxvZy55ZXMgICAgIFRIRU4gIHcyLkNsb3NlXHBhcg0KICAgICAgICAg
ICAgRUxTSUYgIHJlcyAgPSAgRGlhbG9nLmNhbmNlbCAgVEhFTiAgdyAgOj0gIE5JTCAgRU5EXHBh
cg0KICAgICAgICAgIEVMU0VccGFyDQogICAgICAgICAgICB3Mi5DbG9zZVxwYXINCiAgICAgICAg
ICBFTkRccGFyDQogICAgICAgIEVORFxwYXINCiAgICAgIEVORFxwYXINCiAgICBFTkRccGFyDQog
IEVORCAgQ2xvc2VXaW5kb3dPbjtccGFyDQpccGFyDQpccGFyDQpccGFyDQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxwYXINClxwYXINClRvIHVuc3Vic2NyaWJl
IGZyb20gdGhpcyBtYWlsaW5nIGxpc3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdv
cmQgInVuc3Vic2NyaWJlIiB0bzpccGFyDQogICBibGFja2JveC1yZXF1ZXN0QG9iZXJvbi5jaFxw
YXINClxwYXINClRvIGdldCBhIGxpc3Qgb2YgdmFsaWQgZS1tYWlsIGNvbW1hbmRzIGFuZCBpbnN0
cnVjdGlvbnMgb24gdGhlaXIgdXNhZ2UsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdv
cmQgImhlbHAiIHRvIHRoZSBhYm92ZSBhZGRyZXNzLlxwYXINClxwYXINClNlbmQgYW55IHByb2Js
ZW0gcmVwb3J0cyBvciBxdWVzdGlvbnMgcmVsYXRlZCB0byB0aGlzIGVtYWlsIGxpc3QgdG8gdGhl
IGxpc3Qgb3duZXIgYXRccGFyDQogICBvd25lci1ibGFja2JveEBvYmVyb24uY2hccGFyDQpccGFy
DQpDdXJyZW50IHBvc3RpbmcgcG9saWN5OlxwYXINClxwYXINCmEpIFRvIHBvc3QgeW91IHNob3Vs
ZCB1c2UgdGhlIHNhbWUgYWRkcmVzcyBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQgdG8gdGhl
IG1haWxpbmcgbGlzdC4gVGhhdCB3YXksIHRoZSBsaXN0IHNlcnZlciB3aWxsIHJlY29nbml6ZSB5
b3UgYXMgc3Vic2NyaWJlciBhbmQgZm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRpYXRlbHksIHdp
dGhvdXQgY3JlYXRpbmcgYW55IG92ZXJoZWFkLlxwYXINClxwYXINCmIpIElmLCBmb3Igc29tZSBy
ZWFzb24sIHlvdSBjYW5ub3QgcG9zdCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3UgYXJl
IHN1YnNjcmliZWQsIHlvdXIgbWVzc2FnZSB3aWxsIGJlIG1vZGVyYXRlZCB0byBhdm9pZCBzcGFt
LiBQbGVhc2UgdW5kZXJzdGFuZCB0aGF0IG1vZGVyYXRpb24gd2lsbCBvZnRlbiBjYXVzZSBzb21l
IGRlbGF5LCBpbiBwYXJ0aWN1bGFyIG92ZXIgd2Vla2VuZHMgb3IgaG9seWRheX19AHJhAQAhQg==


----boundary-LibPST-iamunique-298419140_-_---
Received on Mon Jun 24 2002 - 11:51:40 UTC

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