]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_gecko.c
Update OffscreenGecko headers again
[xonotic/darkplaces.git] / cl_gecko.c
index cf17d5a5bd97e339ea72a1375b6725a5e6518103..d685c22415f2027c6608faa9c2c75a18b59e2ab2 100644 (file)
@@ -1,4 +1,6 @@
 /* --- 8< --- 8< ---   OffscreenGecko headers   --- >8 --- >8 --- */
+/* NOTE: Documentation comments have been omitted. Documentation is
+   available in the OffscreenGecko SDK download. */
 
 /* OffscreenGecko/defs.h */
 
@@ -229,6 +231,141 @@ typedef enum OSGK_AntiAliasType
 static void (*osgk_browser_resize) (OSGK_Browser* browser,
   int width, int height);
 
+/*static int (*osgk_browser_set_user_data) (OSGK_Browser* browser,
+  unsigned int key, void* data, int overrideData);*/
+/*static int (*osgk_browser_get_user_data) (OSGK_Browser* browser,
+  unsigned int key, void** data);*/
+
+/* OffscreenGecko/string.h */
+OSGK_DERIVEDTYPE(OSGK_String);
+
+/*static const char* (*osgk_string_get) (OSGK_String* str);*/
+
+/*static OSGK_String* (*osgk_string_create) (const char* str);*/
+
+/* OffscreenGecko/scriptvariant.h */
+
+OSGK_CLASSTYPE_DEF nsISupports;
+
+OSGK_DERIVEDTYPE(OSGK_ScriptVariant);
+
+typedef enum OSGK_ScriptVariantType
+{
+  svtEmpty,
+  svtInt,
+  svtUint,
+  svtFloat,
+  svtDouble,
+  svtBool,
+  svtChar,
+  svtString,
+  svtISupports,
+  svtScriptObject,
+  svtArray
+} OSGK_ScriptVariantType;
+
+/*static OSGK_ScriptVariantType (*osgk_variant_get_type) (
+  OSGK_ScriptVariant* variant);*/
+/*static OSGK_ScriptVariant* (*osgk_variant_convert) (
+  OSGK_ScriptVariant* variant, OSGK_ScriptVariantType newType);*/
+
+/*static int (*osgk_variant_get_int) (OSGK_ScriptVariant* variant,
+  int* val);*/
+/*static int (*osgk_variant_get_uint) (OSGK_ScriptVariant* variant,
+  unsigned int* val);*/
+/*static int (*osgk_variant_get_float) (OSGK_ScriptVariant* variant,
+  float* val);*/
+/*static int (*osgk_variant_get_double) (OSGK_ScriptVariant* variant,
+  double* val);*/
+/*static int (*osgk_variant_get_bool) (OSGK_ScriptVariant* variant,
+  int* val);*/
+/*static int (*osgk_variant_get_char) (OSGK_ScriptVariant* variant,
+  unsigned int* val);*/
+/*// Does not increase ref count
+static int (*osgk_variant_get_string) (OSGK_ScriptVariant* variant,
+  OSGK_String** val);*/
+/*// Does not increase ref count
+static int (*osgk_variant_get_isupports) (OSGK_ScriptVariant* variant,
+  OSGK_CLASSTYPE_REF nsISupports** val);*/
+/*static int (*osgk_variant_get_script_object) (OSGK_ScriptVariant* variant,
+  void** tag);*/
+/*static int (*osgk_variant_get_array_size) (OSGK_ScriptVariant* variant,
+  size_t* size);*/
+/*static int (*osgk_variant_get_array_item) (OSGK_ScriptVariant* variant,
+  OSGK_ScriptVariant** val);*/
+
+/*static OSGK_ScriptVariant* (*osgk_variant_create_empty) (
+  OSGK_Embedding* embedding);*/
+/*static OSGK_ScriptVariant* (*osgk_variant_create_int) (
+  OSGK_Embedding* embedding, int val);*/
+/*static OSGK_ScriptVariant* (*osgk_variant_create_uint) (
+  OSGK_Embedding* embedding, unsigned int val);
+/*static OSGK_ScriptVariant* (*osgk_variant_create_float) (
+  OSGK_Embedding* embedding, float val);
+/*static OSGK_ScriptVariant* (*osgk_variant_create_double) (
+  OSGK_Embedding* embedding, double val);*/
+/*OSGK_ScriptVariant* (*osgk_variant_create_bool) (
+  OSGK_Embedding* embedding, int val);*/
+/*static OSGK_ScriptVariant* (*osgk_variant_create_char) (
+  OSGK_Embedding* embedding, unsigned int val);*/
+/*static OSGK_ScriptVariant* (*osgk_variant_create_string) (
+  OSGK_Embedding* embedding, OSGK_String* val);*/
+/*static OSGK_ScriptVariant* (*osgk_variant_create_isupports) (
+  OSGK_Embedding* embedding, OSGK_CLASSTYPE_REF nsISupports* val);*/
+/*static OSGK_ScriptVariant* (*osgk_variant_create_script_object) (
+  OSGK_Embedding* embedding, void* tag);*/
+/*static OSGK_ScriptVariant* (*osgk_variant_create_array) (
+  OSGK_Embedding* embedding, size_t numItems, OSGK_ScriptVariant** items);*/
+
+/* OffscreenGecko/scriptobjecttemplate.h */
+
+OSGK_DERIVEDTYPE(OSGK_ScriptObjectTemplate);
+
+typedef enum OSGK_ScriptResult
+{
+  srSuccess = 0,
+  srFailed = 0x80004005L /* actually NS_ERROR_FAILURE */
+} OSGK_ScriptResult;
+
+typedef struct OSGK_ScriptObjectCreateParams_s
+{
+  void* createParam;
+  OSGK_Browser* browser;
+} OSGK_ScriptObjectCreateParams;
+
+typedef OSGK_ScriptResult (*OSGK_CreateObjFunc) (
+  OSGK_ScriptObjectCreateParams* params, void** objTag);
+typedef void (*OSGK_DestroyObjFunc) (void* objTag);
+
+/*static OSGK_ScriptObjectTemplate* (*osgk_sot_create) (
+  OSGK_Embedding* embedding,
+  OSGK_CreateObjFunc createFunc, OSGK_DestroyObjFunc destroyFunc,
+  void* createParam);*/
+
+typedef OSGK_ScriptVariant* (*OSGK_GetPropertyFunc) (void* objTag,
+  void* propTag);
+typedef OSGK_ScriptResult (*OSGK_SetPropertyFunc) (void* objTag,
+  void* propTag, OSGK_ScriptVariant* val);
+  
+/*static int (*osgk_sot_add_property) (
+  OSGK_ScriptObjectTemplate* templ, const char* propName, void* propTag,
+  OSGK_GetPropertyFunc getter, OSGK_SetPropertyFunc setter);*/
+
+typedef OSGK_ScriptResult (*OSGK_FunctionCallFunc) (void* objTag,
+  void* methTag, size_t numParams, OSGK_ScriptVariant** params,
+  OSGK_ScriptVariant** returnVal);
+
+/*static int (*osgk_sot_add_function) (
+  OSGK_ScriptObjectTemplate* templ, const char* funcName, void* funcTag,
+  OSGK_FunctionCallFunc callFunc);*/
+
+/*static OSGK_ScriptVariant* (*osgk_sot_instantiate) (
+  OSGK_ScriptObjectTemplate* templ, void** objTag);    */
+
+/*static int (*osgk_sot_register) (
+  OSGK_ScriptObjectTemplate* templ, OSGK_Embedding* embedding, 
+  const char* name, unsigned int flags);*/
+
 /* --- >8 --- >8 --- End OffscreenGecko headers --- 8< --- 8< --- */
 
 #include "quakedef.h"
@@ -364,8 +501,8 @@ void CL_Gecko_GetTextureExtent( clgecko_t *instance, float* pwidth, float* pheig
 # define XULRUNNER_DIR_SUFFIX  "win64"
 #elif defined(WIN32)
 # define XULRUNNER_DIR_SUFFIX  "win32"
-#elif defined(DP_ARCH) && defined(DP_MACHINE)
-# define XULRUNNER_DIR_SUFFIX  DP_ARCH "-" DP_MACHINE
+#elif defined(DP_OS_STR) && defined(DP_ARCH_STR)
+# define XULRUNNER_DIR_SUFFIX  DP_OS_STR "-" DP_ARCH_STR
 #endif
 
 clgecko_t * CL_Gecko_CreateBrowser( const char *name ) {
@@ -639,7 +776,7 @@ void CL_Gecko_Init( void )
        #elif defined(MACOSX)
                "OffscreenGecko.dylib",
        #else
-               "OffscreenGecko.so",
+               "libOffscreenGecko.so",
        #endif
                NULL
        };
@@ -733,7 +870,7 @@ qboolean CL_Gecko_Event_Key( clgecko_t *instance, keynum_t key, clgecko_buttonev
        // determine whether its a keyboard event
        if( key < K_OTHERDEVICESBEGIN ) {
 
-               OSGK_KeyboardEventType mappedtype;
+               OSGK_KeyboardEventType mappedtype = kePress;
                unsigned int mappedkey = key;
                
                unsigned int i;
@@ -764,7 +901,7 @@ qboolean CL_Gecko_Event_Key( clgecko_t *instance, keynum_t key, clgecko_buttonev
 
                return osgk_browser_event_key( instance->browser, mappedkey, mappedtype ) != 0;
        } else if( K_MOUSE1 <= key && key <= K_MOUSE3 ) {
-               OSGK_MouseButtonEventType mappedtype;
+               OSGK_MouseButtonEventType mappedtype = meDoubleClick;
                OSGK_MouseButton mappedbutton;
 
                mappedbutton = (OSGK_MouseButton) (mbLeft + (key - K_MOUSE1));