This is NIDirectory.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 <nikit/NIDomain.h>
#import <netinfo/ni.h>
// The different types of panels for obtaining items:
#define NIPT_NONE 0
#define NIPT_FILE 1
#define NIPT_DIR 2
#define NIPT_NETINFO 3
@interface NIDirectory:Object
{
id delegate; // Passed to NIProperty via the add... methods.
ni_name domainName; // The string with the domain or NULL.
ni_name dirName; // The string with the root of the directory.
ni_name baseName; // The string with the directory or NULL.
ni_name fullPath; // The full path if set.
ni_name saveTitle;
ni_name user; // The user to authenticate.
NIDomain *domain;
ni_id directory;
ni_proplist properties;
HashTable *hash; // The hashtable
List *list; // The linear list
}
// Create a new empty directory object. RootPath is the root to the
// NetInfo directory which will be written. If dirPath is given, this
// will be the mandatory directory to which to write the data.
+ new:sender root:(const char *)rootPath directory:(const char *)dirPath;
// Create a new directory object, show a NetInfo open panel
// and read the selected NetInfo domain and directory.
// Returns the NIDirectory object if successful.
// If any errors occur, display the error message and return nil.
+ open:sender root:(const char *)rootPath withTitle:(const char *)title;
// Initialize a domain. This is usually not called directly but is invoked
// by the class new and open methods. You can call init directly if you want
// to check for or open an existing directory without displaying an open panel.
- init:sender dom:(const char *)domPath
root:(const char *)basePath dir:(const char *)dirPath
errors:(BOOL)warn;
// Set the title to be displayed in the save panel.
- setSaveTitle:(const char *)title;
// Set the user to authenticate. May be NULL for the mandatory root.
- setAuthenticationUser:(const char *)userName;
// Save the changes to niDirectory back into NetInfo.
// Return self if successful. Displays an error message and
// returns nil on failure. The previously read data and all modifications
// remain unchanged.
- save;
// Save to a new domain/directory as selected in the NISavePanel. Return
// values same as save.
- saveToDomain;
// Delete the directory from NetInfo. Does not free the NIDirectory object.
// Returns nil on error.
- delete;
// Close and free the directory.
- close;
// Set/get the delegate to which the delegate methods are to be sent.
- setDelegate:sender;
- delegate;
// Get the domain name and the directory path
- (const char *)domainName;
- (const char *)directory;
- (const char *)baseName;
// Get the domain, handle, and directoryid
- (NIDomain *)domain;
- (void *)handle;
- (ni_id)directoryID;
// Methods for adding properties of specific types. Strings passed are only
// referenced, not copied. They must exist during the whole life time of the object.
// Returns the property object.
- addBool:(const char *)label outlet:obj;
- addChar:(const char *)label outlet:obj;
- addInt:(const char *)label text:tObj slider:sObj zero:(const char *)string;
- addString:(const char *)label outlet:obj;
- addString:(const char *)label text:tObj button:bObj mode:(int)m path:(const char *)p
title:(const char *)tString;
- addBrowser:(const char *)label browser:bObj text:tObj add:aObj remove:dObj;
- addBrowser:(const char *)label browser:bObj add:aObj remove:dObj
mode:(int)m path:(const char *)p title:(const char *)tString;
- addPopup:(const char *)label outlet:obj;
- addPopup:(const char *)label outlet:obj default:(const char *)defStrng;
- addCall:(const char *)label displayAction:(SEL)action;
- addProperty:(const char *)label;
// Transfere from NetInfo property list to the GUI
- scan;
// redisplay previously read values
- reset;
// Return the NetInfo property of the given label.
- property:(const char *)label;
@end
//******************************************************************
// Methods that the delegate should implement:
//
// Called by the open method before reading a domain. If this method returns
// NO, the open is aborted without an error and will return nil.
// - (BOOL)niDirOk:(const char *)domain path:(const char *)directory;
//
//These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.