ClassInformation.plist

GNUmakefile
GormDocument.m
GormPrivate.h GormWindowEditor.m
Palettes/3Containers/GNUmakefile
Palettes/3Containers/GormNSTableView.m
Palettes/3Containers/GormNSTableView.h
Palettes/3Containers/inspectors.m
GormTableViewEditor.m
Palettes/3Containers/GormTableColumnInspector.gorm
Palettes/3Containers/GormTableColumnInspector.classes
Palettes/3Containers/GormTableColumnSizeInspector.gorm
Palettes/3Containers/GormTableColumnSizeInspector.classes


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@13270 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Pierre-Yves Rivaille 2002-03-29 16:30:01 +00:00
parent af63d0b288
commit 1ff190361e
15 changed files with 2508 additions and 328 deletions

View file

@ -1,3 +1,33 @@
2002-03-29 Pierre-Yves Rivaille <pyrivail@ens-lyon.fr>
* GormDocument.m ([GormDocument -windowAndRect:forObject:]):
support for NSTableColumn objects.
* GormDocument.m ([GormDocument -attachObject:toParent]):
when attaching a NSTableView, attach its tableColumns too.
* GormWindowEditor.m ([GormWindowEditor mouseDown:])
opens GormTableViewEditor when needed.
* GormWindowEditor.m
bestKnownSuperview() does now take a second argument which is
a point (it was needed for NSTableColumn support).
* GormTableViewEditor.m
new files.
* GNUMakefile : add GormTableViewEditor.m
* GormPrivate.h
interface for GormTableViewEditor
* ClassInformation.plist
new version provided by Jeff Teunissen.
* Palettes/3Containers/GNUMakefile
* Palettes/3Containers/inspectors
* Palettes/3Containers/GormTableColumnInspector.classes
* Palettes/3Containers/GormTableColumnInspector.gorm
* Palettes/3Containers/GormTableColumnSizeInspector.classes
* Palettes/3Containers/GormTableColumnSizeInspector.gorm
support for NSTableColumn inspector
* Palettes/3Containers/GormNSTableView.m
* Palettes/3Containers/GormNSTableView.h
various update of GormNSTableView.
2002-03-26 Pierre-Yves Rivaille <pyrivail@ens-lyon.fr>
* GormDocument.m ([GormDocument -init]):

View file

@ -1,409 +1,609 @@
{
FirstResponder = {
Actions = (
activateContextHelpMode:,
alignCenter:,
alignJustified:,
alignLeft:,
alignRight:,
arrangeInFront:,
cancel:,
capitalizeWord:,
changeColor:,
changeFont:,
checkSpelling:,
close:,
complete:,
copy:,
copyFont:,
copyRuler:,
cut:,
delete:,
deleteBackward:,
deleteForward:,
deleteToBeginningOfLine:,
deleteToBeginningOfParagraph:,
deleteToEndOfLine:,
deleteToEndOfParagraph:,
deleteToMark:,
deleteWordBackward:,
deleteWordForward:,
deminiaturize:,
deselectAll:,
fax:,
hide:,
hideOtherApplications:,
indent:,
loosenKerning:,
lowerBaseline:,
lowercaseWord:,
makeKeyAndOrderFront:,
miniaturize:,
miniaturizeAll:,
moveBackward:,
moveBackwardAndModifySelection:,
moveDown:,
moveDownAndModifySelection:,
moveForward:,
moveForwardAndModifySelection:,
moveLeft:,
moveRight:,
moveToBeginningOfDocument:,
moveToBeginningOfLine:,
moveToBeginningOfParagraph:,
moveToEndOfDocument:,
moveToEndOfLine:,
moveToEndOfParagraph:,
moveUp:,
moveUpAndModifySelection:,
moveWordBackward:,
moveWordBackwardAndModifySelection:,
moveWordForward:,
moveWordForwardAndModifySelection:,
ok:,
open:,
orderBack:,
orderFront:,
orderFrontColorPanel:,
orderFrontDataLinkPanel:,
orderFrontHelpPanel:,
orderFrontStandardAboutPanel:,
orderFrontStandardInfoPanel:,
orderOut:,
pageDown:,
pageUp:,
paste:,
pasteAsPlainText:,
pasteAsRichText:,
pasteFont:,
pasteRuler:,
performClose:,
performMiniaturize:,
performZoom:,
print:,
raiseBaseline:,
runPageLayout:,
runToolbarCustomizationPalette:,
scrollLineDown:,
scrollLineUp:,
scrollPageDown:,
scrollPageUp:,
scrollViaScroller:,
selectAll:,
selectLine:,
selectNextKeyView:,
selectParagraph:,
selectPreviousKeyView:,
selectText:,
selectText:,
selectToMark:,
selectWord:,
showContextHelp:,
showGuessPanel:,
showHelp:,
showWindow:,
stop:,
subscript:,
superscript:,
swapWithMark:,
takeDoubleValueFrom:,
takeFloatValueFrom:,
takeIntValueFrom:,
takeObjectValueFrom:,
takeStringValueFrom:,
terminate:,
tightenKerning:,
toggle:,
toggleContinuousSpellChecking:,
toggleRuler:,
toggleToolbarShown:,
toggleTraditionalCharacterShape:,
transpose:,
transposeWords:,
turnOffKerning:,
turnOffLigatures:,
underline:,
unhide:,
unhideAllApplications:,
unscript:,
uppercaseWord:,
useAllLigatures:,
useStandardKerning:,
useStandardLigatures:,
yank:,
zoom:
);
Super = NSObject;
};
IBInspector = {
Actions = (
"ok:",
"revert:",
"touch:"
ok:,
revert:,
touch:
);
Outlets = (
window
);
Super = NSObject;
};
IBPalette = {
Actions = (
);
Outlets = (
originalWindow
);
Super = NSObject;
};
NSActionCell = {
Super = NSCell;
};
NSApplication = {
Actions = (
arrangeInFront:,
hide:,
hideOtherApplications:,
miniaturizeAll:,
orderFrontColorPanel:,
orderFrontDataLinkPanel:,
orderFrontHelpPanel:,
orderFrontStandardAboutPanel:,
orderFrontStandardInfoPanel:,
runPageLayout:,
stop:,
terminate:,
unhide:,
unhideAllApplications:
);
Outlets = (
delegate
);
Super = NSResponder;
};
NSArray = {
Super = NSObject;
};
NSBrowser = {
Actions = (
doClick:,
doDoubleClick:,
selectAll:
);
Outlets = (
delegate
);
Actions = (
"arrangeInFront:",
"hide:",
"hideOtherApplications:",
"miniaturizeAll:",
"orderFrontColorPanel:",
"orderFrontDataLinkPanel:",
"orderFrontHelpPanel:",
"orderFrontStandardAboutPanel:",
"orderFrontStandardInfoPanel:",
"runPageLayout:",
"stop:",
"terminate:",
"unhide:",
"unhideAllApplications:"
);
Super = NSControl;
};
NSBrowserCell = {
Super = NSCell;
};
NSButton = {
Actions = (
performClick:
);
Super = NSControl;
};
NSBrowser =
{
Outlets = (
delegate
);
Super = NScontrol;
NSButtonCell = {
Actions = (
"doClick:",
"doDoubleClick:"
performClick:
);
Super = NSActionCell;
};
NSCStringText = {
Actions = (
clear:,
selectText:
);
Super = NSText;
};
NSCell = {
Actions = (
takeDoubleValueFrom:,
takeFloatValueFrom:,
takeIntValueFrom:,
takeStringValueFrom:
);
Super = NSObject;
};
NSColorWell = {
Super = NSControl;
Actions = (
"takeColorFrom:"
takeColorFrom:
);
Super = NSControl;
};
NSComboBox = {
Outlets = (
dataSource
);
Super = NSTextField;
};
NSControl = {
Actions = (
"takeDoubleValueFrom:",
"takeFloatValueFrom:",
"takeIntValueFrom:",
"takeObjectValueFrom:",
"takeStringValueFrom:"
takeDoubleValueFrom:,
takeFloatValueFrom:,
takeIntValueFrom:,
takeObjectValueFrom:,
takeStringValueFrom:
);
Outlets = (
target
target
);
Super = NSView;
};
NSDocumentController =
{
NSCursor = {
Super = NSObject;
Actions = (
"saveAllDocuments:",
"openDocument:",
"newDocument:",
"clearRecentDocuments:"
);
};
NSDocument =
{
NSDateFormatter = {
Super = NSFormatter;
};
NSDictionary = {
Super = NSObject;
Actions = (
"runPageLayout:",
"printDocument:",
"saveDocument:",
"saveDocumentAs:",
"saveDocumentTo:",
"revertDocumentToSaved:"
);
};
NSDrawer =
{
Super = NSResponder;
NSDocument = {
Actions = (
"close:",
"open:",
"toggle:"
printDocument:,
revertDocumentToSaved:,
runPageLayout:,
saveDocument:,
saveDocumentAs:,
saveDocumentTo:
);
Super = NSObject;
};
NSDocumentController = {
Actions = (
clearRecentDocuments:,
newDocument:,
openDocument:,
saveAllDocuments:
);
Super = NSObject;
};
NSDrawer = {
Actions = (
close:,
open:,
toggle:
);
Outlets = (
delegate
);
};
NSFontManager =
{
Super = NSResponder;
Actions = (
"addFontTrait:",
"removeFontTrait:",
"modifyFont:",
"modifyFontViaPanel:",
"orderFrontFontPanel:"
);
};
NSHelpManager =
{
Super = NSResponder;
NSFontManager = {
Actions = (
"showHelp:",
"activateContextHelpMode:"
addFontTrait:,
modifyFont:,
modifyFontViaPanel:,
orderFrontFontPanel:,
removeFontTrait:
);
Outlets = (
menu
);
Super = NSResponder;
};
NSForm = {
Super = NSMatrix;
};
NSFormCell = {
Super = NSActionCell;
};
NSFormatter = {
Super = NSObject;
};
NSHelpManager = {
Actions = (
activateContextHelpMode:,
showHelp:
);
Super = NSResponder;
};
NSImage = {
Super = NSObject;
};
NSImageView = {
Super = NScontrol;
};
NSMatrix = {
Actions = (
selectAll:,
selectText:
);
Outlets = (
delegate
);
Super = NSControl;
};
NSMenu = {
Super = NSObject;
};
NSMenuItem = {
Outlets = (
target
);
Super = NSObject;
};
NSMutableArray = {
Super = NSArray;
};
NSMutableDictionary = {
Super = NSDictionary;
};
NSNumberFormatter = {
Super = NSFormatter;
};
NSPanel = {
Super = NSWindow;
};
NSPopUpButton = {
Super = NSButton;
};
NSProgressIndicator = {
Super = NSObject;
Actions = (
"animate:",
"startAnimation:",
"stopAnimation:"
animate:,
startAnimation:,
stopAnimation:
);
};
NSSlider = {
Super = NSControl;
};
NSTextField = {
Outlets = (
delegate
);
Super = NSControl;
Super = NSObject;
};
NSResponder = {
Super = NSObject;
Actions = (
"selectAll:",
"deselectAll:",
"selectText:"
Outlets = (
menu
);
Super = NSObject;
};
NSRulerView = {
Super = NSView;
};
NSScrollView = {
Super = NSView;
};
NSScroller = {
Super = NSControl;
};
NSSecureTextField = {
Super = NSTextField;
};
NSSecureTextFieldCell = {
Super = NSTextFieldCell;
};
NSSlider = {
Super = NSControl;
};
NSSliderCell = {
Super = NSActionCell;
};
NSSplitView = {
Super = NSView;
};
NSTabView = {
Super = NSView;
Actions = (
"selectFirstTabViewItem:",
"selectLastTabViewItem:",
"selectNextTabViewItem:",
"selectPreviousTabViewItem:",
"takeSelectedTabViewItemFromSender:"
selectFirstTabViewItem:,
selectLastTabViewItem:,
selectNextTabViewItem:,
selectPreviousTabViewItem:,
takeSelectedTabViewItemFromSender:
);
Outlets = (
delegate
);
Super = NSView;
};
NSTableColumn = {
Super = NSObject;
};
NSTableHeaderCell = {
Super = NSTextFieldCell;
};
NSTableHeaderView = {
Super = NSView;
};
NSTableView = {
Actions = (
deselectAll:,
selectAll:
);
Outlets = (
dataSource,
delegate
);
Super = NSControl;
};
NSText = {
Super = NSView;
Actions = (
"toggleRuler:",
"copy:",
"copyFont:",
"copyRuler:",
"cut:",
"delete:",
"paste:",
"pasteFont:",
"pasteRuler:",
"selectAll:",
"changeFont:",
"alignCenter:",
"alignLeft:",
"alignRight:",
"subscript:",
"superscript:",
"underline:",
"unscript:",
"checkSpelling:",
"showGuessPanel:",
"changeSpelling:",
"ignoreSpelling:"
alignCenter:,
alignLeft:,
alignRight:,
changeFont:,
changeSpelling:,
checkSpelling:,
copy:,
copyFont:,
copyRuler:,
cut:,
delete:,
ignoreSpelling:,
paste:,
pasteFont:,
pasteRuler:,
selectAll:,
showGuessPanel:,
subscript:,
superscript:,
toggleRuler:,
underline:,
unscript:
);
Outlets = (
delegate
);
Super = NSView;
};
NSTextField = {
Actions = (
selectText:
);
Outlets = (
delegate
);
Super = NSControl;
};
NSTextFieldCell = {
Super = NSActionCell;
};
NSTextView = {
Actions = (
alignJustified:,
changeColor:,
deleteBackwards:,
insertBacktab:,
insertNewLine:,
insertParagraphSeparator:,
insertTab:,
loosenKerning:,
lowerBaseline:,
moveBackward:,
moveDown:,
moveForward:,
moveLeft:,
moveRight:,
moveUp:,
pasteAsPlainText:,
pasteAsRichText:,
raiseBaseline:,
tightenKerning:,
toggleContinuousSpellChecking:,
toggleTraditionalCharacterShape:,
turnOffKerning:,
turnOffLigatures:,
useAllLigatures:,
useDefaultBaseline:,
useDefaultKerning:,
useDefaultLigatures:,
useStandardBaseline:,
useStandardKerning:,
useStandardLigatures:
);
Super = NSText;
Actions = (
"changeColor:",
"alignJustified:",
"pasteAsPlainText:",
"pasteAsRichText:",
"turnOffKerning:",
"tightenKerning:",
"loosenKerning:",
"useStandardKerning:",
"turnOffLigatures:",
"useStandardLigatures:",
"useAllLigatures:",
"raiseBaseline:",
"lowerBaseline:",
"toggleTraditionalCharacterShape:",
"toggleContinuousSpellChecking:"
);
};
NSView = {
Super = NSResponder;
Actions = (
"fax:",
"print:"
fax:,
print:
);
};
NSWindow = {
Outlets = (
delegate
nextKeyView
);
Super = NSResponder;
Actions = (
"performZoom:",
"zoom:",
"orderBack:",
"orderFront:",
"orderOut:",
"makeKeyAndOrderFront:",
"selectNextKeyView:",
"selectPreviousKeyView:",
"performClose:",
"deminiaturize:",
"miniaturize:",
"performMiniaturize:",
"fax:",
"print:",
"toggleToolbarShown:",
"runToolbarCustomizationPalette:"
);
};
NSWindow = {
Actions = (
deminiaturize:,
fax:,
makeKeyAndOrderFront:,
miniaturize:,
orderBack:,
orderFront:,
orderOut:,
performClose:,
performMiniaturize:,
performZoom:,
print:,
runToolbarCustomizationPalette:,
selectNextKeyView:,
selectPreviousKeyView:,
toggleToolbarShown:,
zoom:
);
Outlets = (
delegate,
initialFirstResponder
);
Super = NSResponder;
};
NSWindowController = {
Actions = (
showWindow:
);
Outlets = (
document
);
Super = NSResponder;
Actions = (
"showWindow:"
);
};
FirstResponder = {
Actions = (
"activateContextHelpMode:",
"alignCenter:",
"alignJustified:",
"alignLeft:",
"alignRight:",
"arrangeInFront:",
"cancel:",
"capitalizeWord:",
"changeColor:",
"changeFont:",
"checkSpelling:",
"close:",
"complete:",
"copy:",
"copyFont:",
"copyRuler:",
"cut:",
"delete:",
"deleteBackward:",
"deleteForward:",
"deleteToBeginningOfLine:",
"deleteToBeginningOfParagraph:",
"deleteToEndOfLine:",
"deleteToEndOfParagraph:",
"deleteToMark:",
"deleteWordBackward:",
"deleteWordForward:",
"deminiaturize:",
"deselectAll:",
"fax:",
"hide:",
"hideOtherApplications:",
"indent:",
"loosenKerning:",
"lowerBaseline:",
"lowercaseWord:",
"makeKeyAndOrderFront:",
"miniaturize:",
"miniaturizeAll:",
"moveBackward:",
"moveBackwardAndModifySelection:",
"moveDown:",
"moveDownAndModifySelection:",
"moveForward:",
"moveForwardAndModifySelection:",
"moveLeft:",
"moveRight:",
"moveToBeginningOfDocument:",
"moveToBeginningOfLine:",
"moveToBeginningOfParagraph:",
"moveToEndOfDocument:",
"moveToEndOfLine:",
"moveToEndOfParagraph:",
"moveUp:",
"moveUpAndModifySelection:",
"moveWordBackward:",
"moveWordBackwardAndModifySelection:",
"moveWordForward:",
"moveWordForwardAndModifySelection:",
"ok:",
"open:",
"orderBack:",
"orderFront:",
"orderFrontColorPanel:",
"orderFrontDataLinkPanel:",
"orderFrontHelpPanel:",
"orderFrontStandardAboutPanel:",
"orderFrontStandardInfoPanel:",
"orderOut:",
"pageDown:",
"pageUp:",
"paste:",
"pasteAsPlainText:",
"pasteAsRichText:",
"pasteFont:",
"pasteRuler:",
"performClose:",
"performMiniaturize:",
"performZoom:",
"print:",
"raiseBaseline:",
"runPageLayout:",
"runToolbarCustomizationPalette:",
"scrollLineDown:",
"scrollLineUp:",
"scrollPageDown:",
"scrollPageUp:",
"scrollViaScroller:",
"selectAll:",
"selectLine:",
"selectNextKeyView:",
"selectParagraph:",
"selectPreviousKeyView:",
"selectText:",
"selectText:",
"selectToMark:",
"selectWord:",
"showContextHelp:",
"showGuessPanel:",
"showHelp:",
"showWindow:",
"stop:",
"subscript:",
"superscript:",
"swapWithMark:",
"takeDoubleValueFrom:",
"takeFloatValueFrom:",
"takeIntValueFrom:",
"takeObjectValueFrom:",
"takeStringValueFrom:",
"terminate:",
"tightenKerning:",
"toggle:",
"toggleContinuousSpellChecking:",
"toggleRuler:",
"toggleToolbarShown:",
"toggleTraditionalCharacterShape:",
"transpose:",
"transposeWords:",
"turnOffKerning:",
"turnOffLigatures:",
"underline:",
"unhide:",
"unhideAllApplications:",
"unscript:",
"uppercaseWord:",
"useAllLigatures:",
"useStandardKerning:",
"useStandardLigatures:",
"yank:",
"zoom:",
);
Super = NSObject;
};
}
}

View file

@ -119,6 +119,7 @@ Gorm_OBJC_FILES = \
GormFilesOwner.m \
GormClassEditor.m \
GormMatrixEditor.m \
GormTableViewEditor.m \
GormObjectEditor.m \
GormObjectInspector.m \
GormWindowEditor.m \

View file

@ -205,8 +205,20 @@ static NSImage *classesImage = nil;
if ([[anObject documentView] isKindOfClass:
[NSTableView class]] == YES)
{
[self attachObject: [anObject documentView]
int i;
int count;
NSArray *tc;
id tv = [anObject documentView];
tc = [tv tableColumns];
count = [tc count];
[self attachObject: tv
toParent: aParent];
for (i = 0; i < count; i++)
{
[self attachObject: [tc objectAtIndex: i]
toParent: aParent];
}
}
else if ([[anObject documentView] isKindOfClass:
[NSTextView class]] == YES)
@ -1998,6 +2010,35 @@ static NSImage *classesImage = nil;
*r = [object convertRect: [object bounds] toView: nil];
return [object window];
}
else if ([object isKindOfClass: [NSTableColumn class]] == YES)
{
// dirty hack
NSTableView *tv = [[(NSTableColumn*)object dataCell] controlView];
NSTableHeaderView *th = [tv headerView];
int index;
if (th == nil || tv == nil)
{
NSLog(@"fail 1 %@ %@ %@", [(NSTableColumn*)object headerCell], th, tv);
*r = NSZeroRect;
return nil;
}
index = [[tv tableColumns] indexOfObject: object];
if (index == NSNotFound)
{
NSLog(@"fail 2");
*r = NSZeroRect;
return nil;
}
*r = [th convertRect: [th headerRectOfColumn: index]
toView: nil];
NSLog(@"%@", NSStringFromRect(*r));
return [th window];
}
else
{
*r = NSZeroRect;

View file

@ -165,6 +165,14 @@ extern NSString *GormLinkPboardType;
- (void) changeObject: anObject;
@end
@interface GormTableViewEditor : NSObject <IBEditors>
{
id<IBDocuments> document;
id selected;
NSTableView *tableView;
}
@end
@interface GormFilesOwnerInspector : IBInspector
{
NSBrowser *browser;

433
GormTableViewEditor.m Normal file
View file

@ -0,0 +1,433 @@
/* GormMatrixEditor.m - Editor for matrices.
*
* Copyright (C) 2002 Free Software Foundation, Inc.
*
* Author: Pierre-Yves Rivaille <pyrivail@ens-lyon.fr>
* Date: Sep 2002
*
* This file is part of GNUstep.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "GormPrivate.h"
NSString *IBTableColumnPboardType = @"IBTableColumnPboardType";
static NSCell *_editedCell;
static NSCell *_currentHeaderCell;
static NSText *_textObject;
static int _oldAlignment;
static NSColor *_oldColor;
@implementation NSTableView (GormObjectAdditions)
- (NSString*) editorClassName
{
return @"GormTableViewEditor";
}
@end
@implementation GormTableViewEditor
/*
* Decide whether an editor can accept data from the pasteboard.
*/
- (BOOL) acceptsTypeFromArray: (NSArray*)types
{
// FIXME
return NO;
}
/*
* Activate an editor - inserts it into the view hierarchy or whatever is
* needed for the editor to be able to provide its functionality.
* This method should be called by the document when an editor is created
* or opened. It should be safe to call repeatedly.
*/
- (BOOL) activate
{
NSLog(@"activate");
if (tableView)
{
[tableView setAllowsColumnResizing: YES];
[tableView setAllowsColumnSelection: YES];
[tableView setAllowsMultipleSelection: NO];
[tableView setAllowsEmptySelection: YES];
[tableView setAllowsColumnReordering: YES];
[tableView setGormDelegate: self];
}
return YES;
}
- (id) initWithObject: (id)anObject
inDocument: (id/*<IBDocuments>*/)aDocument
{
self = [super init];
[self changeObject: anObject];
document = aDocument;
return self;
}
/*
* Close an editor - this destroys the editor. In this method the editor
* should tell its document that it has been closed, so that the document
* can remove all its references to the editor.
*/
- (void) close
{
NSLog(@"close");
if (tableView)
{
if ([tableView selectedColumn] != -1)
{
[tableView deselectColumn: [tableView selectedColumn]];
}
[self closeSubeditors];
[self deactivate];
tableView = nil;
}
else
{
NSLog(@"tableView = nil");
}
}
/*
* Close subeditors of this editor.
*/
- (void) closeSubeditors
{
}
/*
* Deactivate an editor - removes it from the view hierarchy so that objects
* can be archived without including the editor.
* This method should be called automatically by the 'close' method.
* It should be safe to call repeatedly.
*/
- (void) deactivate
{
if (tableView)
{
[tableView setAllowsColumnResizing:
[tableView gormAllowsColumnResizing]];
[tableView setAllowsColumnSelection:
[tableView gormAllowsColumnSelection]];
[tableView setAllowsMultipleSelection:
[tableView gormAllowsMultipleSelection]];
[tableView setAllowsEmptySelection:
[tableView gormAllowsEmptySelection]];
[tableView setAllowsColumnReordering:
[tableView gormAllowsColumnReordering]];
[tableView setGormDelegate: nil];
}
NSLog(@"deactivate");
selected = nil;
}
/*
* This method deletes all the objects in the current selection in the editor.
*/
- (void) deleteSelection
{
NSLog(@"deleteSelection");
if (selected == nil)
{
NSLog(@"no column to delete");
}
if ([tableView numberOfColumns] <= 1)
{
NSLog(@"can't delete last column");
}
else
{
NSLog(@"FIXME: remove the tableColumn from toplevel"); // FIXME
[tableView removeTableColumn: selected];
[document detachObject: selected];
[tableView deselectAll: self];
selected = nil;
}
}
/*
* This method places the current selection from the editor on the pasteboard.
*/
- (void) copySelection
{
NSLog(@"copySelection");
if (selected != nil)
{
[document copyObjects: [self selection]
type: IBTableColumnPboardType
toPasteboard: [NSPasteboard generalPasteboard]];
}
}
/*
* This method is used to add the contents of the pasteboard to the current
* selection of objects within the editor.
*/
- (void) pasteInSelection
{
NSArray *objects;
NSLog(@"pasteInSelection");
objects = [document pasteType: IBTableColumnPboardType
fromPasteboard: [NSPasteboard generalPasteboard]
parent: nil];
if (objects == nil)
return;
if ([objects count] == 0)
return;
if ([objects count] > 1)
{
NSLog(@"warning strange behaviour : GormTableViewEditor pasteInSelection");
}
[tableView addTableColumn: [objects objectAtIndex: 0]];
}
/*
* This method returns the document that owns the object that the editor edits.
*/
- (id /*<IBDocuments>*/) document
{
return document;
}
/*
* This method returns the object that the editor is editing.
*/
- (id) editedObject
{
return tableView;
}
/*
* This method is used to draw or remove markup that identifies selected
* objects within the object being edited.
*/
- (void) makeSelectionVisible: (BOOL)flag
{
NSLog(@"makeSelectionVisible");
// FIXME
}
/*
* This method is used to open an editor for an object within the object
* currently being edited.
*/
- (id<IBEditors>) openSubeditorForObject: (id)anObject
{
// FIXME
return nil;
}
/*
* This method is used to ensure that the editor is visible on screen.
*/
- (void) orderFront
{
// FIXME
}
/*
* FIXME - I don't think we use this.
*/
- (void) resetObject: (id)anObject
{
// FIXME
}
/*
* This method changes the current selection to those objects in the array.
*/
- (void) selectObjects: (NSArray*)anArray
{
NSLog(@"selectObjects");
id obj = [anArray lastObject];
[self makeSelectionVisible: NO];
selected = obj;
[document setSelectionFromEditor: self];
[self makeSelectionVisible: YES];
// FIXME
}
/*
* FIXME - I don't think we use this.
*/
- (void) validateEditing
{
// FIXME
}
/*
* When an editor resigns the selection ownership, all editors are asked if
* they want selection ownership, and the first one to return YES gets made
* into the current selection owner.
*/
- (BOOL) wantsSelection
{
return NO;
}
/*
* This returns the window in which the editor is drawn.
*/
- (NSWindow*) window
{
return nil;
}
- (void) mouseDown:(NSEvent*)theEvent
{
id hitView =
[[tableView enclosingScrollView]
hitTest:
[[[tableView enclosingScrollView] superview]
convertPoint: [theEvent locationInWindow]
fromView: nil]];
NSLog(@"mouseDown %@", hitView);
if (hitView == [tableView headerView])
{
if ([theEvent clickCount] == 2)
{
[self editHeader: hitView
withEvent: theEvent];
}
else
{
[hitView mouseDown: theEvent];
}
}
}
- (void) changeObject: (id)anObject
{
ASSIGN(tableView, anObject);
[self activate];
}
- (void) tableViewSelectionDidChange: (id) tv
{
if ([tableView selectedColumn] != -1)
{
selected = [[tableView tableColumns]
objectAtIndex: [tableView selectedColumn]];
[self selectObjects:
[NSArray arrayWithObject: selected]];
}
else
{
NSLog(@"no selection");
}
}
- (void) editHeader: (NSTableHeaderView*) th
withEvent: (NSEvent *) theEvent
{
NSText *t;
NSTableColumn *tc;
NSRect drawingRect;
unsigned length = 0;
int columnIndex = [th columnAtPoint:
[th convertPoint:[theEvent locationInWindow]
fromView: nil]];
if (columnIndex == NSNotFound)
return;
_textObject = nil;
[[th tableView] scrollColumnToVisible: columnIndex];
t = [[th window] fieldEditor: YES forObject: self];
if ([t superview] != nil)
{
if ([t resignFirstResponder] == NO)
{
return;
}
}
// Prepare the cell
tc = [[tableView tableColumns] objectAtIndex: columnIndex];
// NB: need to be released when no longer used
_editedCell = [[tc headerCell] copy];
_currentHeaderCell = [tc headerCell];
[_editedCell setStringValue: [[tc headerCell] stringValue]];
[_editedCell setEditable: YES];
[_editedCell setAlignment: NSLeftTextAlignment];
[_editedCell setTextColor: [NSColor blackColor]];
[_editedCell setBackgroundColor: [NSColor whiteColor]];
_textObject = [_editedCell setUpFieldEditorAttributes: t];
drawingRect = [th headerRectOfColumn: columnIndex];
[_editedCell editWithFrame: drawingRect
inView: th
editor: _textObject
delegate: self
event: theEvent];
return;
}
- (void) textDidEndEditing: (NSNotification *)aNotification
{
[_editedCell endEditing: _textObject];
[_currentHeaderCell setStringValue: [[_textObject text] copy]];
RELEASE(_editedCell);
}
- (NSArray*) selection
{
if (selected == nil)
return [NSArray array];
else
return [NSArray arrayWithObject: selected];
}
- (unsigned) selectionCount
{
return (selected == nil) ? 0 : 1;
}
- (void) drawSelection
{
}
@end

View file

@ -64,7 +64,7 @@ _constrainPointToBounds(NSPoint point, NSRect bounds)
@class GSTableCornerView;
static NSView *bestKnownSuperview(NSView *aView)
static NSView *bestKnownSuperview(NSView *aView, NSPoint loc)
{
NSView *best = aView;
NSView *view = aView;
@ -72,7 +72,18 @@ static NSView *bestKnownSuperview(NSView *aView)
if ([view isKindOfClass:[NSTableHeaderView class]])
{
return [view tableView];
NSPoint p = [view convertPoint: loc
fromView: nil];
int columnNumber = [(NSTableHeaderView*) view columnAtPoint: p];
if (columnNumber == -1)
return nil;
if ([(NSTableHeaderView*)view tableView] == nil)
return nil;
return [[[(NSTableHeaderView*)view tableView] tableColumns]
objectAtIndex: columnNumber];
}
else if ([view isKindOfClass:[GSTableCornerView class]])
{
@ -814,6 +825,22 @@ static BOOL done_editing;
if ([subeditor editedObject] != view)
[subeditor changeObject: view];
}
else if ([view isKindOfClass: [NSScrollView class]])
{
if ([view documentView]
&& [[view documentView] isKindOfClass:
[NSTableView class]])
{
id subeditor;
if ((subeditor = [self openSubeditorForObject:
[view documentView]]) == nil)
{
NSLog(@"Could not open editor for %@", view);
}
if ([subeditor editedObject] != [view documentView])
[subeditor changeObject: [view documentView]];
}
}
else if ([view isKindOfClass: [NSTextField class]])
{
[self editTextField: view withEvent: (NSEvent *)theEvent];
@ -1454,7 +1481,7 @@ static BOOL done_editing;
NSPoint loc = [sender draggingLocation];
NSView *sub = [super hitTest: loc];
sub = bestKnownSuperview(sub);
sub = bestKnownSuperview(sub, loc);
if (sub == self)
{
@ -1673,7 +1700,7 @@ static BOOL done_editing;
NSPoint loc = [sender draggingLocation];
NSView *sub = [super hitTest: loc];
sub = bestKnownSuperview(sub);
sub = bestKnownSuperview(sub, loc);
// NSLog(@"DST %@",sub);

View file

@ -31,7 +31,9 @@ PALETTE_NAME = 3Containers
3Containers_PRINCIPAL_CLASS = ContainersPalette
3Containers_RESOURCE_FILES = ContainersPalette.tiff \
GormBrowserInspector.gorm \
GormTableViewInspector.gorm
GormTableViewInspector.gorm \
GormTableColumnInspector.gorm \
GormTableColumnSizeInspector.gorm
-include GNUmakefile.preamble

View file

@ -27,5 +27,11 @@
@interface GormNSTableView : NSTableView
{
id _gormDataSource;
id _gormDelegate;
BOOL _gormAllowsColumnReordering;
BOOL _gormAllowsColumnResizing;
BOOL _gormAllowsColumnSelection;
BOOL _gormAllowsMultipleSelection;
BOOL _gormAllowsEmptySelection;
}
@end

View file

@ -108,10 +108,43 @@ static id _sharedDataSource = nil;
return _gormDataSource;
}
- (void)setDelegate: (id)anObject
{
_gormDelegate = anObject;
}
- (id)delegate
{
return _gormDelegate;
}
- (id)setGormDelegate: (id)anObject
{
[super setDelegate: anObject];
}
- (void)encodeWithCoder: (NSCoder*) aCoder
{
id oldDelegate;
_allowsColumnReordering = _gormAllowsColumnReordering;
_allowsColumnResizing = _gormAllowsColumnResizing;
_allowsColumnSelection = _gormAllowsColumnSelection;
_allowsMultipleSelection = _gormAllowsMultipleSelection;
_allowsEmptySelection = _gormAllowsEmptySelection;
_dataSource = _gormDataSource;
oldDelegate = _delegate;
_delegate = _gormDelegate;
_numberOfRows = 0;
[super encodeWithCoder: aCoder];
_numberOfRows = 10;
_allowsColumnReordering = YES;
_allowsColumnResizing = YES;
_allowsColumnSelection = YES;
_allowsMultipleSelection = NO;
_allowsEmptySelection = YES;
_delegate = oldDelegate;
_dataSource = _sharedDataSource;
}
@ -119,7 +152,69 @@ static id _sharedDataSource = nil;
{
self = [super initWithCoder: aCoder];
[super setDataSource: [GormNSTableView sharedDataSource]];
_gormAllowsColumnReordering = _allowsColumnReordering;
_gormAllowsColumnResizing = _allowsColumnResizing;
_gormAllowsColumnSelection = _allowsColumnSelection;
_gormAllowsMultipleSelection = _allowsMultipleSelection;
_gormAllowsEmptySelection = _allowsEmptySelection;
_gormDelegate = _delegate;
_delegate = nil;
return self;
}
- (void) setGormAllowsColumnReordering: (BOOL)flag
{
_gormAllowsColumnReordering = flag;
}
- (BOOL) gormAllowsColumnReordering
{
return _gormAllowsColumnReordering;
}
- (void) setGormAllowsColumnResizing: (BOOL)flag
{
_gormAllowsColumnResizing = flag;
}
- (BOOL) gormAllowsColumnResizing
{
return _gormAllowsColumnResizing;
}
- (void) setGormAllowsMultipleSelection: (BOOL)flag
{
_gormAllowsMultipleSelection = flag;
}
- (BOOL) gormAllowsMultipleSelection
{
return _gormAllowsMultipleSelection;
}
- (void) setGormAllowsEmptySelection: (BOOL)flag
{
_gormAllowsEmptySelection = flag;
}
- (BOOL) gormAllowsEmptySelection
{
return _gormAllowsEmptySelection;
}
- (void) setGormAllowsColumnSelection: (BOOL)flag
{
_gormAllowsColumnSelection = flag;
}
- (BOOL) gormAllowsColumnSelection
{
return _gormAllowsColumnSelection;
}
@end

View file

@ -0,0 +1,565 @@
{
FirstResponder = {
Actions = (
activateContextHelpMode:,
alignCenter:,
alignJustified:,
alignLeft:,
alignRight:,
arrangeInFront:,
cancel:,
capitalizeWord:,
changeColor:,
changeFont:,
checkSpelling:,
close:,
complete:,
copy:,
copyFont:,
copyRuler:,
cut:,
delete:,
deleteBackward:,
deleteForward:,
deleteToBeginningOfLine:,
deleteToBeginningOfParagraph:,
deleteToEndOfLine:,
deleteToEndOfParagraph:,
deleteToMark:,
deleteWordBackward:,
deleteWordForward:,
deminiaturize:,
deselectAll:,
fax:,
hide:,
hideOtherApplications:,
indent:,
loosenKerning:,
lowerBaseline:,
lowercaseWord:,
makeKeyAndOrderFront:,
miniaturize:,
miniaturizeAll:,
moveBackward:,
moveBackwardAndModifySelection:,
moveDown:,
moveDownAndModifySelection:,
moveForward:,
moveForwardAndModifySelection:,
moveLeft:,
moveRight:,
moveToBeginningOfDocument:,
moveToBeginningOfLine:,
moveToBeginningOfParagraph:,
moveToEndOfDocument:,
moveToEndOfLine:,
moveToEndOfParagraph:,
moveUp:,
moveUpAndModifySelection:,
moveWordBackward:,
moveWordBackwardAndModifySelection:,
moveWordForward:,
moveWordForwardAndModifySelection:,
ok:,
open:,
orderBack:,
orderFront:,
orderFrontColorPanel:,
orderFrontDataLinkPanel:,
orderFrontHelpPanel:,
orderFrontStandardAboutPanel:,
orderFrontStandardInfoPanel:,
orderOut:,
pageDown:,
pageUp:,
paste:,
pasteAsPlainText:,
pasteAsRichText:,
pasteFont:,
pasteRuler:,
performClose:,
performMiniaturize:,
performZoom:,
print:,
raiseBaseline:,
runPageLayout:,
runToolbarCustomizationPalette:,
scrollLineDown:,
scrollLineUp:,
scrollPageDown:,
scrollPageUp:,
scrollViaScroller:,
selectAll:,
selectLine:,
selectNextKeyView:,
selectParagraph:,
selectPreviousKeyView:,
selectText:,
selectText:,
selectToMark:,
selectWord:,
showContextHelp:,
showGuessPanel:,
showHelp:,
showWindow:,
stop:,
subscript:,
superscript:,
swapWithMark:,
takeDoubleValueFrom:,
takeFloatValueFrom:,
takeIntValueFrom:,
takeObjectValueFrom:,
takeStringValueFrom:,
terminate:,
tightenKerning:,
toggle:,
toggleContinuousSpellChecking:,
toggleRuler:,
toggleToolbarShown:,
toggleTraditionalCharacterShape:,
transpose:,
transposeWords:,
turnOffKerning:,
turnOffLigatures:,
underline:,
unhide:,
unhideAllApplications:,
unscript:,
uppercaseWord:,
useAllLigatures:,
useStandardKerning:,
useStandardLigatures:,
yank:,
zoom:
);
Super = NSObject;
};
GormTableViewAttributesInspector = {
Actions = (
);
Outlets = (
titleAlignmentMatrix,
contentsAlignmentMatrix,
resizableSwitch,
editableSwitch,
identifierTextField
);
Super = IBInspector;
};
IBInspector = {
Actions = (
ok:,
revert:,
touch:
);
Outlets = (
window
);
Super = NSObject;
};
IBPalette = {
Actions = (
);
Outlets = (
originalWindow
);
Super = NSObject;
};
NSActionCell = {
Super = NSCell;
};
NSApplication = {
Actions = (
arrangeInFront:,
hide:,
hideOtherApplications:,
miniaturizeAll:,
orderFrontColorPanel:,
orderFrontDataLinkPanel:,
orderFrontHelpPanel:,
orderFrontStandardAboutPanel:,
orderFrontStandardInfoPanel:,
runPageLayout:,
stop:,
terminate:,
unhide:,
unhideAllApplications:
);
Outlets = (
delegate
);
Super = NSResponder;
};
NSArray = {
Super = NSObject;
};
NSBrowser = {
Actions = (
doClick:,
doDoubleClick:,
selectAll:
);
Outlets = (
delegate
);
Super = NSControl;
};
NSBrowserCell = {
Super = NSCell;
};
NSButton = {
Actions = (
performClick:
);
Super = NSControl;
};
NSButtonCell = {
Actions = (
performClick:
);
Super = NSActionCell;
};
NSCStringText = {
Actions = (
clear:,
selectText:
);
Super = NSText;
};
NSCell = {
Actions = (
takeDoubleValueFrom:,
takeFloatValueFrom:,
takeIntValueFrom:,
takeStringValueFrom:
);
Super = NSObject;
};
NSColorWell = {
Actions = (
takeColorFrom:
);
Super = NSControl;
};
NSComboBox = {
Outlets = (
dataSource
);
Super = NSTextField;
};
NSControl = {
Actions = (
takeDoubleValueFrom:,
takeFloatValueFrom:,
takeIntValueFrom:,
takeObjectValueFrom:,
takeStringValueFrom:
);
Outlets = (
target
);
Super = NSView;
};
NSCursor = {
Super = NSObject;
};
NSDateFormatter = {
Super = NSFormatter;
};
NSDictionary = {
Super = NSObject;
};
NSDocument = {
Actions = (
printDocument:,
revertDocumentToSaved:,
runPageLayout:,
saveDocument:,
saveDocumentAs:,
saveDocumentTo:
);
Super = NSObject;
};
NSDocumentController = {
Actions = (
clearRecentDocuments:,
newDocument:,
openDocument:,
saveAllDocuments:
);
Super = NSObject;
};
NSDrawer = {
Actions = (
close:,
open:,
toggle:
);
Outlets = (
delegate
);
Super = NSResponder;
};
NSFontManager = {
Actions = (
addFontTrait:,
modifyFont:,
modifyFontViaPanel:,
orderFrontFontPanel:,
removeFontTrait:
);
Outlets = (
menu
);
Super = NSResponder;
};
NSForm = {
Super = NSMatrix;
};
NSFormCell = {
Super = NSActionCell;
};
NSFormatter = {
Super = NSObject;
};
NSHelpManager = {
Actions = (
activateContextHelpMode:,
showHelp:
);
Super = NSResponder;
};
NSImage = {
Super = NSObject;
};
NSImageView = {
Super = NScontrol;
};
NSMatrix = {
Actions = (
selectAll:,
selectText:
);
Outlets = (
delegate
);
Super = NSControl;
};
NSMenu = {
Super = NSObject;
};
NSMenuItem = {
Outlets = (
target
);
Super = NSObject;
};
NSMutableArray = {
Super = NSArray;
};
NSMutableDictionary = {
Super = NSDictionary;
};
NSNumberFormatter = {
Super = NSFormatter;
};
NSPanel = {
Super = NSWindow;
};
NSPopUpButton = {
Super = NSButton;
};
NSProgressIndicator = {
Actions = (
animate:,
startAnimation:,
stopAnimation:
);
Super = NSObject;
};
NSResponder = {
Outlets = (
menu
);
Super = NSObject;
};
NSRulerView = {
Super = NSView;
};
NSScrollView = {
Super = NSView;
};
NSScroller = {
Super = NSControl;
};
NSSecureTextField = {
Super = NSTextField;
};
NSSecureTextFieldCell = {
Super = NSTextFieldCell;
};
NSSlider = {
Super = NSControl;
};
NSSliderCell = {
Super = NSActionCell;
};
NSSplitView = {
Super = NSView;
};
NSTabView = {
Actions = (
selectFirstTabViewItem:,
selectLastTabViewItem:,
selectNextTabViewItem:,
selectPreviousTabViewItem:,
takeSelectedTabViewItemFromSender:
);
Outlets = (
delegate
);
Super = NSView;
};
NSTableColumn = {
Super = NSObject;
};
NSTableHeaderCell = {
Super = NSTextFieldCell;
};
NSTableHeaderView = {
Super = NSView;
};
NSTableView = {
Actions = (
deselectAll:,
selectAll:
);
Outlets = (
dataSource,
delegate
);
Super = NSControl;
};
NSText = {
Actions = (
alignCenter:,
alignLeft:,
alignRight:,
changeFont:,
changeSpelling:,
checkSpelling:,
copy:,
copyFont:,
copyRuler:,
cut:,
delete:,
ignoreSpelling:,
paste:,
pasteFont:,
pasteRuler:,
selectAll:,
showGuessPanel:,
subscript:,
superscript:,
toggleRuler:,
underline:,
unscript:
);
Outlets = (
delegate
);
Super = NSView;
};
NSTextField = {
Actions = (
selectText:
);
Outlets = (
delegate
);
Super = NSControl;
};
NSTextFieldCell = {
Super = NSActionCell;
};
NSTextView = {
Actions = (
alignJustified:,
changeColor:,
deleteBackwards:,
insertBacktab:,
insertNewLine:,
insertParagraphSeparator:,
insertTab:,
loosenKerning:,
lowerBaseline:,
moveBackward:,
moveDown:,
moveForward:,
moveLeft:,
moveRight:,
moveUp:,
pasteAsPlainText:,
pasteAsRichText:,
raiseBaseline:,
tightenKerning:,
toggleContinuousSpellChecking:,
toggleTraditionalCharacterShape:,
turnOffKerning:,
turnOffLigatures:,
useAllLigatures:,
useDefaultBaseline:,
useDefaultKerning:,
useDefaultLigatures:,
useStandardBaseline:,
useStandardKerning:,
useStandardLigatures:
);
Super = NSText;
};
NSView = {
Actions = (
fax:,
print:
);
Outlets = (
nextKeyView
);
Super = NSResponder;
};
NSWindow = {
Actions = (
deminiaturize:,
fax:,
makeKeyAndOrderFront:,
miniaturize:,
orderBack:,
orderFront:,
orderOut:,
performClose:,
performMiniaturize:,
performZoom:,
print:,
runToolbarCustomizationPalette:,
selectNextKeyView:,
selectPreviousKeyView:,
toggleToolbarShown:,
zoom:
);
Outlets = (
delegate,
initialFirstResponder
);
Super = NSResponder;
};
NSWindowController = {
Actions = (
showWindow:
);
Outlets = (
document
);
Super = NSResponder;
};
}

Binary file not shown.

View file

@ -0,0 +1,561 @@
{
FirstResponder = {
Actions = (
activateContextHelpMode:,
alignCenter:,
alignJustified:,
alignLeft:,
alignRight:,
arrangeInFront:,
cancel:,
capitalizeWord:,
changeColor:,
changeFont:,
checkSpelling:,
close:,
complete:,
copy:,
copyFont:,
copyRuler:,
cut:,
delete:,
deleteBackward:,
deleteForward:,
deleteToBeginningOfLine:,
deleteToBeginningOfParagraph:,
deleteToEndOfLine:,
deleteToEndOfParagraph:,
deleteToMark:,
deleteWordBackward:,
deleteWordForward:,
deminiaturize:,
deselectAll:,
fax:,
hide:,
hideOtherApplications:,
indent:,
loosenKerning:,
lowerBaseline:,
lowercaseWord:,
makeKeyAndOrderFront:,
miniaturize:,
miniaturizeAll:,
moveBackward:,
moveBackwardAndModifySelection:,
moveDown:,
moveDownAndModifySelection:,
moveForward:,
moveForwardAndModifySelection:,
moveLeft:,
moveRight:,
moveToBeginningOfDocument:,
moveToBeginningOfLine:,
moveToBeginningOfParagraph:,
moveToEndOfDocument:,
moveToEndOfLine:,
moveToEndOfParagraph:,
moveUp:,
moveUpAndModifySelection:,
moveWordBackward:,
moveWordBackwardAndModifySelection:,
moveWordForward:,
moveWordForwardAndModifySelection:,
ok:,
open:,
orderBack:,
orderFront:,
orderFrontColorPanel:,
orderFrontDataLinkPanel:,
orderFrontHelpPanel:,
orderFrontStandardAboutPanel:,
orderFrontStandardInfoPanel:,
orderOut:,
pageDown:,
pageUp:,
paste:,
pasteAsPlainText:,
pasteAsRichText:,
pasteFont:,
pasteRuler:,
performClose:,
performMiniaturize:,
performZoom:,
print:,
raiseBaseline:,
runPageLayout:,
runToolbarCustomizationPalette:,
scrollLineDown:,
scrollLineUp:,
scrollPageDown:,
scrollPageUp:,
scrollViaScroller:,
selectAll:,
selectLine:,
selectNextKeyView:,
selectParagraph:,
selectPreviousKeyView:,
selectText:,
selectText:,
selectToMark:,
selectWord:,
showContextHelp:,
showGuessPanel:,
showHelp:,
showWindow:,
stop:,
subscript:,
superscript:,
swapWithMark:,
takeDoubleValueFrom:,
takeFloatValueFrom:,
takeIntValueFrom:,
takeObjectValueFrom:,
takeStringValueFrom:,
terminate:,
tightenKerning:,
toggle:,
toggleContinuousSpellChecking:,
toggleRuler:,
toggleToolbarShown:,
toggleTraditionalCharacterShape:,
transpose:,
transposeWords:,
turnOffKerning:,
turnOffLigatures:,
underline:,
unhide:,
unhideAllApplications:,
unscript:,
uppercaseWord:,
useAllLigatures:,
useStandardKerning:,
useStandardLigatures:,
yank:,
zoom:
);
Super = NSObject;
};
GormTableViewSizeInspector = {
Actions = (
);
Outlets = (
widthForm
);
Super = IBInspector;
};
IBInspector = {
Actions = (
ok:,
revert:,
touch:
);
Outlets = (
window
);
Super = NSObject;
};
IBPalette = {
Actions = (
);
Outlets = (
originalWindow
);
Super = NSObject;
};
NSActionCell = {
Super = NSCell;
};
NSApplication = {
Actions = (
arrangeInFront:,
hide:,
hideOtherApplications:,
miniaturizeAll:,
orderFrontColorPanel:,
orderFrontDataLinkPanel:,
orderFrontHelpPanel:,
orderFrontStandardAboutPanel:,
orderFrontStandardInfoPanel:,
runPageLayout:,
stop:,
terminate:,
unhide:,
unhideAllApplications:
);
Outlets = (
delegate
);
Super = NSResponder;
};
NSArray = {
Super = NSObject;
};
NSBrowser = {
Actions = (
doClick:,
doDoubleClick:,
selectAll:
);
Outlets = (
delegate
);
Super = NSControl;
};
NSBrowserCell = {
Super = NSCell;
};
NSButton = {
Actions = (
performClick:
);
Super = NSControl;
};
NSButtonCell = {
Actions = (
performClick:
);
Super = NSActionCell;
};
NSCStringText = {
Actions = (
clear:,
selectText:
);
Super = NSText;
};
NSCell = {
Actions = (
takeDoubleValueFrom:,
takeFloatValueFrom:,
takeIntValueFrom:,
takeStringValueFrom:
);
Super = NSObject;
};
NSColorWell = {
Actions = (
takeColorFrom:
);
Super = NSControl;
};
NSComboBox = {
Outlets = (
dataSource
);
Super = NSTextField;
};
NSControl = {
Actions = (
takeDoubleValueFrom:,
takeFloatValueFrom:,
takeIntValueFrom:,
takeObjectValueFrom:,
takeStringValueFrom:
);
Outlets = (
target
);
Super = NSView;
};
NSCursor = {
Super = NSObject;
};
NSDateFormatter = {
Super = NSFormatter;
};
NSDictionary = {
Super = NSObject;
};
NSDocument = {
Actions = (
printDocument:,
revertDocumentToSaved:,
runPageLayout:,
saveDocument:,
saveDocumentAs:,
saveDocumentTo:
);
Super = NSObject;
};
NSDocumentController = {
Actions = (
clearRecentDocuments:,
newDocument:,
openDocument:,
saveAllDocuments:
);
Super = NSObject;
};
NSDrawer = {
Actions = (
close:,
open:,
toggle:
);
Outlets = (
delegate
);
Super = NSResponder;
};
NSFontManager = {
Actions = (
addFontTrait:,
modifyFont:,
modifyFontViaPanel:,
orderFrontFontPanel:,
removeFontTrait:
);
Outlets = (
menu
);
Super = NSResponder;
};
NSForm = {
Super = NSMatrix;
};
NSFormCell = {
Super = NSActionCell;
};
NSFormatter = {
Super = NSObject;
};
NSHelpManager = {
Actions = (
activateContextHelpMode:,
showHelp:
);
Super = NSResponder;
};
NSImage = {
Super = NSObject;
};
NSImageView = {
Super = NScontrol;
};
NSMatrix = {
Actions = (
selectAll:,
selectText:
);
Outlets = (
delegate
);
Super = NSControl;
};
NSMenu = {
Super = NSObject;
};
NSMenuItem = {
Outlets = (
target
);
Super = NSObject;
};
NSMutableArray = {
Super = NSArray;
};
NSMutableDictionary = {
Super = NSDictionary;
};
NSNumberFormatter = {
Super = NSFormatter;
};
NSPanel = {
Super = NSWindow;
};
NSPopUpButton = {
Super = NSButton;
};
NSProgressIndicator = {
Actions = (
animate:,
startAnimation:,
stopAnimation:
);
Super = NSObject;
};
NSResponder = {
Outlets = (
menu
);
Super = NSObject;
};
NSRulerView = {
Super = NSView;
};
NSScrollView = {
Super = NSView;
};
NSScroller = {
Super = NSControl;
};
NSSecureTextField = {
Super = NSTextField;
};
NSSecureTextFieldCell = {
Super = NSTextFieldCell;
};
NSSlider = {
Super = NSControl;
};
NSSliderCell = {
Super = NSActionCell;
};
NSSplitView = {
Super = NSView;
};
NSTabView = {
Actions = (
selectFirstTabViewItem:,
selectLastTabViewItem:,
selectNextTabViewItem:,
selectPreviousTabViewItem:,
takeSelectedTabViewItemFromSender:
);
Outlets = (
delegate
);
Super = NSView;
};
NSTableColumn = {
Super = NSObject;
};
NSTableHeaderCell = {
Super = NSTextFieldCell;
};
NSTableHeaderView = {
Super = NSView;
};
NSTableView = {
Actions = (
deselectAll:,
selectAll:
);
Outlets = (
dataSource,
delegate
);
Super = NSControl;
};
NSText = {
Actions = (
alignCenter:,
alignLeft:,
alignRight:,
changeFont:,
changeSpelling:,
checkSpelling:,
copy:,
copyFont:,
copyRuler:,
cut:,
delete:,
ignoreSpelling:,
paste:,
pasteFont:,
pasteRuler:,
selectAll:,
showGuessPanel:,
subscript:,
superscript:,
toggleRuler:,
underline:,
unscript:
);
Outlets = (
delegate
);
Super = NSView;
};
NSTextField = {
Actions = (
selectText:
);
Outlets = (
delegate
);
Super = NSControl;
};
NSTextFieldCell = {
Super = NSActionCell;
};
NSTextView = {
Actions = (
alignJustified:,
changeColor:,
deleteBackwards:,
insertBacktab:,
insertNewLine:,
insertParagraphSeparator:,
insertTab:,
loosenKerning:,
lowerBaseline:,
moveBackward:,
moveDown:,
moveForward:,
moveLeft:,
moveRight:,
moveUp:,
pasteAsPlainText:,
pasteAsRichText:,
raiseBaseline:,
tightenKerning:,
toggleContinuousSpellChecking:,
toggleTraditionalCharacterShape:,
turnOffKerning:,
turnOffLigatures:,
useAllLigatures:,
useDefaultBaseline:,
useDefaultKerning:,
useDefaultLigatures:,
useStandardBaseline:,
useStandardKerning:,
useStandardLigatures:
);
Super = NSText;
};
NSView = {
Actions = (
fax:,
print:
);
Outlets = (
nextKeyView
);
Super = NSResponder;
};
NSWindow = {
Actions = (
deminiaturize:,
fax:,
makeKeyAndOrderFront:,
miniaturize:,
orderBack:,
orderFront:,
orderOut:,
performClose:,
performMiniaturize:,
performZoom:,
print:,
runToolbarCustomizationPalette:,
selectNextKeyView:,
selectPreviousKeyView:,
toggleToolbarShown:,
zoom:
);
Outlets = (
delegate,
initialFirstResponder
);
Super = NSResponder;
};
NSWindowController = {
Actions = (
showWindow:
);
Outlets = (
document
);
Super = NSResponder;
};
}

Binary file not shown.

View file

@ -159,6 +159,216 @@
}
@end
/*----------------------------------------------------------------------------
* NSTableColumn
*/
@implementation NSTableColumn (IBInspectorClassNames)
- (NSString *) inspectorClassName
{
return @"GormTableColumnAttributesInspector";
}
- (NSString*) sizeInspectorClassName
{
return @"GormTableColumnSizeInspector";
}
@end
@interface GormTableColumnAttributesInspector : IBInspector
{
id titleAlignmentMatrix;
id contentsAlignmentMatrix;
id identifierTextField;
id resizableSwitch;
id editableSwitch;
}
@end
@implementation GormTableColumnAttributesInspector
- (id) init
{
if ([super init] == nil)
{
return nil;
}
if ([NSBundle loadNibNamed: @"GormTableColumnInspector" owner: self] == NO)
{
NSLog(@"Could not gorm GormTableColumnInspector");
return nil;
}
return self;
}
- (void) ok: (id)sender
{
NSLog(@"ok");
[self _setValuesFromControl: sender];
}
- (void) setObject: (id)anObject
{
[super setObject: anObject];
[self _getValuesFromObject: anObject];
}
- (void) _getValuesFromObject: anObject
{
switch ([[anObject headerCell] alignment])
{
case NSLeftTextAlignment:
[titleAlignmentMatrix selectCellAtRow: 0 column: 0];
break;
case NSCenterTextAlignment:
[titleAlignmentMatrix selectCellAtRow: 0 column: 1];
break;
case NSRightTextAlignment:
[titleAlignmentMatrix selectCellAtRow: 0 column: 2];
break;
}
switch ([[anObject dataCell] alignment])
{
case NSLeftTextAlignment:
[contentsAlignmentMatrix selectCellAtRow: 0 column: 0];
break;
case NSCenterTextAlignment:
[contentsAlignmentMatrix selectCellAtRow: 0 column: 1];
break;
case NSRightTextAlignment:
[contentsAlignmentMatrix selectCellAtRow: 0 column: 2];
break;
}
[identifierTextField setStringValue: [anObject identifier]];
if ([anObject isResizable])
[resizableSwitch setState: NSOnState];
else
[resizableSwitch setState: NSOffState];
if ([anObject isEditable])
[editableSwitch setState: NSOnState];
else
[editableSwitch setState: NSOffState];
}
- (void) _setValuesFromControl: (id) control
{
if (control == titleAlignmentMatrix)
{
if ([[control cellAtRow: 0 column: 0] state] == NSOnState)
{
[[object headerCell] setAlignment: NSLeftTextAlignment];
}
else if ([[control cellAtRow: 0 column: 1] state] == NSOnState)
{
[[object headerCell] setAlignment: NSCenterTextAlignment];
}
else if ([[control cellAtRow: 0 column: 2] state] == NSOnState)
{
[[object headerCell] setAlignment: NSRightTextAlignment];
}
if ([[object tableView] headerView] != nil)
{
[[[object tableView] headerView] setNeedsDisplay: YES];
}
}
else if (control == contentsAlignmentMatrix)
{
if ([[control cellAtRow: 0 column: 0] state] == NSOnState)
{
[[object dataCell] setAlignment: NSLeftTextAlignment];
}
else if ([[control cellAtRow: 0 column: 1] state] == NSOnState)
{
[[object dataCell] setAlignment: NSCenterTextAlignment];
}
else if ([[control cellAtRow: 0 column: 2] state] == NSOnState)
{
[[object dataCell] setAlignment: NSRightTextAlignment];
}
[[object tableView] setNeedsDisplay: YES];
}
else if (control == identifierTextField)
{
[object setIdentifier:
[identifierTextField stringValue]];
}
else if (control == editableSwitch)
{
[object setEditable:
([editableSwitch state] == NSOnState)];
}
else if (control == resizableSwitch)
{
[object setResizable:
([resizableSwitch state] == NSOnState)];
}
}
@end
@interface GormTableColumnSizeInspector : IBInspector
{
id widthForm;
}
@end
@implementation GormTableColumnSizeInspector
- (id) init
{
if ([super init] == nil)
{
return nil;
}
if ([NSBundle loadNibNamed: @"GormTableColumnSizeInspector" owner: self] == NO)
{
NSLog(@"Could not gorm GormTableColumnSizeInspector");
return nil;
}
return self;
}
- (void) ok: (id)sender
{
NSLog(@"ok");
[self _setValuesFromControl: sender];
}
- (void) setObject: (id)anObject
{
[super setObject: anObject];
[self _getValuesFromObject: anObject];
}
- (void) _getValuesFromObject: anObject
{
[[widthForm cellAtRow: 0 column: 0] setFloatValue:
[anObject minWidth]];
[[widthForm cellAtRow: 1 column: 0] setFloatValue:
[anObject width]];
[[widthForm cellAtRow: 2 column: 0] setFloatValue:
[anObject maxWidth]];
}
- (void) _setValuesFromControl: (id) control
{
[object setMinWidth:
[[widthForm cellAtRow: 0 column: 0] floatValue]];
[object setWidth:
[[widthForm cellAtRow: 1 column: 0] floatValue]];
[object setMaxWidth:
[[widthForm cellAtRow: 2 column: 0] floatValue]];
[self _getValuesFromObject: object];
}
@end
/*----------------------------------------------------------------------------
* NSTableView (possibly embedded in a Scroll view)
*/
@ -202,14 +412,14 @@
scrollView = [[object superview] superview];
isScrollView = [ scrollView isKindOfClass: [NSScrollView class]];
if (control == optionMatrix)
if (control == selectionMatrix)
{
flag = ([[control cellAtRow: 0 column: 0] state] == NSOnState) ? YES : NO;
[object setAllowsMultipleSelection: flag];
[object setGormAllowsMultipleSelection: flag];
flag = ([[control cellAtRow: 1 column: 0] state] == NSOnState) ? YES : NO;
[object setAllowsEmptySelection: flag];
[object setGormAllowsEmptySelection: flag];
flag = ([[control cellAtRow: 2 column: 0] state] == NSOnState) ? YES : NO;
[object setAllowsColumnSelection: flag];
[object setGormAllowsColumnSelection: flag];
}
else if ( (control == verticalScrollerSwitch) && isScrollView)
@ -239,9 +449,9 @@
flag = ([[control cellAtRow: 0 column: 0] state] == NSOnState) ? YES : NO;
[object setDrawsGrid: flag];
flag = ([[control cellAtRow: 1 column: 0] state] == NSOnState) ? YES : NO;
[object setAllowsColumnResizing: flag];
[object setGormAllowsColumnResizing: flag];
flag = ([[control cellAtRow: 2 column: 0] state] == NSOnState) ? YES : NO;
[object setAllowsColumnReordering: flag];
[object setGormAllowsColumnReordering: flag];
}
else if( control == tagField )
{
@ -249,6 +459,7 @@
}
[scrollView setNeedsDisplay: YES];
}
- (void) _getValuesFromObject: anObject
@ -265,14 +476,14 @@
{
return;
}
[selectionMatrix deselectAllCells];
if ([anObject allowsMultipleSelection])
[optionMatrix selectCellAtRow: 0 column: 0];
if ([anObject allowsEmptySelection])
[optionMatrix selectCellAtRow: 1 column: 0];
if ([anObject allowsColumnSelection])
[optionMatrix selectCellAtRow: 2 column: 0];
if ([anObject gormAllowsMultipleSelection])
[selectionMatrix selectCellAtRow: 0 column: 0];
if ([anObject gormAllowsEmptySelection])
[selectionMatrix selectCellAtRow: 1 column: 0];
if ([anObject gormAllowsColumnSelection])
[selectionMatrix selectCellAtRow: 2 column: 0];
if (isScrollView)
{
@ -299,9 +510,9 @@
[optionMatrix deselectAllCells];
if ([anObject drawsGrid])
[optionMatrix selectCellAtRow: 0 column: 0];
if ([anObject allowsColumnResizing])
if ([anObject gormAllowsColumnResizing])
[optionMatrix selectCellAtRow: 1 column: 0];
if ([anObject allowsColumnReordering])
if ([anObject gormAllowsColumnReordering])
[optionMatrix selectCellAtRow: 2 column: 0];
[[tagField cellAtIndex:0] setIntValue:[anObject tag]];
}