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

📄 resource.c

📁 在ADS环境下MiniGUI的源码
💻 C
📖 第 1 页 / 共 2 页
字号:

#ifdef _NEED_STOCKBMP_BUTTON
#   include "button-flat-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_DOWNARROW
#   include "downarrow-flat-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_DOUBLEARROW
#   include "updownarrow-flat-bmp.c"
#   include "leftrightarrow-flat-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_CHECKMARK
#   include "checkmark-flat-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_SPINBOX
#   include "spinbox-flat-bmp.c"
#endif

#ifdef __ECOS__
#   include "bmps-flat-ecos.c"
#else
#   include "bmps-flat.c"
#endif

#include "icons-flat.c"

#elif defined (_PHONE_WINDOW_STYLE)

#ifdef _NEED_STOCKBMP_BUTTON
#   include "button-phone-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_PUSHBUTTON
#   include "pushbutton-phone-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_DOWNARROW
#   include "downarrow-phone-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_DOUBLEARROW
#   include "updownarrow-phone-bmp.c"
#   include "leftrightarrow-phone-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_CHECKMARK
#   include "checkmark-3d-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_TRACKBAR
#   include "trackbar-phone-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_SPINBOX
#include "spinbox-phone-bmp.c"
#endif

#include "bmps-phone.c"

#include "icons-3d.c"

#else

#ifdef _NEED_STOCKBMP_BUTTON
#   include "button-3d-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_DOWNARROW
#   include "downarrow-3d-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_DOUBLEARROW
#   include "updownarrow-3d-bmp.c"
#   include "leftrightarrow-3d-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_CHECKMARK
#   include "checkmark-3d-bmp.c"
#endif

#ifdef _NEED_STOCKBMP_SPINBOX
#   include "spinbox-3d-bmp.c"
#endif

#ifdef __ECOS__
#   include "bmps-3d-ecos.c"
#else
#   include "bmps-3d.c"
#endif

#include "icons-3d.c"

#endif /* _FLAT_WINDOW_STYLE */

#ifdef _NEED_SYSICON_FOLD
#   include "fold-ico.c"
#   include "unfold-ico.c"
#endif

#ifdef _NEED_SYSICON_FILETYPE
#   include "filetype-icons.c"
#endif

#ifdef _NEED_STOCKBMP_LVFOLD
#   include "lvfold-bmp.c"
#   include "lvunfold-bmp.c"
#endif

static SYSRES sysres_data [] = {
#ifdef _NEED_STOCKBMP_BUTTON
        {STOCKBMP_BUTTON, (void*)button_bmp_data, sizeof(button_bmp_data), 0},
#endif
#ifdef _NEED_STOCKBMP_PUSHBUTTON
        {STOCKBMP_PUSHBUTTON, (void*)pushbutton_bmp_data, sizeof(pushbutton_bmp_data), 0},
        {STOCKBMP_PUSHEDBUTTON, (void*)pushedbutton_bmp_data, sizeof(pushedbutton_bmp_data), 0},
#endif
#ifdef _NEED_STOCKBMP_DOWNARROW
        {STOCKBMP_DOWNARROW, (void*)downarrow_bmp_data, sizeof(downarrow_bmp_data), 0},
#endif
#ifdef _NEED_STOCKBMP_DOUBLEARROW
        {STOCKBMP_UPDOWNARROW, (void*)updownarrow_bmp_data, sizeof(updownarrow_bmp_data), 0},
        {STOCKBMP_LEFTRIGHTARROW, (void*)leftrightarrow_bmp_data, sizeof(leftrightarrow_bmp_data), 0},
#endif
#ifdef _NEED_STOCKBMP_CHECKMARK
        {STOCKBMP_CHECKMARK, (void*)checkmark_bmp_data, sizeof(checkmark_bmp_data), 0},
#endif
#ifdef _NEED_STOCKBMP_TRACKBAR
        {STOCKBMP_TRACKBAR_HBG, (void*)trackbar_hbg_bmp, sizeof(trackbar_hbg_bmp), 0},
        {STOCKBMP_TRACKBAR_HSLIDER, (void*)trackbar_hslider_bmp, sizeof(trackbar_hslider_bmp), 0},
        {STOCKBMP_TRACKBAR_VBG, (void*)trackbar_vbg_bmp, sizeof(trackbar_vbg_bmp), 0},
        {STOCKBMP_TRACKBAR_VSLIDER, (void*)trackbar_vslider_bmp, sizeof(trackbar_vslider_bmp), 0},
#endif
#ifdef _NEED_STOCKBMP_SPINBOX
        {STOCKBMP_SPINBOX_VERT, (void*)spinbox_vert_bmp_data, sizeof(spinbox_vert_bmp_data), 0},
        {STOCKBMP_SPINBOX_HORZ, (void*)spinbox_horz_bmp_data, sizeof(spinbox_horz_bmp_data), 0},
#endif
#ifdef _NEED_STOCKBMP_LVFOLD
        {STOCKBMP_LVFOLD, (void*)lvfold_bmp_data, sizeof(lvfold_bmp_data), 0},
        {STOCKBMP_LVUNFOLD, (void*)lvunfold_bmp_data, sizeof(lvunfold_bmp_data), 0},
#endif
#ifdef _NEED_STOCKBMP_IME
        {STOCKBMP_IMECTRLBTN, NULL, 0, 0},
#endif
#ifdef _NEED_STOCKBMP_LOGO
        {STOCKBMP_LOGO, NULL, 0, 0},
#endif
#ifdef _NEED_SYSICON_FOLD
        {SYSICON_FOLD, (void*)fold_ico_data, sizeof(fold_ico_data), 0},
        {SYSICON_UNFOLD, (void*)unfold_ico_data, sizeof(unfold_ico_data), 0},
#endif
#ifdef _NEED_SYSICON_FILETYPE
        {SYSICON_FT_DIR, (void*)ft_dir_ico_data, sizeof(ft_dir_ico_data), 0},
        {SYSICON_FT_FILE, (void*)ft_file_ico_data, sizeof(ft_file_ico_data), 0},
#endif
        {"icons", (void*)icons_data, SZ_ICON, 0},
        {"bitmap", (void*)bmps_data, (int)sz_bmps, 1}
};

