|
API Guide Home (Online version only) |
![]() |
00001 /* 00002 HtmlLib68K.h 00003 Copyright(c) 1996-2002 ACCESS CO., LTD. 00004 All rights are reserved by ACCESS CO., LTD., whether the whole or 00005 part of the source code including any modifications. 00006 */ 00007 00008 /** @defgroup HtmlLib HTML Library 00009 * The HTML Library helps applications render data. Please note that there is a limit of 64K of text data for a single content data object, so it is recommended that you do appropriate checks when adding text data for rendering, especially when adding text data repeatedly. 00010 * Additionally, the caller application is required to provide a set of form widget creation functions to the Html Library for dynamic UI creation. Please see the HtmlLibSetFormWidgetProc routine for details. 00011 * 00012 * @note It is important to be aware that this library modifies the active form pointer, so make sure to NOT cache the form pointer, but re-get it before use. 00013 * 00014 * @{ 00015 * @} 00016 */ 00017 /** 00018 @ingroup HtmlLib 00019 */ 00020 00021 /** 00022 * 00023 * @file HtmlLib68K.h 00024 * 00025 * @brief Public 68K include file for HTML shared library. 00026 * 00027 */ 00028 00029 #ifndef HTMLLIb68K_H__ 00030 #define HTMLLIb68K_H__ 00031 00032 #include <PalmTypes.h> 00033 #include <LibTraps.h> 00034 00035 #include <HtmlLibTrap.h> 00036 00037 #include <ErrorBase.h> 00038 00039 #define htmlErrorClass (appErrorClass) 00040 00041 /** 00042 * @name HtmlLib error codes 00043 * 00044 */ 00045 /*@{*/ 00046 /************************************************************ 00047 * HtmlLib error codes 00048 *************************************************************/ 00049 #define htmlErrInUse (htmlErrorClass | 1) 00050 #define htmlErrOutOfMemory (htmlErrorClass | 2) 00051 #define htmlErrInvalidParam (htmlErrorClass | 3) 00052 #define htmlErrNotFound (htmlErrorClass | 4) 00053 #define htmlErrNotInitialized (htmlErrorClass | 5) 00054 #define htmlErrCantOpen (htmlErrorClass | 6) 00055 /*@}*/ 00056 00057 #define htmlLibProgressEvent (0x7000) 00058 00059 /************************************************************ 00060 * HtmlLib l 00061 *************************************************************/ 00062 00063 #define HtmlLibID 'AsHL' 00064 #define HtmlLibDBType 'libr' 00065 #define HtmlLibName "HtmlLibrary" 00066 00067 00068 /* 00069 * Typedef 00070 */ 00071 00072 /** 00073 * @name Typedef 00074 */ 00075 /*@{*/ 00076 typedef UInt8 HtmlDisplayMode; 00077 typedef UInt16 HtmlProgressStatus; 00078 typedef UInt32 HtmlSubmitFormMethod; 00079 typedef Int8 HtmlScrollDirection; 00080 typedef Int8 HtmlScrollbarMode; 00081 00082 00083 /* HtmlFocusTargetType */ 00084 #define htmlTargetImage 0x01 00085 #define htmlTargetEmbed 0x02 00086 #define htmlTargetIFrame 0x03 00087 #define htmlTargetElement 0x04 00088 #define htmlTargetInputText 0x05 00089 #define htmlTargetInputPassword 0x06 00090 #define htmlTargetInputCheckbox 0x07 00091 #define htmlTargetInputRadio 0x08 00092 #define htmlTargetInputSubmit 0x09 00093 #define htmlTargetInputReset 0x0a 00094 #define htmlTargetInputFile 0x0b 00095 #define htmlTargetInputButton 0x0c 00096 #define htmlTargetInputTextarea 0x0d 00097 #define htmlTargetInputSelect 0x0e 00098 00099 typedef UInt16 HtmlFocusTargetType; 00100 00101 /** 00102 * @name Callback Functions 00103 */ 00104 /*@{*/ 00105 00106 00107 /** 00108 *Should be defined (to handle a link selection) and set as the function to be called when a link (url) is selected. 00109 */ 00110 typedef void HtmlLibLinkSelCallback(MemHandle htmlLibH, Char *url, void *cbData); 00111 00112 /** 00113 *Should be defined and set as the function to be called when it's necessary to determine if a string of numbers contains a phone number. 00114 * 00115 * Here, buffer contains the string of numbers that are being checked, and this is passed in by the library when the library calls this function. Length is the buffer's length, also passed in by the library. The last two arguments (patternStart and patternEnd) should get set in this callback function if the string of numbers passed in is determined to be a phone number (and thus the return value of the function is to be true). Now, patternStart is the place in the buffer that the phone number starts, and patternEnd is the place in the buffer that the pattern ends. For example, if the entire contents of the buffer passed in happened to be a phone number, then the start would be 0 and the end would be "length - 1", and the return value would be true. However, if what was passed in was not determined to be a phone number, then the return value of the callback function should be false, and the last two arguments do not need to be set. 00116 */ 00117 typedef Boolean HtmlLibScanPhoneNumberCallback(MemHandle htmlLibH, Char *buffer, Int32 length, Int32 *patternStart, Int32 *patternEnd); 00118 00119 /** 00120 *Should be defined and set as the function to be called when rendering a page requires additional content. 00121 * 00122 * HtmlLib calls this callback function with the appropriate arguments (where the url is the url of the additional content the library requires). 00123 */ 00124 typedef void HtmlLibInclusionCallback(MemHandle htmlLibH, Char *url, void *cbData); 00125 00126 /** 00127 * @note Forms are not supported; thus, use this at your own risk. 00128 * 00129 *Should be defined and set as the function to be called when a submit is activated. 00130 * 00131 * HtmlLib calls this callback function with the appropriate arguments. The following is an example (included in the sample code): 00132 * 00133 * @code 00134 * 00135 * void HtmlSubmitFormCallback(MemHandle htmlLibH, Char *url, HtmlSubmitFormMethod method, Char *query, void *cbData) 00136 * { 00137 * FrmCustomAlert(SubmitFormAlert, url, 00138 * (method == htmlHttpMethodPost ? "Post" : "Get"), query); 00139 * } 00140 * 00141 * @endcode 00142 * 00143 */ 00144 typedef void HtmlLibSubmitFormCallback(MemHandle htmlLibH, Char *url, HtmlSubmitFormMethod method, Char *query, void *cbData); 00145 00146 typedef Boolean NewControlProc(UInt16 id, 00147 UInt16 style, const Char *textP, 00148 Coord x, Coord y, Coord width, Coord height, 00149 UInt16 font, UInt8 group, Boolean leftAnchor); /**< @see HtmlLibFormWidgetProc*/ 00150 00151 typedef Err NewListProc(UInt16 id, 00152 Coord x, Coord y, Coord width, Coord height, 00153 UInt16 font, Int16 visibleItems, Int16 triggerId); /**< @see HtmlLibFormWidgetProc*/ 00154 00155 typedef Boolean NewFieldProc(UInt16 id, 00156 Coord x, Coord y, Coord width, Coord height, 00157 UInt16 font, UInt32 maxChars, UInt16 editable, UInt16 underlined, 00158 UInt16 singleLine, UInt16 dynamicSize, UInt16 justification, 00159 UInt16 autoShift, UInt16 hasScrollBar, UInt16 numeric); /**< @see HtmlLibFormWidgetProc*/ 00160 00161 typedef void DeleteObjectProc(UInt16 index); /**< @see HtmlLibFormWidgetProc*/ 00162 00163 /** @brief The following are necessary form widget creation/deletion routines that need to get set using HtmlLibSetFormWidgetProc. Please see sample code after looking at HtmlLibSetFormWidgetProc. 00164 * 00165 * @see HtmlLibSetFormWidgetProc 00166 */ 00167 typedef struct { 00168 NewControlProc *newControlProc; 00169 NewListProc *newListProc; 00170 NewFieldProc *newFieldProc; 00171 DeleteObjectProc *deleteObjectProc; 00172 } HtmlLibFormWidgetProc; 00173 /*@}*/ 00174 00175 /* HtmlLibFocusTargetInfo */ 00176 typedef struct { 00177 HtmlFocusTargetType type; 00178 RectangleType bounds; /* in window coordinate */ 00179 UInt16 formObjectID; /* set only for form object */ 00180 } HtmlLibFocusTargetInfo; 00181 00182 00183 /* HtmlDisplayMode */ 00184 /** @name HtmlDisplayMode */ 00185 /*@{*/ 00186 #define htmlHandheldDisplayMode 0x01 00187 #define htmlFaithfulDisplayMode 0x02 00188 /*@}*/ 00189 00190 00191 /* HtmlProgressStatus */ 00192 /** @name HtmlProgressStatus */ 00193 /*@{*/ 00194 #define htmlProgressDone 0x0001 00195 #define htmlProgressBusy 0x0002 00196 #define htmlProgressOutOfMemory 0x0003 00197 #define htmlProgressError 0x0004 00198 /*@}*/ 00199 00200 00201 /* HtmlSubmitFormMethod */ 00202 /** @name HtmlSubmitFormMethod */ 00203 /*@{*/ 00204 #define htmlHttpMethodGet 0x00000001 00205 #define htmlHttpMethodPost 0x00000002 00206 /*@}*/ 00207 00208 00209 /* HtmlDirections */ 00210 /** @name HtmlDirections */ 00211 /*@{*/ 00212 #define htmlDirLeft 0x01 00213 #define htmlDirRight 0x02 00214 #define htmlDirUp 0x03 00215 #define htmlDirDown 0x04 00216 /*@}*/ 00217 00218 00219 /* HtmlScrollMode */ 00220 /** @name HtmlScrollMode */ 00221 /*@{*/ 00222 #define htmlNormalScrollbarMode 0x01 00223 #define htmlNoPageScrollbarMode 0x02 00224 /*@}*/ 00225 00226 00227 /*@}*/ 00228 /* 00229 * API 00230 */ 00231 00232 /** Standard library open routine. 00233 * 00234 * @param refun IN: the library reference number 00235 * 00236 * @return Error code. 00237 */ 00238 Err HtmlLibOpen(UInt16 refnum) 00239 SYS_TRAP(kHtmlLibTrapOpen); 00240 00241 /** Standard library close routine. 00242 * 00243 * @param refun IN: the library reference number 00244 * 00245 * @return Error code. 00246 */ 00247 Err HtmlLibClose(UInt16 refnum) 00248 SYS_TRAP(kHtmlLibTrapClose); 00249 00250 /** Standard library sleep routine. 00251 * 00252 * @param refun IN: the library reference number 00253 * 00254 * @return Error code. 00255 */ 00256 Err HtmlLibSleep(UInt16 refnum) 00257 SYS_TRAP(kHtmlLibTrapSleep); 00258 00259 /** Standard library wake routine. 00260 * 00261 * @param refun IN: the library reference number 00262 * 00263 * @return Error code. 00264 */ 00265 Err HtmlLibWake(UInt16 refnum) 00266 SYS_TRAP(kHtmlLibTrapWake); 00267 00268 /** Html Library initialization function. 00269 * Initializes the library, after the library has been loaded. 00270 * 00271 * @param refNum IN: the library reference number 00272 * @param bounds IN: the screen area the library will draw the rendered content (bounds within 160 x 160 grid) 00273 * @param errP IN: error code if library fails to initialize. The error code can be one of 00274 * (htmlErrInUse, htmlErrOutOfMemory, htmlErrInvalidParam, htmlErrInUse, htmlErrCantOpen) 00275 * 00276 * @return A memory handle to the HTML library context. 00277 */ 00278 MemHandle HtmlLibInitialize(UInt16 refnum, RectangleType bounds, Err *errP) 00279 SYS_TRAP(kHtmlLibTrapInitialize); 00280 00281 MemHandle HtmlLibInitializeWithHeapSize(UInt16 refnum, RectangleType bounds, Err *errP, UInt32 heapMinSize, UInt32 heapDesiredSize, UInt32 *heapActualSizeP) 00282 SYS_TRAP(kHtmlLibTrapInitializeWithHeapSize); 00283 00284 /** Finalizes the library when you are done using it 00285 * @note If you need to use the library again after it has been finalized, you will need to re-initialize it. 00286 * 00287 * @param refNum IN: the library reference number 00288 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00289 */ 00290 void HtmlLibFinalize(UInt16 refnum, MemHandle htmllibH) 00291 SYS_TRAP(kHtmlLibTrapFinalize); 00292 00293 /** Resize the screen area. 00294 * 00295 * @param refNum IN: the library reference number 00296 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00297 * @param newBounds IN: the new bounds of the screen area (bounds within 160 x 160 grid) 00298 * 00299 * @return errNone if resize is successful, otherwise returns an error code (errInvalidParam) 00300 */ 00301 void HtmlLibResizeScreen(UInt16 refnum, MemHandle htmlLibH, RectangleType newBounds) 00302 SYS_TRAP(kHtmlLibTrapResizeScreen); 00303 00304 /** Sets the display mode (faithful rendering, which corresponds to Blazer's Wide Page Mode, or handheld wrapped, which corresponds to Blazer's Optimized Mode). 00305 * 00306 * @param refNum IN: the library reference number 00307 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00308 * @param mode IN: display mode (htmlFaithfulDisplayMode or htmlHandheldDisplayMode) 00309 * 00310 */ 00311 void HtmlLibSetDisplayMode(UInt16 refnum, MemHandle htmlLibH, HtmlDisplayMode mode) 00312 SYS_TRAP(kHtmlLibTrapSetDisplayMode); 00313 00314 /** Specify the function that you want the library to call when a link is followed. 00315 * 00316 * @param refNum IN: the library reference number 00317 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00318 * @param callback IN: a pointer to the function you want called when a link is followed. 00319 * @param cbData I/O: the library does nothing with this parameter except pass it on as one of the arguments to your callback function. To not take advantage of this feature, just pass in NULL. 00320 * 00321 * @note The callback function should be in the following form: 00322 * void HtmlLinkSelCallback(MemHandle htmlLibH, Char *url, void *cbData); 00323 * The library will call this function, supplying the appropriate arguments (where the url is the url of the link which was selected). 00324 * @see HtmlLibLinkSelCallback 00325 */ 00326 void HtmlLibSetLinkSelectionCallback(UInt16 refnum, MemHandle htmlLibH, HtmlLibLinkSelCallback *callback, void *cbData) 00327 SYS_TRAP(kHtmlLibTrapSetLinkSelectionCallback); 00328 00329 /** Specify the function that you want the library to call to determine whether some string of numbers contains a phone number. 00330 * 00331 * @param refNum IN: the library reference number 00332 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00333 * @param callback IN: a pointer to the function that HtmlLib will call to determine whether a string of numbers is a phone number, and should be handled as such. 00334 * 00335 * @note The callback function should be in the following form: 00336 * Boolean HtmlLibScanPhoneNumberCallback(MemHandle htmlLibH, Char *buffer, Int32 length, Int32 *patternStart, Int32 *patternEnd); 00337 * 00338 * @see HtmlLibScanPhoneNumberCallback 00339 */ 00340 void HtmlLibSetScanPhoneNumberCallback(UInt16 refnum, MemHandle htmlLibH, HtmlLibScanPhoneNumberCallback *callback) 00341 SYS_TRAP(kHtmlLibTrapSetScanPhoneNumberCallback); 00342 00343 /** Specify the function that you want the library to call when rendering a page requires additional content (an image that hasn't been added, an external style sheet, etc). 00344 * 00345 * @param refNum IN: the library reference number 00346 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00347 * @param callback IN: a pointer to the function you want called when rendering a page that requires additional content. 00348 * @param cbData I/O: the library does nothing with this parameter except pass it on as one of the arguments to your callback function. To not take advantage of this feature, just pass in NULL. 00349 * 00350 * @note: The callback function should be in the following form: 00351 * void HtmlLibInclusionCallback(MemHandle htmlLibH, Char *url, void *cbData); 00352 * 00353 * HtmlLib calls this callback function with the appropriate arguments (where the url is the url of the additional content the library requires). 00354 * 00355 * @see HtmlLibInclusionCallback 00356 * 00357 */ 00358 void HtmlLibSetInclusionCallback(UInt16 refnum, MemHandle htmlLibH, HtmlLibInclusionCallback *callback, void *cbData) 00359 SYS_TRAP(kHtmlLibTrapSetInclusionCallback); 00360 00361 /** @note: Forms are not supported; thus, use this at your own risk. 00362 * 00363 * This functions lets you specify the function that you want the library to call when a "submit" is activated. 00364 * 00365 * @param refNum IN: the library reference number 00366 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00367 * @param callback IN: a pointer to the function you want called when a "submit" is activated 00368 * @param cbData I/O: the library does nothing with this parameter except pass it on as one of the arguments to your callback function. To not take advantage of this feature, just pass in NULL. 00369 * 00370 * @note The callback function should be in the following form: 00371 * 00372 * HtmlLibSubmitFormCallback(MemHandle htmlLibH, Char *url, HtmlSubmitFormMethod method, Char *query, void *cbData); 00373 * 00374 * HtmlLib calls this callback function with the appropriate arguments. 00375 * 00376 * @see HtmlLibSubmitFormCallback 00377 * 00378 */ 00379 void HtmlLibSetSubmitFormCallback(UInt16 refnum, MemHandle htmlLibH, HtmlLibSubmitFormCallback *callback, void *cbData) 00380 SYS_TRAP(kHtmlLibTrapSetSubmitFormCallback); 00381 00382 /** Applications should call this function to allow HTML library to process content and draw to screen. 00383 * @note The Html Library will run only if you call this! 00384 * 00385 *@param refNum IN: the library reference number 00386 *@param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00387 *@param stayTime IN: maximum time (in milliseconds) for HTML library to do processing. (At least 1300 is recommend.) 00388 * 00389 *@return Status - htmlProgressDone, htmlProgressBusy, htmlProgressOutOfMemory, and other error codes. 00390 */ 00391 UInt16 HtmlLibProgress(UInt16 refnum, MemHandle htmlLibH, Int32 stayTime) 00392 SYS_TRAP(kHtmlLibTrapProgress); 00393 00394 /** Applications should call this function to notify HTML library of a UI event (any event that your application gets that the library should handle, such as a screen tap, or a key press). It is worth noting that you may create your own events and call this function for the library to handle it. By the same token, you can filter which events to pass to this function - you do not have to pass through every event. 00395 * 00396 *@param refNum IN: the library reference number 00397 *@param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00398 *@param eventP IN: the event you would like the library to handle 00399 * 00400 *@return True if the library considers this event handled. 00401 */ 00402 Boolean HtmlLibNotifyUIEvent(UInt16 refnum, MemHandle htmlLibH, EventType *eventP) 00403 SYS_TRAP(kHtmlLibTrapNotifyUIEvent); 00404 00405 /** Applications should call this function to find a given text string on the page. Page will automatically scroll to show search result. 00406 * 00407 *@param refNum IN: the library reference number 00408 *@param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00409 *@param searchString IN: the given text string we are looking for on the page 00410 *@param wrapSearch IN: true if you would like to wrap search 00411 * 00412 *@return Error code (errNone, htmlErrNotFound). 00413 */ 00414 Err HtmlLibFindText(UInt16 refnum, MemHandle htmlLibH, Char *searchString, Boolean wrapSearch) 00415 SYS_TRAP(kHtmlLibTrapFindText); 00416 00417 00418 /** Applications should use this function to retrieve the current selected text. Caller application must free the pointer returned in selectedText using MemPtrFree. 00419 * 00420 * @param refNum IN: the library reference number 00421 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00422 * @param selectedText IN: the selected text that we are retrieving 00423 * 00424 * @return This function returns false if no current selection, otherwise returns true. 00425 */ 00426 Boolean HtmlLibGetTextSelection(UInt16 refnum, MemHandle htmlLibH, Char **selectedText) 00427 SYS_TRAP(kHtmlLibTrapGetTextSelection); 00428 00429 00430 00431 /** This function clears the rendering screen. It must be called before content object is destroyed. 00432 * 00433 * 00434 * @param refNum IN: the library reference number 00435 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00436 */ 00437 void HtmlLibClearScreen(UInt16 refnum, MemHandle htmlLibH) 00438 SYS_TRAP(kHtmlLibTrapClearScreen); 00439 00440 00441 00442 /** This function aborts rendering of the current content. 00443 * 00444 * @param refNum IN: the library reference number 00445 * @param contentH IN: Memory Handle of the current content, returned by HtmlLibCreateContentObject 00446 * 00447 */ 00448 void HtmlLibAbortRenderData(UInt16 refnum, MemHandle htmlLibH) 00449 SYS_TRAP(kHtmlLibTrapAbortRenderData); 00450 00451 00452 00453 /** Creates a content object (structure in memory that contains content to be rendered). 00454 * 00455 * @param refNum IN: the library reference number 00456 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00457 * 00458 * @return This function returns the memory handle of a content data object. 00459 */ 00460 MemHandle HtmlLibCreateContentObject(UInt16 refnum, MemHandle htmlLibH) 00461 SYS_TRAP(kHtmlLibTrapCreateContentObject); 00462 00463 00464 00465 /** This function destroys the content data object created by HtmlLibCreateContentObject. 00466 * 00467 * @note Be cautious when destroying a content object - make sure it is not busy doing something else, like rendering data. You can use HtmlLibProgress to check for the status (busy or not), or you can call HtmlLibAbortRenderData first. 00468 * @param refNum IN: the library reference number 00469 * @param contentH IN: Memory Handle returned by HtmlLibCreateContentObject 00470 * 00471 */ 00472 void HtmlLibDestroyContentObject(UInt16 refnum, MemHandle contentH) 00473 SYS_TRAP(kHtmlLibTrapDestroyContentObject); 00474 00475 00476 00477 /** This function adds text data to the content data object created by HtmlLibCreateContentObject. Application should call HtmlLibRenderData when it has finished adding text data, for the data to be rendered. 00478 * @note There is a limit of 64K of text data per content object (and not just per call of HtmlLibAddTextData). 00479 * 00480 * @param refNum IN: the library reference number 00481 * @param contentH IN: Memory Handle returned by HtmlLibCreateContentObject 00482 * @param url IN: url of the page you are adding to (unique, to make sure nothing is written over) 00483 * @param mimeType IN: mime type of the text (such as "text/plain", "text/html") 00484 * @param charset IN: the character set (such as "us-ascii") 00485 * @param data IN: a reference to the text data to be added 00486 * @param dataLen IN: length of the data 00487 * 00488 * @return This function returns an error code (returns errNone if successful). 00489 */ 00490 Err HtmlLibAddTextData(UInt16 refnum, MemHandle contentH, Char *url, Char *mimeType, Char *charset, void *data, Int32 dataLen) 00491 SYS_TRAP(kHtmlLibTrapAddTextData); 00492 00493 00494 00495 /** This function adds images to HtmlLib. (You can use this to respond to Inclusion callback - please see section 2.1 Image Rendering). 00496 * 00497 * @param refNum IN: the library reference number 00498 * @param contentH IN: Memory Handle returned by HtmlLibCreateContentObject 00499 * @param url IN: url of the image 00500 * @param mimeType IN: mime type of the image (for example, "image/jpeg") 00501 * @param data IN: image data 00502 * @param dataLen IN: image data size 00503 * 00504 * @return Error code. 00505 * 00506 */ 00507 Err HtmlLibAddImageData(UInt16 refnum, MemHandle contentH, Char *url, Char *mimeType, void *data, Int32 dataLen) 00508 SYS_TRAP(kHtmlLibTrapAddImageData); 00509 00510 00511 00512 /** Applications should call this function after adding text data by HtmlLibAddTextData (or image data by HtmlLibAddImageData, see section 2.1 Image Rendering) to have HTML library start rendering the content. 00513 * 00514 * @param refNum IN: the library reference number 00515 * @param contentH IN: Memory Handle returned by HtmlLibCreateContentObject that contains the text data to be rendered 00516 * 00517 */ 00518 void HtmlLibRenderData(UInt16 refnum, MemHandle contentH) 00519 SYS_TRAP(kHtmlLibTrapRenderData); 00520 00521 00522 00523 /** This redraws the HtmlLib rendering screen (for example, when application receives a frmUpdate event). 00524 * 00525 * @param refNum IN: the library reference number 00526 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00527 * 00528 */ 00529 void HtmlLibRedrawScreen(UInt16 refnum, MemHandle htmlLibH) 00530 SYS_TRAP(kHtmlLibTrapRedrawScreen); 00531 00532 00533 00534 /** This function passes an array of scrollbars to HtmlLib. Html library will not display any scrollbar if application does not call this function (scrollbars cannot be added dynamically). Application is recommended to pass no less than 4 (or at the very least 2) scrollbars, and up to 9 scrollbars. 00535 * For example (after defining RenderScroll0ScrollBar and RenderScroll1ScrollBar): 00536 * 00537 * @code 00538 * UInt16 scrollbars[2] = {RenderScroll0ScrollBar, RenderScroll1ScrollBar}; 00539 * HtmlLibSetScrollbars(gRefNum, gHtmlLibH, scrollbars, 2); 00540 * @endcode 00541 * 00542 * @param refNum IN: the library reference number 00543 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00544 * @param scrollbars IN: array of scrollbars 00545 * @param size IN: size of the array of scrollbars 00546 * 00547 */ 00548 void HtmlLibSetScrollbars(UInt16 refnum, MemHandle htmlLibH, UInt16 *scrollbars, UInt16 size) 00549 SYS_TRAP(kHtmlLibTrapSetScrollbars); 00550 00551 00552 00553 /** This function obtains the current scroll position in pixels from the top of the page. 00554 * 00555 * @param refNum IN: the library reference number 00556 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00557 * @param valueP IN: at function's return, this contains the position in pixels from the top of the page 00558 * 00559 * @return Error code. 00560 * 00561 */ 00562 Err HtmlLibGetVScrollPosition(UInt16 refnum, MemHandle htmlLibH, Int16 *valueP) 00563 SYS_TRAP(kHtmlLibTrapGetVScrollPosition); 00564 00565 00566 00567 00568 /** This function sets the current scroll position in pixels from the top of the page. If the total page height of the current page is less than this, this scrolls the page to the bottom. 00569 * 00570 * @param refNum IN: the library reference number 00571 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00572 * @param newPosition IN: the position in pixels from the top of the page 00573 * 00574 * @return Error code. 00575 * 00576 */ 00577 Err HtmlLibSetVScrollPosition(UInt16 refnum, MemHandle htmlLibH, Int16 newPosition) 00578 SYS_TRAP(kHtmlLibTrapSetVScrollPosition); 00579 00580 00581 00582 /** This function lets you know whether scrolling is possible in the indicated direction. 00583 * 00584 * @param refNum IN: the library reference number 00585 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00586 * @param direction IN: htmlDirLeft, htmlDirRight, htmlDirUp, htmlDirDown 00587 * 00588 * @return Function outputs true if scrolling in the indicated direction is possible. 00589 * 00590 */ 00591 Boolean HtmlLibCanScroll(UInt16 refnum, MemHandle htmlLibH, HtmlScrollDirection direction) 00592 SYS_TRAP(kHtmlLibTrapCanScroll); 00593 00594 00595 00596 00597 /** This function sets the page's scrollbar mode, without affecting the scrollbars of a textarea. A reason to use htmlNoPageScrollbarMode and not htmlNormalScrollbarMode is if you would like to use your own scrollbars, and use HtmlLib(Set/Get)VScrollPosition to do so. 00598 * 00599 * @param refNum IN: the library reference number 00600 * @param htmlLibH IN: the memory handle returned by HtmlLibInitialize 00601 * @param mode IN: scrollbar mode (htmlNormalScrollbarMode to enable scrolling or htmlNoPageScrollbarMode for no scrolling) 00602 * 00603 * @return Error code. (htmlErrNotInitialized, htmlErrInUse) 00604 * 00605 */ 00606 Err HtmlLibSetScrollbarMode(UInt16 refnum, MemHandle htmlLibH, HtmlScrollbarMode mode) 00607 SYS_TRAP(kHtmlLibTrapSetScrollbarMode); 00608 00609 00610 /** This function will control the size of the font used by HtmlLib. 00611 * 00612 * @param refNum IN: the library reference number 00613 * @param htmlLibH IN: htmlLib handle 00614 * @param value IN: true if you would like bigger font (bigger font corresponds to the Large font option in Blazer), and false otherwise (false would correspond to the Small font option in Blazer). 00615 * 00616 * @return Error code. 00617 * 00618 */ 00619 Err HtmlLibSetBiggerFont(UInt16 refnum, MemHandle htmlLibH, Boolean value) 00620 SYS_TRAP(kHtmlLibTrapSetBiggerFont); 00621 00622 00623 /** This function reinitializes the focus to point to nothing. 00624 * 00625 * @param refNum IN: the library reference number 00626 * @param htmlLibH IN: htmlLib handle 00627 * 00628 * @return True if the focus was reset to point to nothing. 00629 * 00630 */ 00631 Boolean HtmlLibResetFocusInfo(UInt16 refnum, MemHandle htmlLibH) 00632 SYS_TRAP(kHtmlLibTrapResetFocusInfo); 00633 00634 00635 /** This function sets the focus according to the condition flags passed in. 00636 * 00637 * @param refNum IN: the library reference number 00638 * @param htmlLibH IN: htmlLib handle 00639 * @param flag - Enables (true) or Disables (false) focus handling 00640 * @param reset_focus - if flag is true: if reset_focus is true, then the code tries to set the next focus onto the next target in the event focus walk chain. If false, it again sets the focus to the current event target. 00641 * 00642 */ 00643 void HtmlLibSetFocusStatus(UInt16 refnum, MemHandle htmlLibH, Boolean flag, Boolean reset_focus) 00644 SYS_TRAP(kHtmlLibTrapSetFocusStatus); 00645 00646 /* 68K only */ 00647 00648 /** This function sets the function pointers of some necessary form widget creation/deletion routines. 00649 *The following is sufficient for most purposes (and included in the sample application): 00650 * 00651 * @code 00652 * 00653 * static HtmlLibFormWidgetProc *widgetProc = NULL; 00654 * 00655 * widgetProc = MemPtrNew(sizeof(HtmlLibFormWidgetProc)); 00656 * if (widgetProc) { 00657 * //functions defined in sample code 00658 * widgetProc->newControlProc = RendererNewControlProc; 00659 * widgetProc->newFieldProc = RendererNewFieldProc; 00660 * widgetProc->newListProc = RendererNewListProc; 00661 * widgetProc->deleteObjectProc = RendererDeleteObjectProc; 00662 * } 00663 * 00664 * HtmlLibSetFormWidgetProc(refNum, htmlLibH, widgetProc); 00665 * 00666 * @endcode 00667 * 00668 * A standard example of the necessary form widget creation/deletion routines are provided below, and can be found in the sample code. 00669 * 00670 * @code 00671 * 00672 * static Boolean 00673 * RendererNewControlProc(UInt16 ID, 00674 * UInt16 style, const Char *textP, 00675 * Coord x, Coord y, Coord width, Coord height, 00676 * UInt16 font, UInt8 group, Boolean leftAnchor) 00677 * 00678 * { 00679 * ControlType *ctlP; 00680 * FormType *formP = FrmGetActiveForm(); 00681 * ctlP = CtlNewControl((void**)&formP, ID, style, textP, x, y, width, height, font, group, leftAnchor); 00682 * if (ctlP) { 00683 * return true; 00684 * } 00685 * return false; 00686 * } 00687 * 00688 * static Boolean 00689 * RendererNewFieldProc(UInt16 id, 00690 * Coord x, Coord y, Coord width, Coord height, 00691 * UInt16 font, UInt32 maxChars, UInt16 editable, UInt16 underlined, 00692 * UInt16 singleLine, UInt16 dynamicSize, UInt16 justification, 00693 * UInt16 autoShift, UInt16 hasScrollBar, UInt16 numeric) 00694 * 00695 * { 00696 * FieldType *fieldP; 00697 * FormType *formP = FrmGetActiveForm(); 00698 * fieldP = FldNewField((void**)&formP, id, x, y, width, height, (FontID)font, 00699 * maxChars, (Boolean)editable, (Boolean)underlined, (Boolean)singleLine, 00700 * (Boolean)dynamicSize, (JustificationType)justification, (Boolean)autoShift, 00701 * (Boolean)hasScrollBar, (Boolean)numeric); 00702 * if (fieldP) { 00703 * return true; 00704 * } 00705 * return false; 00706 * } 00707 * 00708 * static Err 00709 * RendererNewListProc(UInt16 id, 00710 * Coord x, Coord y, Coord width, Coord height, 00711 * UInt16 font, Int16 visibleItems, Int16 triggerId) 00712 * { 00713 * FormType *formP = FrmGetActiveForm(); 00714 * return LstNewList((void**)&formP, id, x, y, width, height, font, 00715 * visibleItems, triggerId); 00716 * } 00717 * 00718 * static void 00719 * RendererDeleteObjectProc(UInt16 index) 00720 * { 00721 * FormType *formP = FrmGetActiveForm(); 00722 * FrmRemoveObject(&formP, index); 00723 * } 00724 * 00725 * @endcode 00726 * 00727 * 00728 * @param refNum IN: HTML library reference number 00729 * @param htmlLibH IN: htmlLib handle 00730 * @param proc IN: function pointers of form widget creation/deletion routines. 00731 * 00732 */ 00733 void HtmlLibSetFormWidgetProc(UInt16 refnum, MemHandle htmlLibH, HtmlLibFormWidgetProc *proc) 00734 SYS_TRAP(kHtmlLibTrapSetFormWidgetProc); 00735 00736 Boolean HtmlLibGetTargetInfo(UInt16 refnum, MemHandle htmlLibH, HtmlLibFocusTargetInfo *htmlTargetInfo) 00737 SYS_TRAP(kHtmlLibTrapGetTargetInfo); 00738 00739 Err HtmlLibSetImageMemoryLimit(UInt16 renum, MemHandle htmlLibH, Int32 limit) 00740 SYS_TRAP(kHtmlLibTrapSetImageMemoryLimit); 00741 00742 #endif /* HTMLLIb68K_H__ */
| Top | Palm Developer Network © 2004-2008, Palm, Inc. All rights reserved. Generated on Fri Jun 13 10:06:53 2008 for Palm API Guide |