webengine/widgetengine/src/Widget.cpp
changeset 5 10e98eab6f85
parent 0 dd21522fd290
child 48 79859ed3eea9
equal deleted inserted replaced
1:7c90e6132015 5:10e98eab6f85
    24 
    24 
    25 #include "Widget.h"
    25 #include "Widget.h"
    26 #include "WidgetFuncs.h"
    26 #include "WidgetFuncs.h"
    27 #include "WidgetCallbacks.h"
    27 #include "WidgetCallbacks.h"
    28 #include "WidgetEventHandler.h"
    28 #include "WidgetEventHandler.h"
       
    29 #include "WidgetJSObjectProtector.h"
    29 #include "Wrt.h"
    30 #include "Wrt.h"
    30 
    31 
    31 // EXTERNAL DATA STRUCTURES
    32 // EXTERNAL DATA STRUCTURES
    32 
    33 
    33 // EXTERNAL FUNCTION PROTOTYPES
    34 // EXTERNAL FUNCTION PROTOTYPES
    46 using namespace KJS;
    47 using namespace KJS;
    47 const ClassInfo JSWidget::info = { "JSWidget", 0, &WidgetTable, 0 };
    48 const ClassInfo JSWidget::info = { "JSWidget", 0, &WidgetTable, 0 };
    48 
    49 
    49 // ============================= LOCAL FUNCTIONS ===============================
    50 // ============================= LOCAL FUNCTIONS ===============================
    50 /*
    51 /*
    51 @begin WidgetTable 16
    52 @begin WidgetTable 17
    52     openApplication JSWidget::openApplication DontDelete|Function 1
    53     openApplication JSWidget::openApplication DontDelete|Function 1
    53     openURL JSWidget::openURL DontDelete|Function 1
    54     openURL JSWidget::openURL DontDelete|Function 1
    54     preferenceForKey JSWidget::preferenceForKey DontDelete|Function 1
    55     preferenceForKey JSWidget::preferenceForKey DontDelete|Function 1
    55     prepareForTransition JSWidget::prepareForTransition DontDelete|Function 1
    56     prepareForTransition JSWidget::prepareForTransition DontDelete|Function 1
    56     performTransition JSWidget::performTransition DontDelete|Function 0
    57     performTransition JSWidget::performTransition DontDelete|Function 0
    57     setPreferenceForKey JSWidget::setPreferenceForKey DontDelete|Function 2
    58     setPreferenceForKey JSWidget::setPreferenceForKey DontDelete|Function 2
    58     setNavigationEnabled JSWidget::setNavigationEnabled DontDelete|Function 1
    59     setNavigationEnabled JSWidget::setNavigationEnabled DontDelete|Function 1
       
    60     setNavigationType JSWidget::setNavigationType DontDelete|Function 1
    59     identifier JSWidget::identifier DontDelete|ReadOnly
    61     identifier JSWidget::identifier DontDelete|ReadOnly
    60     onhide JSWidget::onhide DontDelete|ReadOnly
    62     onhide JSWidget::onhide DontDelete|ReadOnly
    61     onremove JSWidget::onremove DontDelete|ReadOnly
    63     onremove JSWidget::onremove DontDelete|ReadOnly
    62     onshow  JSWidget::onshow DontDelete|ReadOnly
    64     onshow  JSWidget::onshow DontDelete|ReadOnly
    63     onexit  JSWidget::onexit DontDelete|ReadOnly
    65     onexit  JSWidget::onexit DontDelete|ReadOnly
    74 // JSWidget::JSWidget
    76 // JSWidget::JSWidget
    75 //
    77 //
    76 //
    78 //
    77 //
    79 //
    78 // ----------------------------------------------------------------------------
    80 // ----------------------------------------------------------------------------
    79 JSWidget::JSWidget(MJSWidgetCallbacks* aWidgetCallbacks) :
    81 JSWidget::JSWidget(MJSWidgetCallbacks* aWidgetCallbacks, MJSObjectProtector* aProtector) :
    80                     JSObject(),
    82                     JSObject(),
    81                     d(new WidgetPrivate(aWidgetCallbacks,0,0,0,0))
    83                     d(new WidgetPrivate(aWidgetCallbacks,0,0,0,0, aProtector))
    82 {
    84 {
    83 }
    85 }
    84 
    86 
    85 // ----------------------------------------------------------------------------
    87 // ----------------------------------------------------------------------------
    86 // JSWidget::~JSWidget
    88 // JSWidget::~JSWidget
   163         case preferenceForKey:
   165         case preferenceForKey:
   164         case prepareForTransition:
   166         case prepareForTransition:
   165         case performTransition:
   167         case performTransition:
   166         case setPreferenceForKey:
   168         case setPreferenceForKey:
   167         case setNavigationEnabled:
   169         case setNavigationEnabled:
       
   170         case setNavigationType:
   168         case setDisplayLandscape:
   171         case setDisplayLandscape:
   169         case setDisplayPortrait: {
   172         case setDisplayPortrait: {
   170             JSWidgetFunc *wf = new JSWidgetFunc(exec,token,d->m_callbacks);
   173             JSWidgetFunc *wf = new JSWidgetFunc(exec,token,d->m_callbacks);
   171             return wf;
   174             return wf;
   172         }
   175         }
   209     if (entry) {
   212     if (entry) {
   210         switch( entry->value ) {
   213         switch( entry->value ) {
   211             case onhide: {
   214             case onhide: {
   212                 delete d->m_hideCallback;
   215                 delete d->m_hideCallback;
   213                 d->m_hideCallback = NULL;
   216                 d->m_hideCallback = NULL;
   214                 d->m_hideCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec());
   217                 d->m_hideCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec(), d->m_protector);
   215                 break;
   218                 break;
   216             }
   219             }
   217             case onshow: {
   220             case onshow: {
   218                 delete d->m_showCallback;
   221                 delete d->m_showCallback;
   219                 d->m_showCallback = NULL;
   222                 d->m_showCallback = NULL;
   220                 d->m_showCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec());
   223                 d->m_showCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec(), d->m_protector);
   221                 // fire the onShow if the SetVisibilty was called before the onShowCallback was created
   224                 // fire the onShow if the SetVisibilty was called before the onShowCallback was created
   222                 if (d->m_visibility) {
   225                 if (d->m_visibility) {
   223                     d->m_visibility = !d->m_visibility;
   226                     d->m_visibility = !d->m_visibility;
   224                     setVisibility(!d->m_visibility);
   227                     setVisibility(!d->m_visibility);
   225                 }
   228                 }
   226                 break;
   229                 break;
   227             }
   230             }
   228             case onexit: {
   231             case onexit: {
   229                 delete d->m_exitCallback;
   232                 delete d->m_exitCallback;
   230                 d->m_exitCallback = NULL;
   233                 d->m_exitCallback = NULL;
   231                 d->m_exitCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec());
   234                 d->m_exitCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec(), d->m_protector);
   232                 break;
   235                 break;
   233             }
   236             }
   234             default:
   237             default:
   235                 break;
   238                 break;
   236         }
   239         }