Annotation of libwww/Library/src/HTDir.html, revision 2.1

2.1     ! frystyk     1: <HTML>
        !             2: <HEAD>
        !             3: <TITLE>Directory Browsing</TITLE>
        !             4: <!-- Changed by: Henrik Frystyk Nielsen,  2-Oct-1995 -->
        !             5: </HEAD>
        !             6: <BODY>
        !             7: 
        !             8: <H1>Directory Browsing</H1>
        !             9: 
        !            10: <PRE>
        !            11: /*
        !            12: **     (c) COPYRIGHT MIT 1995.
        !            13: **     Please first read the full copyright statement in the file COPYRIGH.
        !            14: */
        !            15: </PRE>
        !            16: 
        !            17: The directory manager generates directory listings for FTP and HTTP
        !            18: requests. This module contains the protocol independent code and it
        !            19: produces the HTML object. It is only included if either the <A
        !            20: HREF="HTFTP.html">FTP</A> or the <A HREF="HTFile.html">File</A> module
        !            21: is included. <P>
        !            22: 
        !            23: This module is implemented by <A HREF="HTDir.c">HTDir.c</A>, and it is
        !            24: a part of the <A HREF="http://www.w3.org/pub/WWW/Library/"> W3C
        !            25: Reference Library</A>.
        !            26: 
        !            27: <PRE>
        !            28: #ifndef HTDIR_H
        !            29: #define HTDIR_H
        !            30: #include "HTReq.h"
        !            31: #include "HTIcons.h"
        !            32: </PRE>
        !            33: 
        !            34: <H2>What Should the Listings Look Like?</H2>
        !            35: 
        !            36: If the <CODE>HT_DS_DES</CODE> is set then the <EM>Description</EM>
        !            37: field is added as the last column in the listing.  File descriptions
        !            38: are queried from the <A HREF="HTDescpt.html">HTDescript
        !            39: module</A>. Make a full mask by adding/oring the following flags:
        !            40: 
        !            41: <PRE>
        !            42: typedef enum _HTDirShow {
        !            43:     HT_DS_SIZE  = 0x1,                 /* Show file size using K, M and G? */
        !            44:     HT_DS_DATE  = 0x2,                 /* Show last modified date? */
        !            45:     HT_DS_HID   = 0x4,                 /* Show hidden files? */
        !            46:     HT_DS_DES  = 0x8,                  /* Show descriptions? */
        !            47:     HT_DS_ICON  = 0x10,                        /* Show icons? */
        !            48:     HT_DS_HOTI  = 0x20                 /* Are Icons hot or cold? */
        !            49: } HTDirShow;
        !            50: 
        !            51: typedef enum _HTDirKey {
        !            52:     HT_DK_NONE = 0,                    /* No sorting */
        !            53:     HT_DK_CSEN = 1,                    /* Case sensitive */
        !            54:     HT_DK_CINS  = 2                    /* Case insensitive */
        !            55: } HTDirKey;
        !            56: </PRE>
        !            57: 
        !            58: <H3>Length of Filenames and Descriptions</H3>
        !            59: 
        !            60: The module automatically ajusts the width of the directory listing as
        !            61: a function of the file name. The width can flows dynamically between
        !            62: an upper and a lower limit.  The maximum length of
        !            63: this field is specified by
        !            64: 
        !            65: <PRE>
        !            66: extern BOOL HTDir_setWidth (int minfile, int maxfile);
        !            67: </PRE>
        !            68: 
        !            69: <H2>The Directory Object</H2>
        !            70: 
        !            71: The directory object handles the generation of a directory listing. It
        !            72: is a bit like a stream in that it accept data, but it must be
        !            73: formatted in a special way which makes the normal stream architecture
        !            74: inadequate.
        !            75: 
        !            76: <H3>Width of File Names</H3>
        !            77: 
        !            78: The module automatically ajusts the width of the directory listing as
        !            79: a function of the file name. The width can flows dynamically between
        !            80: an upper and a lower limit.
        !            81: 
        !            82: <PRE>
        !            83: extern BOOL HTDir_setWidth (int minfile, int maxfile);
        !            84: </PRE>
        !            85: 
        !            86: <H3>Create a Directory Object</H3>
        !            87: 
        !            88: Creates a structured stream object and sets up the initial HTML stuff
        !            89: Returns the dir object if OK, else NULL
        !            90: 
        !            91: <PRE>
        !            92: typedef struct _HTDir HTDir;
        !            93: 
        !            94: extern HTDir * HTDir_new (HTRequest * request, HTDirShow show, HTDirKey key);
        !            95: </PRE>
        !            96: 
        !            97: <H3>Add a Line to the List</H3>
        !            98: 
        !            99: This function accepts a directory line. "data" and "size", and
        !           100: "description" can all be NULL. Returns YES if OK, else NO
        !           101: 
        !           102: <PRE>
        !           103: extern BOOL HTDir_addElement   (HTDir *dir, char *name, char *date,
        !           104:                                 char *size, HTFileMode mode);
        !           105: </PRE>
        !           106: 
        !           107: <H3>Free a Directory Obejct</H3>
        !           108: 
        !           109: If we are sorting then do the sorting and put out the list,
        !           110: else just append the end of the list.
        !           111: 
        !           112: <PRE>
        !           113: extern BOOL HTDir_free (HTDir * dir);
        !           114: </PRE>
        !           115: 
        !           116: <PRE>
        !           117: #endif /* HTDIR */
        !           118: </PRE>
        !           119: End of declaration
        !           120: </BODY>
        !           121: </HTML>

Webmaster