🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.mac
Article #24234

Questions about File/List Managers

#24234
From: Andrew Vignaux
Date: Mon, 18 Jan 1988 22:54
59 lines
2802 bytes
I have a few questions about the "File Manager" and "List Manager"
sections of IM4.

			File Manager

IM4 says that the directory ID of the root of a volume has dirID==2 with
the name of the directory the same as the name of the volume.  However,
when playing around, I found the parent dirID of the root seems to have a
dirID==1.  This means I can write a "climb_directory_tree" routine like:

    if (/* I am running HFS */)
	dir = 0L;
	while (dir != 1L) {
	    di.ioNamePtr = (StringPtr) name;
	    di.ioVRefNum = vol;
	    di.ioFDirIndex = -1;
	    di.ioDrDirID = dir;
	    
	    PBGetCatInfo (&di, False);
	    
	    /* do something -- like prepending the name onto a path */
	    
	    dir = di.ioDrParID;
	}

where "vol" can be a volume ref number or a WD num (e.g. sf_reply.vRefNum).
This means I don't need to do a separate HGetVInfo or muck around with
special cases with VRefNums.

Is the dirID==1 mentioned in IM4-"File Manager"?  Can I use it safely if it
is not mentioned (I am only using it as the stopping condition)?  Is there
anything wrong with using GetCatInfo() like this?


			List Manager

I have had a few problems convincing the list manager to do what I want.

I would like to set up a window (with grow, zoom, go-away) which contains a
single (1 column wide) list -- I do not want a horizontal scroll bar.  Is
there some marvelous combination of flags (what does hasGrow do?) that I can
pass to NewList(), to give me the vertical scroll bar with the list either
	* using the horizontal scroll bar area (preferred!)
	* not using the horizontal scroll bar area and NOT UPDATING IT!

Secondly, when I grow the window, the List Manager trys to scroll the list
so that no undefined cells are shown.  However because the update is
redrawn inside BeginUpdate() / EndUpdate() the screen is not redrawn
correctly.

Finally, I am passing a string, which is stored in the cell's data, to
DrawString() inside my LDEF.  Do I need to lock the "cells" handle or will
DrawString() invalidate its argument by moving or purging handles.

	- Andrew

I've certainly never come across any irreversible mathematics involving sofas.
------------------------------------------------------------------------------
Domain address: andrew@comp.vuw.ac.nz   Path address: ...!uunet!vuwcomp!andrew
Technical Details
Message-ID: <13213@comp.vuw.ac.nz>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!munnari!vuwcomp!andrew

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!munnari!vuwcomp!andrew
From: andrew@comp.vuw.ac.nz (Andrew Vignaux)
Newsgroups: comp.sys.mac
Subject: Questions about File/List Managers
Message-ID: <13213@comp.vuw.ac.nz>
Date: 18 Jan 88 22:54:56 GMT
Reply-To: andrew@comp.vuw.ac.nz (Andrew Vignaux)
Organization: Comp Sci, Victoria Univ, Wellington, New Zealand
Lines: 59
Keywords: file list manager
Summary: Some technical questions about information in IM4