ftp.nice.ch/pub/next/unix/disk/SambaManager.1.0.NIHS.s.tar.gz#/SambaManager/NIDirectory.h

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.