| 1 |
module htmlayout.capi; |
|---|
| 2 |
|
|---|
| 3 |
import tango.sys.win32.Types; |
|---|
| 4 |
import tango.text.convert.Utf; |
|---|
| 5 |
import tango.stdc.stringz; |
|---|
| 6 |
import Int=tango.text.convert.Integer; |
|---|
| 7 |
import Float=tango.text.convert.Float; |
|---|
| 8 |
import tango.stdc.stdlib,tango.stdc.string,tango.stdc.stddef; |
|---|
| 9 |
|
|---|
| 10 |
extern(Windows): |
|---|
| 11 |
/////// update 3.2.2.5 |
|---|
| 12 |
|
|---|
| 13 |
alias HDC HPLATFORMGFX; |
|---|
| 14 |
|
|---|
| 15 |
struct graphin_graphics; |
|---|
| 16 |
struct graphin_image; |
|---|
| 17 |
|
|---|
| 18 |
alias graphin_graphics* HGFX; |
|---|
| 19 |
alias graphin_image* HIMG; |
|---|
| 20 |
|
|---|
| 21 |
alias double REAL; |
|---|
| 22 |
|
|---|
| 23 |
alias REAL POS; // position |
|---|
| 24 |
alias REAL DIM; // dimension |
|---|
| 25 |
alias REAL ANGLE; // angle (radians) |
|---|
| 26 |
alias uint COLOR; // color |
|---|
| 27 |
|
|---|
| 28 |
struct COLOR_STOP |
|---|
| 29 |
{ |
|---|
| 30 |
static HColorStop* opCall(COLOR clr,float off) |
|---|
| 31 |
{ |
|---|
| 32 |
auto ret=new COLOR_STOP; |
|---|
| 33 |
ret.color=clr; |
|---|
| 34 |
ret.offset=off; |
|---|
| 35 |
return ret; |
|---|
| 36 |
} |
|---|
| 37 |
|
|---|
| 38 |
COLOR color; |
|---|
| 39 |
float offset; // 0.0 ... 1.0 |
|---|
| 40 |
} |
|---|
| 41 |
|
|---|
| 42 |
alias COLOR_STOP HColorStop; |
|---|
| 43 |
|
|---|
| 44 |
enum GRAPHIN_RESULT |
|---|
| 45 |
{ |
|---|
| 46 |
GRAPHIN_PANIC = -1, // e.g. not enough memory |
|---|
| 47 |
GRAPHIN_OK = 0, |
|---|
| 48 |
GRAPHIN_BAD_PARAM = 1, // bad parameter |
|---|
| 49 |
GRAPHIN_FAILURE = 2, // operation failed, e.g. restore() without save() |
|---|
| 50 |
GRAPHIN_NOTSUPPORTED = 3 // the platform does not support requested feature |
|---|
| 51 |
} |
|---|
| 52 |
|
|---|
| 53 |
alias GRAPHIN_RESULT.GRAPHIN_PANIC GRAPHIN_PANIC; |
|---|
| 54 |
alias GRAPHIN_RESULT.GRAPHIN_OK GRAPHIN_OK; |
|---|
| 55 |
alias GRAPHIN_RESULT.GRAPHIN_BAD_PARAM GRAPHIN_BAD_PARAM; |
|---|
| 56 |
alias GRAPHIN_RESULT.GRAPHIN_FAILURE GRAPHIN_FAILURE; |
|---|
| 57 |
alias GRAPHIN_RESULT.GRAPHIN_NOTSUPPORTED GRAPHIN_NOTSUPPORTED; |
|---|
| 58 |
|
|---|
| 59 |
enum DRAW_PATH_MODE |
|---|
| 60 |
{ |
|---|
| 61 |
FILL_ONLY, |
|---|
| 62 |
STROKE_ONLY, |
|---|
| 63 |
FILL_AND_STROKE, |
|---|
| 64 |
FILL_BY_LINE_COLOR |
|---|
| 65 |
} |
|---|
| 66 |
|
|---|
| 67 |
alias DRAW_PATH_MODE.FILL_ONLY FILL_ONLY; |
|---|
| 68 |
alias DRAW_PATH_MODE.STROKE_ONLY STROKE_ONLY; |
|---|
| 69 |
alias DRAW_PATH_MODE.FILL_AND_STROKE FILL_AND_STROKE; |
|---|
| 70 |
alias DRAW_PATH_MODE.FILL_BY_LINE_COLOR FILL_BY_LINE_COLOR; |
|---|
| 71 |
|
|---|
| 72 |
enum TEXT_ALIGNMENT |
|---|
| 73 |
{ |
|---|
| 74 |
TEXT_ALIGN_TOP, |
|---|
| 75 |
TEXT_ALIGN_BOTTOM, |
|---|
| 76 |
TEXT_ALIGN_CENTER, |
|---|
| 77 |
TEXT_ALIGN_BASELINE, |
|---|
| 78 |
TEXT_ALIGN_RIGHT = TEXT_ALIGN_TOP, |
|---|
| 79 |
TEXT_ALIGN_LEFT = TEXT_ALIGN_BOTTOM |
|---|
| 80 |
} |
|---|
| 81 |
|
|---|
| 82 |
alias TEXT_ALIGNMENT.TEXT_ALIGN_TOP TEXT_ALIGN_TOP; |
|---|
| 83 |
alias TEXT_ALIGNMENT.TEXT_ALIGN_BOTTOM TEXT_ALIGN_BOTTOM; |
|---|
| 84 |
alias TEXT_ALIGNMENT.TEXT_ALIGN_CENTER TEXT_ALIGN_CENTER; |
|---|
| 85 |
alias TEXT_ALIGNMENT.TEXT_ALIGN_BASELINE TEXT_ALIGN_BASELINE; |
|---|
| 86 |
alias TEXT_ALIGNMENT.TEXT_ALIGN_RIGHT TEXT_ALIGN_RIGHT; |
|---|
| 87 |
alias TEXT_ALIGNMENT.TEXT_ALIGN_LEFT TEXT_ALIGN_LEFT; |
|---|
| 88 |
|
|---|
| 89 |
enum LINE_JOIN_TYPE |
|---|
| 90 |
{ |
|---|
| 91 |
JOIN_MITER = 0, |
|---|
| 92 |
JOIN_MITER_REVERT = 1, |
|---|
| 93 |
JOIN_ROUND = 2, |
|---|
| 94 |
JOIN_BEVEL = 3, |
|---|
| 95 |
JOIN_MITER_ROUND = 4, |
|---|
| 96 |
} |
|---|
| 97 |
|
|---|
| 98 |
alias LINE_JOIN_TYPE.JOIN_MITER JOIN_MITER; |
|---|
| 99 |
alias LINE_JOIN_TYPE.JOIN_MITER_REVERT JOIN_MITER_REVERT; |
|---|
| 100 |
alias LINE_JOIN_TYPE.JOIN_ROUND JOIN_ROUND; |
|---|
| 101 |
alias LINE_JOIN_TYPE.JOIN_BEVEL JOIN_BEVEL; |
|---|
| 102 |
alias LINE_JOIN_TYPE.JOIN_MITER_ROUND JOIN_MITER_ROUND; |
|---|
| 103 |
|
|---|
| 104 |
enum LINE_CAP_TYPE |
|---|
| 105 |
{ |
|---|
| 106 |
LINE_CAP_BUTT = 0, |
|---|
| 107 |
LINE_CAP_SQUARE = 1, |
|---|
| 108 |
LINE_CAP_ROUND = 2, |
|---|
| 109 |
} |
|---|
| 110 |
|
|---|
| 111 |
alias LINE_CAP_TYPE.LINE_CAP_BUTT LINE_CAP_BUTT; |
|---|
| 112 |
alias LINE_CAP_TYPE.LINE_CAP_SQUARE LINE_CAP_SQUARE; |
|---|
| 113 |
alias LINE_CAP_TYPE.LINE_CAP_ROUND LINE_CAP_ROUND; |
|---|
| 114 |
|
|---|
| 115 |
alias BOOL /*GRAPHIN_CALLC*/ function(LPVOID prm, LPBYTE data, UINT data_length) image_write_function; |
|---|
| 116 |
|
|---|
| 117 |
struct Graphin |
|---|
| 118 |
{ |
|---|
| 119 |
// image primitives |
|---|
| 120 |
extern(Windows): |
|---|
| 121 |
|
|---|
| 122 |
GRAPHIN_RESULT |
|---|
| 123 |
function ( UINT width, UINT height, HIMG* poutImg ) imageCreate; |
|---|
| 124 |
|
|---|
| 125 |
GRAPHIN_RESULT |
|---|
| 126 |
function ( HIMG himg ) imageRelease; |
|---|
| 127 |
|
|---|
| 128 |
GRAPHIN_RESULT |
|---|
| 129 |
function ( HIMG himg, |
|---|
| 130 |
BYTE** data, |
|---|
| 131 |
UINT* width, |
|---|
| 132 |
UINT* height, |
|---|
| 133 |
INT* stride, |
|---|
| 134 |
UINT* pixel_format) imageGetInfo; |
|---|
| 135 |
|
|---|
| 136 |
GRAPHIN_RESULT |
|---|
| 137 |
function ( HIMG himg ) imageClear; |
|---|
| 138 |
|
|---|
| 139 |
GRAPHIN_RESULT |
|---|
| 140 |
function ( HPLATFORMGFX dst, INT dst_x, INT dst_y, |
|---|
| 141 |
HIMG src, INT src_x, INT src_y, |
|---|
| 142 |
INT width, INT height, BOOL blend ) imageBlit; |
|---|
| 143 |
|
|---|
| 144 |
GRAPHIN_RESULT |
|---|
| 145 |
function ( BYTE* bytes, UINT num_bytes, HIMG* pout_img ) imageLoad; // load png/jpeg/etc. image from stream of bytes |
|---|
| 146 |
|
|---|
| 147 |
GRAPHIN_RESULT |
|---|
| 148 |
function ( HIMG himg, |
|---|
| 149 |
image_write_function pfn, void* prm, /* function and its param passed "as is" */ |
|---|
| 150 |
UINT bpp /*24,32 if alpha needed*/, |
|---|
| 151 |
UINT type /* 0 - png, 1 - jpg*/, |
|---|
| 152 |
UINT quality /* only for jpeg, 10 - 100 */ ) imageSave; |
|---|
| 153 |
|
|---|
| 154 |
|
|---|
| 155 |
// SECTION: graphics primitives and drawing operations |
|---|
| 156 |
|
|---|
| 157 |
// create color value |
|---|
| 158 |
COLOR |
|---|
| 159 |
function (UINT red, UINT green, UINT blue, UINT transparency /*= 0*/) RGBT; |
|---|
| 160 |
// Note: transparent color (no-color value) is rgba(?, ?, ?, 0xff); |
|---|
| 161 |
|
|---|
| 162 |
GRAPHIN_RESULT |
|---|
| 163 |
function (HIMG img, HGFX* pout_gfx ) gCreate; |
|---|
| 164 |
|
|---|
| 165 |
GRAPHIN_RESULT |
|---|
| 166 |
function (HGFX gfx) gRelease; |
|---|
| 167 |
|
|---|
| 168 |
// Draws line from x1,y1 to x2,y2 using current lineColor and lineGradient. |
|---|
| 169 |
GRAPHIN_RESULT |
|---|
| 170 |
function ( HGFX hgfx, POS x1, POS y1, POS x2, POS y2 ) gLine; |
|---|
| 171 |
|
|---|
| 172 |
// Draws triangle using current lineColor/lineGradient and fillColor/fillGradient. |
|---|
| 173 |
GRAPHIN_RESULT |
|---|
| 174 |
function ( HGFX hgfx, POS x1, POS y1, POS x2, POS y2, POS x3, POS y3 ) gTriangle; |
|---|
| 175 |
|
|---|
| 176 |
// Draws rectangle using current lineColor/lineGradient and fillColor/fillGradient with (optional) rounded corners. |
|---|
| 177 |
GRAPHIN_RESULT |
|---|
| 178 |
function ( HGFX hgfx, POS x1, POS y1, POS x2, POS y2 ) gRectangle; |
|---|
| 179 |
|
|---|
| 180 |
// Draws rounded rectangle using current lineColor/lineGradient and fillColor/fillGradient with (optional) rounded corners. |
|---|
| 181 |
GRAPHIN_RESULT |
|---|
| 182 |
function ( HGFX hgfx, POS x1, POS y1, POS x2, POS y2, DIM* radii8 /*DIM[8] - four rx/ry pairs */) gRoundedRectangle; |
|---|
| 183 |
|
|---|
| 184 |
// Draws circle or ellipse using current lineColor/lineGradient and fillColor/fillGradient. |
|---|
| 185 |
GRAPHIN_RESULT |
|---|
| 186 |
function ( HGFX hgfx, POS x, POS y, POS rx, POS ry ) gEllipse; |
|---|
| 187 |
|
|---|
| 188 |
// Draws closed arc using current lineColor/lineGradient and fillColor/fillGradient. |
|---|
| 189 |
GRAPHIN_RESULT |
|---|
| 190 |
function ( HGFX hgfx, POS x, POS y, POS rx, POS ry, ANGLE start, ANGLE sweep ) gArc; |
|---|
| 191 |
|
|---|
| 192 |
// Draws star. |
|---|
| 193 |
GRAPHIN_RESULT |
|---|
| 194 |
function ( HGFX hgfx, POS x, POS y, POS r1, POS r2, ANGLE start, UINT rays ) gStar; |
|---|
| 195 |
|
|---|
| 196 |
// Closed polygon. |
|---|
| 197 |
GRAPHIN_RESULT |
|---|
| 198 |
function ( HGFX hgfx, POS* xy, UINT num_points ) gPolygon; |
|---|
| 199 |
|
|---|
| 200 |
// Polyline. |
|---|
| 201 |
GRAPHIN_RESULT |
|---|
| 202 |
function ( HGFX hgfx, POS* xy, UINT num_points ) gPolyline; |
|---|
| 203 |
|
|---|
| 204 |
// SECTION: Path operations |
|---|
| 205 |
|
|---|
| 206 |
GRAPHIN_RESULT |
|---|
| 207 |
function ( HGFX hgfx ) gOpenPath; |
|---|
| 208 |
|
|---|
| 209 |
GRAPHIN_RESULT |
|---|
| 210 |
function ( HGFX hgfx, POS x, POS y, BOOL relative ) gMoveTo; |
|---|
| 211 |
|
|---|
| 212 |
GRAPHIN_RESULT |
|---|
| 213 |
function ( HGFX hgfx, POS x, POS y, BOOL relative ) gLineTo; |
|---|
| 214 |
|
|---|
| 215 |
GRAPHIN_RESULT |
|---|
| 216 |
function ( HGFX hgfx, POS x, BOOL relative ) gHLineTo; |
|---|
| 217 |
|
|---|
| 218 |
GRAPHIN_RESULT |
|---|
| 219 |
function ( HGFX hgfx, POS y, BOOL relative ) gVLineTo; |
|---|
| 220 |
|
|---|
| 221 |
GRAPHIN_RESULT |
|---|
| 222 |
function ( HGFX hgfx, POS x, POS y, ANGLE angle, POS rx, POS ry, BOOL is_large_arc, BOOL sweep_flag, BOOL relative ) gArcTo; |
|---|
| 223 |
|
|---|
| 224 |
GRAPHIN_RESULT |
|---|
| 225 |
function ( HGFX hgfx, POS x, POS y, POS rx, POS ry, BOOL clockwise ) gEllipseTo; |
|---|
| 226 |
|
|---|
| 227 |
GRAPHIN_RESULT |
|---|
| 228 |
function ( HGFX hgfx, POS xc, POS yc, POS x, POS y, BOOL relative ) gQuadraticCurveTo; |
|---|
| 229 |
|
|---|
| 230 |
GRAPHIN_RESULT |
|---|
| 231 |
function ( HGFX hgfx, POS xc1, POS yc1, POS xc2, POS yc2, POS x, POS y, BOOL relative ) gBezierCurveTo; |
|---|
| 232 |
|
|---|
| 233 |
GRAPHIN_RESULT |
|---|
| 234 |
function ( HGFX hgfx ) gClosePath; |
|---|
| 235 |
|
|---|
| 236 |
GRAPHIN_RESULT |
|---|
| 237 |
function ( HGFX hgfx, DRAW_PATH_MODE dpm ) gDrawPath; |
|---|
| 238 |
|
|---|
| 239 |
// end of path opearations |
|---|
| 240 |
|
|---|
| 241 |
// SECTION: affine tranformations: |
|---|
| 242 |
|
|---|
| 243 |
GRAPHIN_RESULT |
|---|
| 244 |
function ( HGFX hgfx, ANGLE radians, POS* cx /*= 0*/, POS* cy /*= 0*/ ) gRotate; |
|---|
| 245 |
|
|---|
| 246 |
GRAPHIN_RESULT |
|---|
| 247 |
function ( HGFX hgfx, POS cx, POS cy ) gTranslate; |
|---|
| 248 |
|
|---|
| 249 |
GRAPHIN_RESULT |
|---|
| 250 |
function ( HGFX hgfx, double x, double y ) gScale; |
|---|
| 251 |
|
|---|
| 252 |
GRAPHIN_RESULT |
|---|
| 253 |
function ( HGFX hgfx, double dx, double dy ) gSkew; |
|---|
| 254 |
|
|---|
| 255 |
// all above in one shot |
|---|
| 256 |
GRAPHIN_RESULT |
|---|
| 257 |
function ( HGFX hgfx, POS m11, POS m12, POS m21, POS m22, POS dx, POS dy ) gTransform; |
|---|
| 258 |
|
|---|
| 259 |
// end of affine tranformations. |
|---|
| 260 |
|
|---|
| 261 |
// SECTION: state save/restore |
|---|
| 262 |
|
|---|
| 263 |
GRAPHIN_RESULT |
|---|
| 264 |
function ( HGFX hgfx ) gStateSave; |
|---|
| 265 |
|
|---|
| 266 |
GRAPHIN_RESULT |
|---|
| 267 |
function ( HGFX hgfx ) gStateRestore; |
|---|
| 268 |
|
|---|
| 269 |
// end of state save/restore |
|---|
| 270 |
|
|---|
| 271 |
// SECTION: drawing attributes |
|---|
| 272 |
|
|---|
| 273 |
// set line width for subsequent drawings. |
|---|
| 274 |
GRAPHIN_RESULT |
|---|
| 275 |
function ( HGFX hgfx, DIM width ) gLineWidth; |
|---|
| 276 |
|
|---|
| 277 |
GRAPHIN_RESULT |
|---|
| 278 |
function ( HGFX hgfx, LINE_JOIN_TYPE type ) gLineJoin; |
|---|
| 279 |
|
|---|
| 280 |
GRAPHIN_RESULT |
|---|
| 281 |
function ( HGFX hgfx, LINE_CAP_TYPE type) gLineCap; |
|---|
| 282 |
|
|---|
| 283 |
//GRAPHIN_RESULT GRAPHIN_CALL |
|---|
| 284 |
// (*gNoLine ( HGFX hgfx ) { gLineWidth(hgfx,0.0); } |
|---|
| 285 |
|
|---|
| 286 |
// color for solid lines/strokes |
|---|
| 287 |
GRAPHIN_RESULT |
|---|
| 288 |
function ( HGFX hgfx, COLOR c) gLineColor; |
|---|
| 289 |
|
|---|
| 290 |
// color for solid fills |
|---|
| 291 |
GRAPHIN_RESULT |
|---|
| 292 |
function ( HGFX hgfx, COLOR color ) gFillColor; |
|---|
| 293 |
|
|---|
| 294 |
//inline void |
|---|
| 295 |
// graphics_no_fill ( HGFX hgfx ) { graphics_fill_color(hgfx, graphics_rgbt(0,0,0,0xFF)); } |
|---|
| 296 |
|
|---|
| 297 |
// setup parameters of linear gradient of lines. |
|---|
| 298 |
GRAPHIN_RESULT |
|---|
| 299 |
function ( HGFX hgfx, POS x1, POS y1, POS x2, POS y2, COLOR_STOP* stops, UINT nstops ) gLineGradientLinear; |
|---|
| 300 |
|
|---|
| 301 |
// setup parameters of linear gradient of fills. |
|---|
| 302 |
GRAPHIN_RESULT |
|---|
| 303 |
function ( HGFX hgfx, POS x1, POS y1, POS x2, POS y2, COLOR_STOP* stops, UINT nstops ) gFillGradientLinear; |
|---|
| 304 |
|
|---|
| 305 |
// setup parameters of line gradient radial fills. |
|---|
| 306 |
GRAPHIN_RESULT |
|---|
| 307 |
function ( HGFX hgfx, POS x, POS y, DIM r, COLOR_STOP* stops, UINT nstops ) gLineGradientRadial; |
|---|
| 308 |
|
|---|
| 309 |
// setup parameters of gradient radial fills. |
|---|
| 310 |
GRAPHIN_RESULT |
|---|
| 311 |
function ( HGFX hgfx, POS x, POS y, DIM r, COLOR_STOP* stops, UINT nstops ) gFillGradientRadial; |
|---|
| 312 |
|
|---|
| 313 |
GRAPHIN_RESULT |
|---|
| 314 |
function ( HGFX hgfx, BOOL even_odd /* false - fill_non_zero */ ) gFillMode; |
|---|
| 315 |
|
|---|
| 316 |
// SECTION: text |
|---|
| 317 |
|
|---|
| 318 |
// define font attributes for all subsequent text operations. |
|---|
| 319 |
GRAPHIN_RESULT |
|---|
| 320 |
function ( HGFX hgfx, char* name, DIM size, BOOL bold/* = false*/, BOOL italic/* = false*/, ANGLE angle /*= 0*/) gSetFont; |
|---|
| 321 |
|
|---|
| 322 |
// draw text at x,y with text alignment |
|---|
| 323 |
GRAPHIN_RESULT |
|---|
| 324 |
function ( HGFX hgfx, POS x, POS y, wchar_t* text, UINT text_length) gText; |
|---|
| 325 |
|
|---|
| 326 |
// calculates width of the text string |
|---|
| 327 |
GRAPHIN_RESULT |
|---|
| 328 |
function ( HGFX hgfx, wchar_t* text, UINT text_length, DIM* out_width) gTextWidth; |
|---|
| 329 |
|
|---|
| 330 |
// returns height and ascent of the font. |
|---|
| 331 |
GRAPHIN_RESULT |
|---|
| 332 |
function ( HGFX hgfx, DIM* out_height, DIM* out_ascent ) gFontMetrics; |
|---|
| 333 |
|
|---|
| 334 |
|
|---|
| 335 |
// calculates width of the text string |
|---|
| 336 |
GRAPHIN_RESULT |
|---|
| 337 |
function ( HGFX hgfx, TEXT_ALIGNMENT x, TEXT_ALIGNMENT y) gTextAlignment; |
|---|
| 338 |
|
|---|
| 339 |
// SECTION: image rendering |
|---|
| 340 |
|
|---|
| 341 |
// draws img onto the graphics surface with current transformation applied (scale, rotation). |
|---|
| 342 |
GRAPHIN_RESULT |
|---|
| 343 |
function ( HGFX hgfx, HIMG himg, POS x, POS y, |
|---|
| 344 |
DIM* w /*= 0*/, DIM* h /*= 0*/, UINT* ix /*= 0*/, UINT* iy /*= 0*/, UINT* iw /*= 0*/, UINT* ih /*= 0*/ ) gDrawImage; |
|---|
| 345 |
|
|---|
| 346 |
// blits image bits onto underlying pixel buffer. no affine transformations. |
|---|
| 347 |
GRAPHIN_RESULT |
|---|
| 348 |
function ( HGFX hgfx, HIMG himg, POS x, POS y, UINT* ix /*= 0*/, UINT* iy /*= 0*/, UINT* iw /*= 0*/, UINT* ih /*= 0*/ ) gBlitImage; |
|---|
| 349 |
|
|---|
| 350 |
// blends image bits with bits of the buffer. no affine transformations. |
|---|
| 351 |
GRAPHIN_RESULT |
|---|
| 352 |
function ( HGFX hgfx, HIMG himg, POS x, POS y, UINT opacity /*= 0xff*/, UINT* ix /*= 0*/, UINT* iy /*= 0*/, UINT* iw /*= 0*/, UINT* ih /*= 0*/ ) gBlendImage; |
|---|
| 353 |
|
|---|
| 354 |
// SECTION: coordinate space |
|---|
| 355 |
|
|---|
| 356 |
GRAPHIN_RESULT |
|---|
| 357 |
function ( HGFX hgfx, POS* inout_x, POS* inout_y) gWorldToScreen; |
|---|
| 358 |
|
|---|
| 359 |
//inline GRAPHIN_RESULT |
|---|
| 360 |
// graphics_world_to_screen ( HGFX hgfx, POS* length) |
|---|
| 361 |
//{ |
|---|
| 362 |
// return graphics_world_to_screen ( hgfx, length, 0); |
|---|
| 363 |
//} |
|---|
| 364 |
|
|---|
| 365 |
GRAPHIN_RESULT |
|---|
| 366 |
function ( HGFX hgfx, POS* inout_x, POS* inout_y) gScreenToWorld; |
|---|
| 367 |
|
|---|
| 368 |
//inline GRAPHIN_RESULT |
|---|
| 369 |
// graphics_screen_to_world ( HGFX hgfx, POS* length) |
|---|
| 370 |
//{ |
|---|
| 371 |
// return graphics_screen_to_world (hgfx, length, 0); |
|---|
| 372 |
//} |
|---|
| 373 |
|
|---|
| 374 |
// SECTION: clipping |
|---|
| 375 |
|
|---|
| 376 |
GRAPHIN_RESULT |
|---|
| 377 |
function ( HGFX hgfx, POS x1, POS y1, POS x2, POS y2) gSetClipBox; |
|---|
| 378 |
|
|---|
| 379 |
GRAPHIN_RESULT |
|---|
| 380 |
function ( HGFX hgfx, POS* x1, POS* y1, POS* x2, POS* y2) gGetClipBox; |
|---|
| 381 |
|
|---|
| 382 |
GRAPHIN_RESULT |
|---|
| 383 |
function ( HGFX hgfx, POS x, POS y, BOOL* yes) gPointInClipBox; |
|---|
| 384 |
|
|---|
| 385 |
GRAPHIN_RESULT |
|---|
| 386 |
function ( HGFX hgfx, POS x1, POS y1, POS x2, POS y2, BOOL* yes) gRectInClipBox; |
|---|
| 387 |
|
|---|
| 388 |
} |
|---|
| 389 |
|
|---|
| 390 |
alias Graphin* PGraphin; |
|---|
| 391 |
|
|---|
| 392 |
/** Get Graphin API |
|---|
| 393 |
* |
|---|
| 394 |
* returns ptr to Graphin API functions. |
|---|
| 395 |
* See: htmlayout_graphin.h |
|---|
| 396 |
* |
|---|
| 397 |
**/ |
|---|
| 398 |
|
|---|
| 399 |
alias PGraphin function() HTMLayoutGetGraphin_t; |
|---|
| 400 |
HTMLayoutGetGraphin_t HTMLayoutGetGraphin; |
|---|
| 401 |
|
|---|
| 402 |
/** Render DOM element on the image |
|---|
| 403 |
* \param[in] himg \b HIMG, image where to render the element. |
|---|
| 404 |
* \param[in] where \b POINT, location where to render, image coordinates. |
|---|
| 405 |
* \param[in] what \b HELEMENT, element to render. |
|---|
| 406 |
* \param[in] how \b UINT, flags. |
|---|
| 407 |
**/ |
|---|
| 408 |
|
|---|
| 409 |
// ATTN: HTMLayoutRenderElement is not implemented yet. |
|---|
| 410 |
alias GRAPHIN_RESULT function(HIMG himg, POINT where, HELEMENT what, UINT how) HTMLayoutRenderElement_t; |
|---|
| 411 |
HTMLayoutRenderElement_t HTMLayoutRenderElement; |
|---|
| 412 |
|
|---|
| 413 |
/////// update 3.2.2.4 |
|---|
| 414 |
|
|---|
| 415 |
alias UINT function( LPCWSTR text, UINT textLength, UINT mode, JSON_VALUE *pVal ) HTMLayoutParseValue_t; |
|---|
| 416 |
HTMLayoutParseValue_t HTMLayoutParseValue; |
|---|
| 417 |
|
|---|
| 418 |
/////// update 3.2.2.1 |
|---|
| 419 |
|
|---|
| 420 |
enum HTMLAYOUT_SCROLL_FLAGS |
|---|
| 421 |
{ |
|---|
| 422 |
SCROLL_TO_TOP = 0x01, |
|---|
| 423 |
SCROLL_SMOOTH = 0x10, |
|---|
| 424 |
}; |
|---|
| 425 |
|
|---|
| 426 |
alias HTMLAYOUT_SCROLL_FLAGS.SCROLL_TO_TOP SCROLL_TO_TOP; |
|---|
| 427 |
alias HTMLAYOUT_SCROLL_FLAGS.SCROLL_SMOOTH SCROLL_SMOOTH; |
|---|
| 428 |
|
|---|
| 429 |
alias HLDOM_RESULT function(HELEMENT he, UINT /*HTMLAYOUT_SCROLL_FLAGS*/ flags) HTMLayoutScrollToView_t; |
|---|
| 430 |
HTMLayoutScrollToView_t HTMLayoutScrollToView; |
|---|
| 431 |
|
|---|
| 432 |
/////// update 3.2.1.14 |
|---|
| 433 |
|
|---|
| 434 |
alias void function( HTMLayoutElementExpando* pexp, HELEMENT he ) ExpandoRelease; |
|---|
| 435 |
|
|---|
| 436 |
struct HTMLayoutElementExpando |
|---|
| 437 |
{ |
|---|
| 438 |
ExpandoRelease finalizer; // can be either NULL or valid pointer to function |
|---|
| 439 |
} |
|---|
| 440 |
|
|---|
| 441 |
alias HLDOM_RESULT function( HELEMENT he, HTMLayoutElementExpando* pExpando ) HTMLayoutElementSetExpando_t; |
|---|
| 442 |
HTMLayoutElementSetExpando_t HTMLayoutElementSetExpando; |
|---|
| 443 |
alias HLDOM_RESULT function( HELEMENT he, HTMLayoutElementExpando** ppExpando ) HTMLayoutElementGetExpando_t; |
|---|
| 444 |
HTMLayoutElementGetExpando_t HTMLayoutElementGetExpando; |
|---|
| 445 |
|
|---|
| 446 |
|
|---|
| 447 |
////////////////////////////////////////////////////////////////////////////// behaviors |
|---|
| 448 |
|
|---|
| 449 |
enum EVENT_GROUPS |
|---|
| 450 |
{ |
|---|
| 451 |
HANDLE_INITIALIZATION = 0x0000, /** attached/detached */ |
|---|
| 452 |
HANDLE_MOUSE = 0x0001, /** mouse events */ |
|---|
| 453 |
HANDLE_KEY = 0x0002, /** key events */ |
|---|
| 454 |
HANDLE_FOCUS = 0x0004, /** focus events, if this flag is set it also means that element it attached to is focusable */ |
|---|
| 455 |
HANDLE_SCROLL = 0x0008, /** scroll events */ |
|---|
| 456 |
HANDLE_TIMER = 0x0010, /** timer event */ |
|---|
| 457 |
HANDLE_SIZE = 0x0020, /** size changed event */ |
|---|
| 458 |
HANDLE_DRAW = 0x0040, /** drawing request (event) */ |
|---|
| 459 |
HANDLE_DATA_ARRIVED = 0x080, /** requested data () has been delivered */ |
|---|
| 460 |
HANDLE_BEHAVIOR_EVENT = 0x0100, /** secondary, synthetic events: |
|---|
| 461 |
BUTTON_CLICK, HYPERLINK_CLICK, etc., |
|---|
| 462 |
a.k.a. notifications from intrinsic behaviors */ |
|---|
| 463 |
HANDLE_METHOD_CALL = 0x0200, /** behavior specific methods */ |
|---|
| 464 |
|
|---|
| 465 |
HANDLE_ALL = 0x03FF, /** all of them */ |
|---|
| 466 |
|
|---|
| 467 |
DISABLE_INITIALIZATION = 0x80000000 /** disable INITIALIZATION events to be sent. |
|---|
| 468 |
normally engine sends |
|---|
| 469 |
BEHAVIOR_DETACH / BEHAVIOR_ATTACH events unconditionally, |
|---|
| 470 |
this flag allows to disable this behavior |
|---|
| 471 |
*/ |
|---|
| 472 |
}; |
|---|
| 473 |
|
|---|
| 474 |
alias EVENT_GROUPS.HANDLE_INITIALIZATION HANDLE_INITIALIZATION; |
|---|
| 475 |
alias EVENT_GROUPS.HANDLE_MOUSE HANDLE_MOUSE; |
|---|
| 476 |
alias EVENT_GROUPS.HANDLE_KEY HANDLE_KEY; |
|---|
| 477 |
alias EVENT_GROUPS.HANDLE_FOCUS HANDLE_FOCUS; |
|---|
| 478 |
alias EVENT_GROUPS.HANDLE_SCROLL HANDLE_SCROLL; |
|---|
| 479 |
alias EVENT_GROUPS.HANDLE_TIMER HANDLE_TIMER; |
|---|
| 480 |
alias EVENT_GROUPS.HANDLE_SIZE HANDLE_SIZE; |
|---|
| 481 |
alias EVENT_GROUPS.HANDLE_DRAW HANDLE_DRAW; |
|---|
| 482 |
alias EVENT_GROUPS.HANDLE_DATA_ARRIVED HANDLE_DATA_ARRIVED; |
|---|
| 483 |
alias EVENT_GROUPS.HANDLE_BEHAVIOR_EVENT HANDLE_BEHAVIOR_EVENT; |
|---|
| 484 |
alias EVENT_GROUPS.HANDLE_METHOD_CALL HANDLE_METHOD_CALL; |
|---|
| 485 |
alias EVENT_GROUPS.HANDLE_ALL HANDLE_ALL; |
|---|
| 486 |
alias EVENT_GROUPS.DISABLE_INITIALIZATION DISABLE_INITIALIZATION; |
|---|
| 487 |
|
|---|
| 488 |
enum PHASE_MASK |
|---|
| 489 |
{ |
|---|
| 490 |
BUBBLING = 0, // bubbling (emersion) phase |
|---|
| 491 |
SINKING = 0x08000, // capture (immersion) phase, this flag is or'ed with EVENTS codes below |
|---|
| 492 |
HANDLED = 0x10000 // event already processed. |
|---|
| 493 |
|
|---|
| 494 |
// see: http://www.w3.org/TR/xml-events/Overview.html#s_intro |
|---|
| 495 |
}; |
|---|
| 496 |
|
|---|
| 497 |
alias PHASE_MASK.BUBBLING BUBBLING; |
|---|
| 498 |
alias PHASE_MASK.SINKING SINKING ; |
|---|
| 499 |
alias PHASE_MASK.HANDLED HANDLED ; |
|---|
| 500 |
|
|---|
| 501 |
enum MOUSE_BUTTONS |
|---|
| 502 |
{ |
|---|
| 503 |
MAIN_MOUSE_BUTTON = 1, //aka left button |
|---|
| 504 |
PROP_MOUSE_BUTTON = 2, //aka right button |
|---|
| 505 |
MIDDLE_MOUSE_BUTTON = 4, |
|---|
| 506 |
}; |
|---|
| 507 |
|
|---|
| 508 |
alias MOUSE_BUTTONS.MAIN_MOUSE_BUTTON MAIN_MOUSE_BUTTON; |
|---|
| 509 |
alias MOUSE_BUTTONS.PROP_MOUSE_BUTTON PROP_MOUSE_BUTTON; |
|---|
| 510 |
alias MOUSE_BUTTONS.MIDDLE_MOUSE_BUTTON MIDDLE_MOUSE_BUTTON; |
|---|
| 511 |
|
|---|
| 512 |
enum KEYBOARD_STATES |
|---|
| 513 |
{ |
|---|
| 514 |
CONTROL_KEY_PRESSED = 0x1, |
|---|
| 515 |
SHIFT_KEY_PRESSED = 0x2, |
|---|
| 516 |
ALT_KEY_PRESSED = 0x4 |
|---|
| 517 |
}; |
|---|
| 518 |
|
|---|
| 519 |
alias KEYBOARD_STATES.CONTROL_KEY_PRESSED CONTROL_KEY_PRESSED; |
|---|
| 520 |
alias KEYBOARD_STATES.SHIFT_KEY_PRESSED SHIFT_KEY_PRESSED; |
|---|
| 521 |
alias KEYBOARD_STATES.ALT_KEY_PRESSED ALT_KEY_PRESSED; |
|---|
| 522 |
|
|---|
| 523 |
enum INITIALIZATION_EVENTS |
|---|
| 524 |
{ |
|---|
| 525 |
BEHAVIOR_DETACH = 0, |
|---|
| 526 |
BEHAVIOR_ATTACH = 1 |
|---|
| 527 |
}; |
|---|
| 528 |
|
|---|
| 529 |
alias INITIALIZATION_EVENTS.BEHAVIOR_DETACH BEHAVIOR_DETACH; |
|---|
| 530 |
alias INITIALIZATION_EVENTS.BEHAVIOR_ATTACH BEHAVIOR_ATTACH; |
|---|
| 531 |
|
|---|
| 532 |
struct INITIALIZATION_PARAMS |
|---|
| 533 |
{ |
|---|
| 534 |
UINT cmd; // INITIALIZATION_EVENTS |
|---|
| 535 |
}; |
|---|
| 536 |
|
|---|
| 537 |
enum DRAGGING_TYPE |
|---|
| 538 |
{ |
|---|
| 539 |
NO_DRAGGING, |
|---|
| 540 |
DRAGGING_MOVE, |
|---|
| 541 |
DRAGGING_COPY, |
|---|
| 542 |
} |
|---|
| 543 |
|
|---|
| 544 |
alias DRAGGING_TYPE.NO_DRAGGING NO_DRAGGING; |
|---|
| 545 |
alias DRAGGING_TYPE.DRAGGING_MOVE DRAGGING_MOVE; |
|---|
| 546 |
alias DRAGGING_TYPE.DRAGGING_COPY DRAGGING_COPY; |
|---|
| 547 |
|
|---|
| 548 |
enum MOUSE_EVENTS |
|---|
| 549 |
{ |
|---|
| 550 |
MOUSE_ENTER = 0, |
|---|
| 551 |
MOUSE_LEAVE, |
|---|
| 552 |
MOUSE_MOVE, |
|---|
| 553 |
MOUSE_UP, |
|---|
| 554 |
MOUSE_DOWN, |
|---|
| 555 |
MOUSE_DCLICK, |
|---|
| 556 |
MOUSE_WHEEL, |
|---|
| 557 |
MOUSE_TICK, // mouse pressed ticks |
|---|
| 558 |
MOUSE_IDLE, // mouse stay idle for some time |
|---|
| 559 |
|
|---|
| 560 |
DROP = 9, // item dropped, target is that dropped item |
|---|
| 561 |
DRAG_ENTER = 0xA, // drag arrived to the target element that is one of current drop targets. |
|---|
| 562 |
DRAG_LEAVE = 0xB, // drag left one of current drop targets. target is the drop target element. |
|---|
| 563 |
|
|---|
| 564 |
DRAGGING = 0x100, // This flag is 'ORed' with MOUSE_ENTER..MOUSE_DOWN codes if dragging operation is in effect. |
|---|
| 565 |
// In this case |
|---|
| 566 |
}; |
|---|
| 567 |
|
|---|
| 568 |
alias MOUSE_EVENTS.MOUSE_ENTER MOUSE_ENTER; |
|---|
| 569 |
alias MOUSE_EVENTS.MOUSE_LEAVE MOUSE_LEAVE; |
|---|
| 570 |
alias MOUSE_EVENTS.MOUSE_MOVE MOUSE_MOVE; |
|---|
| 571 |
alias MOUSE_EVENTS.MOUSE_UP MOUSE_UP; |
|---|
| 572 |
alias MOUSE_EVENTS.MOUSE_DOWN MOUSE_DOWN; |
|---|
| 573 |
alias MOUSE_EVENTS.MOUSE_DCLICK MOUSE_DCLICK; |
|---|
| 574 |
alias MOUSE_EVENTS.MOUSE_WHEEL MOUSE_WHEEL; |
|---|
| 575 |
alias MOUSE_EVENTS.MOUSE_TICK MOUSE_TICK; |
|---|
| 576 |
alias MOUSE_EVENTS.MOUSE_IDLE MOUSE_IDLE; |
|---|
| 577 |
alias MOUSE_EVENTS.DROP DROP; |
|---|
| 578 |
alias MOUSE_EVENTS.DRAG_ENTER DRAG_ENTER; |
|---|
| 579 |
alias MOUSE_EVENTS.DRAG_LEAVE DRAG_LEAVE; |
|---|
| 580 |
alias MOUSE_EVENTS.DRAGGING DRAGGING; |
|---|
| 581 |
|
|---|
| 582 |
struct MOUSE_PARAMS |
|---|
| 583 |
{ |
|---|
| 584 |
UINT cmd; // MOUSE_EVENTS |
|---|
| 585 |
HELEMENT target; // target element |
|---|
| 586 |
POINT pos; // position of cursor, element relative |
|---|
| 587 |
POINT pos_document; // position of cursor, document root relative |
|---|
| 588 |
UINT button_state; // MOUSE_BUTTONS or MOUSE_WHEEL_DELTA |
|---|
| 589 |
UINT alt_state; // KEYBOARD_STATES |
|---|
| 590 |
UINT cursor_type; // CURSOR_TYPE to set, see CURSOR_TYPE |
|---|
| 591 |
BOOL is_on_icon; // mouse is over icon (foreground-image, foreground-repeat:no-repeat) |
|---|
| 592 |
|
|---|
| 593 |
HELEMENT dragging; // element that is being dragged over, this field is not NULL if (cmd & DRAGGING) != 0 |
|---|
| 594 |
UINT dragging_mode;// see DRAGGING_TYPE. |
|---|
| 595 |
}; |
|---|
| 596 |
|
|---|
| 597 |
enum CURSOR_TYPE |
|---|
| 598 |
{ |
|---|
| 599 |
CURSOR_ARROW, //0 |
|---|
| 600 |
CURSOR_IBEAM, //1 |
|---|
| 601 |
CURSOR_WAIT, //2 |
|---|
| 602 |
CURSOR_CROSS, //3 |
|---|
| 603 |
CURSOR_UPARROW, //4 |
|---|
| 604 |
CURSOR_SIZENWSE, //5 |
|---|
| 605 |
CURSOR_SIZENESW, //6 |
|---|
| 606 |
CURSOR_SIZEWE, //7 |
|---|
| 607 |
CURSOR_SIZENS, //8 |
|---|
| 608 |
CURSOR_SIZEALL, //9 |
|---|
| 609 |
CURSOR_NO, //10 |
|---|
| 610 |
CURSOR_APPSTARTING, //11 |
|---|
| 611 |
CURSOR_HELP, //12 |
|---|
| 612 |
CURSOR_HAND, //13 |
|---|
| 613 |
CURSOR_DRAG_MOVE, //14 |
|---|
| 614 |
CURSOR_DRAG_COPY, //15 |
|---|
| 615 |
}; |
|---|
| 616 |
|
|---|
| 617 |
alias CURSOR_TYPE.CURSOR_ARROW CURSOR_ARROW; |
|---|
| 618 |
alias CURSOR_TYPE.CURSOR_IBEAM CURSOR_IBEAM; |
|---|
| 619 |
alias CURSOR_TYPE.CURSOR_WAIT CURSOR_WAIT; |
|---|
| 620 |
alias CURSOR_TYPE.CURSOR_CROSS CURSOR_CROSS; |
|---|
| 621 |
alias CURSOR_TYPE.CURSOR_UPARROW CURSOR_UPARROW; |
|---|
| 622 |
alias CURSOR_TYPE.CURSOR_SIZENWSE CURSOR_SIZENWSE; |
|---|
| 623 |
alias CURSOR_TYPE.CURSOR_SIZENESW CURSOR_SIZENESW; |
|---|
| 624 |
alias CURSOR_TYPE.CURSOR_SIZEWE CURSOR_SIZEWE; |
|---|
| 625 |
alias CURSOR_TYPE.CURSOR_SIZENS CURSOR_SIZENS; |
|---|
| 626 |
alias CURSOR_TYPE.CURSOR_SIZEALL CURSOR_SIZEALL; |
|---|
| 627 |
alias CURSOR_TYPE.CURSOR_NO CURSOR_NO; |
|---|
| 628 |
alias CURSOR_TYPE.CURSOR_APPSTARTING CURSOR_APPSTARTING; |
|---|
| 629 |
alias CURSOR_TYPE.CURSOR_HELP CURSOR_HELP; |
|---|
| 630 |
alias CURSOR_TYPE.CURSOR_HAND CURSOR_HAND; |
|---|
| 631 |
alias CURSOR_TYPE.CURSOR_DRAG_MOVE CURSOR_DRAG_MOVE; |
|---|
| 632 |
alias CURSOR_TYPE.CURSOR_DRAG_COPY CURSOR_DRAG_COPY; |
|---|
| 633 |
|
|---|
| 634 |
enum KEY_EVENTS |
|---|
| 635 |
{ |
|---|
| 636 |
KEY_DOWN = 0, |
|---|
| 637 |
KEY_UP, |
|---|
| 638 |
KEY_CHAR |
|---|
| 639 |
}; |
|---|
| 640 |
|
|---|
| 641 |
alias KEY_EVENTS.KEY_DOWN KEY_DOWN; |
|---|
| 642 |
alias KEY_EVENTS.KEY_UP KEY_UP; |
|---|
| 643 |
alias KEY_EVENTS.KEY_CHAR KEY_CHAR; |
|---|
| 644 |
|
|---|
| 645 |
struct KEY_PARAMS |
|---|
| 646 |
{ |
|---|
| 647 |
UINT cmd; // KEY_EVENTS |
|---|
| 648 |
HELEMENT target; // target element |
|---|
| 649 |
UINT key_code; // key scan code, or character unicode for KEY_CHAR |
|---|
| 650 |
UINT alt_state; // KEYBOARD_STATES |
|---|
| 651 |
}; |
|---|
| 652 |
|
|---|
| 653 |
enum FOCUS_EVENTS |
|---|
| 654 |
{ |
|---|
| 655 |
FOCUS_LOST = 0, |
|---|
| 656 |
FOCUS_GOT = 1, |
|---|
| 657 |
}; |
|---|
| 658 |
|
|---|
| 659 |
alias FOCUS_EVENTS.FOCUS_LOST FOCUS_LOST; |
|---|
| 660 |
alias FOCUS_EVENTS.FOCUS_GOT FOCUS_GOT; |
|---|
| 661 |
|
|---|
| 662 |
struct FOCUS_PARAMS |
|---|
| 663 |
{ |
|---|
| 664 |
UINT cmd; // FOCUS_EVENTS |
|---|
| 665 |
HELEMENT target; // target element, for FOCUS_LOST it is a handle of new focus element |
|---|
| 666 |
// and for FOCUS_GOT it is a handle of old focus element, can be NULL |
|---|
| 667 |
BOOL by_mouse_click; // TRUE if focus is being set by mouse click |
|---|
| 668 |
BOOL cancel; // in FOCUS_LOST phase setting this field to TRUE will cancel transfer focus from old element to the new one. |
|---|
| 669 |
}; |
|---|
| 670 |
|
|---|
| 671 |
enum SCROLL_EVENTS |
|---|
| 672 |
{ |
|---|
| 673 |
SCROLL_HOME = 0, |
|---|
| 674 |
SCROLL_END, |
|---|
| 675 |
SCROLL_STEP_PLUS, |
|---|
| 676 |
SCROLL_STEP_MINUS, |
|---|
| 677 |
SCROLL_PAGE_PLUS, |
|---|
| 678 |
SCROLL_PAGE_MINUS, |
|---|
| 679 |
SCROLL_POS |
|---|
| 680 |
}; |
|---|
| 681 |
|
|---|
| 682 |
alias SCROLL_EVENTS.SCROLL_HOME SCROLL_HOME; |
|---|
| 683 |
alias SCROLL_EVENTS.SCROLL_END SCROLL_END; |
|---|
| 684 |
alias SCROLL_EVENTS.SCROLL_STEP_PLUS SCROLL_STEP_PLUS; |
|---|
| 685 |
alias SCROLL_EVENTS.SCROLL_STEP_MINUS SCROLL_STEP_MINUS; |
|---|
| 686 |
alias SCROLL_EVENTS.SCROLL_PAGE_PLUS SCROLL_PAGE_PLUS; |
|---|
| 687 |
alias SCROLL_EVENTS.SCROLL_PAGE_MINUS SCROLL_PAGE_MINUS; |
|---|
| 688 |
alias SCROLL_EVENTS.SCROLL_POS SCROLL_POS; |
|---|
| 689 |
|
|---|
| 690 |
struct SCROLL_PARAMS |
|---|
| 691 |
{ |
|---|
| 692 |
UINT cmd; // SCROLL_EVENTS |
|---|
| 693 |
HELEMENT target; // target element |
|---|
| 694 |
INT pos; // scroll position if SCROLL_POS |
|---|
| 695 |
BOOL vertical; // TRUE if from vertical scrollbar |
|---|
| 696 |
}; |
|---|
| 697 |
|
|---|
| 698 |
|
|---|
| 699 |
enum DRAW_EVENTS |
|---|
| 700 |
{ |
|---|
| 701 |
DRAW_BACKGROUND = 0, |
|---|
| 702 |
DRAW_CONTENT = 1, |
|---|
| 703 |
DRAW_FOREGROUND = 2, |
|---|
| 704 |
}; |
|---|
| 705 |
|
|---|
| 706 |
alias DRAW_EVENTS.DRAW_BACKGROUND DRAW_BACKGROUND; |
|---|
| 707 |
alias DRAW_EVENTS.DRAW_CONTENT DRAW_CONTENT; |
|---|
| 708 |
alias DRAW_EVENTS.DRAW_FOREGROUND DRAW_FOREGROUND; |
|---|
| 709 |
|
|---|
| 710 |
struct DRAW_PARAMS |
|---|
| 711 |
{ |
|---|
| 712 |
UINT cmd; // DRAW_EVENTS |
|---|
| 713 |
HDC hdc; // hdc to paint on |
|---|
| 714 |
RECT area; // element area to paint, |
|---|
| 715 |
UINT reserved; // for DRAW_BACKGROUND/DRAW_FOREGROUND - it is a border box |
|---|
| 716 |
// for DRAW_CONTENT - it is a content box |
|---|
| 717 |
}; |
|---|
| 718 |
// Use ::GetTextColor(hdc) to get current text color of the element |
|---|
| 719 |
|
|---|
| 720 |
enum BEHAVIOR_EVENTS |
|---|
| 721 |
{ |
|---|
| 722 |
BUTTON_CLICK = 0, // click on button |
|---|
| 723 |
BUTTON_PRESS = 1, // mouse down or key down in button |
|---|
| 724 |
BUTTON_STATE_CHANGED = 2, // checkbox/radio/slider changed its state/value |
|---|
| 725 |
EDIT_VALUE_CHANGING = 3, // before text change |
|---|
| 726 |
EDIT_VALUE_CHANGED = 4, // after text change |
|---|
| 727 |
SELECT_SELECTION_CHANGED = 5, // selection in <select> changed |
|---|
| 728 |
SELECT_STATE_CHANGED = 6, // node in select expanded/collapsed, heTarget is the node |
|---|
| 729 |
|
|---|
| 730 |
POPUP_REQUEST = 7, // request to show popup just received, |
|---|
| 731 |
// here DOM of popup element can be modifed. |
|---|
| 732 |
POPUP_READY = 8, // popup element has been measured and ready to be shown on screen, |
|---|
| 733 |
// here you can use functions like ScrollToView. |
|---|
| 734 |
POPUP_DISMISSED = 9, // popup element is closed, |
|---|
| 735 |
// here DOM of popup element can be modifed again - e.g. some items can be removed |
|---|
| 736 |
// to free memory. |
|---|
| 737 |
|
|---|
| 738 |
MENU_ITEM_ACTIVE = 0xA, // menu item activated by mouse hover or by keyboard, |
|---|
| 739 |
MENU_ITEM_CLICK = 0xB, // menu item click, |
|---|
| 740 |
// BEHAVIOR_EVENT_PARAMS structure layout |
|---|
| 741 |
// BEHAVIOR_EVENT_PARAMS.cmd - MENU_ITEM_CLICK/MENU_ITEM_ACTIVE |
|---|
| 742 |
// BEHAVIOR_EVENT_PARAMS.heTarget - the menu item, presumably <li> element |
|---|
| 743 |
// BEHAVIOR_EVENT_PARAMS.reason - BY_MOUSE_CLICK | BY_KEY_CLICK |
|---|
| 744 |
|
|---|
| 745 |
|
|---|
| 746 |
CONTEXT_MENU_REQUEST = 0x10, // "right-click", BEHAVIOR_EVENT_PARAMS::he is current popup menu HELEMENT being processed or NULL. |
|---|
| 747 |
// application can provide its own HELEMENT here (if it is NULL) or modify current menu element. |
|---|
| 748 |
|
|---|
| 749 |
VISIUAL_STATUS_CHANGED = 0x11, // broadcast notification, sent to all elements of some container being shown or hidden |
|---|
| 750 |
|
|---|
| 751 |
|
|---|
| 752 |
// "grey" event codes - notfications from behaviors from this SDK |
|---|
| 753 |
HYPERLINK_CLICK = 0x80, // hyperlink click |
|---|
| 754 |
TABLE_HEADER_CLICK, // click on some cell in table header, |
|---|
| 755 |
// target = the cell, |
|---|
| 756 |
// reason = index of the cell (column number, 0..n) |
|---|
| 757 |
TABLE_ROW_CLICK, // click on data row in the table, target is the row |
|---|
| 758 |
// target = the row, |
|---|
| 759 |
// reason = index of the row (fixed_rows..n) |
|---|
| 760 |
TABLE_ROW_DBL_CLICK, // mouse dbl click on data row in the table, target is the row |
|---|
| 761 |
// target = the row, |
|---|
| 762 |
// reason = index of the row (fixed_rows..n) |
|---|
| 763 |
|
|---|
| 764 |
ELEMENT_COLLAPSED = 0x90, // element was collapsed, so far only behavior:tabs is sending these two to the panels |
|---|
| 765 |
ELEMENT_EXPANDED, // element was expanded, |
|---|
| 766 |
|
|---|
| 767 |
ACTIVATE_CHILD, // activate (select) child, |
|---|
| 768 |
// used for example by accesskeys behaviors to send activation request, e.g. tab on behavior:tabs. |
|---|
| 769 |
|
|---|
| 770 |
DO_SWITCH_TAB = ACTIVATE_CHILD,// command to switch tab programmatically, handled by behavior:tabs |
|---|
| 771 |
// use it as HTMLayoutPostEvent(tabsElementOrItsChild, DO_SWITCH_TAB, tabElementToShow, 0); |
|---|
| 772 |
|
|---|
| 773 |
INIT_DATA_VIEW, // request to virtual grid to initialize its view |
|---|
| 774 |
|
|---|
| 775 |
ROWS_DATA_REQUEST, // request from virtual grid to data source behavior to fill data in the table |
|---|
| 776 |
// parameters passed throug DATA_ROWS_PARAMS structure. |
|---|
| 777 |
|
|---|
| 778 |
UI_STATE_CHANGED, // ui state changed, observers shall update their visual states. |
|---|
| 779 |
// is sent for example by behavior:richtext when caret position/selection has changed. |
|---|
| 780 |
|
|---|
| 781 |
|
|---|
| 782 |
FIRST_APPLICATION_EVENT_CODE = 0x100 |
|---|
| 783 |
// all custom event codes shall be greater |
|---|
| 784 |
// than this number. All codes below this will be used |
|---|
| 785 |
// solely by application - HTMLayout will not intrepret it |
|---|
| 786 |
// and will do just dispatching. |
|---|
| 787 |
// To send event notifications with these codes use |
|---|
| 788 |
// HTMLayoutSend/PostEvent API. |
|---|
| 789 |
|
|---|
| 790 |
}; |
|---|
| 791 |
|
|---|
| 792 |
alias BEHAVIOR_EVENTS.BUTTON_CLICK BUTTON_CLICK; |
|---|
| 793 |
alias BEHAVIOR_EVENTS.BUTTON_PRESS BUTTON_PRESS; |
|---|
| 794 |
alias BEHAVIOR_EVENTS.BUTTON_STATE_CHANGED BUTTON_STATE_CHANGED; |
|---|
| 795 |
alias BEHAVIOR_EVENTS.EDIT_VALUE_CHANGING EDIT_VALUE_CHANGING; |
|---|
| 796 |
alias BEHAVIOR_EVENTS.EDIT_VALUE_CHANGED EDIT_VALUE_CHANGED; |
|---|
| 797 |
alias BEHAVIOR_EVENTS.SELECT_SELECTION_CHANGED SELECT_SELECTION_CHANGED; |
|---|
| 798 |
alias BEHAVIOR_EVENTS.SELECT_STATE_CHANGED SELECT_STATE_CHANGED; |
|---|
| 799 |
alias BEHAVIOR_EVENTS.POPUP_REQUEST POPUP_REQUEST; |
|---|
| 800 |
alias BEHAVIOR_EVENTS.POPUP_READY POPUP_READY; |
|---|
| 801 |
alias BEHAVIOR_EVENTS.POPUP_DISMISSED POPUP_DISMISSED; |
|---|
| 802 |
alias BEHAVIOR_EVENTS.MENU_ITEM_ACTIVE MENU_ITEM_ACTIVE; |
|---|
| 803 |
alias BEHAVIOR_EVENTS.MENU_ITEM_CLICK MENU_ITEM_CLICK; |
|---|
| 804 |
alias BEHAVIOR_EVENTS.CONTEXT_MENU_REQUEST CONTEXT_MENU_REQUEST; |
|---|
| 805 |
alias BEHAVIOR_EVENTS.VISIUAL_STATUS_CHANGED VISIUAL_STATUS_CHANGED; |
|---|
| 806 |
alias BEHAVIOR_EVENTS.HYPERLINK_CLICK HYPERLINK_CLICK; |
|---|
| 807 |
alias BEHAVIOR_EVENTS.TABLE_HEADER_CLICK TABLE_HEADER_CLICK; |
|---|
| 808 |
alias BEHAVIOR_EVENTS.TABLE_ROW_CLICK TABLE_ROW_CLICK; |
|---|
| 809 |
alias BEHAVIOR_EVENTS.TABLE_ROW_DBL_CLICK TABLE_ROW_DBL_CLICK; |
|---|
| 810 |
alias BEHAVIOR_EVENTS.ELEMENT_COLLAPSED ELEMENT_COLLAPSED; |
|---|
| 811 |
alias BEHAVIOR_EVENTS.ELEMENT_EXPANDED ELEMENT_EXPANDED; |
|---|
| 812 |
alias BEHAVIOR_EVENTS.ACTIVATE_CHILD ACTIVATE_CHILD; |
|---|
| 813 |
alias BEHAVIOR_EVENTS.DO_SWITCH_TAB DO_SWITCH_TAB; |
|---|
| 814 |
alias BEHAVIOR_EVENTS.INIT_DATA_VIEW INIT_DATA_VIEW; |
|---|
| 815 |
alias BEHAVIOR_EVENTS.ROWS_DATA_REQUEST ROWS_DATA_REQUEST; |
|---|
| 816 |
alias BEHAVIOR_EVENTS.UI_STATE_CHANGED UI_STATE_CHANGED; |
|---|
| 817 |
alias BEHAVIOR_EVENTS.FIRST_APPLICATION_EVENT_CODE FIRST_APPLICATION_EVENT_CODE; |
|---|
| 818 |
|
|---|
| 819 |
enum EVENT_REASON |
|---|
| 820 |
{ |
|---|
| 821 |
BY_MOUSE_CLICK = 0, |
|---|
| 822 |
BY_KEY_CLICK = 1, |
|---|
| 823 |
SYNTHESIZED = 2, // synthesized, programmatically generated. |
|---|
| 824 |
}; |
|---|
| 825 |
|
|---|
| 826 |
alias EVENT_REASON.BY_MOUSE_CLICK BY_MOUSE_CLICK; |
|---|
| 827 |
alias EVENT_REASON.BY_KEY_CLICK BY_KEY_CLICK; |
|---|
| 828 |
alias EVENT_REASON.SYNTHESIZED SYNTHESIZED; |
|---|
| 829 |
|
|---|
| 830 |
enum EDIT_CHANGED_REASON |
|---|
| 831 |
{ |
|---|
| 832 |
BY_INS_CHAR = 3, // single char insertion |
|---|
| 833 |
BY_INS_CHARS, // character range insertion, clipboard |
|---|
| 834 |
BY_DEL_CHAR, // single char deletion |
|---|
| 835 |
BY_DEL_CHARS, // character range deletion (selection) |
|---|
| 836 |
}; |
|---|
| 837 |
|
|---|
| 838 |
alias EDIT_CHANGED_REASON.BY_INS_CHAR BY_INS_CHAR; |
|---|
| 839 |
alias EDIT_CHANGED_REASON.BY_INS_CHARS BY_INS_CHARS; |
|---|
| 840 |
alias EDIT_CHANGED_REASON.BY_DEL_CHAR BY_DEL_CHAR; |
|---|
| 841 |
alias EDIT_CHANGED_REASON.BY_DEL_CHARS BY_DEL_CHARS; |
|---|
| 842 |
|
|---|
| 843 |
struct BEHAVIOR_EVENT_PARAMS |
|---|
| 844 |
{ |
|---|
| 845 |
UINT cmd; // BEHAVIOR_EVENTS |
|---|
| 846 |
HELEMENT heTarget; // target element handler |
|---|
| 847 |
HELEMENT he; // source element e.g. in SELECTION_CHANGED it is new selected <option>, in MENU_ITEM_CLICK it is menu item (LI) element |
|---|
| 848 |
UINT reason; // EVENT_REASON or EDIT_CHANGED_REASON - UI action causing change. |
|---|
| 849 |
// In case of custom event notifications this may be any |
|---|
| 850 |
// application specific value. |
|---|
| 851 |
}; |
|---|
| 852 |
|
|---|
| 853 |
// identifiers of methods currently supported by intrinsic behaviors, |
|---|
| 854 |
// see function HTMLayoutCallMethod |
|---|
| 855 |
|
|---|
| 856 |
enum BEHAVIOR_METHOD_IDENTIFIERS |
|---|
| 857 |
{ |
|---|
| 858 |
DO_CLICK = 0, |
|---|
| 859 |
GET_TEXT_VALUE = 1, |
|---|
| 860 |
SET_TEXT_VALUE, |
|---|
| 861 |
// p - TEXT_VALUE_PARAMS |
|---|
| 862 |
|
|---|
| 863 |
TEXT_EDIT_GET_SELECTION, |
|---|
| 864 |
// p - TEXT_EDIT_SELECTION_PARAMS |
|---|
| 865 |
|
|---|
| 866 |
TEXT_EDIT_SET_SELECTION, |
|---|
| 867 |
// p - TEXT_EDIT_SELECTION_PARAMS |
|---|
| 868 |
|
|---|
| 869 |
// Replace selection content or insert text at current caret position. |
|---|
| 870 |
// Replaced text will be selected. |
|---|
| 871 |
TEXT_EDIT_REPLACE_SELECTION, |
|---|
| 872 |
// p - TEXT_EDIT_REPLACE_SELECTION_PARAMS |
|---|
| 873 |
|
|---|
| 874 |
// Set value of type="vscrollbar"/"hscrollbar" |
|---|
| 875 |
SCROLL_BAR_GET_VALUE, |
|---|
| 876 |
SCROLL_BAR_SET_VALUE, |
|---|
| 877 |
|
|---|
| 878 |
// get current caret position, it returns rectangle that is relative to origin of the editing element. |
|---|
| 879 |
TEXT_EDIT_GET_CARET_POSITION, |
|---|
| 880 |
// p - TEXT_CARET_POSITION_PARAMS |
|---|
| 881 |
|
|---|
| 882 |
TEXT_EDIT_GET_SELECTION_TEXT, // p - TEXT_SELECTION_PARAMS, OutputStreamProc will receive stream of WCHARs |
|---|
| 883 |
TEXT_EDIT_GET_SELECTION_HTML, // p - TEXT_SELECTION_PARAMS, OutputStreamProc will receive stream of BYTEs - utf8 encoded html fragment. |
|---|
| 884 |
|
|---|
| 885 |
XCALL = 0xff, // p - XCALL_PARAMS |
|---|
| 886 |
|
|---|
| 887 |
FIRST_APPLICATION_METHOD_ID = 0x100 |
|---|
| 888 |
}; |
|---|
| 889 |
|
|---|
| 890 |
alias BEHAVIOR_METHOD_IDENTIFIERS.DO_CLICK DO_CLICK; |
|---|
| 891 |
alias BEHAVIOR_METHOD_IDENTIFIERS.GET_TEXT_VALUE GET_TEXT_VALUE; |
|---|
| 892 |
alias BEHAVIOR_METHOD_IDENTIFIERS.SET_TEXT_VALUE SET_TEXT_VALUE; |
|---|
| 893 |
alias BEHAVIOR_METHOD_IDENTIFIERS.TEXT_EDIT_GET_SELECTION TEXT_EDIT_GET_SELECTION; |
|---|
| 894 |
alias BEHAVIOR_METHOD_IDENTIFIERS.TEXT_EDIT_SET_SELECTION TEXT_EDIT_SET_SELECTION; |
|---|
| 895 |
alias BEHAVIOR_METHOD_IDENTIFIERS.TEXT_EDIT_REPLACE_SELECTION TEXT_EDIT_REPLACE_SELECTION; |
|---|
| 896 |
alias BEHAVIOR_METHOD_IDENTIFIERS.SCROLL_BAR_GET_VALUE SCROLL_BAR_GET_VALUE; |
|---|
| 897 |
alias BEHAVIOR_METHOD_IDENTIFIERS.SCROLL_BAR_SET_VALUE SCROLL_BAR_SET_VALUE; |
|---|
| 898 |
alias BEHAVIOR_METHOD_IDENTIFIERS.TEXT_EDIT_GET_CARET_POSITION TEXT_EDIT_GET_CARET_POSITION; |
|---|
| 899 |
alias BEHAVIOR_METHOD_IDENTIFIERS.TEXT_EDIT_GET_SELECTION_TEXT TEXT_EDIT_GET_SELECTION_TEXT; |
|---|
| 900 |
alias BEHAVIOR_METHOD_IDENTIFIERS.TEXT_EDIT_GET_SELECTION_HTML TEXT_EDIT_GET_SELECTION_HTML; |
|---|
| 901 |
alias BEHAVIOR_METHOD_IDENTIFIERS.XCALL XCALL; |
|---|
| 902 |
alias BEHAVIOR_METHOD_IDENTIFIERS.FIRST_APPLICATION_METHOD_ID FIRST_APPLICATION_METHOD_ID; |
|---|
| 903 |
|
|---|
| 904 |
struct METHOD_PARAMS |
|---|
| 905 |
{ |
|---|
| 906 |
UINT methodID; // see: #BEHAVIOR_METHOD_IDENTIFIERS |
|---|
| 907 |
}; |
|---|
| 908 |
|
|---|
| 909 |
alias METHOD_PARAMS HMethodParams; |
|---|
| 910 |
|
|---|
| 911 |
struct XCALL_PARAMS |
|---|
| 912 |
{ |
|---|
| 913 |
METHOD_PARAMS methodparams; |
|---|
| 914 |
LPCSTR method_name; |
|---|
| 915 |
UINT argc; |
|---|
| 916 |
JSON_VALUE *argv; |
|---|
| 917 |
JSON_VALUE retval; |
|---|
| 918 |
|
|---|
| 919 |
METHOD_PARAMS* opCast(){return &methodparams;} |
|---|
| 920 |
|
|---|
| 921 |
static XCALL_PARAMS* opCall(char[] name,JSON_VALUE[] params=null) |
|---|
| 922 |
{ |
|---|
| 923 |
auto r=new XCALL_PARAMS; |
|---|
| 924 |
r.methodparams.methodID = XCALL; |
|---|
| 925 |
r.method_name=toStringz(name); |
|---|
| 926 |
r.argv=params.ptr; |
|---|
| 927 |
r.argc=params.length; |
|---|
| 928 |
return r; |
|---|
| 929 |
} |
|---|
| 930 |
|
|---|
| 931 |
static XCALL_PARAMS* opCall(char[] name,JSON_VALUE *param=null) |
|---|
| 932 |
{ |
|---|
| 933 |
auto r=new XCALL_PARAMS; |
|---|
| 934 |
r.methodparams.methodID = XCALL; |
|---|
| 935 |
r.method_name=toStringz(name); |
|---|
| 936 |
r.argv=param; |
|---|
| 937 |
r.argc=1; |
|---|
| 938 |
return r; |
|---|
| 939 |
} |
|---|
| 940 |
}; |
|---|
| 941 |
|
|---|
| 942 |
alias XCALL_PARAMS HXcall; |
|---|
| 943 |
|
|---|
| 944 |
struct TEXT_VALUE_PARAMS |
|---|
| 945 |
{ |
|---|
| 946 |
METHOD_PARAMS methodparams; |
|---|
| 947 |
LPCWSTR text; |
|---|
| 948 |
UINT length; |
|---|
| 949 |
|
|---|
| 950 |
METHOD_PARAMS* opCast(){return &methodparams;} |
|---|
| 951 |
char[] toString(){if(length && text) return .toString(text[0..length]); else return null;} |
|---|
| 952 |
|
|---|
| 953 |
static TEXT_VALUE_PARAMS* opCall() |
|---|
| 954 |
{ |
|---|
| 955 |
auto r=new TEXT_VALUE_PARAMS; |
|---|
| 956 |
r.methodparams.methodID = GET_TEXT_VALUE; |
|---|
| 957 |
return r; |
|---|
| 958 |
} |
|---|
| 959 |
|
|---|
| 960 |
static TEXT_VALUE_PARAMS* opCall(char[] text) |
|---|
| 961 |
{ |
|---|
| 962 |
auto r=new TEXT_VALUE_PARAMS; |
|---|
| 963 |
r.methodparams.methodID = SET_TEXT_VALUE; |
|---|
| 964 |
if(text.length) |
|---|
| 965 |
{ |
|---|
| 966 |
auto str=toString16(text); |
|---|
| 967 |
r.text=str.ptr; |
|---|
| 968 |
r.length=str.length; |
|---|
| 969 |
} |
|---|
| 970 |
return r; |
|---|
| 971 |
} |
|---|
| 972 |
} |
|---|
| 973 |
|
|---|
| 974 |
alias TEXT_VALUE_PARAMS HTextValue; |
|---|
| 975 |
|
|---|
| 976 |
struct TEXT_EDIT_SELECTION_PARAMS |
|---|
| 977 |
{ |
|---|
| 978 |
METHOD_PARAMS methodparams; |
|---|
| 979 |
UINT selection_start; |
|---|
| 980 |
UINT selection_end; |
|---|
| 981 |
|
|---|
| 982 |
METHOD_PARAMS* opCast(){return &methodparams;} |
|---|
| 983 |
UINT start(){return selection_start;} |
|---|
| 984 |
UINT end(){return selection_end;} |
|---|
| 985 |
|
|---|
| 986 |
static TEXT_EDIT_SELECTION_PARAMS* opCall() |
|---|
| 987 |
{ |
|---|
| 988 |
auto r=new TEXT_EDIT_SELECTION_PARAMS; |
|---|
| 989 |
r.methodparams.methodID = TEXT_EDIT_GET_SELECTION; |
|---|
| 990 |
return r; |
|---|
| 991 |
} |
|---|
| 992 |
|
|---|
| 993 |
static TEXT_EDIT_SELECTION_PARAMS* opCall(uint start,uint end) |
|---|
| 994 |
{ |
|---|
| 995 |
auto r=new TEXT_EDIT_SELECTION_PARAMS; |
|---|
| 996 |
r.methodparams.methodID = TEXT_EDIT_SET_SELECTION; |
|---|
| 997 |
r.selection_start=start; |
|---|
| 998 |
r.selection_end=end; |
|---|
| 999 |
return r; |
|---|
| 1000 |
} |
|---|
| 1001 |
} |
|---|
| 1002 |
|
|---|
| 1003 |
alias TEXT_EDIT_SELECTION_PARAMS HTextEditSelection; |
|---|
| 1004 |
|
|---|
| 1005 |
struct TEXT_EDIT_REPLACE_SELECTION_PARAMS |
|---|
| 1006 |
{ |
|---|
| 1007 |
METHOD_PARAMS methodparams; |
|---|
| 1008 |
LPCWSTR text; |
|---|
| 1009 |
UINT text_length; |
|---|
| 1010 |
|
|---|
| 1011 |
METHOD_PARAMS* opCast(){return &methodparams;} |
|---|
| 1012 |
char[] toString(){if(text_length && text) return .toString(text[0..text_length]); else return null;} |
|---|
| 1013 |
|
|---|
| 1014 |
static TEXT_EDIT_REPLACE_SELECTION_PARAMS* opCall(char[] text) |
|---|
| 1015 |
{ |
|---|
| 1016 |
auto r=new TEXT_EDIT_REPLACE_SELECTION_PARAMS; |
|---|
| 1017 |
r.methodparams.methodID = TEXT_EDIT_REPLACE_SELECTION; |
|---|
| 1018 |
if(text.length) |
|---|
| 1019 |
{ |
|---|
| 1020 |
auto str=toString16(text); |
|---|
| 1021 |
r.text=str.ptr; |
|---|
| 1022 |
r.text_length=str.length; |
|---|
| 1023 |
} |
|---|
| 1024 |
return r; |
|---|
| 1025 |
} |
|---|
| 1026 |
}; |
|---|
| 1027 |
|
|---|
| 1028 |
alias TEXT_EDIT_REPLACE_SELECTION_PARAMS HTextEditReplaceSelection; |
|---|
| 1029 |
|
|---|
| 1030 |
struct TEXT_CARET_POSITION_PARAMS |
|---|
| 1031 |
{ |
|---|
| 1032 |
METHOD_PARAMS methodparams; |
|---|
| 1033 |
INT left; |
|---|
| 1034 |
INT top; |
|---|
| 1035 |
INT width; |
|---|
| 1036 |
INT height; |
|---|
| 1037 |
|
|---|
| 1038 |
METHOD_PARAMS* opCast(){return &methodparams;} |
|---|
| 1039 |
|
|---|
| 1040 |
static TEXT_CARET_POSITION_PARAMS* opCall() |
|---|
| 1041 |
{ |
|---|
| 1042 |
auto r=new TEXT_CARET_POSITION_PARAMS; |
|---|
| 1043 |
r.methodparams.methodID = TEXT_EDIT_GET_CARET_POSITION; |
|---|
| 1044 |
return r; |
|---|
| 1045 |
} |
|---|
| 1046 |
}; |
|---|
| 1047 |
|
|---|
| 1048 |
alias TEXT_CARET_POSITION_PARAMS HTextCaretPosition; |
|---|
| 1049 |
|
|---|
| 1050 |
struct TEXT_SELECTION_PARAMS |
|---|
| 1051 |
{ |
|---|
| 1052 |
METHOD_PARAMS methodparams; |
|---|
| 1053 |
OutputStreamProc outs; // output stream |
|---|
| 1054 |
|
|---|
| 1055 |
bool html; |
|---|
| 1056 |
char[] string; |
|---|
| 1057 |
wchar[] wstring; |
|---|
| 1058 |
|
|---|
| 1059 |
METHOD_PARAMS* opCast(){return &methodparams;} |
|---|
| 1060 |
char[] toString(){if(html) return .toString(wstring); else return string;} |
|---|
| 1061 |
|
|---|
| 1062 |
static TEXT_SELECTION_PARAMS* opCall(bool html) |
|---|
| 1063 |
{ |
|---|
| 1064 |
auto r=new TEXT_SELECTION_PARAMS; |
|---|
| 1065 |
r.html=html; |
|---|
| 1066 |
r.methodparams.methodID = html? TEXT_EDIT_GET_SELECTION_HTML:TEXT_EDIT_GET_SELECTION_TEXT; |
|---|
| 1067 |
r.outs=&output_stream_proc; |
|---|
| 1068 |
return r; |
|---|
| 1069 |
} |
|---|
| 1070 |
|
|---|
| 1071 |
extern(Windows) static BOOL output_stream_proc(TEXT_SELECTION_PARAMS* params, UINT data) |
|---|
| 1072 |
{ |
|---|
| 1073 |
if(params.html) params.wstring~=cast(wchar)data; |
|---|
| 1074 |
else params.string~=cast(char)data; |
|---|
| 1075 |
return 1; |
|---|
| 1076 |
} |
|---|
| 1077 |
} |
|---|
| 1078 |
|
|---|
| 1079 |
alias TEXT_SELECTION_PARAMS HTextSelection; |
|---|
| 1080 |
|
|---|
| 1081 |
alias BOOL function(TEXT_SELECTION_PARAMS* params, UINT data /* BYTE or WCHAR */ ) OutputStreamProc; |
|---|
| 1082 |
|
|---|
| 1083 |
|
|---|
| 1084 |
|
|---|
| 1085 |
struct SCROLLBAR_VALUE_PARAMS |
|---|
| 1086 |
{ |
|---|
| 1087 |
METHOD_PARAMS methodparams; |
|---|
| 1088 |
INT value; |
|---|
| 1089 |
INT min_value; |
|---|
| 1090 |
INT max_value; |
|---|
| 1091 |
INT page_value; // page increment |
|---|
| 1092 |
INT step_value; // step increment (arrow button click) |
|---|
| 1093 |
|
|---|
| 1094 |
METHOD_PARAMS* opCast(){return &methodparams;} |
|---|
| 1095 |
INT pos(){return value;} |
|---|
| 1096 |
INT min(){return min_value;} |
|---|
| 1097 |
INT max(){return max_value;} |
|---|
| 1098 |
INT page(){return page_value;} |
|---|
| 1099 |
INT step(){return step_value;} |
|---|
| 1100 |
|
|---|
| 1101 |
static SCROLLBAR_VALUE_PARAMS* opCall() |
|---|
| 1102 |
{ |
|---|
| 1103 |
auto r=new SCROLLBAR_VALUE_PARAMS; |
|---|
| 1104 |
r.methodparams.methodID = SCROLL_BAR_GET_VALUE; |
|---|
| 1105 |
return r; |
|---|
| 1106 |
} |
|---|
| 1107 |
|
|---|
| 1108 |
static SCROLLBAR_VALUE_PARAMS* opCall(INT value,INT min=0,INT max=0,INT page=0,INT step=0) |
|---|
| 1109 |
{ |
|---|
| 1110 |
auto r=new SCROLLBAR_VALUE_PARAMS; |
|---|
| 1111 |
r.methodparams.methodID = SCROLL_BAR_SET_VALUE; |
|---|
| 1112 |
r.value=value; |
|---|
| 1113 |
r.min_value=min; |
|---|
| 1114 |
r.max_value=max; |
|---|
| 1115 |
r.page_value=page; |
|---|
| 1116 |
r.step_value=step; |
|---|
| 1117 |
return r; |
|---|
| 1118 |
} |
|---|
| 1119 |
}; |
|---|
| 1120 |
|
|---|
| 1121 |
alias SCROLLBAR_VALUE_PARAMS HScrollbarValue; |
|---|
| 1122 |
|
|---|
| 1123 |
|
|---|
| 1124 |
// see HTMLayoutRequestElementData |
|---|
| 1125 |
|
|---|
| 1126 |
struct DATA_ARRIVED_PARAMS |
|---|
| 1127 |
{ |
|---|
| 1128 |
HELEMENT initiator; // element intiator of HTMLayoutRequestElementData request, |
|---|
| 1129 |
LPCBYTE data; // data buffer |
|---|
| 1130 |
UINT dataSize; // size of data |
|---|
| 1131 |
UINT dataType; // data type passed "as is" from HTMLayoutRequestElementData |
|---|
| 1132 |
UINT status; // status = 0 (dataSize == 0) - unknown error. |
|---|
| 1133 |
// status = 100..505 - http response status, Note: 200 - OK! |
|---|
| 1134 |
// status > 12000 - wininet error code, see ERROR_INTERNET_*** in wininet.h |
|---|
| 1135 |
LPCWSTR uri; // requested url |
|---|
| 1136 |
}; |
|---|
| 1137 |
|
|---|
| 1138 |
|
|---|
| 1139 |
// request to data source to fill the data. |
|---|
| 1140 |
// used by virtual-grid and virtual list |
|---|
| 1141 |
struct DATA_ROWS_PARAMS |
|---|
| 1142 |
{ |
|---|
| 1143 |
UINT totalRecords; |
|---|
| 1144 |
UINT firstRecord; // first visible record - 0..totalRecords |
|---|
| 1145 |
|
|---|
| 1146 |
UINT firstRowIdx; // idx of the first row in the table, |
|---|
| 1147 |
UINT lastRowIdx; // idx of the last row in the table. |
|---|
| 1148 |
// content of these rows has to be updated. |
|---|
| 1149 |
}; |
|---|
| 1150 |
|
|---|
| 1151 |
////////////////////////////////////////////////////////////////////////////// notifications |
|---|
| 1152 |
|
|---|
| 1153 |
const WM_BEHAVIOR_NOTIFY =(WM_USER + 100); |
|---|
| 1154 |
|
|---|
| 1155 |
//--------------------------------------------------------------------- |
|---|
| 1156 |
// external behaviors, implemented in /include/behaviors/*.cpp modules |
|---|
| 1157 |
//--------------------------------------------------------------------- |
|---|
| 1158 |
|
|---|
| 1159 |
const MAX_URL_LENGTH =2048; |
|---|
| 1160 |
|
|---|
| 1161 |
// command behavior notification (behavior_command.cpp) |
|---|
| 1162 |
const HLN_COMMAND_CLICK =(1); |
|---|
| 1163 |
// command behavior is using this to send its "clicks" |
|---|
| 1164 |
struct NMHL_COMMAND_CLICK |
|---|
| 1165 |
{ |
|---|
| 1166 |
NMHDR hdr; |
|---|
| 1167 |
WCHAR[MAX_URL_LENGTH] szElementID=void; |
|---|
| 1168 |
HELEMENT he; |
|---|
| 1169 |
}; |
|---|
| 1170 |
|
|---|
| 1171 |
// hyperlink behavior (behavior_hyperlink.cpp) |
|---|
| 1172 |
const HLN_HYPERLINK =(2); |
|---|
| 1173 |
// hyperlink behavior is using this to send its "clicks" state |
|---|
| 1174 |
|
|---|
| 1175 |
struct NMHL_HYPERLINK |
|---|
| 1176 |
{ |
|---|
| 1177 |
enum type { ENTER = 1, LEAVE, CLICK }; |
|---|
| 1178 |
|
|---|
| 1179 |
NMHDR hdr; |
|---|
| 1180 |
type action; |
|---|
| 1181 |
WCHAR[MAX_URL_LENGTH] szHREF=void; |
|---|
| 1182 |
WCHAR[MAX_URL_LENGTH] szTarget=void; |
|---|
| 1183 |
HELEMENT he; |
|---|
| 1184 |
}; |
|---|
| 1185 |
|
|---|
| 1186 |
////////////////////////////////////////////////////////////////////////////// json |
|---|
| 1187 |
|
|---|
| 1188 |
class HJson |
|---|
| 1189 |
{ |
|---|
| 1190 |
~this(){mValue.release;} |
|---|
| 1191 |
|
|---|
| 1192 |
JSON_VALUE* handle(){return mValue;} |
|---|
| 1193 |
JSON_VALUE* opCast(){return mValue;} |
|---|
| 1194 |
|
|---|
| 1195 |
extern(D) char[] toString(){return mValue.toString;} //todo: remove this extern(D) |
|---|
| 1196 |
//JSON_VALUE[] toArray(){return mValue.toArray;} |
|---|
| 1197 |
HJson[] toArray() |
|---|
| 1198 |
{ |
|---|
| 1199 |
auto a=mValue.toArray; |
|---|
| 1200 |
HJson[] ret; |
|---|
| 1201 |
ret.length=a.length; |
|---|
| 1202 |
foreach(i,v;a) ret[i]=HJson(&a[i]); |
|---|
| 1203 |
return ret; |
|---|
| 1204 |
} |
|---|
| 1205 |
double toFloat(){return mValue.toFloat;} |
|---|
| 1206 |
long toInt(){return mValue.toInt;} |
|---|
| 1207 |
bool toBool(){return mValue.toBool;} |
|---|
| 1208 |
char[] typename(){return mValue.typename;} |
|---|
| 1209 |
int type(){return mValue.v_type;} |
|---|
| 1210 |
|
|---|
| 1211 |
static HJson parse(char[] text,uint mode=0){return HJson(JSON_VALUE.parse(text,mode));} |
|---|
| 1212 |
static HJson opCall(){return HJson(JSON_VALUE());} |
|---|
| 1213 |
static HJson opCall(ubyte[] v){return HJson(JSON_VALUE(v));} |
|---|
| 1214 |
static HJson opCall(char[] v){return HJson(JSON_VALUE(v));} |
|---|
| 1215 |
//static HJson opCall(JSON_VALUE[] v){return HJson(JSON_VALUE(v));} |
|---|
| 1216 |
static HJson opCall(HJson[] v) |
|---|
| 1217 |
{ |
|---|
| 1218 |
JSON_VALUE[] vals; |
|---|
| 1219 |
vals.length=v.length; |
|---|
| 1220 |
foreach(i,vv;v) vals[i]=*vv.handle; |
|---|
| 1221 |
return HJson(JSON_VALUE(vals)); |
|---|
| 1222 |
} |
|---|
| 1223 |
static HJson opCall(bool v){return HJson(JSON_VALUE(v));} |
|---|
| 1224 |
static HJson opCall(double v){return HJson(JSON_VALUE(v));} |
|---|
| 1225 |
static HJson opCall(__int64 v){return HJson(JSON_VALUE(v));} |
|---|
| 1226 |
static HJson fromAA(K,V)(V[K] v){return HJson(JSON_VALUE.fromAA(v));} |
|---|
| 1227 |
static HJson opCall(JSON_VALUE* value){if(value is null) return null; else return new HJson(value);} |
|---|
| 1228 |
|
|---|
| 1229 |
protected: |
|---|
| 1230 |
this(JSON_VALUE* value){if(value is null) throw new Exception("Invalid JSON_VALUE!"); mValue=value;} |
|---|
| 1231 |
|
|---|
| 1232 |
JSON_VALUE* mValue; |
|---|
| 1233 |
} |
|---|
| 1234 |
|
|---|
| 1235 |
enum VALUETYPE |
|---|
| 1236 |
{ |
|---|
| 1237 |
V_UNDEFINED = 0, ///< empty |
|---|
| 1238 |
V_BOOL = 1, ///< bool |
|---|
| 1239 |
V_INT = 2, ///< int |
|---|
| 1240 |
V_REAL = 3, ///< double |
|---|
| 1241 |
V_STRING = 4, ///< string of wchar_t |
|---|
| 1242 |
V_ARRAY = 5, ///< array of value elements |
|---|
| 1243 |
V_MAP = 6, ///< map of name/value pairs - simple map |
|---|
| 1244 |
V_BYTES = 7 ///< vector of bytes, a.k.a. blob |
|---|
| 1245 |
}; |
|---|
| 1246 |
|
|---|
| 1247 |
alias VALUETYPE.V_UNDEFINED V_UNDEFINED; |
|---|
| 1248 |
alias VALUETYPE.V_BOOL V_BOOL; |
|---|
| 1249 |
alias VALUETYPE.V_INT V_INT; |
|---|
| 1250 |
alias VALUETYPE.V_REAL V_REAL; |
|---|
| 1251 |
alias VALUETYPE.V_STRING V_STRING; |
|---|
| 1252 |
alias VALUETYPE.V_ARRAY V_ARRAY; |
|---|
| 1253 |
alias VALUETYPE.V_MAP V_MAP; |
|---|
| 1254 |
alias VALUETYPE.V_BYTES V_BYTES; |
|---|
| 1255 |
|
|---|
| 1256 |
private extern(C) alias void function(void*) wiper_t; |
|---|
| 1257 |
|
|---|
| 1258 |
align(4) struct HJsonString |
|---|
| 1259 |
{ |
|---|
| 1260 |
int refcount; |
|---|
| 1261 |
size_t length; |
|---|
| 1262 |
wiper_t wipe; |
|---|
| 1263 |
} |
|---|
| 1264 |
|
|---|
| 1265 |
align(4) struct HJsonArray |
|---|
| 1266 |
{ |
|---|
| 1267 |
int refcount; |
|---|
| 1268 |
size_t length; |
|---|
| 1269 |
wiper_t wipe; |
|---|
| 1270 |
} |
|---|
| 1271 |
|
|---|
| 1272 |
align(4) struct HJsonMap |
|---|
| 1273 |
{ |
|---|
| 1274 |
JSON_VALUE key; |
|---|
| 1275 |
JSON_VALUE val; |
|---|
| 1276 |
HJsonMap* next; |
|---|
| 1277 |
wiper_t wipe; |
|---|
| 1278 |
int refcount; |
|---|
| 1279 |
} |
|---|
| 1280 |
|
|---|
| 1281 |
align(4) struct HJsonBytes |
|---|
| 1282 |
{ |
|---|
| 1283 |
int refcount; |
|---|
| 1284 |
ubyte* data; |
|---|
| 1285 |
size_t length; // number of elements used in the buffer |
|---|
| 1286 |
wiper_t wipe; |
|---|
| 1287 |
} |
|---|
| 1288 |
|
|---|
| 1289 |
align(4) struct JSON_VALUE |
|---|
| 1290 |
{ |
|---|
| 1291 |
VALUETYPE v_type; |
|---|
| 1292 |
union data_slot |
|---|
| 1293 |
{ |
|---|
| 1294 |
int i_val; |
|---|
| 1295 |
double r_val; |
|---|
| 1296 |
__int64 l_val; |
|---|
| 1297 |
HJsonString* s_val; |
|---|
| 1298 |
HJsonArray* a_val; // array data |
|---|
| 1299 |
HJsonMap* m_val; // simple map of name/value pairs. |
|---|
| 1300 |
HJsonBytes* b_val; // bytes data |
|---|
| 1301 |
} |
|---|
| 1302 |
data_slot data; |
|---|
| 1303 |
|
|---|
| 1304 |
char[] toString() |
|---|
| 1305 |
{ |
|---|
| 1306 |
if(v_type==V_STRING) |
|---|
| 1307 |
{ |
|---|
| 1308 |
auto str=cast(wchar_t*)(data.s_val+1); |
|---|
| 1309 |
//todo: is this right??? |
|---|
| 1310 |
if(data.s_val.length && str[data.s_val.length-1]==0) return .toString(str[0..data.s_val.length-1]); |
|---|
| 1311 |
return .toString(str[0..data.s_val.length]); |
|---|
| 1312 |
} |
|---|
| 1313 |
else if(v_type==V_BYTES) return (cast(char*)(data.b_val+1))[0..data.b_val.length]; |
|---|
| 1314 |
else if(v_type==V_UNDEFINED) |
|---|
| 1315 |
{ |
|---|
| 1316 |
if(data.l_val!=0) return Int.toString(data.l_val); |
|---|
| 1317 |
else return "undefined"; |
|---|
| 1318 |
} |
|---|
| 1319 |
else if(v_type==V_INT) return Int.toString(data.i_val); |
|---|
| 1320 |
else if(v_type==V_BOOL) return data.i_val?"true":"false"; |
|---|
| 1321 |
else if(v_type==V_REAL) return Float.toString(data.r_val); |
|---|
| 1322 |
else throw new Exception("Don't know how to convert "~typename~" to string"); |
|---|
| 1323 |
} |
|---|
| 1324 |
|
|---|
| 1325 |
JSON_VALUE[] toArray() |
|---|
| 1326 |
{ |
|---|
| 1327 |
if(v_type==V_ARRAY) return ((cast(JSON_VALUE*)(data.a_val+1))[0..data.a_val.length]); |
|---|
| 1328 |
else throw new Exception("Don't know how to convert "~typename~" to string"); |
|---|
| 1329 |
} |
|---|
| 1330 |
|
|---|
| 1331 |
double toFloat() |
|---|
| 1332 |
{ |
|---|
| 1333 |
if(v_type==V_REAL) return data.r_val; |
|---|
| 1334 |
else if(v_type==V_UNDEFINED && data.l_val!=0) return data.l_val; |
|---|
| 1335 |
else if(v_type==V_INT || v_type==V_BOOL) return data.i_val; |
|---|
| 1336 |
else if(v_type==V_STRING) return Float.toFloat(toString); |
|---|
| 1337 |
else return double.nan;//throw new Exception("Don't know how to convert "~typename~" to float"); |
|---|
| 1338 |
} |
|---|
| 1339 |
|
|---|
| 1340 |
long toInt() |
|---|
| 1341 |
{ |
|---|
| 1342 |
if(v_type==V_UNDEFINED && data.l_val!=0) return data.l_val; |
|---|
| 1343 |
else if(v_type==V_INT || v_type==V_BOOL) return data.i_val; |
|---|
| 1344 |
else if(v_type==V_REAL) return cast(long)data.r_val; |
|---|
| 1345 |
else if(v_type==V_STRING) return Int.toLong(toString); |
|---|
| 1346 |
else throw new Exception("Don't know how to convert "~typename~" to integer"); |
|---|
| 1347 |
} |
|---|
| 1348 |
|
|---|
| 1349 |
bool toBool() |
|---|
| 1350 |
{ |
|---|
| 1351 |
if(v_type==V_UNDEFINED) |
|---|
| 1352 |
{ |
|---|
| 1353 |
if(data.l_val!=0) return cast(bool)data.l_val; |
|---|
| 1354 |
else return false; |
|---|
| 1355 |
} |
|---|
| 1356 |
else if(v_type==V_INT || v_type==V_BOOL) return cast(bool)data.i_val; |
|---|
| 1357 |
else if(v_type==V_REAL) return cast(bool)data.r_val; |
|---|
| 1358 |
else if(v_type==V_STRING) return data.s_val.length>0; |
|---|
| 1359 |
else if(v_type==V_BYTES) return data.b_val.length>0; |
|---|
| 1360 |
else throw new Exception("Don't know how to convert "~typename~" to boolean"); |
|---|
| 1361 |
} |
|---|
| 1362 |
|
|---|
| 1363 |
char[] typename() |
|---|
| 1364 |
{ |
|---|
| 1365 |
if(v_type==V_UNDEFINED) |
|---|
| 1366 |
{ |
|---|
| 1367 |
if(data.l_val!=0) return "integer"; |
|---|
| 1368 |
else return "undefined"; |
|---|
| 1369 |
} |
|---|
| 1370 |
else if(v_type==V_BOOL) return "bool"; |
|---|
| 1371 |
else if(v_type==V_INT) return "integer"; |
|---|
| 1372 |
else if(v_type==V_REAL) return "real"; |
|---|
| 1373 |
else if(v_type==V_STRING) return "string"; |
|---|
| 1374 |
else if(v_type==V_ARRAY) return "array"; |
|---|
| 1375 |
else if(v_type==V_MAP) return "map"; |
|---|
| 1376 |
else if(v_type==V_BYTES) return "bytes"; |
|---|
| 1377 |
else return null; |
|---|
| 1378 |
} |
|---|
| 1379 |
|
|---|
| 1380 |
static JSON_VALUE* parse(char[] text,uint mode=0) |
|---|
| 1381 |
{ |
|---|
| 1382 |
auto value=new JSON_VALUE; |
|---|
| 1383 |
auto str16=toString16(text); |
|---|
| 1384 |
if(HTMLayoutParseValue(str16.ptr,str16.length,mode,value)==0) |
|---|
| 1385 |
{ |
|---|
| 1386 |
delete value; |
|---|
| 1387 |
return null; |
|---|
| 1388 |
} |
|---|
| 1389 |
return value; |
|---|
| 1390 |
} |
|---|
| 1391 |
|
|---|
| 1392 |
static JSON_VALUE* opCall() |
|---|
| 1393 |
{ |
|---|
| 1394 |
auto value=new JSON_VALUE; |
|---|
| 1395 |
value.v_type=V_UNDEFINED; |
|---|
| 1396 |
value.data.l_val=0; |
|---|
| 1397 |
return value; |
|---|
| 1398 |
} |
|---|
| 1399 |
|
|---|
| 1400 |
static JSON_VALUE* opCall(ubyte[] v) |
|---|
| 1401 |
{ |
|---|
| 1402 |
auto value=new JSON_VALUE; |
|---|
| 1403 |
HJsonBytes* r = cast(HJsonBytes*)malloc(HJsonBytes.sizeof + v.length); |
|---|
| 1404 |
r.refcount = 1; |
|---|
| 1405 |
r.length = v.length; |
|---|
| 1406 |
r.wipe = &free; |
|---|
| 1407 |
r.data = cast(ubyte*)(r+1); |
|---|
| 1408 |
value.v_type=V_BYTES; |
|---|
| 1409 |
value.data.b_val=r; |
|---|
| 1410 |
return value; |
|---|
| 1411 |
} |
|---|
| 1412 |
|
|---|
| 1413 |
static JSON_VALUE* opCall(char[] v) |
|---|
| 1414 |
{ |
|---|
| 1415 |
auto value=new JSON_VALUE; |
|---|
| 1416 |
auto str16=toString16(v); |
|---|
| 1417 |
HJsonString* r = cast(HJsonString*)malloc(HJsonString.sizeof + str16.length*wchar_t.sizeof); |
|---|
| 1418 |
r.refcount = 1; |
|---|
| 1419 |
r.length = str16.length; |
|---|
| 1420 |
r.wipe = &free; |
|---|
| 1421 |
wcsncpy(cast(wchar_t*)(r + 1),str16.ptr,str16.length); |
|---|
| 1422 |
value.v_type=V_STRING; |
|---|
| 1423 |
value.data.s_val=r; |
|---|
| 1424 |
return value; |
|---|
| 1425 |
} |
|---|
| 1426 |
|
|---|
| 1427 |
static JSON_VALUE* opCall(JSON_VALUE[] v) |
|---|
| 1428 |
{ |
|---|
| 1429 |
auto value=new JSON_VALUE; |
|---|
| 1430 |
HJsonArray* r = cast(HJsonArray*)malloc(HJsonArray.sizeof + v.length*JSON_VALUE.sizeof); |
|---|
| 1431 |
r.refcount = 1; |
|---|
| 1432 |
r.length = v.length; |
|---|
| 1433 |
r.wipe = &free; |
|---|
| 1434 |
auto els = cast(JSON_VALUE*)(r+1); |
|---|
| 1435 |
foreach(i,j;v) els[i]=j; |
|---|
| 1436 |
value.data.a_val=r; |
|---|
| 1437 |
value.v_type=V_ARRAY; |
|---|
| 1438 |
return value; |
|---|
| 1439 |
} |
|---|
| 1440 |
|
|---|
| 1441 |
static JSON_VALUE* fromAA(K,V)(V[K] v) |
|---|
| 1442 |
{ |
|---|
| 1443 |
auto value=new JSON_VALUE; |
|---|
| 1444 |
static if((is(K : char[]) || is(K : int) || is(K : double) || is(K : __int64) || is(K : JSON_VALUE[])) && |
|---|
| 1445 |
(is(V : char[]) || is(V : int) || is(V : double) || is(V : __int64) || is(V : JSON_VALUE[]))) |
|---|
| 1446 |
{ |
|---|
| 1447 |
value.v_type=V_MAP; |
|---|
| 1448 |
} |
|---|
| 1449 |
return value; |
|---|
| 1450 |
} |
|---|
| 1451 |
|
|---|
| 1452 |
static JSON_VALUE* opCall(bool v) |
|---|
| 1453 |
{ |
|---|
| 1454 |
auto value=new JSON_VALUE; |
|---|
| 1455 |
value.v_type=V_BOOL; |
|---|
| 1456 |
value.data.i_val=v; |
|---|
| 1457 |
return value; |
|---|
| 1458 |
} |
|---|
| 1459 |
|
|---|
| 1460 |
static JSON_VALUE* opCall(double v) |
|---|
| 1461 |
{ |
|---|
| 1462 |
auto value=new JSON_VALUE; |
|---|
| 1463 |
value.v_type=V_REAL; |
|---|
| 1464 |
value.data.r_val=v; |
|---|
| 1465 |
return value; |
|---|
| 1466 |
} |
|---|
| 1467 |
|
|---|
| 1468 |
static JSON_VALUE* opCall(__int64 v) |
|---|
| 1469 |
{ |
|---|
| 1470 |
auto value=new JSON_VALUE; |
|---|
| 1471 |
if(v<int.min || v>int.max) |
|---|
| 1472 |
{ |
|---|
| 1473 |
value.v_type=V_UNDEFINED; |
|---|
| 1474 |
value.data.l_val=v; |
|---|
| 1475 |
} |
|---|
| 1476 |
else |
|---|
| 1477 |
{ |
|---|
| 1478 |
value.v_type=V_INT; |
|---|
| 1479 |
value.data.i_val=v; |
|---|
| 1480 |
} |
|---|
| 1481 |
return value; |
|---|
| 1482 |
} |
|---|
| 1483 |
|
|---|
| 1484 |
void release() |
|---|
| 1485 |
{ |
|---|
| 1486 |
if(v_type==V_STRING) |
|---|
| 1487 |
{ |
|---|
| 1488 |
if(--data.s_val.refcount == 0) data.s_val.wipe(data.s_val); |
|---|
| 1489 |
} |
|---|
| 1490 |
else if(v_type==V_BYTES) |
|---|
| 1491 |
{ |
|---|
| 1492 |
if(--data.b_val.refcount == 0) data.b_val.wipe(data.b_val); |
|---|
| 1493 |
} |
|---|
| 1494 |
else if(v_type==V_ARRAY) |
|---|
| 1495 |
{ |
|---|
| 1496 |
if(--data.a_val.refcount == 0) |
|---|
| 1497 |
{ |
|---|
| 1498 |
auto els = cast(JSON_VALUE*)(data.a_val+1); |
|---|
| 1499 |
for(size_t i = 0;i<data.a_val.length;++i) els[i].release(); |
|---|
| 1500 |
data.a_val.wipe(data.a_val); |
|---|
| 1501 |
} |
|---|
| 1502 |
} |
|---|
| 1503 |
else if(v_type==V_MAP) |
|---|
| 1504 |
{ |
|---|
| 1505 |
if (--data.m_val.refcount == 0) |
|---|
| 1506 |
{ |
|---|
| 1507 |
uint len; |
|---|
| 1508 |
uint size; |
|---|
| 1509 |
HJsonMap*[] map; |
|---|
| 1510 |
auto a=data.m_val; |
|---|
| 1511 |
while(a) |
|---|
| 1512 |
{ |
|---|
| 1513 |
if(len==size) map.length=size=size+5; |
|---|
| 1514 |
map[len++]=a; |
|---|
| 1515 |
a=a.next; |
|---|
| 1516 |
} |
|---|
| 1517 |
for(--len;len>=0;--len) map[len].wipe(map[len]); |
|---|
| 1518 |
} |
|---|
| 1519 |
} |
|---|
| 1520 |
data.l_val=0; v_type=V_UNDEFINED; |
|---|
| 1521 |
} |
|---|
| 1522 |
} |
|---|
| 1523 |
|
|---|
| 1524 |
alias long __int64; |
|---|
| 1525 |
|
|---|
| 1526 |
/*struct JSON_VALUE |
|---|
| 1527 |
{ |
|---|
| 1528 |
VALUETYPE v_type; |
|---|
| 1529 |
union data |
|---|
| 1530 |
{ |
|---|
| 1531 |
int i_val; |
|---|
| 1532 |
double r_val; |
|---|
| 1533 |
__int64 l_val; |
|---|
| 1534 |
void* s_val; |
|---|
| 1535 |
void* a_val; // array data |
|---|
| 1536 |
void* m_val; // simple map of name/value pairs. |
|---|
| 1537 |
void* b_val; // bytes_data. |
|---|
| 1538 |
} |
|---|
| 1539 |
}*/ |
|---|
| 1540 |
|
|---|
| 1541 |
////////////////////////////////////////////////////////////////////////////// dom |
|---|
| 1542 |
|
|---|
| 1543 |
alias int HLDOM_RESULT; |
|---|
| 1544 |
alias UINT* LPUINT; |
|---|
| 1545 |
alias BYTE* LPCBYTE; |
|---|
| 1546 |
//alias UINT* UINT_PTR; |
|---|
| 1547 |
//alias INT* INT_PTR; |
|---|
| 1548 |
|
|---|
| 1549 |
const HLDOM_OK =0; |
|---|
| 1550 |
const HLDOM_INVALID_HWND =1 ; |
|---|
| 1551 |
const HLDOM_INVALID_HANDLE =2; |
|---|
| 1552 |
const HLDOM_PASSIVE_HANDLE =3; |
|---|
| 1553 |
const HLDOM_INVALID_PARAMETER =4; |
|---|
| 1554 |
const HLDOM_OPERATION_FAILED =5; |
|---|
| 1555 |
const HLDOM_OK_NOT_HANDLED =(-1); |
|---|
| 1556 |
|
|---|
| 1557 |
alias LPVOID HELEMENT; |
|---|
| 1558 |
|
|---|
| 1559 |
/**DOM range handle.*/ |
|---|
| 1560 |
alias LPVOID HRANGE; |
|---|
| 1561 |
struct HPOSITION { HELEMENT he; INT pos; } |
|---|
| 1562 |
|
|---|
| 1563 |
enum ELEMENT_AREAS |
|---|
| 1564 |
{ |
|---|
| 1565 |
ROOT_RELATIVE = 0x01, // - or this flag if you want to get HTMLayout window relative coordinates, |
|---|
| 1566 |
// otherwise it will use nearest windowed container e.g. popup window. |
|---|
| 1567 |
SELF_RELATIVE = 0x02, // - "or" this flag if you want to get coordinates relative to the origin |
|---|
| 1568 |
// of element iself. |
|---|
| 1569 |
CONTAINER_RELATIVE = 0x03, // - position inside immediate container. |
|---|
| 1570 |
|
|---|
| 1571 |
CONTENT_BOX = 0x00, // content (inner) box |
|---|
| 1572 |
PADDING_BOX = 0x10, // content + paddings |
|---|
| 1573 |
BORDER_BOX = 0x20, // content + paddings + border |
|---|
| 1574 |
MARGIN_BOX = 0x30, // content + paddings + border + margins |
|---|
| 1575 |
|
|---|
| 1576 |
BACK_IMAGE_AREA = 0x40, // relative to content origin - location of background image (if it set no-repeat) |
|---|
| 1577 |
FORE_IMAGE_AREA = 0x50, // relative to content origin - location of foreground image (if it set no-repeat) |
|---|
| 1578 |
|
|---|
| 1579 |
SCROLLABLE_AREA = 0x60, // scroll_area - scrollable area in content box |
|---|
| 1580 |
|
|---|
| 1581 |
}; |
|---|
| 1582 |
|
|---|
| 1583 |
alias ELEMENT_AREAS.ROOT_RELATIVE ROOT_RELATIVE; |
|---|
| 1584 |
alias ELEMENT_AREAS.SELF_RELATIVE SELF_RELATIVE; |
|---|
| 1585 |
alias ELEMENT_AREAS.CONTAINER_RELATIVE CONTAINER_RELATIVE; |
|---|
| 1586 |
alias ELEMENT_AREAS.CONTENT_BOX CONTENT_BOX; |
|---|
| 1587 |
alias ELEMENT_AREAS.PADDING_BOX PADDING_BOX; |
|---|
| 1588 |
alias ELEMENT_AREAS.BORDER_BOX BORDER_BOX; |
|---|
| 1589 |
alias ELEMENT_AREAS.MARGIN_BOX MARGIN_BOX; |
|---|
| 1590 |
alias ELEMENT_AREAS.BACK_IMAGE_AREA BACK_IMAGE_AREA; |
|---|
| 1591 |
alias ELEMENT_AREAS.FORE_IMAGE_AREA FORE_IMAGE_AREA; |
|---|
| 1592 |
alias ELEMENT_AREAS.SCROLLABLE_AREA SCROLLABLE_AREA; |
|---|
| 1593 |
|
|---|
| 1594 |
enum UPDATE_ELEMENT_FLAGS |
|---|
| 1595 |
{ |
|---|
| 1596 |
RESET_STYLE_THIS = 0x20, // reset styles - this may require if you have styles dependent from attributes, |
|---|
| 1597 |
RESET_STYLE_DEEP = 0x10, // use these flags after SetAttribute then. RESET_STYLE_THIS is faster than RESET_STYLE_DEEP. |
|---|
| 1598 |
|
|---|
| 1599 |
MEASURE_INPLACE = 0x0001, // use this flag if you do not expect any dimensional changes - this is faster than REMEASURE |
|---|
| 1600 |
MEASURE_DEEP = 0x0002, // use this flag if changes of some attributes/content may cause change of dimensions of the element |
|---|
| 1601 |
|
|---|
| 1602 |
REDRAW_NOW = 0x8000, // invoke UpdateWindow function after applying changes |
|---|
| 1603 |
}; |
|---|
| 1604 |
|
|---|
| 1605 |
alias UPDATE_ELEMENT_FLAGS.RESET_STYLE_THIS RESET_STYLE_THIS; |
|---|
| 1606 |
alias UPDATE_ELEMENT_FLAGS.RESET_STYLE_DEEP RESET_STYLE_DEEP; |
|---|
| 1607 |
alias UPDATE_ELEMENT_FLAGS.MEASURE_INPLACE MEASURE_INPLACE; |
|---|
| 1608 |
alias UPDATE_ELEMENT_FLAGS.MEASURE_DEEP MEASURE_DEEP; |
|---|
| 1609 |
alias UPDATE_ELEMENT_FLAGS.REDRAW_NOW REDRAW_NOW; |
|---|
| 1610 |
|
|---|
| 1611 |
|
|---|
| 1612 |
const SIH_REPLACE_CONTENT =0; |
|---|
| 1613 |
const SIH_INSERT_AT_START =1; |
|---|
| 1614 |
const SIH_APPEND_AFTER_LAST =2; |
|---|
| 1615 |
|
|---|
| 1616 |
const SOH_REPLACE =3; |
|---|
| 1617 |
const SOH_INSERT_BEFORE =4; |
|---|
| 1618 |
const SOH_INSERT_AFTER =5; |
|---|
| 1619 |
|
|---|
| 1620 |
enum ELEMENT_STATE_BITS |
|---|
| 1621 |
{ |
|---|
| 1622 |
STATE_LINK = 0x0001, // selector :link, any element having href attribute |
|---|
| 1623 |
STATE_HOVER = 0x0002, // selector :hover, element is under the cursor, mouse hover |
|---|
| 1624 |
STATE_ACTIVE = 0x0004, // selector :active, element is activated, e.g. pressed |
|---|
| 1625 |
STATE_FOCUS = 0x0008, // selector :focus, element is in focus |
|---|
| 1626 |
STATE_VISITED = 0x0010, // selector :visited, aux flag - not used internally now. |
|---|
| 1627 |
STATE_CURRENT = 0x0020, // selector :current, current item in collection, e.g. current <option> in <select> |
|---|
| 1628 |
STATE_CHECKED = 0x0040, // selector :checked, element is checked (or selected), e.g. check box or itme in multiselect |
|---|
| 1629 |
STATE_DISABLED = 0x0080, // selector :disabled, element is disabled, behavior related flag. |
|---|
| 1630 |
STATE_READONLY = 0x0100, // selector :read-only, element is read-only, behavior related flag. |
|---|
| 1631 |
STATE_EXPANDED = 0x0200, // selector :expanded, element is in expanded state - nodes in tree view e.g. <options> in <select> |
|---|
| 1632 |
STATE_COLLAPSED= 0x0400, // selector :collapsed, mutually exclusive with EXPANDED |
|---|
| 1633 |
STATE_INCOMPLETE = 0x0800, // selector :incomplete, element has images (back/fore/bullet) requested but not delivered. |
|---|
| 1634 |
STATE_ANIMATING = 0x00001000, // selector :animating, is currently animating |
|---|
| 1635 |
STATE_FOCUSABLE = 0x00002000, // selector :focusable, shall accept focus |
|---|
| 1636 |
STATE_ANCHOR = 0x00004000, // selector :anchor, first element in selection (<select miltiple>), STATE_CURRENT is the current. |
|---|
| 1637 |
STATE_SYNTHETIC = 0x00008000, // selector :synthetic, synthesized DOM elements - e.g. all missed cells in tables (<td>) are getting this flag |
|---|
| 1638 |
STATE_OWNS_POPUP = 0x00010000, // selector :owns-popup, anchor(owner) element of visible popup. |
|---|
| 1639 |
STATE_TABFOCUS = 0x00020000, // selector :tab-focus, element got focus by tab traversal. engine set it together with :focus. |
|---|
| 1640 |
STATE_EMPTY = 0x00040000, // selector :empty - element is empty. |
|---|
| 1641 |
STATE_BUSY = 0x00080000, // selector :busy, element is busy. HTMLayoutRequestElementData will set this flag if |
|---|
| 1642 |
// external data was requested for the element. When data will be delivered engine will reset this flag on the element. |
|---|
| 1643 |
|
|---|
| 1644 |
STATE_DRAG_OVER = 0x00100000, // drag over the block that can accept it (so is current drop target). Flag is set for the drop target block. At any given moment of time it can be only one such block. |
|---|
| 1645 |
STATE_DROP_TARGET = 0x00200000, // active drop target. Multiple elements can have this flag when D&D is active. |
|---|
| 1646 |
STATE_MOVING = 0x00400000, // dragging/moving - the flag is set for the moving element (copy of the drag-source). |
|---|
| 1647 |
STATE_COPYING = 0x00800000, // dragging/copying - the flag is set for the copying element (copy of the drag-source). |
|---|
| 1648 |
STATE_DRAG_SOURCE = 0x00C00000, // is set in element that was chosen to drag. |
|---|
| 1649 |
|
|---|
| 1650 |
STATE_POPUP = 0x40000000, // this element is in popup state and presented to the user - out of flow now |
|---|
| 1651 |
STATE_PRESSED = 0x04000000, // pressed - close to active but has wider life span - e.g. in MOUSE_UP it |
|---|
| 1652 |
// is still on, so behavior can check it in MOUSE_UP to discover CLICK condition. |
|---|
| 1653 |
STATE_HAS_CHILDREN = 0x02000000, // has more than one child. |
|---|
| 1654 |
STATE_HAS_CHILD = 0x01000000, // has single child. |
|---|
| 1655 |
} |
|---|
| 1656 |
|
|---|
| 1657 |
alias ELEMENT_STATE_BITS.STATE_LINK STATE_LINK; |
|---|
| 1658 |
alias ELEMENT_STATE_BITS.STATE_HOVER STATE_HOVER; |
|---|
| 1659 |
alias ELEMENT_STATE_BITS.STATE_ACTIVE STATE_ACTIVE; |
|---|
| 1660 |
alias ELEMENT_STATE_BITS.STATE_FOCUS STATE_FOCUS; |
|---|
| 1661 |
alias ELEMENT_STATE_BITS.STATE_VISITED STATE_VISITED; |
|---|
| 1662 |
alias ELEMENT_STATE_BITS.STATE_CURRENT STATE_CURRENT; |
|---|
| 1663 |
alias ELEMENT_STATE_BITS.STATE_CHECKED STATE_CHECKED; |
|---|
| 1664 |
alias ELEMENT_STATE_BITS.STATE_DISABLED STATE_DISABLED; |
|---|
| 1665 |
alias ELEMENT_STATE_BITS.STATE_READONLY STATE_READONLY; |
|---|
| 1666 |
alias ELEMENT_STATE_BITS.STATE_EXPANDED STATE_EXPANDED; |
|---|
| 1667 |
alias ELEMENT_STATE_BITS.STATE_COLLAPSED STATE_COLLAPSED; |
|---|
| 1668 |
alias ELEMENT_STATE_BITS.STATE_INCOMPLETE STATE_INCOMPLETE; |
|---|
| 1669 |
alias ELEMENT_STATE_BITS.STATE_ANIMATING STATE_ANIMATING; |
|---|
| 1670 |
alias ELEMENT_STATE_BITS.STATE_FOCUSABLE STATE_FOCUSABLE; |
|---|
| 1671 |
alias ELEMENT_STATE_BITS.STATE_ANCHOR STATE_ANCHOR; |
|---|
| 1672 |
alias ELEMENT_STATE_BITS.STATE_SYNTHETIC STATE_SYNTHETIC; |
|---|
| 1673 |
alias ELEMENT_STATE_BITS.STATE_OWNS_POPUP STATE_OWNS_POPUP; |
|---|
| 1674 |
alias ELEMENT_STATE_BITS.STATE_TABFOCUS STATE_TABFOCUS; |
|---|
| 1675 |
alias ELEMENT_STATE_BITS.STATE_EMPTY STATE_EMPTY; |
|---|
| 1676 |
alias ELEMENT_STATE_BITS.STATE_BUSY STATE_BUSY; |
|---|
| 1677 |
alias ELEMENT_STATE_BITS.STATE_DRAG_OVER STATE_DRAG_OVER; |
|---|
| 1678 |
alias ELEMENT_STATE_BITS.STATE_DROP_TARGET STATE_DROP_TARGET; |
|---|
| 1679 |
alias ELEMENT_STATE_BITS.STATE_MOVING STATE_MOVING; |
|---|
| 1680 |
alias ELEMENT_STATE_BITS.STATE_COPYING STATE_COPYING; |
|---|
| 1681 |
alias ELEMENT_STATE_BITS.STATE_DRAG_SOURCE STATE_DRAG_SOURCE; |
|---|
| 1682 |
alias ELEMENT_STATE_BITS.STATE_POPUP STATE_POPUP; |
|---|
| 1683 |
alias ELEMENT_STATE_BITS.STATE_PRESSED STATE_PRESSED; |
|---|
| 1684 |
alias ELEMENT_STATE_BITS.STATE_HAS_CHILDREN STATE_HAS_CHILDREN; |
|---|
| 1685 |
alias ELEMENT_STATE_BITS.STATE_HAS_CHILD STATE_HAS_CHILD; |
|---|
| 1686 |
|
|---|
| 1687 |
enum REQUEST_TYPE |
|---|
| 1688 |
{ |
|---|
| 1689 |
GET_ASYNC, // async GET |
|---|
| 1690 |
POST_ASYNC, // async POST |
|---|
| 1691 |
GET_SYNC, // synchronous GET |
|---|
| 1692 |
POST_SYNC // synchronous POST |
|---|
| 1693 |
}; |
|---|
| 1694 |
|
|---|
| 1695 |
alias REQUEST_TYPE.GET_ASYNC GET_ASYNC; |
|---|
| 1696 |
alias REQUEST_TYPE.POST_ASYNC POST_ASYNC; |
|---|
| 1697 |
alias REQUEST_TYPE.GET_SYNC GET_SYNC; |
|---|
| 1698 |
alias REQUEST_TYPE.POST_SYNC POST_SYNC; |
|---|
| 1699 |
|
|---|
| 1700 |
struct REQUEST_PARAM { LPCWSTR name; LPCWSTR value; }; |
|---|
| 1701 |
|
|---|
| 1702 |
enum CTL_TYPE |
|---|
| 1703 |
{ |
|---|
| 1704 |
CTL_NO, ///< This dom element has no behavior at all. |
|---|
| 1705 |
CTL_UNKNOWN = 1, ///< This dom element has behavior but its type is unknown. |
|---|
| 1706 |
CTL_EDIT, ///< Single line edit box. |
|---|
| 1707 |
CTL_NUMERIC, ///< Numeric input with optional spin buttons. |
|---|
| 1708 |
CTL_BUTTON, ///< Command button. |
|---|
| 1709 |
CTL_CHECKBOX, ///< CheckBox (button). |
|---|
| 1710 |
CTL_RADIO, ///< OptionBox (button). |
|---|
| 1711 |
CTL_SELECT_SINGLE, ///< Single select, ListBox or TreeView. |
|---|
| 1712 |
CTL_SELECT_MULTIPLE, ///< Multiselectable select, ListBox or TreeView. |
|---|
| 1713 |
CTL_DD_SELECT, ///< Dropdown single select. |
|---|
| 1714 |
CTL_TEXTAREA, ///< Multiline TextBox. |
|---|
| 1715 |
CTL_HTMLAREA, ///< WYSIWYG HTML editor. |
|---|
| 1716 |
CTL_PASSWORD, ///< Password input element. |
|---|
| 1717 |
CTL_PROGRESS, ///< Progress element. |
|---|
| 1718 |
CTL_SLIDER, ///< Slider input element. |
|---|
| 1719 |
CTL_DECIMAL, ///< Decimal number input element. |
|---|
| 1720 |
CTL_CURRENCY, ///< Currency input element. |
|---|
| 1721 |
CTL_SCROLLBAR, |
|---|
| 1722 |
|
|---|
| 1723 |
CTL_HYPERLINK, |
|---|
| 1724 |
|
|---|
| 1725 |
CTL_MENUBAR, |
|---|
| 1726 |
CTL_MENU, |
|---|
| 1727 |
CTL_MENUBUTTON, |
|---|
| 1728 |
|
|---|
| 1729 |
CTL_CALENDAR, |
|---|
| 1730 |
CTL_DATE, |
|---|
| 1731 |
CTL_TIME, |
|---|
| 1732 |
|
|---|
| 1733 |
CTL_FRAME, |
|---|
| 1734 |
CTL_FRAMESET, |
|---|
| 1735 |
|
|---|
| 1736 |
CTL_GRAPHICS, |
|---|
| 1737 |
CTL_SPRITE, |
|---|
| 1738 |
|
|---|
| 1739 |
CTL_LIST, |
|---|
| 1740 |
CTL_RICHTEXT, |
|---|
| 1741 |
CTL_TOOLTIP, |
|---|
| 1742 |
|
|---|
| 1743 |
CTL_HIDDEN, |
|---|
| 1744 |
}; |
|---|
| 1745 |
|
|---|
| 1746 |
alias CTL_TYPE.CTL_NO CTL_NO; |
|---|
| 1747 |
alias CTL_TYPE.CTL_UNKNOWN TL_UNKNOWN; |
|---|
| 1748 |
alias CTL_TYPE.CTL_EDIT CTL_EDIT; |
|---|
| 1749 |
alias CTL_TYPE.CTL_NUMERIC CTL_NUMERIC; |
|---|
| 1750 |
alias CTL_TYPE.CTL_BUTTON CTL_BUTTON; |
|---|
| 1751 |
alias CTL_TYPE.CTL_CHECKBOX CTL_CHECKBOX; |
|---|
| 1752 |
alias CTL_TYPE.CTL_RADIO CTL_RADIO; |
|---|
| 1753 |
alias CTL_TYPE.CTL_SELECT_SINGLE CTL_SELECT_SINGLE; |
|---|
| 1754 |
alias CTL_TYPE.CTL_SELECT_MULTIPLE CTL_SELECT_MULTIPLE; |
|---|
| 1755 |
alias CTL_TYPE.CTL_DD_SELECT CTL_DD_SELECT; |
|---|
| 1756 |
alias CTL_TYPE.CTL_TEXTAREA CTL_TEXTAREA; |
|---|
| 1757 |
alias CTL_TYPE.CTL_HTMLAREA CTL_HTMLAREA; |
|---|
| 1758 |
alias CTL_TYPE.CTL_PASSWORD CTL_PASSWORD; |
|---|
| 1759 |
alias CTL_TYPE.CTL_PROGRESS CTL_PROGRESS; |
|---|
| 1760 |
alias CTL_TYPE.CTL_SLIDER CTL_SLIDER; |
|---|
| 1761 |
alias CTL_TYPE.CTL_DECIMAL CTL_DECIMAL; |
|---|
| 1762 |
alias CTL_TYPE.CTL_CURRENCY CTL_CURRENCY; |
|---|
| 1763 |
alias CTL_TYPE.CTL_SCROLLBAR CTL_SCROLLBAR; |
|---|
| 1764 |
alias CTL_TYPE.CTL_HYPERLINK CTL_HYPERLINK; |
|---|
| 1765 |
alias CTL_TYPE.CTL_MENUBAR CTL_MENUBAR; |
|---|
| 1766 |
alias CTL_TYPE.CTL_MENU CTL_MENU; |
|---|
| 1767 |
alias CTL_TYPE.CTL_MENUBUTTON CTL_MENUBUTTON; |
|---|
| 1768 |
alias CTL_TYPE.CTL_CALENDAR CTL_CALENDAR; |
|---|
| 1769 |
alias CTL_TYPE.CTL_DATE CTL_DATE; |
|---|
| 1770 |
alias CTL_TYPE.CTL_TIME CTL_TIME; |
|---|
| 1771 |
alias CTL_TYPE.CTL_FRAME CTL_FRAME; |
|---|
| 1772 |
alias CTL_TYPE.CTL_FRAMESET CTL_FRAMESET; |
|---|
| 1773 |
alias CTL_TYPE.CTL_GRAPHICS CTL_GRAPHICS; |
|---|
| 1774 |
alias CTL_TYPE.CTL_SPRITE CTL_SPRITE; |
|---|
| 1775 |
alias CTL_TYPE.CTL_LIST CTL_LIST; |
|---|
| 1776 |
alias CTL_TYPE.CTL_RICHTEXT CTL_RICHTEXT; |
|---|
| 1777 |
alias CTL_TYPE.CTL_TOOLTIP CTL_TOOLTIP; |
|---|
| 1778 |
alias CTL_TYPE.CTL_HIDDEN CTL_HIDDEN; |
|---|
| 1779 |
|
|---|
| 1780 |
struct HTMLayoutCSSRuleDef |
|---|
| 1781 |
{ |
|---|
| 1782 |
INT rule_type; /**< 0 - css rule, |
|---|
| 1783 |
1 - inline style attribute (selector is text of @style), |
|---|
| 1784 |
2 - element has styles defined by HTMLayoutSetStyleAttribute */ |
|---|
| 1785 |
LPCSTR file_url; /**< url of the file where this rule is defined */ |
|---|
| 1786 |
INT file_line_no; /**< line number in the file of rule's selector, -1 if unknown */ |
|---|
| 1787 |
LPCWSTR selector; /**< text of selector */ |
|---|
| 1788 |
}; |
|---|
| 1789 |
|
|---|
| 1790 |
enum ADVANCE_TO |
|---|
| 1791 |
{ |
|---|
| 1792 |
GO_FIRST = 0, |
|---|
| 1793 |
GO_LAST = 1, |
|---|
| 1794 |
GO_NEXT = 2, |
|---|
| 1795 |
GO_PREV = 3, |
|---|
| 1796 |
GO_NEXT_CHAR = 4, |
|---|
| 1797 |
GO_PREV_CHAR = 5, |
|---|
| 1798 |
}; |
|---|
| 1799 |
|
|---|
| 1800 |
alias ADVANCE_TO.GO_FIRST GO_FIRST; |
|---|
| 1801 |
alias ADVANCE_TO.GO_LAST GO_LAST; |
|---|
| 1802 |
alias ADVANCE_TO.GO_NEXT GO_NEXT; |
|---|
| 1803 |
alias ADVANCE_TO.GO_PREV GO_PREV; |
|---|
| 1804 |
alias ADVANCE_TO.GO_NEXT_CHAR GO_NEXT_CHAR; |
|---|
| 1805 |
alias ADVANCE_TO.GO_PREV_CHAR GO_PREV_CHAR; |
|---|
| 1806 |
|
|---|
| 1807 |
alias BOOL function( HELEMENT he, LPVOID param ) HTMLayoutElementCallback; |
|---|
| 1808 |
alias BOOL function(LPVOID tag, HELEMENT he, UINT evtg, LPVOID prms ) ElementEventProc; |
|---|
| 1809 |
alias ElementEventProc LPELEMENT_EVENT_PROC; |
|---|
| 1810 |
alias INT function( HELEMENT he1, HELEMENT he2, LPVOID param ) ELEMENT_COMPARATOR; |
|---|
| 1811 |
alias BOOL function( LPVOID p, HELEMENT he, int pos, int postype, WCHAR code ) HTMLayoutEnumerationCallback; |
|---|
| 1812 |
|
|---|
| 1813 |
alias HLDOM_RESULT function (HELEMENT he, LPRECT p_location, UINT areas /*ELEMENT_AREAS*/) HTMLayoutGetElementLocation_t; |
|---|
| 1814 |
HTMLayoutGetElementLocation_t HTMLayoutGetElementLocation; |
|---|
| 1815 |
alias HLDOM_RESULT function (HELEMENT he) HTMLayout_UseElement_t; |
|---|
| 1816 |
HTMLayout_UseElement_t HTMLayout_UseElement; |
|---|
| 1817 |
alias HLDOM_RESULT function (HELEMENT he) HTMLayout_UnuseElement_t; |
|---|
| 1818 |
HTMLayout_UnuseElement_t HTMLayout_UnuseElement; |
|---|
| 1819 |
alias HLDOM_RESULT function (HWND hwnd, HELEMENT *phe) HTMLayoutGetRootElement_t; |
|---|
| 1820 |
HTMLayoutGetRootElement_t HTMLayoutGetRootElement; |
|---|
| 1821 |
alias HLDOM_RESULT function (HWND hwnd, HELEMENT *phe) HTMLayoutGetFocusElement_t; |
|---|
| 1822 |
HTMLayoutGetFocusElement_t HTMLayoutGetFocusElement; |
|---|
| 1823 |
alias HLDOM_RESULT function (HWND hwnd, POINT pt, HELEMENT *phe) HTMLayoutFindElement_t; |
|---|
| 1824 |
HTMLayoutFindElement_t HTMLayoutFindElement; |
|---|
| 1825 |
alias HLDOM_RESULT function (HELEMENT he, UINT *count) HTMLayoutGetChildrenCount_t; |
|---|
| 1826 |
HTMLayoutGetChildrenCount_t HTMLayoutGetChildrenCount; |
|---|
| 1827 |
alias HLDOM_RESULT function (HELEMENT he, UINT n, HELEMENT *phe) HTMLayoutGetNthChild_t; |
|---|
| 1828 |
HTMLayoutGetNthChild_t HTMLayoutGetNthChild; |
|---|
| 1829 |
alias HLDOM_RESULT function (HELEMENT he, HELEMENT *p_parent_he) HTMLayoutGetParentElement_t; |
|---|
| 1830 |
HTMLayoutGetParentElement_t HTMLayoutGetParentElement; |
|---|
| 1831 |
alias HLDOM_RESULT function (HELEMENT he, LPWSTR characters, LPUINT length) HTMLayoutGetElementText_t; |
|---|
| 1832 |
HTMLayoutGetElementText_t HTMLayoutGetElementText; |
|---|
| 1833 |
alias HLDOM_RESULT function (HELEMENT he, LPBYTE *utf8bytes, BOOL outer) HTMLayoutGetElementHtml_t; |
|---|
| 1834 |
HTMLayoutGetElementHtml_t HTMLayoutGetElementHtml; |
|---|
| 1835 |
alias HLDOM_RESULT function (HELEMENT he, LPBYTE *utf8bytes) HTMLayoutGetElementInnerText_t; |
|---|
| 1836 |
HTMLayoutGetElementInnerText_t HTMLayoutGetElementInnerText; |
|---|
| 1837 |
alias HLDOM_RESULT function (HELEMENT he, LPCBYTE utf8bytes, UINT length) HTMLayoutSetElementInnerText_t; |
|---|
| 1838 |
HTMLayoutSetElementInnerText_t HTMLayoutSetElementInnerText; |
|---|
| 1839 |
alias HLDOM_RESULT function (HELEMENT he, LPWSTR *utf16words) HTMLayoutGetElementInnerText16_t; |
|---|
| 1840 |
HTMLayoutGetElementInnerText16_t HTMLayoutGetElementInnerText16; |
|---|
| 1841 |
alias HLDOM_RESULT function (HELEMENT he, LPCWSTR utf16words, UINT length) HTMLayoutSetElementInnerText16_t; |
|---|
| 1842 |
HTMLayoutSetElementInnerText16_t HTMLayoutSetElementInnerText16; |
|---|
| 1843 |
alias HLDOM_RESULT function (HELEMENT he, LPUINT p_count) HTMLayoutGetAttributeCount_t; |
|---|
| 1844 |
HTMLayoutGetAttributeCount_t HTMLayoutGetAttributeCount; |
|---|
| 1845 |
alias HLDOM_RESULT function (HELEMENT he, UINT n, LPCSTR *p_name, LPCWSTR *p_value) HTMLayoutGetNthAttribute_t; |
|---|
| 1846 |
HTMLayoutGetNthAttribute_t HTMLayoutGetNthAttribute; |
|---|
| 1847 |
alias HLDOM_RESULT function (HELEMENT he, LPCSTR name, LPCWSTR *p_value) HTMLayoutGetAttributeByName_t; |
|---|
| 1848 |
HTMLayoutGetAttributeByName_t HTMLayoutGetAttributeByName; |
|---|
| 1849 |
alias HLDOM_RESULT function (HELEMENT he, LPCSTR name, LPCWSTR value) HTMLayoutSetAttributeByName_t; |
|---|
| 1850 |
HTMLayoutSetAttributeByName_t HTMLayoutSetAttributeByName; |
|---|
| 1851 |
alias HLDOM_RESULT function (HELEMENT he) HTMLayoutClearAttributes_t; |
|---|
| 1852 |
HTMLayoutClearAttributes_t HTMLayoutClearAttributes; |
|---|
| 1853 |
alias HLDOM_RESULT function (HELEMENT he, LPUINT p_index) HTMLayoutGetElementIndex_t; |
|---|
| 1854 |
HTMLayoutGetElementIndex_t HTMLayoutGetElementIndex; |
|---|
| 1855 |
alias HLDOM_RESULT function (HELEMENT he, LPCSTR *p_type) HTMLayoutGetElementType_t; |
|---|
| 1856 |
HTMLayoutGetElementType_t HTMLayoutGetElementType; |
|---|
| 1857 |
alias HLDOM_RESULT function (HELEMENT he, LPCSTR name, LPCWSTR *p_value) HTMLayoutGetStyleAttribute_t; |
|---|
| 1858 |
HTMLayoutGetStyleAttribute_t HTMLayoutGetStyleAttribute; |
|---|
| 1859 |
alias HLDOM_RESULT function (HELEMENT he, LPCSTR name, LPCWSTR value) HTMLayoutSetStyleAttribute_t; |
|---|
| 1860 |
HTMLayoutSetStyleAttribute_t HTMLayoutSetStyleAttribute; |
|---|
| 1861 |
alias HLDOM_RESULT function (HELEMENT he, BOOL renderNow) HTMLayoutUpdateElement_t; |
|---|
| 1862 |
HTMLayoutUpdateElement_t HTMLayoutUpdateElement; |
|---|
| 1863 |
alias HLDOM_RESULT function (HELEMENT he, UINT flags) HTMLayoutUpdateElementEx_t; |
|---|
| 1864 |
HTMLayoutUpdateElementEx_t HTMLayoutUpdateElementEx; |
|---|
| 1865 |
alias HLDOM_RESULT function (HELEMENT he) HTMLayoutSetCapture_t; |
|---|
| 1866 |
HTMLayoutSetCapture_t HTMLayoutSetCapture; |
|---|
| 1867 |
alias HLDOM_RESULT function (HELEMENT he, HWND *p_hwnd, BOOL rootWindow) HTMLayoutGetElementHwnd_t; |
|---|
| 1868 |
HTMLayoutGetElementHwnd_t HTMLayoutGetElementHwnd; |
|---|
| 1869 |
alias HLDOM_RESULT function (HELEMENT he, LPWSTR szUrlBuffer, DWORD UrlBufferSize) HTMLayoutCombineURL_t; |
|---|
| 1870 |
HTMLayoutCombineURL_t HTMLayoutCombineURL; |
|---|
| 1871 |
alias HLDOM_RESULT function (HELEMENT he, LPCSTR tagName, LPCSTR attributeName, LPCWSTR attributeValue, HTMLayoutElementCallback callback, LPVOID param, DWORD depth) HTMLayoutVisitElements_t; |
|---|
| 1872 |
HTMLayoutVisitElements_t HTMLayoutVisitElements; |
|---|
| 1873 |
alias HLDOM_RESULT function (HELEMENT he, LPCSTR CSS_selectors, HTMLayoutElementCallback callback, LPVOID param) HTMLayoutSelectElements_t; |
|---|
| 1874 |
HTMLayoutSelectElements_t HTMLayoutSelectElements; |
|---|
| 1875 |
alias HLDOM_RESULT function (HELEMENT he, LPCSTR selector, UINT depth, HELEMENT *heFound) HTMLayoutSelectParent_t; |
|---|
| 1876 |
HTMLayoutSelectParent_t HTMLayoutSelectParent; |
|---|
| 1877 |
alias HLDOM_RESULT function (HELEMENT he, LPCBYTE html, DWORD htmlLength, UINT where) HTMLayoutSetElementHtml_t; |
|---|
| 1878 |
HTMLayoutSetElementHtml_t HTMLayoutSetElementHtml; |
|---|
| 1879 |
alias HLDOM_RESULT function (HELEMENT he) HTMLayoutDeleteElement_t; |
|---|
| 1880 |
HTMLayoutDeleteElement_t HTMLayoutDeleteElement; |
|---|
| 1881 |
alias HLDOM_RESULT function (HELEMENT he, UINT *puid) HTMLayoutGetElementUID_t; |
|---|
| 1882 |
HTMLayoutGetElementUID_t HTMLayoutGetElementUID; |
|---|
| 1883 |
alias HLDOM_RESULT function (HWND hwnd, UINT uid, HELEMENT *phe) HTMLayoutGetElementByUID_t; |
|---|
| 1884 |
HTMLayoutGetElementByUID_t HTMLayoutGetElementByUID; |
|---|
| 1885 |
alias HLDOM_RESULT function (HELEMENT hePopup, HELEMENT heAnchor, UINT placement) HTMLayoutShowPopup_t; |
|---|
| 1886 |
HTMLayoutShowPopup_t HTMLayoutShowPopup; |
|---|
| 1887 |
alias HLDOM_RESULT function (HELEMENT hePopup, POINT pos, BOOL animate) HTMLayoutShowPopupAt_t; |
|---|
| 1888 |
HTMLayoutShowPopupAt_t HTMLayoutShowPopupAt; |
|---|
| 1889 |
alias HLDOM_RESULT function (HELEMENT he) HTMLayoutHidePopup_t; |
|---|
| 1890 |
HTMLayoutHidePopup_t HTMLayoutHidePopup; |
|---|
| 1891 |
alias HLDOM_RESULT function (HELEMENT he, UINT *pstateBits) HTMLayoutGetElementState_t; |
|---|
| 1892 |
HTMLayoutGetElementState_t HTMLayoutGetElementState; |
|---|
| 1893 |
alias HLDOM_RESULT function( HELEMENT he, UINT stateBitsToSet, UINT stateBitsToClear, BOOL updateView) HTMLayoutSetElementState_t; |
|---|
| 1894 |
HTMLayoutSetElementState_t HTMLayoutSetElementState; |
|---|
| 1895 |
alias HLDOM_RESULT function (LPCSTR tagname, LPCWSTR textOrNull, HELEMENT *phe) HTMLayoutCreateElement_t; |
|---|
| 1896 |
HTMLayoutCreateElement_t HTMLayoutCreateElement; |
|---|
| 1897 |
alias HLDOM_RESULT function (HELEMENT he, HELEMENT *phe) HTMLayoutCloneElement_t; |
|---|
| 1898 |
HTMLayoutCloneElement_t HTMLayoutCloneElement; |
|---|
| 1899 |
alias HLDOM_RESULT function (HELEMENT he, HELEMENT hparent, UINT index) HTMLayoutInsertElement_t; |
|---|
| 1900 |
HTMLayoutInsertElement_t HTMLayoutInsertElement; |
|---|
| 1901 |
alias HLDOM_RESULT function (HELEMENT he) HTMLayoutDetachElement_t; |
|---|
| 1902 |
HTMLayoutDetachElement_t HTMLayoutDetachElement; |
|---|
| 1903 |
alias HLDOM_RESULT function (HELEMENT he, UINT milliseconds) HTMLayoutSetTimer_t; |
|---|
| 1904 |
HTMLayoutSetTimer_t HTMLayoutSetTimer; |
|---|
| 1905 |
alias HLDOM_RESULT function (HELEMENT he, LPELEMENT_EVENT_PROC pep, LPVOID tag) HTMLayoutAttachEventHandler_t; |
|---|
| 1906 |
HTMLayoutAttachEventHandler_t HTMLayoutAttachEventHandler; |
|---|
| 1907 |
alias HLDOM_RESULT function (HELEMENT he, LPELEMENT_EVENT_PROC pep, LPVOID tag, UINT subscription) HTMLayoutAttachEventHandlerEx_t; |
|---|
| 1908 |
HTMLayoutAttachEventHandlerEx_t HTMLayoutAttachEventHandlerEx; |
|---|
| 1909 |
alias HLDOM_RESULT function (HWND hwndLayout, LPELEMENT_EVENT_PROC pep, LPVOID tag, UINT subscription) HTMLayoutWindowAttachEventHandler_t; |
|---|
| 1910 |
HTMLayoutWindowAttachEventHandler_t HTMLayoutWindowAttachEventHandler; |
|---|
| 1911 |
alias HLDOM_RESULT function (HELEMENT he, UINT appEventCode, HELEMENT heSource, UINT_PTR reason, BOOL *handled) HTMLayoutSendEvent_t; |
|---|
| 1912 |
HTMLayoutSendEvent_t HTMLayoutSendEvent; |
|---|
| 1913 |
alias HLDOM_RESULT function (HELEMENT he, UINT appEventCode, HELEMENT heSource, UINT reason) HTMLayoutPostEvent_t; |
|---|
| 1914 |
HTMLayoutPostEvent_t HTMLayoutPostEvent; |
|---|
| 1915 |
alias HLDOM_RESULT function (HELEMENT he, METHOD_PARAMS *params) HTMLayoutCallBehaviorMethod_t; |
|---|
| 1916 |
HTMLayoutCallBehaviorMethod_t HTMLayoutCallBehaviorMethod; |
|---|
| 1917 |
alias HLDOM_RESULT function (HELEMENT he, LPCWSTR url, UINT dataType, HELEMENT initiator) HTMLayoutRequestElementData_t; |
|---|
| 1918 |
HTMLayoutRequestElementData_t HTMLayoutRequestElementData; |
|---|
| 1919 |
alias HLDOM_RESULT function (HELEMENT he, LPPOINT scrollPos, LPRECT viewRect, LPSIZE contentSize) HTMLayoutGetScrollInfo_t; |
|---|
| 1920 |
HTMLayoutGetScrollInfo_t HTMLayoutGetScrollInfo; |
|---|
| 1921 |
alias HLDOM_RESULT function (HELEMENT he, POINT scrollPos, BOOL smooth) HTMLayoutSetScrollPos_t; |
|---|
| 1922 |
HTMLayoutSetScrollPos_t HTMLayoutSetScrollPos; |
|---|
| 1923 |
alias HLDOM_RESULT function (HELEMENT he, BOOL *pVisible) HTMLayoutIsElementVisible_t; |
|---|
| 1924 |
HTMLayoutIsElementVisible_t HTMLayoutIsElementVisible; |
|---|
| 1925 |
alias HLDOM_RESULT function (HELEMENT he, BOOL *pEnabled) HTMLayoutIsElementEnabled_t; |
|---|
| 1926 |
HTMLayoutIsElementEnabled_t HTMLayoutIsElementEnabled; |
|---|
| 1927 |
alias HLDOM_RESULT function (HELEMENT he, UINT firstIndex, UINT lastIndex, ELEMENT_COMPARATOR cmpFunc, LPVOID cmpFuncParam) HTMLayoutSortElements_t; |
|---|
| 1928 |
HTMLayoutSortElements_t HTMLayoutSortElements; |
|---|
| 1929 |
alias HLDOM_RESULT function (HELEMENT he1, HELEMENT he2) HTMLayoutSwapElements_t; |
|---|
| 1930 |
HTMLayoutSwapElements_t HTMLayoutSwapElements; |
|---|
| 1931 |
alias HLDOM_RESULT function (UINT evt, LPVOID eventCtlStruct, LPBOOL bOutProcessed) HTMLayoutTraverseUIEvent_t; |
|---|
| 1932 |
HTMLayoutTraverseUIEvent_t HTMLayoutTraverseUIEvent; |
|---|
| 1933 |
alias HLDOM_RESULT function (HELEMENT he, UINT *pType) HTMLayoutControlGetType_t; |
|---|
| 1934 |
HTMLayoutControlGetType_t HTMLayoutControlGetType; |
|---|
| 1935 |
alias HLDOM_RESULT function (HELEMENT he, JSON_VALUE *pVal) HTMLayoutControlGetValue_t; |
|---|
| 1936 |
HTMLayoutControlGetValue_t HTMLayoutControlGetValue; |
|---|
| 1937 |
alias HLDOM_RESULT function (HELEMENT he, JSON_VALUE *pVal) HTMLayoutControlSetValue_t; |
|---|
| 1938 |
HTMLayoutControlSetValue_t HTMLayoutControlSetValue; |
|---|
| 1939 |
alias HLDOM_RESULT function (HELEMENT he, HTMLayoutEnumerationCallback pcb, LPVOID p, BOOL forward) HTMLayoutEnumerate_t; |
|---|
| 1940 |
HTMLayoutEnumerate_t HTMLayoutEnumerate; |
|---|
| 1941 |
alias HLDOM_RESULT function (HELEMENT he, int pos, RECT *outRect) HTMLayoutGetCharacterRect_t; |
|---|
| 1942 |
HTMLayoutGetCharacterRect_t HTMLayoutGetCharacterRect; |
|---|
| 1943 |
|
|---|
| 1944 |
////////////////////////////////////////////////////////////////////////////// htmlaytout |
|---|
| 1945 |
|
|---|
| 1946 |
const HLN_CREATE_CONTROL =0xAFF + 0x01 ; |
|---|
| 1947 |
const HLN_LOAD_DATA =0xAFF + 0x02; |
|---|
| 1948 |
const HLN_CONTROL_CREATED =0xAFF + 0x03 ; |
|---|
| 1949 |
const HLN_DATA_LOADED =0xAFF + 0x04; |
|---|
| 1950 |
const HLN_DOCUMENT_COMPLETE =0xAFF + 0x05 ; |
|---|
| 1951 |
const HLN_UPDATE_UI =0xAFF + 0x06; |
|---|
| 1952 |
const HLN_DESTROY_CONTROL =0xAFF + 0x07; |
|---|
| 1953 |
const HLN_ATTACH_BEHAVIOR =0xAFF + 0x08; |
|---|
| 1954 |
const HLN_BEHAVIOR_CHANGED =0xAFF + 0x09; |
|---|
| 1955 |
const HLN_DIALOG_CREATED =0xAFF + 0x10; |
|---|
| 1956 |
const HLN_DIALOG_CLOSE_RQ =0xAFF + 0x11; |
|---|
| 1957 |
const HLN_DOCUMENT_LOADED =0xAFF + 0x0B; |
|---|
| 1958 |
|
|---|
| 1959 |
const LOAD_OK =0; |
|---|
| 1960 |
const LOAD_DISCARD =1; |
|---|
| 1961 |
|
|---|
| 1962 |
alias LRESULT function(UINT uMsg, WPARAM wParam, LPARAM lParam, LPVOID vParam) HTMLAYOUT_NOTIFY; |
|---|
| 1963 |
alias HTMLAYOUT_NOTIFY LPHTMLAYOUT_NOTIFY; |
|---|
| 1964 |
|
|---|
| 1965 |
const HWND HWND_TRY_DEFAULT =null; |
|---|
| 1966 |
const HWND HWND_DISCARD_CREATION =cast(HWND)1; |
|---|
| 1967 |
|
|---|
| 1968 |
struct NMHL_CREATE_CONTROL |
|---|
| 1969 |
{ |
|---|
| 1970 |
NMHDR hdr; /**< Default WM_NOTIFY header */ |
|---|
| 1971 |
|
|---|
| 1972 |
HELEMENT helement; /**< [in] DOM element.*/ |
|---|
| 1973 |
HWND inHwndParent; /**< [in] HWND of the HTMLayout window.*/ |
|---|
| 1974 |
|
|---|
| 1975 |
HWND outControlHwnd; /**< [out] HWND of control created or #HWND_TRY_DEFAULT or HWND_DISCARD_CREATION.*/ |
|---|
| 1976 |
DWORD reserved1; |
|---|
| 1977 |
DWORD reserved2; |
|---|
| 1978 |
|
|---|
| 1979 |
} |
|---|
| 1980 |
|
|---|
| 1981 |
alias NMHL_CREATE_CONTROL* LPNMHL_CREATE_CONTROL; |
|---|
| 1982 |
|
|---|
| 1983 |
struct NMHL_DESTROY_CONTROL |
|---|
| 1984 |
{ |
|---|
| 1985 |
/**Default WM_NOTIFY header. |
|---|
| 1986 |
**/ |
|---|
| 1987 |
NMHDR hdr; |
|---|
| 1988 |
/**[in] DOM element. |
|---|
| 1989 |
**/ |
|---|
| 1990 |
HELEMENT helement; |
|---|
| 1991 |
HWND inoutControlHwnd; |
|---|
| 1992 |
/**<[in/out] HWND of child to be destroyed.*/ |
|---|
| 1993 |
DWORD reserved1; |
|---|
| 1994 |
|
|---|
| 1995 |
} |
|---|
| 1996 |
|
|---|
| 1997 |
alias NMHL_DESTROY_CONTROL* LPNMHL_DESTROY_CONTROL; |
|---|
| 1998 |
|
|---|
| 1999 |
struct NMHL_LOAD_DATA |
|---|
| 2000 |
{ |
|---|
| 2001 |
NMHDR hdr; /**< Default WM_NOTIFY header.*/ |
|---|
| 2002 |
|
|---|
| 2003 |
LPCWSTR uri; /**< [in] Zero terminated string, fully qualified uri, for example "http://server/folder/file.ext".*/ |
|---|
| 2004 |
|
|---|
| 2005 |
LPVOID outData; /**< [out] pointer to loaded data .*/ |
|---|
| 2006 |
DWORD outDataSize; /**< [out] loaded data size.*/ |
|---|
| 2007 |
UINT dataType; /**< [in] HTMLayoutResourceType */ |
|---|
| 2008 |
|
|---|
| 2009 |
HELEMENT principal; /**< [in] element requested download, in case of context_menu:url( menu-url ) |
|---|
| 2010 |
it is an element for which context menu was requested */ |
|---|
| 2011 |
HELEMENT initiator; /**< N/A */ |
|---|
| 2012 |
|
|---|
| 2013 |
} |
|---|
| 2014 |
|
|---|
| 2015 |
alias NMHL_LOAD_DATA* LPNMHL_LOAD_DATA; |
|---|
| 2016 |
|
|---|
| 2017 |
struct NMHL_DATA_LOADED |
|---|
| 2018 |
{ |
|---|
| 2019 |
NMHDR hdr; /**< Default WM_NOTIFY header.*/ |
|---|
| 2020 |
|
|---|
| 2021 |
LPCWSTR uri; /**< [in] zero terminated string, fully qualified uri, for example "http://server/folder/file.ext".*/ |
|---|
| 2022 |
LPCBYTE data; /**< [in] pointer to loaded data.*/ |
|---|
| 2023 |
DWORD dataSize; /**< [in] loaded data size (in bytes). dataSize == 0 - incompatible data type, e.g. requested image but HTML returned */ |
|---|
| 2024 |
UINT dataType; /**< [in] HTMLayoutResourceType */ |
|---|
| 2025 |
UINT status; /**< [in] |
|---|
| 2026 |
status = 0 (dataSize == 0) - unknown error. |
|---|
| 2027 |
status = 100..505 - http response status, Note: 200 - OK! |
|---|
| 2028 |
status > 12000 - wininet error code, see ERROR_INTERNET_*** in wininet.h |
|---|
| 2029 |
*/ |
|---|
| 2030 |
|
|---|
| 2031 |
} |
|---|
| 2032 |
|
|---|
| 2033 |
alias NMHL_DATA_LOADED* LPNMHL_DATA_LOADED; |
|---|
| 2034 |
|
|---|
| 2035 |
struct HTMLAYOUT_BEHAVIOR; |
|---|
| 2036 |
|
|---|
| 2037 |
struct NMHL_ATTACH_BEHAVIOR |
|---|
| 2038 |
{ |
|---|
| 2039 |
NMHDR hdr; /**< Default WM_NOTIFY header.*/ |
|---|
| 2040 |
|
|---|
| 2041 |
HELEMENT element; /**< [in] target DOM element handle*/ |
|---|
| 2042 |
LPCSTR behaviorName; /**< [in] zero terminated string, string appears as value of CSS behavior:"???" attribute.*/ |
|---|
| 2043 |
|
|---|
| 2044 |
ElementEventProc elementProc; /**< [out] pointer to ElementEventProc function.*/ |
|---|
| 2045 |
LPVOID elementTag; /**< [out] tag value, passed as is into pointer ElementEventProc function.*/ |
|---|
| 2046 |
UINT elementEvents; /**< [out] EVENT_GROUPS bit flags, event groups elementProc subscribed to. */ |
|---|
| 2047 |
|
|---|
| 2048 |
} |
|---|
| 2049 |
|
|---|
| 2050 |
alias NMHL_ATTACH_BEHAVIOR* LPNMHL_ATTACH_BEHAVIOR; |
|---|
| 2051 |
|
|---|
| 2052 |
struct NMHL_BEHAVIOR_CHANGED |
|---|
| 2053 |
{ |
|---|
| 2054 |
NMHDR hdr; /**< Default WM_NOTIFY header.*/ |
|---|
| 2055 |
|
|---|
| 2056 |
HELEMENT element; /**< [in] target DOM element handle*/ |
|---|
| 2057 |
LPCSTR oldNames; /**< [in] zero terminated string, whitespace separated list of old behaviors.*/ |
|---|
| 2058 |
LPCSTR newNames; /**< [in] zero terminated string, whitespace separated list of new behaviors that the element just got.*/ |
|---|
| 2059 |
|
|---|
| 2060 |
} |
|---|
| 2061 |
|
|---|
| 2062 |
alias NMHL_BEHAVIOR_CHANGED* LPNMHL_BEHAVIOR_CHANGED; |
|---|
| 2063 |
|
|---|
| 2064 |
struct NMHL_DIALOG_CLOSE_RQ |
|---|
| 2065 |
{ |
|---|
| 2066 |
NMHDR hdr; /**< Default WM_NOTIFY header.*/ |
|---|
| 2067 |
BOOL outCancel; /**< [out] set it to non-zero for canceling close request.*/ |
|---|
| 2068 |
|
|---|
| 2069 |
} |
|---|
| 2070 |
|
|---|
| 2071 |
alias NMHL_DIALOG_CLOSE_RQ* LPNMHL_DIALOG_CLOSE_RQ; |
|---|
| 2072 |
|
|---|
| 2073 |
enum HTMLayoutResourceType |
|---|
| 2074 |
{ |
|---|
| 2075 |
HLRT_DATA_HTML = 0, |
|---|
| 2076 |
HLRT_DATA_IMAGE = 1, |
|---|
| 2077 |
HLRT_DATA_STYLE = 2, |
|---|
| 2078 |
HLRT_DATA_CURSOR = 3, |
|---|
| 2079 |
HLRT_DATA_SCRIPT = 4, |
|---|
| 2080 |
}; |
|---|
| 2081 |
|
|---|
| 2082 |
alias HTMLayoutResourceType.HLRT_DATA_HTML HLRT_DATA_HTML; |
|---|
| 2083 |
alias HTMLayoutResourceType.HLRT_DATA_IMAGE HLRT_DATA_IMAGE; |
|---|
| 2084 |
alias HTMLayoutResourceType.HLRT_DATA_STYLE HLRT_DATA_STYLE; |
|---|
| 2085 |
alias HTMLayoutResourceType.HLRT_DATA_CURSOR HLRT_DATA_CURSOR; |
|---|
| 2086 |
alias HTMLayoutResourceType.HLRT_DATA_SCRIPT HLRT_DATA_SCRIPT; |
|---|
| 2087 |
|
|---|
| 2088 |
enum HTMLayoutModes |
|---|
| 2089 |
{ |
|---|
| 2090 |
HLM_LAYOUT_ONLY = 0, /**< layout manager and renderer.*/ |
|---|
| 2091 |
HLM_SHOW_SELECTION = 1, /**< layout manager and renderer + text selection and WM_COPY.*/ |
|---|
| 2092 |
}; |
|---|
| 2093 |
|
|---|
| 2094 |
alias HTMLayoutModes.HLM_LAYOUT_ONLY HLM_LAYOUT_ONLY; |
|---|
| 2095 |
alias HTMLayoutModes.HLM_SHOW_SELECTION HLM_SHOW_SELECTION; |
|---|
| 2096 |
|
|---|
| 2097 |
alias BOOL function(LPCWSTR resourceUri, LPCSTR resourceType, LPCBYTE imageData, DWORD imageDataSize) HTMLAYOUT_CALLBACK_RES; |
|---|
| 2098 |
|
|---|
| 2099 |
enum ELEMENT_MODEL |
|---|
| 2100 |
{ |
|---|
| 2101 |
DATA_ELEMENT = 0, // data element, invisible by default - display:none. |
|---|
| 2102 |
INLINE_TEXT_ELEMENT = 1, // inline text, can contain text, example: <em>. Will get style display:inline. |
|---|
| 2103 |
INLINE_BLOCK_ELEMENT = 2, // inline element, contains blocks inside, example: <select>. Will get style display:inline-block. |
|---|
| 2104 |
BLOCK_TEXT_ELEMENT = 3, // block of text, can contain text, example: <p>. Will get styles display:block; width:*. |
|---|
| 2105 |
BLOCK_BLOCK_ELEMENT = 4, // block of blocks, contains blocks inside, example: <div>. Will get style display:block.; width:*. |
|---|
| 2106 |
}; |
|---|
| 2107 |
|
|---|
| 2108 |
alias ELEMENT_MODEL.DATA_ELEMENT DATA_ELEMENT; |
|---|
| 2109 |
alias ELEMENT_MODEL.INLINE_TEXT_ELEMENT INLINE_TEXT_ELEMENT; |
|---|
| 2110 |
alias ELEMENT_MODEL.INLINE_BLOCK_ELEMENT INLINE_BLOCK_ELEMENT; |
|---|
| 2111 |
alias ELEMENT_MODEL.BLOCK_TEXT_ELEMENT BLOCK_TEXT_ELEMENT; |
|---|
| 2112 |
alias ELEMENT_MODEL.BLOCK_BLOCK_ELEMENT BLOCK_BLOCK_ELEMENT; |
|---|
| 2113 |
|
|---|
| 2114 |
enum HTMLAYOUT_OPTIONS |
|---|
| 2115 |
{ |
|---|
| 2116 |
HTMLAYOUT_SMOOTH_SCROLL = 1, // value:TRUE - enable, value:FALSE - disable, enabled by default |
|---|
| 2117 |
HTMLAYOUT_CONNECTION_TIMEOUT = 2, // value: milliseconds, connection timeout of http client |
|---|
| 2118 |
HTMLAYOUT_HTTPS_ERROR = 3, // value: 0 - drop connection, 1 - use builtin dialog, 2 - accept connection silently |
|---|
| 2119 |
HTMLAYOUT_FONT_SMOOTHING = 4, // value: 0 - system default, 1 - no smoothing, 2 - std smoothing, 3 - clear type |
|---|
| 2120 |
}; |
|---|
| 2121 |
|
|---|
| 2122 |
alias HTMLAYOUT_OPTIONS.HTMLAYOUT_SMOOTH_SCROLL HTMLAYOUT_SMOOTH_SCROLL; |
|---|
| 2123 |
alias HTMLAYOUT_OPTIONS.HTMLAYOUT_CONNECTION_TIMEOUT HTMLAYOUT_CONNECTION_TIMEOUT; |
|---|
| 2124 |
alias HTMLAYOUT_OPTIONS.HTMLAYOUT_HTTPS_ERROR HTMLAYOUT_HTTPS_ERROR; |
|---|
| 2125 |
alias HTMLAYOUT_OPTIONS.HTMLAYOUT_FONT_SMOOTHING HTMLAYOUT_FONT_SMOOTHING; |
|---|
| 2126 |
|
|---|
| 2127 |
alias LPCSTR function () HTMLayoutClassNameA_t; |
|---|
| 2128 |
HTMLayoutClassNameA_t HTMLayoutClassNameA; |
|---|
| 2129 |
alias LPCWSTR function () HTMLayoutClassNameW_t; |
|---|
| 2130 |
HTMLayoutClassNameW_t HTMLayoutClassNameW; |
|---|
| 2131 |
alias BOOL function (HWND hwnd, LPCWSTR uri, LPBYTE data, DWORD dataLength) HTMLayoutDataReady_t; |
|---|
| 2132 |
HTMLayoutDataReady_t HTMLayoutDataReady; |
|---|
| 2133 |
alias BOOL function (HWND hwnd, LPCWSTR uri, LPBYTE data, DWORD dataLength, UINT dataType) HTMLayoutDataReadyAsync_t; |
|---|
| 2134 |
HTMLayoutDataReadyAsync_t HTMLayoutDataReadyAsync; |
|---|
| 2135 |
alias LRESULT function (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) HTMLayoutProc_t; |
|---|
| 2136 |
HTMLayoutProc_t HTMLayoutProc; |
|---|
| 2137 |
alias LRESULT function (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL *pbHandled) HTMLayoutProcND_t; |
|---|
| 2138 |
HTMLayoutProcND_t HTMLayoutProcND; |
|---|
| 2139 |
alias UINT function (HWND hWndHTMLayout) HTMLayoutGetMinWidth_t; |
|---|
| 2140 |
HTMLayoutGetMinWidth_t HTMLayoutGetMinWidth; |
|---|
| 2141 |
alias UINT function (HWND hWndHTMLayout, UINT width) HTMLayoutGetMinHeight_t; |
|---|
| 2142 |
HTMLayoutGetMinHeight_t HTMLayoutGetMinHeight; |
|---|
| 2143 |
alias BOOL function (HWND hWndHTMLayout, LPCWSTR filename) HTMLayoutLoadFile_t; |
|---|
| 2144 |
HTMLayoutLoadFile_t HTMLayoutLoadFile; |
|---|
| 2145 |
alias BOOL function (HWND hWndHTMLayout, LPCBYTE html, UINT htmlSize) HTMLayoutLoadHtml_t; |
|---|
| 2146 |
HTMLayoutLoadHtml_t HTMLayoutLoadHtml; |
|---|
| 2147 |
alias BOOL function (HWND hWndHTMLayout, LPCBYTE html, UINT htmlSize, LPCWSTR baseUrl) HTMLayoutLoadHtmlEx_t; |
|---|
| 2148 |
HTMLayoutLoadHtmlEx_t HTMLayoutLoadHtmlEx; |
|---|
| 2149 |
alias VOID function (HWND hWndHTMLayout, int HTMLayoutMode) HTMLayoutSetMode_t; |
|---|
| 2150 |
HTMLayoutSetMode_t HTMLayoutSetMode; |
|---|
| 2151 |
alias VOID function (HWND hWndHTMLayout, LPHTMLAYOUT_NOTIFY cb, LPVOID cbParam) HTMLayoutSetCallback_t; |
|---|
| 2152 |
HTMLayoutSetCallback_t HTMLayoutSetCallback; |
|---|
| 2153 |
alias BOOL function (HWND hWndHTMLayout) HTMLayoutSelectionExist_t; |
|---|
| 2154 |
HTMLayoutSelectionExist_t HTMLayoutSelectionExist; |
|---|
| 2155 |
alias LPCBYTE function (HWND hWndHTMLayout, LPUINT pSize) HTMLayoutGetSelectedHTML_t; |
|---|
| 2156 |
HTMLayoutGetSelectedHTML_t HTMLayoutGetSelectedHTML; |
|---|
| 2157 |
alias BOOL function (HWND hWndHTMLayout) HTMLayoutClipboardCopy_t; |
|---|
| 2158 |
HTMLayoutClipboardCopy_t HTMLayoutClipboardCopy; |
|---|
| 2159 |
alias UINT function (HWND hWndHTMLayout, HTMLAYOUT_CALLBACK_RES cb) HTMLayoutEnumResources_t; |
|---|
| 2160 |
HTMLayoutEnumResources_t HTMLayoutEnumResources; |
|---|
| 2161 |
alias BOOL function (LPCBYTE utf8, UINT numBytes) HTMLayoutSetMasterCSS_t; |
|---|
| 2162 |
HTMLayoutSetMasterCSS_t HTMLayoutSetMasterCSS; |
|---|
| 2163 |
alias BOOL function (LPCBYTE utf8, UINT numBytes) HTMLayoutAppendMasterCSS_t; |
|---|
| 2164 |
HTMLayoutAppendMasterCSS_t HTMLayoutAppendMasterCSS; |
|---|
| 2165 |
alias BOOL function (HWND hWndHTMLayout, LPCBYTE utf8, UINT numBytes, LPCWSTR baseUrl, LPCWSTR mediaType) HTMLayoutSetCSS_t; |
|---|
| 2166 |
HTMLayoutSetCSS_t HTMLayoutSetCSS; |
|---|
| 2167 |
alias BOOL function (HWND hWndHTMLayout, LPCWSTR mediaType) HTMLayoutSetMediaType_t; |
|---|
| 2168 |
HTMLayoutSetMediaType_t HTMLayoutSetMediaType; |
|---|
| 2169 |
alias BOOL function (HWND hWndHTMLayout, LPCSTR httpHeaders, UINT httpHeadersLength) HTMLayoutSetHttpHeaders_t; |
|---|
| 2170 |
HTMLayoutSetHttpHeaders_t HTMLayoutSetHttpHeaders; |
|---|
| 2171 |
alias BOOL function (HWND hWndHTMLayout, HBITMAP hBmp, RECT area) HTMLayoutRender_t; |
|---|
| 2172 |
HTMLayoutRender_t HTMLayoutRender; |
|---|
| 2173 |
alias INT_PTR function (HWND hWndParent, POINT position, INT alignment, UINT style, UINT styleEx, LPHTMLAYOUT_NOTIFY notificationCallback, LPELEMENT_EVENT_PROC eventsCallback, LPVOID callbackParam, LPCBYTE html, UINT htmlLength) HTMLayoutDialog_t; |
|---|
| 2174 |
HTMLayoutDialog_t HTMLayoutDialog; |
|---|
| 2175 |
|
|---|
| 2176 |
////////////////////////////////////////////////////////////////////////////// htmlite |
|---|
| 2177 |
|
|---|
| 2178 |
const HLN_REFRESH_AREA =0xAFF + 0x20; |
|---|
| 2179 |
const HLN_SET_TIMER =0xAFF + 0x21; |
|---|
| 2180 |
const HLN_SET_CURSOR =0xAFF + 0x22; |
|---|
| 2181 |
|
|---|
| 2182 |
struct NMHL_REFRESH_AREA |
|---|
| 2183 |
{ |
|---|
| 2184 |
NMHDR hdr; /**< Default WM_NOTIFY header, only code field is used in HTMLite */ |
|---|
| 2185 |
RECT area; /**< [in] area to refresh.*/ |
|---|
| 2186 |
} |
|---|
| 2187 |
|
|---|
| 2188 |
alias NMHL_REFRESH_AREA* LPNMHL_REFRESH_AREA; |
|---|
| 2189 |
|
|---|
| 2190 |
struct NMHL_SET_TIMER |
|---|
| 2191 |
{ |
|---|
| 2192 |
NMHDR hdr; /**< Default WM_NOTIFY header, only code field is used in HTMLite */ |
|---|
| 2193 |
UINT_PTR timerId; /**< [in] id of the timer event.*/ |
|---|
| 2194 |
UINT elapseTime; /**< [in] elapseTime of the timer event, milliseconds. |
|---|
| 2195 |
If it is 0 then this timer has to be stoped. */ |
|---|
| 2196 |
} |
|---|
| 2197 |
|
|---|
| 2198 |
alias NMHL_SET_TIMER* LPNMHL_SET_TIMER; |
|---|
| 2199 |
|
|---|
| 2200 |
struct NMHL_SET_CURSOR |
|---|
| 2201 |
{ |
|---|
| 2202 |
NMHDR hdr; /**< Default WM_NOTIFY header, only code field is used in HTMLite */ |
|---|
| 2203 |
UINT cursorId; /**< [in] id of the cursor, .*/ |
|---|
| 2204 |
} |
|---|
| 2205 |
|
|---|
| 2206 |
alias NMHL_SET_CURSOR* LPNMHL_SET_CURSOR; |
|---|
| 2207 |
|
|---|
| 2208 |
alias void* HTMLITE; |
|---|
| 2209 |
|
|---|
| 2210 |
enum HPRESULT |
|---|
| 2211 |
{ |
|---|
| 2212 |
HPR_OK = 0, |
|---|
| 2213 |
HPR_INVALID_HANDLE, |
|---|
| 2214 |
HPR_INVALID_FORMAT, |
|---|
| 2215 |
HPR_FILE_NOT_FOUND, |
|---|
| 2216 |
HPR_INVALID_PARAMETER, |
|---|
| 2217 |
HPR_INVALID_STATE, // attempt to do operation on empty document |
|---|
| 2218 |
} |
|---|
| 2219 |
|
|---|
| 2220 |
alias HPRESULT.HPR_OK HPR_OK; |
|---|
| 2221 |
alias HPRESULT.HPR_INVALID_HANDLE HPR_INVALID_HANDLE; |
|---|
| 2222 |
alias HPRESULT.HPR_INVALID_FORMAT HPR_INVALID_FORMAT; |
|---|
| 2223 |
alias HPRESULT.HPR_FILE_NOT_FOUND HPR_FILE_NOT_FOUND; |
|---|
| 2224 |
alias HPRESULT.HPR_INVALID_PARAMETER HPR_INVALID_PARAMETER; |
|---|
| 2225 |
alias HPRESULT.HPR_INVALID_STATE HPR_INVALID_STATE; |
|---|
| 2226 |
|
|---|
| 2227 |
enum FOCUS_ADVANCE_CMD |
|---|
| 2228 |
{ |
|---|
| 2229 |
FOCUS_NEXT = 0, |
|---|
| 2230 |
FOCUS_PREV = 1, |
|---|
| 2231 |
FOCUS_HOME = 2, |
|---|
| 2232 |
FOCUS_END = 3, |
|---|
| 2233 |
}; |
|---|
| 2234 |
|
|---|
| 2235 |
alias FOCUS_ADVANCE_CMD.FOCUS_NEXT FOCUS_NEXT; |
|---|
| 2236 |
alias FOCUS_ADVANCE_CMD.FOCUS_PREV FOCUS_PREV; |
|---|
| 2237 |
alias FOCUS_ADVANCE_CMD.FOCUS_HOME FOCUS_HOME; |
|---|
| 2238 |
alias FOCUS_ADVANCE_CMD.FOCUS_END FOCUS_END; |
|---|
| 2239 |
|
|---|
| 2240 |
alias NMHDR* LPNMHDR; |
|---|
| 2241 |
|
|---|
| 2242 |
alias UINT function (HTMLITE hLite, LPNMHDR hdr) HTMLITE_CALLBACK; |
|---|
| 2243 |
|
|---|
| 2244 |
alias HTMLITE function () HTMLiteCreateInstance_t; |
|---|
| 2245 |
HTMLiteCreateInstance_t HTMLiteCreateInstance; |
|---|
| 2246 |
alias HPRESULT function (HTMLITE hLite) HTMLiteDestroyInstance_t; |
|---|
| 2247 |
HTMLiteDestroyInstance_t HTMLiteDestroyInstance; |
|---|
| 2248 |
alias HPRESULT function (HTMLITE hLite, LPVOID tag) HTMLiteSetTag_t; |
|---|
| 2249 |
HTMLiteSetTag_t HTMLiteSetTag; |
|---|
| 2250 |
alias HPRESULT function (HTMLITE hLite, LPVOID *tag) HTMLiteGetTag_t; |
|---|
| 2251 |
HTMLiteGetTag_t HTMLiteGetTag; |
|---|
| 2252 |
alias HPRESULT function (HTMLITE hLite, LPCWSTR path) HTMLiteLoadHtmlFromFile_t; |
|---|
| 2253 |
HTMLiteLoadHtmlFromFile_t HTMLiteLoadHtmlFromFile; |
|---|
| 2254 |
alias HPRESULT function (HTMLITE hLite, LPCWSTR baseURI, BYTE* dataptr, DWORD datasize) HTMLiteLoadHtmlFromMemory_t; |
|---|
| 2255 |
HTMLiteLoadHtmlFromMemory_t HTMLiteLoadHtmlFromMemory; |
|---|
| 2256 |
alias HPRESULT function (HTMLITE hLite, INT viewWidth, INT viewHeight) HTMLiteMeasure_t; |
|---|
| 2257 |
HTMLiteMeasure_t HTMLiteMeasure; |
|---|
| 2258 |
alias HPRESULT function (HTMLITE hLite, HDC hdc, INT x, INT y, INT sx, INT sy) HTMLiteRender_t; |
|---|
| 2259 |
HTMLiteRender_t HTMLiteRender; |
|---|
| 2260 |
alias HPRESULT function (HTMLITE hLite, HBITMAP hbmp, INT x, INT y, INT sx, INT sy) HTMLiteRenderOnBitmap_t; |
|---|
| 2261 |
HTMLiteRenderOnBitmap_t HTMLiteRenderOnBitmap; |
|---|
| 2262 |
alias HPRESULT function (HTMLITE hLite, LPCSTR url, BYTE* data, DWORD dataSize) HTMLiteSetDataReady_t; |
|---|
| 2263 |
HTMLiteSetDataReady_t HTMLiteSetDataReady; |
|---|
| 2264 |
alias HPRESULT function (HTMLITE hLite, LPINT v) HTMLiteGetDocumentMinWidth_t; |
|---|
| 2265 |
HTMLiteGetDocumentMinWidth_t HTMLiteGetDocumentMinWidth; |
|---|
| 2266 |
alias HPRESULT function (HTMLITE hLite, LPINT v) HTMLiteGetDocumentMinHeight_t; |
|---|
| 2267 |
HTMLiteGetDocumentMinHeight_t HTMLiteGetDocumentMinHeight; |
|---|
| 2268 |
alias HPRESULT function (HTMLITE hLite, LPCSTR mediatype) HTMLiteSetMediaType_t; |
|---|
| 2269 |
HTMLiteSetMediaType_t HTMLiteSetMediaType; |
|---|
| 2270 |
alias HPRESULT function (HTMLITE hLite, HELEMENT *phe) HTMLiteGetRootElement_t; |
|---|
| 2271 |
HTMLiteGetRootElement_t HTMLiteGetRootElement; |
|---|
| 2272 |
alias HPRESULT function (HTMLITE hLite, INT x, INT y, HELEMENT *phe) HTMLiteFindElement_t; |
|---|
| 2273 |
HTMLiteFindElement_t HTMLiteFindElement; |
|---|
| 2274 |
alias HPRESULT function (HTMLITE hLite, HTMLITE_CALLBACK cb) HTMLiteSetCallback_t; |
|---|
| 2275 |
HTMLiteSetCallback_t HTMLiteSetCallback; |
|---|
| 2276 |
alias HPRESULT function(HTMLITE hLite, UINT where, BOOL* pRes ) HTMLiteAdvanceFocus_t; |
|---|
| 2277 |
HTMLiteAdvanceFocus_t HTMLiteAdvanceFocus; |
|---|
| 2278 |
alias HPRESULT function(HTMLITE hLite, UINT evt, LPVOID eventCtlStruct, LPBOOL bOutProcessed ) HTMLiteTraverseUIEvent_t; |
|---|
| 2279 |
HTMLiteTraverseUIEvent_t HTMLiteTraverseUIEvent; |
|---|
| 2280 |
|
|---|
| 2281 |
alias HLDOM_RESULT function( HELEMENT he, LPELEMENT_EVENT_PROC pep, LPVOID tag ) HTMLayoutDetachEventHandler_t; |
|---|
| 2282 |
HTMLayoutDetachEventHandler_t HTMLayoutDetachEventHandler; |
|---|
| 2283 |
alias HLDOM_RESULT function( HWND hwndLayout, LPELEMENT_EVENT_PROC pep, LPVOID tag ) HTMLayoutWindowDetachEventHandler_t; |
|---|
| 2284 |
HTMLayoutWindowDetachEventHandler_t HTMLayoutWindowDetachEventHandler; |
|---|
| 2285 |
alias HLDOM_RESULT function( HELEMENT he, HRANGE* pRange, BOOL outer ) HTMLayoutRangeCreate_t; |
|---|
| 2286 |
HTMLayoutRangeCreate_t HTMLayoutRangeCreate; |
|---|
| 2287 |
alias HLDOM_RESULT function( HELEMENT he, HRANGE* pRange ) HTMLayoutRangeFromSelection_t; |
|---|
| 2288 |
HTMLayoutRangeFromSelection_t HTMLayoutRangeFromSelection; |
|---|
| 2289 |
alias HLDOM_RESULT function( HELEMENT he, HPOSITION* pStart, HPOSITION* pEnd ) HTMLayoutRangeFromPositions_t; |
|---|
| 2290 |
HTMLayoutRangeFromPositions_t HTMLayoutRangeFromPositions; |
|---|
| 2291 |
alias HLDOM_RESULT function( HRANGE range ) HTMLayoutRangeRelease_t; |
|---|
| 2292 |
HTMLayoutRangeRelease_t HTMLayoutRangeRelease; |
|---|
| 2293 |
alias HLDOM_RESULT function( HRANGE range, UINT cmd, INT* c, HPOSITION* pPos ) HTMLayoutRangeAdvancePos_t; |
|---|
| 2294 |
HTMLayoutRangeAdvancePos_t HTMLayoutRangeAdvancePos; |
|---|
| 2295 |
alias HLDOM_RESULT function( HRANGE range, LPBYTE* pHtmlUtf8Bytes, UINT* numBytes ) HTMLayoutRangeToHtml_t; |
|---|
| 2296 |
HTMLayoutRangeToHtml_t HTMLayoutRangeToHtml; |
|---|
| 2297 |
alias HLDOM_RESULT function( HRANGE range, LPBYTE htmlUtf8Bytes, UINT numBytes ) HTMLayoutRangeReplace_t; |
|---|
| 2298 |
HTMLayoutRangeReplace_t HTMLayoutRangeReplace; |
|---|
| 2299 |
alias HLDOM_RESULT function( HPOSITION* pPos, LPBYTE htmlUtf8Bytes, UINT numBytes ) HTMLayoutRangeInsertHtml_t; |
|---|
| 2300 |
HTMLayoutRangeInsertHtml_t HTMLayoutRangeInsertHtml; |
|---|
| 2301 |
alias HLDOM_RESULT function( HRANGE range, BOOL* pResult ) HTMLayoutRangeIsEmpty_t; |
|---|
| 2302 |
HTMLayoutRangeIsEmpty_t HTMLayoutRangeIsEmpty; |
|---|
| 2303 |
alias BOOL function(HWND hWndHTMLayout, UINT option, UINT value ) HTMLayoutSetOption_t; |
|---|
| 2304 |
HTMLayoutSetOption_t HTMLayoutSetOption; |
|---|
| 2305 |
alias BOOL function(LPCSTR name, UINT/*ELEMENT_MODEL*/ elementModel) HTMLayoutDeclareElementType_t; |
|---|
| 2306 |
HTMLayoutDeclareElementType_t HTMLayoutDeclareElementType; |
|---|
| 2307 |
|
|---|
| 2308 |
////////////////////////////////////////////////////////////////////////////// import symbols |
|---|
| 2309 |
|
|---|
| 2310 |
import flowerd.sharedlib; |
|---|
| 2311 |
|
|---|
| 2312 |
bool loadHTMLayout(char[] name=null,void[] data=null) |
|---|
| 2313 |
{ |
|---|
| 2314 |
scope SharedLib dll; |
|---|
| 2315 |
if(name is null) name="htmlayout.dll"; |
|---|
| 2316 |
if(data is null) dll=SharedLib(name); |
|---|
| 2317 |
else dll=SharedLib(name,data); |
|---|
| 2318 |
if(dll is null) return false; |
|---|
| 2319 |
|
|---|
| 2320 |
HTMLayout_UseElement=cast(HTMLayout_UseElement_t)dll.symbol("HTMLayout_UseElement\0"); |
|---|
| 2321 |
HTMLayout_UnuseElement=cast(HTMLayout_UnuseElement_t)dll.symbol("HTMLayout_UnuseElement\0"); |
|---|
| 2322 |
HTMLayoutGetRootElement=cast(HTMLayoutGetRootElement_t)dll.symbol("HTMLayoutGetRootElement\0"); |
|---|
| 2323 |
HTMLayoutGetFocusElement=cast(HTMLayoutGetFocusElement_t)dll.symbol("HTMLayoutGetFocusElement\0"); |
|---|
| 2324 |
HTMLayoutFindElement=cast(HTMLayoutFindElement_t)dll.symbol("HTMLayoutFindElement\0"); |
|---|
| 2325 |
HTMLayoutGetChildrenCount=cast(HTMLayoutGetChildrenCount_t)dll.symbol("HTMLayoutGetChildrenCount\0"); |
|---|
| 2326 |
HTMLayoutGetNthChild=cast(HTMLayoutGetNthChild_t)dll.symbol("HTMLayoutGetNthChild\0"); |
|---|
| 2327 |
HTMLayoutGetParentElement=cast(HTMLayoutGetParentElement_t)dll.symbol("HTMLayoutGetParentElement\0"); |
|---|
| 2328 |
HTMLayoutGetElementText=cast(HTMLayoutGetElementText_t)dll.symbol("HTMLayoutGetElementText\0"); |
|---|
| 2329 |
HTMLayoutGetElementHtml=cast(HTMLayoutGetElementHtml_t)dll.symbol("HTMLayoutGetElementHtml\0"); |
|---|
| 2330 |
HTMLayoutGetElementInnerText=cast(HTMLayoutGetElementInnerText_t)dll.symbol("HTMLayoutGetElementInnerText\0"); |
|---|
| 2331 |
HTMLayoutSetElementInnerText=cast(HTMLayoutSetElementInnerText_t)dll.symbol("HTMLayoutSetElementInnerText\0"); |
|---|
| 2332 |
HTMLayoutGetElementInnerText16=cast(HTMLayoutGetElementInnerText16_t)dll.symbol("HTMLayoutGetElementInnerText16\0"); |
|---|
| 2333 |
HTMLayoutSetElementInnerText16=cast(HTMLayoutSetElementInnerText16_t)dll.symbol("HTMLayoutSetElementInnerText16\0"); |
|---|
| 2334 |
HTMLayoutGetAttributeCount=cast(HTMLayoutGetAttributeCount_t)dll.symbol("HTMLayoutGetAttributeCount\0"); |
|---|
| 2335 |
HTMLayoutGetNthAttribute=cast(HTMLayoutGetNthAttribute_t)dll.symbol("HTMLayoutGetNthAttribute\0"); |
|---|
| 2336 |
HTMLayoutGetAttributeByName=cast(HTMLayoutGetAttributeByName_t)dll.symbol("HTMLayoutGetAttributeByName\0"); |
|---|
| 2337 |
HTMLayoutSetAttributeByName=cast(HTMLayoutSetAttributeByName_t)dll.symbol("HTMLayoutSetAttributeByName\0"); |
|---|
| 2338 |
HTMLayoutClearAttributes=cast(HTMLayoutClearAttributes_t)dll.symbol("HTMLayoutClearAttributes\0"); |
|---|
| 2339 |
HTMLayoutGetElementIndex=cast(HTMLayoutGetElementIndex_t)dll.symbol("HTMLayoutGetElementIndex\0"); |
|---|
| 2340 |
HTMLayoutGetElementType=cast(HTMLayoutGetElementType_t)dll.symbol("HTMLayoutGetElementType\0"); |
|---|
| 2341 |
HTMLayoutGetStyleAttribute=cast(HTMLayoutGetStyleAttribute_t)dll.symbol("HTMLayoutGetStyleAttribute\0"); |
|---|
| 2342 |
HTMLayoutSetStyleAttribute=cast(HTMLayoutSetStyleAttribute_t)dll.symbol("HTMLayoutSetStyleAttribute\0"); |
|---|
| 2343 |
HTMLayoutUpdateElement=cast(HTMLayoutUpdateElement_t)dll.symbol("HTMLayoutUpdateElement\0"); |
|---|
| 2344 |
HTMLayoutUpdateElementEx=cast(HTMLayoutUpdateElementEx_t)dll.symbol("HTMLayoutUpdateElementEx\0"); |
|---|
| 2345 |
HTMLayoutSetCapture=cast(HTMLayoutSetCapture_t)dll.symbol("HTMLayoutSetCapture\0"); |
|---|
| 2346 |
HTMLayoutGetElementHwnd=cast(HTMLayoutGetElementHwnd_t)dll.symbol("HTMLayoutGetElementHwnd\0"); |
|---|
| 2347 |
HTMLayoutCombineURL=cast(HTMLayoutCombineURL_t)dll.symbol("HTMLayoutCombineURL\0"); |
|---|
| 2348 |
HTMLayoutVisitElements=cast(HTMLayoutVisitElements_t)dll.symbol("HTMLayoutVisitElements\0"); |
|---|
| 2349 |
HTMLayoutSelectElements=cast(HTMLayoutSelectElements_t)dll.symbol("HTMLayoutSelectElements\0"); |
|---|
| 2350 |
HTMLayoutSelectParent=cast(HTMLayoutSelectParent_t)dll.symbol("HTMLayoutSelectParent\0"); |
|---|
| 2351 |
HTMLayoutSetElementHtml=cast(HTMLayoutSetElementHtml_t)dll.symbol("HTMLayoutSetElementHtml\0"); |
|---|
| 2352 |
HTMLayoutDeleteElement=cast(HTMLayoutDeleteElement_t)dll.symbol("HTMLayoutDeleteElement\0"); |
|---|
| 2353 |
HTMLayoutGetElementUID=cast(HTMLayoutGetElementUID_t)dll.symbol("HTMLayoutGetElementUID\0"); |
|---|
| 2354 |
HTMLayoutGetElementByUID=cast(HTMLayoutGetElementByUID_t)dll.symbol("HTMLayoutGetElementByUID\0"); |
|---|
| 2355 |
HTMLayoutShowPopup=cast(HTMLayoutShowPopup_t)dll.symbol("HTMLayoutShowPopup\0"); |
|---|
| 2356 |
HTMLayoutShowPopupAt=cast(HTMLayoutShowPopupAt_t)dll.symbol("HTMLayoutShowPopupAt\0"); |
|---|
| 2357 |
HTMLayoutHidePopup=cast(HTMLayoutHidePopup_t)dll.symbol("HTMLayoutHidePopup\0"); |
|---|
| 2358 |
HTMLayoutGetElementState=cast(HTMLayoutGetElementState_t)dll.symbol("HTMLayoutGetElementState\0"); |
|---|
| 2359 |
HTMLayoutCreateElement=cast(HTMLayoutCreateElement_t)dll.symbol("HTMLayoutCreateElement\0"); |
|---|
| 2360 |
HTMLayoutCloneElement=cast(HTMLayoutCloneElement_t)dll.symbol("HTMLayoutCloneElement\0"); |
|---|
| 2361 |
HTMLayoutInsertElement=cast(HTMLayoutInsertElement_t)dll.symbol("HTMLayoutInsertElement\0"); |
|---|
| 2362 |
HTMLayoutDetachElement=cast(HTMLayoutDetachElement_t)dll.symbol("HTMLayoutDetachElement\0"); |
|---|
| 2363 |
HTMLayoutSetTimer=cast(HTMLayoutSetTimer_t)dll.symbol("HTMLayoutSetTimer\0"); |
|---|
| 2364 |
HTMLayoutAttachEventHandler=cast(HTMLayoutAttachEventHandler_t)dll.symbol("HTMLayoutAttachEventHandler\0"); |
|---|
| 2365 |
HTMLayoutAttachEventHandlerEx=cast(HTMLayoutAttachEventHandlerEx_t)dll.symbol("HTMLayoutAttachEventHandlerEx\0"); |
|---|
| 2366 |
HTMLayoutWindowAttachEventHandler=cast(HTMLayoutWindowAttachEventHandler_t)dll.symbol("HTMLayoutWindowAttachEventHandler\0"); |
|---|
| 2367 |
HTMLayoutSendEvent=cast(HTMLayoutSendEvent_t)dll.symbol("HTMLayoutSendEvent\0"); |
|---|
| 2368 |
HTMLayoutPostEvent=cast(HTMLayoutPostEvent_t)dll.symbol("HTMLayoutPostEvent\0"); |
|---|
| 2369 |
HTMLayoutCallBehaviorMethod=cast(HTMLayoutCallBehaviorMethod_t)dll.symbol("HTMLayoutCallBehaviorMethod\0"); |
|---|
| 2370 |
HTMLayoutRequestElementData=cast(HTMLayoutRequestElementData_t)dll.symbol("HTMLayoutRequestElementData\0"); |
|---|
| 2371 |
HTMLayoutGetScrollInfo=cast(HTMLayoutGetScrollInfo_t)dll.symbol("HTMLayoutGetScrollInfo\0"); |
|---|
| 2372 |
HTMLayoutSetScrollPos=cast(HTMLayoutSetScrollPos_t)dll.symbol("HTMLayoutSetScrollPos\0"); |
|---|
| 2373 |
HTMLayoutIsElementVisible=cast(HTMLayoutIsElementVisible_t)dll.symbol("HTMLayoutIsElementVisible\0"); |
|---|
| 2374 |
HTMLayoutIsElementEnabled=cast(HTMLayoutIsElementEnabled_t)dll.symbol("HTMLayoutIsElementEnabled\0"); |
|---|
| 2375 |
HTMLayoutSortElements=cast(HTMLayoutSortElements_t)dll.symbol("HTMLayoutSortElements\0"); |
|---|
| 2376 |
HTMLayoutSwapElements=cast(HTMLayoutSwapElements_t)dll.symbol("HTMLayoutSwapElements\0"); |
|---|
| 2377 |
HTMLayoutTraverseUIEvent=cast(HTMLayoutTraverseUIEvent_t)dll.symbol("HTMLayoutTraverseUIEvent\0"); |
|---|
| 2378 |
HTMLayoutControlGetType=cast(HTMLayoutControlGetType_t)dll.symbol("HTMLayoutControlGetType\0"); |
|---|
| 2379 |
HTMLayoutControlGetValue=cast(HTMLayoutControlGetValue_t)dll.symbol("HTMLayoutControlGetValue\0"); |
|---|
| 2380 |
HTMLayoutControlSetValue=cast(HTMLayoutControlSetValue_t)dll.symbol("HTMLayoutControlSetValue\0"); |
|---|
| 2381 |
HTMLayoutEnumerate=cast(HTMLayoutEnumerate_t)dll.symbol("HTMLayoutEnumerate\0"); |
|---|
| 2382 |
HTMLayoutGetCharacterRect=cast(HTMLayoutGetCharacterRect_t)dll.symbol("HTMLayoutGetCharacterRect\0"); |
|---|
| 2383 |
HTMLayoutClassNameA=cast(HTMLayoutClassNameA_t)dll.symbol("HTMLayoutClassNameA\0"); |
|---|
| 2384 |
HTMLayoutClassNameW=cast(HTMLayoutClassNameW_t)dll.symbol("HTMLayoutClassNameW\0"); |
|---|
| 2385 |
HTMLayoutDataReady=cast(HTMLayoutDataReady_t)dll.symbol("HTMLayoutDataReady\0"); |
|---|
| 2386 |
HTMLayoutDataReadyAsync=cast(HTMLayoutDataReadyAsync_t)dll.symbol("HTMLayoutDataReadyAsync\0"); |
|---|
| 2387 |
HTMLayoutProc=cast(HTMLayoutProc_t)dll.symbol("HTMLayoutProc\0"); |
|---|
| 2388 |
HTMLayoutProcND=cast(HTMLayoutProcND_t)dll.symbol("HTMLayoutProcND\0"); |
|---|
| 2389 |
HTMLayoutGetMinWidth=cast(HTMLayoutGetMinWidth_t)dll.symbol("HTMLayoutGetMinWidth\0"); |
|---|
| 2390 |
HTMLayoutGetMinHeight=cast(HTMLayoutGetMinHeight_t)dll.symbol("HTMLayoutGetMinHeight\0"); |
|---|
| 2391 |
HTMLayoutLoadFile=cast(HTMLayoutLoadFile_t)dll.symbol("HTMLayoutLoadFile\0"); |
|---|
| 2392 |
HTMLayoutLoadHtml=cast(HTMLayoutLoadHtml_t)dll.symbol("HTMLayoutLoadHtml\0"); |
|---|
| 2393 |
HTMLayoutLoadHtmlEx=cast(HTMLayoutLoadHtmlEx_t)dll.symbol("HTMLayoutLoadHtmlEx\0"); |
|---|
| 2394 |
HTMLayoutSetMode=cast(HTMLayoutSetMode_t)dll.symbol("HTMLayoutSetMode\0"); |
|---|
| 2395 |
HTMLayoutSetCallback=cast(HTMLayoutSetCallback_t)dll.symbol("HTMLayoutSetCallback\0"); |
|---|
| 2396 |
HTMLayoutSelectionExist=cast(HTMLayoutSelectionExist_t)dll.symbol("HTMLayoutSelectionExist\0"); |
|---|
| 2397 |
HTMLayoutGetSelectedHTML=cast(HTMLayoutGetSelectedHTML_t)dll.symbol("HTMLayoutGetSelectedHTML\0"); |
|---|
| 2398 |
HTMLayoutClipboardCopy=cast(HTMLayoutClipboardCopy_t)dll.symbol("HTMLayoutClipboardCopy\0"); |
|---|
| 2399 |
HTMLayoutEnumResources=cast(HTMLayoutEnumResources_t)dll.symbol("HTMLayoutEnumResources\0"); |
|---|
| 2400 |
HTMLayoutSetMasterCSS=cast(HTMLayoutSetMasterCSS_t)dll.symbol("HTMLayoutSetMasterCSS\0"); |
|---|
| 2401 |
HTMLayoutSetCSS=cast(HTMLayoutSetCSS_t)dll.symbol("HTMLayoutSetCSS\0"); |
|---|
| 2402 |
HTMLayoutSetMediaType=cast(HTMLayoutSetMediaType_t)dll.symbol("HTMLayoutSetMediaType\0"); |
|---|
| 2403 |
HTMLayoutSetHttpHeaders=cast(HTMLayoutSetHttpHeaders_t)dll.symbol("HTMLayoutSetHttpHeaders\0"); |
|---|
| 2404 |
HTMLayoutRender=cast(HTMLayoutRender_t)dll.symbol("HTMLayoutRender\0"); |
|---|
| 2405 |
HTMLayoutDialog=cast(HTMLayoutDialog_t)dll.symbol("HTMLayoutDialog\0"); |
|---|
| 2406 |
HTMLiteCreateInstance=cast(HTMLiteCreateInstance_t)dll.symbol("HTMLiteCreateInstance\0"); |
|---|
| 2407 |
HTMLiteDestroyInstance=cast(HTMLiteDestroyInstance_t)dll.symbol("HTMLiteDestroyInstance\0"); |
|---|
| 2408 |
HTMLiteSetTag=cast(HTMLiteSetTag_t)dll.symbol("HTMLiteSetTag\0"); |
|---|
| 2409 |
HTMLiteGetTag=cast(HTMLiteGetTag_t)dll.symbol("HTMLiteGetTag\0"); |
|---|
| 2410 |
HTMLiteLoadHtmlFromFile=cast(HTMLiteLoadHtmlFromFile_t)dll.symbol("HTMLiteLoadHtmlFromFile\0"); |
|---|
| 2411 |
HTMLiteLoadHtmlFromMemory=cast(HTMLiteLoadHtmlFromMemory_t)dll.symbol("HTMLiteLoadHtmlFromMemory\0"); |
|---|
| 2412 |
HTMLiteMeasure=cast(HTMLiteMeasure_t)dll.symbol("HTMLiteMeasure\0"); |
|---|
| 2413 |
HTMLiteRender=cast(HTMLiteRender_t)dll.symbol("HTMLiteRender\0"); |
|---|
| 2414 |
HTMLiteRenderOnBitmap=cast(HTMLiteRenderOnBitmap_t)dll.symbol("HTMLiteRenderOnBitmap\0"); |
|---|
| 2415 |
HTMLiteSetDataReady=cast(HTMLiteSetDataReady_t)dll.symbol("HTMLiteSetDataReady\0"); |
|---|
| 2416 |
HTMLiteGetDocumentMinWidth=cast(HTMLiteGetDocumentMinWidth_t)dll.symbol("HTMLiteGetDocumentMinWidth\0"); |
|---|
| 2417 |
HTMLiteGetDocumentMinHeight=cast(HTMLiteGetDocumentMinHeight_t)dll.symbol("HTMLiteGetDocumentMinHeight\0"); |
|---|
| 2418 |
HTMLiteSetMediaType=cast(HTMLiteSetMediaType_t)dll.symbol("HTMLiteSetMediaType\0"); |
|---|
| 2419 |
HTMLiteGetRootElement=cast(HTMLiteGetRootElement_t)dll.symbol("HTMLiteGetRootElement\0"); |
|---|
| 2420 |
HTMLiteFindElement=cast(HTMLiteFindElement_t)dll.symbol("HTMLiteFindElement\0"); |
|---|
| 2421 |
HTMLiteSetCallback=cast(HTMLiteSetCallback_t)dll.symbol("HTMLiteSetCallback\0"); |
|---|
| 2422 |
HTMLiteAdvanceFocus=cast(HTMLiteAdvanceFocus_t)dll.symbol("HTMLiteAdvanceFocus\0"); |
|---|
| 2423 |
HTMLiteTraverseUIEvent=cast(HTMLiteTraverseUIEvent_t)dll.symbol("HTMLiteTraverseUIEvent\0"); |
|---|
| 2424 |
HTMLayoutSetElementState=cast(HTMLayoutSetElementState_t)dll.symbol("HTMLayoutSetElementState\0"); |
|---|
| 2425 |
HTMLayoutDetachEventHandler=cast(HTMLayoutDetachEventHandler_t)dll.symbol("HTMLayoutDetachEventHandler\0"); |
|---|
| 2426 |
HTMLayoutWindowDetachEventHandler=cast(HTMLayoutWindowDetachEventHandler_t)dll.symbol("HTMLayoutWindowDetachEventHandler\0"); |
|---|
| 2427 |
HTMLayoutRangeCreate=cast(HTMLayoutRangeCreate_t)dll.symbol("HTMLayoutRangeCreate\0"); |
|---|
| 2428 |
HTMLayoutRangeFromSelection=cast(HTMLayoutRangeFromSelection_t)dll.symbol("HTMLayoutRangeFromSelection\0"); |
|---|
| 2429 |
HTMLayoutRangeFromPositions=cast(HTMLayoutRangeFromPositions_t)dll.symbol("HTMLayoutRangeFromPositions\0"); |
|---|
| 2430 |
HTMLayoutRangeRelease=cast(HTMLayoutRangeRelease_t)dll.symbol("HTMLayoutRangeRelease\0"); |
|---|
| 2431 |
HTMLayoutRangeAdvancePos=cast(HTMLayoutRangeAdvancePos_t)dll.symbol("HTMLayoutRangeAdvancePos\0"); |
|---|
| 2432 |
HTMLayoutRangeToHtml=cast(HTMLayoutRangeToHtml_t)dll.symbol("HTMLayoutRangeToHtml\0"); |
|---|
| 2433 |
HTMLayoutRangeReplace=cast(HTMLayoutRangeReplace_t)dll.symbol("HTMLayoutRangeReplace\0"); |
|---|
| 2434 |
HTMLayoutRangeInsertHtml=cast(HTMLayoutRangeInsertHtml_t)dll.symbol("HTMLayoutRangeInsertHtml\0"); |
|---|
| 2435 |
HTMLayoutRangeIsEmpty=cast(HTMLayoutRangeIsEmpty_t)dll.symbol("HTMLayoutRangeIsEmpty\0"); |
|---|
| 2436 |
HTMLayoutSetOption=cast(HTMLayoutSetOption_t)dll.symbol("HTMLayoutSetOption\0"); |
|---|
| 2437 |
HTMLayoutDeclareElementType=cast(HTMLayoutDeclareElementType_t)dll.symbol("HTMLayoutDeclareElementType\0"); |
|---|
| 2438 |
HTMLayoutAppendMasterCSS=cast(HTMLayoutAppendMasterCSS_t)dll.symbol("HTMLayoutAppendMasterCSS\0"); |
|---|
| 2439 |
HTMLayoutScrollToView=cast(HTMLayoutScrollToView_t)dll.symbol("HTMLayoutScrollToView\0"); |
|---|
| 2440 |
HTMLayoutElementSetExpando=cast(HTMLayoutElementSetExpando_t)dll.symbol("HTMLayoutElementSetExpando\0"); |
|---|
| 2441 |
HTMLayoutElementGetExpando=cast(HTMLayoutElementGetExpando_t)dll.symbol("HTMLayoutElementGetExpando\0"); |
|---|
| 2442 |
HTMLayoutParseValue=cast(HTMLayoutParseValue_t)dll.symbol("HTMLayoutParseValue\0"); |
|---|
| 2443 |
HTMLayoutGetGraphin=cast(HTMLayoutGetGraphin_t)dll.symbol("HTMLayoutGetGraphin\0"); |
|---|
| 2444 |
HTMLayoutRenderElement=cast(HTMLayoutRenderElement_t)dll.symbol("HTMLayoutRenderElement\0"); |
|---|
| 2445 |
HTMLayoutGetElementLocation=cast(HTMLayoutGetElementLocation_t)dll.symbol("HTMLayoutGetElementLocation\0"); |
|---|
| 2446 |
|
|---|
| 2447 |
return true; |
|---|
| 2448 |
} |
|---|