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

📄 ui_pop_up_list.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/Nov/107  22:56:49 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\common\ui_pop_up_list.c          #
#       List file     =  d:\case_i_d913f\ap\ap_music\list\ui_pop_up_list.lst #
#       Object file   =  d:\case_i_d913f\ap\ap_music\obj\ui_pop_up_list.r01  #
#       ASM file      =  d:\case_i_d913f\ap\ap_music\list\ui_pop_up_list.s01 #
#       Command line  =  -v0 -mb -OD:\case_i_d913f\ap\ap_music\Obj\ -e -K    #
#                        -w -gA -z9 -RCODE -r0 -DNAPDEBUG                    #
#                        -LD:\case_i_d913f\ap\ap_music\List\ -q -t8          #
#                        -AD:\case_i_d913f\ap\ap_music\List\                 #
#                        -ND:\case_i_d913f\ap\ap_music\List\ -X              #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        d:\case_i_d913f\AP\COMMON\ui_pop_up_list.c          #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ui_pop_up_list(17)
   \   0000                    RSEG    COM_CTRL(0)
   \   0000                    RSEG    CONST(0)
   \   0000                    EXTERN  GetDCStatus
   \   0000                    EXTERN  ResShowMultiString
   \   0000                    EXTERN  ResShowPic
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetPenColor
   \   0000                    EXTERN  TextOutRect
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    PUBLIC  menu_pos_list
   \   0000                    PUBLIC  menulist_bck_pic
   \   0000                    PUBLIC  menuptr_height_list
   \   0000                    EXTERN  ui_auto_select
   \   0000                    PUBLIC  ui_popup_list
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?C_MUL_L01
   \   0000                    EXTERN  ?SS_DIV_L02
   \   0000                    EXTERN  ?SS_MOD_L02
   \   0000                    EXTERN  ?SS_CMP_L02
   \   0000                    EXTERN  ?C_V_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_LEAVE_DIRECT_L08
   \   0000                    EXTERN  ?ENT_AUTO_DIRECT_L09
   \   0000                    RSEG    COM_CTRL
   \   0000            ui_popup_list:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *           ap common lib file
      5          *
      6          *        (c) Copyright, Actions Co,Ld.
      7          *             All Right Reserved
      8          *
      9          *  $Id: ui_pop_up_list.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
     10          *******************************************************************************
     11          */
     12          #include "ap_common.h"
     13          #include "common.h"
     14          
     15          #define LIST_NUM_ONE_PAGE    6
     16          const char menu_pos_list[LIST_NUM_ONE_PAGE] = { 22,22+18,22+18*2,22+18*3,22+18*4,22+18*5};
     17          const WORD menulist_bck_pic[LIST_NUM_ONE_PAGE]={ FILEBCK1,FILEBCK1,FILEBCK1,FILEBCK1,FILEBCK1,FILEBCK1 };
     18          const char menuptr_height_list[9] = { 8*9,8*8,8*7,8*6,8*5,8*4,8*3,8*2,8*1, };
     19          #pragma codeseg(COM_CTRL)
     20          // 定义背景颜色
     21          /*
     22          void show_active_list1(pop_up_list_t *list,int old_active, int active)
     23          {
     24                                          int tmp;
     25                                          
     26                  //---------------------//
     27                  //清除旧的活动菜单项
     28                  tmp = old_active%6;
     29                  if(list->total > LIST_NUM_ONE_PAGE)
     30                          ResShowPic(MENUBCK3, 0, menu_pos_list[tmp]-1);
     31                  else
     32                          ResShowPic(MENUBCK1, 0, menu_pos_list[tmp]-1);
     33                  SetPenColor(Color_BLACK_def);
     34                  SetBackgdColor(Color_MENU_def);
     35                  ResShowMultiString(list->strid[old_active],list->string_id, 3, menu_pos_list[tmp]);
     36                  if(list->total > LIST_NUM_ONE_PAGE)
     37                          ResShowPic(MENUARR, 153, menu_pos_list[tmp]-1);
     38                  else
     39                          ResShowPic(MENUARR, 163, menu_pos_list[tmp]-1);
     40                          
     41                  
     42                  
     43                  tmp = active%6;
     44                  if(list->total > LIST_NUM_ONE_PAGE)
     45                  {
     46                          ResShowPic(MENUBCK2, 0, menu_pos_list[tmp]-1);
     47                          ResShowPic(MENUARR1, 153, menu_pos_list[tmp]-1);
     48                  }
     49                  else
     50                  {
     51                          ResShowPic(MENUBCK, 0, menu_pos_list[tmp]-1);
     52                          ResShowPic(MENUARR1, 163, menu_pos_list[tmp]-1);
     53                  }
     54                  
     55                  SetPenColor(Color_WHITE_def);
     56                  SetBackgdColor(0x00003358);
     57                  ResShowMultiString(list->strid[active],list->string_id, 3, menu_pos_list[tmp]);
     58                  if(list->total > LIST_NUM_ONE_PAGE)
     59                  {
     60                          ResShowPic(MENUPTR, 166, 19);
     61                          tmp = 113-menuptr_height_list[(list->total-1)/LIST_NUM_ONE_PAGE];               //注意,最多九级!!!
     62                          if(tmp%(list->total-1)>=active)
     63                                  ResShowPic(MENUPTR1, 166, 19+active+(tmp/(list->total-1))*active);
     64                          else
     65                                  ResShowPic(MENUPTR1, 166, 19+(tmp/(list->total-1))*active);
     66                  }
     67                  //---------------------//
     68          }
     69          */
     70          /*
     71          ********************************************************************************
     72          * Description : 弹出式列表选择窗体
     73          *
     74          * Arguments   :
     75          *    list,  弹出式列表结构体指针
     76          *    list->string, 语言
     77          *
     78          * Returns     : key
     79          *
     80          * Notes       :
     81          *
     82          ********************************************************************************
     83          */
     84          int ui_popup_list(pop_up_list_t *list, const void (*callback)(int value))
     85          {
   \   0000  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0003  E0FF              DEFW    65504
   \   0005  FDE5              PUSH    IY
   \   0007  DD6E02            LD      L,(IX+2)
   \   000A  DD6603            LD      H,(IX+3)
   \   000D  E5                PUSH    HL
   \   000E  FDE1              POP     IY
     86              int i,active,old_active;
     87              char key,constX;
     88              WORD resID;
     89              bool need_draw=FALSE;
     90              bool need_drawall=TRUE;
     91              bool value_changed=FALSE;
     92              int cur_group;        //list->active / LIST_NUM_ONE_PAGE
     93              int n;            //the item to show
     94              int tmp;
     95              DC  oldDC_sav;
     96              region_t tregion;           //Jerry Xie Add for test
     97          
     98              active = list->active;
   \   0010  FD6E04            LD      L,(IY+4)
   \   0013  DD75E0            LD      (IX-32),L
   \   0016  FD6605            LD      H,(IY+5)
   \   0019  DD74E1            LD      (IX-31),H
     99              GetDCStatus(&oldDC_sav);
   \   001C  210C00            LD      HL,12
   \   001F  39                ADD     HL,SP
   \   0020  EB                EX      DE,HL
   \   0021  CD0000            CALL    LWRD GetDCStatus
   \   0024  DD36FB00          LD      (IX-5),0
   \   0028  DD36FE01          LD      (IX-2),1
   \   002C  DD36FD00          LD      (IX-3),0
   \   0030            ?0003:
    100          
    101              ///-SetTextOutMode(1);       //设字体透明
    102          
    103              while(1)
    104              {
    105                    tregion.x = 3;
   \   0030  DD36E403          LD      (IX-28),3
    106                  tregion.y = 19;
   \   0034  DD36E513          LD      (IX-27),19
    107                  ///-tregion.width = 160;
    108                  tregion.height = 157;
   \   0038  DD36E79D          LD      (IX-25),157
    109                  
    110                  if(need_drawall)
   \   003C  AF                XOR     A
   \   003D  DDB6FE            OR      (IX-2)
   \   0040  2808              JR      Z,?0006
   \   0042            ?0005:
    111                  {
    112                      need_drawall=FALSE;
    113                      need_draw=TRUE;
   \   0042  DD36FE00          LD      (IX-2),0
   \   0046  DD36FB01          LD      (IX-5),1
   \   004A            ?0006:
    114                  }
    115                  if(need_draw)
   \   004A  AF                XOR     A
   \   004B  DDB6FB            OR      (IX-5)
   \   004E  CA1F02            JP      Z,?0008
   \   0051            ?0007:
    116                  {
    117                      old_active=active;
    118                      cur_group = active / LIST_NUM_ONE_PAGE;
   \   0051  010600            LD      BC,6
   \   0054  DD5EE0            LD      E,(IX-32)
   \   0057  DD56E1            LD      D,(IX-31)
   \   005A  CD0000            CALL    LWRD ?SS_DIV_L02
   \   005D  DD73F6            LD      (IX-10),E
   \   0060  DD72F7            LD      (IX-9),D
    119                      n = cur_group*LIST_NUM_ONE_PAGE;
   \   0063  EB                EX      DE,HL
   \   0064  29                ADD     HL,HL
   \   0065  4D                LD      C,L
   \   0066  44                LD      B,H
   \   0067  29                ADD     HL,HL
   \   0068  09                ADD     HL,BC
   \   0069  DD75F4            LD      (IX-12),L
   \   006C  DD74F5            LD      (IX-11),H
    120                      
    121                      if(list->total > LIST_NUM_ONE_PAGE)
   \   006F  DD6EE0            LD      L,(IX-32)
   \   0072  DD66E1            LD      H,(IX-31)
   \   0075  DD75F2            LD      (IX-14),L
   \   0078  DD74F3            LD      (IX-13),H
   \   007B  CDEC04            CALL    LWRD ?0087
   \   007E  3017              JR      NC,?0010
   \   0080            ?0009:
    122                      {
    123                            tregion.width = 144;
   \   0080  DD36E690          LD      (IX-26),144
    124                            constX = 153;
    125                            resID = MENUBCK2;
    126                                  ResShowPic(MENUTWO,0,0);
   \   0084  4C                LD      C,H
   \   0085  C5                PUSH    BC
   \   0086  11C300            LD      DE,195
   \   0089  CDFE04            CALL    LWRD ?0089
   \   008C  F1                POP     AF
   \   008D  DD36FC99          LD      (IX-4),153
   \   0091  DD36F8B6          LD      (IX-8),182
   \   0095  1815              JR      ?0077
    127                      }
    128                      else
   \   0097            ?0010:
    129                      {
    130                            tregion.width = 160;
   \   0097  DD36E6A0          LD      (IX-26),160
    131                            constX = 163;
    132                            resID = MENUBCK;
    133                                  ResShowPic(MENUTWO1,0,0);
   \   009B  4C                LD      C,H
   \   009C  C5                PUSH    BC
   \   009D  11C400            LD      DE,196
   \   00A0  CDFE04            CALL    LWRD ?0089
   \   00A3  F1                POP     AF
   \   00A4  DD36FCA3          LD      (IX-4),163
   \   00A8  DD36F8B4          LD      (IX-8),180
   \   00AC            ?0077:
   \   00AC  DD36F900          LD      (IX-7),0
   \   00B0            ?0011:
    134                      }
    135                      
    136                      SetPenColor(Color_BLACK_def);
   \   00B0  010000            LD      BC,0
   \   00B3  59                LD      E,C
   \   00B4  50                LD      D,B
   \   00B5  CD0000            CALL    LWRD SetPenColor
    137                      SetBackgdColor(0x0000df1c);
   \   00B8  010000            LD      BC,0
   \   00BB  111CDF            LD      DE,57116
   \   00BE  CD0000            CALL    LWRD SetBackgdColor
    138                      ///-SetTextOutMode(1);
    139                      ResShowMultiString(list->headid, list->string_id,255, 1);
   \   00C1  0E01              LD      C,1
   \   00C3  C5                PUSH    BC
   \   00C4  0EFF              LD      C,255
   \   00C6  C5                PUSH    BC
   \   00C7  FD4E08            LD      C,(IY+8)
   \   00CA  FD5E06            LD      E,(IY+6)
   \   00CD  FD5607            LD      D,(IY+7)
   \   00D0  3E00              LD      A,BYTE3 ResShowMultiString
   \   00D2  210000            LD      HL,LWRD ResShowMultiString
   \   00D5  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00D8  F1                POP     AF
   \   00D9  F1                POP     AF
    140                      ///-SetTextOutMode(0);
    141                      SetBackgdColor(Color_MENU_def);

⌨️ 快捷键说明

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