/** GSHelpManagerPanel.m GSHelpManagerPanel displays a help message for an item. Copyright (C) 1999 Free Software Foundation, Inc. Author: Pedro Ivo Andrade Tavares Date: September 1999 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. */ #import "AppKit/NSApplication.h" #import "AppKit/NSAttributedString.h" #import "AppKit/NSTextView.h" #import "AppKit/NSTextContainer.h" #import "AppKit/NSTextStorage.h" #import "AppKit/NSScrollView.h" #import "AppKit/NSButton.h" #import "AppKit/NSClipView.h" #import "AppKit/NSColor.h" #import "AppKit/NSImage.h" #import "GNUstepGUI/GSHelpManagerPanel.h" #import "GSGuiPrivate.h" @implementation GSHelpManagerPanel static GSHelpManagerPanel* _GSsharedGSHelpPanel; + (id) sharedHelpManagerPanel { if (!_GSsharedGSHelpPanel) _GSsharedGSHelpPanel = [[GSHelpManagerPanel alloc] init]; return _GSsharedGSHelpPanel; } - (id)init { self = [super initWithContentRect: NSMakeRect(100, 100, 470, 200) styleMask: NSTitledWindowMask | NSResizableWindowMask backing: NSBackingStoreRetained defer: NO]; if (self) { NSRect scrollViewRect = {{8, 40}, {454, 152}}; NSRect buttonRect = {{390, 6}, {72, 27}}; NSRect r; NSScrollView *scrollView; NSButton *button; [self setReleasedWhenClosed: NO]; [self setFloatingPanel: YES]; [self setTitle: NSLocalizedString(@"Help", @"")]; scrollView = [[NSScrollView alloc] initWithFrame: scrollViewRect]; [scrollView setBorderType: NSBezelBorder]; [scrollView setHasHorizontalScroller: NO]; [scrollView setHasVerticalScroller: YES]; [scrollView setAutoresizingMask: NSViewHeightSizable | NSViewWidthSizable]; r = [[scrollView contentView] frame]; textView = [[NSTextView alloc] initWithFrame: r]; [textView setRichText: YES]; [textView setEditable: NO]; [textView setSelectable: NO]; [textView setHorizontallyResizable: NO]; [textView setVerticallyResizable: YES]; [textView setMinSize: NSMakeSize (0, 0)]; [textView setMaxSize: NSMakeSize (1E7, 1E7)]; [textView setAutoresizingMask: NSViewHeightSizable | NSViewWidthSizable]; [[textView textContainer] setContainerSize: NSMakeSize(r.size.width, 1e7)]; [[textView textContainer] setWidthTracksTextView: YES]; [textView setUsesRuler: NO]; [scrollView setDocumentView: textView]; RELEASE (textView); [[self contentView] addSubview: scrollView]; RELEASE (scrollView); button = [[NSButton alloc] initWithFrame: buttonRect]; [button setAutoresizingMask: NSViewMinXMargin | NSViewMaxYMargin]; [button setButtonType: NSMomentaryLight]; [button setTitle: NSLocalizedString(@"OK", @"")]; [button setKeyEquivalent: @"\r"]; [button setImagePosition: NSImageRight]; [button setImage: [NSImage imageNamed: @"common_ret"]]; [button setAlternateImage: [NSImage imageNamed: @"common_retH"]]; [button setTarget: self]; [button setAction: @selector(buttonAction:)]; [[self contentView] addSubview: button]; RELEASE (button); [self makeFirstResponder: button]; } return self; } - (void)setHelpText:(NSAttributedString *)helpText { [[textView textStorage] setAttributedString: helpText]; } - (void)buttonAction:(id)sender { [self close]; } - (void) close { if ([self isVisible]) { [NSApp stopModal]; } [super close]; } @end