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

📄 ui_pop_up_list.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       27/Sep/107  17:39: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_setting\list\ui_pop_up_list.lst#
#       Object file   =  d:\case_i_d913f\ap\ap_setting\release\obj\ui_pop_up_list.r01#
#       Command line  =  -v0 -mb                                             #
#                        -OD:\case_i_d913f\ap\ap_setting\release\Obj\ -e -K  #
#                        -w -gA -s7 -RCODE -r0 -DNAPDEBUG                    #
#                        -LD:\case_i_d913f\ap\ap_setting\List\ -q -t8        #
#                        -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  ?C_V_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   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  C5                PUSH    BC
   \   0001  FDE5              PUSH    IY
   \   0003  DDE5              PUSH    IX
   \   0005  DD210000          LD      IX,0
   \   0009  DD39              ADD     IX,SP
   \   000B  21E0FF            LD      HL,65504
   \   000E  39                ADD     HL,SP
   \   000F  F9                LD      SP,HL
   \   0010  D5                PUSH    DE
   \   0011  FDE1              POP     IY
     86              int i,active,old_active;
     87              char key,constX;
     88              WORD resID;
     89              bool need_draw=FALSE;
   \   0013  DD36FB00          LD      (IX-5),0
     90              bool need_drawall=TRUE;
   \   0017  DD36FE01          LD      (IX-2),1
     91              bool value_changed=FALSE;
   \   001B  DD36FD00          LD      (IX-3),0
     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;
   \   001F  210400            LD      HL,4
   \   0022  19                ADD     HL,DE
   \   0023  46                LD      B,(HL)
   \   0024  23                INC     HL
   \   0025  66                LD      H,(HL)
   \   0026  68                LD      L,B
   \   0027  DD75E0            LD      (IX-32),L
   \   002A  DD74E1            LD      (IX-31),H
     99              GetDCStatus(&oldDC_sav);
   \   002D  210A00            LD      HL,10
   \   0030  39                ADD     HL,SP
   \   0031  5D                LD      E,L
   \   0032  54                LD      D,H
   \   0033  CD0000            CALL    LWRD GetDCStatus
   \   0036            ?0003:
    100          
    101              ///-SetTextOutMode(1);       //设字体透明
    102          
    103              while(1)
    104              {
    105                    tregion.x = 3;
   \   0036  DD36E403          LD      (IX-28),3
    106                  tregion.y = 19;
   \   003A  DD36E513          LD      (IX-27),19
    107                  ///-tregion.width = 160;
    108                  tregion.height = 157;
   \   003E  DD36E79D          LD      (IX-25),157
    109                  
    110                  if(need_drawall)
   \   0042  AF                XOR     A
   \   0043  DDB6FE            OR      (IX-2)
   \   0046  2808              JR      Z,?0006
   \   0048            ?0005:
    111                  {
    112                      need_drawall=FALSE;
   \   0048  DD36FE00          LD      (IX-2),0
    113                      need_draw=TRUE;
   \   004C  DD36FB01          LD      (IX-5),1
   \   0050            ?0006:
    114                  }
    115                  if(need_draw)
   \   0050  AF                XOR     A
   \   0051  DDB6FB            OR      (IX-5)
   \   0054  CA7003            JP      Z,?0008
   \   0057            ?0007:
    116                  {
    117                      old_active=active;
   \   0057  DD6EE0            LD      L,(IX-32)
   \   005A  DD66E1            LD      H,(IX-31)
   \   005D  DD75F2            LD      (IX-14),L
   \   0060  DD74F3            LD      (IX-13),H
    118                      cur_group = active / LIST_NUM_ONE_PAGE;
   \   0063  010600            LD      BC,6
   \   0066  DD5EE0            LD      E,(IX-32)
   \   0069  DD56E1            LD      D,(IX-31)
   \   006C  CD0000            CALL    LWRD ?SS_DIV_L02
   \   006F  DD73F6            LD      (IX-10),E
   \   0072  DD72F7            LD      (IX-9),D
    119                      n = cur_group*LIST_NUM_ONE_PAGE;
   \   0075  EB                EX      DE,HL
   \   0076  29                ADD     HL,HL
   \   0077  4D                LD      C,L
   \   0078  44                LD      B,H
   \   0079  29                ADD     HL,HL
   \   007A  09                ADD     HL,BC
   \   007B  DD75F4            LD      (IX-12),L
   \   007E  DD74F5            LD      (IX-11),H
    120                      
    121                      if(list->total > LIST_NUM_ONE_PAGE)
   \   0081  FD4E02            LD      C,(IY+2)
   \   0084  FD4603            LD      B,(IY+3)
   \   0087  210600            LD      HL,6
   \   008A  F680              OR      128
   \   008C  ED42              SBC     HL,BC
   \   008E  E29200            JP      PO,?0075
   \   0091  AC                XOR     H
   \   0092            ?0075:
   \   0092  F2B800            JP      P,?0010
   \   0095            ?0009:
    122                      {
    123                            tregion.width = 144;
   \   0095  DD36E690          LD      (IX-26),144
    124                            constX = 153;
   \   0099  DD36FC99          LD      (IX-4),153
    125                            resID = MENUBCK2;
   \   009D  DD36F8B6          LD      (IX-8),182
   \   00A1  DD36F900          LD      (IX-7),0
    126                                  ResShowPic(MENUTWO,0,0);
   \   00A5  0E00              LD      C,0
   \   00A7  C5                PUSH    BC
   \   00A8  0E00              LD      C,0
   \   00AA  11C300            LD      DE,195
   \   00AD  3E00              LD      A,BYTE3 ResShowPic
   \   00AF  210000            LD      HL,LWRD ResShowPic
   \   00B2  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00B5  F1                POP     AF
    127                      }
    128                      else
   \   00B6  1821              JR      ?0011
   \   00B8            ?0010:
    129                      {

⌨️ 快捷键说明

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