📄 call_dialog.c
字号:
#include "../sys_headfile.h"
#include <minigui/skin.h>
#include "call_dialog.h"
#ifdef _EXT_SKIN
static si_bmplabel_t call_number = { "13190139195", "0123456789*#" };
static isCalling = FALSE;
/* 定义皮肤元素数组 */
static skin_item_t skin_main_items [] =
{
{SIID_MAKE_CALL, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
26, 93, {}, 1, ""},
{SIID_CALL_DOWN, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
126, 93, {}, 2, ""},
{SIID_NUMBER_1, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
29, 133, {}, 3, ""},
{SIID_NUMBER_2, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
72, 135, {}, 4, ""},
{SIID_NUMBER_3, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
121, 136, {}, 5, ""},
{SIID_NUMBER_4, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
29, 157, {}, 5, ""},
{SIID_NUMBER_5, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
72, 158, {}, 7, ""},
{SIID_NUMBER_6, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
121, 158, {}, 8, ""},
{SIID_NUMBER_7, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
29, 178, {}, 9, ""},
{SIID_NUMBER_8, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
72, 181, {}, 10, ""},
{SIID_NUMBER_9, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
121, 182, {}, 11, ""},
{SIID_NUMBER_0, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
72, 205, {}, 12, ""},
{SIID_STAR, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
44, 201, {}, 13, ""},
{SIID_SUP, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
119, 201, {}, 14, ""},
{SIID_CLOSE, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
267, 4, {}, 15, "关闭"},
{SIID_CALL_NUMBER, SI_TYPE_BMPLABEL | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
35, 9, {}, 16, "拨叫号码", 0, &call_number}
};
/* 定义皮肤 */
skin_head_t main_skin =
{
"语音通讯",
SKIN_STYLE_TOOLTIP, NULL, NULL,
0, 16, skin_main_items, FALSE
};
/* 位图数组 */
const char *bmp_name[] = {
"images/callbuttons/call_bg.jpg", "images/callbuttons/button_call.jpg", "images/callbuttons/button_pullup.jpg", "images/callbuttons/button_1.jpg", "images/callbuttons/button_2.jpg", "images/callbuttons/button_3.jpg",
"images/callbuttons/button_4.jpg", "images/callbuttons/button_5.jpg", "images/callbuttons/button_6.jpg", "images/callbuttons/button_7.jpg", "images/callbuttons/button_8.jpg","images/callbuttons/button_9.jpg",
"images/callbuttons/button_0.jpg","images/callbuttons/button_xing.jpg","images/callbuttons/button_jing.jpg","images/callbuttons/close.jpg","images/callbuttons/number.jpg"
};
static int cur_pos = 0;
/* 位图资源装/卸载函数 */
void load_skin_bmps ( skin_head_t *skin, BOOL load )
{
int i, bmp_num = sizeof(bmp_name)/sizeof(char *);
/* 如果load为真,则将位图装载到skin的bmps数组,否则卸载bmps数组中的位图 */
if ( load )
skin->bmps = (BITMAP* )calloc ( bmp_num, sizeof(BITMAP) );
for ( i = 0 ; i < bmp_num ; i++ ){
if ( load )
LoadBitmapFromFile ( HDC_SCREEN, (PBITMAP)&(skin->bmps[i]), bmp_name[i] );
else
UnloadBitmap ((PBITMAP)&(skin->bmps[i]));
}
if ( !load )
free ( (void*)skin->bmps);
}
/* 皮肤事件回调函数 */
static int main_event_cb (HWND hwnd, skin_item_t* item, int event, void* data)
{
static int click_num = 0;
int minute = 0;
int second = 0;
int pos = 0;
if (event == SIE_BUTTON_CLICKED) {
switch (item->id) {
case SIID_NUMBER_1:
strcat(numberBuf,"1");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_NUMBER_2:
strcat(numberBuf,"2");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_NUMBER_3:
strcat(numberBuf,"3");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_NUMBER_4:
strcat(numberBuf,"5");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_NUMBER_5:
strcat(numberBuf,"5");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_NUMBER_6:
strcat(numberBuf,"6");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_NUMBER_7:
strcat(numberBuf,"7");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_NUMBER_8:
strcat(numberBuf,"8");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_NUMBER_9:
strcat(numberBuf,"9");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_NUMBER_0:
strcat(numberBuf,"0");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_STAR:
strcat(numberBuf,"*");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_SUP:
strcat(numberBuf,"#");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
break;
case SIID_MAKE_CALL:
isCalling = TRUE;
callingMainWinCreat(hwnd,numberBuf);
break;
case SIID_CALL_DOWN:
if(isCalling)
{
}
else{
strcpy(numberBuf,"");
skin_set_item_label (item->hostskin, SIID_CALL_NUMBER, numberBuf);
}
break;
case SIID_CLOSE:
SendMessage (hwnd, MSG_CLOSE, 0, 0);
break;
}
}
return 1;
}
/* 皮肤窗口消息回调函数 */
static int msg_event_cb (HWND hwnd, int message, WPARAM wparam, LPARAM lparam, int* result)
{
switch (message) {
case MSG_CLOSE:
{
DestroyMainWindow(hwnd);
PostQuitMessage(hwnd);
return 0;
}
}
return 1;
}
void callMainWinCreat(HWND hWnd)
{
MSG msg;
HWND hWndMain;
load_skin_bmps (&main_skin, TRUE); /* 装载位图资源 */
if ( !skin_init (&main_skin, main_event_cb, msg_event_cb) ){ /* 初始化皮肤 */
printf ("skin init fail !\n");
}
else{
hWndMain = create_skin_main_window (&main_skin,
hWnd, 0, 0, 320, 240,
FALSE);
while (GetMessage (&msg, hWndMain)) {
TranslateMessage (&msg);
DispatchMessage (&msg);
}
MainWindowCleanup (hWndMain);
skin_deinit (&main_skin); /* 撤销皮肤 */
}
load_skin_bmps (&main_skin, FALSE); /* 卸载位图资源 */
MiniGUIExtCleanUp ();
}
#endif /* _EXT_SKIN */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -