gtk/gtk/gtkfilesystemwin32.h

43 lines
1.6 KiB
C
Raw Normal View History

/* GTK - The GIMP Toolkit
* gtkfilesystemunix.h: Default implementation of GtkFileSystem for UNIX-like systems
* Copyright (C) 2003, Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef __GTK_FILE_SYSTEM_WIN32_H__
#define __GTK_FILE_SYSTEM_WIN32_H__
#include <glib-object.h>
#include "gtkfilesystem.h"
G_BEGIN_DECLS
#define GTK_TYPE_FILE_SYSTEM_WIN32 (gtk_file_system_win32_get_type ())
#define GTK_FILE_SYSTEM_WIN32(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FILE_SYSTEM_WIN32, GtkFileSystemWin32))
#define GTK_IS_FILE_SYSTEM_WIN32(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_FILE_SYSTEM_WIN32))
typedef struct _GtkFileSystemWin32 GtkFileSystemWin32;
GtkFileSystem *gtk_file_system_win32_new (void);
Mark as const. 2004-11-23 Matthias Clasen <mclasen@redhat.com> * gtk/gtkuimanager.h (gtk_ui_manager_get_type): * gtk/gtktreeview.h (gtk_tree_view_get_type): * gtk/gtktreeviewcolumn.h (gtk_tree_view_column_get_type): * gtk/gtktreestore.h (gtk_tree_store_get_type): * gtk/gtktreeselection.h (gtk_tree_selection_get_type): * gtk/gtktreemodelfilter.h (gtk_tree_model_filter_get_type): * gtk/gtktreemodel.h (gtk_tree_iter_get_type): (gtk_tree_path_get_type): (gtk_tree_row_reference_get_type): * gtk/gtktoolitem.h (gtk_tool_item_get_type): * gtk/gtktoolbutton.h (gtk_tool_button_get_type): * gtk/gtktoggleaction.h (gtk_toggle_action_get_type): * gtk/gtkthemes.h (gtk_theme_engine_get_type): * gtk/gtktextiter.h (gtk_text_iter_get_type): * gtk/gtksettings.h (gtk_settings_get_type): * gtk/gtkselection.h (gtk_selection_data_get_type): * gtk/gtkradioaction.h (gtk_radio_action_get_type): * gtk/gtkmenutoolbutton.h (gtk_menu_tool_button_get_type): * gtk/gtkliststore.h (gtk_list_store_get_type): * gtk/gtkiconview.h (gtk_icon_view_get_type): * gtk/gtkicontheme.h (gtk_icon_info_get_type): * gtk/gtkiconfactory.h (gtk_icon_factory_get_type): (gtk_icon_set_get_type): (gtk_icon_source_get_type): * gtk/gtkfilesystemwin32.h (gtk_file_system_win32_get_type): * gtk/gtkfilesystemunix.h (gtk_file_system_unix_get_type): * gtk/gtkfilesystem.h (gtk_file_folder_get_type): (gtk_file_info_get_type, gtk_file_path_get_type): (gtk_file_system_get_type): * gtk/gtkfilefilter.h (gtk_file_filter_get_type): * gtk/gtkfilechooserwidget.h (gtk_file_chooser_widget_get_type): * gtk/gtkfilechooser.h (gtk_file_chooser_get_type): * gtk/gtkfilechooserdialog.h (gtk_file_chooser_dialog_get_type): * gtk/gtkexpander.h (gtk_expander_get_type): * gtk/gtkentrycompletion.h (gtk_entry_completion_get_type): * gtk/gtkcombobox.h (gtk_combo_box_get_type): * gtk/gtkcomboboxentry.h (gtk_combo_box_entry_get_type): * gtk/gtkclipboard.h (gtk_clipboard_get_type): * gtk/gtkcellview.h (gtk_cell_view_get_type): * gtk/gtkcellrenderertoggle.h (gtk_cell_renderer_toggle_get_type): * gtk/gtkcellrenderertext.h (gtk_cell_renderer_text_get_type): * gtk/gtkcellrendererprogress.h (gtk_cell_renderer_progress_get_type): * gtk/gtkcellrendererpixbuf.h (gtk_cell_renderer_pixbuf_get_type): * gtk/gtkcellrenderercombo.h (gtk_cell_renderer_combo_get_type): * gtk/gtkcelllayout.h (gtk_cell_layout_get_type): * gtk/gtkactiongroup.h (gtk_action_group_get_type): * gtk/gtkaction.h (gtk_action_get_type): * gtk/gtkaccessible.h (gtk_accessible_get_type): * gtk/gtkaccelmap.h (gtk_accel_map_get_type): * gtk/gtkaccelgroup.h (gtk_accel_group_get_type): * gtk/gtkmessagedialog.h (gtk_message_dialog_get_type): Mark as const. * gtk/gtkicontheme.h: Don't mark gtk_icon_theme_error_quark() as const, to be consistent with all the other error_quark functions. (technically they are const, but since these are called only in error paths, giving the compiler better optimization opportunities doesn't matter much) * gtk/gtk.symbols: * gdk/gdk.symbols: Add attribute annotations. * gtk/makegtkalias.pl: * gdk/makegdkalias.pl: Keep attribute annotations, but strip PRIVATE. * gtk/Makefile.am (gtk.def): * gdk/Makefile.am (gdk.def): Strip attribute annotations, but keep PRIVATE.
2004-11-23 20:02:15 +00:00
GType gtk_file_system_win32_get_type (void) G_GNUC_CONST;
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
gchar *_gtk_file_system_win32_get_desktop (void);
G_END_DECLS
#endif /* __GTK_FILE_SYSTEM_WIN32_H__ */