1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        src/common/hyperlnkcmn.cpp 
   3 // Purpose:     Hyperlink control 
   4 // Author:      David Norris <danorris@gmail.com>, Otto Wyss 
   5 // Modified by: Ryan Norton, Francesco Montorsi 
   8 // Copyright:   (c) 2005 David Norris 
   9 // Licence:     wxWindows licence 
  10 ///////////////////////////////////////////////////////////////////////////// 
  12 // ============================================================================ 
  14 // ============================================================================ 
  16 //--------------------------------------------------------------------------- 
  17 // Pre-compiled header stuff 
  18 //--------------------------------------------------------------------------- 
  20 // For compilers that support precompilation, includes "wx.h". 
  21 #include "wx/wxprec.h" 
  27 #if wxUSE_HYPERLINKCTRL 
  29 //--------------------------------------------------------------------------- 
  31 //--------------------------------------------------------------------------- 
  33 #include "wx/hyperlink.h" 
  38     #include "wx/dataobj.h" 
  41 // ============================================================================ 
  43 // ============================================================================ 
  45 IMPLEMENT_DYNAMIC_CLASS(wxHyperlinkEvent
, wxCommandEvent
) 
  46 DEFINE_EVENT_TYPE(wxEVT_COMMAND_HYPERLINK
) 
  48 const wxChar wxHyperlinkCtrlNameStr
[] = wxT("hyperlink"); 
  50 // ---------------------------------------------------------------------------- 
  51 // wxHyperlinkCtrlBase 
  52 // ---------------------------------------------------------------------------- 
  55 void wxHyperlinkCtrlBase::CheckParams(const wxString
& label
, const wxString
& url
, long style
) 
  57     wxASSERT_MSG(!url
.empty() || !label
.empty(), 
  58                  wxT("Both URL and label are empty ?")); 
  60     int alignment 
= (int)((style 
& wxHL_ALIGN_LEFT
) != 0) + 
  61                     (int)((style 
& wxHL_ALIGN_CENTRE
) != 0) + 
  62                     (int)((style 
& wxHL_ALIGN_RIGHT
) != 0); 
  63     wxASSERT_MSG(alignment 
== 1, 
  64         wxT("Specify exactly one align flag!")); 
  68 void wxHyperlinkCtrlBase::SendEvent() 
  70     wxString url 
= GetURL(); 
  71     wxHyperlinkEvent 
linkEvent(this, GetId(), url
); 
  72     if (!GetEventHandler()->ProcessEvent(linkEvent
))     // was the event skipped ? 
  73         if (!wxLaunchDefaultBrowser(url
)) 
  74             wxLogWarning(wxT("Could not launch the default browser with url '%s' !"), url
.c_str()); 
  77 #endif // wxUSE_HYPERLINKCTRL