亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? menutop.c

?? 一個占用內(nèi)存極少的菜單系統(tǒng)的實(shí)現(xiàn) 8051菜單系統(tǒng)
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************
 * MenuTop.C - 頂層菜單 條項(xiàng)菜單核心函數(shù) 圖標(biāo)層函數(shù)等
 *
 *
 * DESCRIPTION: -
 *
 * modification history
 * --------------------
 * 01a, 04/sep/2007, 梁炎昌 written
 * --------------------
 ******************************************************************************/

#include "CPU.H"
#include "Ks0108.H"
#include "Menu.H"


//void Bar(U8 Item_,U8 ItemNum_);
void DispBuildTime(void);//編譯時間

/*
*****************************************************************************
* InitMenuVal - 初始化菜單系統(tǒng)
* DESCRIPTION: -
* 該函數(shù)必須在進(jìn)入菜單前被調(diào)用   初始化全局變量
* @Para void:
* Return :
*
*****************************************************************************
*/
void InitMenuVal(void)
{
    WhereBackup_i = 0;
    ItemBackup_i = 0;
    Layer = 0;
    FatherIndex[Layer++] = MenuTopIndex;  //push index  待機(jī)界面作為起點(diǎn)
}
/*
*****************************************************************************
* DispMenuTop - 待機(jī)界面層5個函數(shù)
* DESCRIPTION: -
* DispMenuTop   DispMenuTopUp  DispMenuTopDown  DispMenuTopLeft DispMenuTopRight
*
*
*
*****************************************************************************
*/
void DispMenuTop(void)//待機(jī)界面
{
    GUI_Clear();
    GUI_DispStringAtBar("Desktop",0,0,126,GUI_TA_HCENTER);
    //顯示按鍵對應(yīng)的文字提示,0-->"菜單"
    GUI_DispStringAtBar(*(Tip[language].Text),0,Enter_PosY,126,GUI_TA_HCENTER);
}
//待機(jī)界面下Up鍵的處理
void DispMenuTopUp(void)
{
//-------------------
    KeyPressCount = 0;
//-------------------
    GUI_Clear();
//-------------------
//這里是頂層菜單,因此在進(jìn)入子菜單前需要初始化變量
    InitMenuVal();
//--------------------------
//狀態(tài)跳轉(zhuǎn),進(jìn)入子菜單
    //jump to Menu index
    Jump2Menu(MenuIndex,FlashMode_AutoInit);
    return;
}
//待機(jī)界面下Down鍵的處理
void DispMenuTopDown(void)
{

    if((KeyPressCount++)==0x0F){
        GUI_Clear();
        DispBuildTime();
        GUI_Delay(6500);
        KeyPressCount = 0;
        // we need reflash screen
        Jump2Menu(MenuTopIndex,FlashMode_ReFlash);
        return;

    }
    //return to MenuTop index
    Jump2Menu(MenuTopIndex,FlashMode_NoAction);
    return;
}
//待機(jī)界面下Left鍵的處理
void DispMenuTopLeft(void)
{
    KeyPressCount = 0;
/*
*   這里可以做這個按鍵的功能定義,因?yàn)檫@是在待機(jī)界面下
*   比如,做某個子菜單的快捷鏈接--按下該按鍵就直接跳轉(zhuǎn)到某個子菜單
*/
//-------------------
//這里是頂層菜單,因此在進(jìn)入子菜單前需要初始化變量
//    InitMenuVal();
//--------------------------
//狀態(tài)跳轉(zhuǎn),進(jìn)入子菜單
    Jump2Menu(MenuTopIndex,FlashMode_NoAction);
    return;
}
//待機(jī)界面下Right鍵的處理
void DispMenuTopRight(void)
{
    KeyPressCount = 0;
//----------------------
//    ClearLCD();
//    DispRate(0);  //功能函數(shù)的"快捷方式"  到測量顯示
//功能函數(shù)執(zhí)行完畢后重新回到待機(jī)界面
//    Jump2Menu(MenuTopIndex);
    Jump2Menu(MenuTopIndex,FlashMode_NoAction);
    return;
}
/*
********************************************************
********************************************************
*/
//-----------------------
//菜單備份函數(shù)
//備份當(dāng)前菜單的各個參數(shù)
void PUSH(void)
{
    WhereBackup[WhereBackup_i++] = Where;      //備份Where--->高亮顯示的位置
    ItemBackup[ItemBackup_i++] = Item;         //備份Item--->當(dāng)前項(xiàng)的位置
    FatherIndex[Layer++] = KeyFuncIndex;      //備份KeyFuncIndex--->狀態(tài)機(jī)的狀態(tài)
//-------------------------------

//-------------------------------

}
//菜單還原函數(shù)
void POP(void)
{
    Layer--;      //先彈出一層,因?yàn)槭褂玫氖?+,因此當(dāng)前Layer指向下一個數(shù)組位置
    KeyFuncIndex = FatherIndex[Layer-1];     //恢復(fù)KeyFuncIndex
    Where = WhereBackup[--WhereBackup_i];    //恢復(fù)高亮顯示位置Where
    Item = ItemBackup[--ItemBackup_i];       //恢復(fù)項(xiàng)位置Item
//-------------------------------

//-------------------------------
    Flash = FlashMode_ReFlash;                     //子項(xiàng)返回,請求刷新
}

/*
*****************************************************************************
* BarDisp - Bar型菜單顯示
* DESCRIPTION: -
*
* @Para s:BAR顯示的文字內(nèi)容
* @Para X:X軸坐標(biāo)
* @Para Y:Y軸坐標(biāo)
* @Para HighLight:1--->高亮顯示當(dāng)前項(xiàng)  0--->普通顯示當(dāng)前項(xiàng)
//HightLight = 1--->HightLight Disp
//HightLight = 0--->Normal Disp
* Return :
*
*****************************************************************************
*/
//void BarDisp(U8 _CONST_ *s,U8 X,U8 Y,U8 HighLight)
void BarDisp(U8 *s,U8 X,U8 Y,U8 HighLight)
{

#ifdef LessCPUUseage
    if (HighLight == 1) { //高亮顯示
        GUI_DispStringAtBar(s,X+8,Y,120,GUI_TA_LEFT);
        GUI_SetEnFont(En_8x16);
        GUI_DispCharAt('>',X,Y);
    } else {  //通常顯示
        //顯示Bar的Text
        GUI_DispStringAtBar(s,X+8,Y,120,GUI_TA_LEFT);
        GUI_SetEnFont(En_8x16);
        GUI_DispCharAt(' ',X,Y);
    }
#else
    if (HighLight == 1) { //高亮顯示
//------------------------------------
        GUI_SetTextMode(GUI_TEXTMODE_REVERSE);//更改字體顏色來突出顯示
        GUI_DispStringAtBar(s,X,Y,120,GUI_TA_LEFT);
        GUI_SetTextMode(GUI_TEXTMODE_NORMAL);        //恢復(fù)原有字體顏色和背景顏色
//------------------------------------
    } else {  //通常顯示
        //顯示Bar的Text
        GUI_DispStringAtBar(s,X,Y,120,GUI_TA_LEFT);
    }
#endif
}
/*
FIXME!!!
如何修改BarMenuInit和如何處理Item Where的初始化來達(dá)到如此一個目的?
當(dāng)前系統(tǒng)語言設(shè)定是英語,而英語這個項(xiàng)在第2項(xiàng)位置,因此如何能做到當(dāng)菜單進(jìn)入語言選擇時,反顯位置就在英語那里?
1。修改BarMenuInit代碼,處理第一次進(jìn)入時的處理方式,也許就可以僅僅使用從子菜單退出時的處理方法
*/
//Bar型菜單初始化  公共部分
void BarMenuInit(void)
{
U8 Menu_i;          //計數(shù)變量 在菜單函數(shù)中用到
U8 Menu_j;          //計數(shù)變量
//-------------------
//比較"顯示屏可以顯示的項(xiàng)的數(shù)目(DispMax)"跟"需要顯示的數(shù)目(ItemNum)"
//找出小者,以小者為顯示上限
//例如顯示屏可以顯示3項(xiàng),需要顯示的項(xiàng)有2項(xiàng),那么顯示2項(xiàng),有3項(xiàng),顯示3項(xiàng),有4項(xiàng)的話,顯示3項(xiàng)
    if (ItemNum > DispMax) {
        DispMin = DispMax;
    } else {
        DispMin = ItemNum;
    }
//--------------------
//    if (Flash) {//從父菜單進(jìn)入 初始化
        if(Flash == FlashMode_AutoInit){//常規(guī)進(jìn)入 做備份
            PUSH();//在修改Item Where之前備份這些參數(shù)數(shù)據(jù)!!
            Item = 0;
            Where = 0;
        } else if (Flash == FlashMode_ManualInit){    //非常規(guī)進(jìn)入  在之前已經(jīng)備份了,這里做邊界檢查
            if(Where > DispMin-1){//檢查是否出界
                //Where = DispMin-1;//A.最底部的顯示位置
                Where = 0;          //B.最頂部的顯示位置
            }
            if(Item > ItemNum-1){//檢查是否出界
                //Item = ItemNum-1;//A.最后的一個項(xiàng)
                Item = 0;          //B.最開始的一個項(xiàng)
            }
        }
//    }
//-------------------
//既然Item Where均是未定的,那么我們使用從子菜單退出的方法來找到應(yīng)該再Where=0位置顯示的Item項(xiàng)
//----------------
//方法2
    if (Item >= Where) {//未跨越零點(diǎn)
        Menu_j = Item -Where;
    } else {            //跨越零點(diǎn)
        Menu_j = ItemNum  - (Where - Item);
    }
    //此時Menu_J的值就是頂部(Where=0)顯示的Item值
//----------------
    //顯示全部的子菜單項(xiàng)
    for (Menu_i = 0; Menu_i < DispMin; Menu_i++) {
        if (Menu_j == Item){ //反顯第Item項(xiàng),位置是Where
            BarDisp(*(DispItem+Item),BarXOffset,Where*BarYSize+BarYOffset,1);
        } else {             //其它項(xiàng) 正常顯示
            BarDisp(*(DispItem+Menu_j),BarXOffset,Menu_i*BarYSize+BarYOffset,0);
        }
        if (Menu_j == (ItemNum-1)) {//到了最后一項(xiàng),回環(huán)到最開始的一項(xiàng)
            Menu_j = 0;
        } else {                    //下一項(xiàng)
            Menu_j++;
        }
    }
    Bar(Item,ItemNum,MenuBarPosX,MenuBarNumPosX);                  //維護(hù)滾動條
}


