📄 asix_mn.c
字号:
switch ( message )
{
case WM_PENDOWN:
case WM_PENDRAG:
case WM_PENDRAGUP:
break;
case WM_PENUP:
// InvRec( pGC, p_str->x, p_str->y, p_str->width, p_str->height );//by zl 2002.3.20
// InvRec( pGC, p_str->x + 1, p_str->y + 1, p_str->width - 2, p_str->height - 2 );
// SetDotWidth( pGC, 2, NULL);
DrawHorz( pGC, ColorTheme.obj3D_highlight, p_str->x, p_str->y + (((GC*)pGC)->dotwidth - 1) / 2, p_str->width - ((GC*)pGC)->dotwidth, GPC_SOLID_LINE, GPC_REPLACE_STYLE );
DrawVert( pGC, ColorTheme.obj3D_highlight, p_str->x + (((GC*)pGC)->dotwidth - 1) / 2, p_str->y + ((GC*)pGC)->dotwidth, p_str->height - ((GC*)pGC)->dotwidth, GPC_SOLID_LINE, GPC_REPLACE_STYLE);
DrawHorz( pGC, ColorTheme.obj3D_shadow, p_str->x + ((GC*)pGC)->dotwidth, p_str->y + p_str->height - ((GC*)pGC)->dotwidth / 2 - 1, p_str->width - ((GC*)pGC)->dotwidth, GPC_SOLID_LINE, GPC_REPLACE_STYLE );
DrawVert( pGC, ColorTheme.obj3D_shadow, p_str->x + p_str->width - ((GC*)pGC)->dotwidth / 2 - 1, p_str->y, p_str->height - ((GC*)pGC)->dotwidth, GPC_SOLID_LINE, GPC_REPLACE_STYLE);
// ClearRec( pGC, ColorTheme.obj3D, x + ((GC*)pGC)->dotwidth, y + ((GC*)pGC)->dotwidth, width - 2 * ((GC*)pGC)->dotwidth, height - 2 * ((GC*)pGC)->dotwidth, GPC_REPLACE_STYLE);
// SetDotWidth( pGC, 1, NULL);
menu_hide( p_str );
ActiveListPop( );
break;
default:
break;
}
break;
case SELECTED_UP:
if ( (p_str->menu_up).icon_status != ICON_ENABLE )
goto error_end;
switch ( message )
{
case WM_PENUP:
// InvRec( pGC, p_str->pop_x, p_str->pop_y, p_str->pop_width, ITEM_0);//by zl 2002.3.20
InvRec( pGC, p_str->pop_x + 2, p_str->pop_y + 2, p_str->pop_width - 4, ITEM_0 );
--p_str->offset;
//ClearRec( pGC, GPC_LIGHTGREY, p_str->pop_x+2, p_str->pop_y+2, (p_str->pop_width-2),
//(p_str->pop_height-2), GPC_REPLACE_STYLE);//modified by LM for Light Grey background 01/05/17
/* 2001-11-24 16:23 */
// ClearRec( pGC, ColorTheme.menu, p_str->pop_x+2, p_str->pop_y+2, (p_str->pop_width-2), (p_str->pop_height-2), GPC_REPLACE_STYLE);//by zl 2002.3.20
ClearRec( pGC, ColorTheme.menu, p_str->pop_x + 2, p_str->pop_y + 2, (p_str->pop_width - 4),
(p_str->pop_height - 4), GPC_REPLACE_STYLE);
// longn_qi 2001/11/15 revised
//switchonetotwo(menu_down, p_str->pop_x+(p_str->pop_width/2)-5,
// p_str->pop_y+5*ITEM_1+ITEM_0+2, 10, 10);
// DrawMonoImage( pGC, menu_down, p_str->pop_x+(p_str->pop_width/2)-5, p_str->pop_y+5*ITEM_1+ITEM_0+2, 10, 10, ColorTheme.form_text, ColorTheme.menu);//by zl 2002.3.20
// DrawMonoImage( pGC, menu_down, p_str->pop_x + (p_str->pop_width - ARROW_WIDTH) / 2, p_str->pop_y + ITEMDISPLAY_MAX * ITEM_1 + ITEM_0 + ( ITEM_0 - ARROW_HEIGHT ) / 2 + 1, ARROW_WIDTH, ARROW_HEIGHT, ColorTheme.form_frontcolor, ColorTheme.menu);//by zl 2002.3.20
// DrawMonoImage( pGC, menu_down7x7, p_str->pop_x + (p_str->pop_width - ARROW_WIDTH) / 2 + 1, p_str->pop_y + ITEMDISPLAY_MAX * ITEM_1 + ITEM_0 + ( ITEM_0 - ARROW_HEIGHT ) / 2 + 1, ARROW_WIDTH, ARROW_HEIGHT, ColorTheme.form_frontcolor, ColorTheme.menu);
{
U32 hbmp;
U32 trColor;
U16 x = p_str->pop_x + (p_str->pop_width - ARROW_WIDTH) / 2 + 1;
U16 y = p_str->pop_y + ITEMDISPLAY_MAX * ITEM_1 + ITEM_0 + ( ITEM_0 - ARROW_HEIGHT ) / 2 + 1;
U32 palette[2];
palette[0] = ColorTheme.menu;
palette[1] = ColorTheme.form_frontcolor;
hbmp = LoadBitmap( menu_down7x7, palette );
if( hbmp != 0 )
{
SetBMPPalette( hbmp, palette, NULL );
SetBkFillMode( pGC, MAKELONG( GPC_REPLACE_STYLE, GPC_TRANSPARENT_STYLE ) );
#ifndef COLORINDEX_GARFILED //add COLORINDEX_GARFILED by ADS 2004.09.20
trColor = palette[0];
DisplayBMPEx( pGC, x, y, hbmp, GPC_TRANSPARENT_STYLE, trColor );
#else
DisplayBMP( pGC, x, y, hbmp );
#endif
FreeBitmap( hbmp );
}
}
(p_str->menu_down).icon_status = ICON_ENABLE;
// DrawLine( pGC, GPC_BLACK, p_str->pop_x, p_str->pop_y+ITEM_0+5*ITEM_1, p_str->pop_x+p_str->pop_width, p_str->pop_y+ITEM_0+5*ITEM_1, GPC_SOLID_LINE, GPC_REPLACE_STYLE );//BY ZL 2002/3/20
DrawHorz( pGC, ColorTheme.form_line, p_str->pop_x + 2, p_str->pop_y + ITEM_0 + ITEMDISPLAY_MAX * ITEM_1 + 2, p_str->pop_width - 4, GPC_SOLID_LINE, GPC_REPLACE_STYLE );//by zl 2002.4.4
if ( (p_str->offset) == 0 )
{
// longn_qi 2001/11/15 revised
//Advswitchonetotwo(menu_up, p_str->pop_x+(p_str->pop_width/2)-5,
// p_str->pop_y+2, 10, 10, BLACK_TO_GREY, WHITE_TO_WHITE);
// DrawMonoImage( pGC, menu_up, p_str->pop_x+(p_str->pop_width/2)-5, p_str->pop_y+2, 10, 10, ColorTheme.form_text, ColorTheme.menu);//by zl 2002.3.20
// DrawMonoImage( pGC, menu_up7x7, p_str->pop_x + (p_str->pop_width - ARROW_WIDTH)/ 2 + 1, p_str->pop_y + (ITEM_0 - ARROW_HEIGHT) / 2 + 1,ARROW_WIDTH, ARROW_HEIGHT, ColorTheme.form_disablecolor, ColorTheme.menu );
{
U32 hbmp;
U32 trColor;
U16 x = p_str->pop_x + (p_str->pop_width - ARROW_WIDTH)/ 2 + 1;
U16 y = p_str->pop_y + (ITEM_0 - ARROW_HEIGHT) / 2 + 1;
U32 palette[2];
palette[0] = ColorTheme.menu;
palette[1] = ColorTheme.obj3D_disablecolor;
hbmp = LoadBitmap( menu_up7x7, palette );
if( hbmp != 0 )
{
//SetBMPPalette( hbmp, palette, NULL );
SetBkFillMode( pGC, MAKELONG( GPC_REPLACE_STYLE, GPC_TRANSPARENT_STYLE ) );
#ifndef COLORINDEX_GARFILED //add COLORINDEX_GARFILED by ADS 2004.09.20
trColor = palette[0];
DisplayBMPEx( pGC, x, y, hbmp, GPC_TRANSPARENT_STYLE, trColor );
#else
DisplayBMP( pGC, x, y, hbmp );
#endif
FreeBitmap( hbmp );
}
}
// DrawLine( pGC, GPC_BLACK, p_str->pop_x, p_str->pop_y+ITEM_0, p_str->pop_x+p_str->pop_width, p_str->pop_y+ITEM_0, GPC_SOLID_LINE, GPC_REPLACE_STYLE ); //by zl 2002.3.20
DrawHorz( pGC, ColorTheme.form_line, p_str->pop_x + 2, p_str->pop_y + ITEM_0 + 1, p_str->pop_width - 4, GPC_SOLID_LINE, GPC_REPLACE_STYLE );
(p_str->menu_up).icon_status = ICON_DISABLE;
}
else
{
// longn_qi 2001/11/15 revised
//switchonetotwo(menu_up, p_str->pop_x+(p_str->pop_width/2)-5,
// p_str->pop_y+2, 10, 10 );
// DrawMonoImage( pGC, menu_up, p_str->pop_x+(p_str->pop_width/2)-5, p_str->pop_y+2, 10, 10, ColorTheme.form_text, ColorTheme.menu );//by zl 2002/3/20
// DrawMonoImage( pGC, menu_up7x7, p_str->pop_x + (p_str->pop_width - ARROW_WIDTH)/ 2 + 1, p_str->pop_y + (ITEM_0 - ARROW_HEIGHT) / 2 + 1,ARROW_WIDTH, ARROW_HEIGHT, ColorTheme.form_frontcolor, ColorTheme.menu );
{
U32 hbmp;
U32 trColor;
U16 x = p_str->pop_x + (p_str->pop_width - ARROW_WIDTH)/ 2 + 1;
U16 y = p_str->pop_y + (ITEM_0 - ARROW_HEIGHT) / 2 + 1;
U32 palette[2];
palette[0] = ColorTheme.menu;
palette[1] = ColorTheme.form_frontcolor;
hbmp = LoadBitmap( menu_up7x7, palette );
if( hbmp != 0 )
{
SetBMPPalette( hbmp, palette, NULL );
SetBkFillMode( pGC, MAKELONG( GPC_REPLACE_STYLE, GPC_TRANSPARENT_STYLE ) );
#ifndef COLORINDEX_GARFILED //add COLORINDEX_GARFILED by ADS 2004.09.20
trColor = palette[0];
DisplayBMPEx( pGC, x, y, hbmp, GPC_TRANSPARENT_STYLE, trColor );
#else
DisplayBMP( pGC, x, y, hbmp );
#endif
FreeBitmap( hbmp );
}
}
// DrawLine( pGC, GPC_BLACK, p_str->pop_x, p_str->pop_y+ITEM_0, p_str->pop_x+p_str->pop_width, p_str->pop_y+ITEM_0, GPC_SOLID_LINE, GPC_REPLACE_STYLE ); //by zl 2002.3.20
DrawHorz( pGC, ColorTheme.form_line, p_str->pop_x + 2, p_str->pop_y + ITEM_0 + 1, p_str->pop_width - 4, GPC_SOLID_LINE, GPC_REPLACE_STYLE );
}
p_input = p_str->menu_item + p_str->offset;
//by zl 2002/4/4
if ((dispbuf = (char *)Lmalloc( ITEMTEXT_MAX + 1 )) == NULL)//dispbuf = (char *)Lmalloc( 11 );//by zl 2002/3/20 move from L744
{
ActiveListPop( );
PenIrptEnable( );
return ASIX_ERROR;
}
for ( i = 0; i < ITEMDISPLAY_MAX; i++ )//for ( i=0; i<5; i++ )//by zl 2002/3/20
{
/* if ( strlen(p_input->item_text) > 10 )
{
(p_input->item_text[8]) = '.';
(p_input->item_text[9]) = '.';
(p_input->item_text[10]) = '\0';
}
*/
// dispbuf = (char *)Lmalloc( ITEMTEXT_MAX );//dispbuf = (char *)Lmalloc( 11 );//by zl 2002/3/20
// longn_qi 2002/01/25 for monitor memory leak
asix_mn_memdbgprintf( "asix_mn appeal mem for menu display buffer" );
menu_cutstring( p_input->item_text, ITEMTEXT_MAX, dispbuf );//menu_cutstring( p_input->item_text, 10, dispbuf );//by zl 2002.3.20
if ( p_input->item_underline == UNDERLINE )
// DrawLine( pGC, GPC_BLACK, p_str->pop_x, p_str->pop_y+(i+1)*ITEM_1+ITEM_0, p_str->pop_x+p_str->pop_width, p_str->pop_y+ITEM_1*(i+1)+ITEM_0, GPC_SOLID_LINE, GPC_REPLACE_STYLE);//by zl 2002.3.20
DrawHorz( pGC, ColorTheme.form_line, p_str->pop_x + 2, p_str->pop_y + 2 + (i + 1) * ITEM_1 + ITEM_0, p_str->pop_width - 4, GPC_SOLID_LINE, GPC_REPLACE_STYLE);
if ( p_input->item_status == ICON_ENABLE )
//Disp16String( dispbuf, p_str->pop_x+MARGIN, (p_str->pop_y)
// +ITEM_0+ITEM_1*i+2 );
// TextOut( pGC, dispbuf, p_str->pop_x+MARGIN, (p_str->pop_y)+ITEM_0+ITEM_1*i+2, HZK_16X16_FONT, ColorTheme.form_text, GPC_REPLACE_STYLE);//GPC_OR_STYLE);//by zl 2002.3.20
TextOut( pGC, dispbuf, p_str->pop_x + 2 + MARGIN, p_str->pop_y + 2 + ITEM_0 + ITEM_1 * i + ITEMTEXT_UP_FROM, HZK_16X16_FONT, ColorTheme.form_text, GPC_REPLACE_STYLE);//GPC_OR_STYLE);
else
//Disp16StringGrey(GPC_DARKGREY, dispbuf, p_str->pop_x+MARGIN,
//(p_str->pop_y)+ITEM_0+ITEM_1*i+2);
// TextOut( pGC, dispbuf, p_str->pop_x+MARGIN, (p_str->pop_y)+ITEM_0+ITEM_1*i+2, HZK_16X16_FONT, ColorTheme.form_disablecolor, GPC_REPLACE_STYLE);//GPC_OR_STYLE);//by zl 2002/3/20
TextOut( pGC, dispbuf, p_str->pop_x + 2 + MARGIN, (p_str->pop_y) + ITEM_0 + ITEM_1 * i + 2,HZK_16X16_FONT, ColorTheme.form_disablecolor, GPC_REPLACE_STYLE);//GPC_OR_STYLE);
(p_str->menu_icon[i]).icon_status = p_input->item_status;
// Lfree( (void *)dispbuf );
// longn_qi 2002/01/25 for monitor memory leak
asix_mn_memdbgprintf( "asix_mn free mem of menu display buffer" );
p_input++;
}
Lfree( (void *)dispbuf );//move from L767
break;
case WM_PENDOWN:
case WM_PENDRAG:
case WM_PENDRAGUP:
// InvRec( pGC, p_str->pop_x, p_str->pop_y, p_str->pop_width, ITEM_0);//by zl 2002.3.20
InvRec( pGC, p_str->pop_x + 2, p_str->pop_y + 2, p_str->pop_width - 4, ITEM_0 );
break;
default:
break;
}
break;
case SELECTED_DOWN:
if ( (p_str->menu_down).icon_status != ICON_ENABLE )
goto error_end;
switch ( message )
{
case WM_PENUP:
// InvRec( pGC, p_str->pop_x, p_str->pop_y+5*ITEM_1+ITEM_0, p_str->pop_width, ITEM_0);//by zl 2002.3.20
InvRec( pGC, p_str->pop_x + 2, p_str->pop_y + 5 * ITEM_1 + ITEM_0 + 1, p_str->pop_width - 4, ITEM_0 );
++p_str->offset;
// ClearRec( pGC, ColorTheme.menu, p_str->pop_x+2, p_str->pop_y+2, (p_str->pop_width-2), (p_str->pop_height-2), GPC_REPLACE_STYLE); //modified by LM for Light Grey background 01/05/17 //by zl 2002.3.20
ClearRec( pGC, ColorTheme.menu, p_str->pop_x + 2, p_str->pop_y + 2, (p_str->pop_width - 4), (p_str->pop_height - 4), GPC_REPLACE_STYLE); //modified by LM for Light Grey background 01/05/17
// longn_qi 2001/11/15 revised
//switchonetotwo(menu_up, p_str->pop_x+(p_str->pop_width/2)-5,
// p_str->pop_y+2, 10, 10);
// DrawMonoImage( pGC, menu_up, p_str->pop_x+(p_str->pop_width/2)-5, p_str->pop_y+2, 10, 10, ColorTheme.form_text, ColorTheme.menu );//by zl 2002.3.20
// DrawMonoImage( pGC, menu_up7x7, p_str->pop_x + (p_str->pop_width - ARROW_WIDTH)/ 2 + 1, p_str->pop_y + (ITEM_0 - ARROW_HEIGHT) / 2 + 1,ARROW_WIDTH, ARROW_HEIGHT, ColorTheme.form_frontcolor, ColorTheme.menu );
{
U32 hbmp;
U32 trColor;
U16 x = p_str->pop_x + (p_str->pop_width - ARROW_WIDTH)/ 2 + 1;
U16 y = p_str->pop_y + (ITEM_0 - ARROW_HEIGHT) / 2 + 1;
U32 palette[2];
palette[0] = ColorTheme.menu;
palette[1] = ColorTheme.form_frontcolor;
hbmp = LoadBitmap( menu_up7x7, palette );
if( hbmp != 0 )
{
SetBMPPalette( hbmp, palette, NULL );
SetBkFillMode( pGC, MAKELONG( GPC_REPLACE_STYLE, GPC_TRANSPARENT_STYLE ) );
#ifndef COLORINDEX_GARFILED //add COLORINDEX_GARFILED by ADS 2004.09.20
trColor = palette[0];
DisplayBMPEx( pGC, x, y, hbmp, GPC_TRANSPARENT_STYLE, trColor );
#else
DisplayBMP( pGC, x, y, hbmp );
#endif
FreeBitmap( hbmp );
}
}
(p_str->menu_up).icon_status = ICON_ENABLE;
// DrawLine( pGC, GPC_BLACK, p_str->pop_x, p_str->pop_y+ITEM_0, p_str->pop_x+p_str->pop_width, p_str->pop_y+ITEM_0, GPC_SOLID_LINE, GPC_REPLACE_STYLE ); //by zl 2002.3.20
DrawHorz( pGC, ColorTheme.form_line, p_str->pop_x + 2, p_str->pop_y + ITEM_0 + 1, p_str->pop_width - 4, GPC_SOLID_LINE, GPC_REPLACE_STYLE );
if ( (p_str->offset) + ITEMDISPLAY_MAX == p_str->total_line )//if ( (p_str->offset)+5 == p_str->total_line )//by zl 2002.3.20
{
// longn_qi 2001/11/15 revised
//Advswitchonetotwo(menu_down, p_str->pop_x+(p_str->pop_width/2)-5,
// p_str->pop_y+5*ITEM_1+ITEM_0+2, 10, 10, BLACK_TO_GREY, WHITE_TO_WHITE);
// DrawMonoImage( pGC, menu_down, p_str->pop_x+(p_str->pop_width/2)-5, p_str->pop_y+5*ITEM_1+ITEM_0+2, 10, 10, ColorTheme.form_text, ColorTheme.menu);//by zl 2002.3.20
// DrawMonoImage( pGC, menu_down7x7, p_str->pop_x + (p_str->pop_width - ARROW_WIDTH) / 2 + 1, p_str->pop_y + ITEMDISPLAY_MAX * ITEM_1 + ITEM_0 + ( ITEM_0 - ARROW_HEIGHT ) / 2 + 1, ARROW_WIDTH, ARROW_HEIGHT, ColorTheme.form_disablecolor, ColorTheme.menu);
{
U32 hbmp;
U32 trColor;
U16 x = p_str->pop_x + (p_str->pop_width - ARROW_WIDTH) / 2 + 1;
U16 y = p_str->pop_y + ITEMDISPLAY_MAX * ITEM_1 + ITEM_0 + ( ITEM_0 - ARROW_HEIGHT ) / 2 + 1;
U32 palette[2];
palette[0] = ColorTheme.menu;
palette[1] = ColorTheme.obj3D_disablecolor;
hbmp = LoadBitmap( menu_down7x7, palette );
if( hbmp != 0 )
{
SetBMPPalette( hbmp, palette, NULL );
SetBkFillMode( pGC, MAKELONG( GPC_REPLACE_STYLE, GPC_TRANSPARENT_STYLE ) );
#ifndef COLORINDEX_GARFILED //add COLORINDEX_GARFILED by ADS 2004.09.20
trColor = palette[0];
DisplayBMPEx( pGC, x, y, hbmp, GPC_TRANSPARENT_STYLE, trColor );
#else
DisplayBMP( pGC, x, y, hbmp );
#endif
FreeBitmap( hbmp );
}
}
// DrawLine( pGC, GPC_BLACK, p_str->pop_x, p_str->pop_y+ITEM_0+5*ITEM_1, p_str->pop_x+p_str->pop_width, p_str->pop_y+ITEM_0+5*ITEM_1, GPC_SOLID_LINE, GPC_REPLACE_STYLE );
DrawHorz( pGC, ColorTheme.form_line, p_str->pop_x + 2, p_str->pop_y + ITEM_0 + ITEMDISPLAY_MAX * ITEM_1 + 1, p_str->pop_width - 4, GPC_SOLID_LINE, GPC_REPLACE_STYLE );
(p_str->menu_down).icon_status = ICON_DISABLE;
}
else
{
// longn_qi 2001/11/15 revised
//switchonetotwo(menu_down, p_str->pop_x+(p_str->pop_width/2)-5,
// p_str->pop_y+5*ITEM_1+ITEM_0+2, 10, 10);
// DrawMonoImage( pGC, menu_down, p_str->pop_x+(p_str->pop_width/2)-5, p_str->pop_y+5*ITEM_1+ITEM_0+2, 10, 10, ColorTheme.form_text, ColorTheme.menu);//by zl 2002.3.20
// DrawMonoImage( pGC, menu_down7x7, p_str->pop_x + (p_str->pop_width - ARROW_WIDTH) / 2 + 1, p_str->pop_y + ITEMDISPLAY_MAX * ITEM_1 + ITEM_0 + ( ITEM_0 - ARROW_HEIGHT ) / 2 + 1, ARROW_WIDTH, ARROW_HEIGHT, ColorTheme.form_frontcolor, ColorTheme.menu);
{
U32 hbmp;
U32 trColor;
U16 x = p_str->pop_x + (p_str->pop_width - ARROW_WIDTH) / 2 + 1;
U16 y = p_str->pop_y + ITEMDISPLAY_MAX * ITEM_1 + ITEM_0 + ( ITEM_0 - ARROW_HEIGHT ) / 2 + 1;
U32 palette[2];
palette[0] = ColorTheme.menu;
palette[1] = ColorTheme.form_frontcolor;
hbmp = LoadBitmap( menu_down7x7, palette );
if( hbmp != 0 )
{
SetBMPPalette( hbmp, palette, NULL );
SetBkFillMode( pGC, MAKELONG( GPC_REPLACE_STYLE, GPC_TRANSPARENT_STYLE ) );
#ifndef COLORINDEX_GARFILED //add COLORINDEX_GARFILED by ADS 2004.09.20
trColor = palette[0];
DisplayBMPEx( pGC, x, y, hbmp, GPC_TRANSPARENT_STYLE, trColor );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -