| @@ -0,0 +1,154 @@ | |||
| /* | |||
| ============================================================================== | |||
| This file is part of the JUCE library - "Jules' Utility Class Extensions" | |||
| Copyright 2004-7 by Raw Material Software ltd. | |||
| ------------------------------------------------------------------------------ | |||
| JUCE can be redistributed and/or modified under the terms of the | |||
| GNU General Public License, as published by the Free Software Foundation; | |||
| either version 2 of the License, or (at your option) any later version. | |||
| 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. | |||
| You should have received a copy of the GNU General Public License | |||
| along with JUCE; if not, visit www.gnu.org/licenses or write to the | |||
| Free Software Foundation, Inc., 59 Temple Place, Suite 330, | |||
| Boston, MA 02111-1307 USA | |||
| ------------------------------------------------------------------------------ | |||
| If you'd like to release a closed-source product which uses JUCE, commercial | |||
| licenses are also 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&); | |||
| const DemoBrowserComponent& operator= (const DemoBrowserComponent&); | |||
| }; | |||
| //============================================================================== | |||
| class WebBrowserDemo : public Component, | |||
| public TextEditorListener, | |||
| public ButtonListener | |||
| { | |||
| 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& editor) {} | |||
| void textEditorEscapeKeyPressed (TextEditor& editor) {} | |||
| void textEditorFocusLost (TextEditor& editor) {} | |||
| 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 | |||
| @@ -0,0 +1,154 @@ | |||
| /* | |||
| ============================================================================== | |||
| This file is part of the JUCE library - "Jules' Utility Class Extensions" | |||
| Copyright 2004-7 by Raw Material Software ltd. | |||
| ------------------------------------------------------------------------------ | |||
| JUCE can be redistributed and/or modified under the terms of the | |||
| GNU General Public License, as published by the Free Software Foundation; | |||
| either version 2 of the License, or (at your option) any later version. | |||
| 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. | |||
| You should have received a copy of the GNU General Public License | |||
| along with JUCE; if not, visit www.gnu.org/licenses or write to the | |||
| Free Software Foundation, Inc., 59 Temple Place, Suite 330, | |||
| Boston, MA 02111-1307 USA | |||
| ------------------------------------------------------------------------------ | |||
| If you'd like to release a closed-source product which uses JUCE, commercial | |||
| licenses are also 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&); | |||
| const DemoBrowserComponent& operator= (const DemoBrowserComponent&); | |||
| }; | |||
| //============================================================================== | |||
| class WebBrowserDemo : public Component, | |||
| public TextEditorListener, | |||
| public ButtonListener | |||
| { | |||
| 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& editor) {} | |||
| void textEditorEscapeKeyPressed (TextEditor& editor) {} | |||
| void textEditorFocusLost (TextEditor& editor) {} | |||
| 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 | |||
| @@ -53,7 +53,7 @@ class Component; | |||
| types[i]->scanForDevices(); // This must be called before getting the list of devices | |||
| String deviceNames (types[i]->getDeviceNames()); // This will now return a list of available devices of this type | |||
| StringArray deviceNames (types[i]->getDeviceNames()); // This will now return a list of available devices of this type | |||
| for (int j = 0; j < deviceNames.size(); ++j) | |||
| { | |||