mirror of
https://github.com/gnustep/apps-gorm.git
synced 2025-02-23 03:31:01 +00:00
106 lines
3.2 KiB
Objective-C
106 lines
3.2 KiB
Objective-C
/*
|
|
GormOutlineView.h
|
|
|
|
The outline class.
|
|
|
|
Copyright (C) 2001 Free Software Foundation, Inc.
|
|
|
|
Author: Gregory John Casamento <greg_casamento@yahoo.com>
|
|
Date: July 2002
|
|
|
|
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 Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 3 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
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public
|
|
License along with this library; see the file COPYING.LIB.
|
|
If not, write to the Free Software Foundation,
|
|
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#ifndef INCLUDED_GormOutlineView_h
|
|
#define INCLUDED_GormOutlineView_h
|
|
|
|
#include <Foundation/Foundation.h>
|
|
#include <AppKit/AppKit.h>
|
|
|
|
@class NSTableColumn;
|
|
@class NSMenuItem;
|
|
|
|
typedef enum {None, Outlets, Actions} GSAttributeType;
|
|
|
|
@interface GormOutlineView : NSOutlineView
|
|
{
|
|
float _attributeOffset;
|
|
BOOL _isEditing;
|
|
id _itemBeingEdited;
|
|
NSTableColumn *_actionColumn;
|
|
NSTableColumn *_outletColumn;
|
|
GSAttributeType _edittype;
|
|
NSMenuItem *_menuItem;
|
|
}
|
|
|
|
// Instance methods
|
|
- (float)attributeOffset;
|
|
- (void)setAttributeOffset: (float)offset;
|
|
- (id) itemBeingEdited;
|
|
- (void) setItemBeingEdited: (id)item;
|
|
- (BOOL) isEditing;
|
|
- (void) setIsEditing: (BOOL)flag;
|
|
- (NSTableColumn *)actionColumn;
|
|
- (void) setActionColumn: (NSTableColumn *)ac;
|
|
- (NSTableColumn *)outletColumn;
|
|
- (void) setOutletColumn: (NSTableColumn *)oc;
|
|
- (NSMenuItem *)menuItem;
|
|
- (void) setMenuItem: (NSMenuItem *)item;
|
|
- (GSAttributeType)editType;
|
|
- (void) removeItemAtRow: (int)row;
|
|
- (void) reset;
|
|
- (void) selectRow: (int)rowIndex;
|
|
@end /* interface of GormOutlineView */
|
|
|
|
// informal protocol to define necessary methods on
|
|
// GormOutlineView's data source to make information
|
|
// about the class which was selected...
|
|
@interface NSObject (GormOutlineViewDataSource)
|
|
- (NSArray *) outlineView: (GormOutlineView *)ov
|
|
actionsForItem: (id)item;
|
|
- (NSArray *) outlineView: (GormOutlineView *)ov
|
|
outletsForItem: (id)item;
|
|
- (void)outlineView: (NSOutlineView *)anOutlineView
|
|
addAction: (NSString *)action
|
|
forClass: (id)item;
|
|
- (void)outlineView: (NSOutlineView *)anOutlineView
|
|
addOutlet: (NSString *)outlet
|
|
forClass: (id)item;
|
|
- (NSString *)outlineView: (NSOutlineView *)anOutlineView
|
|
addNewActionForClass: (id)item;
|
|
- (NSString *)outlineView: (NSOutlineView *)anOutlineView
|
|
addNewOutletForClass: (id)item;
|
|
@end
|
|
|
|
@interface NSObject (GormOutlineViewDelegate)
|
|
- (BOOL) outlineView: (GormOutlineView *)ov
|
|
shouldDeleteItem: (id)item;
|
|
@end
|
|
|
|
// a class to hold the outlet/actions so that the
|
|
// draw row method will know how to render them on
|
|
// the display...
|
|
@interface GormOutletActionHolder : NSObject
|
|
{
|
|
NSString *_name;
|
|
}
|
|
- initWithName: (NSString *)name;
|
|
- (NSString *)getName;
|
|
- (void)setName: (NSString *)name;
|
|
@end
|
|
#endif /* _GNUstep_H_GormOutlineView */
|