📄 zbutton.c
字号:
#include <stdio.h>
#include <malloc.h>
#include <ctype.h>
#include <curses.h>
#include "zlib.h"
static int ZBvalid( ZBUTTON *bp )
{
if( bp->r < 0 || bp->c < 1 || bp->w < 0 || bp->h < 0
|| bp->r + bp->h > ZWheight() || bp->c + bp->w > ZWwidth() )
return( -1 );
return( 0 );
}
static int ZBlabel( ZBUTTON *bp )
{
int i;
for( i = 0; i < bp->h; i ++ )
ZWprintf( bp->r + i, bp->c, "%-*s", bp->w, "" );
ZWprintf( bp->r + bp->h - 1, bp->c, "%-*s", bp->w, bp->l );
}
void ZBdisplay( ZBUTTON *bp, int cnt )
{
int i, a, r, c;
a = ZWattr( ZA_BUTTON );
ZWcursor( &r, &c );
for( i = 0; i < cnt; i ++ )
{
if( !ZBvalid( bp ) )
ZBlabel(bp);
bp ++;
}
ZWattr(a);
ZWlocate( r, c );
}
void ZBclear( ZBUTTON *bp, int cnt )
{
int i, j, a, r, c;
a = ZWattr( ZA_TEXT );
ZWcursor( &r, &c );
for( i = 0; i < cnt; i ++ )
{
if( !ZBvalid( bp ) )
for( j = 0; j < bp->h; j ++ )
ZWprintf( bp->r + j, bp->c, "%-*s", bp->w, "" );
bp ++;
}
ZWattr(a);
ZWlocate( r, c );
}
void ZBpress( ZBUTTON *bp )
{
int a, r, c;
if( !ZBvalid( bp ) )
{
ZWcursor( &r, &c );
a = ZWattr( ZA_HOLD );
ZBlabel(bp);
ZWattr( a );
ZWlocate( r, c );
}
}
void ZBrelease( ZBUTTON *bp )
{
int a, r, c;
if( !ZBvalid( bp ) )
{
ZWcursor( &r, &c );
a = ZWattr( ZA_BUTTON );
ZBlabel(bp);
ZWattr( a );
ZWlocate( r, c );
}
}
void ZBhit( ZBUTTON *bp )
{
ZBpress(bp);
napms(100);
ZBrelease(bp);
}
int ZBkey( ZBUTTON *bp, int cnt, int k )
{
int i;
if( k < 256 )
k = toupper( k );
for( i = 0; i < cnt; i ++ )
{
if( !bp->k || bp->k == k )
return( i );
bp ++;
}
return( -1 );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -