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