Commit Graph

6257 Commits

Author SHA1 Message Date
Tor Lillqvist
c668f46d9e Add -lole32, needed for CoTaskMemFree in get_special_folder() below.
2005-01-02  Tor Lillqvist  <tml@iki.fi>

	* gtk/Makefile.am (libgtk_target_ldflags): Add -lole32, needed for
	CoTaskMemFree in get_special_folder() below.

	* gtk/gtkfilesystem.h: Implement case-insensitive path compare on
	Win32 using _gtk_file_system_win32_path_compare().

	* gtk/gtk.symbols: Add _gtk_file_system_win32_path_compare.

	* gtk/gtkfilechooserbutton.c (model_add_special)
	* gtk/gtkfilechooserdefault.c (shortcuts_append_desktop): Use
	_gtk_file_system_win32_get_desktop() to get correct Desktop folder
	on Win32. (#144003)

	* gtk/gtkfilesystemwin32.c: Remove unnecessary includes. Do
	consider all drives "mounted", including floppies. Trying to
	inspect the contents of a nonexistent floppy will cause errors
	later that are handled normally, no need to avoid them
	completely. Keep the drive type in the GtkFileSystemVolume.
	Support UNC paths. (#161797) Fix error message capitalizations
	as in gtkfilesystemunix.c.

	(gtk_file_system_win32_init): Start one timeout per
	GtkFileSystemWin32.

	(gtk_file_system_win32_finalize): Remove the timeout.

	(get_special_folder): Copied from GLib.

	(_gtk_file_system_win32_get_desktop): New function, uses
	get_special_folder().

	(gtk_file_system_win32_list_volumes): Don't start a timeout at
	each call to this function. Don't assume A: and B: are floppies.

	(gtk_file_system_win32_get_volume_for_path): Don't assume all
	volumes are drive roots, i.e. support share roots of UNC paths
	(\\server\share).

	(gtk_file_system_win32_get_folder): Don't assume errno is set
	after g_file_test() returns FALSE. It isn't on Win32 (and even on
	Unix I don't think one should assume anything about errno after
	g_file_test()).

	(gtk_file_system_win32_volume_get_is_mounted): Always return TRUE.

	(gtk_file_system_win32_volume_get_display_name): Don't call
	GetVolumeInformation() on drives A: or B: if they are removable,
	as they might then be floppies, causing an unnecessary
	delay. (#157820)

	(gtk_file_system_win32_volume_render_icon): Use network icon for
	unrecognized drive types.

	(canonicalize_filename, gtk_file_system_win32_parse): Don't get
	confused by UNC paths.

	(bookmarks_serialize): Use _gtk_file_system_win32_path_compare()
	for case-insensitive UTF-8 path comparison.

	(extract_icon): Use SHGetFileInfo() which is faster than
	ExtractAssociatedIcon(). Icon extraction is still slow, though,
	needs work.

	(win32_pseudo_mime_lookup): Don't use the same icon for all
	shortcuts or executables. Cache only other file type icons.

	(gtk_file_system_win32_render_icon): Use network stock icon for
	remote drives and UNC server share roots. Compare home directory
	case-insensitively. Do lookup icons also for executable files,
	after all, it's these files that can have individual icons in the
	first place. Yes, it can be slow. Needs work.

	(filename_is_drive_root): Require also the slash after the colon.

	(filename_is_server_share): New function.

	(_gtk_file_system_win32_path_compare): New function, does
	case-folded UTF-8 comparison.

	* gtk/gtkfilesystemwin32.h: Declare
	_gtk_file_system_win32_path_compare().
2005-01-02 23:15:21 +00:00
Matthias Clasen
4a6b6aa45c Allow unsetting the custom image by passing NULL. (gtk_button_init):
2005-01-01  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkbutton.c (gtk_button_set_image): Allow unsetting the
	custom image by passing NULL.
	(gtk_button_init): Initialize image_is_stock to TRUE, fixing
	a problem with changing stock labels.  (#162273, Marcin
	Krzyzanowski)
2005-01-02 03:14:34 +00:00
Tor Lillqvist
75ae663dd8 gtk/gtkmodules.c (get_module_path) With g_getenv() now returning UTF-8 on
2005-01-01  Tor Lillqvist  <tml@iki.fi>

	* gtk/gtkmodules.c (get_module_path)
	* gtk/gtkrc.c (gtk_rc_make_default_dir, gtk_rc_get_im_module_file,
	gtk_rc_get_theme_dir, gtk_rc_add_initial_default_files): With
	g_getenv() now returning UTF-8 on Win32, no need to call
	g_locale_to_utf8().
2005-01-01 03:04:17 +00:00
Matthias Clasen
d4e082d71c Don't sort a list of values as if it was a list of entries. This fixes
2004-12-31  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkkeyhash.c (_gtk_key_hash_lookup_keyval)
	(_gtk_key_hash_lookup): Don't sort a list of values as if
	it was a list of entries. This fixes crashes during mnemonic
	activation in the presence of multiple keymaps. (#162488,
	Christian Persch)
2004-12-31 06:40:05 +00:00
Matthias Clasen
3a316fb562 Fix state propagation when making an insensitive combo box sensitive
2004-12-30  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkcombobox.c (gtk_combo_box_button_state_changed): Fix
	state propagation when making an insensitive combo box sensitive
	again.  (#162524, Carlos Garnacho Parro)
2004-12-30 16:15:53 +00:00
Matthias Clasen
db4665b45e Use secondary text for error dialogs.
2004-12-30  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilechooserdefault.c: Use secondary text for error
	dialogs.
2004-12-30 07:42:07 +00:00
Matthias Clasen
be48fff80b Clean up some cases of errno handling (#162496, noted by Tor Lillqvist),
2004-12-30  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c: Clean up some cases of errno handling
	(#162496, noted by Tor Lillqvist), and use g_filename_display_name()
	for error messages. Also mark some error messages for translation,
	fix capitalization of error messages.
2004-12-30 07:39:45 +00:00
Matthias Clasen
8927a48bf3 Clean up some cases of errno handling (#162496, noted by Tor Lillqvist),
2004-12-30  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c: Clean up some cases of errno handling
	(#162496, noted by Tor Lillqvist), and use g_filename_display_name()
	for error messages.
2004-12-30 05:40:05 +00:00
Matthias Clasen
f7c6751c29 Use g_value_get_boolean() for ellipsize_set. (#162447, Brian Tarricone)
2004-12-30  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_set_property):
	Use g_value_get_boolean() for ellipsize_set.  (#162447,
	Brian Tarricone)
2004-12-30 05:11:03 +00:00
Tor Lillqvist
5e86a6c9cd Use /usr/share/pixmaps only on Unix.
2004-12-30  Tor Lillqvist  <tml@iki.fi>

	* gtk/gtkicontheme.c (gtk_icon_theme_init): Use /usr/share/pixmaps
	only on Unix.
2004-12-30 00:37:12 +00:00
Matthias Clasen
2833c7ee94 Inherit submenu direction from the parent menu.
2004-12-28  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmenuitem.c (gtk_menu_item_position_menu): Inherit
	submenu direction from the parent menu.
2004-12-28 07:39:31 +00:00
Matthias Clasen
e77e1e24c2 Return a boolean indicating whether an item in the submenu was selected.
2004-12-28  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmenushell.c (gtk_menu_shell_select_submenu_first):
	Return a boolean indicating whether an item in the submenu
	was selected.
	(gtk_real_menu_shell_move_current): When going in child
	direction, don't get stuck at completely insensitive
	submenus.  (#162055, Billy Biggs)
2004-12-28 05:33:27 +00:00
Matthias Clasen
676322ac06 Make the clipboard image API more robust (#162357, Torsten Schoenfeld):
2004-12-27  Matthias Clasen  <mclasen@redhat.com>

	Make the clipboard image API more robust (#162357,
	Torsten Schoenfeld):

	* gtk/gtkclipboard.c (clipboard_image_received_func): Don't
	ref the pixbuf if it is NULL.

	* gtk/gtkselection.c (gtk_selection_data_set_pixbuf):
	NULL-terminate the varargs in the call to
	gdk_pixbuf_save_to_buffer().
	(gtk_selection_data_get_pixbuf): Only use a pixbuf loader
	if there is data to load.
2004-12-28 04:31:40 +00:00
Matthias Clasen
34982b41d2 Set x_root and y_root in button and motion events from extended input
2004-12-27  Matthias Clasen  <mclasen@redhat.com>

	* gdk/x11/gdkinput-x11.c (_gdk_input_common_other_event):
	Set x_root and y_root in button and motion events from
	extended input devices.  (#148715, Robert Ögren)
2004-12-28 01:09:45 +00:00
Matthias Clasen
661ec3189c Fix a typo. (#162339, Alessio Dessi)
* gtk/gtktreeview.c (gtk_tree_view_class_init): Fix a
	typo.  (#162339, Alessio Dessi)
2004-12-27 22:11:04 +00:00
Matthias Clasen
0298076fa1 Document properties as new since 2.4. (#156101, Billy Biggs)
2004-12-27  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkadjustment.c (gtk_adjustment_class_init): Document
	properties as new since 2.4.  (#156101, Billy Biggs)
2004-12-27 06:34:10 +00:00
Matthias Clasen
df1d6fb191 Add a warning about the linux-fb target. (#155488, Zeeshan Ali)
2004-12-27  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Add a warning about the linux-fb
	target.  (#155488, Zeeshan Ali)
2004-12-27 06:13:07 +00:00
Matthias Clasen
f1f0b19995 Typo fix. (#162278, Torsten Schoenfeld)
2004-12-27  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmain.c (gtk_init_with_args): Typo fix.  (#162278,
	Torsten Schoenfeld)
2004-12-27 05:25:15 +00:00
Matthias Clasen
d181d74e77 Typo fix. (#162219, Masao Mutoh)
2004-12-26  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilechooser.c (gtk_file_chooser_set_action):
	Typo fix.  (#162219, Masao Mutoh)
	(gtk_file_chooser_set_preview_widget_active):
	Another typo.  (#162218, Masao Mutoh)
2004-12-26 06:35:39 +00:00
Matthias Clasen
1fc0fc6991 Typo fix. (#162219, Masao Mutoh)
2004-12-26  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilechooser.c (gtk_file_chooser_set_action):
	Typo fix.  (#162219, Masao Mutoh)
2004-12-26 06:28:00 +00:00
Matthias Clasen
6e63a0b871 Return TRUE if there are children. (#162134, Iñigo Serna, patch by John
2004-12-23  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkliststore.c (gtk_list_store_iter_children):
	Return TRUE if there are children.  (#162134, Iñigo Serna,
	patch by John Finlay)
2004-12-24 03:48:47 +00:00
Matthias Clasen
f9403b12e3 Transfer state from the button to the cell view to get prelighting right.
2004-12-23  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkcombobox.c (gtk_combo_box_button_state_changed):
	Transfer state from the button to the cell view to get
	prelighting right.  (#156327, Ricardo Veguilla)
2004-12-24 03:44:17 +00:00
Søren Sandmann Pedersen
512a0ebf00 Conflict markers 2004-12-22 19:25:42 +00:00
Søren Sandmann
63f2fd9614 Add sensitivity-changing timeout. Written by Christian Persch.
Wed Dec 22 14:22:19 2004  Søren Sandmann  <sandmann@redhat.com>

	* tests/testtoolbar.c (timeout_cb): Add sensitivity-changing
	timeout. Written by Christian Persch.

Wed Dec 22 14:14:02 2004  Søren Sandmann  <sandmann@redhat.com>

	Bug #161561

	* gdk/x11/gdkwindow-x11.c (tmp_{re,un}set_bg): Only set/reset the
	background for windows that get expose events.

	* gdk/gdkwindow.c (gdk_window_process_updates_internal): Remove
	hack to repaint !expose windows.
2004-12-22 19:25:24 +00:00
Matthias Clasen
e9740d62c3 Don't forget to null the mnemonic_menu when unsetting a mnemonic, reported
2004-12-22  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtklabel.c (gtk_label_setup_mnemonic): Don't forget to
	null the mnemonic_menu when unsetting a mnemonic, reported
	by Owen Taylor.
2004-12-22 18:52:41 +00:00
Matthias Clasen
5ec1648473 Fix sorting of list stores. (#161886, Marcin Krzyzanowski)
2004-12-22  Matthias Clasen  <mclasen@redhat.com>

	Fix sorting of list stores.  (#161886, Marcin Krzyzanowski)

	* gtk/gtkliststore.c (generate_order): Generate the order the
	way it is supposed to be, order[new_pos] == old_pos.
	(gtk_list_store_reorder): Invert the order before using it.

	* gtk/gtkiconview.c (gtk_icon_view_rows_reordered): Adapt to the
	list store fix.
2004-12-22 06:43:32 +00:00
Jonathan Blandford
61978d359b print out the version and binary name in the header comment. Problem
Wed Dec 22 01:24:01 2004  Jonathan Blandford  <jrb@redhat.com>

        * gtk/queryimmodules.c (main): print out the version and binary
        name in the header comment.  Problem reported by Seth Nickell.
2004-12-22 06:26:57 +00:00
Matthias Clasen
4045cc1ac5 Pass a root path to gtk_tree_model_rows_reordered(). (#161720, Marcin
2004-12-20  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkliststore.c (gtk_list_store_sort_iter_changed): Pass a
	root path to gtk_tree_model_rows_reordered().  (#161720,
	Marcin Krzyzanowski)
2004-12-20 17:15:11 +00:00
Matthias Clasen
8454afe8e6 Don't translate NULL messages. (#161789, Morten Welinder)
2004-12-20  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkactiongroup.c (gtk_action_group_translate_string): Don't
	translate NULL messages.  (#161789, Morten Welinder)
2004-12-20 16:05:25 +00:00
Matthias Clasen
7e00903af7 Don't show the secondary label on show_all(). (#161707, Christian Persch)
2004-12-20  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmessagedialog.c (setup_primary_label_font): Don't show
	the secondary label on show_all().  (#161707, Christian Persch)
2004-12-20 15:50:45 +00:00
Tor Lillqvist
78e869fe97 Use wide character API when available. Use UTF-8 for filenames.
2004-12-19  Tor Lillqvist  <tml@iki.fi>

	* gdk/win32/gdkdnd-win32.c (resolve_link, gdk_dropfiles_filter):
	Use wide character API when available. Use UTF-8 for filenames.

	* gdk/win32/gdkselection-win32.c (_gdk_dropfiles_store): Include
	the string's trailing zero byte in the property's length, just for
	safety.
2004-12-19 21:00:58 +00:00
Matthias Clasen
947fcbbd9f Add missing GDK_THREADS_ENTER/LEAVE.
2004-12-18  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilechooserentry.c (check_completion_callback)
	(load_directory_callback): Add missing GDK_THREADS_ENTER/LEAVE.

	* gtk/gtkfilechooserdefault.c (edited_idle_cb)
	(shortcuts_drag_outside_idle_cb): Add missing
	GDK_THREADS_ENTER/LEAVE.  (#161604)

	* gtk/gtkfilechooserdefault.c (selection_check_foreach_cb):
	(list_select_func): Don't call gtk_file_info_get_is_folder()
	on NULL.
2004-12-19 04:45:09 +00:00
Matthias Clasen
29cec89b7a Add missing initializations. (#161646, Torsten Schoenfeld)
2004-12-18  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkaboutdialog.c (gtk_about_dialog_get_logo_icon_name):
	(gtk_about_dialog_init): Add missing initializations.  (#161646,
	Torsten Schoenfeld)
2004-12-19 04:10:00 +00:00
Matthias Clasen
6fe67ca30e Bump version 2004-12-16 23:49:49 +00:00
Matthias Clasen
6b62d82581 2.6.0 second try 2004-12-16 19:13:58 +00:00
Matthias Clasen
203e5edc6f 2.6.0 2004-12-16 18:21:44 +00:00
Matthias Clasen
6cd1c58c92 Only unblock the handlers if they are blocked.
2004-12-16  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilechooserbutton.c (dialog_response_cb): Only unblock the handlers
	if they are blocked.
2004-12-16 14:18:52 +00:00
Matthias Clasen
860228fa36 Don't crash if enable_search is FALSE. (#161267, Jorn Baayen)
2004-12-16  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_real_start_interactive_search): Don't
	crash if enable_search is FALSE.  (#161267, Jorn Baayen)

	* gtk/gtkfilechooserbutton.c (gtk_file_chooser_button_mnemonic_activate):
	Re-fix #152925, reported by Dennis Cranston.
2004-12-16 13:33:43 +00:00
Matthias Clasen
521c21e0a3 Add missing includes.
2004-12-15  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilechooserbutton.c: Add missing includes.
2004-12-16 04:57:18 +00:00
Matthias Clasen
55434ebd32 Require glib 2.6.0 for g_filename_display_basename.
2004-12-15  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Require glib 2.6.0 for
	g_filename_display_basename.

	* gtk/gtkentrycompletion.[hc]: Make the prefix parameter
	to the insert-prefix signal a const gchar* instead of a
	gchar*.  (#161415, Murray Cumming)
	Also remove an unused static function.
2004-12-16 03:49:22 +00:00
Alexander Larsson
408142e32e Use g_filename_display_basename to calculate display name.
2004-12-15  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtkfilesystemunix.c (gtk_file_folder_unix_get_info):
	Use g_filename_display_basename to calculate display name.
2004-12-15 16:57:46 +00:00
Matthias Clasen
27ee5709f8 Updates 2004-12-15 16:38:40 +00:00
Matthias Clasen
8b927c6f58 Use _gtk_menu_item_popup_submenu() to make keynav into submenus work
2004-12-15  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmenushell.c (gtk_menu_shell_select_submenu_first)
	(gtk_real_menu_shell_activate_current): Use
	_gtk_menu_item_popup_submenu() to make keynav into submenus work
	instantaneously, independent of the popup delay.  (#161140)

	* gtk/gtkmenuitem.[hc]: _-prefix gtk_menu_item_popup_submenu() and
	make it non-static.

	* gtk/gtkmenuitem.c (gtk_menu_item_paint): Remove unused variables.
2004-12-15 16:27:30 +00:00
James M. Cape
b418bf3aa4 Use a GtkComboBox in SELECT_FOLDER mode (#157726).
2004-12-15  James M. Cape  <jcape@ignore-your.tv>

        * gtk/gtkfilechooserbutton.c (struct _GtkFileChooserButtonPrivate)
        (gtk_file_chooser_button_init)
        (gtk_file_chooser_button_file_chooser_iface_init)
        (gtk_file_chooser_button_add_shortcut_folder)
        (gtk_file_chooser_button_remove_shortcut_folder)
        (gtk_file_chooser_button_constructor)
        (gtk_file_chooser_button_set_property)
        (gtk_file_chooser_button_destroy)
        (gtk_file_chooser_button_finalize)
        (get_icon_theme) (get_display_name_for_path) (model_get_type_position)
        (model_free_row_data) (model_add_special) (model_add_other)
        (model_add_volumes) (model_add_bookmarks)
        (model_update_current_folder) (model_remove_rows)
        (filter_model_visible_func) (combo_box_row_separator_func)
        (name_cell_data_func) (update_combo_box) (fs_volumes_changed_cb)
        (fs_bookmarks_changed_cb) (combo_box_changed_cb)
        (change_icon_size): Use a GtkComboBox in SELECT_FOLDER mode (#157726).

        * gtk/gtkfilechooserbutton.c:
        * gtk/gtkfilechooserbutton.h (gtk_file_chooser_button_new)
        (gtk_file_chooser_button_new_with_backend): Add @action to constructors
        to match other GtkFileChooser impls. API CHANGE.

        * docs/tools/widgets.c (create_file_button):
        * tests/testfilechooserbutton.c (main): Update callers.

        * docs/reference/gtk/tmpl/gtkfilechooserbutton.sgml: Reflect API
        change.

        * tests/testfilechooserbutton.c: Add LGPL license.
        (main): Added GOption parser for --backend and --right-to-left cmd line
        args.
        (add_pwds_parent_as_shortcut_clicked_cb)
        (del_pwds_parent_as_shortcut_clicked_cb) (tests_button_clicked_cb):
        Add shortcut_folders test.
        (chooser_current_folder_changed_cb) (chooser_selection_changed_cb)
        (chooser_file_activated_cb) (chooser_update_preview_cb): Print URIS,
        not filenames.
2004-12-15 14:58:39 +00:00
Matthias Clasen
43f8526198 Don't try to filter if impl->current_filter is NULL. (#161329, R.
2004-12-15  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilechooserdefault.c (get_is_file_filtered): Don't
	try to filter if impl->current_filter is NULL.  (#161329,
	R. McFarland)
2004-12-15 14:30:53 +00:00
Federico Mena Quintero
9f558a1540 Merged from gtk-2-4:
2004-12-14  Federico Mena Quintero  <federico@ximian.com>

	Merged from gtk-2-4:

	Fix #145470:

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_initial_focus): Queue a pending
	operation to select the first row if we are not finished loading
	yet.
	(gtk_file_chooser_default_class_init): Override GtkWidget::map().
	(gtk_file_chooser_default_map): New ::map() handler; refresh the
	file and bookmark lists.

	* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_class_init):
	Override GtkWidget::map() and GtkWidget::unmap().
	(gtk_file_chooser_dialog_constructor): Don't call initial_focus()
	here.
	(gtk_file_chooser_dialog_map): Map the file chooser widget if
	needed.  Call initial_focus() here.
	(gtk_file_chooser_dialog_unmap): Unmap the file chooser widget.
	When we are re-mapped, the widget will get mapped as well and it
	will have a chance to refresh.
2004-12-15 01:37:41 +00:00
Matthias Clasen
efea775d4d Fix a typo
2004-12-14  Matthias Clasen  <mclasen@redhat.com>

	* README.win32: Fix a typo

	* README.in: Updates
2004-12-14 18:56:34 +00:00
Matthias Clasen
ed45e54cb4 Don't use gtk_cell_renderer_set_values().
2004-12-14  Matthias Clasen  <mclasen@redhat.com>

	* tests/testcombo.c (main): Don't use gtk_cell_renderer_set_values().
2004-12-14 15:09:32 +00:00
Matthias Clasen
58d69919f3 Bump version to 2.6.0
2004-12-14  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Bump version to 2.6.0

	* NEWS: Updates
2004-12-14 14:42:10 +00:00
Matthias Clasen
7e7c5358a1 Test oversized items.
2004-12-14  Matthias Clasen  <mclasen@redhat.com>

	* tests/testiconview.c: Test oversized items.
2004-12-14 14:08:30 +00:00