!
! Xarchie.ad : Application defaults for the X11 browser interface to Archie
!
! George Ferguson, ferguson@cs.rochester.edu, 12 Nov 1991.
!

!	-	-	-	-	-	-	-	-	-
! Non-widget resources

Xarchie.archieHost:	archie.sura.net

! Possible values are: exact, substr, subcase, or regexp
Xarchie.searchType:	exact

! Possible values are: default, invdate
Xarchie.sortType:	default

! Use 99 by default for logging purposes
Xarchie.maxHits:	99

! Prospero offset
Xarchie.offset:		0

! Initial timeout (seconds)
Xarchie.timeout:	4

! Number of retries (timeout doubles each retry)
Xarchie.retries:	3

! Nice level (bigger numbers == nicer)
Xarchie.niceLevel:	0

! Destination directory for ftp() action
Xarchie.ftpDir:		.

! Transfer mode for ftp() action
Xarchie.ftpMode:	binary

! If True, then results of save-to-file() are printed one entry per line.
! If False, then results are pretty-printed.
Xarchie.saveFormatOneLine:	False

! Bigger numbers == more verbose, if -DDEBUG was given at compile-time
Xarchie.debugLevel:	0

! If True, don't confirm things like quitting
Xarchie.expert:		False

!	-	-	-	-	-	-	-	-	-

! Main display widget hierachy:
Xarchie.widgets: \
	toplevel			Paned		outerPaned \
\
	outerPaned			Form		buttonForm \
	outerPaned.buttonForm		Command		quitButton \
	outerPaned.buttonForm		Command		queryButton \
	outerPaned.buttonForm		Command		abortButton \
	outerPaned.buttonForm		Command		saveButton \
	outerPaned.buttonForm		Command		ftpButton \
	outerPaned.buttonForm		MenuButton	searchButton \
	outerPaned.buttonForm		MenuButton	sortButton \
	outerPaned.buttonForm		MenuButton	niceButton \
	outerPaned.buttonForm		Command		settingsButton \
	outerPaned.buttonForm		Label		statusLabel \
	outerPaned.buttonForm		AsciiText	statusText \
\
	outerPaned			Paned		innerPaned \
	outerPaned.innerPaned		Viewport	hostView \
	outerPaned.innerPaned.hostView	List		hostList \
	outerPaned.innerPaned		Viewport	locationView \
	outerPaned.innerPaned.locationView List		locationList \
	outerPaned.innerPaned		Viewport	fileView \
	outerPaned.innerPaned.fileView	List		fileList \
\
	outerPaned		Form			stringForm \
	outerPaned.stringForm	Label			searchLabel \
	outerPaned.stringForm	AsciiText		searchText \
	outerPaned.stringForm	Label			hostLabel \
	outerPaned.stringForm	AsciiText		hostText \
	outerPaned.stringForm	Label			locationLabel \
	outerPaned.stringForm	AsciiText		locationText \
	outerPaned.stringForm	Label			fileLabel \
	outerPaned.stringForm	AsciiText		fileText \
	outerPaned.stringForm	Label			sizeLabel \
	outerPaned.stringForm	AsciiText		sizeText \
	outerPaned.stringForm	Label			modesLabel \
	outerPaned.stringForm	AsciiText		modesText \
	outerPaned.stringForm	Label			dateLabel \
	outerPaned.stringForm	AsciiText		dateText 

! Main window menus have to be created separately (puke-ola)
Xarchie.menus:\
	outerPaned.buttonForm.searchButton EzMenu	searchNowMenu \
	outerPaned.buttonForm.sortButton EzMenu		sortNowMenu \
	outerPaned.buttonForm.niceButton EzMenu		niceNowMenu

! Settings panel widget hierarchy
Xarchie.settingsWidgets:\
	toplevel			TopLevelShell	settingsShell \
	settingsShell			Form		settingsForm \
	settingsShell.settingsForm	Command		doneButton \
	settingsShell.settingsForm	Command		applyButton \
	settingsShell.settingsForm	Command		defaultButton \
\
	settingsShell.settingsForm	MenuButton	setSearchButton \
	settingsShell.settingsForm	EzMenu		searchMenu \
	settingsShell.settingsForm	Label		searchLabel \
	settingsShell.settingsForm	MenuButton	setSortButton \
	settingsShell.settingsForm	EzMenu		sortMenu \
	settingsShell.settingsForm	Label		sortLabel \
	settingsShell.settingsForm	MenuButton	hostButton \
	settingsShell.settingsForm	EzMenu		hostMenu \
	settingsShell.settingsForm	AsciiText	setHostText \
	settingsShell.settingsForm	Label		maxHitsLabel \
	settingsShell.settingsForm	AsciiText	maxHitsText \
	settingsShell.settingsForm	Label		timeoutLabel \
	settingsShell.settingsForm	AsciiText	timeoutText \
	settingsShell.settingsForm	Label		retriesLabel \
	settingsShell.settingsForm	AsciiText	retriesText \
	settingsShell.settingsForm	MenuButton	setNiceButton \
	settingsShell.settingsForm	EzMenu		niceMenu \
	settingsShell.settingsForm	AsciiText	niceText \
	settingsShell.settingsForm	Label		ftpDirLabel \
	settingsShell.settingsForm	AsciiText	ftpDirText \
	settingsShell.settingsForm	Label		ftpTypeLabel \
	settingsShell.settingsForm	AsciiText	ftpTypeText

!
!	-	-	-	-	-	-	-	-	-
! Defaults for all the classes of widgets

Xarchie*input:			True

! Give us vertical scrollbar
Xarchie*Viewport*allowVert:		True
! Make this True if you like horizontal scrolling also
Xarchie*Viewport*allowHoriz:		False
! Always show the allowed scrollbars
Xarchie*Viewport*forceBars:		True
! Don't touch
Xarchie*Viewport*preferredPaneSize:	160
Xarchie*Viewport.vertical.width:	15

! Font for items in browser panes
Xarchie*List*font:		fixed
! Don't touch
Xarchie*List*verticalList:	True
Xarchie*List*defaultColumns:	1
Xarchie*List*forceColumns:	True
Xarchie*List*height:		150

! Size of grips
Xarchie*Grip*height:		5
Xarchie*Grip*width:		5

! Change only if you like really "spacy" labels
Xarchie*Label.borderWidth:	0
Xarchie*Label.internalWidth:	0
	
! Change if you want
Xarchie*Text*borderWidth:	1
Xarchie*Text*font:		fixed
Xarchie*Text*Scrollbar.thickness: 5
! Don't touch
Xarchie*Text*editType:		edit
Xarchie*Text.scrollHorizontal:	whenNeeded
! These make the caret follow the mouse, and make Return not go to a new
! (blank) line.
Xarchie*Text*displayCaret:	False
Xarchie*Text*translations:#override\n\
	<Key>Return:	no-op() \n\
	<Enter>:	display-caret(True) \n\
	<Leave>:	display-caret(False) \n

!	-	-	-	-	-	-	-	-	-
! Outermost Paned widget

Xarchie*outerPaned.orientation:	vertical

!	-	-	-	-	-	-	-	-	-
! Top Button Form
!
! Note that we have to set the widths explicitly to make everything look
! pretty since there's no way to lay out a Form nicely. Your mileage will
! vary if you change the fonts. The "fromVert" and "fromHoriz" resources
! make the buttons "pile up" properly. You can change them subject to
! the widget creation order which is the same as the order in which the
! widgets are listed in the .widgets (or similar) resource.

! These keep the buttons from getting bigger or smaller when the panes
! resize. Thus only the browser grows.
Xarchie*buttonForm.min: 50
Xarchie*buttonForm.max: 50

! No point in having grips since only the browser can grow, and then only
! if the whole application grows.
Xarchie*buttonForm.showGrip: False

Xarchie*buttonForm*quitButton.label:	Quit
Xarchie*buttonForm*quitButton.translations:#override\n\
	Shift<Btn1Down>,<Btn1Up>:	quit(always) \n\
	<Btn1Down>,<Btn1Up>:		quit() \n

Xarchie*buttonForm*queryButton.label:		Query
Xarchie*buttonForm*queryButton.fromHoriz:	quitButton
Xarchie*buttonForm*queryButton.translations:#override\n\
	<Btn1Down>,<Btn1Up>:	query() \n

Xarchie*buttonForm*abortButton.label:		Abort
Xarchie*buttonForm*abortButton.fromHoriz:	queryButton
Xarchie*buttonForm*abortButton.translations:#override\n\
	<Btn1Down>,<Btn1Up>:	abort() \n

Xarchie*buttonForm*saveButton.label:		Save
Xarchie*buttonForm*saveButton.fromHoriz:	abortButton
Xarchie*buttonForm*saveButton.translations:#override\n\
	Shift<Btn1Down>,<Btn1Up>:	save-to-file("%s.lst") \n\
	<Btn1Down>,<Btn1Up>:		save-to-file() \n

Xarchie*buttonForm*ftpButton.label:		Ftp
Xarchie*buttonForm*ftpButton.fromHoriz:		saveButton
Xarchie*buttonForm*ftpButton.translations:#override\n\
	<Btn1Down>,<Btn1Up>:	ftp() \n

Xarchie*buttonForm*searchButton.label:		Search Type
Xarchie*buttonForm*searchButton.menuName:	searchNowMenu
Xarchie*buttonForm*searchButton.fromHoriz:	ftpButton

Xarchie*buttonForm*sortButton.label:		Sort Type
Xarchie*buttonForm*sortButton.menuName:		sortNowMenu
Xarchie*buttonForm*sortButton.fromHoriz:	searchButton

Xarchie*buttonForm*niceButton.label:		Nice Level
Xarchie*buttonForm*niceButton.menuName:		niceNowMenu
Xarchie*buttonForm*niceButton.fromHoriz:	sortButton

Xarchie*buttonForm*settingsButton.label:	Settings...
Xarchie*buttonForm*settingsButton.fromHoriz:	niceButton
Xarchie*buttonForm*settingsButton.translations:#override\n\
	<Btn1Down>,<Btn1Up>:	settings() \n

Xarchie*buttonForm*statusLabel.label:		Status:
Xarchie*buttonForm*statusLabel.fromVert:	quitButton
Xarchie*buttonForm*statusText.fromHoriz:	statusLabel
Xarchie*buttonForm*statusText.fromVert:		quitButton
Xarchie*buttonForm*statusText*width:		410
! Don't allow writing in the status window
Xarchie*buttonForm*statusText*editType:		read
! Don't give a border since it's "read-only"
Xarchie*buttonForm*statusText.borderWidth:	0
! Don't ever give a scrollbar since it's just confusing
Xarchie*buttonForm*statusText*scrollHorizontal:	never
! Don't ever show the caret in the status line
Xarchie*buttonForm*statusText*translations:#override\n

!	-	-	-	-	-	-	-	-	-
! Middle browser pane

Xarchie*innerPaned.orientation:	horizontal

! No point in having grips since only the browser can grow, and then only
! if the whole application grows.
Xarchie*innerPaned.showGrip: False


!	-	-	-	-	-	-	-	-	-
! Bottom String Form

! These keep the strings from getting bigger or smaller when the panes
! resize. Thus only the browser grows.
Xarchie*stringForm.min: 120
Xarchie*stringForm.max: 120

! Left justify labels or they'll move on resize
Xarchie*stringForm*Label.justify:	left
! De-emphasize most labels
Xarchie*stringForm*Label.font:		fixed

! Disable typing into most Text widgets
Xarchie*stringForm*AsciiSrc.editType: 	read

! Except the search term items, which can be edited and should stand out
Xarchie*stringForm*searchLabel.label:		Search Term:
Xarchie*stringForm*searchLabel.font:		*fixed*bold*
Xarchie*stringForm*searchText*width:		375
Xarchie*stringForm*searchText.fromHoriz:	searchLabel
Xarchie*stringForm*searchText*editType: 	edit
Xarchie*stringForm*searchText*translations:#override\n\
	<Enter>:	display-caret(True) \n\
	<Leave>:	display-caret(False) \n\
	<Key>Return:	query() \n

Xarchie*stringForm*hostLabel.label:	Host:
Xarchie*stringForm*hostLabel.fromVert:	searchLabel
Xarchie*stringForm*hostText.fromVert:	searchLabel
Xarchie*stringForm*hostText.fromHoriz:	hostLabel
Xarchie*stringForm*hostText.width:	429

Xarchie*stringForm*locationLabel.label:		Location:
Xarchie*stringForm*locationLabel.fromVert:	hostLabel
Xarchie*stringForm*locationText.fromHoriz:	locationLabel
Xarchie*stringForm*locationText.fromVert:	hostLabel
Xarchie*stringForm*locationText.width:		405

Xarchie*stringForm*fileLabel.label:	File:
Xarchie*stringForm*fileLabel.fromVert:	locationLabel
Xarchie*stringForm*fileText.fromHoriz:	fileLabel
Xarchie*stringForm*fileText.fromVert:	locationLabel
Xarchie*stringForm*fileText.width:	429

Xarchie*stringForm*sizeLabel.label:	Size:
Xarchie*stringForm*sizeLabel.fromVert:	fileLabel
Xarchie*stringForm*sizeText.fromHoriz:	sizeLabel
Xarchie*stringForm*sizeText.fromVert:	fileLabel
Xarchie*stringForm*sizeText*width:	112

Xarchie*stringForm*modesLabel.label:	Mode:
Xarchie*stringForm*modesLabel.fromHoriz:sizeText
Xarchie*stringForm*modesLabel.fromVert:	fileLabel
Xarchie*stringForm*modesText.fromHoriz:	modesLabel
Xarchie*stringForm*modesText.fromVert:	fileLabel
Xarchie*stringForm*modesText*width:	112

Xarchie*stringForm*dateLabel.label:	Date:
Xarchie*stringForm*dateLabel.fromHoriz:	modesText
Xarchie*stringForm*dateLabel.fromVert:	fileLabel
Xarchie*stringForm*dateText.fromHoriz:	dateLabel
Xarchie*stringForm*dateText.fromVert:	fileLabel
Xarchie*stringForm*dateText*width:	125

!	-	-	-	-	-	-	-	-	-
! Popup settings editor

Xarchie*settingsForm*Text*borderWidth:		0
Xarchie*settingsForm*Label*resizable:		True

Xarchie*settingsShell.title:			Xarchie Settings Panel

Xarchie*settingsForm*doneButton.label:		Done
Xarchie*settingsForm*doneButton.translations:#override\n\
	<Btn1Down>,<Btn1Up>:	done-settings() \n

Xarchie*settingsForm*applyButton.label:		Apply
Xarchie*settingsForm*applyButton.fromHoriz:	doneButton
Xarchie*settingsForm*applyButton.translations:#override\n\
	<Btn1Down>,<Btn1Up>:	apply-settings() \n

Xarchie*settingsForm*defaultButton.label:	Default
Xarchie*settingsForm*defaultButton.fromHoriz:	applyButton
Xarchie*settingsForm*defaultButton.translations:#override\n\
	<Btn1Down>,<Btn1Up>:	default-settings() \n

