📄 mmiresources.c
字号:
/*******************************************************************************
$Function: resources_dialog_cb
$Description:
$Returns: void
$Arguments: window, identifier, reason
*******************************************************************************/
void resources_dialog_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason)
{
TRACE_FUNCTION ("resources_dialog_cb()");
switch (reason)
{
case INFO_TIMEOUT:
/* no break; */
case INFO_KCD_HUP:
/* no break; */
case INFO_KCD_LEFT:
/* no break; */
case INFO_KCD_RIGHT:
resources_Exit(win);
break;
}
}
/*******************************************************************************
$Function: resources
$Description:
$Returns: void
$Arguments: window, event, value, parameter
*******************************************************************************/
void resources (T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_resources * data = (T_resources *)win_data->user;
TRACE_FUNCTION("resources()");
switch (event)
{
case SHOW_CONFIRM:
resources_language_confirm();
break;
}
}
/*MC added for SPR 1111*/
/*******************************************************************************
$Function: resources_reset_language
$Description: Reset language using Pseudo-SS string
$Returns: TRUE if reset successful, FALSE otherwise
$Arguments: Pseudo-SS string
*******************************************************************************/
BOOL resources_reset_language(char* string)
{
char country_code[4];
int i;
/*extract country code from input string*/
memcpy(country_code, &string[3], 3);
country_code[3] = NULL;
/*for each entry in Language table*/
for(i=0; i<LanguageTable.no_of_entries; i++)
{ /*if country matches that of entry*/
if (!strcmp(country_code, LanguageTable.entries[i].country_dialling_code))
{ /*MC SPR 1150, check language fits in allowed range, rather than checking for each
and every language (easier to add more languages this way)*/
if (LanguageTable.entries[i].language>0 && LanguageTable.entries[i].language <= NO_OF_LANGUAGES)
{ MmiRsrcSetLang(LanguageTable.entries[i].language);
return TRUE;
}
}
}
/*if no matches found*/
return FALSE;
}
/*******************************************************************************
$Function:
$Description:
$Returns:
$Arguments:
$History
GW 28/11/02 -
*******************************************************************************/
#define NO_COLOUR_DEFINED (0x01010101)
void init_getDataColour(int screenType, int colType, U32 *fgd, U32 *bgd)
{
U32 fgColor;
U32 bgColor;
U32 fgHLColor = NO_COLOUR_DEFINED;
U32 bgHLColor = NO_COLOUR_DEFINED;
U32 fgSKColor = NO_COLOUR_DEFINED;
U32 bgSKColor = NO_COLOUR_DEFINED;
U32 fgTColor = NO_COLOUR_DEFINED;
U32 bgTColor = NO_COLOUR_DEFINED;
TRACE_EVENT("init_getDataColour");
switch (screenType)
{
case COLOUR_STATUS_WELCOME: //start screen
case COLOUR_STATUS_GOODBYE: //end screen
fgColor = COL_Black;
bgColor = COL_White;
fgSKColor = COL_Blue;
bgSKColor = COL_Yellow;
break;
case COLOUR_POPUP:
case COLOUR_STATUS: //generic status window
fgColor = COL_Red; //0x0000FF00;
bgColor = COL_Blue;//0x00FFFFFF;
fgSKColor = COL_Red;
bgSKColor = COL_TRANSPARENT;
break;
case COLOUR_EDITOR:
fgTColor = COL_White;
bgTColor = COL_Blue;
fgColor = COL_Blue; // 0x00FFFF00;
bgColor = COL_Yellow;//COL_White;//0x00FFFFFF;
fgSKColor = COL_Blue;
bgSKColor = COL_PaleYellow; //0x00FFFF00;
break;
case COLOUR_LIST_MAIN:
fgTColor = COL_White;
bgTColor = COL_BLK;
fgColor = COL_Yellow ;
bgColor = COL_Blue;
fgColor = COL_Black ;
bgColor = COL_White;
fgSKColor = COL_W;
bgSKColor = COL_BLK; //0x00FFFF00;
bgHLColor = COL_MidGrey;
break;
case COLOUR_LIST_SUBMENU:
case COLOUR_LIST_SUBMENU1:
case COLOUR_LIST_SUBMENU2:
case COLOUR_LIST_SUBMENU3:
case COLOUR_LIST_SUBMENU4:
fgTColor = COL_Blue;
bgTColor = COL_PaleYellow;
fgColor = COL_Black ;
bgColor = COL_White;
bgHLColor = COL_MidGrey;
fgSKColor = COL_Blue;
bgSKColor = COL_PaleYellow; //0x00FFFF00;
break;
case COLOUR_LIST_COLOUR:
fgColor = COL_RG2;
bgColor = COL_W2;
fgSKColor = COL_W;
bgSKColor = COL_B;
fgTColor = COL_RG;
bgTColor = COL_B;
fgHLColor = dspl_GetBgdColour();
bgHLColor = dspl_GetFgdColour();
break;
//Colours for specific displays
case COLOUR_GAME:
fgColor = COL_BLK ;
bgColor = COL_W;
fgSKColor = COL_BLK ;
bgSKColor = COL_Orange;
fgHLColor = COL_B;
bgHLColor = COL_W;
fgTColor = COL_RB;
bgTColor = COL_G;
break;
case COLOUR_IDLE:
fgColor = COL_BLK;//Green ;
bgColor = COL_TRANSPARENT;//White ;
fgSKColor = COL_Blue;
bgSKColor = COL_TRANSPARENT;
//Colours are for the icons
fgTColor = COL_RB;
bgTColor = COL_G;
break;
case COLOUR_INCALL:
fgColor = COL_RG ;
bgColor = COL_BLK;
fgSKColor = COL_B ; /* SPR#1699 - SH - Modified so softkeys visible */
bgSKColor = COL_TRANSPARENT;
fgHLColor = COL_B;
bgHLColor = COL_W;
fgTColor = COL_RB;
bgTColor = COL_G;
break;
default:
fgColor = 0x002020FF;
bgColor = COL_GR;//0x00FFFFFF;
fgSKColor = 0x0000FF01;
bgSKColor = COL_GR;//0x00FF0000;
break;
}
/*If we have no preference for the other colours - set to default*/
if (fgHLColor == NO_COLOUR_DEFINED)
fgHLColor = bgColor;
if (bgHLColor == NO_COLOUR_DEFINED)
bgHLColor = fgColor;
if (fgSKColor == NO_COLOUR_DEFINED)
fgSKColor = fgColor;
if (bgSKColor == NO_COLOUR_DEFINED)
bgSKColor = bgColor;
if (fgTColor == NO_COLOUR_DEFINED)
fgTColor = fgColor;
if (bgTColor == NO_COLOUR_DEFINED)
bgTColor = bgColor;
switch (colType)
{
case COL_TYPE_SCREEN:
default:
*fgd = fgColor;
*bgd = bgColor;
break;
case COL_TYPE_SK:
*fgd = fgSKColor;
*bgd = bgSKColor;
break;
case COL_TYPE_HL:
*fgd = fgHLColor;
*bgd = bgHLColor;
break;
case COL_TYPE_TITLE:
*fgd = fgTColor;
*bgd = bgTColor;
break;
}
if (*fgd == *bgd)
{
if (*fgd != COL_B)
*fgd = COL_B;
}
}
//This array will be used to store all the colour info for each colour type.
//This will allow us to let the user change the colour selected
/*******************************************************************************
$Function:
$Description:
$Returns:
$Arguments:
$History
*******************************************************************************/
void setDataColour(int screenType, int colType, U32 fgdORbgd, U32 newColour)
{
TRACE_EVENT("setDataColour");
if ((newColour == NO_COLOUR_DEFINED) || (fgdORbgd ==NO_COL))
return;
if ((screenType < LAST_COLOUR_DEF) &&
(screenType >=0) &&
(colType < LAST_COLOUR_DEF) &&
(colType >=0))
{
if (fgdORbgd == FGD_COL)
{
//Do not allow transparent foreground colours
if ((newColour & 0xFF000000) != 0xFF000000)
colArray[screenType][colType].fgd = newColour;
}
else
{
colArray[screenType][colType].bgd = newColour;
}
}
}
/*******************************************************************************
$Function:
$Description:
$Returns:
$Arguments:
$History
*******************************************************************************/
void initDefaultDataColour (void)
{
int i,j;
for (i=0; i<LAST_COLOUR_DEF;i++)
{
for (j=0; j<COL_TYPE_MAX;j++)
{
init_getDataColour(i, j, &colArray[i][j].fgd, &colArray[i][j].bgd);
}
}
}
void getDataColour(int screenType, int colType, U32 *fgd, U32 *bgd)
{
TRACE_EVENT_COL("getDataColour");
if ((screenType == COLOUR_LIST_COLOUR) && (colType ==COL_TYPE_HL))
{
TRACE_EVENT_COL("new_getDataColour IF");
*fgd = dspl_GetBgdColour();
*bgd = dspl_GetFgdColour();
}
else if ((screenType < LAST_COLOUR_DEF) &&
(screenType >=0) &&
(colType < COL_TYPE_MAX) &&
(colType >=0))
{
TRACE_EVENT_COL("new_getDataColour ELSE IF");
*fgd = colArray[screenType][colType].fgd;
*bgd = colArray[screenType][colType].bgd;
}
else
{
TRACE_EVENT_COL("new_getDataColour ELSE");
*fgd = colArray[0][0].fgd;
*bgd = colArray[0][0].bgd;
}
}
/*******************************************************************************
$Function:
$Description:
$Returns:
$Arguments:
$History
*******************************************************************************/
static U32 oldFgdCol,oldBgdCol;
static U32 oldmnuFgdCol,oldmnuBgdCol;
void resources_setColour(unsigned int colIndex)
{
U32 fgdColour,bgdColour;
getDataColour(colIndex, COL_TYPE_SCREEN, &fgdColour, &bgdColour);
oldFgdCol = dspl_SetFgdColour( fgdColour);
oldBgdCol = dspl_SetBgdColour( bgdColour);
if (colIndex==0xFFFF)
{//disabled for the moment
char str[50];
sprintf(str,"Id=%d (%x,%x)",colIndex,fgdColour,bgdColour);
dspl_ScrText (0, 180, str, 0);
}
}
/*******************************************************************************
$Function:
$Description:
$Returns:
$Arguments:
$History
*******************************************************************************/
void resources_setSKColour(unsigned int colIndex)
{
U32 fgdSKColour,bgdSKColour;
getDataColour(colIndex, COL_TYPE_SK, &fgdSKColour, &bgdSKColour );
oldmnuFgdCol = dspl_SetFgdColour( fgdSKColour);
oldmnuBgdCol = dspl_SetBgdColour( bgdSKColour);
}
/*******************************************************************************
$Function:
$Description:
$Returns:
$Arguments:
$History
*******************************************************************************/
void resources_setHLColour(unsigned int colIndex)
{
U32 fgdColour,bgdColour;
#ifdef COLOURDISPLAY
getDataColour(colIndex, COL_TYPE_HL, &fgdColour, &bgdColour );
#else
//For b+w highlight, get fgd colour as bgd and vice versa
fgdColour = dspl_GetBgdColour();
bgdColour = dspl_GetFgdColour();
//If one colour is black/white, make other colour the opposite
if (fgdColour == COL_Black)
bgdColour = COL_White;
else if (bgdColour == COL_Black)
fgdColour = COL_White;
else if (fgdColour == COL_White)
bgdColour = COL_Black;
else if (bgdColour == COL_White)
fgdColour = COL_Black;
else
{ //Default : assume the rest of the display is black on white=> highlight is white on black.
fgdColour = COL_White;
bgdColour = COL_Black;
}
#endif
oldmnuFgdCol = dspl_SetFgdColour( fgdColour);
oldmnuBgdCol = dspl_SetBgdColour( bgdColour);
}
/*******************************************************************************
$Function:
$Description:
$Returns:
$Arguments:
$History
*******************************************************************************/
void resources_setTitleColour(unsigned int colIndex)
{
U32 fgdColour,bgdColour;
getDataColour(colIndex, COL_TYPE_TITLE, &fgdColour, &bgdColour );
oldmnuFgdCol = dspl_SetFgdColour( fgdColour);
oldmnuBgdCol = dspl_SetBgdColour( bgdColour);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -