text: #  Copyright 2008-2015 Nokia Solutions and Networks
  #
  #  Licensed under the Apache License, Version 2.0 (the "License");
  #  you may not use this file except in compliance with the License.
  #  You may obtain a copy of the License at
  #
  #      http://www.apache.org/licenses/LICENSE-2.0
  #
  #  Unless required by applicable law or agreed to in writing, software
  #  distributed under the License is distributed on an "AS IS" BASIS,
  #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  #  See the License for the specific language governing permissions and
  #  limitations under the License.
  
  import webbrowser
  import wx
  from wx import html
  
  
  class HtmlWindow(html.HtmlWindow):
  
      def __init__(self, parent, size=wx.DefaultSize, text=None):
          html.HtmlWindow.__init__(self, parent, size=size)
          self.SetBorders(2)
          self.SetStandardFonts(size=9)
          if text:
              self.SetPage(text)
          self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
  
      def OnKeyDown(self, event):
          if self._is_copy(event):
              self._add_selection_to_clipboard()
          self.Parent.OnKey(event)
          event.Skip()
  
      def _is_copy(self, event):
          return event.GetKeyCode() == ord('C') and event.CmdDown()
  
      def _add_selection_to_clipboard(self):
          wx.TheClipboard.Open()
          wx.TheClipboard.SetData(wx.TextDataObject(self.SelectionToText()))
          wx.TheClipboard.Close()
  
      def OnLinkClicked(self, link):
          webbrowser.open(link.Href)
  
      def close(self):
          self.Show(False)
  
      def clear(self):
          self.SetPage('')
  
  