📄 sdrv_draw3drect.s01
字号:
NAME sdrv_draw3drect(16)
RSEG BAC_DW2(0)
EXTERN BAPI_DrawRectFrame
EXTERN BAPI_FillRect
PUBLIC Sdrv_Draw3DRect
EXTERN dc
EXTERN region
EXTERN ?CLZ80L_4_04_L00
RSEG BAC_DW2
Sdrv_Draw3DRect:
; 1. /*
; 2. ********************************************************************************
; 3. * ACTOS
; 4. * ui dirver show picture
; 5. *
; 6. * (c) Copyright 2002-2003, Actions Co,Ld.
; 7. * All Right Reserved
; 8. *
; 9. * File : UI_Draw3DRect.c
; 10. * By : Rcmai
; 11. * Version: 1> v1.00 first version 10/17/2003 10:46PM
; 12. ********************************************************************************
; 13. */
; 14. #include "display.h"
; 15. #include "Drv_S6B33B0A.h"
; 16.
; 17. #pragma memory=constseg(BAS_DW2)
; 18. #pragma memory=default
; 19.
; 20. #pragma memory=dataseg(BAD_DW2)
; 21. //SD_RW sdrw;
; 22. //extern unsigned char BufPage;
; 23. #pragma memory=default
; 24.
; 25. #pragma codeseg(BAC_DW2)
; 26.
; 27. ////*******************************************************************************/
; 28. ///* 把指定区域填充成画笔颜色
; 29. //** FUNCTION: Draw3DRect
; 30. //**
; 31. //** Description:
; 32. //**
; 33. //** input
; 34. //** region_t * D3region: 要画3D区域的区域大小
; 35. //**
; 36. //** output
; 37. //** none
; 38. //********************************************************************************/
; 39.
; 40. void Sdrv_Draw3DRect (region_t * D3region, unsigned char type)
; 41. {
PUSH IX
PUSH BC
PUSH AF
PUSH AF
PUSH DE
POP IX
; 42. COLORREF PenColor_bak;
; 43.
; 44. PenColor_bak = dc.PenColor;//保存当前画笔颜色
LD HL,0
ADD HL,SP
LD BC,(dc+2)
LD DE,(dc)
LD (HL),E
INC HL
LD (HL),D
INC HL
LD (HL),C
INC HL
LD (HL),B
; 45.
; 46. switch (type)
INC HL
LD A,(HL)
CP 0
JR NZ,?0002
?0001:
; 47. {
; 48. case D3Normalframe_def://加选中框
; 49. dc.PenColor = SelectedColor_def;
LD BC,0
LD (dc),BC
LD (dc+2),BC
; 50. BAPI_DrawRectFrame(D3region);
PUSH IX
POP DE
CALL BAPI_DrawRectFrame
; 51. break;
JP ?0004
?0002:
CP 1
JR NZ,?0003
; 52.
; 53. case D3KeyUp_def://加突出效果
; 54. //先画两条背光边
; 55. dc.PenColor = BackLightColor_def;
LD BC,0
LD HL,33808
LD (dc),HL
LD (dc+2),BC
; 56. region = *D3region;
LD DE,region
PUSH IX
POP HL
LD C,4
LDIR
; 57. region.height = 1;
; 58. region.y = D3region->y + D3region->height;
; 59. BAPI_FillRect(®ion);
CALL ?0008
; 60.
; 61. region = *D3region;
; 62. region.width = 1;
LD A,1
LD (region+2),A
; 63. region.x = D3region->x + D3region->width;
LD A,(IX+2)
ADD A,(IX+0)
LD (region),A
; 64. BAPI_FillRect(®ion);
CALL ?0007
; 65.
; 66. //再画两条向光边
; 67. dc.PenColor = FaceLightColor_def;
; 68. region = *D3region;
; 69. region.height = 1;
LD A,1
LD (region+3),A
; 70. BAPI_FillRect(®ion);
CALL ?0009
; 71.
; 72. region = *D3region;
; 73. region.width = 1;
LD A,1
LD (region+2),A
; 74. BAPI_FillRect(®ion);
JR ?0006
CALL BAPI_FillRect
; 75. break;
JR ?0004
?0003:
CP 2
JR NZ,?0004
; 76.
; 77. case D3KeyDown_def://加凹进效果
; 78. //先画两条背光边
; 79. dc.PenColor = BackLightColor_def;
LD BC,0
LD HL,33808
LD (dc),HL
LD (dc+2),BC
; 80. region = *D3region;
LD DE,region
PUSH IX
POP HL
LD C,4
LDIR
; 81. region.height = 1;
LD A,1
LD (region+3),A
; 82. BAPI_FillRect(®ion);
CALL ?0009
; 83.
; 84. region = *D3region;
; 85. region.width = 1;
LD A,1
LD (region+2),A
; 86. BAPI_FillRect(®ion);
CALL ?0007
; 87.
; 88. //再画两条向光边
; 89. dc.PenColor = FaceLightColor_def;
; 90. region = *D3region;
; 91. region.height = 1;
; 92. region.y = D3region->y + D3region->height;
; 93. BAPI_FillRect(®ion);
CALL ?0008
; 94.
; 95. region = *D3region;
; 96. region.width = 1;
LD A,1
LD (region+2),A
; 97. region.x = D3region->x + D3region->width;
LD A,(IX+2)
ADD A,(IX+0)
LD (region),A
; 98. BAPI_FillRect(®ion);
?0006:
LD DE,region
CALL BAPI_FillRect
; 99. break;
?0004:
; 100.
; 101. default:
; 102. break;
?0000:
; 103. }
; 104.
; 105. dc.PenColor = PenColor_bak;//恢复画笔颜色
LD HL,0
ADD HL,SP
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD C,(HL)
INC HL
LD B,(HL)
EX DE,HL
LD (dc),HL
LD (dc+2),BC
; 106. return;
; 107. }
POP HL
POP HL
POP HL
POP IX
RET
?0007:
LD DE,region
CALL BAPI_FillRect
LD HL,50712
LD (dc),HL
LD (dc+2),BC
LD DE,region
PUSH IX
POP HL
LD C,4
LDIR
RET
?0008:
LD A,1
LD (region+3),A
LD A,(IX+3)
ADD A,(IX+1)
LD (region+1),A
?0009:
LD DE,region
CALL BAPI_FillRect
LD DE,region
PUSH IX
POP HL
LD C,4
LDIR
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -