webengine/wmlengine/src/wml/include/nw_wae.h
changeset 0 dd21522fd290
child 37 cb62a4f66ebe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/wmlengine/src/wml/include/nw_wae.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,242 @@
+/*
+* Copyright (c) 1999 - 2001 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+/***************************************************************************
+**   File: nw_wae.h
+**   Subsystem Name: WAE User Agent
+**   Purpose:  Provides interface to the WAE Browser. This module
+**   has mostly glue logic that integrates the WML Interpreter with 
+**   the URL Loaders
+**************************************************************************/
+#ifndef NW_WAE_H
+#define NW_WAE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+**----------------------------------------------------------------------
+** Includes
+**----------------------------------------------------------------------
+*/
+#include "nw_errnotify.h"
+#include "nw_scrproxy.h"
+#include "nw_wml_core.h"
+#include "nw_wml_api.h"
+#include "nw_wtai_api.h"
+#include "nwx_generic_dlg.h"
+#include "nw_evlog_api.h"
+#include "wml_wae_transaction.h"
+#include "BrsrStatusCodes.h"
+
+
+/*                                                                          */
+/* Spectrum uses the new SIA/OTA Push application, which registers directly */
+/* with the WSP stack, rather than the Rainbow OEM Push handlering code     */
+/*                                                                          */
+
+/* Define the default port number */
+#define NW_DEFAULT_PORT 2948
+
+/*
+**----------------------------------------------------------------------
+** Type Declarations
+**----------------------------------------------------------------------
+*/
+  
+/*
+ * ---------------------------------------------------------------------
+ */
+
+typedef struct _NW_UrlLoadProgressApi_t     NW_UrlLoadProgressApi_t;
+typedef struct _NW_AuthenticationApi_t      NW_AuthenticationApi_t;
+typedef struct _NW_GenDlgApi_t              NW_GenDlgApi_t;
+typedef struct _NW_WaeUsrAgent_t            NW_WaeUsrAgent_t;
+typedef struct _NW_UserRedirectionApi_t     NW_UserRedirectionApi_t;
+
+struct _NW_WaeUsrAgent_t {
+  NW_Wml_t                        *wml;             /* WML Interpreter */
+  NW_WaeTransaction_t             wmlReq;           /* WML Interpreter loader request */
+  NW_ScrProxy_t                   *scrProxy;        /* WML Script Proxy */
+  const NW_AuthenticationApi_t    *authApi;         /* Authentication API */
+  const NW_GenDlgApi_t            *genDlgApi;       /* Generic dialogs API */
+  const NW_UrlLoadProgressApi_t   *loadProgApi;     /* URL Load Progress API */
+  const NW_ErrorApi_t             *errorApi;        /* Error API */
+  const NW_WtaiApi_t              *wtaiApi;         /* Wtai API */
+  const NW_EvLogApi_t             *evLogApi;        /* Event Logging API */
+  void                            *uiCtx;           /* GUI Context */
+  
+  const NW_UserRedirectionApi_t   *userRedirection;  /* User Redirection */
+};
+
+/* The callback to call when done displaying a authentication dialog */
+typedef TBrowserStatusCode (NW_Wae_AuthenticationCB_t)(void *callback_ctx, 
+                                                TBrowserStatusCode status,
+                                                const NW_Ucs2 *username, 
+                                                const NW_Ucs2 *password,
+                                                NW_Bool cancel,
+                                                NW_Bool endPressed);
+
+typedef TBrowserStatusCode (NW_Wae_UserRedirectionCB_t)(void *callback_ctx, 
+                                                 TBrowserStatusCode status,
+                                                 NW_Dlg_Confirm_Result_t resp);
+
+/* Display a authentication dialog to the user */
+struct _NW_AuthenticationApi_t {
+  void (*getAuthenticationData)(void *wae,
+                                void  *callbackCtx,
+                                NW_Wae_AuthenticationCB_t *callback);
+  void (*getAuthenticationDataFailed)(void *msg,
+                                      NW_Dlg_ConfirmCB_t *callback);
+}; 
+
+/* Display a authentication dialog to the user */
+struct _NW_UserRedirectionApi_t {
+  void (*getUserRedirectionData)(void *wae,
+                                 const NW_Ucs2 *originalUrl,
+                                 const NW_Ucs2 *redirectedUrl,
+                                 void  *callbackCtx,
+                                 NW_Wae_UserRedirectionCB_t *callback);
+}; 
+
+struct _NW_GenDlgApi_t {
+  void (*DialogListSelect)(NW_Dlg_ListSelect_t *data, void* callbackCtx, NW_Dlg_ListSelectCB_t* callback);
+  void (*DialogPrompt)(NW_Dlg_Prompt_t *data, void* callbackCtx, NW_Dlg_PromptCB_t* callback);
+  void (*DialogInputPrompt)(NW_Dlg_InputPrompt_t *data, void* callbackCtx, NW_Dlg_InputPromptCB_t* callback);
+  void (*DialogSelectOption)(NW_Dlg_SelectData_t *data, void* callbackCtx, NW_Dlg_SelectCB_t* callback);
+  void (*DetailsDialogHashkeyPressed)(NW_Ucs2* input, void* callbackCtx, NW_Dlg_DetailsDlgCB_t* callback);
+}; 
+
+/* URL load process API, UI interface*/
+struct _NW_UrlLoadProgressApi_t {
+  /* start of a URL load ie. request to load a URL has been
+  sent to the URL Loader. */
+  TBrowserStatusCode (*start)  (void *wae, const NW_Ucs2 *url);
+  /* the URL Loader has completed the load. */
+  TBrowserStatusCode (*finish) (void *wae, const NW_Ucs2 *url);
+  /* Progress status is available */
+  TBrowserStatusCode (*load_progress_on) (void *wae, NW_Uint16 transactionId);
+
+}; 
+
+/*
+**----------------------------------------------------------------------
+** Global Function Declarations
+**----------------------------------------------------------------------
+*/
+
+/* Create the wae browser */
+NW_WaeUsrAgent_t *NW_WaeUsrAgent_New();
+
+/*
+ * Free the wae browser. This function will shutdown the
+ * URL Loader, WML Interpreter, Image Loader and the script proxy. 
+ */
+void NW_WaeUsrAgent_Free(NW_WaeUsrAgent_t *wae);
+
+
+
+TBrowserStatusCode NW_Wae_RegisterWml(NW_WaeUsrAgent_t *wae, NW_Wml_t *wml);
+
+TBrowserStatusCode NW_Wae_UnRegisterWml(NW_WaeUsrAgent_t *wae);
+
+TBrowserStatusCode NW_Wae_RegisterWmlScriptProxy(NW_WaeUsrAgent_t *wae, 
+                                          NW_ScrProxy_t *scrProxy);
+
+TBrowserStatusCode NW_Wae_UnRegisterWmlScriptProxy(NW_WaeUsrAgent_t *wae);
+
+
+/*                                                                          */
+/* Spectrum uses the new SIA/OTA Push application, which registers directly */
+/* with the WSP stack, rather than the Rainbow OEM Push handlering code     */
+/*                                                                          */
+
+TBrowserStatusCode 
+NW_WaeUsrAgent_RegisterGenDlg(NW_WaeUsrAgent_t *wae,
+                          const NW_GenDlgApi_t *genDlgApi);
+
+TBrowserStatusCode 
+NW_WaeUsrAgent_UnRegisterGenDlg(NW_WaeUsrAgent_t *wae);
+
+
+/* 
+ * Get a pointer to the script proxy. The caller should not free 
+ * the returned pointer. 
+ */
+NW_ScrProxy_t *NW_WaeUsrAgent_GetScript(NW_WaeUsrAgent_t *wae);
+
+
+/*                                                                          */
+/* Spectrum uses the new SIA/OTA Push application, which registers directly */
+/* with the WSP stack, rather than the Rainbow OEM Push handlering code     */
+/*                                                                          */
+
+TBrowserStatusCode NW_WaeUsrAgent_RegisterError(NW_WaeUsrAgent_t *wae, 
+                                         const NW_ErrorApi_t *errorApi);
+
+TBrowserStatusCode NW_WaeUsrAgent_RegisterLoadProgress(NW_WaeUsrAgent_t *wae, 
+                                                const NW_UrlLoadProgressApi_t *loadProgApi);
+
+
+/*                                                                          */
+/* Spectrum uses the new SIA/OTA Push application, which registers directly */
+/* with the WSP stack, rather than the Rainbow OEM Push handlering code     */
+/*                                                                          */
+
+/* Register event log API */
+TBrowserStatusCode NW_WaeUsrAgent_RegisterEvLog(NW_WaeUsrAgent_t *wae,
+                                         const NW_EvLogApi_t *evLogApi);
+
+/* Unregister event log API */
+TBrowserStatusCode NW_WaeUsrAgent_UnRegisterEvLog(NW_WaeUsrAgent_t *wae);
+
+/* Get a pointer to the EvLogApi. */
+const NW_EvLogApi_t *NW_WaeUsrAgent_GetEvLog(NW_WaeUsrAgent_t *wae);
+
+TBrowserStatusCode 
+NW_WaeUsrAgent_RegisterUserRedirection(NW_WaeUsrAgent_t *wae,
+                                       const NW_UserRedirectionApi_t *userRedirectionapi);
+
+TBrowserStatusCode 
+NW_WaeUsrAgent_UnRegisterUserRedirection(NW_WaeUsrAgent_t *wae);
+
+
+
+TBrowserStatusCode NW_WaeUsrAgent_DlgListSelect(NW_WaeUsrAgent_t *wae, 
+                                         NW_Dlg_ListSelect_t *data,
+                                         void *callbackCtx,
+                                         NW_Dlg_ListSelectCB_t callback);
+
+TBrowserStatusCode NW_WaeUsrAgent_DlgPrompt(NW_WaeUsrAgent_t *wae, 
+                                     NW_Dlg_Prompt_t *data,
+                                     void *callbackCtx,
+                                     NW_Dlg_PromptCB_t callback);
+
+TBrowserStatusCode NW_WaeUsrAgent_DlgInputPrompt(NW_WaeUsrAgent_t *wae, 
+                                          NW_Dlg_InputPrompt_t *data,
+                                          void *callbackCtx,
+                                          NW_Dlg_InputPromptCB_t callback);
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif  /* NW_WAE_H */