Attached patch to use almost all the special keys (áâïôú....), and numbers of keypad
The limit of 1023 characters, you could augmentar, but I do not think it necessary. sample video: http://www.youtube.com/watch?v=CVUTh3nG_SE Yosepkey. 2010/12/28 Johannes Sixt <j...@kdbg.org> > On Dienstag, 28. Dezember 2010, Tarot Jean-Sébastien wrote: > > This plugin work well. I can selecting a font , changing size, scrolling > > , shadow, and speed. > > It's very usefull. > > > > But i have 2 problems : > > > > when i write accents caractères not "éàè" but the spécial charactères > > obtain > > by 2 keys or more like ôöûü the caracters don't print correctly ?? > > In your video, you copy-pasted the text with accented characters. Does it > not > work with the others? Apart from that, it is a known limitation of > Cinelerra. > > > And when i write "too" text in the box of plugin cinelerra crash. There > > are a limite!! ?? > > Yes, there is a limit. It is 1023 characters. > > -- Hannes > > _______________________________________________ > Cinelerra mailing list > Cinelerra@skolelinux.no > https://init.linpro.no/mailman/skolelinux.no/listinfo/cinelerra >
From 0b390ff1c035d23355cd26b28aaba20516d1cc96 Mon Sep 17 00:00:00 2001 From: Jose Aguilar <yosep...@gmail.com> Date: Sat, 1 Jan 2011 17:47:09 +0100 Subject: [PATCH] add_combination_keys --- guicast/bcwindowbase.C | 116 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 108 insertions(+), 8 deletions(-) diff --git a/guicast/bcwindowbase.C b/guicast/bcwindowbase.C index 5c76653..328db14 100644 --- a/guicast/bcwindowbase.C +++ b/guicast/bcwindowbase.C @@ -76,6 +76,7 @@ BC_ResizeCall::BC_ResizeCall(int w, int h) BC_Resources BC_WindowBase::resources; Window XGroupLeader = 0; +int key_esp = 0; BC_WindowBase::BC_WindowBase() { @@ -892,6 +893,98 @@ int BC_WindowBase::dispatch_event() switch(keysym) { + +// combination keys + + case XK_dead_grave: key_esp = 1; break; + case XK_dead_acute: key_esp = 2; break; + case XK_dead_circumflex: key_esp = 3; break; + case XK_dead_tilde: key_esp = 4; break; + case XK_dead_diaeresis: key_esp = 5; break; + + case XK_a: + if(key_esp == 0){key_pressed = 0x61; break;} + if(key_esp == 1){key_pressed = 0xE0; key_esp = 0; break;} + if(key_esp == 2){key_pressed = 0xE1; key_esp = 0; break;} + if(key_esp == 3){key_pressed = 0xE2; key_esp = 0; break;} + if(key_esp == 4){key_pressed = 0xE3; key_esp = 0; break;} + if(key_esp == 5){key_pressed = 0xE4; key_esp = 0; break;} + + case XK_A: + if(key_esp == 0){key_pressed = 0x41; break;} + if(key_esp == 1){key_pressed = 0xC0; key_esp = 0; break;} + if(key_esp == 2){key_pressed = 0xC1; key_esp = 0; break;} + if(key_esp == 3){key_pressed = 0xC2; key_esp = 0; break;} + if(key_esp == 4){key_pressed = 0xC3; key_esp = 0; break;} + if(key_esp == 5){key_pressed = 0xC4; key_esp = 0; break;} + + case XK_e: + if(key_esp == 0){key_pressed = 0x65; break;} + if(key_esp == 1){key_pressed = 0xE8; key_esp = 0; break;} + if(key_esp == 2){key_pressed = 0xE9; key_esp = 0; break;} + if(key_esp == 3){key_pressed = 0xEA; key_esp = 0; break;} + if(key_esp == 5){key_pressed = 0xEB; key_esp = 0; break;} + + case XK_E: + if(key_esp == 0){key_pressed = 0x45; break;} + if(key_esp == 1){key_pressed = 0xC8; key_esp = 0; break;} + if(key_esp == 2){key_pressed = 0xC9; key_esp = 0; break;} + if(key_esp == 3){key_pressed = 0xCA; key_esp = 0; break;} + if(key_esp == 5){key_pressed = 0xCB; key_esp = 0; break;} + + case XK_i: + if(key_esp == 0){key_pressed = 0x69; break;} + if(key_esp == 1){key_pressed = 0xEC; key_esp = 0; break;} + if(key_esp == 2){key_pressed = 0xED; key_esp = 0; break;} + if(key_esp == 3){key_pressed = 0xEE; key_esp = 0; break;} + if(key_esp == 5){key_pressed = 0xEF; key_esp = 0; break;} + + case XK_I: + if(key_esp == 0){key_pressed = 0x49; break;} + if(key_esp == 1){key_pressed = 0xCC; key_esp = 0; break;} + if(key_esp == 2){key_pressed = 0xCD; key_esp = 0; break;} + if(key_esp == 3){key_pressed = 0xCE; key_esp = 0; break;} + if(key_esp == 5){key_pressed = 0xCF; key_esp = 0; break;} + + case XK_o: + if(key_esp == 0){key_pressed = 0x6F; break;} + if(key_esp == 1){key_pressed = 0xF2; key_esp = 0; break;} + if(key_esp == 2){key_pressed = 0xF3; key_esp = 0; break;} + if(key_esp == 3){key_pressed = 0xF4; key_esp = 0; break;} + if(key_esp == 4){key_pressed = 0xF5; key_esp = 0; break;} + if(key_esp == 5){key_pressed = 0xF6; key_esp = 0; break;} + + case XK_O: + if(key_esp == 0){key_pressed = 0x4F; break;} + if(key_esp == 1){key_pressed = 0xD2; key_esp = 0; break;} + if(key_esp == 2){key_pressed = 0xD3; key_esp = 0; break;} + if(key_esp == 3){key_pressed = 0xD4; key_esp = 0; break;} + if(key_esp == 4){key_pressed = 0xD5; key_esp = 0; break;} + if(key_esp == 5){key_pressed = 0xD6; key_esp = 0; break;} + + case XK_u: + if(key_esp == 0){key_pressed = 0x75; break;} + if(key_esp == 1){key_pressed = 0xF9; key_esp = 0; break;} + if(key_esp == 2){key_pressed = 0xFA; key_esp = 0; break;} + if(key_esp == 3){key_pressed = 0xFB; key_esp = 0; break;} + if(key_esp == 5){key_pressed = 0xFC; key_esp = 0; break;} + + case XK_U: + if(key_esp == 0){key_pressed = 0x55; break;} + if(key_esp == 1){key_pressed = 0xD9; key_esp = 0; break;} + if(key_esp == 2){key_pressed = 0xDA; key_esp = 0; break;} + if(key_esp == 3){key_pressed = 0xDB; key_esp = 0; break;} + if(key_esp == 5){key_pressed = 0xDC; key_esp = 0; break;} + + case XK_y: + if(key_esp == 0){key_pressed = 0x79; break;} + if(key_esp == 2){key_pressed = 0xFD; key_esp = 0; break;} + if(key_esp == 5){key_pressed = 0xFF; key_esp = 0; break;} + + case XK_Y: + if(key_esp == 0){key_pressed = 0x59; break;} + if(key_esp == 2){key_pressed = 0xDD; key_esp = 0; break;} + // block out extra keys case XK_Alt_L: case XK_Alt_R: @@ -924,26 +1017,33 @@ int BC_WindowBase::dispatch_event() case XK_Delete: key_pressed = DELETE; break; case XK_Home: key_pressed = HOME; break; case XK_End: key_pressed = END; break; + case XK_Num_Lock: break; // number pad case XK_KP_Enter: key_pressed = KPENTER; break; case XK_KP_Add: key_pressed = KPPLUS; break; - case XK_KP_1: case XK_KP_End: key_pressed = KP1; break; - case XK_KP_2: case XK_KP_Down: key_pressed = KP2; break; - case XK_KP_3: case XK_KP_Page_Down: key_pressed = KP3; break; - case XK_KP_4: case XK_KP_Left: key_pressed = KP4; break; - case XK_KP_5: case XK_KP_Begin: key_pressed = KP5; break; - case XK_KP_6: case XK_KP_Right: key_pressed = KP6; break; - case XK_KP_0: case XK_KP_Insert: key_pressed = KPINS; break; - case XK_KP_Decimal: case XK_KP_Delete: key_pressed = KPDEL; break; + case XK_KP_0: key_pressed = 0x30; break; + case XK_KP_1: key_pressed = 0x31; break; + case XK_KP_2: key_pressed = 0x32; break; + case XK_KP_3: key_pressed = 0x33; break; + case XK_KP_4: key_pressed = 0x34; break; + case XK_KP_5: key_pressed = 0x35; break; + case XK_KP_6: key_pressed = 0x36; break; + case XK_KP_7: key_pressed = 0x37; break; + case XK_KP_8: key_pressed = 0x38; break; + case XK_KP_9: key_pressed = 0x39; break; + case XK_KP_Decimal: key_pressed = 0x2E; break; + case XK_KP_Multiply: key_pressed = 0x2A; break; + case XK_KP_Divide: key_pressed = 0x2F; break; + default: //key_pressed = keys_return[0]; key_pressed = keysym & 0xff; -- 1.7.0.4