                    E N D E A V O U R   M A R K   I I

                          V E R S I O N   2.4.6

                        H A C K I N G   G U I D E


                    http://wolfpack.twu.net/Endeavour2/

              Copyright (C) 1997-2004 WolfPack Entertainment
                       http://wolfpack.twu.net/


        For contributors, builders, or those interested in the finer
        details behind the scenes; this document details the source
        files with their related purpose in this program along with
        outlines of non-intuitive areas of the code.

        Note: Version represented in this document may be out of date,
        verify version above with actual version of accompanying source.

--------
CONTENTS

        * Submitting Changes
        * Source Layout

------------------
SUBMITTING CHANGES

	            ! ! !   I M P O R T A N T   ! ! !

        Changes ARE NEVER ACCEPTED *before* initial contact with
        authors, please contact authors *first* before submitting
        changes.

	Many contributors overlook certain issues in their contributions
	or that parts of their contributions may not be comparable
	resulting in wasted effort. We do not want to see you waste you
	time and energy, so please ask first!

        The addresses for contact are listed here:

	> http://wolfpack.twu.net/contacts.html


-------------
SOURCE LAYOUT

        Note, $TOPLEVEL represents this source's toplevel directory.
        Most (not all) .c and .cpp files will have an accompanying .h
        file with the same name.


        In $TOPLEVEL/include:

        These file are global include files for most of the general
        globally shared functions.


        In $TOPLEVEL/endeavour2:

        This is the source directory for the primary program.

        Makefile.*      Makefiles for compiling and installing under
                        UNIXes.

        Makefile.srclist        List of header files and sources for
                                other Makefiles.

	aboutdlg.c		About Dialog creation, modification, and
				deletion.

	archiveinfo.c		Archive information dialog.

	archiveopts.c		Archive adding and extracting options
				dialog.

	archiver.c		Archiver creation, modification, and
				deletion.
	archivercb.c		Archiver general callbacks.
	archivercontents.c	Archiver contents GtkCList management.
	archiverdnd.c		Archiver drag & drop callbacks and
				procedures.
	archiveropcb.c		Archiver operation callbacks and
				procedures.

	browser.c		File browser creation, modification, and
				deletion.
	browsercb.c		File browser general callbacks.
	browsercontents.c	File browser contents GtkCList management.
	browserdirtree.c	File browser directory GtkCTree management.
	browserdnd.c		File browser drag & drop callbacks and
				procedures.
	browseropcb.c		File browser operation callbacks and
				procedures.

	cdialog.c		Confirmation dialog functions.

	cfg.c			Configuration items & lists management.
				See edvcfglist.h for defination of list.

	cfgfio.c		Configuration file IO.

	conmsg.c		Console Message Display Dialog, for
				displaying stdout and stderr in a
				dialog.

	compiletimeinfo.h	Generated by the Makefile, contains
				information about the compiler and
				related values of interest.

	config.h		Compile time master configuration for this
				program. Contains definations for program
				name, version, language, copyright, and
				help messages.

	csd.c			Color selection dialog functions.

	deskicon.c		Desktop icon functions.

	devicesedit.c		Devices edit window creation, modification,
				deletion, and callbacks.
	deviceswin.c		Devices list window creation, modification,
				deletion, and callbacks.

	disk.cpp		Path utility functions (ie directory listing).

	editclist.c		Editable GtkCList creation, management, and
				deletion.

	edvarchobj.c		Endeavour archive object reference structures
                                management.
	edvarchfio.c		Endeavour archive object statistics fetching
				from disk.
	edvarchop.c		Endeavour archive object adding and
				extracting procedures.
	edvcb.c			Endeavour core callbacks and signal emitters.
	edvconfirm.c		Endeavour confirmation dialog mapping and
				querying, uses the confirmation dialog
				(cdialog.c).
	edvcursor.c		Endeavour GdkCursors management.
	edvcustomize.c		Creates the Customize window, see optwin.c
				for the base window creation, modification,
				and deletion.
	edvdate.c		Endeavour date formatting.
	edvdde.c		Endeavour low-level Dynamic Data Exchange
				parsing, used for Cut/Copy/Paste and Drag &
				Drop operations.
	edvdevices.c		Endeavour Devices.
	edvdevicesfio.c		Endeavour Devices opening & saving to/from
				file.

	edvfcreate.c		Endeavour disk object creation procedures.
	edvfind.c		Endeavour find objects procedures.
	edvfop.c		Endeavour disk object linking, moving, and
				copying procedures.
	edvhelp.c		Help browser calling.
	edvhistory.c		Endeavour operations history list management.
	edvid.c			User and group ID list management and
				formatting.

	edvinterps.c		Endeavour InterPS (Inter Process) lock link
				and command sending & fetching.
	edvinterpsop.c		Endeavour InterPS command processing.

	edvlistcb.c		Standard callbacks for the GtkCList and
				Thumbs List (primarly for keyboard and
				pointer scrolling).
	edvlistseek.c		Matches character to a GtkCList row or
				Thumbs List thumb who's value starts with
				that character.
	edvmimetypes.c		Endeavour MIME Types.
	edvmimetypesfio.c	Endeavour MIME Types opening & saving
				to/from file.
	edvmimetypesfiomailcap.c	Mailcap importing/exporting
					to/from file.
	edvmimetypesfiomediatypes.c	Media Types importing/exporting
					to/from file.
	edvmount.c		Endeavour mount and unmount procedures.
	edvobj.c		Endeavour disk object reference structures
				management.
	edvop.c			Endeavour core operation procedures.
	edvopen.c		Endeavour disk object opening, matches an
				object with appropriate MIME Type and runs
				the appropriate application.
	edvoptions.c		Creates the Options window, see opwin.c for
				the base window creation, modification, and
				deletion.
	edvpixmap.c		Endeavour pixmaps, used for sharing pixmaps
				that are used internally
	edvrecbin.c		Endeavour recycled objects reference structures
				management.
	edvrecbinfio.c		Endeavour recycled objects low-level file
				IO.
	edvrecbinfop.c		Endeavour recycled objects file operation
				procedures (one level above edvrecbinfio.c).
	edvstatusbar.c		Endeavour status bar creation, management, and
				deletion.
	edvtypes.h		Endeavour fundimental data types.
	edvutils.c		Endeavour utility functions (that do not
				require GTK+).
	edvutilsgtk.c		Endeavour GTK+ utility functions.
	endeavour.h		Endeavour core header file.
	fb.c			(Simple) file browser functions.
	findbar.c		Find bar creation, management, and deletion.
	findwin.c		Find objects window creation, management, and
				deletion.
	findwincb.c		Find objects window general callbacks.
	fio.cpp			Low-level file IO.
	fopdialog.c		File operations dialog, for linking, moving,
				copying, chmod, and chowning disk objects.
	fprompt.c		Floating prompt functions, floating prompt is
				often used as an interfacing widget to the user
				for prompting a new name of a disk object.
	fsd.c			Font selection dialog functions.
	guiutils.c		GTK/GDK utility functions.
	imbr.c			Image browser creation, management, and
				deletion.
	imbrcb.c		Image browser general callbacks.
	imbrdnd.c		Image browser drag & drop callbacks and
				procedures.
	imbrimgview.c		Image browser image viewer management.
	imbropcb.c		Image browser operations callbacks and
				procedures.
	imbrtlist.c		Image browser thumbs list management.
	imgview.c		Image viewer functions.
	imgviewcrop.c		Image viewer cropping functions.
	main.c			Endeavour core creation, management, and
				deletion. See edvcb.c for the main timeout
				callback.
	mimetypesedit.c		MIME Types edit window creation, management,
				deletion, and callbacks.
	mimetypeswin.c		MIME Types list window creation, management,
				deletion, and callbacks.
	mountbar.c		Endeavour mount bar creation, management,
				deletion, and callbacks.
	optwin.c		Options window creation, management, and
				deletion.
	optwinop.c		Options window configuration fetch and
				apply functions.
	pdialog.c		Prompt dialog functions.
	piechart.c		Pie chart functions.
	prochandle.cpp		Low-level process running.
	progressdialog.c	Progress dialog functions.
	propwin.c		Properties window creation, management,
				deletion, and callbacks.
	pulist.c		Popup list functions.
	recbin.c		Recycle bin creation, management, and deletion.
	recbincb.c		Recycle bin general callbacks.
	recbincontents.c	Recycle bin contents list management.
	recbindiskicon.c	Recycle bin desktop icon creation, management,
				deletion, and callbacks. Note that this is
				independent from the rest of the recycle bin
				functions.
	recbindnd.c		Recycle bin drag & drop callbacks and
				procedures.
	recbinopcb.c		Recycle bin operation callbacks and procedures.
	rundlg.c		Run dialog creation, management, delection,
				and callbacks.
	stacklist.c		Stack list functions, this is a pair of
				GtkCLists used for configuration of tool bars
				and list headings.
	strexp.cpp		String `exploding'.
	string.cpp		Low-level string manipulation functions.
	tga.cpp			Targa image format loading and saving to
				file.
	tgadither.cpp		Targa image dithering functions supplimentary
				to tga.cpp.
	tlist.c			Thumbs list functions, used in the image browser.
	toolbar.c		Tool bar functions.


        In $TOPLEVEL/endeavour2/format.front:

        This is the source directory for the format.front program.

        Makefile.*      Makefiles for compiling and installing under
                        UNIXes.

        Makefile.srclist        List of header files and sources for
                                other Makefiles.

        compiletimeinfo.h       Generated by the Makefile, contains
                                information about the compiler and
                                related values of interest.

        config.h                Compile time configuration for this
                                program. Contains definations for program
                                name, version, language, copyright, and
                                help messages. Some are inherited from
                                ../config.h.

	formatcb.c		Format Manager window callbacks.

	formatmanager.c		Format Manager window creation and
				deletion.

	main.c			Window creation, management timeout,


        In $TOPLEVEL/endeavour2/fsck.front:

        This is the source directory for the fsck.front program.

        Makefile.*      Makefiles for compiling and installing under
                        UNIXes.

        Makefile.srclist        List of header files and sources for
                                other Makefiles.

        compiletimeinfo.h       Generated by the Makefile, contains
                                information about the compiler and
                                related values of interest.

	config.h		Compile time configuration for this
				program. Contains definations for program
				name, version, language, copyright, and
				help messages. Some are inherited from
				../config.h.

	fsckcb.c		FSCK Manager window callbacks.

	fsckmanager.c		FSCK Manager window creation and
				deletion.

        main.c                  Window creation, management timeout,
				and window destruction.


        In $TOPLEVEL/endeavour2/hedit:

	This is the source directory for the hedit program, a hex
	editor.

        Makefile.*      Makefiles for compiling and installing under
                        UNIXes.

        Makefile.srclist        List of header files and sources for
                                other Makefiles.

        compiletimeinfo.h       Generated by the Makefile, contains
                                information about the compiler and
                                related values of interest.

        config.h                Compile time configuration for this
                                program. Contains definations for program
                                name, version, language, copyright, and
                                help messages. Some are inherited from
                                ../config.h.

	hview.c			Hex view widget creation, management,
				and deletion.

	hviewcb.c		Hex view widget callbacks.

	main.c			Window creation, management timeout,
                                and window destruction.


        In $TOPLEVEL/endeavour2/lib:

	This is the source directory for the Endeavour2 api library.

        Makefile.*      Makefiles for compiling and installing under
                        UNIXes.

        Makefile.srclist        List of header files and sources for
                                other Makefiles.

        compiletimeinfo.h       Generated by the Makefile, contains
                                information about the compiler and
                                related values of interest.

        config.h                Compile time configuration for this
                                program. Contains definations for program
                                name, version, language, copyright, and
                                help messages. Some are inherited from
                                ../config.h.

	cfg.c			Same as ../cfg.h

	edvcfglist.h		Same as ../edvcfglist.h

	edvcontext.c		Endeavour2 API context.

        edvdevices.c		Endeavour Devices.
        edvdevicesfio.c		Endeavour Devices opening & saving
				to/from file.
	edvdevicesget.c		Endeavour2 API Device querying & fetching.

	edvget.c		Endeavour2 API configuration value fetching.

	edvhelp.c		Endeavour2 API help displaying.

	edvhistory.c		Endeavour2 API History event logging.

	edvmessage.c		Endeavour2 API message and sound output.

	edvmimetypes.c		Endeavour MIME Types.
	edvmimetypesfio.c	Endeavour MIME Types opening & saving
				to/from file.
	edvmimetypesget.c	Endeavour2 API MIME Types querying &
				fetching.
	edvmimetypesinstall.c	Endeavour2 API MIME Types installing.

	edvnotify.c		Endeavour2 API notifies the running
				Endeavour process about external events,
				such as disk object add, modify, and
				removal events.

	edvopen.c		Endeavour2 API object opening.

	edvrecycle.c		Endeavour2 API object recycling.

	edvtypes.h		Same as ../edvtypes.h

	edvutils.h		Same as ../edvutils.h

	edvwindow.c		Instructs a running Endeavour process to
				create a new window such as a file
				browser or image browser.

	endeavour2-config.c	Endeavour2 api configuration reporter.


        In $TOPLEVEL/endeavour2/lib/demos:

	This is the source directory for demos that use the Endeavour2
	api library.


        In $TOPLEVEL/endeavour2/ziptool.front:

        This is the source directory for the ziptool.front program.

        Makefile.*      Makefiles for compiling and installing under
                        UNIXes.

        Makefile.srclist        List of header files and sources for
                                other Makefiles.

        compiletimeinfo.h       Generated by the Makefile, contains
                                information about the compiler and
                                related values of interest.

        config.h                Compile time configuration for this
                                program. Contains definations for program
                                name, version, language, copyright, and
                                help messages. Some are inherited from
                                ../config.h.

        main.c                  Window creation, management timeout,
                                and window destruction.

	ziptools.c		Zip Tools window creation and deletion.

	ziptoolscb.c		Zip Tools window callbacks.

	ziptoolsio.c		IO functions for the ziptool program.



                                                         -----------------
                                                         ENDEAVOUR MARK II