#define SYSRES_NR (sizeof(sysres_data) / sizeof(SYSRES))

static void* get_res_position (const char* szItemName, int *len)
{
    int i = 0;
    int idx_len = 0;
    int name_len;
    int item_idx = 0;
    const char *pidx;

    if (!szItemName || szItemName[0] == '\0')
        return NULL;

    name_len = strlen (szItemName);
    pidx = szItemName + name_len - 1;
    idx_len = 0;
    while ( isdigit(*pidx) )
    {
        idx_len ++;
        if (idx_len == name_len)
            return NULL;
        pidx --;
    }
    name_len -= idx_len;

    if (idx_len > 0)
        item_idx = atoi (szItemName+name_len);

    while ( strncmp(sysres_data[i].name, szItemName, name_len) != 0 && i < SYSRES_NR) i++;
    if (i >= SYSRES_NR)
        return NULL;

    if (sysres_data[i].flag > 0) {
        Uint8* pos = sysres_data[i].res_data;
        int j;
        for (j=0; j<item_idx; j++) {
            pos += *( (int*)sysres_data[i].data_len + j );
        }
        if (len)
            *len = *( (int*)sysres_data[i].data_len + item_idx );
        return pos;
    }
    if (len)
        *len = sysres_data[i].data_len;
    return (Uint8*) sysres_data[i].res_data + sysres_data[i].data_len *item_idx;
}

HICON GUIAPI LoadSystemIcon (const char* szItemName, int which)
{
    void *icon;

    icon = get_res_position (szItemName, NULL);
    if (!icon)
        return 0;

    return LoadIconFromMem (HDC_SCREEN, icon, which);
}

BOOL GUIAPI LoadSystemBitmapEx (PBITMAP pBitmap, const char* szItemName, int ckey_x, int ckey_y)
{
    Uint8* bmpdata;
    int len, nc;

    bmpdata = get_res_position (szItemName, &len);
    if (len == 0) {
        memset (pBitmap, 0, sizeof (BITMAP));
        return TRUE;
    }

    if (!bmpdata) {
        fprintf (stderr, "LoadSystemBitmapEx: Get bitmap data error!\n");
        return FALSE;
    }

    if ((nc = LoadBitmapFromMem (HDC_SCREEN, pBitmap,
                              bmpdata, len, "bmp"))) {
        fprintf (stderr, "LoadSystemBitmapEx: Load bitmap error: %p, %d: %d!\n", bmpdata, len, nc);
        return FALSE;
    }

    if (ckey_x >= 0 && ckey_x < pBitmap->bmWidth
            && ckey_y >= 0 && ckey_y < pBitmap->bmHeight) {
        pBitmap->bmType = BMP_TYPE_COLORKEY;
        pBitmap->bmColorKey = GetPixelInBitmap (pBitmap, 0, 0);
    }

    return TRUE;
}

BOOL InitSystemRes (void)
{
    int i;
    const Uint8* bmp = bmps_data;
    const Uint8* icon = icons_data;

    for (i = 0; i < NR_BMPS; i++) {
        if (sz_bmps [i] > 0) {
            if (LoadBitmapFromMem (HDC_SCREEN, SystemBitmap + i, bmp, 
                                sz_bmps [i], "bmp")) {
                fprintf (stderr, "InitSystemRes: error when loading %d system bitmap.\n", i);
                return FALSE;
            }
            bmp += sz_bmps [i];
        }
    }

    for (i = 0; i < NR_ICONS; i++) {
        SmallSystemIcon [i] = LoadIconFromMem (HDC_SCREEN, icon, 1);
        LargeSystemIcon [i] = LoadIconFromMem (HDC_SCREEN, icon, 0);

        icon += SZ_ICON;

        if (SmallSystemIcon [i] == 0 || LargeSystemIcon [i] == 0) {
            fprintf (stderr, "InitSystemRes: error when loading %d system icon.\n", i);
            return FALSE;
        }
    }

    return TRUE;
}

#ifdef _CURSOR_SUPPORT
PCURSOR LoadSystemCursor (int i)
{
    return (PCURSOR)LoadCursorFromMem (cursors_data + SZ_CURSOR*i);
}
#endif

#endif /* _INCORE_RES */


void TerminateSystemRes (void)
{
    int i;
    
    for (i=0; i<SYSBMP_ITEM_NUMBER; i++)
        UnloadBitmap (SystemBitmap + i);

    for (i=0; i<SYSICO_ITEM_NUMBER; i++) {
        if (SmallSystemIcon [i])
            DestroyIcon (SmallSystemIcon [i]);

        if (LargeSystemIcon [i])
            DestroyIcon (LargeSystemIcon [i]);
    }
}

⌨️ 快捷键说明

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