home *** CD-ROM | disk | FTP | other *** search
- /* prf_apphandler.c */
- /* V1.1 9-3-92 */
-
- #include "prf.h"
-
- UWORD chip iconI1Data[] =
- {
- /* Plane 0 */
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x1000,0x0000,0x0020,0x0000,0x0000,0x007F,
- 0xF000,0x0000,0x0000,0x0000,0x1002,0x0000,0x0020,0x0000,
- 0x0000,0x00CB,0xE000,0x0000,0x0000,0x0000,0x1000,0x0000,
- 0x0020,0x0000,0x0000,0x00FB,0xBA04,0x0000,0x0000,0x0000,
- 0x1000,0x0000,0x0020,0x0000,0x0000,0x00DE,0x6F00,0x0000,
- 0x0000,0x0000,0x1000,0x0000,0x0020,0x0000,0x0000,0x00B0,
- 0x0000,0x0000,0x0000,0x0000,0x1000,0x0000,0x0020,0x0000,
- 0x0000,0x00C1,0x17BE,0x3000,0x0000,0x0000,0x10E1,0x8000,
- 0x0020,0x0000,0x0000,0x0012,0x1C00,0x0000,0x0000,0x0000,
- 0x1000,0x0000,0x0020,0x0000,0x003F,0xFFFF,0xFFFF,0xFFFF,
- 0xF000,0x00FF,0xFFFF,0xFFFE,0xE077,0xFF80,0x00FF,0xFFFF,
- 0xFFFD,0x5EE9,0xFF80,0x00FF,0xFFFF,0xFFFF,0xF7FF,0xFF80,
- 0x00FF,0xFFFF,0xFFFF,0xDFFF,0xFF80,0x00FF,0xFFFF,0xFFFF,
- 0xFFFF,0xFC00,0x01FF,0xFFFF,0xFFFF,0xFFFF,0xFC00,0x02FF,
- 0xFFFF,0xFFFF,0xFFFF,0xFC00,0x033E,0x0000,0x0000,0x0003,
- 0xE000,0x00F0,0x0000,0x0000,0x0000,0x0000,0x000C,0x0000,
- 0x0000,0x0000,0x0000,0x0018,0x0000,0x0000,0x0000,0x0000,
- 0x0060,0x0000,0x0000,0x0000,0x0000,0xFF80,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,
- /* Plane 1 */
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x2FFF,0xFFFF,0xFFD0,0x0000,0x0000,0x3F80,
- 0x0FFF,0xFFF0,0x0000,0x0000,0x2FFD,0xFFFF,0xFFD0,0x0000,
- 0x0000,0x3F34,0x1FFF,0xFFF0,0x0000,0x0000,0x2FFF,0xFFFF,
- 0xFFD0,0x0000,0x0000,0x3F04,0x45FB,0xFFF0,0x0000,0x0000,
- 0x2FFF,0xFFFF,0xFFD0,0x0000,0x0000,0x3F21,0x90FF,0xFFF0,
- 0x0000,0x0000,0x2FFF,0xFFFF,0xFFD0,0x0000,0x0000,0x3F4F,
- 0xFFFF,0xFFF0,0x0000,0x0000,0x2FFF,0xFFFF,0xFFD0,0x0000,
- 0x0000,0x3F3E,0xE841,0xCFF0,0x0000,0x0000,0x2F1E,0x7FFF,
- 0xFFD0,0x0000,0x0000,0x3FED,0xE3FF,0xFFF0,0x0000,0x0000,
- 0x2FFF,0xFFFF,0xFFD0,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0001,0x1F88,0x0780,0x0000,0x0000,
- 0x0002,0xA116,0x0780,0x0000,0x0000,0x0000,0x0800,0x0780,
- 0x0000,0x0000,0x0000,0x2000,0x0780,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0700,0x0000,
- 0x0000,0x0000,0x0000,0x7FE0,0x0000,0x0000,0x0000,0x0003,
- 0xFFFC,0x0000,0x0000,0x0000,0x001F,0xFFFF,0x8000,0x0000,
- 0x0000,0x01FF,0xFFFF,0xF000,0x0000,0x0000,0x0FFF,0xFFFF,
- 0xFE00,0x0000,0x0000,0x3FFF,0xFFFF,0xFF80,0x0000,0x0000,
- 0x001F,0xFFFF,0x8000,0x0000,0x0000,0x001F,0xFFFF,0x8000,
- 0x0000,0x0000,0x001F,0xFFFF,0x8000,0x0000,0x0000,0x001F,
- 0xFFFF,0x8000,0x0000,
- /* Plane 2 */
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0003,0x8000,0x0000,0x0000,0x0000,0x0003,0x8000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0700,0x0000,
- 0x0000,0x0000,0x0000,0x7FE0,0x0000,0x0000,0x0000,0x0003,
- 0xFFFC,0x0000,0x0000,0x0000,0x001F,0xFFFF,0x8000,0x0000,
- 0x0000,0x01FF,0xFFFF,0xF000,0x0000,0x0000,0x0FFF,0xFFFF,
- 0xFE00,0x0000,0x0000,0x3FFF,0xFFFF,0xFF80,0x0000,0x0000,
- 0x001F,0xFFFF,0x8000,0x0000,0x0000,0x001F,0xFFFF,0x8000,
- 0x0000,0x0000,0x001F,0xFFFF,0x8000,0x0000,0x0000,0x001F,
- 0xFFFF,0x8000,0x0000,
- };
-
- struct Image iconI1 =
- {
- 0, 0, /* Upper left corner */
- 73, 39, 3, /* Width, Height, Depth */
- iconI1Data, /* Image data */
- 0x0007, 0x0000, /* PlanePick, PlaneOnOff */
- NULL /* Next image */
- };
-
- struct DiskObject icon =
- {
- WB_DISKMAGIC, /* Magic Number */
- WB_DISKVERSION, /* Version */
- { /* Embedded Gadget Structure */
- NULL, /* Next Gadget Pointer */
- 0, 0, 73, 40, /* Left,Top,Width,Height */
- GADGIMAGE | GADGHCOMP, /* Flags */
- RELVERIFY, /* Activation Flags */
- BOOLGADGET, /* Gadget Type */
- (APTR)&iconI1, /* Render Image */
- NULL, /* Select Image */
- NULL, /* Gadget Text */
- NULL, /* Mutual Exclude */
- NULL, /* Special Info */
- 0, /* Gadget ID */
- NULL, /* User Data */
- },
- WBTOOL, /* Icon Type */
- NULL, /* Default Tool */
- NULL, /* Tool Type Array */
- NO_ICON_POSITION, /* Current X */
- NO_ICON_POSITION, /* Current Y */
- NULL, /* Drawer Structure */
- NULL, /* Tool Window */
- 0 /* Stack Size */
- };
-
- long OpenApp(struct prf_info *info)
- {
- if(info->appPort = CreateMsgPort())
- {
- info->appPort->mp_Node.ln_Pri = 0;
- if(info->amenu = AddAppMenuItem(0,0,(UBYTE *)T_MENUITEM,info->appPort,TAG_DONE))
- {
- if(info->aicon = AddAppIcon(0,0,(UBYTE *)T_APPICON,info->appPort,NULL,&icon,TAG_END))
- {
- return ((long)TRUE);
- }
- }
- }
- return ((long)FALSE);
- }
-
- void CloseApp(struct prf_info *info)
- {
- if(info->appPort)
- {
- if(info->aWnd) RemoveAppWindow(info->aWnd);
- if(info->amenu) RemoveAppMenuItem(info->amenu);
- if(info->aicon) RemoveAppIcon(info->aicon);
- while(info->amsg = (struct AppMessage *)GetMsg(info->appPort))
- ReplyMsg((struct Message *)info->amsg);
- DeleteMsgPort(info->appPort);
- }
- }
-
- void ChangeApp(struct prf_info *info)
- {
- if(!info->Swd)
- {
- if(OpenSwd(info))
- {
- info->aWnd = AddAppWindow(0,0,info->Swd,info->appPort,TAG_DONE);
- }
- }
- else
- {
- if(info->aWnd)
- {
- RemoveAppWindow(info->aWnd);
- info->aWnd = NULL;
- }
- CloseSwd(info);
- }
- }
-
- long HandleAmsg(struct prf_info *info)
- {
- ULONG i;
- UBYTE f[256];
- long rc = CMD_NEUTRAL;
- switch(info->amsg->am_Type)
- {
- case MTYPE_APPICON : if(info->amsg->am_NumArgs != 0)
- {
- for(i = 0; i < info->amsg->am_NumArgs;i++)
- {
- long cmd = CMD_INSERTTAIL;
- NameFromLock(info->amsg->am_ArgList[i].wa_Lock,f,256);
- AddPart(f,info->amsg->am_ArgList[i].wa_Name,256);
- info->Special1 = (APTR)f;
- info->Special2 = (APTR)&cmd;
- InsertName(info);
- info->Special1 = NULL;
- info->Special2 = NULL;
- }
- if(!(info->Swd))rc = CMD_PRINT;
- else rc = CMD_NEUTRAL;
- }
- else
- rc = CMD_CHANGEAPP;
- break;
- case MTYPE_APPWINDOW : for(i = 0; i < info->amsg->am_NumArgs;i++)
- {
- long cmd = CMD_INSERTTAIL;
- NameFromLock(info->amsg->am_ArgList[i].wa_Lock,f,256);
- AddPart(f,info->amsg->am_ArgList[i].wa_Name,256);
- info->Special1 = (APTR)f;
- info->Special2 = (APTR)&cmd;
- InsertName(info);
- info->Special1 = NULL;
- info->Special2 = NULL;
- }
- rc = CMD_NEUTRAL;
- break;
- case MTYPE_APPMENUITEM : rc = CMD_CHANGEAPP;
- break;
- default : rc = CMD_NEUTRAL;
- break;
- }
- return (rc);
- }
-
-