hscroll.c

来自「linux 下类似于TC功能的编译器,但还没有完成,希望大家共同研究」· C语言 代码 · 共 78 行

C
78
字号
#include "hscroll.h"int HScroll::InitHScroll(int Y,int X,int Height,int Width,int Color,int FontStyle,int WinType){	if(InitBaseWindow(Y,X,Height,Width,Color,0,FontStyle,WinType,"")==FALSE)		return FALSE;	//draw_box (0,0,Height,Width, COLOR_PAIR(Color)|'-',COLOR_PAIR(Color));	wborder(basewin,ACS_HLINE,ACS_HLINE,ACS_HLINE,ACS_HLINE,ACS_HLINE,ACS_HLINE,0,0);	curs_set(0);	posSymbol='#';	curPos=0;	wrefresh(basewin);	return TRUE;}int HScroll::ChangePos(int totalcol,int curcol){	int unit=(int)(totalcol/GetWidth())+1;	int newpos;	if(curcol+1==totalcol)		newpos=GetWidth()-2;	else		newpos=(int)(curcol/unit);	if (curPos==newpos)		goto out;	//mvwaddch(basewin,0,curPos,COLOR_PAIR(GetColor())|'-');	wborder(basewin,ACS_HLINE,ACS_HLINE,ACS_HLINE,ACS_HLINE,ACS_HLINE,ACS_HLINE,0,0);	mvwaddch(basewin,0,newpos,posSymbol|A_REVERSE);	curPos=newpos;	wrefresh(basewin);out:	return 1;}int HScroll::ChangePos(){	mvwaddch(basewin,0,curPos,posSymbol|A_REVERSE);	wrefresh(basewin);	return 1;}int HScroll::GetCurPos(){	return curPos;}int HScroll::ScrollDriver(int key){	int ret=0; 	switch(key)        {		case KEY_LEFT:						if(curPos>0)			{				curPos--;				ChangePos();			}			break;		case KEY_RIGHT:			if (curPos<GetWidth()-1)			{				curPos++;				ChangePos();			}			break;		case KEY_UP:			break;		case KEY_DOWN:			break;		case KEY_F(8):			break;		case KEY_ENTER:			break;	}	return ret;}

⌨️ 快捷键说明

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