1 // Andreas Kirsch Gecko item (to test it)
\r
3 CLASS(Gecko) EXTENDS(Item)
\r
4 METHOD( Gecko, configureBrowser, void( entity, string ) )
\r
5 METHOD( Gecko, draw, void(entity))
\r
6 METHOD( Gecko, keyDown, float(entity, float, float, float))
\r
7 METHOD( Gecko, keyUp, float(entity, float, float, float))
\r
8 METHOD( Gecko, mouseMove, float(entity, vector))
\r
9 METHOD( Gecko, mousePress, float(entity, vector))
\r
10 METHOD( Gecko, mouseDrag, float(entity, vector))
\r
11 METHOD( Gecko, mouseRelease, float(entity, vector))
\r
12 ATTRIB( Gecko, texturePath, string, string_null )
\r
16 #ifdef IMPLEMENTATION
\r
17 // define static members
\r
18 float _gecko_instanceNumber;
\r
20 void configureBrowserGecko( entity me, string URI ) {
\r
23 //create a new gecko object if needed
\r
24 if( !me.texturePath ) {
\r
25 me.texturePath = strzone( strcat( "/_dynamic/gecko/menu/", ftos( _gecko_instanceNumber ) ) );
\r
26 _gecko_instanceNumber+=1;
\r
27 // TODO: add error checks
\r
28 gecko_create( me.texturePath );
\r
30 gecko_navigate( me.texturePath, URI );
\r
33 void drawGecko(entity me)
\r
35 if( me.texturePath ) {
\r
36 draw_Picture( '0 0 0', me.texturePath, '1 1 0', '1 1 1', 1.0 );
\r
38 local vector fontsize;
\r
39 fontsize_x = fontsize_y = 1.0 / 30.0;
\r
41 draw_Text( '0 0 0', "Browser not initialized!", fontsize, '1 1 1', 1.0, 0 );
\r
45 float keyDownGecko(entity me, float scan, float ascii, float shift)
\r
47 if( scan == K_ESCAPE ) {
\r
50 return gecko_keyevent( me.texturePath, scan, GECKO_BUTTON_DOWN );
\r
53 float keyUpGecko(entity me, float scan, float ascii, float shift)
\r
55 return gecko_keyevent( me.texturePath, scan, GECKO_BUTTON_UP );
\r
58 float mouseMoveGecko(entity me, vector pos)
\r
60 gecko_mousemove( me.texturePath, pos_x, pos_y );
\r
64 float mousePressGecko(entity me, vector pos)
\r
66 return gecko_keyevent( me.texturePath, K_MOUSE1, GECKO_BUTTON_DOWN );
\r
69 float mouseDragGecko(entity me, vector pos)
\r
71 //gecko_mousemove( me.instanceName, pos_x, pos_y );
\r
75 float mouseReleaseGecko(entity me, vector pos)
\r
77 return gecko_keyevent( me.texturePath, K_MOUSE1, GECKO_BUTTON_UP );
\r
80 string toStringGecko(entity me)
\r
82 return me.texturePath;
\r