The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
2.9KB

  1. /*
  2. ==============================================================================
  3. This file is part of the JUCE library - "Jules' Utility Class Extensions"
  4. Copyright 2004-11 by Raw Material Software Ltd.
  5. ------------------------------------------------------------------------------
  6. JUCE can be redistributed and/or modified under the terms of the GNU General
  7. Public License (Version 2), as published by the Free Software Foundation.
  8. A copy of the license is included in the JUCE distribution, or can be found
  9. online at www.gnu.org/licenses.
  10. JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
  11. WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
  12. A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  13. ------------------------------------------------------------------------------
  14. To release a closed-source product which uses JUCE, commercial licenses are
  15. available: visit www.rawmaterialsoftware.com/juce for more information.
  16. ==============================================================================
  17. */
  18. WebBrowserComponent::WebBrowserComponent (const bool unloadPageWhenBrowserIsHidden_)
  19. : browser (nullptr),
  20. blankPageShown (false),
  21. unloadPageWhenBrowserIsHidden (unloadPageWhenBrowserIsHidden_)
  22. {
  23. setOpaque (true);
  24. }
  25. WebBrowserComponent::~WebBrowserComponent()
  26. {
  27. }
  28. //==============================================================================
  29. void WebBrowserComponent::goToURL (const String& url,
  30. const StringArray* headers,
  31. const MemoryBlock* postData)
  32. {
  33. lastURL = url;
  34. lastHeaders.clear();
  35. if (headers != nullptr)
  36. lastHeaders = *headers;
  37. lastPostData.setSize (0);
  38. if (postData != nullptr)
  39. lastPostData = *postData;
  40. blankPageShown = false;
  41. }
  42. void WebBrowserComponent::stop()
  43. {
  44. }
  45. void WebBrowserComponent::goBack()
  46. {
  47. lastURL = String::empty;
  48. blankPageShown = false;
  49. }
  50. void WebBrowserComponent::goForward()
  51. {
  52. lastURL = String::empty;
  53. }
  54. void WebBrowserComponent::refresh()
  55. {
  56. }
  57. //==============================================================================
  58. void WebBrowserComponent::paint (Graphics& g)
  59. {
  60. g.fillAll (Colours::white);
  61. }
  62. void WebBrowserComponent::checkWindowAssociation()
  63. {
  64. }
  65. void WebBrowserComponent::reloadLastURL()
  66. {
  67. if (lastURL.isNotEmpty())
  68. {
  69. goToURL (lastURL, &lastHeaders, &lastPostData);
  70. lastURL = String::empty;
  71. }
  72. }
  73. void WebBrowserComponent::parentHierarchyChanged()
  74. {
  75. checkWindowAssociation();
  76. }
  77. void WebBrowserComponent::resized()
  78. {
  79. }
  80. void WebBrowserComponent::visibilityChanged()
  81. {
  82. checkWindowAssociation();
  83. }
  84. bool WebBrowserComponent::pageAboutToLoad (const String&) { return true; }
  85. void WebBrowserComponent::pageFinishedLoading (const String&) {}