Xarchie*settingsForm*setSearchButton.label:	Search Mode:
Xarchie*settingsForm*setSearchButton.menuName:	searchMenu
Xarchie*settingsForm*setSearchButton.fromVert:	applyButton
Xarchie*settingsForm*setSearchButton.vertDistance:	10
Xarchie*settingsForm*searchLabel.fromVert:	applyButton
Xarchie*settingsForm*searchLabel.vertDistance:	10
Xarchie*settingsForm*searchLabel.fromHoriz:	setSearchButton
Xarchie*settingsForm*searchLabel.font:		fixed

Xarchie*settingsForm*setSortButton.label:	Sort Mode:
Xarchie*settingsForm*setSortButton.menuName:	sortMenu
Xarchie*settingsForm*setSortButton.fromVert:	setSearchButton
Xarchie*settingsForm*sortLabel.fromVert:	setSearchButton
Xarchie*settingsForm*sortLabel.fromHoriz:	setSortButton
Xarchie*settingsForm*sortLabel.font:		fixed

Xarchie*settingsForm*hostButton.label:		Host:
Xarchie*settingsForm*hostButton.menuName:	hostMenu
Xarchie*settingsForm*hostButton.fromVert:	setSortButton
Xarchie*settingsForm*setHostText.fromVert:	setSortButton
Xarchie*settingsForm*setHostText.fromHoriz:	hostButton
Xarchie*settingsForm*setHostText*width:		200

Xarchie*settingsForm*maxHitsLabel.label:	Max Hits:
Xarchie*settingsForm*maxHitsLabel.fromVert:	hostButton
Xarchie*settingsForm*maxHitsText.fromVert:	hostButton
Xarchie*settingsForm*maxHitsText.fromHoriz:	maxHitsLabel

Xarchie*settingsForm*timeoutLabel.label:	Initial Timeout:
Xarchie*settingsForm*timeoutLabel.fromVert:	maxHitsLabel
Xarchie*settingsForm*timeoutText.fromVert:	maxHitsLabel
Xarchie*settingsForm*timeoutText.fromHoriz:	timeoutLabel

Xarchie*settingsForm*retriesLabel.label:	Retries:
Xarchie*settingsForm*retriesLabel.fromVert:	timeoutLabel
Xarchie*settingsForm*retriesText.fromVert:	timeoutLabel
Xarchie*settingsForm*retriesText.fromHoriz:	retriesLabel

Xarchie*settingsForm*setNiceButton.label:	Nice Level:
Xarchie*settingsForm*setNiceButton.menuName:	niceMenu
Xarchie*settingsForm*setNiceButton.fromVert:	retriesLabel
Xarchie*settingsForm*niceText.fromVert:		retriesLabel
Xarchie*settingsForm*niceText.fromHoriz:	setNiceButton

Xarchie*settingsForm*ftpDirLabel.label:		Local Ftp Directory:
Xarchie*settingsForm*ftpDirLabel.fromVert:	setNiceButton
Xarchie*settingsForm*ftpDirText.fromVert:	setNiceButton
Xarchie*settingsForm*ftpDirText.fromHoriz:	ftpDirLabel

Xarchie*settingsForm*ftpTypeLabel.label:	Ftp Transfer Type:
Xarchie*settingsForm*ftpTypeLabel.fromVert:	ftpDirLabel
Xarchie*settingsForm*ftpTypeText.fromVert:	ftpDirLabel
Xarchie*settingsForm*ftpTypeText.fromHoriz:	ftpTypeLabel

!	-	-	-	-	-	-	-	-	-
! Menus

! These menus are for the Settings form:

Xarchie*searchMenu.label:			Search Mode
Xarchie*searchMenu.menu:\
	(line) \
	(item "Exact"		(action "set-search-type(exact)")) \
	(item "Substr"		(action "set-search-type(substr)")) \
	(item "Subcase"		(action "set-search-type(subcase)")) \
	(item "Regexp"		(action "set-search-type(regexp)")) \
	(item "ExactSubstr"	(action "set-search-type(exactSubstr)")) \
	(item "ExactSubcase"	(action "set-search-type(exactSubcase)")) \
	(item "ExactRegexp"	(action "set-search-type(exactRegexp)"))

