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: