51 MHEG5textPrint(&hypertext->text, out);
52 MHEG5interactiblePrint(&hypertext->interactible, out);
54 MHEG_PRINT(out,
"// LastAnchorFired:\t");
55 MHEG5stringPrint( hypertext->lastAnchorFired, out);
57 MHEG_PRINT(out,
"// FocusPosition:\t");
58 MHEG5intPrint(hypertext->focusPosition, out);
74 if ((hypertext->focusPosition != 0) && (hypertext->numberOfLinks != -1))
76 if (hypertext->focusPosition > 1)
78 hypertext->focusPosition--;
79 MHEG5drawHypertext(hypertext);
82 if (hypertext->focusPosition == 1 && hypertext->anchorWrappingFlag == MHEG5TRUE)
84 hypertext->focusPosition = hypertext->numberOfLinks;
85 MHEG5drawHypertext(hypertext);
89 if (hypertext->anchorWrappingFlag == MHEG5FALSE)
93 if (hypertext->lafAlloc)
96 hypertext->lafAlloc = MHEG5FALSE;
99 hypertext->lastAnchorFired = LNK_GetString( HTEXT_TOP_STR );
110 if ((hypertext->focusPosition != 0) && (hypertext->numberOfLinks != -1))
112 if (hypertext->focusPosition < hypertext->numberOfLinks)
114 hypertext->focusPosition++;
115 MHEG5drawHypertext(hypertext);
118 if (hypertext->focusPosition == hypertext->numberOfLinks &&
119 hypertext->anchorWrappingFlag == MHEG5TRUE)
121 hypertext->focusPosition = 1;
122 MHEG5drawHypertext(hypertext);
126 if (hypertext->anchorWrappingFlag == MHEG5FALSE)
130 if (hypertext->lafAlloc)
133 hypertext->lafAlloc = MHEG5FALSE;
136 hypertext->lastAnchorFired = LNK_GetString( HTEXT_BOT_STR );
143 unsigned short *data;
146 data = (
unsigned short *)hypertext->text.visible.ingredient.data;
153 for (i = 0; i != hypertext->text.visible.ingredient.dataLen; i++)
155 if ((data[i] == 0x1B) && (data[i + 1] == 0x41))
160 if (anchor != hypertext->focusPosition)
163 if (i >= hypertext->text.visible.ingredient.dataLen)
173 if (hypertext->lafAlloc)
176 hypertext->lafAlloc = MHEG5FALSE;
182 hypertext->lastAnchorFired.data = STR_DataAlloc(len);
183 if (hypertext->lastAnchorFired.data)
186 hypertext->lafAlloc = MHEG5TRUE;
188 for (j = 0; j != len; j++)
191 hypertext->lastAnchorFired.data[j] = (MHEG5Byte)data[i + 3 + j];
193 hypertext->lastAnchorFired.len = len;
197 hypertext->lastAnchorFired.len = 0;
202 hypertext->lastAnchorFired.data = NULL;
203 hypertext->lastAnchorFired.len = 0;
208 LNK_GetStringIndex( hypertext->lastAnchorFired ));
218 hypertext->focusPosition = 0;
219 hypertext->numberOfLinks = -1;
220 hypertext->anchorWrappingFlag = MHEG5FALSE;
251 if (hypertext->lafAlloc)
268 hypertext->numberOfLinks = -1;
269 hypertext->focusPosition = 0;
270 hypertext->lastFocusPosition = 0;
271 hypertext->anchorWrappingFlag = MHEG5FALSE;
279 if (!hypertext->text.visible.ingredient.root.runningStatus)
281 if (!hypertext->text.visible.ingredient.root.availabilityStatus)
284 hypertext->lastFocusPosition = 0;
286 MHEG5hyperTextInitCurrentLink(hypertext);
305 MHEG5interactibleDestruct(&hypertext->interactible);
316 if (target->clazz != MHEG5HYPERTEXT)
318 return MHEG5ERR_WRONGTARGET;
323 return MHEG5ERR_WRONGNUMBEROFPARAMS;
325 MHEG5resolveORef(params, &var);
328 return MHEG5ERR_REFERENCEDPARAMNOTAVAILABLE;
330 if (var->clazz != MHEG5OCTETSTRINGVARIABLE)
332 return MHEG5ERR_WRONGPARAM;
340 return MHEG5ERR_NOERROR;
349 if (target->clazz != MHEG5HYPERTEXT)
351 return MHEG5ERR_WRONGTARGET;
355 return MHEG5ERR_WRONGNUMBEROFPARAMS;
357 MHEG5resolveORef(params, &var);
360 return MHEG5ERR_REFERENCEDPARAMNOTAVAILABLE;
362 if (var->clazz != MHEG5INTEGERVARIABLE)
364 return MHEG5ERR_WRONGPARAM;
370 i_var->value = hypertext->focusPosition;
372 return MHEG5ERR_NOERROR;
377 MHEG5Int focusPosition;
382 if (target->clazz != MHEG5HYPERTEXT)
384 return MHEG5ERR_WRONGTARGET;
388 return MHEG5ERR_WRONGNUMBEROFPARAMS;
390 MHEG5resolveGenericInteger(params, &focusPosition);
393 hypertext->focusPosition = focusPosition;
394 MHEG5drawHypertext(hypertext);
395 return MHEG5ERR_NOERROR;
Implement the MHEG5 Hypertext Class. The HyperText class is a subclass of the Text class...
void MHEG5textDestruct(MHEG5Text *text)
Destruct a text object.
MHEG5String MHEG5stringCopy(MHEG5String source)
<Function description>="">
void MHEG5textPrepare(MHEG5Text *text)
Apply the preparation behaviour of the text class Apply the preparation behaviour of the text class...
Implement the MHEG5 Variable Class 21 Variable Class Defines a variable within the context of a Group...
void MHEG5stringDestruct(MHEG5String *item)
Destruct a MHEG5String.
void MHEG5hypertextDOWN(MHEG5Hypertext *hypertext)
void MHEG5interactibleDeactivate(MHEG5Interactible *interactible)
Implementation of the deactivation behaviour of the interactible class. This behaviour was introduced...
Event handling. Implementation of a combined queue for events and actions. This is the eventsystem wh...
void MHEG5textDeactivate(MHEG5Text *text)
Apply the deactivation behaviour of the text class. As this class has no own deactivation behaviour t...
void MHEG5textInit(MHEG5Text *text)
<Function description>="">
Implement functions to retrieve MHEG5objects by GroupID and ID.
void MHEG5textActivate(MHEG5Text *text)
Apply the activation behaviour of the text class. As this class has no own activation behaviour this ...
void MHEG5hypertextUP(MHEG5Hypertext *hypertext)
MHEG class interface to graphics text render.
void MHEG5interactibleInit(MHEG5Interactible *interactible)
<Function description>="">
void MHEG5hypertextInit(MHEG5Hypertext *hypertext)
Initialise a hypertext object with default values.
void MHEG5sendEvent(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the asynchronous event queue.
void MHEG5interactibleFree(MHEG5Interactible *interactible)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
void MHEG5textFree(MHEG5Text *text)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
Implement generic MHEG5-display functions - independent from the OSD These are generic functions used...
void MHEG5interactiblePrepare(MHEG5Interactible *interactible)
Sets all internal attributes for the specified object to their default values.
void MHEG5hypertextFree(MHEG5Hypertext *hypertext)
Free off all memory associated with the specified object, including any exchanged attributes and inte...