You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

167 lines
6.2 KiB
C++

// XTPSkinManagerResource.h: interface for the CXTPSkinManagerResourceFile class.
//
// This file is a part of the XTREME SKINFRAMEWORK MFC class library.
// (c)1998-2012 Codejock Software, All Rights Reserved.
//
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
// CONSENT OF CODEJOCK SOFTWARE.
//
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
// SINGLE COMPUTER.
//
// CONTACT INFORMATION:
// support@codejock.com
// http://www.codejock.com
//
/////////////////////////////////////////////////////////////////////////////
//{{AFX_CODEJOCK_PRIVATE
#if !defined(__XTPSKINMANAGERRESOURCE_H__)
#define __XTPSKINMANAGERRESOURCE_H__
//}}AFX_CODEJOCK_PRIVATE
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CXTPSkinImage;
class CXTPSkinManagerSchema;
class CXTPSkinManager;
//===========================================================================
// Summary:
// CXTPSkinManagerResourceFile is a standalone class that represents a
// manager of visual style resources
//===========================================================================
class _XTP_EXT_CLASS CXTPSkinManagerResourceFile : public CXTPCmdTarget
{
public:
//-----------------------------------------------------------------------
// Summary:
// Constructs a CXTPSkinManagerResourceFile object.
// Parameters:
// pSkinManager - Parent SkinFramework manager.
//-----------------------------------------------------------------------
CXTPSkinManagerResourceFile(CXTPSkinManager* pSkinManager = NULL);
//-----------------------------------------------------------------------
// Summary:
// Destroys a CXTPSkinManagerResourceFile object, handles cleanup and deallocation.
//-----------------------------------------------------------------------
virtual ~CXTPSkinManagerResourceFile();
public:
//-----------------------------------------------------------------------
// Summary:
// This method is called to open visual style file
// Parameters:
// lpszResourcePath - Path to specified visual style
// lpszIniFileName - Name of the ini file to load
//-----------------------------------------------------------------------
virtual BOOL Open(LPCTSTR lpszResourcePath, LPCTSTR lpszIniFileName);
//-----------------------------------------------------------------------
// Summary:
// This method is called to read ini file
// Parameters:
// str - reference to the string used to load next line from resource file.
//-----------------------------------------------------------------------
virtual BOOL ReadString(CString& str);
//-----------------------------------------------------------------------
// Summary:
// This method is called to close visual style file
//-----------------------------------------------------------------------
virtual void Close();
//-----------------------------------------------------------------------
// Summary:
// This method is called to load image from resource file
// Parameters:
// strImageFile - Path to specified image
// Returns:
// New CXTPSkinImage contained loaded bitmap
//-----------------------------------------------------------------------
virtual CXTPSkinImage* LoadImage(CString strImageFile);
//-----------------------------------------------------------------------
// Summary:
// This method is called to create CXTPSkinManagerSchema class associated with loaded resources
// Returns: New CXTPSkinManagerSchema class that will be used to read resource
// See Also: CXTPSkinManagerSchema
//-----------------------------------------------------------------------
virtual CXTPSkinManagerSchema* CreateSchema();
public:
//-----------------------------------------------------------------------
// Summary:
// Retrieves resource path
//-----------------------------------------------------------------------
CString GetResourcePath() const;
//-----------------------------------------------------------------------
// Summary:
// Retrieves resource path
//-----------------------------------------------------------------------
CString GetIniFileName() const;
//-----------------------------------------------------------------------
// Summary:
// Retrieves handle to visual style dll file handle.
//-----------------------------------------------------------------------
HMODULE GetModuleHandle() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to set module with skin
// Parameters:
// hModule - New module handler to set
//-----------------------------------------------------------------------
void SetModuleHandle(HMODULE hModule);
//-----------------------------------------------------------------------
// Summary:
// Call this method to get owner SkinManager object
//-----------------------------------------------------------------------
CXTPSkinManager* GetSkinManager() const;
private:
CString GetDefaultIniFileName();
protected:
LPWSTR m_lpTextFile; // Pointer to next string
LPWSTR m_lpTextFileEnd; // Pointer to end of the file
HMODULE m_hModule; // Handle of the visual style
HMODULE m_hInstance; // Handle of the visual style
CString m_strResourcePath; // Resource path
CString m_strIniFileName; // Ini file name.
CXTPSkinManager* m_pManager; // Parent manager class.
CStdioFile* m_pIniFile; // POinter to ini file on disk
friend class CXTPSkinManager;
};
AFX_INLINE CString CXTPSkinManagerResourceFile::GetIniFileName() const {
return m_strIniFileName;
}
AFX_INLINE CString CXTPSkinManagerResourceFile::GetResourcePath() const {
return m_strResourcePath;
}
AFX_INLINE HMODULE CXTPSkinManagerResourceFile::GetModuleHandle() const {
return m_hModule;
}
AFX_INLINE void CXTPSkinManagerResourceFile::SetModuleHandle(HMODULE hModule) {
m_hInstance = hModule;
}
AFX_INLINE CXTPSkinManager* CXTPSkinManagerResourceFile::GetSkinManager() const {
return m_pManager;
}
#endif // !defined(__XTPSKINMANAGERRESOURCE_H__)