Annotation of Examples/AppKit/Draw/GraphicView.h, revision 1.1

1.1     ! root        1: typedef enum { Normal, Resizing } DrawStatusType;
        !             2: typedef enum { LEFT = 1, RIGHT, BOTTOM, TOP, HORIZONTAL_CENTERS, VERTICAL_CENTERS, BASELINES } AlignmentType;
        !             3: 
        !             4: extern DrawStatusType DrawStatus;
        !             5: extern NXAtom DrawPboardType;
        !             6: extern BOOL InMsgPrint;
        !             7: 
        !             8: typedef enum { ByRect, ByGraphic, ByList } DrawSelectionType;
        !             9: 
        !            10: /* Update modes for links. */
        !            11: 
        !            12: #define UPDATE_NEVER 0
        !            13: #define UPDATE_IMMEDIATELY -1
        !            14: #define UPDATE_NORMALLY 1
        !            15: 
        !            16: @interface GraphicView : View
        !            17: {
        !            18:     List *glist;                       /* the list of Graphics */
        !            19:     List *slist;                       /* the list of selected Graphics. In 
        !            20:                                           Draw with undo we are very careful
        !            21:                                           to keep slist sorted, like glist */
        !            22:     Window *cacheWindow;               /* the off-screen cache */
        !            23:     struct {
        !            24: #ifdef __BIG_ENDIAN__
        !            25:        unsigned int groupInSlist:1;    /* whether a Group is in the slist */
        !            26:        unsigned int cacheing:1;        /* whether cacheing or drawing */
        !            27:        unsigned int suspendLinkUpdate:1; /* don't update links */
        !            28:        unsigned int grid:8;            /* grid size */
        !            29:        unsigned int showGrid:1;        /* whether grid is visible */
        !            30:        unsigned int locked:1;          /* some graphics are locked */
        !            31:        unsigned int gridDisabled:1;    /* whether grid is enabled */
        !            32:        unsigned int freeOriginalPaste:1;/* whether originalPaste needs free */
        !            33:        unsigned int serviceActsOnSelection:1;  /* whether service acts on selection */
        !            34: #else
        !            35:        unsigned int serviceActsOnSelection:1;  /* whether service acts on selection */
        !            36:        unsigned int freeOriginalPaste:1;/* whether originalPaste needs free */
        !            37:        unsigned int gridDisabled:1;    /* whether grid is enabled */
        !            38:        unsigned int locked:1;          /* some graphics are locked */
        !            39:        unsigned int showGrid:1;        /* whether grid is visible */
        !            40:        unsigned int grid:8;            /* grid size */
        !            41:        unsigned int suspendLinkUpdate:1; /* don't update links */
        !            42:        unsigned int cacheing:1;        /* whether cacheing or drawing */
        !            43:        unsigned int groupInSlist:1;    /* whether a Group is in the slist */
        !            44: #endif
        !            45: // These last 16 bits are NOT archived, so don't depend on them being permanent across a Save/Open
        !            46:        unsigned int selectAll:1;       /* select all was last select operation performed */
        !            47:        unsigned int dragCopyOk:1;      /* true if dragging with sourcMask == copy is ok */
        !            48:        unsigned int dragLinkOk:1;      /* true if dragging with sourcMask == link is ok */
        !            49:        unsigned int padding:13;
        !            50:     } gvFlags;
        !            51:     short *gupCoords;                  /* points in the grid user path */
        !            52:     int gupLength;                     /* number of points in gupCoords */
        !            53:     char *gupOps;                      /* movetos and linetos in the gup */
        !            54:     short *gupBBox;                    /* bounding box of the gup */
        !            55:     float gridGray;                    /* grayness of the grid */
        !            56:     int consecutivePastes;             /* number of consecutive pastes */
        !            57:     int lastPastedChangeCount;         /* the change count of last paste */
        !            58:     int lastCopiedChangeCount;         /* the change count of last cut or copy */
        !            59:     int lastCutChangeCount;            /* the change count of last cut */
        !            60:     View *editView;                    /* flipped subview for editing */
        !            61:     Graphic *originalPaste;            /* the first pasted graphic */
        !            62:     NXDataLinkManager *linkManager;    /* manager of data links */
        !            63:     NXRect *invalidRect;               /* invalid area which must be cleaned up */
        !            64:     NXRect *dragRect;                  /* last rectangle we dragged out to select */
        !            65:     Storage *linkTrackingRects;                /* the rects of the links we are tracking */
        !            66: }
        !            67: 
        !            68: /* Class initialization */
        !            69: 
        !            70: + initialize;
        !            71: 
        !            72: /* Alignment methods */
        !            73: 
        !            74: + (SEL)actionFromAlignType:(AlignmentType)alignType;
        !            75: 
        !            76: /* Creation methods */
        !            77: 
        !            78: - initFrame:(const NXRect *)frameRect;
        !            79: 
        !            80: /* Free method */
        !            81: 
        !            82: - free;
        !            83: 
        !            84: /* Public methods */
        !            85: 
        !            86: - (BOOL)isEmpty;
        !            87: - (BOOL)hasEmptySelection;
        !            88: - dirty;
        !            89: - getSelection;
        !            90: - setGroupInSlist:(BOOL)setting;
        !            91: - resetGroupInSlist;
        !            92: - resetLockedFlag;
        !            93: - getBBox:(NXRect *)bbox of:(List *)list;
        !            94: - getBBox:(NXRect *)bbox of:(List *)list extended:(BOOL)flag;
        !            95: 
        !            96: - redrawGraphics:graphicsList afterChangeAgent:changeAgent performs:(SEL)aSelector;
        !            97: - graphicsPerform:(SEL)aSelector;
        !            98: - graphicsPerform:(SEL)aSelector with:(void *)argument;
        !            99: 
        !           100: - cache:(const NXRect *)rect;
        !           101: - cache:(const NXRect *)rect andUpdateLinks:(BOOL)updateLinks;
        !           102: - recacheSelection;
        !           103: - createCacheWindow:(Window *)cacheWindow;
        !           104: - selectionCache;
        !           105: - (int)cacheSelection;
        !           106: - (int)cacheList:(List *)list into:(Window *)cacheWindow withTransparentBackground:(BOOL)flag;
        !           107: - (int)cacheList:(List *)list into:(Window *)cacheWindow;
        !           108: - cacheGraphic:(Graphic *)graphic;
        !           109: 
        !           110: - removeGraphic:(Graphic *)graphic;
        !           111: - insertGraphic:(Graphic *)graphic;
        !           112: - (Graphic *)selectedGraphic;
        !           113: - (List *)selectedGraphics;
        !           114: - (List *)graphics;
        !           115: 
        !           116: - (int)gridSpacing;
        !           117: - (BOOL)gridIsVisible;
        !           118: - (BOOL)gridIsEnabled;
        !           119: - (float)gridGray;
        !           120: - setGridSpacing:(int)gridSpacing;
        !           121: - setGridEnabled:(BOOL)flag;
        !           122: - setGridVisible:(BOOL)flag;
        !           123: - setGridGray:(float)gray;
        !           124: - setGridSpacing:(int)gridSpacing andGray:(float)gray;
        !           125: - grid:(NXPoint *)point;
        !           126: 
        !           127: - placeGraphic:(Graphic *)graphic at:(const NXPoint *)location;
        !           128: 
        !           129: /* Methods overridden from superclass */
        !           130: 
        !           131: - sizeTo:(NXCoord)width :(NXCoord)height;
        !           132: - mouseDown:(NXEvent *)event;
        !           133: - drawSelf:(const NXRect *)rects :(int)rectCount;
        !           134: - keyDown:(NXEvent *)event;
        !           135: 
        !           136: /* Getting/Setting the current Graphic */
        !           137: 
        !           138: - (Graphic *)currentGraphic;
        !           139: - setCurrentGraphic:sender;
        !           140: 
        !           141: /* Writing Draw Forms */
        !           142: 
        !           143: - (BOOL)hasFormEntries;
        !           144: - writeFormEntriesToFile:(const char *)filename;
        !           145: 
        !           146: /* Target/Action methods */
        !           147: 
        !           148: - delete:sender;
        !           149: - selectAll:sender;
        !           150: - deselectAll:sender;
        !           151: - lock:sender;
        !           152: - unlock:sender;
        !           153: - bringToFront:sender;
        !           154: - sendToBack:sender;
        !           155: - group:sender;
        !           156: - ungroup:sender;
        !           157: - align:sender;
        !           158: - changeAspectRatio:sender;
        !           159: - alignToGrid:sender;
        !           160: - sizeToGrid:sender;
        !           161: - enableGrid:sender;
        !           162: - hideGrid:sender;
        !           163: - addCoverSheetEntry:sender;
        !           164: - addLocalizableCoverSheetEntry:sender;
        !           165: 
        !           166: /* Target/Action messages sent from Controls to set various parameters */
        !           167: 
        !           168: - takeGridValueFrom:sender;
        !           169: - takeGridGrayFrom:sender;
        !           170: - takeGrayValueFrom:sender;
        !           171: - takeLineWidthFrom:sender;
        !           172: - takeLineJoinFrom:sender;
        !           173: - takeLineCapFrom:sender;
        !           174: - takeLineArrowFrom:sender;
        !           175: - takeFillValueFrom:sender;
        !           176: - takeFrameValueFrom:sender;
        !           177: - takeLineColorFrom:sender;
        !           178: - takeFillColorFrom:sender;
        !           179: - takeFormEntryStatusFrom:sender;
        !           180: 
        !           181: - changeFont:sender;
        !           182: 
        !           183: /* Accepting becoming the First Responder */
        !           184: 
        !           185: - (BOOL)acceptsFirstResponder;
        !           186: 
        !           187: /* Printing-related methods */
        !           188: 
        !           189: - beginSetup;
        !           190: 
        !           191: /* Archiving methods */
        !           192: 
        !           193: - awake;
        !           194: - write:(NXTypedStream *)stream;
        !           195: - read:(NXTypedStream *)stream;
        !           196: 
        !           197: /* Validates whether a menu command makes sense now */
        !           198: 
        !           199: - (BOOL)validateCommand:(MenuCell *)menuCell;
        !           200: 
        !           201: /* Useful scrolling methods */
        !           202: 
        !           203: - scrollGraphicToVisible:(Graphic *)graphic;
        !           204: - scrollPointToVisible:(const NXPoint *)point;
        !           205: - scrollSelectionToVisible;
        !           206: 
        !           207: @end
        !           208: 
        !           209: /* Pasteboard */
        !           210: 
        !           211: typedef enum { LinkOnly = -1, DontLink = 0, Link = 1 } LinkType;
        !           212: 
        !           213: @interface GraphicView(Pasteboard)
        !           214: 
        !           215: #define NUM_TYPES_DRAW_EXPORTS 3
        !           216: 
        !           217: extern NXAtom *TypesDrawExports(void);
        !           218: extern NXAtom DrawPasteType(const NXAtom *types);
        !           219: extern NXAtom ForeignPasteType(const NXAtom *types);
        !           220: extern NXAtom TextPasteType(const NXAtom *types);
        !           221: extern BOOL IncludesType(const NXAtom *types, NXAtom type);
        !           222: extern NXAtom MatchTypes(const NXAtom *typesToMatch, const NXAtom *orderedTypes);
        !           223: 
        !           224: + convert:(NXTypedStream *)ts to:(const char *)type using:(SEL)writer toPasteboard:(Pasteboard *)pb;
        !           225: + pasteboard:(Pasteboard *)sender provideData:(const char *)type;
        !           226: 
        !           227: - writePSToStream:(NXStream *)stream;
        !           228: - writePSToStream:(NXStream *)stream usingList:(List *)aList;
        !           229: - writeTIFFToStream:(NXStream *)stream;
        !           230: - writeTIFFToStream:(NXStream *)stream usingList:(List *)aList;
        !           231: 
        !           232: - copySelectionAsPSToStream:(NXStream *)stream;
        !           233: - copySelectionAsTIFFToStream:(NXStream *)stream;
        !           234: - copySelectionToStream:(NXStream *)stream;
        !           235: 
        !           236: - copyToPasteboard:(Pasteboard *)pboard types:(NXAtom *)types;
        !           237: - copyToPasteboard:(Pasteboard *)pboard;
        !           238: - (BOOL)pasteForeignDataFromPasteboard:(Pasteboard *)pboard andLink:(LinkType)doLink at:(const NXPoint *)point;
        !           239: - pasteFromPasteboard:(Pasteboard *)pboard andLink:(LinkType)doLink at:(const NXPoint *)point;
        !           240: - paste:sender andLink:(LinkType)doLink;
        !           241: - cut:sender;
        !           242: - copy:sender;
        !           243: - paste:sender;
        !           244: - pasteAndLink:sender;
        !           245: 
        !           246: @end
        !           247: 
        !           248: /* Data link methods */
        !           249: 
        !           250: @interface GraphicView(Links)
        !           251: 
        !           252: - (NXSelection *)currentSelection;
        !           253: - (Graphic *)findGraphicInSelection:(NXSelection *)selection;
        !           254: - (List *)findGraphicsInSelection:(NXSelection *)selection;
        !           255: 
        !           256: - writeLinkToPasteboard:(Pasteboard *)pboard types:(const NXAtom *)typesList;
        !           257: - (BOOL)addLink:(NXDataLink *)link toGraphic:(Graphic *)graphic at:(const NXPoint *)p update:(int)update;
        !           258: 
        !           259: - pasteFromPasteboard:(Pasteboard *)pboard at:(NXSelection *)selection;
        !           260: - importFile:(const char *)filename at:(NXSelection *)selection;
        !           261: - pasteboard:(Pasteboard *)sender provideData:(const char *)type;
        !           262: - copyToPasteboard:(Pasteboard *)pboard at:(NXSelection *)selection cheapCopyAllowed:(BOOL)cheapCopyAllowed;
        !           263: 
        !           264: - updateLinksPanel;
        !           265: - (NXDataLinkManager *)linkManager;
        !           266: - setLinkManager:(NXDataLinkManager *)linkManager;
        !           267: - showSelection:(NXSelection *)selection;
        !           268: - breakLinkAndRedrawOutlines:(NXDataLink *)aLink;
        !           269: - updateTrackedLinks:(const NXRect *)rect;
        !           270: - startTrackingLink:(NXDataLink *)link;
        !           271: - stopTrackingLink:(NXDataLink *)link;
        !           272: 
        !           273: @end
        !           274: 
        !           275: /* Dragging */
        !           276: 
        !           277: @interface GraphicView(Drag)
        !           278: 
        !           279: - registerForDragging;
        !           280: - (NXDragOperation)draggingEntered:(id <NXDraggingInfo>)sender;
        !           281: - (NXDragOperation)draggingUpdated:(id <NXDraggingInfo>)sender;
        !           282: - (BOOL)performDragOperation:(id <NXDraggingInfo>)sender;
        !           283: 
        !           284: @end
        !           285: 
        !           286: /* Services Menu */
        !           287: 
        !           288: @interface GraphicView(Services)
        !           289: 
        !           290: - validRequestorForSendType:(NXAtom)sendType andReturnType:(NXAtom)returnType;
        !           291: - (BOOL)writeSelectionToPasteboard:(Pasteboard *)pboard types:(NXAtom *)types;
        !           292: - readSelectionFromPasteboard:(Pasteboard *)pboard;
        !           293: 
        !           294: @end
        !           295: 
        !           296: /*
        !           297:  * Since we can't be sure that we have an InspectorPanel, we use the
        !           298:  * objective-C respondsTo: mechanism to see if we can send the message
        !           299:  * initializeGraphic: to [NXApp inspectorPanel].  This dummy interface
        !           300:  * declaration declares those messages (so that even if they don't exists,
        !           301:  * we can at least use them to check with respondsTo:).  We don't want
        !           302:  * to import DrawApp.h or InspectorPanel.h since we might accidentally
        !           303:  * introduce a dependency on them which wouldn't be caught because we
        !           304:  * imported both of their interfaces.
        !           305:  */
        !           306: 
        !           307: @interface PossibleInspectorPanel : Object
        !           308: 
        !           309: - inspectorPanel;
        !           310: - initializeGraphic:(Graphic *)graphic;
        !           311: 
        !           312: @end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.