/*---------------------------------------------------------------------------* Project: NintendoWare File: lyt_FontContainer.h Copyright (C)2009-2011 Nintendo/HAL Laboratory, Inc. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo and/or its licensed developers and are protected by national and international copyright laws. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. The content herein is highly confidential and should be handled accordingly. $Revision: 31311 $ *---------------------------------------------------------------------------*/ #ifndef NW_LYT_FONTCONTAINER_H_ #define NW_LYT_FONTCONTAINER_H_ #include #include #include #include namespace nw { namespace lyt { //--------------------------------------------------------------------------- //! :private //! //! @brief フォントオブジェクトを保持するクラスです。 //! //! @sa FontContainer //! //! @since 2009/09/18 初版。 //--------------------------------------------------------------------------- class FontRefLink { public: //! フォントリソース名の最大です。 static const int FONTNAMEBUF_MAX = 128; //---------------------------------------- //! @name コンストラクタ/デストラクタ //@{ //! @brief コンストラクタです。 //! //! @since 2009/09/18 初版。 //! FontRefLink(); //! @brief デストラクタです。 //! //! @details //! 所有の指定されたフォントオブジェクトを破棄します。 //! //! @since 2009/09/18 初版。 //! @date 2010/01/26 所有の指定されたフォントオブジェクトは破棄する仕様に変更しました。 //! ~FontRefLink(); //@} //---------------------------------------- //! @name 設定/取得 //@{ //! @brief 情報を設定します。 //! //! @param name フォントリソースの名前です。 //! @param pFont フォントオブジェクトへのポインタです。 //! @param own コンテナがフォントオブジェクトを所有するか指定します。 //! true を指定した場合にはコンテナがフォントオブジェクトを破棄します。 //! //! @since 2009/09/18 初版。 //! @date 2010/01/26 own 引数を追加しました。 //! void Set( const char* name, font::Font* pFont, bool own ); //! @brief 関連付けられているフォント名を取得します。 //! //! @return 関連付けられているフォント名を返します。 //! //! @since 2009/09/18 初版。 //! const char* GetFontName() const { return m_FontName; } //! @brief 設定されているフォントオブジェクトを取得します。 //! //! @return フォントオブジェクトへのポインタを返します。 //! //! @since 2009/09/18 初版。 //! font::Font* GetFont() const { return m_pFont; } //@} //! :private //! リストのリンク情報です。 ut::LinkListNode m_Link; protected: //! @details :private char m_FontName[FONTNAMEBUF_MAX]; //! @details :private font::Font* m_pFont; //! @details :private bool m_Own; }; //--------------------------------------------------------------------------- //! :category リソースアクセサ //! //! @brief フォントを保持するクラスです。 //! //! @details //! ResourceAccessor の実装でフォントを保持するのに利用されます。 //! //! @sa ResourceAccessor //! //! @since 2010/01/26 初版。 //--------------------------------------------------------------------------- class FontContainer : public ut::LinkList { public: //---------------------------------------- //! @name コンストラクタ/デストラクタ //@{ //! @brief デストラクタです。 //! //! @details //! 所有しているフォントオブジェクトも破棄します。 //! //! @since 2010/01/26 初版。 //! ~FontContainer(); // @} //---------------------------------------- //! @name 登録/破棄 //@{ //! @brief 登録を抹消します。 //! //! @details //! 所有しているフォントオブジェクトを破棄します。 //! //! @since 2010/01/26 初版。 //! void Finalize(); //! @brief フォントを登録します。 //! //! @param name フォントリソースの名前です。 //! @param pFont フォントオブジェクトです。 //! @param own フォントオブジェクトを所有するか指定します。 //! true を指定した場合にはコンテナがフォントオブジェクトを破棄します。 //! //! @return 登録キーを返します。キーは登録の抹消に使用します。 //! //! @since 2010/01/26 初版。 //! FontKey RegistFont(const char* name, font::Font* pFont, bool own); //! @brief フォントの登録を抹消します。 //! //! @param key 登録時に取得した登録キーを指定します。 //! //! @since 2010/01/26 初版。 //! void UnregistFont(FontKey key); //@} //---------------------------------------- //! @name 検索 //@{ //! @brief フォントを検索します。 //! //! @param name 検索するフォントの名前です。 //! //! @return 見つかったフォント、または NULL を返します。 //! //! @since 2010/01/26 初版。 //! nw::font::Font* FindFontByName( const char* name ); //! @brief フォントを検索します。 //! //! @param key 検索するフォントの登録キーです。 //! //! @return 見つかったフォント、または NULL を返します。 //! //! @since 2010/11/30 初版。 //! nw::font::Font* FindFontByKey( FontKey key ); //@} }; } // namespace lyt } // namespace nw /* NW_LYT_FONTCONTAINER_H_ */ #endif