mmibookinputwindow.c
来自「是一个手机功能的模拟程序」· C语言 代码 · 共 530 行 · 第 1/2 页
C
530 行
static T_MFW_HND bookInputCreate( MfwHnd parent )
{
T_MFW_WIN *parent_win_data = ( (T_MFW_HDR *) parent )->data;
tBookStandard *parent_data = (tBookStandard *) parent_win_data->user;
T_phbk *phbk = parent_data->phbk;
T_MFW_WIN *win_data;
tBookStandard *data;
TRACE_FUNCTION ("bookInputCreate()");
// allocate memory for our control block
if( ( data = (tBookStandard *) ALLOC_MEMORY( sizeof( tBookStandard ) ) ) == NULL )
return NULL;
// Create the window if we can
if( ( data->win = win_create( parent, 0, E_WIN_VISIBLE, (T_MFW_CB) bookInputWindowCB ) ) == NULL )
{
FREE_MEMORY( (void *)data, sizeof( tBookStandard ) );
return NULL;
}
data->mmi_control.dialog = (T_DIALOG_FUNC) bookInputDialog;
data->mmi_control.data = data;
win_data = ((T_MFW_HDR *)data->win)->data;
win_data->user = (void *) data;
data->phbk = phbk;
data->parent_win = parent;
return data->win;
}
/*******************************************************************************
Public Methods
*******************************************************************************/
/*******************************************************************************
$Function: bookInputStart
$Description: Start the input handler
$Returns: Handle of newly created window, or NULL if failure
$Arguments: parent, parent window handle, editor_data, input window property
control block.
*******************************************************************************/
MfwHnd bookInputStart( MfwHnd parent,T_EDITOR_DATA *editor_data )
{
T_MFW_HND win;
TRACE_FUNCTION ("bookInputStart()");
if( ( win = bookInputCreate( parent ) ) != NULL )
SEND_EVENT( win, INPUT_INIT, 0, editor_data );
return win;
}
/*******************************************************************************
$Function: bookInputStartNumberEditor
$Description: Start the input handler using default editor_data
$Returns: Handle of newly created window, or NULL if failure
$Arguments: parent, parent window handle, buffer, input buffer
*******************************************************************************/
MfwHnd bookInputStartNumberEditor( MfwHnd parent, void *buffer )
{
T_MFW_WIN *win_data = ( (T_MFW_HDR *) parent)->data;
tBookStandard *data = (tBookStandard *) win_data->user;
T_phbk *Phbk = data->phbk;
T_EDITOR_DATA DefaultParameters;
TRACE_FUNCTION ("bookInputStartNumberEditor()");
Phbk->MODE = NUMBER;
DefaultParameters.hide=FALSE;
DefaultParameters.min_enter =0;
DefaultParameters.Identifier =0xFFFF;
DefaultParameters.timeout = FOREVER; // Avoid returning empty strings
DefaultParameters.destroyEditor = FALSE;
DefaultParameters.editor_attr.text = (char *)buffer;
DefaultParameters.TextId = TxtEnterNumber;
DefaultParameters.LeftSoftKey = TxtSoftOK;
DefaultParameters.RightSoftKey = TxtCancel;
DefaultParameters.mode = PHONENUMONLY_MODE;// PARADISE_MODE;
DefaultParameters.Callback = (T_EDIT_CB)bookAddNumberCB;
// allocate window, and if successful initialise it
return bookInputStart( parent, &DefaultParameters );
}
MfwHnd bookInputStartOfficeEditor( MfwHnd parent, void *buffer )
{
T_MFW_HND win = parent;
T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
tBookStandard *data = (tBookStandard *) win_data->user;
T_phbk *Phbk = data->phbk;
T_EDITOR_DATA DefaultParameters;
TRACE_FUNCTION ("bookInputStartNumberEditor()");
Phbk->MODE = OFFICE;
DefaultParameters.hide=FALSE;
DefaultParameters.min_enter =0;
DefaultParameters.Identifier =0xFFFF;
DefaultParameters.timeout = FOREVER; // Avoid returning empty strings
DefaultParameters.destroyEditor = FALSE;
DefaultParameters.editor_attr.text = (char *)buffer;
DefaultParameters.TextId = TxtEnterOffice;
DefaultParameters.LeftSoftKey = TxtSoftOK;
DefaultParameters.RightSoftKey = TxtCancel;
DefaultParameters.mode = PHONENUMONLY_MODE;// PARADISE_MODE;
DefaultParameters.Callback = (T_EDIT_CB)bookAddNumberCB;
// allocate window, and if successful initialise it
return bookInputStart( parent, &DefaultParameters );
}
MfwHnd bookInputStartHomeEditor( MfwHnd parent, void *buffer )
{
T_MFW_HND win = parent;
T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
tBookStandard *data = (tBookStandard *) win_data->user;
T_phbk *Phbk = data->phbk;
T_EDITOR_DATA DefaultParameters;
TRACE_FUNCTION ("bookInputStartNumberEditor()");
Phbk->MODE = HOME;
DefaultParameters.hide=FALSE;
DefaultParameters.min_enter =0;
DefaultParameters.Identifier =0xFFFF;
DefaultParameters.timeout = FOREVER; // Avoid returning empty strings
DefaultParameters.destroyEditor = FALSE;
DefaultParameters.editor_attr.text = (char *)buffer;
DefaultParameters.TextId = TxtEnterHome;
DefaultParameters.LeftSoftKey = TxtSoftOK;
DefaultParameters.RightSoftKey = TxtCancel;
DefaultParameters.mode = PHONENUMONLY_MODE;// PARADISE_MODE;
DefaultParameters.Callback = (T_EDIT_CB)bookAddNumberCB;
// allocate window, and if successful initialise it
return bookInputStart( parent, &DefaultParameters );
}
/*******************************************************************************
$Function: bookInputStartNameEditor
$Description: Start the input handler using default editor_data
$Returns: Handle of newly created window, or NULL if failure
$Arguments: parent, parent window handle, buffer, input buffer
*******************************************************************************/
MfwHnd bookInputStartNameEditor( MfwHnd parent, void *buffer )
{
T_MFW_WIN *win_data = ( (T_MFW_HDR *) parent )->data;
tBookStandard *data = (tBookStandard *) win_data->user;
T_phbk *Phbk = data->phbk;
T_EDITOR_DATA DefaultParameters;
TRACE_FUNCTION ("bookInputStartNameEditor()");
Phbk->MODE=NAME;
DefaultParameters.hide =FALSE;
DefaultParameters.min_enter =1;
DefaultParameters.Identifier =0xFFFF;
DefaultParameters.timeout = FOREVER; // Avoid returning empty strings
DefaultParameters.destroyEditor = FALSE;
DefaultParameters.editor_attr.text = (char *)buffer;
DefaultParameters.TextId = TxtEnterName;
DefaultParameters.LeftSoftKey = TxtSoftOK;
DefaultParameters.RightSoftKey = TxtCancel;
DefaultParameters.mode = SHUZI_MODE;// PARADISE_MODE;
DefaultParameters.Callback = (T_EDIT_CB)bookAddNameCB;
// allocate window, and if successful initialise it
return bookInputStart( parent, &DefaultParameters );
}
MfwHnd bookInputStartMemoEditor( MfwHnd parent, void *buffer )
{
T_MFW_WIN *win_data = ( (T_MFW_HDR *) parent )->data;
tBookStandard *data = (tBookStandard *) win_data->user;
T_phbk *Phbk = data->phbk;
T_EDITOR_DATA DefaultParameters;
TRACE_FUNCTION ("bookInputStartNameEditor()");
Phbk->MODE=MEMO;
DefaultParameters.hide =FALSE;
DefaultParameters.min_enter =0;
DefaultParameters.Identifier =0xFFFF;
DefaultParameters.timeout = FOREVER; // Avoid returning empty strings
DefaultParameters.destroyEditor = FALSE;
DefaultParameters.editor_attr.text = (char *)buffer;
DefaultParameters.TextId = TxtEnterMemo;
DefaultParameters.LeftSoftKey = TxtSoftOK;
DefaultParameters.RightSoftKey = TxtCancel;
DefaultParameters.mode = SHUZI_MODE;// PARADISE_MODE;
DefaultParameters.Callback = (T_EDIT_CB)bookAddNumberCB;
// allocate window, and if successful initialise it
return bookInputStart( parent, &DefaultParameters );
}
/*******************************************************************************
$Function: bookInputDestroy
$Description: Destroy Input Window
$Returns: None
$Arguments: Handle of window to be destroyed
*******************************************************************************/
void bookInputDestroy( MfwHnd window )
{
T_MFW_WIN *win = ((T_MFW_HDR *) window)->data;
tBookStandard *data = (tBookStandard *) win->user;
TRACE_FUNCTION ("bookInputDestroy()");
if( data )
{
//editDeactivate();
/* 2003/12/04 sunsj modify for new editor mode */
if( data->editor_data.mode == TEXTINPUT_MODE )
{
text_input_destroy(data->edt);
}
else
{
editor_destroy(data->edt);
}
winDelete ( data->win );
FREE_MEMORY( (void *) data, sizeof( tBookStandard ) );
}
}
/*******************************************************************************
End of File
*******************************************************************************/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?