📄 auisymbol.c
字号:
/*******************************************************************************
CONDAT (UK)
********************************************************************************
This software product is the property of Condat (UK) Ltd and may not be
disclosed to any third party without the express permission of the owner.
********************************************************************************
$Project name: Basic MMI
$Project code: BMI
$Module: MMI
$File: AUISymbol.c
$Revision: 1.0
$Author: Condat(UK)
$Date:
********************************************************************************
Description: Symbol screen for AUI editor
********************************************************************************
$History: AUISymbol.c
$End
*******************************************************************************/
/* includes */
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#if defined (NEW_FRAME)
#include "typedefs.h"
#include "vsi.h"
#include "pei.h"
#include "custom.h"
#include "gsm.h"
#else
#include "stddefs.h"
#include "custom.h"
#include "gsm.h"
#include "vsi.h"
#endif
#include "mfw_mfw.h"
#include "mfw_win.h"
#include "mfw_kbd.h"
#include "mfw_tim.h"
#include "mfw_phb.h"
#include "mfw_sms.h"
#include "mfw_ss.h"
#include "mfw_icn.h"
#include "mfw_mnu.h"
#include "mfw_lng.h"
#include "mfw_sat.h"
#include "mfw_kbd.h"
#include "mfw_nm.h"
#include "mfw_cm.h"
#include "dspl.h"
#include "ksd.h"
#include "psa.h"
#include "MmiDummy.h"
#include "MmiMmi.h"
#include "MmiDialogs.h"
#include "MmiLists.h"
#include "MmiMenu.h"
#include "MmiSoftKeys.h"
#include "MmiIdle.h"
#include "cus_aci.h"
#include "p_sim.h"
#include "pcm.h"
#include "MmiColours.h"
#include "ATBCommon.h"
#include "ATBDisplay.h"
#include "ATBEditor.h"
#include "AUIEditor.h"
//data structure for punctuation symbols selection screen
typedef struct
{
T_MMI_CONTROL mmi_control;
T_MFW_HND parent;
T_MFW_HND win;
T_ED_DATA *editor;
T_MFW_HND kbd;
T_AUI_EDITOR_DATA editor_data;
USHORT cursor_position;
USHORT output_symbol;
USHORT return_event;
}
T_AUI_SYMBOL_INFO;
//events in main editor screen
typedef enum
{
EDITOR_INIT,
EDITOR_DEINIT,
EDITOR_UPDATE
} T_SYMBOL_EVENTS;
/*********************************************************************
**********************************************************************
DYNAMIC EDITOR WINDOW. DECLARATION
*********************************************************************
**********************************************************************/
/* Local function protoypes */
static T_MFW_HND AUI_symbol_Create (T_MFW_HND parent);
static int AUI_symbol_WinCb (T_MFW_EVENT event, T_MFW_WIN * win);
static int AUI_symbol_KbdCb (T_MFW_EVENT event, T_MFW_KBD *keyboard);
static void AUI_symbol_ExecCb (T_MFW_HND win, USHORT event, USHORT value, void * symbol);
/*******************************************************************************
$Function: AUI_symbol_Destroy
$Description: Destroy thesymbol screen
$Returns: None.
$Arguments: window handle
*******************************************************************************/
void AUI_symbol_Destroy (T_MFW_HND window)
{
T_MFW_WIN *win = ((T_MFW_HDR *)window)->data;
T_AUI_SYMBOL_INFO *data = (T_AUI_SYMBOL_INFO *)win->user;
TRACE_FUNCTION ("AUI_symbol_Destroy()");
/* Send character to editor window */
SEND_EVENT (data->parent, data->return_event, (SHORT)data->output_symbol, NULL);
if (data)
{
/* Delete WIN Handler */
win_delete (data->win);
/* Free Memory */
FREE_MEMORY ((void *)data, sizeof (T_AUI_SYMBOL_INFO));
}
else
{
TRACE_EVENT ("AUI_symbol_Destroy() called twice");
return ;
}
}
/*******************************************************************************
$Function: AUI_symbol_Start
$Description: Starts the symbol screen
$Returns: handle
$Arguments: parent window, editor data
*******************************************************************************/
T_MFW_HND AUI_symbol_Start (T_MFW_HND parent, USHORT return_event)
{
T_MFW_HND win;
TRACE_FUNCTION ("AUI_symbol_Start()");
win = AUI_symbol_Create (parent);
if (win NEQ NULL)
{
SEND_EVENT (win, EDITOR_INIT, return_event, 0);
}
return win;
}
/*******************************************************************************
$Function: LatinEditorcreate
$Description: Creation of a symbol screen
$Returns: handle of new window
$Arguments: parent window
*******************************************************************************/
static T_MFW_HND AUI_symbol_Create (T_MFW_HND parent)
{
T_AUI_SYMBOL_INFO * data = (T_AUI_SYMBOL_INFO *)ALLOC_MEMORY (sizeof (T_AUI_SYMBOL_INFO));
T_MFW_WIN * win;
TRACE_FUNCTION ("AUI_symbol_Create()");
/* Create window handler */
data->win = winCreate (parent, 0, E_WIN_VISIBLE, (T_MFW_CB)AUI_symbol_WinCb);
if (data->win EQ NULL)
{
return NULL;
}
/* Connect the dialog data to the MFW-window */
data->mmi_control.dialog = (T_DIALOG_FUNC)AUI_symbol_ExecCb;
data->mmi_control.data = data;
data->parent = parent;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *)data;
return data->win;
}
/*******************************************************************************
$Function: AUI_symbol_ExecCb
$Description: handles events for symbol window
$Returns: None.
$Arguments: window, event, value, editor data
*******************************************************************************/
static void AUI_symbol_ExecCb (T_MFW_HND win, USHORT event, USHORT value, void *parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_AUI_SYMBOL_INFO * data = (T_AUI_SYMBOL_INFO *)win_data->user;
T_MFW_HND parent_win = data->parent;
USHORT Identifier = data->editor_data.Identifier;
T_AUI_EDIT_CB Callback = data->editor_data.Callback;
/* List of symbols */
static char symStr[] = ". , ? ! : ; - + # * ( ) \' \" _ @ & $
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -