|
- /*
- ==============================================================================
-
- This file is part of the JUCE library - "Jules' Utility Class Extensions"
- Copyright 2004-9 by Raw Material Software Ltd.
-
- ------------------------------------------------------------------------------
-
- JUCE can be redistributed and/or modified under the terms of the GNU General
- Public License (Version 2), as published by the Free Software Foundation.
- A copy of the license is included in the JUCE distribution, or can be found
- online at www.gnu.org/licenses.
-
- JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- ------------------------------------------------------------------------------
-
- To release a closed-source product which uses JUCE, commercial licenses are
- available: visit www.rawmaterialsoftware.com/juce for more information.
-
- ==============================================================================
- */
-
- #include "../jucedemo_headers.h"
-
- #if JUCE_WEB_BROWSER
-
- //==============================================================================
- /** We'll use a subclass of WebBrowserComponent to demonstrate how to get callbacks
- when the browser changes URL. You don't need to do this, you can just also
- just use the WebBrowserComponent class directly.
- */
- class DemoBrowserComponent : public WebBrowserComponent
- {
- public:
- //==============================================================================
- DemoBrowserComponent (TextEditor* addressTextBox_)
- : addressTextBox (addressTextBox_)
- {
- }
-
- // This method gets called when the browser is about to go to a new URL..
- bool pageAboutToLoad (const String& newURL)
- {
- // We'll just update our address box to reflect the new location..
- addressTextBox->setText (newURL, false);
-
- // we could return false here to tell the browser not to go ahead with
- // loading the page.
- return true;
- }
-
- //==============================================================================
- juce_UseDebuggingNewOperator
-
- private:
- TextEditor* addressTextBox;
-
- DemoBrowserComponent (DemoBrowserComponent&);
- DemoBrowserComponent& operator= (const DemoBrowserComponent&);
- };
-
-
- //==============================================================================
- class WebBrowserDemo : public Component,
- public TextEditor::Listener,
- public Button::Listener
- {
- public:
- //==============================================================================
- WebBrowserDemo()
- {
- setName ("Web Browser");
-
- // Create an address box..
- addAndMakeVisible (addressTextBox = new TextEditor());
- addressTextBox->setTextToShowWhenEmpty ("Enter a web address, e.g. http://www.rawmaterialsoftware.com", Colours::grey);
- addressTextBox->addListener (this);
-
- // create the actual browser component
- addAndMakeVisible (webView = new DemoBrowserComponent (addressTextBox));
-
- // add some buttons..
- addAndMakeVisible (goButton = new TextButton ("Go", "Go to URL"));
- goButton->addButtonListener (this);
- addAndMakeVisible (backButton = new TextButton ("<<", "Back"));
- backButton->addButtonListener (this);
- addAndMakeVisible (forwardButton = new TextButton (">>", "Forward"));
- forwardButton->addButtonListener (this);
-
- // send the browser to a start page..
- webView->goToURL ("http://www.google.com");
- }
-
- ~WebBrowserDemo()
- {
- deleteAllChildren();
- }
-
- void resized()
- {
- webView->setBounds (10, 45, getWidth() - 20, getHeight() - 55);
- goButton->setBounds (getWidth() - 45, 10, 35, 25);
- addressTextBox->setBounds (100, 10, getWidth() - 155, 25);
- backButton->setBounds (10, 10, 35, 25);
- forwardButton->setBounds (55, 10, 35, 25);
- }
-
- void textEditorTextChanged (TextEditor&) {}
- void textEditorEscapeKeyPressed (TextEditor&) {}
- void textEditorFocusLost (TextEditor&) {}
-
- void textEditorReturnKeyPressed (TextEditor&)
- {
- webView->goToURL (addressTextBox->getText());
- }
-
- void buttonClicked (Button* b)
- {
- if (b == backButton)
- webView->goBack();
- else if (b == forwardButton)
- webView->goForward();
- else if (b == goButton)
- webView->goToURL (addressTextBox->getText());
- }
-
- juce_UseDebuggingNewOperator
-
- private:
- DemoBrowserComponent* webView;
-
- TextEditor* addressTextBox;
- TextButton* goButton;
- TextButton* backButton;
- TextButton* forwardButton;
- };
-
-
- //==============================================================================
- Component* createWebBrowserDemo()
- {
- return new WebBrowserDemo();
- }
-
- #endif
|