/**
 * 左クリック時に起こるイベント
 */
void ThreadContentWindow::OnLeftClickHtmlWindow(wxHtmlLinkEvent& event) 
{     
     const wxHtmlLinkInfo linkInfo = event.GetLinkInfo();
     const wxString href = linkInfo.GetHref();
     const wxString target = linkInfo.GetTarget();
     wxString rest = wxEmptyString;
     long res = 0;
     
     // bmp,jpg,jpeg,png,gifなどの拡張子が末尾に付いている場合ダウンロードを行う
     if (regexImage.IsValid()) 
     {
	  // 正規表現のコンパイルにエラーがなければマッチさせる
	  if (regexImage.Matches(href)) 
	  {
	       // 画像ファイルをクリックしたのでダウンロードする
	       const wxString ext = regexImage.GetMatch(href, 3);
	       this->SetJaneCloneImageViewer(href, ext);

	  } 
	  else if (href.StartsWith(wxT("#"), &rest) && rest.ToLong(&res, 10)) 
	  {
	       if ( 0 < res && res <= 1000) 
	       {
		    OnLeftClickResponseNumber(event, href, res);
	       }
	  } 
	  else 
	  {
	       // 通常のリンクかどうか判定して処理
	       OnClickOrdinaryLink(href);
	  }
     }
}
예제 #2
0
INLINE
void wxeReturn::add(const wxHtmlLinkInfo &val) {
  addAtom("wxHtmlLinkInfo");
  add(val.GetHref());
  add(val.GetTarget());
  addTupleCount(3);
}
예제 #3
0
void extHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link)
{
    wxString href = link.GetHref();
    wxString target = link.GetTarget();
    if (target.StartsWith(wxT("TV:"))) {
        TextViewer *tw = new TextViewer(this);
        tw->LoadFile(href);
        target = target.AfterFirst(wxT(':'));
        if (!target.IsEmpty())
            tw->SetTitle(target);
        tw->ShowModal();
        return;
    }
#ifdef __WXMSW__
    ShellExecute((HWND)GetHandle(), wxT("open"), href.c_str(), NULL, NULL, SW_SHOWNORMAL);
#else
    ::wxLaunchDefaultBrowser(href, wxBROWSER_NEW_WINDOW);
#endif
}