home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / MAXONPASCAL3.DMS / in.adf / DEMOS-OS2.0 / AppIcon.p < prev    next >
Encoding:
Text File  |  1994-08-25  |  3.4 KB  |  118 lines

  1. { Programm:   AppIcon
  2.   ~~~~~~~~
  3.   Sprache:   MaxonPASCAL 3 / KickPascal 2.12 / OS 2.0-Includes
  4.   ~~~~~~~~
  5.   Sinn:      einfachere AppIcon-Programmierung und Verarbeitung
  6.   ~~~~~           
  7.   Autor:     PackMAN
  8.   ~~~~~~     c/o Falk Zühlsdorff
  9.              Lindenberg 66
  10.              D-98693 Ilmenau/Thüringen
  11.  
  12.   ©:         FREEWARE wenn Autor in .dok / Infofenster des nicht-
  13.                       kommerziellen Progr. erwähnt wird.
  14.  
  15.   Kommentar: Version für MAXON
  16.   ~~~~~~~~~~ ab OS2                                                    }
  17.  
  18. PROGRAM appicon;
  19. USES EXEC;
  20. {$INCL 'dos.lib',
  21.        'workbench/startup.h',
  22.        'icon.lib',
  23.        'wb.lib'}
  24.  
  25. TYPE    ifeld=array[1..48] of long;     {für Image}
  26.  
  27. VAR dobj       : p_DiskObject;
  28.     myPort     : p_MsgPort;
  29.     MyAppIcon  : p_AppIcon;
  30.     AppMsg     : p_AppMessage;
  31.     ex         : boolean;
  32.     Gad        : Gadget;
  33.     Image1     : Image;
  34.     idat1      : ^ifeld;
  35.     mytask     : p_task;
  36.  
  37. BEGIN
  38.  mytask:=NIL;
  39.  mytask:=FindTask('Workbench');             { WB offen ??? }
  40.  IF mytask=NIL THEN exit;                   { Nein: chio...}
  41.  IconBase:=OpenLibrary('icon.library',37);
  42.  IF IconBase=NIL THEN exit;
  43.  workbenchbase:=OpenLibrary('workbench.library',37);
  44.  IF workbenchbase=NIL THEN exit;
  45.  
  46.  idat1:=ptr(alloc_mem(sizeof(ifeld),2)); {Chip}
  47.   idat1^:=ifeld(
  48.  %000000000000000000000000000000,
  49.  %111111111111111111111111111110,
  50.  %100000000000000000000000000010,
  51.  %100001111111110100001000000010,
  52.  %100000000100000010010000000010,
  53.  %100000000100000001100000000010,
  54.  %100000000100000001100000000010,
  55.  %100000000100000010010000000010,
  56.  %100000000100000100001000000010,
  57.  %100000000000000000000000000010,
  58.  %100000000000000000000000000010,
  59.  %100000000000000000000000000010,
  60.  %100000000000000000000000000010,
  61.  %100000000000000000000000000010,
  62.  %100000000000000000000000000010,
  63.  %100000000000000000000000000010,
  64.  %100000000000000000000000000010,
  65.  %100000000000000000000000000010,
  66.  %100000000000000000000000000010,
  67.  %100000000000000000000000000010,
  68.  %100000000000000000000000000010,
  69.  %100000000000000000000000000010,
  70.  %111111111111111111111111111110,
  71.  %000000000000000000000000000000,
  72.  
  73.  %000000000000000000000000000000,
  74.  %000000000000000000000000000000,
  75.  %011111111111111111111111111100,
  76.  %011110000000001011110111111100,
  77.  %011111111011111101101111111100,
  78.  %011111111011111110011111111100,
  79.  %011111111011111110011111111100,
  80.  %011111111011111101101111111100,
  81.  %011111111011111011110111111100,
  82.  %011111111111111111111111111100,
  83.  %011111111111111111111111111100,
  84.  %011111111111111111111111111100,
  85.  %011111111111111111111111111100,
  86.  %011111111111111111111111111100,
  87.  %011111111111111111111111111100,
  88.  %011111111111111111111111111100,
  89.  %011111111111111111111111111100,
  90.  %011111111111111111111111111100,
  91.  %011111111111111111111111111100,
  92.  %011111111111111111111111111100,
  93.  %011111111111111111111111111100,
  94.  %011111111111111111111111111100,
  95.  %000000000000000000000000000000,
  96.  %000000000000000000000000000000);
  97.  
  98.  Image1:=image(0,0,32,24,2,idat1,3,0,nil);
  99.  Gad:=Gadget(NIL,0,0,32,25,GADGIMAGE,GADGIMMEDIATE+
  100.              RELVERIFY,BOOLGADGET,^Image1,NIL,NIL,0,NIl,0,NIL);
  101.  dobj:=GetDefDiskObject(WBDISK);
  102.  dobj^.do_Gadget:=Gad;
  103.  myport:=CreateMsgPort;
  104.  myappicon:=AddAppIconA(0,0,'Klick AppIcon',myport,NIL,dobj,NIL);
  105.  ex:=false;
  106.  REPEAT
  107.   AppMsg:=wait_port(myport);
  108.   AppMsg:=get_msg(myport);
  109.   Reply_Msg(AppMsg);
  110.   IF AppMsg^.am_NumArgs=0
  111.    THEN ex:=true; {Doppelklick/aktiv}
  112.  UNTIL ex;
  113.  ex:=RemoveAppIcon(myAppIcon);
  114.  FreeDiskObject(dobj);
  115.  DeleteMsgPort(myport);
  116. END.
  117.  
  118.