#include "QF/sys.h" #include "InspectorControl.h" // Add .h-files here for new inspectors #include "Things.h" #include "TexturePalette.h" #include "Preferences.h" InspectorControl *inspcontrol_i; @interface CustomView: NSView @end @implementation CustomView @end @implementation InspectorControl - (void) awakeFromNib { NSBundle *mainBundle = [NSBundle mainBundle]; NSString *path = [mainBundle pathForResource: @"help" ofType: @"txt" inDirectory: nil]; NSString *help = [NSString stringWithContentsOfFile: path]; [helpView setString: help]; 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 setCurrentInspector: i_project]; } // Sent by the PopUpList in the Inspector // Each cell in the PopUpList must have the correct tag - (IBAction) changeInspector: sender { [self setCurrentInspector: [sender selectedTag]]; } // Change to specific Inspector - (void) setCurrentInspector: (insp_e)which { id newView; NSRect r; NSRect f; if (which == currentInspectorType) return; currentInspectorType = which; newView = [contentList objectAtIndex: which]; [popUpButton_i selectItemAtIndex: which]; [inspectorView_i replaceSubview: inspectorSubview_i with: newView]; r = [inspectorView_i frame]; inspectorSubview_i = newView; [inspectorSubview_i setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable]; r.size.width -= 4; r.size.height -= 4; [inspectorSubview_i setFrameSize: r.size]; [inspectorSubview_i lockFocus]; f = [inspectorSubview_i bounds]; [[NSColor windowBackgroundColor] set]; NSRectFill (f); [inspectorSubview_i unlockFocus]; [inspectorView_i setNeedsDisplay: YES]; } - (insp_e) currentInspector { return currentInspectorType; } @end