view src/aci2/mfw/mfw_mnu.h @ 597:f18b29e27be5

First attempt at MCSI voice path automatic switching The function is implemented at the ACI level in both aci2 and aci3, successfully avoids triggering the DSP bug on the first call, but the shutdown of MCSI upon call completion is not working properly yet in either version.
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 27 Mar 2019 22:18:35 +0000
parents 93999a60b835
children
line wrap: on
line source

/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417)         $Workfile:: mfw_mnu.h       $|
| $Author:: Le  $ CONDAT GmbH           $Revision:: 10              $|
| CREATED: 23.11.98                     $Modtime:: 4.01.00 13:30    $|
| STATE  : code                                                      |
+--------------------------------------------------------------------+

   MODULE  : MFW_MNU

   PURPOSE : Keyboard types & constants

   EXPORT  :

   TO DO   :

   $History:: mfw_mnu.h                                             $

        Shashi Shekar B.S., a0876501, 16 Mar, 2006, OMAPS00061462
       Icon support for SetupMenu & Select item.
  
 *
 * ************************************************
 * User: xreddymn           Date: Dec-16-2004
 * Updated in $/GSM/Condat/MS/SRC/MFW
 * Added double line display for MFW list menu items
 *
 * *****************  Version 10  *****************
 * User: Le           Date: 6.01.00    Time: 9:23
 * Updated in $/GSM/Condat/MS/SRC/MFW
 * Alignment of MFW versions
 *
 * *****************  Version 2  *****************
 * User: Es           Date: 22.11.99   Time: 10:29
 * Updated in $/GSM/Condat/SND-MMI/MFW
 *
 * *****************  Version 1  *****************
 * User: Es           Date: 18.11.99   Time: 16:35
 * Created in $/GSM/Condat/SND-MMI/MFW
 * Initial
*/

#ifndef _DEF_MFW_MNU_H_
#define _DEF_MFW_MNU_H_

                                        /* MENU MODES               */
                                        /* ALIGNMENT                */
#define MNU_LEFT        0x0001          /* left aligned             */
#define MNU_RIGHT       0x0002          /* right aligned            */
#define MNU_CENTER      0x0003          /* centered                 */
#define MNU_ALIGN       0x0003          /* alignment mode mask      */
                                        /* MENU MODES HEADER              */
                                        /* ALIGNMENT                */
#define MNU_HDR_LEFT		0x0004          /* left aligned             */
#define MNU_HDR_RIGHT		0x0008          /* right aligned            */
#define MNU_HDR_CENTER		0x000C          /* centered                 */
#define MNU_HDR_ALIGN		0x000C          /* alignment mode mask      */

                                        /* DISPLAY                  */
#define MNU_OVERLAPPED  0x0010          /* location as specified    */
#define MNU_PAGED       0x0020          /* single item per page     */
#define MNU_LIST        0x0030          /* list items on page       */
#define MNU_LIST_ICONS  0x0040          /* list items on page with icon for each      */
#define MNU_PAGE_ICONS  0x0050          /*  page with multiple 2-state icons      */
#define MNU_LIST_2_LINE	0x0060          /* list with each item occupying two lines. xreddymn Dec-16-2004 */
#define MNU_LIST_COLOUR 	0x00F0		/* list items on page - each item is a different colour */
#define MNU_DISPLAY     0x00F0          /* display mode mask        */

                                        /* ITEM SELECTION           */
#define MNU_FRAMED      0x0100          /* selection by frame       */
#define MNU_CUR_ARROW   0x0200          /* selection by arrow       */
#define MNU_CUR_STAR    0x0300          /* selection by star        */
#define MNU_CUR_BLOCK   0x0400          /* selection by block       */
#define MNU_CUR_LINE    0x0500          /* selection by line        */
#define MNU_ITEMSEL     0x0f00          /* item select mode mask    */

#define MNU_HDRFORMAT_STR	0x8000		/* 0=Text ID, 1=Text string in supplied language */

                                        /* MENU EVENTS              */
#define E_MNU_VISIBLE   0x00000001      /* menu is displayed        */
#define E_MNU_EMPTY     0x00000002      /* menu is empty            */
#define E_MNU_SELECT    0x00000010      /* menu item selected       */
#define E_MNU_ESCAPE    0x00000020      /* menu escape              */
#define E_MNU_TOPPED    0x00000040      /* menu over top            */
#define E_MNU_BOTTOMED  0x00000080      /* menu under bottom        */
#define E_MNU_PREDRAW   0x00000100      /* item will be drawn       */
#define E_MNU_POSTDRAW  0x00000200      /* item has been drawn      */

                                        /* ITEM EXTENSION FLAGS     */
#define MNU_ITEM_HIDE       0x0001      /* item is hidden           */
#define MNU_ITEM_NOTIFY     0x0002      /* notify on draw           */
#define MNU_ITEM_ANIMA      0x0004      /* icon animation           */
#define MNU_ITEM_FONT       0x0008      /* use font (disabled, ...) */
#define MNU_ITEM_STATED     0x0010      /* item has status          */
#define MNU_ITEM_RADIO      0x0020      /* item is radio button     */
#define MNU_ITEM_HOTKEY     0x0040      /* item can have hotkey     */
#define MNU_ITEM_UNCHECKED	0x0080		  /* SPR#998 - SH -Item in checklist, unchecked */
#define MNU_ITEM_CHECKED	  0x0100	  /* SPR#998 - SH - Item in checklist, checked */



#define MAX_LVL         100             /* maximum of menu level    */
#define UNUSED          -1              /* unused menu level        */

// Shashi Shekar B.S., a0876501, 16-Jan-2006, OMAPS00061460
#ifdef FF_MMI_SAT_ICON
#define TITLE_ICON_WIDTH			10
#define TITLE_ICON_HEIGHT			16
#define LINE_ICON_WIDTH			10
extern const unsigned char SATIconQuestionMark[];
#endif

/* SPR#1983 - SH - These are the different text encodings for menus */

typedef enum
{
	MNU_LIST_LANGUAGE_DEFAULT	= 0,
	MNU_LIST_LANGUAGE_UNICODE,
	MNU_LIST_LANGUAGE_ASCII
} MfwMnuListLanguageType;

typedef struct MfwMnuItemTag; 
typedef struct MfwMnuAttrTag;  
typedef struct MfwMnuTag;      

                                        /* menu function            */
typedef int (*MenuFunc)(struct MfwMnuTag* m, struct MfwMnuItemTag* i);
                                        /* item flag function       */
typedef U16 (*FlagFunc)(struct MfwMnuTag *m, struct MfwMnuAttrTag *a,
                                             struct MfwMnuItemTag *i);


typedef struct MfwItmExtPredrawTag      /* item ext: predraw        */
{
    char *str;                          /* string to be drawn       */
    MfwIcnAttr *icon;                   /* icon to be drawn         */
} MfwItmExtPredraw;

typedef struct MfwMnuItemTag            /* menu item                */
{
    MfwIcnAttr * icon;                  /* item with icon control   */
    void *exta;                         /* item extension data      */
    MfwHnd x;//edit;                        /* Must be removed ES!!     */
    char* str;                          /* item with textId (GW)     */
    struct MfwMnuAttrTag *menu;         /* item with submenu        */
    MenuFunc func;                      /* item with handler        */
    FlagFunc flagFunc;                  /* item flag function       */
} MfwMnuItem;

typedef struct MfwMnuAttrTag            /* menu attributes          */
{
    MfwRect *area;                      /* menu area                */
    U16 mode;                           /* menu modes               */
    U8 font;                            /* default menu font        */
    MfwMnuItem *items;                  /* menu items               */
    U8 nItems;                          /* number of menu items     */
	U32 mnuColour;				//GW index as to what the colour is going to be
    int  hdrId;					//GW Added
    MfwIcnAttr *bgdBitmap;		//GW Added for background for menus
   int unused;					//GW Added and removed definition
 // Shashi Shekar B.S., a0876501, Feb 4, 2006, DR: OMAPS00061462
#ifdef FF_MMI_SAT_ICON
	MfwIcnAttr *icon;				/* Icon to be displayed in the header.*/
#endif
} MfwMnuAttr;
//If 'unused' is to be used, remove the definition below and add the required definition into the code
#define MNUATTRSPARE 0
typedef struct MfwMnuTag                /* menu control block       */
{
    MfwEvt mask;                        /* selection of events      */
    MfwEvt flags;                       /* current event            */
    MfwCb handler;                      /* menu event handler       */
    MfwMnuAttr *attr;                   /* menu attributes          */
    MfwMnuAttr *curAttr;                /* current attributes       */
    MfwHnd useStrID;                    /* GW 0=Text is passed as ID's ,   1=txt is strings     */
    MfwHnd useDefLang;					/* GW 0=Set text display to ascii, 1=txt is in language default*/
    U8 level;                           /* current level            */
	U8 lShift[MAX_LVL];					/* shift scrolling			*/
    U8 lCursor [MAX_LVL];               /* level cursor position    */
    U8 scrollMode;						
    int nLines;							/* Number of lines that ftn on screen */
    UBYTE textDCS;		/* specify the data type of text (ASCII, Unicode etc) */
} MfwMnu;

MfwRes mnuInit (void);
MfwRes mnuExit (void);
MfwHnd mnuCreate (MfwHnd w, MfwMnuAttr *a, MfwEvt e, MfwCb Mnu);
MfwRes mnuDelete (MfwHnd m);
MfwHnd mnuLang (MfwHnd m, MfwHnd l);
MfwHnd mnuStrType (MfwHnd m, MfwHnd l); //GW
MfwRes mnuShow (MfwHnd m);
MfwRes mnuHide (MfwHnd m);
MfwRes mnuUnhide (MfwHnd m);//GW added 29/11/01
MfwRes mnuUpdate (MfwMnu *m);
MfwRes mnuUp (MfwHnd m);
MfwRes mnuDown (MfwHnd m);
MfwRes mnuEscape (MfwHnd m);
MfwRes mnuSelect (MfwHnd m);
MfwRes mnuDone (MfwHnd m);
MfwRes mnuKeyAction (MfwHnd m, U8 keycode);
MfwRes mnuChooseVisibleItem(MfwHnd m,U8 nItem);
U8 mnuCountVisibleItems(MfwHnd m);
U8 mnuCountCurrentVisibleItem(MfwHnd m);
void mnuScrollMode (MfwHnd menu,U8 mode);

void mnuInitDataItem(MfwMnuItem* mnuItem);
int mnuIdentify(struct MfwMnuAttrTag *attr, struct MfwMnuItemTag *item); /*SPR#998 - SH - added*/



#endif