# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1320575997 0 # Node ID 6bebcfa03b2b84310a5d80a2d2e0de691269ab6e # Parent 03f0bc85e7bec385334fddea5a03fda0fb7af1d6 Added support for dw_font_set_default() on GTK for appropriate widgets. Removed GtkMozEmbed, GtkHtml2 and old versions of webkit from GTK3. GTK3 only support webkit 3.0 and higher. diff -r 03f0bc85e7be -r 6bebcfa03b2b gtk/dw.c --- a/gtk/dw.c Sat Nov 05 21:32:35 2011 +0000 +++ b/gtk/dw.c Sun Nov 06 10:39:57 2011 +0000 @@ -134,6 +134,8 @@ GdkPixmap *_dw_tmppixmap = NULL; GdkBitmap *_dw_tmpbitmap = NULL; +char *_DWDefaultFont = NULL; + #if GTK_MAJOR_VERSION < 2 static int _dw_file_active = 0; #endif @@ -2905,6 +2907,12 @@ */ void API dw_font_set_default(char *fontname) { + char *oldfont = _DWDefaultFont; + + _DWDefaultFont = strdup(fontname); + + if(oldfont) + free(oldfont); } /* Convert DW style font to pango style */ @@ -2957,6 +2965,12 @@ if(tmp) handle2 = tmp; } + else if(GTK_IS_COMBO_BOX(handle) || GTK_IS_BUTTON(handle)) + { + GtkWidget *tmp = gtk_bin_get_child(GTK_BIN(handle)); + if(tmp) + handle2 = tmp; + } #if GTK_MAJOR_VERSION < 2 /* Free old font if it exists */ @@ -3525,6 +3539,8 @@ gtk_container_add(GTK_CONTAINER(frame), tmp); gtk_widget_show(tmp); gtk_widget_show(frame); + if(_DWDefaultFont) + dw_window_set_font(frame, _DWDefaultFont); DW_MUTEX_UNLOCK; return frame; @@ -4061,6 +4077,8 @@ gtk_object_set_user_data(GTK_OBJECT(tmp), (gpointer)tree); gtk_widget_show(tree); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -4085,6 +4103,8 @@ gtk_widget_show(tmp); gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); gtk_misc_set_alignment(GTK_MISC(tmp), DW_LEFT, DW_LEFT); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -4112,6 +4132,8 @@ gtk_misc_set_alignment(GTK_MISC(tmp), 0.0f, 0.5f); gtk_object_set_data(GTK_OBJECT(frame), "_dw_id", GINT_TO_POINTER(id)); gtk_object_set_data(GTK_OBJECT(frame), "_dw_label", (gpointer)tmp); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return frame; } @@ -4153,6 +4175,8 @@ gtk_object_set_user_data(GTK_OBJECT(tmpbox), (gpointer)tmp); gtk_widget_show(tmp); gtk_widget_show(tmpbox); + if(_DWDefaultFont) + dw_window_set_font(tmpbox, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmpbox; } @@ -4176,6 +4200,8 @@ gtk_widget_show(tmp); gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -4200,6 +4226,8 @@ gtk_widget_show(tmp); gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -4227,6 +4255,8 @@ sigid = _set_signal_handler(GTK_COMBO(tmp)->list, tmp, NULL, NULL, NULL); cid = gtk_signal_connect(GTK_OBJECT(GTK_COMBO(tmp)->list), "select_child", GTK_SIGNAL_FUNC(_item_select_event), GINT_TO_POINTER(sigid)); _set_signal_handler_id(GTK_COMBO(tmp)->list, sigid, cid); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -4246,6 +4276,8 @@ tmp = gtk_button_new_with_label(text); gtk_widget_show(tmp); gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -4424,6 +4456,8 @@ gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); gtk_widget_show(tmp); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -4518,6 +4552,8 @@ tmp = gtk_check_button_new_with_label(text); gtk_widget_show(tmp); gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -4548,6 +4584,8 @@ gtk_widget_show(tmp); gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -6582,6 +6620,8 @@ gtk_clist_set_column_justification(GTK_CLIST(clist),z,justification); } + if(_DWDefaultFont) + dw_window_set_font(handle, _DWDefaultFont); DW_MUTEX_UNLOCK; return DW_ERROR_NONE; } @@ -7694,6 +7734,8 @@ gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); GTK_WIDGET_SET_FLAGS(tmp, GTK_CAN_FOCUS); gtk_widget_show(tmp); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } diff -r 03f0bc85e7be -r 6bebcfa03b2b gtk3/dw.c --- a/gtk3/dw.c Sat Nov 05 21:32:35 2011 +0000 +++ b/gtk3/dw.c Sun Nov 06 10:39:57 2011 +0000 @@ -31,22 +31,8 @@ #include #include -#ifdef USE_GTKMOZEMBED -# include -# undef GTK_TYPE_MOZ_EMBED -# define GTK_TYPE_MOZ_EMBED (_dw_moz_embed_get_type()) -#endif - -#ifdef USE_LIBGTKHTML2 -# include -#endif - #ifdef USE_WEBKIT -# if defined(USE_WEBKIT10) || defined(USE_WEBKIT11) -# include -# else -# include -# endif +#include #endif #include @@ -64,11 +50,6 @@ #include "gtk/messagebox_information.xpm" #include "gtk/messagebox_question.xpm" -#ifdef USE_GTKMOZEMBED -extern gint mozilla_get_mouse_event_button(gpointer event); -extern gint mozilla_get_mouse_location( gpointer event, glong *x, glong *y); -#endif - /* These are used for resource management */ #if defined(DW_RESOURCES) && !defined(BUILD_DLL) extern DWResources _resources; @@ -162,29 +143,6 @@ static gint _switch_page_event(GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer data); static gint _column_click_event(GtkWidget *widget, gpointer data); -/* Embedable Mozilla functions*/ -#ifdef USE_GTKMOZEMBED -void (*_gtk_moz_embed_go_back)(GtkMozEmbed *) = NULL; -void (*_gtk_moz_embed_go_forward)(GtkMozEmbed *) = NULL; -void (*_gtk_moz_embed_load_url)(GtkMozEmbed *, const char *) = NULL; -void (*_gtk_moz_embed_reload)(GtkMozEmbed *, guint32) = NULL; -void (*_gtk_moz_embed_stop_load)(GtkMozEmbed *) = NULL; -void (*_gtk_moz_embed_render_data)(GtkMozEmbed *, const char *, guint32, const char *, const char *) = NULL; -GtkWidget *(*_gtk_moz_embed_new)(void) = NULL; -GtkType (*_dw_moz_embed_get_type)(void) = NULL; -gboolean (*_gtk_moz_embed_can_go_back)(GtkMozEmbed *) = NULL; -gboolean (*_gtk_moz_embed_can_go_forward)(GtkMozEmbed *) = NULL; -void (*_gtk_moz_embed_set_comp_path)(const char *) = NULL; -void (*_gtk_moz_embed_set_profile_path)(const char *, const char *) = NULL; -void (*_gtk_moz_embed_push_startup)(void) = NULL; -#endif - -#ifdef USE_LIBGTKHTML2 -GtkHtmlContext *(*_gtk_html_context_get)(void) = NULL; -HtmlDocument *(*_html_document_new)(void) = NULL; -GtkWidget *(*_html_view_new)(void) = NULL; -#endif - #ifdef USE_WEBKIT /* * we need to add these equivalents from webkitwebview.h so we can refer to @@ -200,15 +158,12 @@ WEBKIT_API void (*_webkit_web_view_go_forward)(WebKitWebView *) = NULL; WEBKIT_API void (*_webkit_web_view_reload)(WebKitWebView *) = NULL; WEBKIT_API void (*_webkit_web_view_stop_loading)(WebKitWebView *) = NULL; -# ifdef WEBKIT_CHECK_VERSION -# if WEBKIT_CHECK_VERSION(1,1,5) WEBKIT_API void (*_webkit_web_frame_print)(WebKitWebFrame *) = NULL; WEBKIT_API WebKitWebFrame *(*_webkit_web_view_get_focused_frame)(WebKitWebView *) = NULL; -# endif -# endif #endif GObject *_DWObject = NULL; +char *_DWDefaultFont = NULL; typedef struct { @@ -1797,67 +1752,6 @@ pthread_setspecific(_dw_bg_color_key, NULL); } -/* Try to load the mozilla embed shared libary */ -#ifdef USE_GTKMOZEMBED -#include - -void init_mozembed(void) -{ - void *handle = NULL; - gchar *profile; - handle = dlopen( "libgtkembedmoz.so", RTLD_LAZY ); - - /* If we loaded it, grab the symbols we want */ - if ( handle ) - { - _gtk_moz_embed_go_back = dlsym(handle, "gtk_moz_embed_go_back"); - _gtk_moz_embed_go_forward = dlsym(handle, "gtk_moz_embed_go_forward"); - _gtk_moz_embed_load_url = dlsym(handle, "gtk_moz_embed_load_url"); - _gtk_moz_embed_reload = dlsym(handle, "gtk_moz_embed_reload"); - _gtk_moz_embed_stop_load = dlsym(handle, "gtk_moz_embed_stop_load"); - _gtk_moz_embed_render_data = dlsym(handle, "gtk_moz_embed_render_data"); - _dw_moz_embed_get_type = dlsym(handle, "gtk_moz_embed_get_type"); - _gtk_moz_embed_new = dlsym(handle, "gtk_moz_embed_new"); - _gtk_moz_embed_can_go_back = dlsym(handle, "gtk_moz_embed_can_go_back"); - _gtk_moz_embed_can_go_forward = dlsym(handle, "gtk_moz_embed_can_go_forward"); - _gtk_moz_embed_set_comp_path = dlsym(handle, "gtk_moz_embed_set_comp_path"); - _gtk_moz_embed_set_profile_path = dlsym(handle, "gtk_moz_embed_set_profile_path"); - _gtk_moz_embed_push_startup = dlsym(handle, "gtk_moz_embed_push_startup"); - _gtk_moz_embed_set_comp_path( "/usr/lib/mozilla"); - _gtk_moz_embed_set_comp_path( "/usr/lib/firefox"); - profile = g_build_filename(g_get_home_dir(), ".dwindows/mozilla", NULL); - - /* initialize profile */ - _gtk_moz_embed_set_profile_path(profile, "dwindows"); - g_free(profile); - - /* startup done */ - _gtk_moz_embed_push_startup(); - } -} -#endif - -/* Try to load the libgtkhtml2 shared libary */ -#ifdef USE_LIBGTKHTML2 -#include - -void init_libgtkhtml2 (void) -{ - void *handle = NULL; - handle = dlopen( "libgtkhtml-2.so", RTLD_LAZY ); - - /* If we loaded it, grab the symbols we want */ - if ( handle ) - { - _html_document_new = dlsym(handle, "html_document_new"); - _html_view_new = dlsym(handle, "html_view_new"); - //... - _gtk_html_context_get = dlsym(handle, "gtk_html_context_get" ); - g_object_set( G_OBJECT(_gtk_html_context_get()), "debug_painting", FALSE, NULL ); - } -} -#endif - /* Try to load the WebKitGtk shared libary */ #ifdef USE_WEBKIT void init_webkit(void) @@ -1879,12 +1773,8 @@ _webkit_web_view_go_forward = dlsym( handle, "webkit_web_view_go_forward" ); _webkit_web_view_reload = dlsym( handle, "webkit_web_view_reload" ); _webkit_web_view_stop_loading = dlsym( handle, "webkit_web_view_stop_loading" ); -# ifdef WEBKIT_CHECK_VERSION -# if WEBKIT_CHECK_VERSION(1,1,5) _webkit_web_frame_print = dlsym( handle, "webkit_web_frame_print" ); _webkit_web_view_get_focused_frame = dlsym( handle, "webkit_web_view_get_focused_frame" ); -# endif -# endif } } #endif @@ -1928,14 +1818,6 @@ gtk_rc_parse_string("style \"gtk-tooltips-style\" { bg[NORMAL] = \"#eeee00\" } widget \"gtk-tooltips\" style \"gtk-tooltips-style\""); -#ifdef USE_GTKMOZEMBED - init_mozembed(); -#endif - -#ifdef USE_LIBGTKHTML2 - init_libgtkhtml2(); -#endif - #ifdef USE_WEBKIT init_webkit(); #endif @@ -2490,6 +2372,12 @@ */ void API dw_font_set_default(char *fontname) { + char *oldfont = _DWDefaultFont; + + _DWDefaultFont = strdup(fontname); + + if(oldfont) + free(oldfont); } /* Convert DW style font to pango style */ @@ -2538,6 +2426,12 @@ if(tmp) handle2 = tmp; } + else if(GTK_IS_COMBO_BOX(handle) || GTK_IS_BUTTON(handle)) + { + GtkWidget *tmp = gtk_bin_get_child(GTK_BIN(handle)); + if(tmp) + handle2 = tmp; + } _convert_font(font); @@ -3136,6 +3030,8 @@ gtk_container_add(GTK_CONTAINER(frame), tmp); gtk_widget_show(tmp); gtk_widget_show(frame); + if(_DWDefaultFont) + dw_window_set_font(frame, _DWDefaultFont); DW_MUTEX_UNLOCK; return frame; } @@ -3655,6 +3551,8 @@ gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); gtk_widget_show(tree); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -3679,6 +3577,8 @@ gtk_widget_show(tmp); g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); gtk_misc_set_alignment(GTK_MISC(tmp), DW_LEFT, DW_LEFT); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -3706,6 +3606,8 @@ gtk_misc_set_alignment(GTK_MISC(tmp), 0.0f, 0.5f); g_object_set_data(G_OBJECT(frame), "_dw_id", GINT_TO_POINTER(id)); g_object_set_data(G_OBJECT(frame), "_dw_label", (gpointer)tmp); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return frame; } @@ -3733,6 +3635,8 @@ g_object_set_data(G_OBJECT(tmpbox), "_dw_user", (gpointer)tmp); gtk_widget_show(tmp); gtk_widget_show(tmpbox); + if(_DWDefaultFont) + dw_window_set_font(tmpbox, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmpbox; } @@ -3756,6 +3660,8 @@ gtk_widget_show(tmp); g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -3780,6 +3686,8 @@ gtk_widget_show(tmp); g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -3804,6 +3712,8 @@ gtk_widget_show(tmp); g_object_set_data(G_OBJECT(tmp), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_COMBOBOX)); g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -3823,6 +3733,8 @@ tmp = gtk_button_new_with_label(text); gtk_widget_show(tmp); g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -3974,6 +3886,8 @@ g_object_set_data(G_OBJECT(tmp), "_dw_adjustment", (gpointer)adj); g_object_set_data(G_OBJECT(adj), "_dw_spinbutton", (gpointer)tmp); g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -3995,6 +3909,8 @@ g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); gtk_widget_show(tmp); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -4089,6 +4005,8 @@ tmp = gtk_check_button_new_with_label(text); gtk_widget_show(tmp); g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -4138,6 +4056,8 @@ gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); } gtk_widget_show(tree); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -5540,6 +5460,8 @@ } gtk_widget_show(tree); free(array); + if(_DWDefaultFont) + dw_window_set_font(handle, _DWDefaultFont); DW_MUTEX_UNLOCK; return DW_ERROR_NONE; } @@ -6576,6 +6498,8 @@ g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); gtk_widget_set_can_focus(tmp, TRUE); gtk_widget_show(tmp); + if(_DWDefaultFont) + dw_window_set_font(tmp, _DWDefaultFont); DW_MUTEX_UNLOCK; return tmp; } @@ -10036,33 +9960,7 @@ */ void dw_html_action(HWND handle, int action) { -#ifdef USE_GTKMOZEMBED - int _locked_by_me = FALSE; - - if(!_gtk_moz_embed_new) - return; - - DW_MUTEX_LOCK; - switch(action) - { - case DW_HTML_GOBACK: - _gtk_moz_embed_go_back(GTK_MOZ_EMBED(handle)); - break; - case DW_HTML_GOFORWARD: - _gtk_moz_embed_go_forward(GTK_MOZ_EMBED(handle)); - break; - case DW_HTML_GOHOME: - _gtk_moz_embed_load_url(GTK_MOZ_EMBED(handle), "http://dwindows.netlabs.org"); - break; - case DW_HTML_RELOAD: - _gtk_moz_embed_reload(GTK_MOZ_EMBED(handle), 0); - break; - case DW_HTML_STOP: - _gtk_moz_embed_stop_load(GTK_MOZ_EMBED(handle)); - break; - } - DW_MUTEX_UNLOCK; -#elif defined(USE_WEBKIT) +#ifdef USE_WEBKIT int _locked_by_me = FALSE; WebKitWebView *web_view; WebKitWebFrame *frame; @@ -10091,39 +9989,16 @@ case DW_HTML_STOP: _webkit_web_view_stop_loading( web_view ); break; -# ifdef WEBKIT_CHECK_VERSION -# if WEBKIT_CHECK_VERSION(1,1,5) case DW_HTML_PRINT: frame = _webkit_web_view_get_focused_frame( web_view ); _webkit_web_frame_print( frame ); break; -# endif -# endif } } DW_MUTEX_UNLOCK; #endif } -#ifdef USE_LIBGTKHTML2 -void _dw_html_render_data( HWND handle, char *string, int i ) -{ - HtmlDocument *document; - - html_view_set_document (HTML_VIEW(handle), NULL); - document = (HtmlDocument *)g_object_get_data(G_OBJECT(handle), "_dw_html_document" ); -/* html_document_clear (document);*/ - if ( document ) - { - html_view_set_document (HTML_VIEW(handle), document); - if ( html_document_open_stream( document, "text/html" ) ) - { - html_document_write_stream( document, string, i ); - } - html_document_close_stream (document); - } -} -#endif /* * Render raw HTML code in the embedded HTML widget.. * Parameters: @@ -10135,29 +10010,7 @@ */ int dw_html_raw(HWND handle, char *string) { -#ifdef USE_GTKMOZEMBED - int _locked_by_me = FALSE; - - if (!_gtk_moz_embed_new) - return -1; - - DW_MUTEX_LOCK; - _gtk_moz_embed_render_data(GTK_MOZ_EMBED(handle), string, strlen(string), "file:///", "text/html"); - gtk_widget_show(GTK_WIDGET(handle)); - DW_MUTEX_UNLOCK; - return 0; -#elif defined(USE_LIBGTKHTML2) - int _locked_by_me = FALSE; - - if ( !_html_document_new ) - return -1; - - DW_MUTEX_LOCK; - _dw_html_render_data( handle, string, strlen(string) ); - gtk_widget_show( GTK_WIDGET(handle) ); - DW_MUTEX_UNLOCK; - return 0; -#elif defined(USE_WEBKIT) +#ifdef USE_WEBKIT int _locked_by_me = FALSE; WebKitWebView *web_view; @@ -10173,8 +10026,9 @@ } DW_MUTEX_UNLOCK; return 0; +#else + return -1; #endif - return -1; } /* @@ -10188,18 +10042,7 @@ */ int dw_html_url(HWND handle, char *url) { -#ifdef USE_GTKMOZEMBED - int _locked_by_me = FALSE; - - if (!_gtk_moz_embed_new) - return -1; - - DW_MUTEX_LOCK; - _gtk_moz_embed_load_url( GTK_MOZ_EMBED(handle), url ); - gtk_widget_show(GTK_WIDGET(handle)); - DW_MUTEX_UNLOCK; - return 0; -#elif defined( USE_WEBKIT ) +#ifdef USE_WEBKIT int _locked_by_me = FALSE; WebKitWebView *web_view; @@ -10215,130 +10058,12 @@ } DW_MUTEX_UNLOCK; return 0; -#endif +#else return -1; -} - -#ifdef USE_GTKMOZEMBED -/* - * Callback for a HTML widget when the "Forward" menu item is selected - */ -static int _dw_html_forward_callback(HWND window, void *data) -{ - HWND handle=(HWND)data; - dw_html_action( handle, DW_HTML_GOFORWARD ); - return TRUE; -} - -/* - * Callback for a HTML widget when the "Back" menu item is selected - */ -static int _dw_html_backward_callback(HWND window, void *data) -{ - HWND handle=(HWND)data; - dw_html_action( handle, DW_HTML_GOBACK ); - return TRUE; -} - -/* - * Callback for a HTML widget when the "Reload" menu item is selected - */ -static int _dw_html_reload_callback(HWND window, void *data) -{ - HWND handle=(HWND)data; - dw_html_action( handle, DW_HTML_RELOAD ); - return TRUE; -} - -/* - * Callback for a HTML widget when a page has completed loading - * Once the page has finished loading, show the widget. - */ -void _dw_html_net_stop_cb( GtkMozEmbed *embed, gpointer data ) -{ - gtk_widget_show(GTK_WIDGET(data)); -} - -/* - * Callback for a HTML widget when a mouse button is clicked inside the widget - * If the right mouse button is clicked, popup a context menu - */ -static gint _dw_dom_mouse_click_cb (GtkMozEmbed *dummy, gpointer dom_event, gpointer embed) -{ - gint button,rc; - glong x,y; - int flags; - - button = mozilla_get_mouse_event_button( dom_event ); - if ( button == 2 ) - { - HWND menuitem; - HMENUI popup; - /* - * Right mouse button; display context menu - */ - rc = mozilla_get_mouse_location( dom_event, &x, &y); - popup = dw_menu_new( 0 ); - if ( _gtk_moz_embed_can_go_forward(GTK_MOZ_EMBED(embed) ) ) - flags = DW_MIS_ENABLED; - else - flags = DW_MIS_DISABLED; - menuitem = dw_menu_append_item( popup, "Forward", 1, flags, TRUE, FALSE, 0 ); - dw_signal_connect( menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_html_forward_callback), embed ); - - if ( _gtk_moz_embed_can_go_back(GTK_MOZ_EMBED(embed) ) ) - flags = DW_MIS_ENABLED; - else - flags = DW_MIS_DISABLED; - menuitem = dw_menu_append_item( popup, "Back", 2, flags, TRUE, FALSE, 0 ); - dw_signal_connect( menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_html_backward_callback), embed ); - - dw_menu_append_item( popup, DW_MENU_SEPARATOR, 99, 0, TRUE, FALSE, 0 ); - - menuitem = dw_menu_append_item( popup, "Reload", 3, 0, TRUE, FALSE, 0 ); - dw_signal_connect( menuitem, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_html_reload_callback), embed ); - - dw_menu_popup( &popup, embed, x, y ); - rc = TRUE; - } - else - { - rc = FALSE; - } - return rc; -} #endif - -#ifdef USE_LIBGTKHTML2 -static gboolean dom_mouse_down( HtmlDocument *doc, DomMouseEvent *event, gpointer data ) -{ -fprintf(stderr,"mouse down\n"); -return TRUE; -} -static gboolean dom_mouse_up( HtmlDocument *doc, DomMouseEvent *event, gpointer data ) -{ -fprintf(stderr,"mouse up\n"); -return TRUE; -} -static gboolean dom_mouse_click( HtmlDocument *doc, DomMouseEvent *event, gpointer data ) -{ -fprintf(stderr,"mouse click\n"); -return TRUE; -} -static gboolean url_requested (HtmlDocument *doc, const gchar *url, HtmlStream *stream) -{ -fprintf(stderr,"URL IS REQUESTED: %s\n",url); -return TRUE; -} -static void link_clicked (HtmlDocument *doc, const gchar *url) -{ -fprintf(stderr,"link clicked: %s!\n", url); -} -#endif +} #ifdef USE_WEBKIT -# ifdef WEBKIT_CHECK_VERSION -# if WEBKIT_CHECK_VERSION(1,1,5) static void _dw_html_print_cb( GtkWidget *widget, gpointer *data ) { WebKitWebView *web_view = DW_WEBKIT_WEB_VIEW(data); @@ -10362,8 +10087,6 @@ g_signal_connect( item, "activate", G_CALLBACK(_dw_html_print_cb), web_view ); gtk_widget_show(item); } -# endif -# endif #endif /* @@ -10378,42 +10101,7 @@ int _locked_by_me = FALSE; DW_MUTEX_LOCK; -#ifdef USE_GTKMOZEMBED - if (!_gtk_moz_embed_new) - { - widget = dw_box_new(DW_HORZ, 0); - stext = dw_text_new( "HTML widget not available; you do not have access to gtkmozembed.", 0); - dw_box_pack_start(widget, stext, 0, 0, TRUE, TRUE, 10); - } - else - { - widget = _gtk_moz_embed_new(); - /* - * Connect some signals - */ - g_signal_connect( G_OBJECT(widget), "net-stop", G_CALLBACK(_dw_html_net_stop_cb), widget ); - g_signal_connect( G_OBJECT(widget), "dom_mouse_click", G_CALLBACK(_dw_dom_mouse_click_cb), widget ); - } -#elif defined(USE_LIBGTKHTML2) - if ( !_html_document_new ) - { - widget = dw_box_new(DW_HORZ, 0); - stext = dw_text_new( "HTML widget not available; you do not have access to libgtkhtml-2.", 0); - dw_box_pack_start(widget, stext, 0, 0, TRUE, TRUE, 10); - } - else - { - HtmlDocument *document; - document = html_document_new (); - g_signal_connect (G_OBJECT (document), "dom_mouse_down", G_CALLBACK (dom_mouse_down), NULL); - g_signal_connect (G_OBJECT (document), "dom_mouse_up", G_CALLBACK (dom_mouse_up), NULL); - g_signal_connect (G_OBJECT (document), "dom_mouse_click", G_CALLBACK (dom_mouse_click), NULL); - g_signal_connect (G_OBJECT (document), "request_url", G_CALLBACK (url_requested), NULL); - g_signal_connect (G_OBJECT (document), "link_clicked", G_CALLBACK (link_clicked), NULL); - widget = _html_view_new(); - g_object_set_data(G_OBJECT(widget), "_dw_html_document", (gpointer)document); - } -#elif defined(USE_WEBKIT) +#ifdef USE_WEBKIT if (!_webkit_web_view_open) { widget = dw_box_new(DW_HORZ, 0); @@ -10426,19 +10114,15 @@ widget = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW (widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); web_view = (WebKitWebView *)_webkit_web_view_new(); -/* web_view = WEBKIT_WEB_VIEW(_webkit_web_view_new() ); */ + /* web_view = WEBKIT_WEB_VIEW(_webkit_web_view_new() ); */ gtk_container_add( GTK_CONTAINER (widget), GTK_WIDGET(web_view) ); gtk_widget_show( GTK_WIDGET(web_view) ); g_object_set_data(G_OBJECT(widget), "_dw_web_view", (gpointer)web_view); -# ifdef WEBKIT_CHECK_VERSION -# if WEBKIT_CHECK_VERSION(1,1,5) g_signal_connect( web_view, "populate-popup", G_CALLBACK(_dw_html_populate_popup_cb), NULL ); -# endif -# endif } #else widget = dw_box_new(DW_HORZ, 0); - stext = dw_text_new( "HTML widget not available; you do not have access to gtkmozembed.", 0); + stext = dw_text_new( "HTML widget not available; you do not have access to webkit.", 0); dw_box_pack_start(widget, stext, 0, 0, TRUE, TRUE, 10); #endif gtk_widget_show(widget);