⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 call_dialog.c

📁 基于minigui的智能手机pda源码
💻 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 + -