2001-07-27  Richard Hestilow  <hestilow@ximian.com>

	* prefs-widget.c (random_timeout_cb): Don't go into an infinite
	loop if there are absolutely no enabled screensavers. 

2001-07-27  Bradford Hovinen  <hovinen@ximian.com>

	* RELEASE : 1.5.2

2001-07-25  Chema Celorio  <chema@celorio.com>

	* Makefile.am: remove the DESKTOP_IN_RULE and copy the sed here

2001-07-03  Richard Hestilow  <hestilow@ximian.com>

	* preview.[ch]: New function show_blank_preview.

	* prefs-widget.c (prefs_widget_set_mode): Call show_blank_preview
	if set to disabled or blank screen.
	(selection_changed_cb): Don't show the preview if mode is set to
	disabled or blank screen.

2001-07-20  Chema Celorio  <chema@celorio.com>

	* RELEASE : 1.5.0

2001-07-19  Chema Celorio  <chema@celorio.com>

	* Makefile.am (SUBDIRS): distcheck love

2001-07-19  Bradford Hovinen  <hovinen@ximian.com>

	* Makefile.am (EXTRA_DIST): Added no-hack.png

	* prefs-widget.c (about_cb): Don't free the description

	* main.c (setup_capplet_widget): Use capplet->dialog for parent of
	prefs widget

	* prefs-widget.c: Added copyright notice