//Bar項(xiàng)菜單向左按鍵的行為
/*
可能的幾種情況:
A.原有Bar的頂部,按鍵是向上,那么就需要刷新全部的顯示
A1.若是需要顯示的Bar多于單屏可以顯示的Bar,那么重新顯示全部
A2.若是需要顯示的Bar不多于單屏可以顯示的Bar,取消頂部高亮顯示,高亮顯示最后一項(xiàng)Bar
B.原有Bar不是在頂部,按鍵向上,那么取消原有Bar的高亮,高亮顯示上一個Bar項(xiàng)
當(dāng)然還需要維護(hù):高亮顯示的位置where/高亮顯示Bar項(xiàng)的Item
*/

//維護(hù)Bar顯示
void BarMenuLeft(void)
{
    U8 Menu_i;          //計數(shù)變量 在菜單函數(shù)中用到
    U8 Menu_j;          //計數(shù)變量
    U8 ItemBack;
    ItemBack = Item;//備份原有的Item,取消原有反顯時需要使用
    //維護(hù)Item,得到需要反顯的Item
    if (Item == 0) {
        Item = ItemNum-1;
    } else {
        Item--;
    }
    //維護(hù)顯示
    if (Where) {//當(dāng)前位置不為0,就是說不是在頂部,兩次反顯

#ifdef LessCPUUseage
        GUI_SetEnFont(En_8x16);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品麻豆视频| 国产片一区二区| 亚洲国产综合91精品麻豆| 在线视频一区二区三| 一区二区三区精品视频在线| 色婷婷av久久久久久久| 亚洲成av人影院| 欧美一区二区精品在线| 久久国产乱子精品免费女| 久久毛片高清国产| 成人激情文学综合网| 一区二区三区精品视频| 91精选在线观看| 国产乱码精品一区二区三| 亚洲欧洲美洲综合色网| 欧美日韩一区中文字幕| 狠狠色丁香久久婷婷综合_中 | 激情综合色综合久久| 国产欧美日韩综合精品一区二区| 粉嫩在线一区二区三区视频| 一二三四社区欧美黄| 日韩视频免费直播| 成人激情av网| 日韩精品成人一区二区三区| 久久精品在线免费观看| 在线看日本不卡| 看片的网站亚洲| 亚洲日本乱码在线观看| 欧美一级二级在线观看| 成+人+亚洲+综合天堂| 亚洲成人你懂的| 国产人成亚洲第一网站在线播放 | 日韩精品一区二区三区视频在线观看| 国产乱人伦偷精品视频不卡 | 精品国产免费视频| 97精品国产97久久久久久久久久久久| 性欧美疯狂xxxxbbbb| 国产农村妇女毛片精品久久麻豆| 色诱视频网站一区| 国产一区啦啦啦在线观看| 亚洲精品久久久蜜桃| 久久女同互慰一区二区三区| 在线一区二区三区| 国产成人自拍网| 亚洲成av人片在www色猫咪| 欧美经典一区二区| 欧美一级日韩免费不卡| 色av一区二区| 床上的激情91.| 蜜桃一区二区三区四区| 一区二区三区免费网站| 国产精品视频麻豆| 欧美成人午夜电影| 欧美放荡的少妇| 日本精品视频一区二区| 国产成人精品三级| 美女诱惑一区二区| 三级不卡在线观看| 亚洲另类色综合网站| 中文无字幕一区二区三区| 精品国产一区久久| 国产真实乱子伦精品视频| 久久久久久久综合狠狠综合| 蜜臀久久99精品久久久久宅男| 亚洲精品成a人| 成人免费在线视频观看| 国产欧美一区二区精品忘忧草| 日韩一区二区免费高清| 欧美日韩在线三区| 欧美色综合网站| 色综合久久综合| 色噜噜狠狠色综合欧洲selulu | 国产资源精品在线观看| 亚洲成人第一页| 亚洲高清免费在线| 亚洲一区二区三区四区的| 玉米视频成人免费看| 中文字幕在线一区二区三区| 国产精品亲子乱子伦xxxx裸| 国产女主播一区| 国产精品久久久久影院亚瑟 | 欧美人动与zoxxxx乱| 欧美日韩一区二区三区免费看| 色婷婷久久久久swag精品 | 精品婷婷伊人一区三区三| 色老综合老女人久久久| 欧美视频一区二区三区四区| 欧美日韩大陆一区二区| 欧美人与z0zoxxxx视频| 日韩欧美国产一区二区在线播放 | 欧美日韩在线不卡| 在线播放一区二区三区| 91精品国产一区二区三区蜜臀| 91精品国产综合久久香蕉麻豆| 欧美成人伊人久久综合网| 国产色91在线| 亚洲欧美日韩国产手机在线 | 97久久精品人人澡人人爽| 91网站在线观看视频| 91成人国产精品| 日韩欧美中文一区二区| www久久久久| 亚洲欧洲国产日韩| 日韩黄色小视频| 国产精一区二区三区| 成人app软件下载大全免费| 在线中文字幕一区| 日韩欧美一区在线| 国产精品乱人伦中文| 亚洲最新视频在线观看| 久久国产三级精品| 99精品视频在线播放观看| 欧美日韩aaaaaa| 久久久久亚洲蜜桃| 亚洲一级二级在线| 国产一区二区三区免费看| 97国产精品videossex| 欧美一区二视频| 亚洲天堂精品在线观看| 日韩高清在线电影| 成人福利视频网站| 7777精品伊人久久久大香线蕉 | 亚洲欧美日韩系列| 久久se精品一区精品二区| av不卡在线观看| 精品av综合导航| 亚洲综合小说图片| 国产成人精品aa毛片| 欧美亚洲国产bt| 国产精品久久久久久久午夜片| 日韩精品电影在线| 91久久久免费一区二区| 久久蜜臀中文字幕| 五月激情综合色| 色噜噜狠狠成人网p站| 国产午夜精品一区二区| 蜜桃传媒麻豆第一区在线观看| 91日韩一区二区三区| 国产视频一区二区三区在线观看| 日韩成人免费看| 欧美视频一区在线观看| 成人欧美一区二区三区视频网页| 久久99精品国产91久久来源| 欧美日韩专区在线| 国产精品第一页第二页第三页| 精品在线你懂的| 欧美电影在哪看比较好| 亚洲欧美乱综合| 国产精品亚洲午夜一区二区三区| 欧美日韩精品一区二区三区| 国产精品久久免费看| 国产成人精品综合在线观看 | 国产精品自在欧美一区| 欧美一区二区黄| 亚洲成a人v欧美综合天堂| 91精彩视频在线观看| 日韩一区在线免费观看| 99久久精品国产网站| 国产精品色眯眯| 成人午夜av在线| 国产精品麻豆久久久| 国产成都精品91一区二区三| 久久久久久久久久看片| 精品一区二区免费看| 欧美一区二区黄| 久久99久久99| 亚洲精品一区二区三区精华液| 美女任你摸久久 | 欧美日韩夫妻久久| 亚洲综合免费观看高清完整版| 91亚洲国产成人精品一区二区三| 中文一区二区在线观看| www.欧美色图| 亚洲美女少妇撒尿| 91在线一区二区| 一区二区三区精密机械公司| 91亚洲国产成人精品一区二三| 亚洲日本丝袜连裤袜办公室| 91网站在线播放| 亚洲不卡一区二区三区| 欧美一区二区三区视频免费| 免费欧美高清视频| 亚洲精品一区二区三区四区高清 | 成人一区二区三区在线观看| 中文字幕av资源一区| 99riav一区二区三区| 亚洲尤物视频在线| 欧美精品亚洲二区| 黑人精品欧美一区二区蜜桃 | 伊人夜夜躁av伊人久久| 91久久国产综合久久| 亚洲mv在线观看| 337p日本欧洲亚洲大胆精品 | 国产一区欧美二区| 一区在线观看免费| 欧美三区在线视频| 狠狠色综合色综合网络| 综合分类小说区另类春色亚洲小说欧美| 91首页免费视频| 视频一区二区欧美|