A89: Re: Re: VAR-LINK


[Prev][Next][Index][Thread]

A89: Re: Re: VAR-LINK




Yes, this helps, thank you.  You are right about event technics producing
miracles, since that's what I used to find the ID's of the apps.  Also, for
a reference, could you give me the function that was introduced in AMS 2.03
to bring up the VAR-LINK dialog.

----- Original Message -----
From: "Zeljko Juric" <zjuric@utic.net.ba>
To: <assembly-89@lists.ticalc.org>
Sent: Wednesday, June 28, 2000 3:21 AM
Subject: A89: Re: VAR-LINK


>
> Hi!
>
> > Does anyone know how to bring up the VAR-LINK dialog from C code
> > and then get the name of the file that was selected?
>
> AMS 2.03 has such function, but AMS 1.xx has not. So, I will give
> to you AMS-independent solution. Bringing up the VAR-LINK dialog
> is quite easy:
>
> EVENT ev;
> ev.Type=CM_KEYPRESS;
> ev.extra.Key.Code=4141;         // code of VAR-LNK keypress
> EV_defaultHandler(&ev);
>
> but getting the name of the file that was selected is a bit harder.
> After executing of VAR-LINK dialog, VAR-LINK applet will send the
> name of the selected file to the current application via CM_HSTRING
> message. This message may be captured by an user event handler.
> Here is the demonstration program:
>
> #include <nostub.h>
> #include <all.h>
>
> int _ti89;
>
> char VarBuffer[20]="";
>
> void VarLinkHandler(EVENT *ev)
> {
>   if(ev->Type=CM_HSTRING)
>     strcpy(VarBuffer,HeapDeref(ev->extra.hPasteText));
>   EV_defaultHandler(ev);
> }
>
> void VarLinkDialog(void)
> {
>   EVENT ev;
>   EVENT_HANDLER OldHandler=EV_captureEvents(VarLinkHandler);
>   ev.Type=CM_KEYPRESS;
>   ev.extra.Key.Code=4141;         // code of VAR-LNK keypress
>   EV_defaultHandler(&ev);
>   EV_captureEvents(OldHandler);
> }
>
> void _main(void)
> {
>   VarLinkDialog();
>   printf_xy(0,50,"You picked: %s",VarBuffer);
>   ngetchx();
> }
>
> I hope that this helps. Read more about events.h header file:
> incredible miracles may be produced using event passing technics!
>
> Cheers,
>
> Zeljko Juric
>




References: