File: programming/cocoa/

/* =============================================================================
    PROJECT:    Filie
    FILE:       UKFolderController.h
    COPYRIGHT:  (c) 2004 by M. Uli Kusterer, all rights reserved.
    AUTHORS:    M. Uli Kusterer - UK
    LICENSES:   GNU GPL, Modified BSD
        2004-04-15  UK  Created.
   ========================================================================== */
// -----------------------------------------------------------------------------
//  Headers:
// -----------------------------------------------------------------------------
#import <Foundation/Foundation.h>
#import "UKFSItemController.h"
#import "UKFSItem.h"
#import "UKFSDataSource.h"
#import "UKNibOwner.h"
#import "UKFileWatcher.h"
// -----------------------------------------------------------------------------
//  Forwards:
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
//  Classes:
// -----------------------------------------------------------------------------
// Path of the folder we're listing.
// List of FSItems for our contents.
// Watches whether any of our files have changed (can we share this between controllers so we have only one watcher thread?).
// View that shows our files (icon view).
// Progress indicator to show users when we're busy.
// Text field containing info on what we're busy with, or "377 objects - 500k free, you're screwed" status msg.
// Button for turning on/off showing of icon previews for image files.
// Field for filtering what items to display in our window (what not to grey out, in the case of icon view).
// Names of files to explicitly hide from view.
    UKThreadActionQueue*        reloadIconQueue;    // Queue for reload icon messages in a second thread (FIX ME! uhh.. *main* thread???).
    UKPushbackMessenger*            coalescer;          // Object that coalesces all similar messages it receives within a particular amount of time before sending what's left to this object.
// Nesting level of progress indicator.
    NSSize                          iconSize;           // Size for icons in our dist view.
// Search string for filter field.
// Hide files whose names begin with a period?
// Show previews instead of icons?
// List of names of files to show even if their names start with a period.
// Start time for output how long a particular progress took (debugging only).
// Object we call upon to actually list the files.
    UKFolderMetaStorage*            filieStore;         // Window and item positions, view options etc.
// >= 0 if it's a rearrangeItemsByTag: tag for keeping the items sorted.
// Here we keep all new items that were added to our folder during loadFolderContents:. Doubles as a "busy loading" flag.
// During loadFolderContents:, we move all old items in here that still exist. At the end we swap the lists out.
// Cached index for itemForFile: that allows faster sequential access.
// When were our contents last modified, or when was the last modification we detected since saving.
// For subclassers:

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.