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); }