Пример #1
0
// arguments:
// 1. RowTerm
// 2. string data
static int lua_RoteTerm_write(lua_State* L) {
    RoteTerm* rt = lua_RoteTerm_self(L, 1);
    size_t length;
    const char* data = luaL_checklstring(L, 2, &length);
    rote_vt_write(rt, data, length);
    return 0;
}
Пример #2
0
void mousez(char s, int x, int y)
{
    if (t->docellmouse)
    {
        char xy[6];
        xy[0]=27;
        xy[1]='[';
        xy[2]='M';
        xy[3]=s;
        xy[4]=33+x;
        xy[5]=33+y;
        rote_vt_write(t, xy, 6);//thx void
    }
}
Пример #3
0
    void logit(char *s)
    {
	rote_vt_write(t, s, strlen(s)+1);
	rote_vt_write(t,"\n",1);
	dirty = 1;
    }
Пример #4
0
void sdlkeys(RoteTerm *t, int key, int unicode, int mod)
{
    if (key >= SDLK_F1 && key <= SDLK_F15)
    {
		char *k;
		if(asprintf(&k ,"kf%i", key-SDLK_F1+1)!=-1)
		{
		    rote_vt_terminfo(t, k);
		    free(k);
		}
    }
    else
    if (key == SDLK_SPACE)
	rote_vt_keypress(t,32);
    else
    #define magic(x) rote_vt_terminfo(t, x )
    if (key == SDLK_BACKSPACE)
	magic( "kbs");
    else
    if (key == SDLK_ESCAPE)
	rote_vt_keypress(t,27);
    else
    if (key == SDLK_LEFT)
	magic("kcub1");
    else
    if (key == SDLK_RIGHT)
	magic( "kcuf1");
    else
    if (key == SDLK_UP)
	magic( "kcuu1");
    else
    if (key == SDLK_DOWN)
	magic( "kcud1");
    else
    if (key == SDLK_END)
	magic( "kend");
    else
    if (key == SDLK_HOME)
	magic("khome");
    else
    if (key == SDLK_DELETE)
	magic( "kdch1");
    else
    if (key == SDLK_PAGEDOWN)
	magic( "knp");
    else
    if (key == SDLK_INSERT)
	magic( "kich1");
    else
    if (key == SDLK_PAGEUP)
	magic ( "kpp" );
    else
    if (key == SDLK_RETURN)
	rote_vt_keypress(t,13);
    else
    if( unicode )
    {
    	if(mod&KMOD_ALT)
	{
	    char c[2];
	    c[0]=27;
	    c[1]=key;
	    rote_vt_write(t,c,2);
	}
	else
	{
	    rote_vt_keypress(t,unicode);
	}
    }
}
Пример #5
0
static int keypress(struct s3d_evt *event)
{
    struct s3d_key_event *keys = (struct s3d_key_event *)event->buf;
    int key=keys->keysym;
    int mod=keys->modifier;
    if (mod&S3D_KMOD_RSHIFT)
    {
        switch (key)
        {
        case S3DK_INSERT:
            clip(mod&S3D_KMOD_RCTRL);
        }
    }

    if (mod&S3D_KMOD_RCTRL)
    {
        switch (key)
        {
        case S3DK_F5:
            wdt-=0.1;
            dirty=1;
            break;
        case S3DK_F6:
            wdt+=0.1;
            dirty=1;
            break;
        case S3DK_F7:
            afterlife=!afterlife;
            break;
        case S3DK_F8:
            loadl2("l2");
            dirty=1;
            break;
        case S3DK_F12:
            dirty=1;
            showhex=!showhex;
            printf("showhex=!showhex;\n");
            break;
        case S3DK_F10:
            dirty=1;
            ok=!ok;
            printf("ok\n");
            break;
        case S3DK_END:
            resizooo(t, 0,1);
            break;
        case S3DK_HOME:
            resizooo(t, 0,-1);
            break;
        case S3DK_DELETE:
            resizooo(t, -1,0);
            break;
        case S3DK_PAGEDOWN:
            resizooo(t, 1,0);
            break;
        }
    }
    else if (mod&S3D_KMOD_RALT)
    {
        switch (key)
        {
        case S3DK_END:
            resizooo(t, 0,100);
            break;
        case S3DK_HOME:
            resizooo(t, 0,-100);
            break;
        case S3DK_DELETE:
            resizooo(t, -100,0);
            break;
        case S3DK_PAGEDOWN:
            resizooo(t, 100,0);
            break;
        }
    }
    else
    {
        if ( (key == S3DK_F1) )
            {    }
        else

            if ( (key >= S3DK_F1) && (key <= S3DK_F15) )
            {
                char *k;
                if (asprintf(&k ,"kf%i", key-S3DK_F1+1)!=-1)
                {
                    rote_vt_terminfo(t, k);
                    free(k);
                }
            }
            else if ( (key == S3DK_SPACE) )
                keyp(t,32);
            else if ( (key == S3DK_BACKSPACE) )
                rote_vt_terminfo(t, "kbs");
            else if ( (key == S3DK_ESCAPE) )
                keyp(t,27);
            else if ( (key == S3DK_LEFT) )
                rote_vt_terminfo(t, "kcub1");
            else if ( (key == S3DK_RIGHT) )
                rote_vt_terminfo(t, "kcuf1");
            else if ( (key == S3DK_UP) )
                rote_vt_terminfo(t, "kcuu1");
            else if ( (key == S3DK_DOWN) )
                rote_vt_terminfo(t, "kcud1");
            else if ( (key == S3DK_END) )
                rote_vt_terminfo(t, "kend");
            else if ( (key == S3DK_HOME) )
                rote_vt_terminfo(t, "khome");
            else if ( (key == S3DK_DELETE) )
                rote_vt_terminfo(t, "kdch1");
            else if ( (key == S3DK_PAGEDOWN) )
                rote_vt_terminfo(t, "knp");
            else if ( (key == S3DK_INSERT) )
                rote_vt_terminfo(t, "kich1");
            else if ( (key == S3DK_PAGEUP) )
                if (mod&S3D_KMOD_RSHIFT)
                    scrollup();
                else
                    rote_vt_terminfo(t, "kpp");
            else if ( (key == S3DK_RETURN) )
            {
                if (mod&(S3D_KMOD_RSHIFT|S3D_KMOD_LSHIFT))
                    keyp(t,10);
                else
                    keyp(t,13);
            }
            else if (mod&(S3D_KMOD_RALT|S3D_KMOD_LALT))
            {
                char x[2];

                x[0]=27;
                x[1]=keys->keysym;
                rote_vt_write(t, &x[0], 2);//thx twkm

            }
            else
            {
                if ( (key==S3DK_LSHIFT)||(key==S3DK_RSHIFT))
                {
                    globmousecopying=!keys->state;
                }
                else
                {
                    keyp(t, keys->unicode);
//					    	printf("%c, %i\n",  keys->keysym,  keys->unicode);
                }
            }
    }
}