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

📄 skin.c

📁 一个在linux平台上基于minigui的minigui皮肤模板程序。
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#include <minigui/mgext.h>
#include <minigui/skin.h>
#include "project.h"
#include "time.h"
#define SIID_CARTOON         222
#define SIID_TIMER        199
#define SIID_TITLE        200
#define SIID_PHONE        201
#define SIID_MAIL         202
#define SIID_WEB          203
#define SIID_MP3          204
#define SIID_SMS          211
#define SIID_NUMBER          212
#define SIID_CALENDAR          213
#define SIID_GAMES          214
#define SIID_CALC          215
#define SIID_NOTES         216
#define SIID_CLOCK         217
#define SIID_DIANCHI         223
#define SIID_XINHAO         224


#define SIID_CLOSE        207

#define SIID_LABLE1       101
#define SIID_LABLE2       102
#define SIID_LABLE3       103
#define SIID_LABLE11       111
#define SIID_LABLE12       112
#define SIID_LABLE13       113
#define SIID_LABLE14       114
#define SIID_LABLE15       115
#define SIID_LABLE16       116
#define SIID_LABLE17       117

#define DEF_WIDTH       320
#define DEF_HEIGHT      240    

static si_bmplabel_t timer         = { "00:00", "0123456789:-" };
static si_bmplabel_t xinhao         = { "", "1234" };
static si_bmplabel_t dianchi         = { "", "1234" };
static si_bmplabel_t cartoon         = { "", "0123456789:" };
HWND htnd;
static BOOL STOP;
static char timestring[28] = {'\0'};
static int cos=0;
static BITMAP bmp;

/* 定义皮肤元素数组 */
static skin_item_t skin_main_items [] =
{	
{SIID_PHONE, SI_TYPE_CHKBUTTON    | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    16, 166, {}, 1, ""},
{SIID_MAIL, SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    66, 165, {}, 2, ""},
{SIID_MP3,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    116, 165, {}, 3, ""},    	    
{SIID_SMS,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    16, 35, {}, 4, ""},
{SIID_NUMBER,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    66, 35, {}, 5, ""},
{SIID_CALENDAR,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    116, 35, {}, 6, ""},
{SIID_GAMES,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    164, 35, {}, 7, ""},
{SIID_CALC,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    16, 95, {}, 8, ""},
 {SIID_NOTES,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    66, 97, {}, 9, ""},
{SIID_CLOSE,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    245, 190, {}, 10, ""},
{SIID_LABLE1,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   18, 202, {}, 11, ""},
{SIID_LABLE2,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   66, 202, {}, 12, ""},
{SIID_LABLE3,  SI_TYPE_CHKBUTTON  | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   116, 202, {}, 13, ""},   	
{SIID_LABLE11,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   18, 70, {}, 14, ""},
{SIID_LABLE12,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   66, 70, {}, 15, ""},
{SIID_LABLE13,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   114, 72, {}, 16, ""},
{SIID_LABLE14,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   170, 73, {}, 17, ""},
{SIID_LABLE15,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   20, 135, {}, 18, ""},
 {SIID_LABLE16,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   68, 135, {}, 19, ""},
  {SIID_XINHAO,  SI_TYPE_BMPLABEL   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   5,5, {}, 20, "",0,&xinhao},
  {SIID_DIANCHI,  SI_TYPE_BMPLABEL   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   280,5, {}, 21, "",0,&dianchi}, 
  {SIID_CLOCK,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    214, 35, {}, 22, ""}, 
  {SIID_LABLE17,  SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
   216, 74, {}, 23, ""},  	  	  		 		  	  	  	   	
  	   	
};

/* 定义皮肤 */
skin_head_t main_skin =
{
    "",
    SKIN_STYLE_TOOLTIP,NULL, NULL, 
    0, 23, skin_main_items, FALSE
};	 		
	