Xarchie*sortMenu.label:		Sort Mode
Xarchie*sortMenu.menu:\
	(line) \
	(item "Default"		(action "set-sort-type(default)")) \
	(item "Invdate"		(action "set-sort-type(invdate)"))

Xarchie*hostMenu.label:		Archie Hosts
Xarchie*hostMenu.menu:\
   (line) \
   (item "archie.sura.net"	(action "set-host(archie.sura.net)")) \
   (item "archie.mcgill.ca"	(action "set-host(archie.mcgill.ca)")) \
   (item "archie.funet.fi"	(action "set-host(archie.funet.fi)")) \
   (item "archie.au"		(action "set-host(archie.au)")) \
   (item "archie.doc.ic.ac.uk"	(action "set-host(archie.doc.ic.ac.uk)")) \
   (item "cs.huji.ac.il"	(action "set-host(cs.huji.ac.il)"))

Xarchie*niceMenu.label:		Nice Levels
Xarchie*niceMenu.menu:\
	(line) \
	(item "Default"		(action "set-nice-level(0)")) \
	(item "Nice"		(action "set-nice-level(500)")) \
	(item "Nicer"		(action "set-nice-level(1000)")) \
	(item "Very Nice"	(action "set-nice-level(5000)")) \
	(item "Extremely Nice"	(action "set-nice-level(10000)")) \
	(item "Nicest"		(action "set-nice-level(32765)"))

! These menus are for the buttons on the buttonForm. They are the
! the same except that they call apply-settings() immediately.

Xarchie*searchNowMenu.label:			Search Mode
Xarchie*searchNowMenu.menu:\
	(line) \
	(item "Exact"		(action "set-search-type-now(exact)")) \
	(item "Substr"		(action "set-search-type-now(substr)")) \
	(item "Subcase"		(action "set-search-type-now(subcase)")) \
	(item "Regexp"		(action "set-search-type-now(regexp)")) \
	(item "ExactSubstr"	(action "set-search-type-now(exactSubstr)")) \
	(item "ExactSubcase"	(action "set-search-type-now(exactSubcase)")) \
	(item "ExactRegexp"	(action "set-search-type-now(exactRegexp)"))

Xarchie*sortNowMenu.label:		Sort Mode
Xarchie*sortNowMenu.menu:\
	(line) \
	(item "Default"		(action "set-sort-type-now(default)")) \
	(item "Invdate"		(action "set-sort-type-now(invdate)"))

Xarchie*niceNowMenu.label:		Nice Levels
Xarchie*niceNowMenu.menu:\
   (line) \
	(item "Default"		(action "set-nice-level-now(0)")) \
	(item "Nice"		(action "set-nice-level-now(500)")) \
	(item "Nicer"		(action "set-nice-level-now(1000)")) \
	(item "Very Nice"	(action "set-nice-level-now(5000)")) \
	(item "Extremely Nice"	(action "set-nice-level-now(10000)")) \
	(item "Nicest"		(action "set-nice-level-now(32765)"))

!	-	-	-	-	-	-	-	-	-
! Popups

Xarchie*allowShellResize:		True
Xarchie*Dialog*Label.resizable:		True
Xarchie*Dialog*Text*scrollHorizontal:	never
Xarchie*Dialog.icon:			xlogo32

Xarchie*alertDialog*okButton.label:	Ok

Xarchie*confirmDialog*yesButton.label:	Yes
Xarchie*confirmDialog*noButton.label:	No

Xarchie*dialogDialog*okButton.label:	Ok
Xarchie*dialogDialog*cancelButton.label:Cancel
Xarchie*dialogDialog.value*translations:#override\n\
	<Key>Return:	dialog-ok() \n\
	<Enter>:	display-caret(True) \n\
	<Leave>:	display-caret(False) \n