2001-07-18  Carlos Perell Marn <carlos@gnome-db.org>

	* screensavers/*.xml: /s/label/_label, /s/low-label/_low-label/,
	/s/high-label/_high-label/ && removed the i18n section.

2001-07-18  Chema Celorio  <chema@celorio.com>

	* screensaver.desktop.in.in: use the right binary name

	* expr.c: include string.h

	* Makefile.am (INCLUDES): remove the -DSSPROP_DIR we now use a define in acclocal.h

	* screensavers/Makefile.am (Screensaversdir): use GNOMECC_SCREENSAVERS_DIR

	* prefs-widget.c (prefs_widget_init): remove a warning

2001-07-17  Chema Celorio  <chema@celorio.com>

	* Makefile.am (SUBDIRS): clean

2001-07-17  Bradford Hovinen  <hovinen@ximian.com>

	* Makefile.am (EXTRA_DIST): Changed Applications_DATA to
	Applications_in_files

2001-07-14  Carlos Perell Marn <carlos@gnome-db.org>

	* screensavers/*.xml: /s/label/_label, /s/low-label/_low-label/,
	/s/high-label/_high-label/: Changed to let xml-i18n-tools extract
	this labels.
	* extract-labels.c: Removed, now, we use xml-i18n-tools.
	* preferences.c: /s/label/_label, /s/low-label/_low-label/,
	/s/high-label/_high-label/: Changed to sync with the xml changes.
	* screensaver-prefs-dialog.c: ditto.

2001-07-03  Richard Hestilow  <hestilow@ximian.com>

	* prefs-widget.c:
	  (add_select_cb, screensaver_add_cb, screensaver_remove_cb): Added.
	  (prefs_widget_init): Connect to "Add" and "Remove"

	* screensaver-prefs-dialog.c (get_basic_screensaver_widget): Replace
	confusing stuff with ultra-simple dialog.

	* screensaver-properties.glade[.h]: Remove "Demo" popup item, as it
	is on the settings dialogs and is not easy to manage with
	menu selection anyway. (Too much mouse movement).

2001-07-03  Richard Hestilow  <hestilow@ximian.com>
	
	* screensaver-properties.glade[.h]: Added.
	
	* prefs-widget.[ch]: Complete rewrite.

	* Makefile.am: Add glade stuff.

	* main.c: Call glade_gnome_init.

	* pref-file.c: Restart xscreensaver on save.

	* screensaver-prefs-dialog.c (screensaver_prefs_dialog_new):
	Change g_strconcat to g_strdup_printf for i18n purposes.

2001-06-21  Bradford Hovinen  <hovinen@ximian.com>

	* preferences.c (clone_cb): Remove debugging code

2001-05-06  Bradford Hovinen  <hovinen@ximian.com>

	* preferences.c (preferences_clone): Implement. Create a copy of a
	preferences structure
	(clone_cb): Implement
	(read_prefs_from_db): Parse screensavers from a copy of the string
	so that we don't overwrite the original

	* main.c (main): Call preferences_clone instead of reloading old
	preferences

2001-05-05  Bradford Hovinen  <hovinen@ximian.com>

	* prefs-widget.c (one_screensaver_cb): Fix segv

2001-05-03  Bradford Hovinen  <hovinen@ximian.com>

	* preferences.c (preferences_new): Load default values

2001-04-27  Bradford Hovinen  <hovinen@ximian.com>

	* preferences.c (screensaver_read_xml): Make label an attribute of
	the node rather than a child node
	(preferences_write_xml): Use xml_write_int rather than rolling our
	own
	(xml_read_int): 
	(xml_write_int): 
	(xml_read_bool): 
	(xml_write_bool): Implement

2001-03-12  Bradford Hovinen  <hovinen@ximian.com>

	* main.c (store_archive_data): Fix call to location_store_xml

2001-01-25  Bradford Hovinen  <hovinen@ximian.com>

	* main.c (store_archive_data): Implement; copy from
	background-properties-capplet
	(ok_cb): Call store_archive_data

2000-12-16  Bradford Hovinen  <hovinen@helixcode.com>

	* all: Fixed compilation warnings: removed unused variables,
	initialized variables properly, returned default values
	* selection-dialog.c (get_known_savers): Return list_head when done
	* resources.c: Include ctype.h

2000-10-28  Bradford Hovinen  <hovinen@helixcode.com>

	* screensaver-prefs-dialog.c (get_spinbutton): 
	(get_check_button): 
	(get_select_widget): 
	(get_file_entry): 
	(get_entry): 
	(place_number): Add missing _() around label strings

2000-10-14  Bradford Hovinen  <hovinen@helixcode.com>

	* screensavers/Makefile.am (Screensavers_DATA): 
	(screensavers_msgs): Added rorschach.xml[.h]

	* screensaver-prefs-dialog.c (write_boolean): Return the attribute 
	arg-unset if the toggle button is inactive

2000-10-08  Bradford Hovinen  <hovinen@helixcode.com>

	* screensavers/Makefile.am: Place .xml.h files in
	screensavers_msgs and remove from BUILT_SOURCES; add
	screensavers_msgs to EXTRA_DIST

	* preview.c (fix_arguments): Implement
	(show_screensaver): Call fix_arguments to handle quoted strings in
 	the command line

2000-10-07  Bradford Hovinen  <hovinen@helixcode.com>

	* screensaver-prefs-dialog.c (set_widgets_sensitive): Set
 	set->enabled
	(write_boolean):
	(write_number):
	(write_select):
	(write_string): Write only if the enabled flag is set
	(get_spinbutton):
	(get_check_button):
	(get_select_widget):
	(get_file_entry):
	(get_entry):
	(place_number):
	(place_hgroup):
	(populate_table): Set set->enabled
	(read_boolean):
	(read_number):
	(read_select):
	(read_string): Don't set the value if the set is an alias and not
 	enabled
	(read_number):
	(read_string): Set value to default if not supplied
	(read_command_line): Accept argument as negative number if it is a
 	-<digit>

	* screensaver-prefs-dialog.h (struct _PrefsDialogWidgetSet): Add
 	member enabled - TRUE iff the widget is enabled

	* screensaver-prefs-dialog.c (free_set_cb): Don't try to free the
 	widgets if the set is an alias
	(get_spinbutton): 
	(get_check_button): 
	(get_select_widget): 
	(get_file_entry): 
	(get_entry): 
	(place_number): 
	(place_hgroup): 
	(populate_table): Set set->alias

	* screensaver-prefs-dialog.h (struct _PrefsDialogWidgetSet): Add
 	member alias - TRUE means don't try to free widgets

	* screensaver-prefs-dialog.c (get_entry): Have entry expand, not label

	* screensavers/flag.xml: Enable selection for text and bitmap,
	Set neg_size same-as to pos_size

	* screensaver-prefs-dialog.c (write_command_line): Support files
	(place_entry): Allow getting a file entry or a string entry
	(populate_table): Support files
	(get_file_entry): Implement. Return a set for a GnomeFileEntry
	(read_string): Support files
	(place_screensaver_properties): Support files
	(populate_table): 
	(place_hgroup): Add feature to allow multiple widget definitions
 	to share the same widget

2000-09-24  Bradford Hovinen  <hovinen@helixcode.com>

	* resources.c (screensaver_get_desc_from_xrdb): Fix memory
	allocation bug

2000-08-18  Bradford Hovinen  <hovinen@helixcode.com>

	* preview.c (setup_path): Use setenv only when available, try to
	use putenv otherwise

2000-08-17  Stanislav Brabec  <utx@penguin.cz>

	* screensavers/Makefile.am: Search .xml files in srcdir.

2000-08-16  Bradford Hovinen  <hovinen@helixcode.com>

	* prefs-widget.c (prefs_widget_get_prefs): Set power control
	sensitivity when reading preferences structure

	* preferences.c (preferences_write_xml): 
	(preferences_read_xml): Added missing entries stored in
	gnome-config rather than .xscreensaver
	(screensaver_read_xml): Disable screensaver by default
	(preferences_write_xml): Cast values to ints before passing to
	g_strdup_printf

	* rc-parse.c (write_screensaver_list): Don't try to write string
	if the screensaver has no command line

	* main.c (main): Register Popt table containing get and set
	options; call do_get_xml and do_set_xml when necessary
	(do_get_xml): 
	(do_set_xml): Implement

	* preferences.c (xml_get_number): Implement. Interpret the XML
	content of a node as a number and return it
	(xml_get_programs_list): Implement. Iterate through a programs
	node and form a list of screensavers
	(preferences_read_xml): Implement. Read an XML description of the
	screensaver's state and put it in a preferences object
	(xml_write_programs_list): Implement. Write out an XML node
	corresponding to a list of screensavers
	(preferences_write_xml): Implement. Write out an XML document with 
	the state of the screensaver system
	(screensaver_read_xml): Implement. Read an XML node describing a
	screensaver 
	(screensaver_write_xml): Implement. Write an XML node describing a 
	screensaver

	* screensaver-prefs-dialog.c (get_select_widget): Remove
	extraneous precondition check 
	(read_command_line): Rewrote to support quoted strings in the
	command line

2000-08-12  Bradford Hovinen  <hovinen@helixcode.com>

	* screensaver-prefs-dialog.c (write_command_line): Use flag free_v
	to determine whether to free data; add support for strings
	(write_string): Implement. Analagous to write_*
	(populate_table): Add support for strings
	(place_entry): 
	(get_entry): Implement
	(place_screensaver_properties): Add support for strings
	(read_string): Implement
	(read_select):
	(write_select): Skip over nodes that don't have id attributes

2000-08-10  Bradford Hovinen  <hovinen@helixcode.com>

	* resources.c (screensaver_get_desc_from_xrdb): Remove extraneous
	whitespace and replace tabs with spaces

	* screensavers/Makefile.am (Screensavers_DATA): Added ant.xml,
	bsod.xml, compass.xml, and flag.xml (courtesy of James Antill
	<james@and.org>)

	* screensaver-prefs-dialog.c (write_command_line): Fix memory leak
	(read_select): Disable all widgets associated with unselected
	nodes before enabling those associated with selected one
	(read_select): Don't iterate through menu items
	(read_number): Don't crash if person used bad argument

	* expr.c (int_parse_atom): Have string -> boolean conversion
	always convert to FALSE
	(int_parse_factor): Set result to boolean TRUE when symbol of
	value 1 encountered.

	* screensaver-prefs-dialog.c (read_select): Don't crash if there
	are fewer menu_item_nodes than nodes

	* preview.c (show_preview): Map window before showing screensaver
	(close_preview): Unmap window after killing screensaver

2000-08-09  Bradford Hovinen  <hovinen@helixcode.com>

	* preview.c (setup_path): Use get_screensaver_dir_list; iterate
	through all the directories listed in list; use g_getenv

	* rc-parse.c (get_screensaver_dir_list): Implement. Get a list of
	possible directories where screensavers may be found by scanning
	the XScreensaver binary.
	(command_exists): Search through list of screensaver directories
	from get_screensaver_dir_list rather than using the hardcoded one
	(get_screensaver_dir_list): Make public, cache return value
	(command_exists): Don't cache screensaver_dir_list

2000-08-07  Bradford Hovinen  <hovinen@helixcode.com>

	* screensavers/Makefile.am (EXTRA_DIST): Added README

	* expr.c: Allow values of multiple types

	* main.c (main): Don't initialize glade

	* screensaver-prefs-dialog.c (screensaver_prefs_dialog_destroy):
	Free structures only if they were ever allocated

	* selection-dialog.c (get_known_savers): Implement. Read the
	screensaver directory for a list of valid screensavers
	(place_screensaver_list): Use known_savers rather than XML data

	* preferences.c (screensaver_get_label): Implement. Copy from
	get_label in resources.c

	* prefs-widget.c (deselect_saver_cb): Toggle only if event was a
	mouse button press, not a keyboard press
	(prefs_widget_init): Change vertical size of preview window to 200
	(prefs_widget_init): Use a table for the buttons below the
	screensaver list 
	(prefs_widget_init): Change label of edit button to Settings...
	(prefs_widget_init): Don't have description and preview frames
	expand, have selection frame expand

	* Makefile.am (screensaver_properties_capplet_LDADD): Don't link
	against glade
	(INCLUDES): Don't set glade compilation flags

	* screensaver-prefs-dialog.c (get_select_widget): Show menu item
	(populate_table): Don't skip hgroups that lack ids
	(place_number): 
	(place_boolean): Attach items with GTK_FILL
	(get_check_button): 
	(get_select_widget): Set object data to point back to dialog
	(populate_table): Pass dialog, remove extraneous arguments
	(get_check_button): Connect toggled signal from here
	(get_select_widget): Set data and connect activate signals from
	here
	(place_number): Set default from default attribute
	(get_spinbutton): Set step_increment, page_increment, and
	page_size on adjustment
	(get_spinbutton): 
	(place_number): Set default to average of high and low if not
	supplied
	(get_argument_data): Add i18n support
	(read_boolean): 
	(read_number): 
	(read_select):
	(write_boolean): 
	(write_number): 
	(write_select): Check if id is NULL before trying to look up a node
	(screensaver_prefs_dialog_new): Make sure CLI arguments and XML
	data were read successfully before trying to build the widget
	(get_argument_data): Return pointer to document rather than root node
	(screensaver_prefs_dialog_new): Set argument_data from argument_doc
	(screensaver_prefs_dialog_class_init): Set parent_class
	(screensaver_prefs_dialog_destroy): Implement; free all structures
	(free_set_cb): Implement
	(write_number): Don't assume correct format on the output string;
	just replace the '%' with the appropriate argument
	(write_command_line): Free arg iff generated from number

2000-08-06  Bradford Hovinen  <hovinen@helixcode.com>

	* screensaver-prefs-dialog.c (get_screensaver_widget): Accept
	ScreensaverPrefsDialog as option
	(get_argument_data): Assume one file per screensaver
	(get_spinbutton): 
	(get_check_button): 
	(get_select_widget): 
	(place_number): 
	(place_boolean): 
	(place_hgroup): 
	(place_select): 
	(populate_table): Implement
	(get_screensaver_widget): Rewrite to build screensaver config
	dialogs manually from the XML data
	(activate_option_cb): 
	(toggle_check_cb): Pass dialog to set_widgets_sensitive
	(set_widgets_sensitive): Rewrite to use dialog->widget_db
	(write_boolean): 
	(write_number): 
	(write_select): Use widget_db
	(write_select):
	(write_command_line): Don't check no-output
	(write_command_line): Pass widget_db
	(read_boolean): 
	(read_number): 
	(read_select): Use widget_db
	(place_screensaver_properties): Pass dialog->widget_db to above
	functions
	(arg_mapping_exists): Use XML file rather than Glade definition
	(screensaver_prefs_dialog_new): Initialize settings_widget with
	the widget to be placed in the settings frame
	(place_screensaver_properties): Take xml node; process hgroups
	recursively
	(write_command_line): Process hgroups recursively
	(read_boolean): 
	(read_number): 
	(read_select): Check if set and set->value_widget are set before
	proceeding

	* screensaver-prefs-dialog.h (struct _PrefsDialogConfigOption):
	New structure
	(struct _ScreensaverPrefsDialog ): New member widget_db --
	key-value database of PrefsDialogConfigOptions indexed by id
	attribute from XML

2000-07-31  Bradford Hovinen  <hovinen@helixcode.com>

	* all: Removed ENABLE_{LIBGLADE|CAPPLET|PREVIEW} ifdefs

2000-07-26  Bradford Hovinen  <hovinen@helixcode.com>

	* src/rc-parse.c (command_exists): Use gnome_is_program_in_path,
	return stat results if program is a full path

2000-07-20  Bradford Hovinen  <hovinen@helixcode.com>

	* src/prefs-widget.c: Include check button xpms
	(set_pixmap): Use gdk_pixbuf_new_from_xpm_data

	* src/Makefile.am (screensaver_properties_capplet_SOURCES): Put
	headers in sources list
	(pixmap_DATA): Don't install xpms
	(EXTRA_DIST): Add check button xpms

2000-06-25  Bradford Hovinen  <hovinen@udel.edu>

	* src/prefs-widget.c (screensaver_remove_cb): Select next row, not 
	next saver in list

	* src/selection-dialog.c (place_screensaver_list): Don't crash if
	node is null 

	* src/rc-parse.c (parse_screensaver_list): Code cleanup

	* src/selection-dialog.c (place_screensaver_list): Code cleanup

	* src/preferences.c (screensaver_remove): Return pointer to new head
	of list, take pointer to start of screensaver list,
	use g_list_remove_link

	* src/prefs-widget.c (screensaver_remove_cb): Get new head pointer
	and assign to screensaver list entry, assign widget->selected_saver
	(screensaver_prefs_ok_cb): Set text in clist

	* src/main.c (demo_cb): Save a copy of prefs_widget->screensavers
	in prefs before saving preferences

2000-06-24  Bradford Hovinen  <hovinen@udel.edu>

	* src/screensaver-prefs-dialog.c (read_boolean): Set toggle button
	correctly 

	* src/expr.c (int_parse_factor): Handle G_TOKEN_IDENTIFIER

	* src/screensaver-prefs-dialog.c (read_command_line): Use GScanner
	(arg_is_set): Rewrite for sentance parser

	* src/expr.c (int_parse_factor): Use g_scanner_error
	(parse_sentance): 
	(int_parse_sentance): 
	(int_parse_unary): 
	(int_parse_atom): Implement

2000-06-23  Bradford Hovinen  <hovinen@udel.edu>

	* src/prefs-widget.c (prefs_widget_init): Tweak table attach
	policies for screensaver selection page

	* src/main.c (setup_capplet_widget): Set window policy

	* src/preview.c (strip_arg): 
	(setup_path): 
	(add_window_arg): 
	(show_screensaver): Compile only if ENABLE_PREVIEW set

	* src/prefs-widget.c (prefs_widget_init): Use table for
	positioning basic controls

	* src/main.c (main): Start xscreensaver only if screensaver is not
	disabled
	(try_cb): 
	(revert_cb): 
	(ok_cb): 
	(cancel_cb): Start and stop xscreensaver based on whether
	screensaver is disabled

	* src/screensaver-prefs-dialog.c (get_basic_screensaver_widget):
	Add visual combo box, set border width to 5
	(screensaver_prefs_dialog_new): Don't set container border width
	for frame
	(store_cli): Save visual

	* src/prefs-widget.c (prefs_widget_init): Set frame border width
	after adding scrolled window

	* src/preferences.c (preferences_load): Make default selection
	mode 3

	* src/preferences.h: Add SM_DISABLE_SCREENSAVER and SM_BLANK_SCREEN

	* src/prefs-widget.c (prefs_widget_init): Use table for power
	management
	(prefs_widget_init): Add disable screensaver and black screen only 
	controls

	* src/main.c (setup_capplet_widget): Don't call
	prefs_widget_set_screensavers

	* src/prefs-widget.c (prefs_widget_get_prefs): Call
	prefs_widget_set_screensavers
	(prefs_widget_set_screensavers): Clear clist

	* src/preview.c: gdk-pixbuf should be mandatory
	(show_screensaver): Don't fork off second process
	(show_screensaver_timeout): Implement
	(close_preview): Clear preview_pid, cancel timeout
	(show_preview): Set timeout id
	Declare preview_window, preview_pid, and timeout_id only if
	preview is enabled

	* src/prefs-widget.c (prefs_widget_init): Make viewport
	declaration depend on whether ENABLE_PREVIEW is declared

2000-06-22  Bradford Hovinen  <hovinen@udel.edu>

	* src/preview.c: Removed demo_pid and demo_window
	(print_args): Disabled compilation

	* src/screensaver-prefs-dialog.c (get_argument_data): 
	(get_screensaver_widget):
	(arg_mapping_exists): Use SSPROP_DATADIR

	* src/preview.c (show_screensaver): Use SSPROP_DATADIR

	* src/prefs-widget.c (set_pixmap): Use SSPROP_DATADIR

	* configure.in (SSPROP_DATADIR): Define

	* src/prefs-widget.c (prefs_widget_init): Autosort screensaver list on 
	column 1
	(select_saver_cb): 
	(deselect_saver_cb): 
	(create_list_item): Use gtk_clist_{get|set}_row_data
	(set_pixmap): Accept row
	(set_toggle_buttons_sensitive): Use gtk_clist_get_row_data
	(set_screensavers_enabled): Don't call set_pixmap
	(set_all_pixmaps): Rename from set_toggle_buttons_sensitive
	(one_screensaver_cb): 
	(random_cb): Don't call set_all_pixmaps
	(toggle_saver): Accept row
	(demo_next_cb): 
	(demo_prev_cb): Use gtk_clist_find_row_with_data to get row
	(select_row): Implement
	(create_list_item): Return row
	(prefs_widget_init): Don't create viewport
	(prefs_widget_set_screensavers): Find enabled screensaver
	manually, freeze and thaw screensaver list

	* src/main.c (setup_capplet_widget): Don't sort

	* src/prefs-widget.c (deselect_saver_cb):
	(toggle_saver): Implement
	(set_pixmap): Create pixmaps here, use GdkPixbuf
	(prefs_widget_store_prefs): Store selection mode
	(set_pixmap):
	(set_toggle_buttons_sensitive): Pass selection mode
	(prefs_widget_set_screensavers): 
	(demo_next_cb): 
	(demo_prev_cb): 
	(screensaver_remove_cb): 
	(one_screensaver_cb): 
	(add_select_cb): Call gtk_clist_moveto after selecting widget

	* src/preferences.h (struct _Screensaver ): Remove widgets

	* src/prefs-widget.c (prefs_widget_class_init): Set up pixmaps for
	screensaver list
	(prefs_widget_init): Construct clist for screensaver_list, connect 
	signal for selecting rows
	(create_list_item):
	(add_select_cb):
	(prefs_widget_set_screensavers):
	(select_saver_cb): 
	(set_toggle_buttons_sensitive): 
	(set_screensavers_enabled):
	(choose_from_selected_cb): 
	(demo_next_cb):
	(demo_prev_cb): Rewrite for clist
	(demo_next_cb): 
	(demo_prev_cb): Don't stop preview
	(screensaver_toggle_cb): Remove
	(prefs_widget_init): Remove disabled code

	* src/preferences.c (get_selection_mode): Remove
	(preferences_load): 
	(preferences_save): Use gnome_config to store selection mode
	(preferences_destroy): 
	(screensaver_destroy): Don't act if object is NULL
	(preferences_load): 
	(preferences_save): 
	(screensaver_add): 
	(screensaver_remove): 
	(screensaver_get_desc): Add assertions

	* src/prefs-widget.c (choose_from_selected_cb): Check off active
	screensaver when moving from one screensaver only mode to choose
	from selected mode

	* configure.in: Eliminate option to use xscreensaver command to
	start demo (made mandatory)

	* src/preview.c (show_screensaver): Lower priority on preview
	(show_demo): Don't close preview when showing demo
	Eliminate version of show_demo that calls screensaver directly

	* src/prefs-widget.c (prefs_widget_init): Make priority range from -20
	to 0

2000-06-21  Bradford Hovinen  <hovinen@udel.edu>

	* src/pref-file.c (get_line): Don't subtract off len, don't use len-2
	when doing line number increase test

	* src/prefs-widget.c (prefs_widget_init): Change "selected" to
	"checked off"

	* src/main.c (setup_capplet_widget): Set screensavers after showing
	the widget

	* src/prefs-widget.c (demo_next_cb): 
	(demo_prev_cb): Kill off the preview
	(set_screensavers_enabled): Implement
	(random_cb): Enable all screensavers
	(one_screensaver_cb): Disable all screensavers, then select the
	first one if none selected
	(prefs_widget_set_screensavers): Select enabled item when in one
	screensaver only mode

	* src/screensaver-prefs-dialog.c (screensaver_prefs_dialog_init): Add
	help button
	(help_cb): Implement

	* src/prefs-widget.c (prefs_demo_cb): Implement

	* src/screensaver-prefs-dialog.c (get_basic_screensaver_widget):
	Remove message to choose a screensaver from the list, set padding
	to 5 pixels
	(arg_mapping_exists): Return FALSE if name is NULL
	(screensaver_prefs_dialog_init): Add demo button
	(screensaver_prefs_dialog_new): Connect demo button signal
	(store_cli):
	(demo_cb): Implement
	(screensaver_prefs_dialog_class_init): Add signal demo

	* src/preferences.c (screensaver_get_desc): Set screensaver
	description to default value if it cannot be found

	* src/selection-dialog.c (selection_dialog_ok_cb): Use g_strdup for
	name, set name and command_line only when selected node is valid

	* src/preferences.c (screensaver_add): Implement

	* src/prefs-widget.c (screensaver_add_cb): Use SelectionDialog
	(create_list_item): Implement
	(add_select_cb): Select the item just created

	* src/selection-dialog.c (selection_dialog_get_type): 
	(selection_dialog_init): 
	(selection_dialog_class_init): 
	(selection_dialog_new): 
	(select_program_cb): 
	(selection_dialog_ok_cb): 
	(selection_dialog_cancel_cb): 
	(append_list_item): Implement

	* src/prefs-widget.c (prefs_widget_set_screensavers): Make item a
	member of the saver

	* src/preferences.c (screensaver_destroy): Don't remove link from
	list; assume that's already done
	(screensaver_remove): Don't destroy screensaver

	* src/prefs-widget.c (prefs_widget_store_prefs): Use
	gtk_spin_button_get_value_as_{float|int}
	(make_screensaver_selection_dialog):
	(add_cancel_cb):
	(add_select_cb): Implement

	* src/preferences.c (store_prefs_in_db):
	(read_prefs_from_db): Remove password timeout

	* src/rc-parse.c (write_minutes): Accept gdouble
	(parse_minutes_resource): Return gdouble

	* src/preferences.h (struct _Preferences ): Make timeouts doubles

	* src/prefs-widget.c (prefs_widget_set_screensavers): Use member
	label_widget rather than auto label
	(prefs_widget_init): Remove controls dealing with password
	timeout, make lock timeout in minutes

	* src/preferences.c (screensaver_remove): Implement

	* src/prefs-widget.c (prefs_widget_init): Add demo previous button
	(demo_prev_cb): Implement

	* src/rc-parse.c (parse_screensaver_list): Use our own procedure to
	append the item to the end of the list

	* src/prefs-widget.c (demo_next_cb): 
	(settings_cb): Check if a screensaver is selected before proceeding
	(demo_next_cb): Implement

	* src/rc-parse.c (parse_screensaver_list): Set saver->link

	* src/prefs-widget.c (prefs_widget_init): Make remove button a member
	of the structure
	(select_saver_cb): Sensitive remove_button
	(prefs_widget_init): Add demo next button

	* src/preview.c (find_xscreensaver_window): Fixed up the code to
	trap errors better

2000-06-20  Bradford Hovinen  <hovinen@udel.edu>

	* src/screensaver-prefs-dialog.c (screensaver_prefs_dialog_init): Add
	code to support name entry
	(screensaver_prefs_dialog_new): Set name entry to label, add
	preferences widget only if it exists, make basic_widget an element
	of the structure
	(screensaver_prop_ok_cb): Set label from name entry, free old
	command line and label, use g_strdup when getting text from entries
	(add_screensaver_selector): Implement
	(get_basic_screensaver_widget): Use a different label if the
	screensaver is not yet defined

	* src/prefs-widget.c (set_standby_time_sensitive): 
	(set_suspend_time_sensitive): 
	(set_power_controls_sensitive): Implement
	(set_power_down_time_sensitive): Disable only the control, not the 
	labels
	(power_management_toggled_cb): Use set_power_controls_sensitive
	(prefs_widget_get_prefs): Code cleanup

	* src/daemon.c (setup_dpms): Use standby and suspend times, add
	prefs->timeout, sanitize values before sending to xset, return if
	power management disabled

	* src/preferences.c (preferences_load): 
	(preferences_save): Load/save standby and suspend times

	* src/prefs-widget.c (prefs_widget_init): Remove extraneous code, add
	support for all dpms timings
	(prefs_widget_store_prefs):
	(prefs_widget_get_prefs): Read/store standby and suspend times
	
	* src/daemon.c (setup_dpms): Don't call the command to enable dpms,
	use unsigned formats, multiply times by 60

	* src/main.c (state_changed_cb): 
	(try_cb): 
	(revert_cb): 
	(ok_cb): Call setup_dpms

	* src/rc-parse.c (get_settings_name):
	(get_label): Use g_strdup rather than strdup

	* src/pref-file.c (preferences_save_to_file): 
	(write_entry): Use g_file_test rather than stat

	* src/main.c (main): Set up to start xscreensaver on startup

	* src/rc-parse.c (get_settings_name): Use g_basename
	(command_exists): Use g_file_test rather than stat
	(parse_boolean_resource): Use g_strncasecmp

	* src/pref-file.c (init_file_name): Use g_concat_dir_and_file and
	g_get_home_dir

	* src/daemon.c (start_xscreensaver): 
	(stop_xscreensaver): 
	(restart_xscreensaver): 
	(setup_dpms): Use gnome_execute_shell rather than system

	* src/main.c (cancel_cb): 
	(ok_cb): 
	(revert_cb):
	(try_cb): Don't restart xscreensaver

	* src/prefs-widget.c (prefs_widget_get_prefs): Don't divide minute
	values by 60 before displaying
	(prefs_widget_store_prefs): Don't multiply minute values by 60
	before storing

	* src/pref-file.c (preferences_save_to_file): Use g_warning rather
	than sprintf and perror
	(parse_config_file): Use g_warning directly rather than
	g_strdup_printf

	* src/preferences.h (struct _Preferences ): Change be_verbose to
	verbose

	* src/preferences.c (preferences_get_screensaver_list): Remove
	(preferences_load): Call read_prefs_from_db
	(preferences_save): Call store_prefs_in_db
	(read_prefs_from_db): 
	(store_prefs_in_db): Implement

	* src/rc-parse.c (format_command): 
	(stab_to): 
	(string_columns): 
	(format_hack): Move to rc-parse.c
	(write_screensaver_list): Implement; copy from pref-file.c,
	preferences_save_to_file
	(write_screensaver_list): Fixed memory leak with output from
	format_hack

	* src/pref-file.c (preferences_save_to_file): Remove code to write out 
	programs resource string

	* src/preferences.c (preferences_destroy): Remove check on prefs->shell

	* src/prefs-widget.c (prefs_widget_init): Remove lock_vts widget

2000-06-19  Bradford Hovinen  <hovinen@udel.edu>

	* src/prefs-widget.c (prefs_widget_init): Create GtkText
	prefs->description rather than prefs->description_label; put
	inside a scrolled window
	(select_saver_cb): Fill GtkText with description
	(set_description_text): Implement

	* src/preview.c (show_demo): Make xscreensaver_window automatic

	* src/prefs-widget.c (prefs_widget_class_init): New signal:
	activate-demo
	(demo_cb): Emit activate-demo signal

	* src/main.c (setup_capplet_widget): Connect activate-demo signal

	* src/preview.c (find_xscreensaver_window): Use free rather than
	g_free for data allocated by Xlib
	(show_demo): Free allocated event structure

	* src/pref-file.c: Use g_strstrip rather than strip
	(transform_line): Add default action to copy escaped character over

	* src/rc-parse.c (command_exists): Check for string termination when
	looking for the first whitespace

	* src/resources.c (get_resource): Use g_strconcat rather than strcpy
	and strcat

	* src/rc-parse.c (parse_screensaver): Use g_strdup rather than malloc
	and strncpy

	* src/screensaver-prefs-dialog.c (arg_mapping_exists): Implement
	(screensaver_prefs_dialog_new): Check if glade definition exists
	before trying to load data

	* src/pref-file.c (transform_line): Terminate loop when i > len
	(strip): Code cleanup
	(init_file_name):
	(init_file_tmp_name): Use g_strconcat rather than legacy functions

	* src/prefs-widget.c (prefs_widget_init): Add line to set data type
	for fade_ticks_widget to integer

2000-06-18  Bradford Hovinen  <hovinen@udel.edu>

	* src/pref-file.c (place_preferences): Delete
	(preferences_load_from_file): Return gboolean rather than int
	(preferences_save_to_file): Use g_tree_traverse on config_db
	(write_preference_cb): Implement
	(preferences_save_to_file): Store programs resource in config_db
	after building it
	(transform_line): Added support for backslash escape

	* src/resources.c (preferences_load_from_xrdb): Update to use
	config_db
	(get_string_resource): Rename to get_resource

	* src/pref-file.c (preferences_load_from_file): Use GTree for
	config_db rather than GHashTable

	* src/prefs-widget.c (prefs_widget_init): Put preview above
	description

	* src/preferences.h (struct _Preferences ): Add config_db

	* src/screensaver-prefs-dialog.c (screensaver_prefs_dialog_new): Set
	dialog title to label + " properties"

