This is NIProperty.h in view mode; [Download] [Up]
/* SambaManger. A graphical frontend to configure the NetInfo enhanced samba. Copyright (C) 1998 Robert Frank 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. Robert Frank, frank@ifi.unibas.ch */ #import <appkit/appkit.h> #import <netinfo/ni.h> #define NI_VALUE_NOT_FOUND NI_INDEX_NULL #define NI_FIND_EXACT YES #define NI_FIND_REGEX NO @interface NIProperty:Object { id delegate; // Where to send methods to const char *name; // The parameter's name ni_proplist *properties; // Pointer to the property list // u_int ni_proplist_len; // ni_property *ni_proplist_val; // ni_name nip_name; // ni_namelist nip_val; // u_int ni_namelist_len // ni_name *ni_namelist_val int tag; // An arbitrary integer value int setMode; // The panel to show for selecting existing values (NIPT_...) const char *path; // The path or directory for the panels const char *title; // The title for the panels char *temp; // Temporary storage. } + init:strgs; - init:sender properties:(ni_proplist *)props name:(const char *)label; - free; - display; - (const char *)name; - updateProperty; - updateProperty:(const char *)value default:(BOOL)remove; - (int)values; - (const ni_namelist *)valueList; - (const char *)valueAt:(int)idx; - insertValue:(const char *)value; // Creates the property if neccessary. - insertValue:(const char *)value at:(int)idx; // Creates the property if neccessary. - updateValue:(const char *)value at:(int)idx; // Creates the property if neccessary, // removes it if value is NULL. - deleteValue:(int)vindex; - (int)findValue:(const char *)value how:(BOOL)mode; - removeValues; - (int)index; - delegate; - setDelegate:anObject; - (int)tag; - setTag:(int)anInt; // Methods to which the delegate may respond: // // For StringProperty and BrowserProperty: - (int)willSelect:sender what:(int)kind path:(char **)ni_path title:(char **)panel_title state:(int *)anInt; // Called before displaying a selection panel (file, directory, NetInfo) // If this returns NIPT_NONE, no panel is shown. // When selecting from NetInfo, path and title may be changed. The strings // pointed to by path and title are not freed. State is an arbitrary value passed back // when calling didSelect. // - (int)didSelect:sender what:(int)kind value:(char **)selection domain:(const char *)niDomain state:(int)anInt; // Called after a selection was made. Selection will hold a copy of the selection. // The copy was allocated in [NXApp zone] and may be freed (must set *selection to NULL) // or reallocated. // If the return value is greater than zero, the selection will be presented again. // If the return value is zero, the returned value is used. If the return // value is less than zero, the selection is discarded. State is the value passed back to // willSelect. // - (BOOL)propertyWillChange:sender value:(char **)string default:(BOOL *)remove index:(int)anInt; // Called before writing any changes to the value list. The value is a pointer to // a copy of the string to be set or NULL for the default. The memory occupied by the // string will be freed. The string can be reallocated or freed from the [NXApp xone] zone. // The index is the index into the property's value list. A value of // NI_VALUE_NOT_FOUND indicates no original value. If remove is true, the value is to // be removed from the value list. If the value list becomes empty, the entire property // will be removed. A return value of YES will abort the operation and // will reset the value to its previous state. // - propertyDidChange:sender value:(const char *)string; // Called after a change was accomplished. The string may not be changed. The value may be // NULL indicating a default (i.e. the property was removed). // // // Methods which will be sent to the text field. These must be implemented if a GUI // component wishes to emulate a text field. Common methods for: // NICharProperty, NIIntProperty, NIStringProperty, and NIBrowserProperty // - setTextDelegate:sender // - setStringValue:(const char *)aString; // - (const char *)stringValue; // for NIIntProperty only: // - setIntValue:(int); // for NIBrowserProperty only: // - selectText:sender; // // Methods which must be sent from the text field. // - textDidEnd:textObject endChar:(unsigned short)whyEnd // textDidChange:sender // Local to subclasses. Do not call directly! - (const char *)openNetInfo:(const char *)baseDir withTitle:(const char *)openTitle domain:(const char **)from; - (const char *)openFilePath:(BOOL)dirsOnly; - hasChanged:sender; - (const char *)usePanel:sender; @end @interface NIBoolProperty:NIProperty { id outlet; // The id of the GUI item char *yes, *no; } - init:sender properties:(ni_proplist *)props name:(const char *)label outlet:o; - setValues:(const char *)true :(const char *)false; @end @interface NICharProperty:NIProperty { id outlet; // The id of the GUI item BOOL needUpdate; } - init:sender properties:(ni_proplist *)props name:(const char *)label outlet:o; @end @interface NIIntProperty:NICharProperty { id slider; // The id of any slider; may be nil int intVal; // The current value const char *defaultText; // The default text (value: -1) const char *zero; // The text for the zero value; may be NULL } - init:sender properties:(ni_proplist *)props name:(const char *)label text:t slider:s default:(const char *)d zero:(const char *)z; @end @interface NIStringProperty:NICharProperty { id button; // The id of the set ... button } - init:sender properties:(ni_proplist *)props name:(const char *)label text:t button:b mode:(int)m path:(const char *)p title:(const char *)tString; @end @interface NIBrowserProperty:NIProperty { id outlet; // The id of the browser id textField; // The id of any text field; may be nil id addButton; id deleteButton; } - init:sender properties:(ni_proplist *)props name:(const char *)label text:t browser:b mode:(int)m path:(const char *)p add:a remove:r title:(const char *)tString; @end @interface NIPopupProperty:NIProperty { id outlet; // The id of the menu's target button const char *defaultText; } - init:sender properties:(ni_proplist *)props name:(const char *)label outlet:o default:(const char *)d; @end @interface NICallProperty:NIProperty { SEL display; } - init:sender properties:(ni_proplist *)props name:(const char *)label displayAction:(SEL)action; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.