/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* SetWindow - Set the ToolWindow for an ICON */ /* (c) Copyright 1986 John A. Toebes, VIII All rights reserved */ /* 120-H Northington Place, Cary NC 27511 (919) 469-4210 */ /* This program may be used and modified for any purpose so long as */ /* this copyright notice remains with the code and the program is not */ /* sold and no charge is made for its use. */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* To use: 1) Compile and link as any other program 2) Issue command to modify whatever Icon you wish to SetWindow */ #include #include #include #include #include int IconBase; extern struct WBStartup *WBenchMsg; main(argc,argv) int argc; char *argv[]; { struct DiskObject *diskobj, *GetDiskObject(); char *savewindow; /* make sure we ran from CLI */ if (argc == 0) exit(1); /* make sure we have enough parms */ if (argc != 2 && argc != 3) { printf("Usage: %s []\n", argv[0]); exit(2); } if ( (IconBase = OpenLibrary( ICONNAME, 1)) == NULL) exit(2); /* get the icon from disk */ if ( (diskobj = GetDiskObject(argv[1])) == NULL) { printf("Cannot read icon for %s\n", argv[1]); CloseLibrary( IconBase ); exit(3); } /* remember what the previous window was */ savewindow = diskobj->do_ToolWindow; /* set it to what was requested */ diskobj->do_ToolWindow = (argc > 2) ? argv[2] : NULL; /* write the corrected ICON to disk */ if (!PutDiskObject( argv[1], diskobj)) printf("Cannot write new icon - code %d\n", IoErr() ); /* restore the oldwindow and free the object */ diskobj->do_ToolWindow = savewindow; FreeDiskObject( diskobj ); CloseLibrary( IconBase ); }