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 + -
显示快捷键?