quakeforge/tools/Forge/InspectorControl.m

131 lines
3 KiB
Mathematica
Raw Normal View History

#import "qedefs.h"
// Add .h-files here for new inspectors
#import "Things.h"
#import "TexturePalette.h"
#import "Preferences.h"
id inspcontrol_i;
@implementation InspectorControl
- (id) awakeFromNib
{
inspcontrol_i = self;
currentInspectorType = -1;
contentList = [[NSMutableArray alloc] init];
windowList = [[NSMutableArray alloc] init];
itemList = [[NSMutableArray alloc] init];
// ADD NEW INSPECTORS HERE...
[windowList addObject: win_project_i];
[contentList addObject: [win_project_i contentView]];
[itemProject_i setKeyEquivalent: @"1"];
[itemList addObject: itemProject_i];
[windowList addObject: win_textures_i];
[contentList addObject: [win_textures_i contentView]];
[itemTextures_i setKeyEquivalent: @"2"];
[itemList addObject: itemTextures_i];
[windowList addObject: win_things_i];
[contentList addObject: [win_things_i contentView]];
[itemThings_i setKeyEquivalent: @"3"];
[itemList addObject: itemThings_i];
[windowList addObject: win_prefs_i];
[contentList addObject: [win_prefs_i contentView]];
[itemPrefs_i setKeyEquivalent: @"4"];
[itemList addObject: itemPrefs_i];
[windowList addObject: win_settings_i];
[contentList addObject: [win_settings_i contentView]];
[itemSettings_i setKeyEquivalent: @"5"];
[itemList addObject: itemSettings_i];
[windowList addObject: win_output_i];
[contentList addObject: [win_output_i contentView]];
[itemOutput_i setKeyEquivalent: @"6"];
[itemList addObject: itemOutput_i];
[windowList addObject: win_help_i];
[contentList addObject: [win_help_i contentView]];
[itemHelp_i setKeyEquivalent: @"7"];
[itemList addObject: itemHelp_i];
// Setup inspector window with project subview first
[inspectorView_i setAutoresizesSubviews: YES];
inspectorSubview_i = [contentList objectAtIndex: i_project];
[inspectorView_i addSubview: inspectorSubview_i];
currentInspectorType = -1;
[self changeInspectorTo: i_project];
return self;
}
//
// Sent by the PopUpList in the Inspector
// Each cell in the PopUpList must have the correct tag
//
- (void) changeInspector: (id) sender
{
id cell;
cell = [sender selectedCell];
[self changeInspectorTo: [cell tag]];
return;
}
//
// Change to specific Inspector
//
- (void) changeInspectorTo: (insp_e) which
{
id newView;
NSRect r;
id cell;
NSRect f;
if (which == currentInspectorType)
return;
currentInspectorType = which;
newView = [contentList objectAtIndex: which];
cell = [itemList objectAtIndex: which]; // set PopUpButton title
[popUpButton_i setTitle:[cell title]];
[inspectorView_i replaceSubview:inspectorSubview_i with:newView];
r = [inspectorView_i frame];
inspectorSubview_i = newView;
[inspectorSubview_i setAutoresizingMask: NSViewHeightSizable | NSViewWidthSizable];
[inspectorSubview_i resizeWithOldSuperviewSize: r.size];
[inspectorSubview_i lockFocus];
r = [inspectorSubview_i bounds];
PSsetgray (NSLightGray);
NSRectFill (f);
[inspectorSubview_i unlockFocus];
[inspectorView_i display];
return;
}
- (insp_e) currentInspector
{
return currentInspectorType;
}
@end