home *** CD-ROM | disk | FTP | other *** search
- { Programm: AppIcon
- ~~~~~~~~
- Sprache: MaxonPASCAL 3 / KickPascal 2.12 / OS 2.0-Includes
- ~~~~~~~~
- Sinn: einfachere AppIcon-Programmierung und Verarbeitung
- ~~~~~
- Autor: PackMAN
- ~~~~~~ c/o Falk Zühlsdorff
- Lindenberg 66
- D-98693 Ilmenau/Thüringen
-
- ©: FREEWARE wenn Autor in .dok / Infofenster des nicht-
- kommerziellen Progr. erwähnt wird.
-
- Kommentar: Version für MAXON
- ~~~~~~~~~~ ab OS2 }
-
- PROGRAM appicon;
- USES EXEC;
- {$INCL 'dos.lib',
- 'workbench/startup.h',
- 'icon.lib',
- 'wb.lib'}
-
- TYPE ifeld=array[1..48] of long; {für Image}
-
- VAR dobj : p_DiskObject;
- myPort : p_MsgPort;
- MyAppIcon : p_AppIcon;
- AppMsg : p_AppMessage;
- ex : boolean;
- Gad : Gadget;
- Image1 : Image;
- idat1 : ^ifeld;
- mytask : p_task;
-
- BEGIN
- mytask:=NIL;
- mytask:=FindTask('Workbench'); { WB offen ??? }
- IF mytask=NIL THEN exit; { Nein: chio...}
- IconBase:=OpenLibrary('icon.library',37);
- IF IconBase=NIL THEN exit;
- workbenchbase:=OpenLibrary('workbench.library',37);
- IF workbenchbase=NIL THEN exit;
-
- idat1:=ptr(alloc_mem(sizeof(ifeld),2)); {Chip}
- idat1^:=ifeld(
- %000000000000000000000000000000,
- %111111111111111111111111111110,
- %100000000000000000000000000010,
- %100001111111110100001000000010,
- %100000000100000010010000000010,
- %100000000100000001100000000010,
- %100000000100000001100000000010,
- %100000000100000010010000000010,
- %100000000100000100001000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %100000000000000000000000000010,
- %111111111111111111111111111110,
- %000000000000000000000000000000,
-
- %000000000000000000000000000000,
- %000000000000000000000000000000,
- %011111111111111111111111111100,
- %011110000000001011110111111100,
- %011111111011111101101111111100,
- %011111111011111110011111111100,
- %011111111011111110011111111100,
- %011111111011111101101111111100,
- %011111111011111011110111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %011111111111111111111111111100,
- %000000000000000000000000000000,
- %000000000000000000000000000000);
-
- Image1:=image(0,0,32,24,2,idat1,3,0,nil);
- Gad:=Gadget(NIL,0,0,32,25,GADGIMAGE,GADGIMMEDIATE+
- RELVERIFY,BOOLGADGET,^Image1,NIL,NIL,0,NIl,0,NIL);
- dobj:=GetDefDiskObject(WBDISK);
- dobj^.do_Gadget:=Gad;
- myport:=CreateMsgPort;
- myappicon:=AddAppIconA(0,0,'Klick AppIcon',myport,NIL,dobj,NIL);
- ex:=false;
- REPEAT
- AppMsg:=wait_port(myport);
- AppMsg:=get_msg(myport);
- Reply_Msg(AppMsg);
- IF AppMsg^.am_NumArgs=0
- THEN ex:=true; {Doppelklick/aktiv}
- UNTIL ex;
- ex:=RemoveAppIcon(myAppIcon);
- FreeDiskObject(dobj);
- DeleteMsgPort(myport);
- END.
-
-