r3017 - in trunk/data/qcsrc/menu-div0test: . item

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Dec 12 08:38:34 EST 2007


Author: div0
Date: 2007-12-12 08:38:33 -0500 (Wed, 12 Dec 2007)
New Revision: 3017

Modified:
   trunk/data/qcsrc/menu-div0test/config.qh
   trunk/data/qcsrc/menu-div0test/item/gecko.c
   trunk/data/qcsrc/menu-div0test/mbuiltin.qh
Log:
Black, next time, use LF instead of CRLF endings, or set the property "svn:eol-style" to "native". Maybe there is a way to enforce this server-side so that it doesn't have to be done manually for each .c/.h/.qc/.qh/.txt file.

Also, merged a patch from res2k.


Modified: trunk/data/qcsrc/menu-div0test/config.qh
===================================================================
--- trunk/data/qcsrc/menu-div0test/config.qh	2007-12-10 15:05:55 UTC (rev 3016)
+++ trunk/data/qcsrc/menu-div0test/config.qh	2007-12-12 13:38:33 UTC (rev 3017)
@@ -1,4 +1,4 @@
-// build config file
-#define MENUQC // so common/*.qc can check for menu QC or game QC
-// #define MAPINFO // maybe later, when it is the default in server QC
-
+// build config file
+#define MENUQC // so common/*.qc can check for menu QC or game QC
+// #define MAPINFO // maybe later, when it is the default in server QC
+