/* 位图数组 */
const char *bmp_name[] = {
"./res/main.jpg", "./res/phone.jpg", "./res/mail.jpg","./res/mp3.jpg", "./res/sms.jpg","./res/number.jpg","./res/calendar.jpg","./res/game.jpg",
"./res/calc.jpg","./res/note.jpg","./res/close.jpg","./res/1.jpg","./res/2.jpg","./res/3.jpg","./res/11.jpg","./res/12.jpg","./res/13.jpg",
"./res/14.jpg","./res/15.jpg","./res/16.jpg","./res/xinhao.jpg","./res/dianchi.jpg","./res/clock.jpg","./res/17.jpg"
};


/* 位图资源装/卸载函数 */
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)
{   
	
    char buf[256];
    static int click_num = 0;
    int minute = 0;
    int second = 0;
    int pos = 0;
  if (event ==  SIE_GAIN_FOCUS)           
  {   switch (item->id)
	{
		case SIID_PHONE:
		
		   break;
		case SIID_MAIL:
			 break;
		case SIID_SMS:
       break;
    case SIID_NUMBER:
       break;
    case SIID_CALENDAR:
       break;
    case SIID_GAMES:
       break;
    case SIID_CALC:
       break;
    case SIID_NOTES:
       break;
		}
	}
 else	 if (event ==  SIE_LOST_FOCUS)           
 {   
			  switch (item->id)
	{
		  case SIID_PHONE:
   
    	break;
		  case SIID_MAIL:
	
			
			break;
		  case SIID_SMS:
			 
			break;
			case SIID_NUMBER:
				
      break;
      case SIID_CALENDAR:
      	
      break;
      case SIID_GAMES:
      	
      break;
      case SIID_CALC:
      	
      break;
      case SIID_NOTES:
      	
      break;
		}
	}
else  if (event == SIE_BUTTON_CLICKED) {
       switch (item->id) {
        case SIID_PHONE:        /* 皮肤元素SIID_PLAY的SIE_BUTTON_CLICKED事件在这里进行处理 */
        skin_set_check_status (item->hostskin, SIID_PHONE,FALSE );

           call(hwnd);         
         break;
        case SIID_SMS:
 				skin_set_check_status (item->hostskin, SIID_SMS,FALSE );
         EnableWindow(hwnd,0);
           // sms(hwnd);
         EnableWindow(hwnd,1);   
         break;
         case SIID_CLOSE: 
         skin_set_check_status (item->hostskin, SIID_CLOSE,FALSE );
         //SendMessage(TaskBarWindow,IDC_TASKBAR_CLOSEOUT,0,0L);
            destroy_skin_window(hwnd);
  	     // PostQuitMessage (hwnd);
         break;                
        }
    }

}
/* 皮肤窗口消息回调函数 */
static int msg_event_cb (HWND hwnd, int message, WPARAM wparam, LPARAM lparam, int* result)
{
    skin_head_t *hostskin = NULL;
    hostskin = get_window_skin (hwnd);
    switch (message) {
    	  case MSG_CREATE:
    	  	
    	  break;
     
       case MSG_CLOSE:
      	
       return 0;  
    }
 return MSG_CB_GOON;
}
int Skin()
{
    MSG msg;
    HWND hWndMain;
    load_skin_bmps (&main_skin, TRUE);    /* 装载位图资源 */
    if(flag_skin==0)
    {
    skin_init (&main_skin, main_event_cb, msg_event_cb);	
    flag_skin=1;
   } 
    
   {
    hWndMain = create_skin_main_window (&main_skin,
                        HWND_DESKTOP, 0, 0,DEF_WIDTH,  DEF_HEIGHT,
                        FALSE);                                 
    htnd=hWndMain;                     
    while (GetMessage (&msg, hWndMain)) 
        {
           TranslateMessage (&msg);
           DispatchMessage (&msg);
        }
      //MainWindowCleanup(hWndMain);
      //skin_deinit (&main_skin);        /* 撤销皮肤 */
    }    
    load_skin_bmps (&main_skin, FALSE);    /* 卸载位图资源 */
    //MiniGUIExtCleanUp ();
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -