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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? menutop.c

?? 占用內存極少的菜單程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************
 * MenuTop.C - 頂層菜單 條項菜單核心函數 圖標層函數等
 *
 *
 * 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 - 初始化菜單系統
* DESCRIPTION: -
* 該函數必須在進入菜單前被調用   初始化全局變量
* @Para void:
* Return :
*
*****************************************************************************
*/
void InitMenuVal(void)
{
    WhereBackup_i = 0;
    ItemBackup_i = 0;
    Layer = 0;
    FatherIndex[Layer++] = MenuTopIndex;  //push index  待機界面作為起點
}
/*
*****************************************************************************
* DispMenuTop - 待機界面層5個函數
* DESCRIPTION: -
* DispMenuTop   DispMenuTopUp  DispMenuTopDown  DispMenuTopLeft DispMenuTopRight
*
*
*
*****************************************************************************
*/
void DispMenuTop(void)//待機界面
{
    GUI_Clear();
    GUI_DispStringAtBar("Desktop",0,0,126,GUI_TA_HCENTER);
    //顯示按鍵對應的文字提示,0-->"菜單"
    GUI_DispStringAtBar(*(Tip[language].Text),0,Enter_PosY,126,GUI_TA_HCENTER);
}
//待機界面下Up鍵的處理
void DispMenuTopUp(void)
{
//-------------------
    KeyPressCount = 0;
//-------------------
    GUI_Clear();
//-------------------
//這里是頂層菜單,因此在進入子菜單前需要初始化變量
    InitMenuVal();
//--------------------------
//狀態跳轉,進入子菜單
    //jump to Menu index
    Jump2Menu(MenuIndex,FlashMode_AutoInit);
    return;
}
//待機界面下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;
}
//待機界面下Left鍵的處理
void DispMenuTopLeft(void)
{
    KeyPressCount = 0;
/*
*   這里可以做這個按鍵的功能定義,因為這是在待機界面下
*   比如,做某個子菜單的快捷鏈接--按下該按鍵就直接跳轉到某個子菜單
*/
//-------------------
//這里是頂層菜單,因此在進入子菜單前需要初始化變量
//    InitMenuVal();
//--------------------------
//狀態跳轉,進入子菜單
    Jump2Menu(MenuTopIndex,FlashMode_NoAction);
    return;
}
//待機界面下Right鍵的處理
void DispMenuTopRight(void)
{
    KeyPressCount = 0;
//----------------------
//    ClearLCD();
//    DispRate(0);  //功能函數的"快捷方式"  到測量顯示
//功能函數執行完畢后重新回到待機界面
//    Jump2Menu(MenuTopIndex);
    Jump2Menu(MenuTopIndex,FlashMode_NoAction);
    return;
}
/*
********************************************************
********************************************************
*/
//-----------------------
//菜單備份函數
//備份當前菜單的各個參數
void PUSH(void)
{
    WhereBackup[WhereBackup_i++] = Where;      //備份Where--->高亮顯示的位置
    ItemBackup[ItemBackup_i++] = Item;         //備份Item--->當前項的位置
    FatherIndex[Layer++] = KeyFuncIndex;      //備份KeyFuncIndex--->狀態機的狀態
//-------------------------------

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

}
//菜單還原函數
void POP(void)
{
    Layer--;      //先彈出一層,因為使用的是++,因此當前Layer指向下一個數組位置
    KeyFuncIndex = FatherIndex[Layer-1];     //恢復KeyFuncIndex
    Where = WhereBackup[--WhereBackup_i];    //恢復高亮顯示位置Where
    Item = ItemBackup[--ItemBackup_i];       //恢復項位置Item
//-------------------------------

//-------------------------------
    Flash = FlashMode_ReFlash;                     //子項返回,請求刷新
}

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


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

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

