File: programming/cocoa/Filie.zip/Filie/Filie/UKFileInfoProtocol.h


/* =============================================================================
    PROJECT:    Filie
    FILE:       UKFileInfoProtocol.h
    
    COPYRIGHT:  (c) 2004 by M. Uli Kusterer, all rights reserved.
    
    AUTHORS:    M. Uli Kusterer - UK
    
    LICENSES:   GNU GPL, Modified BSD
    
    REVISIONS:
        2004-12-09  UK  Created.
   ========================================================================== */
 
// -----------------------------------------------------------------------------
//  Protocols:
// -----------------------------------------------------------------------------
 
/*
    Methods that a class implementing some sort of file info inspector needs to
    implement.
    
    Each delegate retains this object and releases it when it goes away.
*/// The file attributes as currently being displayed (including user's changes). May contain UKFileInfoMixedValueIndicator objects if multiple selection. May return NIL.
// Specify the file attributes to display. May contain UKFileInfoMixedValueIndicator objects if multiple selection. dict may be NIL to clear all attributes in preparation to reflecting a new selection.
// Merges the current file attributes with dict, replacing any values that aren't the same with UKFileInfoMixedValueIndicator objects. Automatically sets the isMultipleSelection flag if it had to merge anything.
// Sets file attributes to NIL, then sends provideAttributesToInfoController: to delegates to get their current attributes.
// Sends takeAttributes:fromInfoController: to delegates apply the current attributes to them.
// Focus or bring to front this info controller's GUI and call revert: so it contains current info.
// Sends resignFromInfoController: to all delegates.
// Panel should indicate that the selection contains several items.
// Array of id<UKFileInfoDelegate> objects.
// Array of id<UKFileInfoDelegate> objects.
// Is really id<UKFileInfoDelegate>, but protocols can't be forward-declared.
// Is really id<UKFileInfoDelegate>, but protocols can't be forward-declared.
/*
    Methods sent to the delegates:
*/// When it gets this, each delegate should use addFileAttributes to add its attributes to the controller's:
// When it gets this, each delegate should take the attributes passed (which should be the same as fileAttributes)
//  and apply them to itself. If any item is a UKFileInfoMixedValueIndicator (call isDifferentAcrossSelectedItems to
//  determine this easily), it should be ignored and the old value for this attribute be used.
// Sent from the info controller to each delegate when the controller wants to go away.
//  E.g. if the user clicks the close box of an inspector.
 

This code uses the PclZip Zip File reading code, which is subject to the GNU LGPL. It also uses the GeSHi syntax highlighter, subject to the GPL. Ask if you want this for your own web site, it's free.