Panda3D

awWebViewListener.h

00001 // Filename: awWebViewListener.h
00002 // Created by:  rurbino (12Oct09)
00003 //
00004 ////////////////////////////////////////////////////////////////////
00005 //
00006 // PANDA 3D SOFTWARE
00007 // Copyright (c) Carnegie Mellon University.  All rights reserved.
00008 //
00009 // All use of this software is subject to the terms of the revised BSD
00010 // license.  You should have received a copy of this license along
00011 // with this source code in a file named "LICENSE."
00012 //
00013 ////////////////////////////////////////////////////////////////////
00014 #ifndef AWWEBVIEWLISTENER_H
00015 #define AWWEBVIEWLISTENER_H
00016 
00017 #include "pandabase.h"
00018 #include "typedReferenceCount.h"
00019 #include "luse.h"
00020 
00021 #include "awesomium_includes.h"
00022 
00023 ////////////////////////////////////////////////////////////////////
00024 //       Class : AwWebViewListener
00025 // Description : Thin bindings, wraps a WebViewListener
00026 ////////////////////////////////////////////////////////////////////
00027 class EXPCL_PANDAAWESOMIUM AwWebViewListener : public TypedReferenceCount, public Awesomium::WebCore {
00028 PUBLISHED:
00029 
00030 
00031 PUBLISHED:
00032         AwWebViewListener();
00033   
00034         virtual ~AwWebViewListener() {}
00035    
00036     /**
00037     * This event is fired when a WebView begins navigating to a new URL.
00038     *
00039     * @param    url     The URL that is being navigated to.
00040     *
00041     * @param    frameName   The name of the frame that this event originated from.
00042     */
00043     void onBeginNavigation(const std::string& url, const std::wstring& frameName) ;
00044 
00045     /**
00046     * This event is fired when a WebView begins to actually receive data from a server.
00047     *
00048     * @param    url     The URL of the frame that is being loaded.
00049     *
00050     * @param    frameName   The name of the frame that this event originated from.
00051     *
00052     * @param    statusCode  The HTTP status code returned by the server.
00053     *
00054     * @param    mimeType    The mime-type of the content that is being loaded.
00055     */
00056         void onBeginLoading(const std::string& url, const std::wstring& frameName, int statusCode, const std::wstring& mimeType);
00057 
00058     /**
00059     * This event is fired when all loads have finished for a WebView.
00060     */
00061         void onFinishLoading();
00062 
00063     /**
00064     * This event is fired when a Client callback has been invoked via Javascript from a page.
00065     *
00066     * @param    name    The name of the client callback that was invoked (specifically, "Client._this_name_here_(...)").
00067     *
00068     * @param    args    The arguments passed to the callback.
00069     */
00070   void onCallback(const std::string& name, const Awesomium::JSArguments& args);
00071     
00072     /**
00073     * This event is fired when a page title is received.
00074     *
00075     * @param    title   The page title.
00076     *
00077     * @param    frameName   The name of the frame that this event originated from.
00078     */
00079   void onReceiveTitle(const std::wstring& title, const std::wstring& frameName) ;
00080 
00081     /**
00082     * This event is fired when a tooltip has changed state.
00083     *
00084     * @param    tooltip     The tooltip text (or, is an empty string when the tooltip should disappear).
00085     */
00086     void onChangeTooltip(const std::wstring& tooltip);
00087 
00088     /**
00089     * This event is fired when keyboard focus has changed.
00090     *
00091     * @param    isFocused   Whether or not the keyboard is currently focused.
00092     */
00093     void onChangeKeyboardFocus(bool isFocused) ;
00094 
00095     /**
00096     * This event is fired when the target URL has changed. This is usually the result of 
00097     * hovering over a link on the page.
00098     *
00099     * @param    url The updated target URL (or empty if the target URL is cleared).
00100     */
00101     void onChangeTargetURL(const std::string& url) ;
00102 
00103 
00104 public:
00105   static TypeHandle get_class_type() {
00106     return _type_handle;
00107   }
00108   static void init_type() {
00109     TypedReferenceCount::init_type();
00110     register_type(_type_handle, "AwWebViewListener",
00111                   TypedReferenceCount::get_class_type());
00112   }
00113   virtual TypeHandle get_type() const {
00114     return get_class_type();
00115   }
00116   virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
00117 
00118 private:
00119   static TypeHandle _type_handle;
00120 };
00121 
00122 // #include "awWebViewListener.I"
00123 
00124 #endif
 All Classes Functions Variables Enumerations