51 #ifndef MHEG5PROFILE_UK1_06 100 MHEG5intPrint(item->
id, out);
101 MHEG_PRINT(out,
") ");
106 MHEG5listGroupItemsPrint(grp, item->
next, out);
110 static void MHEG5listGroupPositionsPrint(
MHEG5PosList *pos,
char *out)
113 MHEG_PRINT(out,
"(");
115 MHEG_PRINT(out,
" ");
117 MHEG_PRINT(out,
")");
120 MHEG5listGroupPositionsPrint(pos->
next, out);
125 MHEG5tokenGroupPrint(&listGroup->
tokenGroup, out);
130 MHEG_PRINT(out,
":OriginalPositions");
139 MHEG_PRINT(out,
":WrapAround TRUE");
145 MHEG_PRINT(out,
":MultipleSelection TRUE");
151 MHEG_PRINT(out,
"// :Positions");
154 MHEG5listGroupPositionsPrint(listGroup->
positions, out);
160 MHEG_PRINT(out,
"// FirstItem:\t");
161 MHEG5intPrint(listGroup->
firstItem, out);
167 MHEG_PRINT(out,
"// PositionCount:\t");
174 MHEG_PRINT(out,
"// ItemCount:\t");
175 MHEG5intPrint(listGroup->
itemCount, out);
181 MHEG_PRINT(out,
"// :Items");
184 MHEG5listGroupItemsPrint(listGroup, listGroup->
itemList, out);
223 copy = &newItem->
next;
224 position = position->
next;
271 INFO_PRINT((
"Adding position (%d, %d) to ListGroup id=%d\n", x, y, ((
MHEG5Root *)listGroup)->
id));
291 while (position->
next)
293 position = position->
next;
295 position->
next = newItem;
325 MHEG5listGroupInitInternal(listGroup);
353 if ((item->
id == token_ptr->
id) &&
373 newItem->
id = token_ptr->
id;
379 lastItem->
next = newItem;
450 MHEG5listGroupUpdate(listGroup);
498 static void MHEG5listGroupUpdateItemVisibleIndices(
MHEG5ListGroup *listGroup)
516 if ((itemPos >= firstItem) &&
517 (itemPos < firstItem + listGroup->positionCount))
525 (itemPos < firstItem) &&
548 static void MHEG5listGroupDeactivateNotPresentedVisibles(
MHEG5ListGroup *listGroup)
578 static void MHEG5listGroupPreparePresentedVisibles(
MHEG5ListGroup *listGroup)
600 switch (visible->
clazz)
630 #ifndef MHEG5PROFILE_UK1_06 697 static void MHEG5listGroupActivatePresentedVisibles(
MHEG5ListGroup *listGroup)
762 if (!((
MHEG5Root *)listGroup)->runningStatus)
764 DEBUG_PRINT((
"WARNING: MHEG5listGroupUpdate - listgroup id=%d not running\n", ((
MHEG5Root *)listGroup)->
id));
769 MHEG5listGroupUpdateItemVisibleIndices(listGroup);
775 MHEG5listGroupDeactivateNotPresentedVisibles(listGroup);
781 MHEG5listGroupPreparePresentedVisibles(listGroup);
786 MHEG5listGroupActivatePresentedVisibles(listGroup);
802 INFO_PRINT((
"Adding item ( %d, %d ) to ListGroup id=%d\n", grpRef.
len,
id, ((
MHEG5Root *)listGroup)->id));
810 if ((item->
id ==
id) &&
814 DEBUG_PRINT((
"MHEG5listGroupAddItem: Item already in ListGroup\n"));
823 if ((idx < 1) || (idx > listGroup->
itemCount + 1))
825 DEBUG_PRINT((
"MHEG5listGroupAddItem: Index out of range\n"));
855 TRACE(TERROR,(
"Out of memory"))
885 while (item && (i<idx))
893 assert( item != NULL );
918 MHEG5listGroupUpdate(listGroup);
935 INFO_PRINT((
"Deleting item ( %ld ) from ListGroup %d\n",
id, ((
MHEG5Root *)listGroup)->
id));
946 if ((item->
id ==
id) &&
985 if ((idx <= listGroup->firstItem) && (listGroup->
firstItem > 1))
999 MHEG5listGroupUpdate(listGroup);
1019 for (i = 1; (i < itemIndex) && (item != NULL); i++)
1053 MHEG5listGroupDeselect(listGroup, idx);
1055 item2 = item2->
next;
1078 for (i = 1; (i < itemIndex) && (item != NULL); i++)
1132 return ((idx - 1) % listGroup->
itemCount) + 1;
1179 if ((
id == 0) || (gref.
ptr.
group == 0))
1188 MHEG5listGroupAddItem((
MHEG5ListGroup *)target, itemIndex, gref,
id);
1216 if ((
id == 0) || (gref.
ptr.
group == 0))
1286 if ((itemIndex >= 1) && (itemIndex <= listGroup->
itemCount))
1300 idx = MHEG5listGroupAdjustindex(listGroup, itemIndex);
1305 for (i = 1; (i < idx) && (item != NULL); i++)
1322 TRACE(TERROR, (
"itemIndex=%d wr=%d", itemIndex, listGroup->
wrapAround))
1395 first = MHEG5listGroupAdjustindex(listGroup, listGroup->
firstItem + idx - 1);
1411 while ((first) && (item))
1486 if ((itemIndex >= 1) && (itemIndex <= listGroup->
itemCount))
1500 idx = MHEG5listGroupAdjustindex(listGroup, itemIndex);
1505 for (i = 1; (i < idx) && (item != NULL); i++)
1559 if ((itemIndex >= 1) && (itemIndex <= listGroup->
itemCount))
1573 idx = MHEG5listGroupAdjustindex(listGroup, itemIndex);
1577 MHEG5listGroupSelect(listGroup, idx);
1614 if ((itemIndex >= 1) && (itemIndex <= listGroup->
itemCount))
1628 idx = MHEG5listGroupAdjustindex(listGroup, itemIndex);
1632 MHEG5listGroupDeselect(listGroup, idx);
1671 if ((itemIndex >= 1) && (itemIndex <= listGroup->
itemCount))
1685 idx = MHEG5listGroupAdjustindex(listGroup, itemIndex);
1694 for (i = 1; i < idx; i++)
1709 MHEG5listGroupDeselect(listGroup, idx);
1713 MHEG5listGroupSelect(listGroup, idx);
1727 MHEG5Int itemsToScroll = 0, newIndex;
1744 newIndex = listGroup->
firstItem + itemsToScroll;
1753 if ((newIndex >= 1) && (newIndex <= listGroup->
itemCount))
1767 listGroup->
firstItem = MHEG5listGroupAdjustindex(listGroup, newIndex);
1770 if (oldFirstItem != listGroup->
firstItem)
1778 MHEG5listGroupUpdate(listGroup);
1816 if ((newFirstItem >= 1) && (newFirstItem <= listGroup->
itemCount))
1830 listGroup->
firstItem = MHEG5listGroupAdjustindex(listGroup, newFirstItem);
1833 if (oldFirstItem != listGroup->
firstItem)
1841 MHEG5listGroupUpdate(listGroup);
1943 MHEG5Int idx, newXPosition, newYPosition;
1968 for (counter = 1; counter < idx; ++counter)
1972 position = position->
next;
1979 MHEG5listGroupUpdate(listGroup);
MHEG5Bool availabilityStatus
MHEG5ErrorCode MHEG5getCellItem(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup GetCellItem elementary action.
Implement the MHEG5 Hypertext Class. The HyperText class is a subclass of the Text class...
Distributor for Prepare, Destruct, Activate, Deactivate and Clone calls. Distribute the +Prepare +Des...
MHEG5Bool MHEG5sameGroup(MH5GroupPtr gptr, MH5GroupRef gref)
Compares group ptr with group ref to see whether they both reference the same group. The first is pointer to group, the second can be a relative group name and will be converted to absolute prior to the comparison, so two different references that resolve to reference the same group name produces a True return value.
MHEG5ErrorCode MHEG5addItem(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup AddItem elementary action.
MHEG5TokenGroup tokenGroup
Implementation of the RTGraphics class Description Defines the attributes and behaviour of non-persis...
void MHEG5finalActivate(MHEG5Root *item)
Implement the MHEG5 Dynamiclineart Class Defines means to dynamically draw vectorial graphical object...
MHEG5ErrorCode MHEG5setFirstItem(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup SetFirstItem elementary action.
MHEG5ErrorCode MHEG5toggleItem(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup ToggleItem elementary action.
void MHEG5cursorShapePrepare(MHEG5CursorShape *cursorShape)
Apply the preparation behaviour of the cursorshape class Apply the preparation behaviour of the curso...
MHEG5Bool lastItemVisible
void MHEG5finalDeactivate(MHEG5Root *item)
Implementation of the Video class Description Defines the attributes and behaviour of an elementary v...
MHEG5Root * MHEG5findObject(MH5GroupRef gid, MHEG5Int id)
struct sMHEG5Group * MH5GroupPtr
MHEG5GList * MHEG5resolveGenericInteger(MHEG5GList *params, MHEG5Int *value)
MHEG5ErrorCode MHEG5getFirstItem(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup GetFirstItem elementary action.
MHEG5ErrorCode MHEG5deselectItem(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup DeselectItem elementary action.
Implement the MHEG5 Hotspot Class. Defines invisible unlabelled rectangular areas on the screen that ...
union sMH5GroupRef::@5 ptr
void MHEG5objRefStoreValue(MHEG5ObjectRefVariable *objRef, MH5GroupRef ref, MHEG5Int id)
Implementation of the Group class Description Defines the structure and behaviour of objects used as ...
void MHEG5ingredientActivate(MHEG5Ingredient *ingredient)
Implementation of Activate behaviour Inherrited from Root class.
void MHEG5listGroupDestruct(MHEG5ListGroup *listGroup)
Implementation of the ListGroup Destruction behaviour.
void MHEG5tokenGroupPrepare(MHEG5TokenGroup *tokenGroup)
MHEG5Bool multipleSelection
Implement the MHEG5 Slider Class. Slider Class. Defines the behaviour of sliders. Base class: Visible...
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 MHEG5listGroupFree(MHEG5ListGroup *listGroup)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
MHEG5ErrorCode MHEG5delItem(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup DelItem elementary action.
void MHEG5listGroupAddPosition(MHEG5ListGroup *listGroup, MHEG5Int x, MHEG5Int y)
Adds a new cell position to the ListGroup.
Implement the MHEG5 ListGroup Class Defines the location of list elements on the screen and theire in...
MHEG5Bool MHEG5sameGroups(MH5GroupRef gref1, MH5GroupRef gref2)
Compares two group ID strings to see whether they both reference the same group. Relative group ID st...
void MHEG5dynamicLineartPrepare(MHEG5DynamicLineart *dynamicLineart)
Apply the preparation behaviour of the dynamiclineart class Apply the preparation behaviour of the dy...
void MHEG5tokenGroupDestruct(MHEG5TokenGroup *tokenGroup)
void MHEG5listGroupActivate(MHEG5ListGroup *listGroup)
Implementation of the ListGroup Activation behaviour.
void MHEG5videoPrepare(MHEG5Video *video)
Apply the preparation behaviour of the video class As this class has no own preparation behaviour thi...
void MHEG5listGroupDeactivate(MHEG5ListGroup *listGroup)
Implementation of the ListGroup Deactivation behaviour.
This file defines the profile for the MHEG engine.
void MHEG5hotspotPrepare(MHEG5Hotspot *hotspot)
void MHEG5tokenGroupDeactivate(MHEG5TokenGroup *tokenGroup)
void MHEG5sliderPrepare(MHEG5Slider *slider)
Apply the preparation behaviour of the slider class Apply the preparation behaviour of the slider cla...
Implement Functions to support Service Gateways. Functions for standarizing several GroupIDs like +DS...
struct sMHEG5PosList * next
Implement the MHEG5 Rectangle Class Rectangle Class Defines a data structure that deals with rectangl...
void MHEG5rtgraphicsPrepare(MHEG5RTGraphics *rtgraphics)
Apply the preparation behaviour of the RTGraphics class As this class has no own preparation behaviou...
MHEG5ErrorCode MHEG5getListSize(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup GetListSize elementary action.
void MHEG5visibleSetPosition(MHEG5Visible *visible, MHEG5Int x, MHEG5Int y)
This procedure sets the position of the target visible object to the given values.
MHEG5TokenSlot * tokens_ptr
Event handling. Implementation of a combined queue for events and actions. This is the eventsystem wh...
MHEG5Bool itemSelectionStatus
Module Description: Implement the MHEG5 Bitmap Class. 32 Bitmap Class Defines the behaviour of a two-...
Implement functions to retrieve MHEG5objects by GroupID and ID.
void MHEG5palettePrepare(MHEG5Palette *palette)
Implementation of the MHEG5 Application Class Defines a set of Ingredient objects, which are shared within an application scope. Base class: Group Subclasses: None Status: Concrete class.
Implementation of the MHEG5 Scene Class Scene Class Defines a set of Ingredient objects to be activat...
Mheg5 logging and debug printing.
MHEG5ErrorCode MHEG5scrollItems(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup ScrollItems elementary action.
MHEG5Ingredient ingredient
MHEG5ErrorCode MHEG5setCellPosition(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup SetCellPosition elementary action.
void MHEG5rectanglePrepare(MHEG5Rectangle *rectangle)
void MHEG5visibleResetPosition(MHEG5Visible *visible)
Reset the position of the visible back to its original values (as stored in originalPosition).
void MHEG5listGroupPrepare(MHEG5ListGroup *listGroup)
Implementation of the ListGroup Preparation behaviour.
void MHEG5objRefValueDestruct(MHEG5ObjectRefVariable *objRef)
MHEG5Bool firstItemVisible
MHEG5Scene * MHEG5getCurrentScene(void)
<Function description>="">
MHEG5ErrorCode MHEG5selectItem(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup SelectItem elementary action.
void MHEG5tokenGroupFree(MHEG5TokenGroup *tokenGroup)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
void MHEG5hypertextPrepare(MHEG5Hypertext *hypertext)
MHEG5ErrorCode MHEG5getItemStatus(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup GetItemStatus elementary action.
MHEG5GList * MHEG5resolveORef(MHEG5GList *params, MHEG5Root **object)
void MHEG5lineartPrepare(MHEG5Lineart *lineart)
void MHEG5bitmapPrepare(MHEG5Bitmap *bitmap)
Apply the preparation behaviour of the bitmap class. As this class has no own preparation behaviour t...
MHEG5TokenManager tokenManager
struct sMHEG5ItemList * next
MHEG5PosList * originalPositions
MHEG5ErrorCode MHEG5getListItem(MHEG5Root *target, MHEG5GList *params)
Implementation of the ListGroup GetListItem elementary action.
void MHEG5sendSync(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the synchronous event queue.
MHEG5GList * MHEG5resolveGenericORefProper(MHEG5GList *params, MH5GroupRef *pgroupRef, MHEG5Int *id)
Resolve a generic object reference, returning the object reference. The reference can be direct or in...
Implement the MHEG5 EntryField Class. Defines an interaction widget used by the final user to edit an...
MHEG5Application * MHEG5getCurrentApplication(void)
<Function description>="">
void MHEG5entryfieldPrepare(MHEG5Entryfield *entryfield)
Apply the preparation behaviour of the entryfield class Apply the preparation behaviour of the entryf...