home *** CD-ROM | disk | FTP | other *** search
-
- /*
- Copyright 1993 Jeremy Slade. All rights reserved.
- */
-
- /*
- Project: Locus
-
- Class: Group
-
- Description:
- [ FULL DESCRIPTION ]
-
- Original Author: Jeremy Slade
-
- Revision History:
- Created
- V.101 JGS Mon Feb 8 22:09:29 GMT-0700 1993
-
- */
-
-
- #ifndef Group_h
- #define Group_h
-
- #define Group_VERSION (101)
-
-
- #import <objc/List.h>
- #import <ctype.h> // For isDigit()
- #import "Folder.h"
- #import "ItemCell.h"
-
-
- // Legal keys for keyEquivalent ----------------------------------------------
- // Right now, commandKey: events are automatically sent to
- // the KeyWindow, and then to the MainWindow, before being
- // processed by everything else, such as the menus. So, all keys
- // are valid key equivalents
- #define isGoodKeyEq(c) (isgraph(c)) // All printing chars, including space
-
-
- @interface Group : List
- {
- char *groupName;
- int tag; // Unique ident within a folder -- Assigned by folder
- unsigned short keyEquivalent;
-
- DrawInfo drawInfo;
-
- BOOL isChanged;
- BOOL needsSort;
- BOOL restrictTypes;
- BOOL sortItems;
-
- id typesList; // AtomList of allowed file types for this group
-
- id dynamicItemSpecs; // List of the DynamicItemSpecs
- float dynamicUpdateInterval; // Interval between dynamic updates (in secs)
- DPSTimedEntry updateTE; // TimedEntry for performing updates
-
- char *filter; // Display filter epxression -- currently unused
- char *defaultPath; // Default Path this group is associated with
-
- id folder;
-
- }
-
- // Creating, initializing methods
- + initialize;
- + new;
- - init;
- - initCount:(unsigned int)numSlots;
- - free;
-
- // Naming Group
- - setGroupName:(const char *)aString;
- - (const char *)groupName;
-
- // Group tag
- - setTag:(int)aTag;
- - (int)tag;
-
- // Setting general attributes
- - setKeyEquivalent:(unsigned short)charCode;
- - setDefaultPath:(const char *)fullpath;
- - setSortItems:(BOOL)flag;
- - (unsigned short)keyEquivalent;
- - (const char *)defaultPath;
- - (BOOL)doesSortItems;
-
- // Setting Drawing attributes
- - setDrawMode:(int)aMode;
- - (int)drawMode;
- - setDrawActualImage:(BOOL)flag;
- - (BOOL)doesDrawActualImage;
- - setDrawTriDots:(BOOL)flag;
- - (BOOL)doesDrawTriDots;
- - setDrawInfoLine1:(BOOL)flag;
- - (BOOL)doesDrawInfoLine1;
- - setDrawInfoLine2:(BOOL)flag;
- - (BOOL)doesDrawInfoLine2;
- - setLBNameMode:(int)mode;
- - (int)lbNameMode;
- - setDrawSmallIcons:(BOOL)flag;
- - (BOOL)doesDrawSmallIcons;
- - setSBNameMode:(int)mode;
- - (int)sbNameMode;
- - setLIDrawName:(BOOL)flag;
- - (BOOL)liDoesDrawName;
- - setSIDrawName:(BOOL)flag;
- - (BOOL)siDoesDrawName;
- - getDrawInfo:(DrawInfo *)info;
-
- // Allowed File Types
- - addAllowedType:(const char *)anExt;
- - removeAllowedType:(const char *)anExt;
- - setRestrictTypes:(BOOL)flag;
- - (const char **)allowedTypes;
- - (BOOL)doesRestrictTypes;
- - (BOOL)isAllowedType:(const char *)path;
-
- // Adding items
- - addItem:(const char *)path;
- - (BOOL)itemExists:(const char *)path;
- - itemMatching:(const char *)path;
- - cleanUp:sender;
-
- // Sorting Items
- - sortItems;
- - explicitSortItems:sender;
-
- // Making selection
- - selectItem:sender;
- - selectAll:sender;
- - selection;
- - selectionList;
- - (int)selectionCount;
-
- // Acting on items
- - launchSelectedItems:sender;
- - removeSelectedItems:sender;
- - copyItemToPboard:sender;
-
- // Folder
- - setFolder:aFolder;
- - folder;
- - setChanged:(BOOL)flag;
- - (BOOL)isChanged;
- - setNeedsShow:(BOOL)flag;
- - (BOOL)needsShow;
-
- // Archiving
- - awake;
- - read:(NXTypedStream *)stream;
- - write:(NXTypedStream *)stream;
- - writeSelf;
- - (const char *)getGroupFilename;
-
- @end
-
- #endif // Group_h
-