📄 pwbe.h
字号:
/**************************************************************************
*
* Pollex Mobile Platform
*
* Copyright (c) 2004 by Pollex Mobile Software Co., Ltd.
* All Rights Reserved
*
* Module : wap browser
*
* Purpose : wap browser API for UI
*
\**************************************************************************/
#ifndef _PWBE_H
#define _PWBE_H
#ifdef __cplusplus
extern "C"{
#endif
/* if runs on 16-bit platform, need _huge pointer */
#ifndef _WBHUGE_
#ifdef ON_16BIT_PLATFORM
#define _WBHUGE_ _huge
#else
#define _WBHUGE_
#endif
#endif
/* macro defination */
#define WB_BOOL int
/* 浏览器初始化时选择的协议类型 */
#define WBTRANS_WSP 1 //wsp协议
#define WBTRANS_WHTTP 2 //whttp协议
#define WBTRANS_OMAD 3 //OmaDownload WSP协议
#define WBTRANS_OMADHTTP 4 //OmaDownload WHTTP协议
/* HTTP请求方法 */
#define WBTRANS_POST 1
#define WBTRANS_GET 2
#define WBTRANS_DELETE 3
#define WBTRANS_TRACE 4
#define WBTRANS_HEAD 5
#define WBTRANS_PUT 6
#define WBTRANS_CONNECT 7
#define WBTRANS_OPTION 8
#define WAPAUTH_WWW 0 //www认证
#define WAPAUTH_PROXY 1 //Proxy认证
#define XDRM_NOFORWORD 0
#define XDRM_NOSAVE 1
#define XDRM_NORMAL 2
/*===================================================*/
enum
{
UM_DIALSTART = 1, //开始拨号
UM_DIALOK, //拨号成功
UM_HANGUP, //拨号开始挂断
UM_DIALBREAK, //拨号挂断
UM_STARTEXIT, //浏览器退出
UM_EXIT, //浏览器退出
UM_CONNECTSTART, //开始连接网关
UM_CONNECTTED, //网关连接成功
UM_CONNECTFAIL, //网关连接失败
UM_DISCONNECT, //网关断开
UM_REQUEST, //开始数据请求
UM_DATASTART, //数据开始到来
UM_DATAIN, //数据部分到来
UM_DATAEND, //数据传输完毕
UM_DATAERROR, //数据传输出错
UM_STOP, //网页停止
UM_DOCUMENTEND, //网页预排版结束(参数为:该网页相关媒体请求个数)
UM_SAVEENABLE, //允许调用者保存资源
UM_SAVEDISABLE, //禁止调用者保存资源
UM_SAVEIMGENABLE, //允许调用者保存image
UM_SAVEIMGDISABLE, //禁止调用者保存image
UM_SAVEBGSOUNDENABLE, //允许调用者保存bgsound
UM_SAVEBGSOUNDDISABLE, //禁止调用者保存bgsound
UM_SET_PRIMARYKEY, //设置主软键
UM_SET_SECONDARYKEY, //设置次软键
UM_SETSOFTKEY_OK, //通知UI软键设置完成
UM_FOCUSCHANGE, //网页焦点切换:param1表示
UM_HISTORYINFO, //访问历史记录信息:
//param1:prev(后退)信息,1:可后退,0:不可后退;
//param2:next(前进)信息,1:可前进,0:不可前进。
UM_SETTITLE,
UM_URLCHGN,
UM_DIALRETURN,
UM_ERROR,
UM_CLEAREDITENABLE,
UM_CLEAREDITDISABLE,
UM_REQUESTURL,
UM_URLREQSUCC,
UM_URLREQFAIL,
UM_JARINSTALL_START, //开始安装JAVA应用
UM_JARINSTALL_ACK, //JAVA应用安装成功
UM_JARINSTALL_NOACK //JAVA应用安装未经服务器确认
};
enum
{
ERR_FORMATERR = 1, //数据格式不对
ERR_ACCSSDENY, //访问被拒绝
ERR_UNKNOWNCHARSET, //不支持的字符集
ERR_UNKNOWNTYPE, //不支持的文件类型
ERR_UNSUPPORTMEDIA, //不支持的媒体类型
ERR_SCRIPT, //Script执行错误
ERR_PAGETOOLARGE, //网页数据太大
ERR_SCRIPTFAIL, //Script数据请求失败
ERR_INVALIDURL, //目标url为空,或不合法
ERR_EMPTYINPUT, //没有输入数据:网页要求必须有输入数据,不能为空
ERR_INVALIDINPUT, //输入数据不符合网页要求的格式
ERR_NOBODYDATA //没有数据体,即bodysize = 0
};
//WBFOCUS_NULL:无焦点;WBFOCUS_LINK:链接获得焦点;WBFOCUS_WIDGET:控件获得焦点
typedef enum WB_FOCUSSTATUS
{
WBFOCUS_NULL = 0,
WBFOCUS_LINK,
WBFOCUS_WIDGET,
WBFOCUS_IMAGE,
WBFOCUS_EDIT,
WBFOCUS_SELECT,
WBFOCUS_CHECKBOX,
WBFOCUS_RADIOBOX,
WBFOCUS_PUSHBUTTON
}WB_FOCUSSTATUS;
/* 网页要求的输入格式 */
//uppercase letter, symbol, or punctuation character. Numeric characters are excluded.
#define FMT__UPPER_SYMB_PUNC 1
//lowercase letter, symbol, or punctuation character. Numeric characters are excluded.
#define FMT__LOWER_SYMB_PUNC 2
//numeric character.
#define FMT__NUM 3
//numeric, symbol, or punctuation character.
#define FMT__NUM_SYMB_PUNC 4
//uppercase letter, numeric character, symbol, or punctuation character.
#define FMT__UPPER_NUM_SYMB_PUNC 5
//lowercase letter, numeric character, symbol, or punctuation character.
#define FMT__LOWER_NUM_SYMB_PUNC 6
#define FMT__UNKNOWN 10
#define TRANS_NORMAL 0 //普通请求
#define TRANS_SECURE 1 //安全请求
#define UI_MSG WM_USER + 100
/*===================================================*/
/*媒体数据的类型*/
enum
{
MMT_UNKNOWN, /*类型不知道*/
MMT_WML1, /*类型是WML1.3文本文档*/
MMT_WMLC, /*类型是WML二进制编码文档*/
MMT_WMLS, /*类型是WMLScript文本文档*/
MMT_WMLSC, /*类型是WMLScript二进制编码文档*/
MMT_HTML, /*类型是HTML文本*/
MMT_XHTMLMP, /*类型是XHTMLMP文本文档*/
MMT_XHTMLBASIC, /*类型是XHTMLBASIC文本文档*/
MMT_WML2, /*类型是WML2.0文本文档*/
MMT_WCSS, /*类型是WCSS文档*/
MMT_TEXT, /*类型是text/plain文档*/
MMT_JSP,
/*图片*/
MMT_IMGWBMP, /*类型是WBMP图象格式*/
MMT_IMGGIF, /*类型是GIF图象格式*/
MMT_IMGBMP, /*类型是BMP图象格式*/
MMT_IMGJPG, /*类型是JPG图象格式*/
MMT_IMGPNG, /*类型是PNG图象格式*/
/*视频*/
MMT_VIDIO3GPP,
/*流媒体*/
MMT_VIDIOASF, /* .asf: video/x-ms-asf */
MMT_VIDIOQUICK, /* .mov: video/quicktime */
MMT_VIDIORM, /* .rm : video/x-pn-realaudio */
/*声音*/
MMT_AUDIOMPEG, /*类型是mpeg声音格式*/
MMT_AUDIO3GPP,
MMT_AUDIORMF, /*类型是RMF声音格式*/
MMT_AUDIOMMF, /*类型是MMF声音格式*/
MMT_AUDIOMIDI, /*类型是MIDI声音格式*/
MMT_AUDIOAMR, /*类型是AMR声音格式*/
MMT_AUDIOWAV, /*类型是WAV声音格式*/
MMT_AUDIOMP3, /*类型是mp3声音格式*/
/*紫易通m-flash*/
MMT_MFLASH, /*紫易通m-flashh*/
MMT_MFLASHDD, /*紫易通m-flashh descriptor*/
/*其他*/
MMT_JAVAJAR, /*类型是jar*/
MMT_JAVAJAD, /*类型是jad*/
MMT_JAVAINDEX, /*类型是INDEX*/
MMT_VCARD, /*vCard */
MMT_VCALENDAR, /*vCalendar*/
MMT_POVECONT, /*provision信息*/
MMT_WBPOVECONT, /*二进制provision信息*/
MMT_DRMDISCTIPTOR,
MMT_DRMRIGHTS,
MMT_DRMCONTENT,
MMT_DRMMESSAGE,
MMT_DOCUMENT, /*要显示的网页*/
MMT_MEDIA, /*嵌入在网页中的媒体或者文件*/
MMT_APPFILE, /*通过网络直接下载的文件*/
MMT_UNSUPPORTED /*类型不支持*/
};
#define MMT_DEFAULT MMT_WMLC /*默认类型是WMLC文本文档*/
/*********************************************************
网页保存结果:
*********************************************************/
#define SSR_NODATA 0 //no source data to save
#define SSR_OK 1 //ok
#define SSR_SEMI_OK 2 //semi-ok, with some image fail
#define SSR_TOOLARGE -1 //page is too large, exceed specified limit size
#define SSR_DRMNOSAVE -2 //DRM: no-save
#define SSR_NOFLASHSPACE -3 //no available flash space
#define SSR_FILEOPENFAIL -4 //file open error
/* widget status */
#define WS_NORMAL 0x00
#define WS_FOCUS 0x01
#define WS_PENDOWN 0x02
#define WS_CHECKED 0x04
#define COLOR_INVALID 0xFFFFFFFF //
#define SBSTEP_Y 30 // the vertical ScrollBar step
#define SBSTEP_X 30 // the horizontal ScrollBar step
/* struct defination */
typedef enum WB_EVENTTYPE
{
WBET_KEYDOWN = 0x100,
WBET_KEYUP,
WBET_CHAR,
WBET_PENDOWN,
WBET_PENUP,
WBET_VERTSCROLL,
WBET_HORZSCROLL,
WBET_KILLFOCUS,
WBET_SETFOCUS
}WB_EVENTTYPE;
typedef enum WB_DISPLAYOPTION
{
WBDOP_COLOR,
WBDOP_IMGDISPLAY,
WBDOP_BGSOUND,
WBDOP_FONTSIZE,
WBDOP_MAXPAGESIZE,
WBDOP_SCROLLBARSIZE,
/* hotice */
WBDOP_DISPLAYAREA
/* hotice */
}WB_DISPLAYOPTION;
typedef enum WB_IMGTYPE
{
WBIMG_WBMP,
WBIMG_BMP,
WBIMG_JPG,
WBIMG_GIF,
WBIMG_PNG
}WB_IMGTYPE;
typedef enum WB_AUDIOTYPE
{
WBAUDIO_RMF,
WBAUDIO_MMF,
WBAUDIO_MIDI,
WBAUDIO_AMR,
WBAUDIO_WAV,
WBAUDIO_MP3
}WB_AUDIOTYPE;
typedef enum tagWB_REQDATATYPE
{
WBREQDATA_MFLASHDD
}WB_REQDATATYPE;
typedef struct WB_PAGEINFO
{
int nMax; //整个网页的高度/宽度
int nPage; //一页的高度/宽度
int nPos; //当前显示页面的相对位置(对应滚动条滑块的位置)
}WB_PAGEINFO;
typedef enum WB_SBTYPE
{
WBSBT_HORZ,
WBSBT_VERT
}WB_SBTYPE;
typedef enum WB_SBSTATE
{
WBSBS_ENABLE,
WBSBS_DISABLE
}WB_SBSTATE;
typedef enum WB_SCROLL
{
WBSCROLL_LINEUP,
WBSCROLL_LINEDOWN,
WBSCROLL_PAGEUP,
WBSCROLL_PAGEDOWN,
WBSCROLL_LINELEFT,
WBSCROLL_LINERIGHT,
WBSCROLL_PAGELEFT,
WBSCROLL_PAGERIGHT,
WBSCROLL_THUMBPOSITION,
WBSCROLL_THUMBTRACK
}WB_SCROLL;
typedef enum WB_VKEY
{
WBKEY_UP,
WBKEY_DOWN,
WBKEY_RIGHT,
WBKEY_LEFT,
WBKEY_PAGEUP,
WBKEY_PAGEDOWN,
WBKEY_F5,
WBKEY_TAB,
WBKEY_BACK
}WB_VKEY;
typedef enum WB_CACOOPTION
{
WBCACHE_SIZE, /* 缓存的大小 */
WBCACHE_MODE, /* 缓存模式 */
WBCOOKIE_SIZE, /* Cookie 的大小*/
WBCOOKIE_MODE, /* 是否允许Cookie*/
WBCOOKIE_COUNT, /* Cookie 的数量*/
WBCACHE_FILE, //cache文件存放的绝对路径
WBCOOKIE_FILE, //cookie文件存放的绝对路径
WBCACHE_CLEAR, //clear cache
WBCOOKIE_CLEAR, //clear cookie
WBDIAL_CFGID //dialmanager config id
}WB_CACOOPTION;
#define WBFONT_FACESIZE 32
enum WB_FONTWEIGHT
{
WBFW_DONTCARE = 0,
WBFW_THIN,
WBFW_EXTRALIGHT,
WBFW_LIGHT,
WBFW_NORMAL,
WBFW_MEDIUM,
WBFW_SEMIBOLD,
WBFW_BOLD,
WBFW_EXTRABOLD,
WBFW_HEAVY
};
enum WB_FONTCHARSET
{
WBCHARSET_ANSI = 0,
WBCHARSET_DEFAULT,
WBCHARSET_SYMBOL,
WBCHARSET_SHIFTJIS,
WBCHARSET_HANGEUL,
WBCHARSET_GB2312,
WBCHARSET_CHINESEBIG5,
WBCHARSET_OEM
};
enum WB_FONTPITCH
{
WBPITCH_DEFAULT = 0,
WBPITCH_FIXED,
WBPITCH_VARIABLE
};
enum WB_FONTFAMILY
{
WBFF_DONTCARE = (0 << 4),
WBFF_ROMAN = (1 << 4),
WBFF_SWISS = (2 << 4),
WBFF_MODERN = (3 << 4),
WBFF_SCRIPT = (4 << 4),
WBFF_DECORATIVE = (5 << 4)
};
typedef struct WB_Font
{
long size;
long weight;
unsigned char italic;
unsigned char small_caps;
unsigned char charSet;
unsigned char pitchAndFamily;
char faceName[WBFONT_FACESIZE];
void *hFont;
}WB_FONT;
typedef enum WB_TEXTSTYLEOPTION
{
WBTS_FONT,
WBTS_COLOR
}WB_TEXTSTYLEOPTION;
typedef enum WB_SELTYPE
{
WBSEL_SINGLE,
WBSEL_MULTIPLE
}WB_SELTYPE;
typedef enum WB_ENDSELTYPE
{
WBSEL_OK,
WBSEL_CANCEL,
WBSEL_ONPICK
}WB_ENDSELTYPE;
typedef struct WB_OPTIONDATA
{
char *caption; //选项显示标题
WB_BOOL selected; //TRUE: 该选项已被选中; FALSE:没有被选中
WB_BOOL onpick; //TRUE: 该选项有onpick事件; FALSE:没有onpick事件.
}WB_OPTIONDATA;
typedef struct WB_POINT
{
long x;
long y;
}WB_POINT;
typedef enum WB_EDITTYPE
{
EDT_SINGLELINE,
EDT_PASSWORD,
EDT_MULTILINE
}WB_EDITTYPE;
typedef void * HBROWSER;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -