📄 calling_dialog.c
字号:
#include "../sys_headfile.h"
#include <minigui/skin.h>
#include "calling_dialog.h"
#include "call_dialog.h"
#ifdef _EXT_SKIN
static si_bmplabel_t called_number = { "", "0123456789*#" };
static si_bmplabel_t timer = { "00:00", "0123456789:" };
/* 定义皮肤元素数组 */
static skin_item_t skin_main_items [] =
{
{SIID_HOLD, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
181, 83, {}, 1, "挂断"},
{SIID_TIMER, SI_TYPE_BMPLABEL | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
110, 64, {}, 2, "", 0, &timer},
{SIID_CALLED_NUM, SI_TYPE_BMPLABEL | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
61, 12, {}, 3, "", 0, &called_number}
};
/* 定义皮肤 */
skin_head_t calling_main_skin =
{
"通话中",
SKIN_STYLE_TOOLTIP, NULL, NULL,
0, 3, skin_main_items, FALSE
};
/* 位图数组 */
const char *calling_bmp_name[] = {
"images/callbuttons/calling_bg.jpg","images/callbuttons/close.jpg","images/callbuttons/timer.jpg","images/callbuttons/number.jpg"
};
static int cur_pos = 0;
/* 位图资源装/卸载函数 */
void calling_load_skin_bmps ( skin_head_t *skin, BOOL load )
{
int i, bmp_num = sizeof(calling_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]),calling_bmp_name[i] );
else
UnloadBitmap ((PBITMAP)&(skin->bmps[i]));
}
if ( !load )
free ( (void*)skin->bmps);
}
/* 皮肤事件回调函数 */
static int calling_main_event_cb (HWND hwnd, skin_item_t* item, int event, void* data)
{
if (event == SIE_BUTTON_CLICKED) {
switch (item->id) {
case SIID_HOLD:
gprs_hold();
KillTimer (hwnd, ID_TIME);
SendMessage (hwnd, MSG_CLOSE, 0, 0);
break;
}
}
return 1;
}
/* 皮肤窗口消息回调函数 */
static int calling_msg_event_cb (HWND hwnd, int message, WPARAM wparam, LPARAM lparam, int* result)
{
int minute = 0;
int second = 0;
char buf[8];
skin_head_t *hostskin = NULL;
switch (message) {
case MSG_CREATE:
SetTimer (hwnd, ID_TIME, 100);
break;
case MSG_TIMER:
if (cur_pos++ > 1800)
cur_pos = 0;
minute = cur_pos / 60;
second = cur_pos % 60;
if (second > 9)
sprintf (buf, "0%d:%d", minute, second);
else
sprintf (buf, "0%d:0%d", minute,second);
hostskin = get_window_skin (hwnd);
skin_set_item_label (hostskin, SIID_TIMER, buf);
break;
/*case MSG_CLOSE:
DestroyMainWindow(hwnd);
PostQuitMessage(hwnd);
return 0;
*/
}
return 1;
}
void callingMainWinCreat(HWND hWnd,char* buf)
{
MSG msg;
HWND hWndMain;
calling_load_skin_bmps (&calling_main_skin, TRUE); /* 装载位图资源 */
gprs_init();
gprs_call(buf,sizeof(buf));
if ( !skin_init (&calling_main_skin, calling_main_event_cb, calling_msg_event_cb) ){ /* 初始化皮肤 */
printf ("skin init fail !\n");
}
else{
hWndMain = create_skin_main_window (&calling_main_skin,
hWnd, 0, 0, 200, 100,
FALSE);
while (GetMessage (&msg, hWndMain)) {
TranslateMessage (&msg);
DispatchMessage (&msg);
}
MainWindowCleanup (hWndMain);
skin_deinit (&calling_main_skin); /* 撤销皮肤 */
}
calling_load_skin_bmps (&calling_main_skin, FALSE); /* 卸载位图资源 */
MiniGUIExtCleanUp ();
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -