/* -*-objc-*- NSCollectionView.h Copyright (C) 2013 Free Software Foundation, Inc. Author: Doug Simons (doug.simons@testplant.com) Frank LeGrand (frank.legrand@testplant.com) Date: February 2013 This file is part of the GNUstep GUI Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; see the file COPYING.LIB. If not, see or write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _GNUstep_H_NSCollectionView #define _GNUstep_H_NSCollectionView #import #import #import #import @class NSCollectionViewItem; @class NSCollectionView; enum { NSCollectionViewDropOn = 0, NSCollectionViewDropBefore = 1, }; typedef NSInteger NSCollectionViewDropOperation; @protocol NSCollectionViewDelegate - (NSImage *)collectionView:(NSCollectionView *)collectionView draggingImageForItemsAtIndexes:(NSIndexSet *)indexes withEvent:(NSEvent *)event offset:(NSPointPointer)dragImageOffset; - (BOOL)collectionView:(NSCollectionView *)collectionView writeItemsAtIndexes:(NSIndexSet *)indexes toPasteboard:(NSPasteboard *)pasteboard; - (BOOL)collectionView:(NSCollectionView *)collectionView canDragItemsAtIndexes:(NSIndexSet *)indexes withEvent:(NSEvent *)event; - (NSDragOperation)collectionView:(NSCollectionView *)collectionView validateDrop:(id < NSDraggingInfo >)draggingInfo proposedIndex:(NSInteger *)proposedDropIndex dropOperation:(NSCollectionViewDropOperation *)proposedDropOperation; - (BOOL)collectionView:(NSCollectionView *)collectionView acceptDrop:(id < NSDraggingInfo >)draggingInfo index:(NSInteger)index dropOperation:(NSCollectionViewDropOperation)dropOperation; - (NSArray *)collectionView:(NSCollectionView *)collectionView namesOfPromisedFilesDroppedAtDestination:(NSURL *)dropURL forDraggedItemsAtIndexes:(NSIndexSet *)indexes; @end @interface NSCollectionView : NSView { NSArray *_content; IBOutlet NSCollectionViewItem *itemPrototype; NSMutableArray *_items; BOOL _allowsMultipleSelection; BOOL _isSelectable; NSIndexSet *_selectionIndexes; NSArray *_backgroundColors; IBOutlet id delegate; NSSize _itemSize; NSSize _maxItemSize; NSSize _minItemSize; float _tileWidth; float _verticalMargin; float _horizontalMargin; NSUInteger _maxNumberOfColumns; NSUInteger _maxNumberOfRows; long _numberOfColumns; NSDragOperation _draggingSourceOperationMaskForLocal; NSDragOperation _draggingSourceOperationMaskForRemote; NSEvent *_mouseDownEvent; } - (BOOL)allowsMultipleSelection; - (void)setAllowsMultipleSelection:(BOOL)flag; - (NSArray *)backgroundColors; - (void)setBackgroundColors:(NSArray *)colors; - (NSArray *)content; - (void)setContent:(NSArray *)content; - (id < NSCollectionViewDelegate >)delegate; - (void)setDelegate:(id < NSCollectionViewDelegate >)aDelegate; - (NSCollectionViewItem *)itemPrototype; - (void)setItemPrototype:(NSCollectionViewItem *)prototype; - (BOOL)isFirstResponder; - (NSSize)maxItemSize; - (void)setMaxItemSize:(NSSize)size; - (NSUInteger)maxNumberOfColumns; - (void)setMaxNumberOfColumns:(NSUInteger)number; - (NSUInteger)maxNumberOfRows; - (void)setMaxNumberOfRows:(NSUInteger)number; - (NSSize)minItemSize; - (void)setMinItemSize:(NSSize)size; - (BOOL)isSelectable; - (void)setSelectable:(BOOL)flag; - (NSIndexSet *)selectionIndexes; - (void)setSelectionIndexes:(NSIndexSet *)indexes; - (NSRect)frameForItemAtIndex:(NSUInteger)index; - (NSCollectionViewItem *)itemAtIndex:(NSUInteger)index; - (NSCollectionViewItem *)newItemForRepresentedObject:(id)object; - (void)tile; - (void)setDraggingSourceOperationMask:(NSDragOperation)dragOperationMask forLocal:(BOOL)localDestination; - (NSImage *)draggingImageForItemsAtIndexes:(NSIndexSet *)indexes withEvent:(NSEvent *)event offset:(NSPointPointer)dragImageOffset; @end #endif /* _GNUstep_H_NSCollectionView */