Modified: trunk/data/qcsrc/menu-div0test/item/gecko.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/item/gecko.c	2007-12-10 15:05:55 UTC (rev 3016)
+++ trunk/data/qcsrc/menu-div0test/item/gecko.c	2007-12-12 13:38:33 UTC (rev 3017)
@@ -1,85 +1,103 @@
-// Andreas Kirsch Gecko item (to test it)
-#ifdef INTERFACE
-CLASS(Gecko) EXTENDS(Item)
-	METHOD( Gecko, configureBrowser, void( entity, string ) )
-	METHOD( Gecko, draw, void(entity))
-	METHOD( Gecko, keyDown, float(entity, float, float, float))
-	METHOD( Gecko, keyUp, float(entity, float, float, float))
-	METHOD( Gecko, mouseMove, float(entity, vector))
-	METHOD( Gecko, mousePress, float(entity, vector))
-	METHOD( Gecko, mouseDrag, float(entity, vector))
-	METHOD( Gecko, mouseRelease, float(entity, vector))
-	ATTRIB( Gecko, texturePath, string, string_null )
-ENDCLASS(Item)
-#endif
-
-#ifdef IMPLEMENTATION
-// define static members
-float _gecko_instanceNumber;
-
-void configureBrowserGecko( entity me, string URI ) {
-	me.focusable = 1;
-
-	//create a new gecko object if needed
-	if( !me.texturePath ) {
-		me.texturePath = strzone( strcat( "_dynamic/gecko/menu/",  ftos( _gecko_instanceNumber ) ) );
-		_gecko_instanceNumber+=1;
-		// TODO: add error checks
-		gecko_create( me.texturePath );
-	}
-	gecko_navigate( me.texturePath, URI );
-}
-
-void drawGecko(entity me)
-{
-	if( me.texturePath ) {
-		draw_Picture( '0 0 0', strcat( "/", me.texturePath ), '1 1 0', '1 1 1', 1.0 );
-	} else {
-		local vector fontsize;
-		fontsize_x = fontsize_y = 1.0 / 30.0;
-		fontsize_z = 0.0;
-		draw_Text( '0 0 0', "Browser not initialized!", fontsize, '1 1 1', 1.0, 0 );
-	}
-}
-
-float keyDownGecko(entity me, float scan, float ascii, float shift)
-{
-	if( scan == K_ESCAPE ) {
-		return 0;
-	}
-	return gecko_keyevent( me.texturePath, scan, GECKO_BUTTON_DOWN );
-}
-
-float keyUpGecko(entity me, float scan, float ascii, float shift)
-{
-	return gecko_keyevent( me.texturePath, scan, GECKO_BUTTON_UP );
-}
-
-float mouseMoveGecko(entity me, vector pos)
-{
-	gecko_mousemove( me.texturePath, pos_x, pos_y );
-	return 1;
-}
-
-float mousePressGecko(entity me, vector pos)
-{
-	return gecko_keyevent( me.texturePath, K_MOUSE1, GECKO_BUTTON_DOWN );
-}
-
-float mouseDragGecko(entity me, vector pos)
-{
-	gecko_mousemove( me.texturePath, pos_x, pos_y );
-	return 1;
-}
-
-float mouseReleaseGecko(entity me, vector pos)
-{
-	return gecko_keyevent( me.texturePath, K_MOUSE1, GECKO_BUTTON_UP );
-}
-
-string toStringGecko(entity me)
-{
-	return me.texturePath;
-}
-
-#endif
+// Andreas Kirsch Gecko item (to test it)
+#ifdef INTERFACE
+CLASS(Gecko) EXTENDS(Item)
+	METHOD( Gecko, configureBrowser, void( entity, string ) )
+	METHOD( Gecko, draw, void(entity))
+	METHOD( Gecko, keyDown, float(entity, float, float, float))
+	METHOD( Gecko, keyUp, float(entity, float, float, float))
+	METHOD( Gecko, mouseMove, float(entity, vector))
+	METHOD( Gecko, mousePress, float(entity, vector))
+	METHOD( Gecko, mouseDrag, float(entity, vector))
+	METHOD( Gecko, mouseRelease, float(entity, vector))
+	METHOD( Gecko, resizeNotify, void(entity, vector, vector, vector, vector))
+	ATTRIB( Gecko, texturePath, string, string_null )
+	ATTRIB( Gecko, textureExtent, vector, '0 0 0')
+ENDCLASS(Item)
+#endif
+
+#ifdef IMPLEMENTATION
+// define static members
+float _gecko_instanceNumber;
+
+void configureBrowserGecko( entity me, string URI ) {
+	me.focusable = 1;
+
+	//create a new gecko object if needed
+	if( !me.texturePath ) {
+		me.texturePath = strzone( strcat( "_dynamic/gecko/menu/",  ftos( _gecko_instanceNumber ) ) );
+		_gecko_instanceNumber+=1;
+		// TODO: add error checks
+		gecko_create( me.texturePath );
+	}
+	gecko_navigate( me.texturePath, URI );
+}
+
+void drawGecko(entity me)
+{
+	vector drawSize;
+  
+	if( me.texturePath ) {
+		/* The gecko browser is actually only drawn to a part of the
+		   texture. Correct scaling so that part fills up the whole
+		   item area. */
+		drawSize_x = 1.0 / me.textureExtent_x;
+		drawSize_y = 1.0 / me.textureExtent_y;
+		draw_Picture( '0 0 0', strcat( "/", me.texturePath ), 
+			drawSize, '1 1 1', 1.0 );
+	} else {
+		local vector fontsize;
+		fontsize_x = fontsize_y = 1.0 / 30.0;
+		fontsize_z = 0.0;
+		draw_Text( '0 0 0', "Browser not initialized!", fontsize, '1 1 1', 1.0, 0 );
+	}
+}
+
+float keyDownGecko(entity me, float scan, float ascii, float shift)
+{
+	if( scan == K_ESCAPE ) {
+		return 0;
+	}
+	return gecko_keyevent( me.texturePath, scan, GECKO_BUTTON_DOWN );
+}
+
+float keyUpGecko(entity me, float scan, float ascii, float shift)
+{
+	return gecko_keyevent( me.texturePath, scan, GECKO_BUTTON_UP );
+}
+
+float mouseMoveGecko(entity me, vector pos)
+{
+	gecko_mousemove( me.texturePath, pos_x, pos_y );
+	return 1;
+}
+
+float mousePressGecko(entity me, vector pos)
+{
+	return gecko_keyevent( me.texturePath, K_MOUSE1, GECKO_BUTTON_DOWN );
+}
+
+float mouseDragGecko(entity me, vector pos)
+{
+	gecko_mousemove( me.texturePath, pos_x, pos_y );
+	return 1;
+}
+
+float mouseReleaseGecko(entity me, vector pos)
+{
+	return gecko_keyevent( me.texturePath, K_MOUSE1, GECKO_BUTTON_UP );
+}
+
+void resizeNotifyGecko(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+{
+	me.origin = absOrigin;
+	me.size = absSize;
+	gecko_resize( me.texturePath, absSize_x, absSize_y );
+	me.textureExtent = gecko_get_texture_extent( me.texturePath );
+}
+
+string toStringGecko(entity me)
+{
+	return me.texturePath;
+}
+
+#endif

Modified: trunk/data/qcsrc/menu-div0test/mbuiltin.qh
===================================================================
--- trunk/data/qcsrc/menu-div0test/mbuiltin.qh	2007-12-10 15:05:55 UTC (rev 3016)
+++ trunk/data/qcsrc/menu-div0test/mbuiltin.qh	2007-12-12 13:38:33 UTC (rev 3017)
@@ -246,6 +246,8 @@
 void gecko_navigate( string name, string URI ) = #489;
 float gecko_keyevent( string name, float key, float eventtype ) = #490;
 void gecko_mousemove( string name, float x, float y ) = #491;
+void gecko_resize( string name, float w, float h ) = #492;
+vector gecko_get_texture_extent( string name ) = #493;
 
 #ifdef FIXEDFOPEN
 float 	fopen( string filename, float mode ) =




More information about the nexuiz-commits mailing list