189 lines
9.8 KiB
C
189 lines
9.8 KiB
C
|
#ifndef IUPWEBGTK_DLOPEN_H
|
||
|
#define IUPWEBGTK_DLOPEN_H
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif /* __cplusplus */
|
||
|
|
||
|
/* TODO: Eventually gtk itself could be dynamically discovered to handle different versions or even different non-GTK backends. */
|
||
|
#include <gtk/gtk.h>
|
||
|
#include <dlfcn.h>
|
||
|
|
||
|
typedef struct WebKitWebBackForwardList WebKitWebBackForwardList;
|
||
|
typedef struct WebKitWebHistoryItem WebKitWebHistoryItem;
|
||
|
typedef struct WebKitWebFrame WebKitWebFrame;
|
||
|
typedef struct WebKitWebView WebKitWebView;
|
||
|
typedef struct WebKitNetworkRequest WebKitNetworkRequest;
|
||
|
typedef struct WebKitWebNavigationAction WebKitWebNavigationAction;
|
||
|
typedef struct WebKitWebPolicyDecision WebKitWebPolicyDecision;
|
||
|
|
||
|
typedef enum {
|
||
|
WEBKIT_LOAD_PROVISIONAL,
|
||
|
WEBKIT_LOAD_COMMITTED,
|
||
|
WEBKIT_LOAD_FINISHED,
|
||
|
WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT,
|
||
|
WEBKIT_LOAD_FAILED
|
||
|
} WebKitLoadStatus;
|
||
|
|
||
|
|
||
|
typedef WebKitWebBackForwardList* (*webkit_web_view_get_back_forward_list_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_get_back_forward_list_PROC webkit_web_view_get_back_forward_list;
|
||
|
|
||
|
typedef WebKitWebHistoryItem* (*webkit_web_back_forward_list_get_nth_item_PROC)(WebKitWebBackForwardList *web_back_forward_list, gint index);
|
||
|
static webkit_web_back_forward_list_get_nth_item_PROC webkit_web_back_forward_list_get_nth_item;
|
||
|
|
||
|
typedef const gchar* (*webkit_web_history_item_get_uri_PROC)(WebKitWebHistoryItem *web_history_item);
|
||
|
static webkit_web_history_item_get_uri_PROC webkit_web_history_item_get_uri;
|
||
|
|
||
|
typedef gint (*webkit_web_back_forward_list_get_forward_length_PROC)(WebKitWebBackForwardList *web_back_forward_list);
|
||
|
static webkit_web_back_forward_list_get_forward_length_PROC webkit_web_back_forward_list_get_forward_length;
|
||
|
|
||
|
typedef gint (*webkit_web_back_forward_list_get_back_length_PROC)(WebKitWebBackForwardList *web_back_forward_list);
|
||
|
static webkit_web_back_forward_list_get_back_length_PROC webkit_web_back_forward_list_get_back_length;
|
||
|
|
||
|
typedef void (*webkit_web_view_load_string_PROC)(WebKitWebView *web_view,
|
||
|
const gchar *content,
|
||
|
const gchar *mime_type,
|
||
|
const gchar *encoding,
|
||
|
const gchar *base_uri);
|
||
|
static webkit_web_view_load_string_PROC webkit_web_view_load_string;
|
||
|
|
||
|
typedef void (*webkit_web_view_copy_clipboard_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_copy_clipboard_PROC webkit_web_view_copy_clipboard;
|
||
|
|
||
|
typedef void (*webkit_web_view_select_all_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_select_all_PROC webkit_web_view_select_all;
|
||
|
|
||
|
typedef WebKitWebFrame* (*webkit_web_view_get_main_frame_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_get_main_frame_PROC webkit_web_view_get_main_frame;
|
||
|
|
||
|
typedef void (*webkit_web_frame_print_PROC)(WebKitWebFrame *frame);
|
||
|
static webkit_web_frame_print_PROC webkit_web_frame_print;
|
||
|
|
||
|
typedef void (*webkit_web_view_set_zoom_level_PROC)(WebKitWebView *web_view,
|
||
|
gfloat zoom_level);
|
||
|
static webkit_web_view_set_zoom_level_PROC webkit_web_view_set_zoom_level;
|
||
|
|
||
|
typedef gfloat (*webkit_web_view_get_zoom_level_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_get_zoom_level_PROC webkit_web_view_get_zoom_level;
|
||
|
|
||
|
typedef WebKitLoadStatus (*webkit_web_view_get_load_status_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_get_load_status_PROC webkit_web_view_get_load_status;
|
||
|
|
||
|
typedef void (*webkit_web_view_reload_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_reload_PROC webkit_web_view_reload;
|
||
|
|
||
|
typedef void (*webkit_web_view_stop_loading_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_stop_loading_PROC webkit_web_view_stop_loading;
|
||
|
|
||
|
typedef void (*webkit_web_view_go_back_or_forward_PROC)(WebKitWebView *web_view,
|
||
|
gint steps);
|
||
|
static webkit_web_view_go_back_or_forward_PROC webkit_web_view_go_back_or_forward;
|
||
|
|
||
|
|
||
|
typedef void (*webkit_web_view_load_uri_PROC)(WebKitWebView *web_view,
|
||
|
const gchar *uri);
|
||
|
static webkit_web_view_load_uri_PROC webkit_web_view_load_uri;
|
||
|
|
||
|
|
||
|
typedef const gchar* (*webkit_web_frame_get_uri_PROC)(WebKitWebFrame *frame);
|
||
|
static webkit_web_frame_get_uri_PROC webkit_web_frame_get_uri;
|
||
|
|
||
|
typedef const gchar* (*webkit_web_view_get_uri_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_get_uri_PROC webkit_web_view_get_uri;
|
||
|
|
||
|
|
||
|
typedef const gchar* (*webkit_network_request_get_uri_PROC)(WebKitNetworkRequest *request);
|
||
|
static webkit_network_request_get_uri_PROC webkit_network_request_get_uri;
|
||
|
|
||
|
typedef GtkWidget* (*webkit_web_view_new_PROC)(void);
|
||
|
static webkit_web_view_new_PROC webkit_web_view_new;
|
||
|
|
||
|
|
||
|
typedef gboolean (*webkit_web_view_can_go_back_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_can_go_back_PROC webkit_web_view_can_go_back;
|
||
|
|
||
|
typedef gboolean (*webkit_web_view_can_go_forward_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_can_go_forward_PROC webkit_web_view_can_go_forward;
|
||
|
|
||
|
typedef void (*webkit_web_view_go_back_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_go_back_PROC webkit_web_view_go_back;
|
||
|
|
||
|
typedef void (*webkit_web_view_go_forward_PROC)(WebKitWebView *web_view);
|
||
|
static webkit_web_view_go_forward_PROC webkit_web_view_go_forward;
|
||
|
|
||
|
static void iupgtkWebBrowser_ClearDLSymbols()
|
||
|
{
|
||
|
webkit_web_view_get_back_forward_list = NULL;
|
||
|
webkit_web_back_forward_list_get_nth_item = NULL;
|
||
|
webkit_web_history_item_get_uri = NULL;
|
||
|
webkit_web_back_forward_list_get_forward_length = NULL;
|
||
|
webkit_web_back_forward_list_get_back_length = NULL;
|
||
|
webkit_web_view_load_string = NULL;
|
||
|
webkit_web_view_copy_clipboard = NULL;
|
||
|
webkit_web_view_select_all = NULL;
|
||
|
webkit_web_view_get_main_frame = NULL;
|
||
|
webkit_web_frame_print = NULL;
|
||
|
webkit_web_view_set_zoom_level = NULL;
|
||
|
webkit_web_view_get_zoom_level = NULL;
|
||
|
webkit_web_view_get_load_status = NULL;
|
||
|
webkit_web_view_reload = NULL;
|
||
|
webkit_web_view_stop_loading = NULL;
|
||
|
webkit_web_view_go_back_or_forward = NULL;
|
||
|
webkit_web_view_load_uri = NULL;
|
||
|
webkit_web_frame_get_uri = NULL;
|
||
|
webkit_web_view_get_uri = NULL;
|
||
|
webkit_network_request_get_uri = NULL;
|
||
|
webkit_web_view_new = NULL;
|
||
|
webkit_web_view_can_go_back = NULL;
|
||
|
webkit_web_view_can_go_forward = NULL;
|
||
|
webkit_web_view_go_back = NULL;
|
||
|
webkit_web_view_go_forward = NULL;
|
||
|
}
|
||
|
|
||
|
static void iupgtkWebBrowser_SetDLSymbols(void* webkit_library)
|
||
|
{
|
||
|
if(NULL != webkit_library)
|
||
|
{
|
||
|
webkit_web_view_get_back_forward_list = (webkit_web_view_get_back_forward_list_PROC)dlsym(webkit_library, "webkit_web_view_get_back_forward_list");
|
||
|
webkit_web_back_forward_list_get_nth_item = (webkit_web_back_forward_list_get_nth_item_PROC)dlsym(webkit_library, "webkit_web_back_forward_list_get_nth_item");
|
||
|
webkit_web_history_item_get_uri = (webkit_web_history_item_get_uri_PROC)dlsym(webkit_library, "webkit_web_history_item_get_uri");
|
||
|
webkit_web_back_forward_list_get_forward_length = (webkit_web_back_forward_list_get_forward_length_PROC)dlsym(webkit_library, "webkit_web_back_forward_list_get_forward_length");
|
||
|
webkit_web_back_forward_list_get_back_length = (webkit_web_back_forward_list_get_back_length_PROC)dlsym(webkit_library, "webkit_web_back_forward_list_get_back_length");
|
||
|
webkit_web_view_load_string = (webkit_web_view_load_string_PROC)dlsym(webkit_library, "webkit_web_view_load_string");
|
||
|
webkit_web_view_copy_clipboard = (webkit_web_view_copy_clipboard_PROC)dlsym(webkit_library, "webkit_web_view_copy_clipboard");
|
||
|
webkit_web_view_select_all = (webkit_web_view_select_all_PROC)dlsym(webkit_library, "webkit_web_view_select_all");
|
||
|
webkit_web_view_get_main_frame = (webkit_web_view_get_main_frame_PROC)dlsym(webkit_library, "webkit_web_view_get_main_frame");
|
||
|
webkit_web_frame_print = (webkit_web_frame_print_PROC)dlsym(webkit_library, "webkit_web_frame_print");
|
||
|
webkit_web_view_set_zoom_level = (webkit_web_view_set_zoom_level_PROC)dlsym(webkit_library, "webkit_web_view_set_zoom_level");
|
||
|
webkit_web_view_get_zoom_level = (webkit_web_view_get_zoom_level_PROC)dlsym(webkit_library, "webkit_web_view_get_zoom_level");
|
||
|
webkit_web_view_get_load_status = (webkit_web_view_get_load_status_PROC)dlsym(webkit_library, "webkit_web_view_get_load_status");
|
||
|
webkit_web_view_reload = (webkit_web_view_reload_PROC)dlsym(webkit_library, "webkit_web_view_reload");
|
||
|
webkit_web_view_stop_loading = (webkit_web_view_stop_loading_PROC)dlsym(webkit_library, "webkit_web_view_stop_loading");
|
||
|
webkit_web_view_go_back_or_forward = (webkit_web_view_go_back_or_forward_PROC)dlsym(webkit_library, "webkit_web_view_go_back_or_forward");
|
||
|
webkit_web_view_load_uri = (webkit_web_view_load_uri_PROC)dlsym(webkit_library, "webkit_web_view_load_uri");
|
||
|
webkit_web_frame_get_uri = (webkit_web_frame_get_uri_PROC)dlsym(webkit_library, "webkit_web_frame_get_uri");
|
||
|
webkit_web_view_get_uri = (webkit_web_view_get_uri_PROC)dlsym(webkit_library, "webkit_web_view_get_uri");
|
||
|
webkit_network_request_get_uri = (webkit_network_request_get_uri_PROC)dlsym(webkit_library, "webkit_network_request_get_uri");
|
||
|
webkit_web_view_new = (webkit_web_view_new_PROC)dlsym(webkit_library, "webkit_web_view_new");
|
||
|
webkit_web_view_can_go_back = (webkit_web_view_can_go_back_PROC)dlsym(webkit_library, "webkit_web_view_can_go_back");
|
||
|
webkit_web_view_can_go_forward = (webkit_web_view_can_go_forward_PROC)dlsym(webkit_library, "webkit_web_view_can_go_forward");
|
||
|
webkit_web_view_go_back = (webkit_web_view_go_back_PROC)dlsym(webkit_library, "webkit_web_view_go_back");
|
||
|
webkit_web_view_go_forward = (webkit_web_view_go_forward_PROC)dlsym(webkit_library, "webkit_web_view_go_forward");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif /* __cplusplus */
|
||
|
|
||
|
|
||
|
#endif /* IUPWEBGTK_DLOPEN_H */
|
||
|
|
||
|
|
||
|
|
||
|
|