nautilus/libnautilus-private/nautilus-metadata.h
Christian Neumair 40c79aec2d No more overlapping desktop icons.
2008-08-24  Christian Neumair  <cneumair@gnome.org>

	* libnautilus-private/nautilus-directory.c
	(nautilus_directory_schedule_position_set):
	* libnautilus-private/nautilus-file.c (get_time_from_time_string),
	(nautilus_file_get_time_metadata),
	(nautilus_file_set_time_metadata):
	* libnautilus-private/nautilus-file.h:
	* libnautilus-private/nautilus-icon-container.c
	(lay_down_icons_vertical_desktop),
	(nautilus_icon_container_class_init),
	(nautilus_icon_container_instance_init),
	(nautilus_icon_container_clear), (finish_adding_new_icons),
	(is_old_or_unknown_icon_data), (nautilus_icon_container_add),
	(nautilus_icon_container_begin_loading),
	(store_layout_timestamps_now),
	(nautilus_icon_container_end_loading),
	(nautilus_icon_container_get_store_layout_timestamps),
	(nautilus_icon_container_set_store_layout_timestamps):
	* libnautilus-private/nautilus-icon-container.h:
	* libnautilus-private/nautilus-icon-dnd.c (handle_local_move):
	* libnautilus-private/nautilus-icon-private.h:
	* libnautilus-private/nautilus-metadata.h:
	* src/file-manager/fm-desktop-icon-view.c
	(fm_desktop_icon_view_init):
	* src/file-manager/fm-directory-view.c (done_loading),
	(display_pending_files), (fm_directory_view_end_loading),
	(fm_directory_view_stop), (fm_directory_view_class_init):
	* src/file-manager/fm-directory-view.h:
	* src/file-manager/fm-icon-view.c (fm_icon_view_add_file),
	(fm_icon_view_begin_loading), (fm_icon_view_end_loading),
	(fm_icon_view_screen_changed), (get_stored_layout_timestamp),
	(store_layout_timestamp), (create_icon_container):
	No more overlapping desktop icons.

	Implement a layout timestamp concept where each file on the desktop
	and the desktop directory itself is timestamped when a full layout
	happened. Iff files were not part of the last layout (or added more
	recently, through DND), they are treated as being “semi-positioned“
	(cf. 2005-11-07).
	This means that they may be freely shifted around, starting from their
	last position, until they don't overlap and fully laid out items.
	Should inter alia fix #330298.

svn path=/trunk/; revision=14519
2008-08-24 20:44:34 +00:00

83 lines
3.9 KiB
C

/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*-
nautilus-metadata.h: #defines and other metadata-related info
Copyright (C) 2000 Eazel, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; if not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
Author: John Sullivan <sullivan@eazel.com>
*/
#ifndef NAUTILUS_METADATA_H
#define NAUTILUS_METADATA_H
/* Keys for getting/setting Nautilus metadata. All metadata used in Nautilus
* should define its key here, so we can keep track of the whole set easily.
*/
/* Per-file */
#define NAUTILUS_METADATA_KEY_CONTENT_VIEWS "content_views"
#define NAUTILUS_METADATA_KEY_DEFAULT_COMPONENT "default_component"
#define NAUTILUS_METADATA_KEY_LOCATION_BACKGROUND_COLOR "background_color"
#define NAUTILUS_METADATA_KEY_LOCATION_BACKGROUND_IMAGE "background_tile_image"
#define NAUTILUS_METADATA_KEY_ICON_VIEW_ZOOM_LEVEL "icon_view_zoom_level"
#define NAUTILUS_METADATA_KEY_ICON_VIEW_AUTO_LAYOUT "icon_view_auto_layout"
#define NAUTILUS_METADATA_KEY_ICON_VIEW_TIGHTER_LAYOUT "icon_view_tighter_layout"
#define NAUTILUS_METADATA_KEY_ICON_VIEW_SORT_BY "icon_view_sort_by"
#define NAUTILUS_METADATA_KEY_ICON_VIEW_SORT_REVERSED "icon_view_sort_reversed"
#define NAUTILUS_METADATA_KEY_ICON_VIEW_KEEP_ALIGNED "icon_view_keep_aligned"
#define NAUTILUS_METADATA_KEY_ICON_VIEW_LAYOUT_TIMESTAMP "icon_view_layout_timestamp"
#define NAUTILUS_METADATA_KEY_LIST_VIEW_ZOOM_LEVEL "list_view_zoom_level"
#define NAUTILUS_METADATA_KEY_LIST_VIEW_SORT_COLUMN "list_view_sort_column"
#define NAUTILUS_METADATA_KEY_LIST_VIEW_SORT_REVERSED "list_view_sort_reversed"
#define NAUTILUS_METADATA_KEY_LIST_VIEW_VISIBLE_COLUMNS "list_view_visible_columns"
#define NAUTILUS_METADATA_KEY_LIST_VIEW_COLUMN_ORDER "list_view_column_order"
#define NAUTILUS_METADATA_SUBKEY_COLUMNS "columns"
#define NAUTILUS_METADATA_KEY_COMPACT_VIEW_ZOOM_LEVEL "compact_view_zoom_level"
#define NAUTILUS_METADATA_KEY_WINDOW_GEOMETRY "window_geometry"
#define NAUTILUS_METADATA_KEY_WINDOW_SCROLL_POSITION "window_scroll_position"
#define NAUTILUS_METADATA_KEY_WINDOW_SHOW_HIDDEN_FILES "window_show_hidden_files"
#define NAUTILUS_METADATA_KEY_WINDOW_MAXIMIZED "window_maximized"
#define NAUTILUS_METADATA_KEY_WINDOW_STICKY "window_sticky"
#define NAUTILUS_METADATA_KEY_WINDOW_KEEP_ABOVE "window_keep_above"
#define NAUTILUS_METADATA_KEY_SIDEBAR_BACKGROUND_COLOR "sidebar_background_color"
#define NAUTILUS_METADATA_KEY_SIDEBAR_BACKGROUND_IMAGE "sidebar_background_tile_image"
#define NAUTILUS_METADATA_KEY_SIDEBAR_BUTTONS "sidebar_buttons"
#define NAUTILUS_METADATA_KEY_SIDEBAR_TAB_COLOR "sidebar_tab_color"
#define NAUTILUS_METADATA_KEY_SIDEBAR_TITLE_TAB_COLOR "sidebar_title_tab_color"
#define NAUTILUS_METADATA_KEY_ANNOTATION "annotation"
#define NAUTILUS_METADATA_KEY_ICON_POSITION "icon_position"
#define NAUTILUS_METADATA_KEY_ICON_POSITION_TIMESTAMP "icon_position_timestamp"
#define NAUTILUS_METADATA_KEY_ICON_SCALE "icon_scale"
#define NAUTILUS_METADATA_KEY_CUSTOM_ICON "custom_icon"
#define NAUTILUS_METADATA_KEY_SCREEN "screen"
/* per link file */
#define NAUTILUS_METADATA_KEY_EXTRA_TEXT "extra_text"
#endif /* NAUTILUS_METADATA_H */