⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gvfs.cpp

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 CPP
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        src/gtk/gnome/gvfs.cpp// Author:      Robert Roebling// Purpose:     Implement GNOME VFS support// Created:     03/17/06// RCS-ID:      $Id: gvfs.cpp,v 1.4 2006/08/31 19:30:30 ABX Exp $// Copyright:   Robert Roebling// Licence:     wxWindows Licence/////////////////////////////////////////////////////////////////////////////// For compilers that support precompilation, includes "wx/wx.h".#include "wx/wxprec.h"#ifdef __BORLANDC__    #pragma hdrstop#endif#include "wx/gtk/gnome/gvfs.h"#if wxUSE_MIMETYPE && wxUSE_LIBGNOMEVFS#ifndef WX_PRECOMP    #include "wx/log.h"    #include "wx/module.h"#endif#include "wx/mimetype.h"#include "wx/gtk/private.h"#include "wx/dynlib.h"#include <libgnomevfs/gnome-vfs-mime-handlers.h>#include "wx/html/forcelnk.h"FORCE_LINK_ME(gnome_vfs)//----------------------------------------------------------------------------// wxGnomeVFSLibrary//----------------------------------------------------------------------------#define wxDL_METHOD_DEFINE( rettype, name, args, shortargs, defret ) \    typedef rettype (* name ## Type) args ; \    name ## Type pfn_ ## name; \    rettype name args \    { if (m_ok) return pfn_ ## name shortargs ; return defret; }#define wxDL_METHOD_LOAD( lib, name, success ) \    pfn_ ## name = (name ## Type) lib->GetSymbol( wxT(#name), &success ); \    if (!success) return;class wxGnomeVFSLibrary{public:    wxGnomeVFSLibrary();    ~wxGnomeVFSLibrary();    bool IsOk();    void InitializeMethods();private:    bool              m_ok;    wxDynamicLibrary *m_gnome_vfs_lib;public:    wxDL_METHOD_DEFINE( gboolean, gnome_vfs_init,        (), (), FALSE )    wxDL_METHOD_DEFINE( void, gnome_vfs_shutdown,        (), (), /**/ )    wxDL_METHOD_DEFINE( GnomeVFSResult, gnome_vfs_mime_set_icon,        (const char *mime_type, const char *filename), (mime_type, filename), GNOME_VFS_OK )};wxGnomeVFSLibrary::wxGnomeVFSLibrary(){    m_gnome_vfs_lib = NULL;    wxLogNull log;    m_gnome_vfs_lib = new wxDynamicLibrary( wxT("libgnomevfs-2.so.0") );    m_ok = m_gnome_vfs_lib->IsLoaded();    if (!m_ok) return;    InitializeMethods();}wxGnomeVFSLibrary::~wxGnomeVFSLibrary(){    if (m_gnome_vfs_lib)        delete m_gnome_vfs_lib;}bool wxGnomeVFSLibrary::IsOk(){    return m_ok;}void wxGnomeVFSLibrary::InitializeMethods(){    m_ok = false;    bool success;    wxDL_METHOD_LOAD( m_gnome_vfs_lib, gnome_vfs_init, success )    wxDL_METHOD_LOAD( m_gnome_vfs_lib, gnome_vfs_shutdown, success )    m_ok = true;}static wxGnomeVFSLibrary* gs_lgvfs = NULL;//----------------------------------------------------------------------------// wxGnomeVFSMimeTypesManagerFactory//----------------------------------------------------------------------------wxMimeTypesManagerImpl *wxGnomeVFSMimeTypesManagerFactory::CreateMimeTypesManagerImpl(){    return new wxGnomeVFSMimeTypesManagerImpl;}//----------------------------------------------------------------------------// wxGnomeVFSMimeTypesManagerImpl//----------------------------------------------------------------------------bool wxGnomeVFSMimeTypesManagerImpl::DoAssociation(const wxString& strType,                       const wxString& strIcon,                       wxMimeTypeCommands *entry,                       const wxArrayString& strExtensions,                       const wxString& strDesc){    int nIndex = AddToMimeData(strType, strIcon, entry, strExtensions, strDesc, true);    if ( nIndex == wxNOT_FOUND )        return false;    if (m_mailcapStylesInited & wxMAILCAP_GNOME)    {        // User modificationt to the MIME database        // are not supported :-)    }    return false;}//----------------------------------------------------------------------------// wxGnomeVFSModule//----------------------------------------------------------------------------class wxGnomeVFSModule: public wxModule{public:    wxGnomeVFSModule() {}    bool OnInit();    void OnExit();private:    DECLARE_DYNAMIC_CLASS(wxGnomeVFSModule)};bool wxGnomeVFSModule::OnInit(){    gs_lgvfs = new wxGnomeVFSLibrary;    if (gs_lgvfs->IsOk())    {        if (gs_lgvfs->gnome_vfs_init())            wxMimeTypesManagerFactory::Set( new wxGnomeVFSMimeTypesManagerFactory );    }    return true;}void wxGnomeVFSModule::OnExit(){    if (gs_lgvfs->IsOk())        gs_lgvfs->gnome_vfs_shutdown();    delete gs_lgvfs;}IMPLEMENT_DYNAMIC_CLASS(wxGnomeVFSModule, wxModule)#endif    // wxUSE_LIBGNOMEVS    // wxUSE_MIMETYPE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -