•  Back 
  •  BubbleGEM 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File15.2.2  Aufrufroutine                                              TOS

Hier eine allgemeine Routine zum Aufruf von BubbleGEM in Pseudocode.

bubblegem:=appl_find('BUBBLE  ');
if bubblegem<0 then
  begin
    pfad:=GetEnv('BUBBLEGEM');
    if length(pfad)>0 then
      begin
        { BubbleGEM nachstarten, ID in bubblegem merken }
        if bubblegem>=0 then evnt_timer(500,0)
      end
  end;
if bubblegem<0 then exit; { BubbleGEM nicht gefunden -> Abbruch}
StrPCopy(bubblebuf,hilfetext);
msg[0]:=BUBBLEGEM_SHOW;
msg[1]:=apID;
msg[2]:=0;
msg[3]:=mx;
msg[4]:=my;
msg[5]:=integer(HiWord(bubblebuf));
msg[6]:=integer(LoWord(bubblebuf));
msg[7]:=0;
if unmodaler_Aufruf then
  begin
    appl_write(bubblegem,16,@@msg);
    evnt_timer(100,0)
  end
else
  begin
    { Aufruf aus einem systemmodalen Dialog heraus: }
    if not(GetCookie('BGEM',bgemcookie)) then Bing { Fehler }
      { modaler Aufruf nur möglich, wenn BGEM-Cookie vorhanden }
    else
      begin
        msg[7]:=msg[7] or BGS7_USRHIDE;
        appl_write(bubblegem,16,@@msg);
        evnt_timer(10,0);
        graf_mkstate(dummy,dummy,ms,dummy);
        if (ms and 3)=0 then { keine Maustaste gedrückt? }
          begin
            bclicks:=258;
            bmask:=3;
            bstate:=0
          end
        else
          begin
            bclicks:=0;
            bmask:=3;
            bstate:=0
          end;
        if not(GetCookie('BHLP',delay)) then delay:=200
        else
          delay:=(delay shr 16) and 0x0000ffff;
        graf_mouse(USER_DEF,bgemcookie->mhelp);
        evnt_timer(delay,0);
        evnt_multi(MU_KEYBD or MU_BUTTON or MU_M1, bclicks, bmask,
          bstate, 1, mX-6, mY-6, 13, 13, 0, 0, 0, 0, 0, msg,
          0, 0, dummy, dummy, ms, dummy, dummy, dummy);
        msg[0]:=BUBBLEGEM_HIDE;
        msg[1]:=apID;
        msg[2]:=0;
        msg[3]:=0;
        msg[4]:=0;
        msg[5]:=0;
        msg[6]:=0;
        msg[7]:=0;
        appl_write(bubblegem,16,@@msg);
        graf_mouse(ARROW,NULL)
      end;
    repeat
      graf_mkstate(dummy,dummy,ms,dummy)
    until (ms and 3)=0
  end;