📄 mmismsbroadcast.c
字号:
$Returns: none.
$Arguments:
*******************************************************************************/
static int smscb_M_CB_ACT_ExeNo(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent((MfwHdr *)mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_M_CB_ACT * data = (T_M_CB_ACT *)win_data->user;
T_MFW_HND * l_parent;
SHORT l_id;
// exec sms_cb_activate(Activation=FALSE);
//nm smscb_setCBsettings(SMSCB_SWITCH_OFF);
sms_set_mt_ind(MT_CB_NO_IDX);
// call infoscreen("Deactivated");
info_screen(data->win, TxtDeActivated,TxtNull, (T_VOID_FUNC)SmsCB_dialog_cb);
statusCBCH(FALSE);
return MFW_EVENT_CONSUMED;
}
/*******************************************************************************
$Function: smscb_M_CB_ACT_ExeYes
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
static int smscb_M_CB_ACT_ExeYes(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent((MfwHdr *)mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_M_CB_ACT * data = (T_M_CB_ACT *)win_data->user;
T_MFW_HND * l_parent;
SHORT l_id;
// exec sms_cb_activate(Activation=TRUE);
//nm smscb_setCBsettings(SMSCB_SWITCH_ON);
sms_set_mt_ind(MT_CB_MSG);
//call infoscreen("Activated");
info_screen(data->win, TxtActivated,TxtNull,(T_VOID_FUNC)SmsCB_dialog_cb);
statusCBCH(TRUE);
return MFW_EVENT_CONSUMED;
}
/*********************************************************************
**********************************************************************
M_CB_ACT DYNAMIC MENU WINDOW. IMPLEMENTATION
*********************************************************************
**********************************************************************/
/*******************************************************************************
$Function: smscb_M_CB_ACT_start
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
T_MFW_HND smscb_M_CB_ACT_start(T_MFW_HND parent_window, void *dummy)
{
T_MFW_HND win;
TRACE_FUNCTION ("smscb_M_CB_ACT_start()");
win = smscb_M_CB_ACT_create (parent_window);
if (win NEQ NULL)
{
SEND_EVENT (win, E_INIT, smscb_M_CB_ACT_ID, NULL);
}
return win;
}
/*******************************************************************************
$Function: smscb_M_CB_ACT_create
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
static T_MFW_HND smscb_M_CB_ACT_create(MfwHnd parent_window)
{
T_M_CB_ACT * data = (T_M_CB_ACT *)ALLOC_MEMORY (sizeof (T_M_CB_ACT));
T_MFW_WIN * win;
TRACE_FUNCTION ("smscb_M_CB_ACT_create()");
/*
* Create window handler
*/
data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)Smscb_M_CB_ACT_win_cb);
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_ACT_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_ACT_destroy
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
static void smscb_M_CB_ACT_destroy(MfwHnd own_window)
{
T_MFW_WIN * win_data;
T_M_CB_ACT * data;
TRACE_FUNCTION ("smscb_M_CB_ACT_destroy()");
if (own_window)
{
win_data = ((T_MFW_HDR *)own_window)->data;
data = (T_M_CB_ACT *)win_data->user;
if (data)
{
/*
* Delete WIN handler
*/
win_delete (data->win);
/*
* Free Memory
*/
FREE_MEMORY ((void *)data, sizeof (T_M_CB_ACT));
}
else
{
TRACE_EVENT ("smscb_M_CB_ACT_destroy() called twice");
}
}
}
/*******************************************************************************
$Function: smscb_M_CB_ACT_exec_cb
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
void smscb_M_CB_ACT_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * dummy)
/* callback handler for events sent to to trigger execution */
{
//submenu "Activate": M_CB_ACT
//on INIT: create staticlist (
// selection "Activate":
// exec sms_cb_activate(Activation=TRUE);
// call infoscreen("Activated");
// selfdestroy; sendevent EXIT
// selection "Deactivate":
// exec sms_cb_activate(Activation=FALSE);
// call infoscreen("Deactivated");
// selfdestroy; sendevent EXIT
//)
//defaultreaction
//end
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_M_CB_ACT * data = (T_M_CB_ACT *)win_data->user;
T_MFW_HND * l_parent;
SHORT l_id;
char *title;
TRACE_FUNCTION ("smscb_M_CB_ACT_exec_cb()");
switch (event)
{
case E_INIT:
/* initialization of administrative data */
data->id = value;
/* initialization of the dialog data */
/* create the dialog handler */
data->kbd = kbdCreate(data->win,KEY_ALL, (MfwCb)Smscb_M_CB_ACT_kbd_cb);
title = (char *) MmiRsrcGetText(TxtBroadcast); // get the editor title text
data->menu = mnuListCreate(data->win,&smscb_M_CB_ACTAttrib, E_MNU_ESCAPE, (MfwCb)smscb_M_CB_ACT_mnu_cb,title);
mnuLang(data->menu,mainMmiLng);
/* put the (new) dialog window on top of the window stack */
mnuUnhide(data->menu);
//listCreate (data->win,&smscb_M_CB_ACTAttrib, E_MNU_ESCAPE, (ListCbFunc)smscb_M_CB_ACT_mnu_cb); // c020 rsa
winShow(win);
break;
// c007 rsa
case E_RETURN: /* back from child */
/* winUpdate(data->win); c021 rsa */
data->kbd = kbdCreate(data->win,KEY_ALL|KEY_MAKE, (MfwCb)Smscb_M_CB_ACT_kbd_cb);
title = (char *) MmiRsrcGetText(TxtBroadcast); // get the editor title text
data->menu = mnuListCreate(data->win,&smscb_M_CB_ACTAttrib, E_MNU_ESCAPE, (MfwCb)smscb_M_CB_ACT_mnu_cb,title);
mnuLang(data->menu,mainMmiLng);
/* put the (new) dialog window on top of the window stack */
mnuUnhide(data->menu);
//listCreate (data->win,&smscb_M_CB_ACTAttrib, E_MNU_ESCAPE, (ListCbFunc)smscb_M_CB_ACT_mnu_cb); // c020 rsa
winShow(win);
break;
// end c007 rsa
case E_BACK:
case E_ABORT:
case E_EXIT: /* defaultreaction */
l_parent = data->parent;
l_id = data->id;
smscb_M_CB_ACT_destroy(data->win);
SEND_EVENT (l_parent, event, l_id, NULL); /* forward event to parent */
break;
default:
return;
}
}
/*******************************************************************************
$Function: smscb_M_CB_ACT_mnu_cb
$Description:
$Returns: none.
$Arguments:
*******************************************************************************/
// c020 rsa
static void smscb_M_CB_ACT_mnu_cb (MfwEvt e, MfwMnu *m)
/* smscb_M_CB_ACT menu event handler */
{
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_M_CB_ACT * data = (T_M_CB_ACT *)win_data->user;
T_MFW_HND * l_parent;
TRACE_FUNCTION ("smscb_M_CB_ACT_mnu_cb()");
switch (e)
{
case E_MNU_SELECT:
//on SELECT: menucreate
break;
case E_MNU_ESCAPE: /* back to previous menu */
l_parent = data->parent;
smscb_M_CB_ACT_destroy(data->win);
SEND_EVENT (l_parent, E_RETURN, data->id, NULL);
break;
default:
return;
}
return;
}
// end c020 rsa
/*******************************************************************************
$Function: SmsRead_R_OPT_win_cb
$Description: Window callback function for the Option window
$Returns: status
$Arguments: e - mfw event Id
w - window handler
*******************************************************************************/
static int Smscb_M_CB_ACT_win_cb (MfwEvt e, MfwWin *w)
/* SmsRead_R_OPT window event handler */
{
TRACE_FUNCTION ("SmsRead_R_OPT_win_cb()");
switch (e)
{
case MfwWinVisible: /* window is visible */
displaySoftKeys(TxtSoftSelect,TxtSoftBack);
break;
case MfwWinFocussed: /* input focus / selected */
case MfwWinDelete: /* window will be deleted */
default:
return MFW_EVENT_REJECTED;
}
return MFW_EVENT_CONSUMED;
}
/*******************************************************************************
$Function: Smscb_M_CB_ACT_kbd_cb
$Description: Exec callback function for the Option window
$Returns: status
$Arguments: e - keyboard event Id
k - keyboard data
*******************************************************************************/
static int Smscb_M_CB_ACT_kbd_cb (MfwEvt e, MfwKbd *k)
/* SmsRead_R_OPT keyboard event handler */
{
T_MFW_HND win = mfwParent(mfw_header());
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_R_OPT_kbd_cb()");
switch (k->code)
{
case KCD_MNUUP: /* highlight previous entry */
mnuUp(data->menu);
break;
case KCD_MNUDOWN: /* highlight next entry */
mnuDown(data->menu);
break;
case KCD_LEFT: /* activate this entry */
mnuSelect(data->menu);
break;
case KCD_HUP: /* back to previous menu */
case KCD_RIGHT: /* back to previous menu */
mnuEscape(data->menu);
break;
default: /* no response to all other keys */
return MFW_EVENT_CONSUMED;
}
return MFW_EVENT_CONSUMED;
}
/*********************************************************************
**********************************************************************
M_CB_TOP 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 menu;
/* internal data */
T_CB_index_param CB_index_param; /* parameter for called submenus (index in list) */
} T_M_CB_TOP;
/*******************************************************************************
$Function: smscb_M_CB_TOP_ExeAddNew
$Description:
$Returns:
$Arguments:
*******************************************************************************/
static int smscb_M_CB_TOP_ExeAddNew(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent((MfwHdr *)mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_M_CB_TOP * data = (T_M_CB_TOP *)win_data->user;
int index;
// selection "Add": call sms_cb_edit_topic(List=CBTopics, Index=ADD)
index = g_smscb_data.CBTopics.length;/* get the index of the next free entry in list CBTopics */
if (index > MAXCB)
{
/* all entries are already used */
info_screen (win, TxtFull /* ??? */,TxtNull, NULL);
return MFW_EVENT_CONSUMED;
}
else
{
data->CB_index_param.index = index;
return (int)smscb_CB_EDT_TEXTEDT_start(win, &data->CB_index_param);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -