📄 mmismsbroadcast.c
字号:
return 1;
}
/*******************************************************************************
$Function: smscb_M_CB_start
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
T_MFW_HND smscb_M_CB_start(T_MFW_HND parent_window, void *dummy)
{
T_MFW_HND win;
TRACE_FUNCTION ("smscb_M_CB_start()");
win = smscb_M_CB_create (parent_window);
if (win NEQ NULL)
{
SEND_EVENT (win, E_INIT, smscb_M_CB_ID, NULL);
}
return win;
}
/*******************************************************************************
$Function: smscb_M_CB_create
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
static T_MFW_HND smscb_M_CB_create(MfwHnd parent_window)
{
T_M_CB * data = (T_M_CB *)ALLOC_MEMORY (sizeof (T_M_CB));
T_MFW_WIN * win;
TRACE_FUNCTION ("smscb_M_CB_create()");
/*
* Create window handler
*/
data->win =
win_create (parent_window, 0, 0, NULL);
if (data->win EQ NULL)
{
return NULL;
}
/*
* connect the dialog data to the MFW-window
*/
data->mmi_control.dialog = (T_DIALOG_FUNC)smscb_M_CB_exec_cb;
data->mmi_control.data = data;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *)data;
data->parent = parent_window;
/*
* return window handle
*/
winShow(data->win);
return data->win;
}
/*******************************************************************************
$Function: smscb_M_CB_destroy
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
static void smscb_M_CB_destroy(MfwHnd own_window)
{
T_MFW_WIN * win_data;
T_M_CB * data;
TRACE_FUNCTION ("smscb_M_CB_destroy()");
if (own_window)
{
win_data = ((T_MFW_HDR *)own_window)->data;
data = (T_M_CB *)win_data->user;
if (data)
{
/*
* Delete WIN handler
*/
win_delete (data->win);
/*
* Free Memory
*/
FREE_MEMORY ((void *)data, sizeof (T_M_CB));
}
else
{
TRACE_EVENT ("smscb_M_CB_destroy() called twice");
}
}
}
/*******************************************************************************
$Function: smscb_M_CB_exec_cb
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
void smscb_M_CB_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * dummy)
/* callback handler for events sent to to trigger execution */
{
//entry submenu "Broadcast": M_CB
//on INIT: create staticlist (
// selection "Read": call smsCB_read()
// selection "Activate": menucreate M_CB_ACT
//nm menu changed 7.2.01
// selection "Topics": menucreate M_CB_TOP
// selection "Delete All": menucreate M_DEL_ALL(Type=CB)
//)
//on EXIT: /* terminate EXIT from M_CB_ACT here */
//defaultreaction
//end
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_M_CB * data = (T_M_CB *)win_data->user;
T_MFW_HND * l_parent;
SHORT l_id;
TRACE_FUNCTION ("smscb_M_CB_exec_cb()");
switch (event)
{
case E_INIT:
/* initialization of administrative data */
data->id = value;
/* initialization of the dialog data */
/* create the dialog handler */
listCreate (data->win,&smscb_M_CBAttrib, E_MNU_ESCAPE, (ListCbFunc)smscb_M_CB_mnu_cb); // c020 rsa
break;
case E_ABORT: /* defaultreaction */
l_parent = data->parent;
l_id = data->id;
smscb_M_CB_destroy(data->win);
SEND_EVENT (l_parent, event, l_id, NULL); /* forward event to parent */
break;
case E_RETURN: /* back from child */
case E_EXIT: /* terminate EXIT from M_CB_ACT here */
/* winUpdate(data->win); c021 rsa */
break;
case E_BACK:
default:
TRACE_EVENT ("smscb_M_CB_exec_cb() unexpected event");
return;
}
}
/*******************************************************************************
$Function: smscb_M_CB_mnu_cb
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
// c020 rsa
static void smscb_M_CB_mnu_cb (T_MFW_HND * win, ListMenuData * ListData)
/* smscb_M_CB menu event handler */
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_M_CB * data = (T_M_CB *)win_data->user;
T_MFW_HND * l_parent;
SHORT l_id;
int index;
TRACE_FUNCTION ("smscb_M_CB_listmnu_cb()");
switch (ListData->Reason)
{
case E_MNU_SELECT:
//on SELECT: menucreate
break;
case LISTS_REASON_BACK: /* back to previous menu */
l_parent = data->parent;
l_id = data->id;
smscb_M_CB_destroy(data->win);
SEND_EVENT (data->parent, E_RETURN, l_id, NULL); // c007 rsa
break;
default:
return;
}
return;
}
// end c020 rsa
/*********************************************************************
**********************************************************************
M_CB_ACT DYNAMIC MENU WINDOW. DECLARATION
*********************************************************************
**********************************************************************/
typedef struct
{
/* administrative data */
T_MMI_CONTROL mmi_control;
T_MFW_HND win;
SHORT id;
T_MFW_HND parent;
/* associated handlers */
T_MFW_HND kbd;
T_MFW_HND menu;
/* internal data */
} T_M_CB_ACT;
static MfwMnuItem smscb_M_CB_ACTItems [] =
{
{0,0,0,(char *)TxtOn,0,(MenuFunc)smscb_M_CB_ACT_ExeYes,item_flag_none},
{0,0,0,(char *)TxtOff,0,(MenuFunc)smscb_M_CB_ACT_ExeNo,item_flag_none},
};
static MfwMnuAttr smscb_M_CB_ACTAttrib =
{
&smscb_M_CB_ACTArea,
MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu */
-1, /* use default font */
smscb_M_CB_ACTItems, /* with these items */
sizeof(smscb_M_CB_ACTItems)/sizeof(MfwMnuItem) /* number of items */
};
static T_MFW_HND smscb_M_CB_ACT_create (T_MFW_HND parent);
static void smscb_M_CB_ACT_destroy (T_MFW_HND window);
static void smscb_M_CB_ACT_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * dummy);
static void smscb_M_CB_ACT_mnu_cb (MfwEvt e, MfwMnu *m);
static int Smscb_M_CB_ACT_kbd_cb (MfwEvt e, MfwKbd *k);
static int Smscb_M_CB_ACT_win_cb (MfwEvt e, MfwWin *w);
static int smscb_M_CB_ACT_ExeNo(MfwMnu* m, MfwMnuItem* i);
static int smscb_M_CB_ACT_ExeYes(MfwMnu* m, MfwMnuItem* i);
/*********************************************************************
**********************************************************************
M_CB_ACT DYNAMIC MENU WINDOW. CONTENTS DECLARATION
*********************************************************************
**********************************************************************/
static MfwMnuItem smscb_M_CB_MIDItems [] =
{
{&colist, 0,0,(char *)TxtAdd,0,(MenuFunc)smscb_CB_EDT_ExeAdd,item_flag_none},
{&colist, 0,0,(char *)TxtModify,0,(MenuFunc)smscb_CB_EDT_ExeModify,item_flag_none},
{&colist, 0,0,(char *)TxtDelete,0,(MenuFunc)smscb_M_CB_MID_DEL,item_flag_none},
};
static MfwMnuAttr smscb_M_CB_MIDAttrib =
{
0,
&smscb_M_CB_ACTArea,
MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu */
-1, /* use default font */
smscb_M_CB_MIDItems, /* with these items */
sizeof(smscb_M_CB_MIDItems)/sizeof(MfwMnuItem) /* number of items */
};
#endif
/*******************************************************************************
$Function: SmsRead_R_dialog_cb
$Description: Dialog callback function of the SMS read window (dynamic list of all the SMS)
Case where SMS has not been initialized yet
$Returns: status
$Arguments: win - current window handler
Identifier - window id
Reason - Event cause.
*******************************************************************************/
int SmsCB_dialog_cb(T_MFW_HND win, USHORT Identifier, USHORT Reason)
{
T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data;
// T_M_CB_ACT *data = (T_M_CB_ACT *)win_data->user;
TRACE_FUNCTION ("SmsRead_dialog_cb()");
switch (Reason)
{
case INFO_TIMEOUT:
case INFO_KCD_HUP:
// Commit suicide
SEND_EVENT (win, E_EXIT,0, NULL);
return MFW_EVENT_CONSUMED;
default:
return MFW_EVENT_REJECTED;
}
}
/******************************************************/
/* */
/*Function Name: CBLanguage_check */
/*Purpose: CBLanguage_check items check */
/*Prarmeter: struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi */
/*return : USHORT */
/* */
/*Author : windy */
/*Date : Aug.16th,2002 */
/******************************************************/
USHORT CBONOFF_check (struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi)
{
if(FFS_flashData.CBONOFF==1)
return FLAGFUNC_TRUE_ICON;
else if(FFS_flashData.CBONOFF==0)
return FLAGFUNC_FALSE_ICON;
}
/*********************************************************************
**********************************************************************
M_CB_ACT DYNAMIC MENU WINDOW. CONTENTS BEHAVIOUR
*********************************************************************
**********************************************************************/
/*******************************************************************************
$Function: smscb_M_CB_ACT_ExeyNo
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
int smscb_M_CB_ACT_ExeOnOff(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent((MfwHdr *)mfw_header());
T_DISPLAY_DATA display_info;
//nm smscb_setCBsettings(SMSCB_SWITCH_OFF);
if(FFS_flashData.CBONOFF==1)
{
sms_set_mt_ind(MT_CB_NO_IDX);
// call infoscreen("Deactivated");
dialog_info_init(&display_info);//gdy add
display_info.RightSoftKey = 0;
display_info.Time = ONE_SECS;//zy 12/22/2002 change 3sec to 1sec
display_info.KeyEvents = KEY_RIGHT|KEY_LEFT|KEY_CLEAR;
display_info.TextId2 = TxtDeActivated;
display_info.Identifier = DIALOGS_REASON_NULL;
display_info.iconindex =REMIND_COMPLETE;
info_dialog (win, &display_info);
//info_screen(win, TxtDeActivated,TxtNull, NULL);//(T_VOID_FUNC)SmsCB_dialog_cb);
//statusCBCH(TRUE);
FFS_flashData.CBONOFF=0;
flash_write();
}
else if(FFS_flashData.CBONOFF==0)
{
sms_set_mt_ind(MT_CB_MSG);
//call infoscreen("Activated");
dialog_info_init(&display_info);//gdy add
display_info.RightSoftKey = 0;
display_info.Time = ONE_SECS;//zy 12/22/2002 change 3sec to 1sec
display_info.KeyEvents = KEY_RIGHT|KEY_LEFT|KEY_CLEAR;
display_info.TextId2 = TxtActivated;
display_info.Identifier = DIALOGS_REASON_NULL;
display_info.iconindex =REMIND_COMPLETE;
info_dialog (win, &display_info);
//info_screen(win, TxtActivated,TxtNull,NULL);//(T_VOID_FUNC)SmsCB_dialog_cb);
//statusCBCH(FALSE);
FFS_flashData.CBONOFF=1;
flash_write();
}
return MFW_EVENT_CONSUMED;
}
#if 0
/*********************************************************************
**********************************************************************
M_CB_ACT DYNAMIC MENU WINDOW. CONTENTS BEHAVIOUR
*********************************************************************
**********************************************************************/
/*******************************************************************************
$Function: smscb_M_CB_ACT_ExeNo
$Description:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -