1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef BASE_MIME_UTIL_H_ 6 #define BASE_MIME_UTIL_H_ 7 8 #include <string> 9 10 class FilePath; 11 12 namespace mime_util { 13 14 // Gets the mime type for a file based on its filename. The file path does not 15 // have to exist. Please note because it doesn't touch the disk, this does not 16 // work for directories. 17 // If the mime type is unknown, this will return application/octet-stream. 18 std::string GetFileMimeType(const FilePath& filepath); 19 20 // Get the mime type for a byte vector. 21 std::string GetDataMimeType(const std::string& data); 22 23 #if defined(TOOLKIT_GTK) 24 // This detects the current GTK theme by calling gtk_settings_get_default(). 25 // It should only be executed on the UI thread and must be called before 26 // GetMimeIcon(). 27 void DetectGtkTheme(); 28 #endif 29 30 // Gets the file name for an icon given the mime type and icon pixel size. 31 // Where an icon is a square image of |size| x |size|. 32 // This will try to find the closest matching icon. If that's not available, 33 // then a generic icon, and finally an empty FilePath if all else fails. 34 FilePath GetMimeIcon(const std::string& mime_type, size_t size); 35 36 } // namespace mime_util 37 38 #endif // BASE_MIME_UTIL_H_ 39