#ifdef LessCPUUseage
        GUI_SetEnFont(En_8x16);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影免费在线| 日本伊人精品一区二区三区观看方式| 欧美日韩一区二区在线观看| 99riav久久精品riav| 99久久久免费精品国产一区二区| 国产成人亚洲综合色影视| 韩国欧美国产1区| 成人做爰69片免费看网站| 国产成人精品三级麻豆| 成人精品视频一区二区三区尤物| 国产成人av一区二区三区在线| 精品一区二区在线视频| 国产精品亚洲一区二区三区妖精 | 久久精品国产亚洲高清剧情介绍 | 免费一级片91| 激情综合亚洲精品| 丁香一区二区三区| 色婷婷久久久久swag精品| 欧美亚洲日本国产| 精品日产卡一卡二卡麻豆| 国产三级久久久| 亚洲精品国久久99热| 日韩电影在线一区| 午夜欧美电影在线观看| 日韩欧美中文字幕精品| 亚洲成年人网站在线观看| 久久精品国产77777蜜臀| 在线欧美日韩精品| 国产精品嫩草久久久久| 欧美丝袜丝nylons| 欧美一区在线视频| 国产人成亚洲第一网站在线播放| 91免费小视频| 日韩伦理电影网| 99久久精品免费精品国产| 久久九九99视频| 日韩精品在线看片z| 欧美午夜免费电影| 日本在线播放一区二区三区| 亚洲人成网站影音先锋播放| 国产精品美女久久久久aⅴ国产馆| 亚洲一区欧美一区| 另类小说综合欧美亚洲| 99热这里都是精品| 日韩一区二区电影| 狠狠狠色丁香婷婷综合激情| 亚洲精品一区二区三区在线观看| 国产一区美女在线| 夜色激情一区二区| 精品国产乱码久久久久久夜甘婷婷| 国产在线国偷精品产拍免费yy| 樱花草国产18久久久久| 久久成人免费网站| 欧美日韩中字一区| 精品在线观看视频| 日韩一区二区精品在线观看| 一区二区三区欧美久久| 91精品国产乱码久久蜜臀| 精品一区二区三区av| 一区二区三区成人| 99综合影院在线| 亚洲品质自拍视频| 国产高清不卡一区二区| 欧美高清在线一区| 欧美丝袜丝交足nylons| 亚洲美女视频在线观看| 日韩一区二区电影在线| 看电影不卡的网站| 欧美精品一区二区三区很污很色的 | 久久久久久久久久久久久夜| 91视频一区二区| 精品一区二区三区蜜桃| 亚洲色图都市小说| 国产午夜精品理论片a级大结局| 日韩精品一区二区三区三区免费 | 国产精品三级在线观看| 美女mm1313爽爽久久久蜜臀| 日韩午夜激情电影| 九一九一国产精品| 久久人人97超碰com| 国产成人免费在线观看| 国产精品久久久久aaaa樱花 | 一区二区三区精密机械公司| 色婷婷久久久综合中文字幕 | 日韩欧美亚洲一区二区| 国内外成人在线视频| 久久先锋影音av| eeuss影院一区二区三区 | 欧美一卡二卡在线观看| 青青草原综合久久大伊人精品| 欧美电影免费观看完整版| 国产激情一区二区三区| 日本一区二区三区电影| 一本色道久久加勒比精品| 亚洲国产人成综合网站| 精品欧美一区二区三区精品久久| 国产尤物一区二区在线| 亚洲色图一区二区三区| 欧美日韩国产三级| 久久99国产精品免费| 一色屋精品亚洲香蕉网站| 欧美高清精品3d| 国产成人av电影在线播放| 有坂深雪av一区二区精品| 日韩精品专区在线| a4yy欧美一区二区三区| 日韩精品一二三区| 中文字幕欧美区| 欧美日韩一区二区三区在线| 国产在线精品一区二区不卡了| 国产精品久久久久毛片软件| 69p69国产精品| 9i看片成人免费高清| 免费国产亚洲视频| 亚洲综合一区二区精品导航| wwww国产精品欧美| 欧美乱妇15p| 99久久精品久久久久久清纯| 午夜精品久久久久久久久久久| 国产色产综合色产在线视频| 欧美三级乱人伦电影| 成人av一区二区三区| 麻豆精品一区二区av白丝在线| 自拍偷在线精品自拍偷无码专区| 欧美电影精品一区二区| 日本高清不卡aⅴ免费网站| 国产麻豆精品视频| 免费成人在线影院| 亚洲电影在线免费观看| 国产精品久久久久国产精品日日| 日韩欧美激情一区| 777午夜精品免费视频| 91啪亚洲精品| 99在线精品观看| 丁香啪啪综合成人亚洲小说| 久久成人免费日本黄色| 日韩和欧美一区二区| 亚洲成人在线免费| 亚洲精品一卡二卡| 中文字幕亚洲精品在线观看| 国产午夜一区二区三区| 日韩美女一区二区三区四区| 制服.丝袜.亚洲.中文.综合| 欧美性感一区二区三区| 色综合久久中文字幕综合网| 99精品久久免费看蜜臀剧情介绍| 国产成人福利片| 国产真实乱偷精品视频免| 久久国内精品视频| 麻豆91在线看| 国产精品一区2区| 国产精品综合一区二区三区| 精品一区二区三区在线观看国产 | 亚洲午夜电影在线观看| 亚洲色图在线视频| 亚洲一区二区三区免费视频| 亚洲一区二区三区免费视频| 亚洲国产日韩精品| 日韩黄色片在线观看| 九九精品视频在线看| 国产在线精品国自产拍免费| 高清成人在线观看| av不卡在线观看| 欧美在线高清视频| 欧美一级欧美三级| 久久久久久免费| 亚洲视频狠狠干| 丝袜诱惑亚洲看片| 国产一区二区精品久久99| 成人av电影免费观看| 欧美性猛交xxxx黑人交| 欧美一区二区三区播放老司机| 精品久久一区二区三区| 国产欧美一区二区精品性色 | 美女视频黄免费的久久| 国产在线不卡一区| 91免费观看视频| 4438亚洲最大| 国产日韩高清在线| 亚洲精品国产一区二区三区四区在线| 亚洲国产精品人人做人人爽| 欧美bbbbb| 成人午夜激情在线| 欧美在线短视频| 精品国产乱码久久久久久久| 国产精品麻豆久久久| 亚洲成人黄色影院| 国产精品亚洲第一| 欧美日韩免费一区二区三区视频| 日韩欧美三级在线| 中文字幕日韩av资源站| 偷拍自拍另类欧美| www.色综合.com| 精品国产伦一区二区三区观看方式 | 一区二区三区中文字幕在线观看| 日本午夜一本久久久综合| 成人黄色免费短视频| 日韩欧美亚洲国产另类| 亚洲狠狠爱一区二区三区| 国产久卡久卡久卡久卡视频精品|