/* 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); }