This is OptionsPanel.m in view mode; [Download] [Up]
/* * Copyright (C) 1993 Robert Davis * * This program is free software; you can redistribute it and/or * modify it under the terms of Version 2, or any later version, of * the GNU General Public License as published by the Free Software * Foundation. */ static char RCSId[]="$Id: OptionsPanel.m,v 1.9 1993/05/18 03:55:27 davis Exp $"; #import <appkit/Application.h> #import <appkit/Cell.h> #import <appkit/Matrix.h> #import <appkit/Panel.h> #import <appkit/Text.h> #import "Gnuplot.h" #import "GnuplotPlot.h" #import "OptionsPanel.h" @interface OptionsPanel (Private) - _updatePanel; @end @implementation OptionsPanel - init { [super init]; return self; } - free { [panel free]; return [super free]; } - panel { return panel; } - showPanel:sender { [panel orderFront:self]; return self; } - forceUpdate { id mainWindow = [NXApp mainWindow]; if (mainWindow) status = [[mainWindow delegate] status]; else status = nil; [self _updatePanel]; return self; } - windowDidUpdate:sender { id mainWindow = [NXApp mainWindow]; Status *newStatus; if (mainWindow) newStatus = [[mainWindow delegate] status]; else { id doc; if (doc = [[NXApp delegate] currentDoc]) newStatus = [doc status]; else newStatus = nil; } if (newStatus != status) { status = newStatus; [self _updatePanel]; } return self; } // Shuts up the compiler about unused RCSId - (const char *) rcsid { return RCSId; } - textDidEnd:textObject endChar:(unsigned short)whyEnd { /* * Normally, a text-based control's action is sent only when * editting ends with a Return. We use this method to send the * action on Tab and Backtab, too. */ if (_textChanged && ((whyEnd == NX_TAB) || (whyEnd == NX_BACKTAB))) { id control = [textObject delegate]; Cell *editCell; /* * If the Control is a Matrix, we check to see if the Cell * being edited has an action, in which case we send it to * the Cell's target. Otherwise send the Control's action to * the Control's target. */ if ([control isKindOf:[Matrix class]] && [(editCell = [control selectedCell]) action]) [[editCell controlView] sendAction:[editCell action] to:[editCell target]]; else /* Otherwise, do the control's action */ [control sendAction:[control action] to:[control target]]; } _textChanged = NO; return self; } - (BOOL) textWillChange:textObject { _textChanged = YES; return NO; /* NO means it's okay for the text to change */ } @end @implementation OptionsPanel (Private) - _updatePanel { return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.