MHEG5  15.3.0
source/classes/inc/mh5hypertext.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002  * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
00003  * Copyright © 2004 Ocean Blue Software Ltd
00004  * Copyright © 2000 Koninklijke Philips Electronics N.V
00005  *
00006  * This file is part of a DTVKit Software Component
00007  * You are permitted to copy, modify or distribute this file subject to the terms
00008  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
00009  * 
00010  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
00011  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
00012  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
00013  * 
00014  * If you or your organisation is not a member of DTVKit then you have access
00015  * to this source code outside of the terms of the licence agreement
00016  * and you are expected to delete this and any associated files immediately.
00017  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
00018  *******************************************************************************/
00033 #ifndef _MH5HYPERTEXT_H_
00034 #define _MH5HYPERTEXT_H_
00035 
00036 /*---includes for this file--------------------------------------------------*/
00037 #include "mh5text.h"
00038 #include "mh5interactible.h"
00039 
00040 /*---Constant and macro definitions for public use---------------------------*/
00041 
00042 /*---Enumerations for public use---------------------------------------------*/
00043 
00044 /*---Global type defs for public use-----------------------------------------*/
00045 typedef struct
00046 {
00047    /* Base classes */
00048    MHEG5Text text;
00049    MHEG5Interactible interactible;
00050 
00051    /* No exchanged attributes for this class */
00052 
00053    /* Internal attributes */
00054    MHEG5String lastAnchorFired;
00055    MHEG5Int focusPosition;
00056 
00057    /* Engine data */
00058    MHEG5Int numberOfLinks;
00059    MHEG5Int lastFocusPosition;
00060    MHEG5Bool anchorWrappingFlag;
00061    MHEG5Bool lafAlloc;
00062 } MHEG5Hypertext;
00063 
00064 /*---Global variable declarations for public use-----------------------------*/
00065 
00066 /*---Global Function prototypes for public use-------------------------------*/
00067 
00078 void MHEG5hypertextInit(MHEG5Hypertext *hypertext);
00079 
00080 
00088 void MHEG5hypertextFree(MHEG5Hypertext *hypertext);
00089 
00090 /*
00091     Internal behaviours
00092  */
00093 void MHEG5hypertextPrepare(MHEG5Hypertext *hypertext);
00094 void MHEG5hypertextActivate(MHEG5Hypertext *hypertext);
00095 void MHEG5hypertextDeactivate(MHEG5Hypertext *hypertext);
00096 void MHEG5hypertextDestruct(MHEG5Hypertext *hypertext);
00097 
00098 void MHEG5hyperTextInitCurrentLink(MHEG5Hypertext *hypertext);
00099 
00100 void MHEG5hypertextUP(MHEG5Hypertext *hypertext);
00101 void MHEG5hypertextDOWN(MHEG5Hypertext *hypertext);
00102 void MHEG5hypertextSELECT(MHEG5Hypertext *hypertext);
00103 
00104 
00105 MHEG5ErrorCode MHEG5getLastAnchorFired(MHEG5Root *target, MHEG5GList *params);
00106 MHEG5ErrorCode MHEG5getFocusPosition(MHEG5Root *target, MHEG5GList *params);
00107 MHEG5ErrorCode MHEG5setFocusPosition(MHEG5Root *target, MHEG5GList *params);
00108 
00109 /*
00110    Debug
00111  */
00112 #ifdef MH5PRINTOUT
00113 void MHEG5hypertextPrint(MHEG5Hypertext *hypertext, char *out);
00114 #endif
00115 
00116 #endif /*_MH5HYPERTEXT_H_*/
 All Data Structures Files Functions Variables Typedefs Defines