wxString* PROJECT_TEMPLATE::GetTitle(void)
{
    wxFileInputStream input( GetHtmlFile().GetFullPath() );
    wxString separator( wxT( "\x9" ) );
    wxTextInputStream text( input, separator, wxConvUTF8 );

    /* Open HTML file and get the text between the title tags */
    if( title == wxEmptyString )
    {
        int start = 0;
        int finish = 0;
        bool done = false;

        while( input.IsOk() && !input.Eof() && !done )
        {
            wxString line = text.ReadLine();

            start = line.Find( wxT( "<title>" ) );
            if( start == wxNOT_FOUND )
                start = line.Find( wxT( "<TITLE>" ) );

            finish = line.Find( wxT( "</title>" ) );
            if( finish == wxNOT_FOUND )
                finish = line.Find( wxT( "</TITLE>" ) );

            // find the opening tag
            if( start != wxNOT_FOUND )
            {
                if( finish != wxNOT_FOUND )
                {
                    title = line.SubString( start + 7, finish );
                }
                else
                {
                    title = line.SubString( start + 7, line.Len() - 1 );
                    done = true;
                }
            }
            else
            {
                if( finish != wxNOT_FOUND )
                {
                    title += line.SubString( 0, finish );
                    done = true;
                }
                else
                {
                    title += line;
                }
            }

            // Remove line endings
            title.Replace( wxT( "\r" ), wxT( "" ) );
            title.Replace( wxT( "\n" ), wxT( "" ) );
        }
    }

    return &title;
}
/**
 * 通常のコンストラクタ
 */
HtmlContentWindow::HtmlContentWindow(wxWindow* parent,
		const wxString& htmlContentPath) :
		wxHtmlWindow(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize,
				wxHW_SCROLLBAR_AUTO) {

	// 指定されたパスからHTMLファイルを読み出す
	const wxString htmlSource = GetHtmlFile(htmlContentPath);
	// メモリに読み込んだHTMLを表示する
	this->SetPage(htmlSource);
}
/**
 * HTMLファイルを再読み込みする
 */
void HtmlContentWindow::ReloadHtmlPage(const wxString& htmlContentPath) {
	// 指定されたパスからHTMLファイルを読み出す
	const wxString htmlSource = GetHtmlFile(htmlContentPath);
	// メモリに読み込んだHTMLを表示する
	this->SetPage(htmlSource);
}