Skip to content

Commit 2c990ba

Browse files
committed
Initial import of wxWebKitCtrl sources and htmlctrl (right now wxWebKit) sample.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1 parent a1ae109 commit 2c990ba

5 files changed

Lines changed: 892 additions & 0 deletions

File tree

include/wx/html/webkit.h

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
/////////////////////////////////////////////////////////////////////////////
2+
// Name: webkit.h
3+
// Purpose: wxWebKitCtrl - embeddable web kit control
4+
// Author: Jethro Grassie / Kevin Ollivier
5+
// Modified by:
6+
// Created: 2004-4-16
7+
// RCS-ID: $Id$
8+
// Copyright: (c) Jethro Grassie / Kevin Ollivier
9+
// Licence: wxWindows licence
10+
/////////////////////////////////////////////////////////////////////////////
11+
12+
#ifndef _WX_WEBKIT_H
13+
#define _WX_WEBKIT_H
14+
15+
#ifdef __GNUG__
16+
#pragma interface "webkit.h"
17+
#endif
18+
19+
#if !defined(__WXMAC__) && !defined(__WXCOCOA__)
20+
#error "wxWebKitCtrl not implemented for this platform"
21+
#endif
22+
23+
#ifdef __WXCOCOA
24+
#include <WebKit/WebKit.h>
25+
#endif
26+
#include "wx/control.h"
27+
28+
// ----------------------------------------------------------------------------
29+
// Web Kit Control
30+
// ----------------------------------------------------------------------------
31+
32+
class wxWebKitCtrl : public wxControl
33+
{
34+
public:
35+
DECLARE_DYNAMIC_CLASS(wxWebKitCtrl)
36+
37+
wxWebKitCtrl() {};
38+
wxWebKitCtrl(wxWindow *parent,
39+
wxWindowID winID,
40+
const wxString& strURL,
41+
const wxPoint& pos = wxDefaultPosition,
42+
const wxSize& size = wxDefaultSize, long style = 0,
43+
const wxValidator& validator = wxDefaultValidator,
44+
const wxString& name = wxString("default_webkit_name"))
45+
{
46+
Create(parent, winID, strURL, pos, size, style, validator, name);
47+
};
48+
bool Create(wxWindow *parent,
49+
wxWindowID winID,
50+
const wxString& strURL,
51+
const wxPoint& pos = wxDefaultPosition,
52+
const wxSize& size = wxDefaultSize, long style = 0,
53+
const wxValidator& validator = wxDefaultValidator,
54+
const wxString& name = wxString("default_webkit_name"));
55+
virtual ~wxWebKitCtrl();
56+
57+
void LoadURL(const wxString &url);
58+
59+
bool CanGoBack();
60+
bool CanGoForward();
61+
bool GoBack();
62+
bool GoForward();
63+
void Reload();
64+
void Stop();
65+
bool CanGetPageSource();
66+
wxString GetPageSource();
67+
void SetPageSource(wxString& source, const wxString& baseUrl = wxString(""));
68+
69+
//we need to resize the webview when the control size changes
70+
//void OnSize(wxSizeEvent &event);
71+
protected:
72+
DECLARE_EVENT_TABLE()
73+
74+
private:
75+
wxWindow *m_parent;
76+
wxWindowID m_windowID;
77+
wxString m_currentURL;
78+
wxString m_pageTitle;
79+
void* m_webView;
80+
//It should be WebView, but WebView is Cocoa only, so any class which included
81+
//this header would have to link to Cocoa, so for now use void* instead.
82+
};
83+
84+
// ----------------------------------------------------------------------------
85+
// Web Kit Events
86+
// ----------------------------------------------------------------------------
87+
88+
enum {
89+
wxWEBKIT_STATE_START = 1,
90+
wxWEBKIT_STATE_NEGOTIATING = 2,
91+
wxWEBKIT_STATE_REDIRECTING = 4,
92+
wxWEBKIT_STATE_TRANSFERRING = 8,
93+
wxWEBKIT_STATE_STOP = 16,
94+
wxWEBKIT_STATE_FAILED = 32
95+
};
96+
97+
class wxWebKitStateChangedEvent : public wxCommandEvent
98+
{
99+
DECLARE_DYNAMIC_CLASS( wxWebKitStateChangedEvent )
100+
101+
public:
102+
int GetState() { return m_state; }
103+
void SetState(const int state) { m_state = state; }
104+
wxString GetURL() { return m_url; }
105+
void SetURL(const wxString& url) { m_url = url; }
106+
107+
wxWebKitStateChangedEvent( wxWindow* win = (wxWindow*) NULL );
108+
wxEvent *Clone(void) const { return new wxWebKitStateChangedEvent(*this); }
109+
110+
protected:
111+
int m_state;
112+
wxString m_url;
113+
};
114+
115+
typedef void (wxEvtHandler::*wxWebKitStateChangedEventFunction)(wxWebKitStateChangedEvent&);
116+
117+
BEGIN_DECLARE_EVENT_TYPES()
118+
DECLARE_LOCAL_EVENT_TYPE(wxEVT_WEBKIT_STATE_CHANGED, -1)
119+
END_DECLARE_EVENT_TYPES()
120+
121+
#define EVT_WEBKIT_STATE_CHANGED(func) \
122+
DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBKIT_STATE_CHANGED, \
123+
-1, \
124+
-1, \
125+
(wxObjectEventFunction) \
126+
(wxWebKitStateChangedEventFunction) & func, \
127+
(wxObject *) NULL ),
128+
129+
#endif // _WX_WEBKIT_H_

samples/html/htmlctrl/Makefile.in

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
# =========================================================================
2+
# This makefile was generated by
3+
# Bakefile 0.1.4 (http://bakefile.sourceforge.net)
4+
# Do not modify, all changes will be overwritten!
5+
# =========================================================================
6+
7+
8+
@MAKE_SET@
9+
10+
prefix = @prefix@
11+
exec_prefix = @exec_prefix@
12+
INSTALL = @INSTALL@
13+
EXEEXT = @EXEEXT@
14+
RESCOMP = @RESCOMP@
15+
SETFILE = @SETFILE@
16+
NM = @NM@
17+
srcdir = @srcdir@
18+
top_srcdir = @top_srcdir@
19+
top_builddir = @top_builddir@
20+
LDFLAGS_GUI = @LDFLAGS_GUI@
21+
CXX = @CXX@
22+
CXXFLAGS = @CXXFLAGS@
23+
CPPFLAGS = @CPPFLAGS@
24+
LDFLAGS = @LDFLAGS@
25+
TOOLKIT = @TOOLKIT@
26+
TOOLKIT_LOWERCASE = @TOOLKIT_LOWERCASE@
27+
TOOLKIT_VERSION = @TOOLKIT_VERSION@
28+
TOOLCHAIN_NAME = @TOOLCHAIN_NAME@
29+
EXTRALIBS = @EXTRALIBS@
30+
EXTRALIBS_GUI = @EXTRALIBS_GUI@
31+
HOST_SUFFIX = @HOST_SUFFIX@
32+
SAMPLES_RPATH_FLAG = @SAMPLES_RPATH_FLAG@
33+
SAMPLES_RPATH_POSTLINK = @SAMPLES_RPATH_POSTLINK@
34+
35+
### Variables: ###
36+
37+
DESTDIR =
38+
WX_VERSION = 2.5.1
39+
LIBDIRNAME = $(top_builddir)lib
40+
HTMLCTRL_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) -I$(srcdir) \
41+
$(__DLLFLAG_p) -I$(srcdir)/../../../samples $(CPPFLAGS) $(CXXFLAGS)
42+
HTMLCTRL_OBJECTS = \
43+
$(__htmlctrl___win32rc) \
44+
$(__htmlctrl_os2_lib_res) \
45+
htmlctrl_htmlctrl.o
46+
47+
### Conditionally set variables: ###
48+
49+
@COND_DEPS_TRACKING_0@CXXC = $(CXX)
50+
@COND_DEPS_TRACKING_1@CXXC = $(top_builddir)./bk-deps $(CXX)
51+
@COND_USE_GUI_0@PORTNAME = base
52+
@COND_USE_GUI_1@PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION)
53+
@COND_TOOLKIT_MAC@WXBASEPORT = _carbon
54+
@COND_BUILD_DEBUG_DEBUG_FLAG_DEFAULT@WXDEBUGFLAG = d
55+
@COND_DEBUG_FLAG_1@WXDEBUGFLAG = d
56+
@COND_UNICODE_1@WXUNICODEFLAG = u
57+
@COND_WXUNIV_1@WXUNIVNAME = univ
58+
@COND_PLATFORM_MAC_1@__htmlctrl___mac_setfilecmd = \
59+
@COND_PLATFORM_MAC_1@ $(SETFILE) -a C htmlctrl$(EXEEXT)
60+
@COND_PLATFORM_MAC_1@__htmlctrl___mac_rezcmd = $(__MACOSX_RESOURCES_p_1)
61+
@COND_WXUNIV_1@__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__
62+
@COND_WXUNIV_1@__WXUNIV_DEFINE_p_1 = -d __WXUNIVERSAL__
63+
@COND_WXUNIV_1@__WXUNIV_DEFINE_p_2 = --define __WXUNIVERSAL__
64+
@COND_SHARED_1@__DLLFLAG_p = -DWXUSINGDLL
65+
@COND_SHARED_1@__DLLFLAG_p_1 = -d WXUSINGDLL
66+
@COND_SHARED_1@__DLLFLAG_p_2 = --define WXUSINGDLL
67+
COND_PLATFORM_OS2_1___htmlctrl___os2_emxbindcmd = $(NM) htmlctrl$(EXEEXT) | if \
68+
grep -q pmwin.763 ; then emxbind -ep htmlctrl$(EXEEXT) ; fi
69+
@COND_PLATFORM_OS2_1@__htmlctrl___os2_emxbindcmd = $(COND_PLATFORM_OS2_1___htmlctrl___os2_emxbindcmd)
70+
@COND_PLATFORM_WIN32_1@__htmlctrl___win32rc = htmlctrl_sample_rc.o
71+
@COND_PLATFORM_OS2_1@__htmlctrl_os2_lib_res = \
72+
@COND_PLATFORM_OS2_1@ $(top_srcdir)/include/wx/os2/wx.res
73+
@COND_PLATFORM_MACOSX_1@__htmlctrl_bundle___depname = htmlctrl_bundle
74+
@COND_TOOLKIT_COCOA@____htmlctrl_BUNDLE_TGT_REF_DEP = \
75+
@COND_TOOLKIT_COCOA@ htmlctrl.app/Contents/PkgInfo
76+
@COND_TOOLKIT_MAC@____htmlctrl_BUNDLE_TGT_REF_DEP = \
77+
@COND_TOOLKIT_MAC@ htmlctrl.app/Contents/PkgInfo
78+
COND_MONOLITHIC_0___WXLIB_CORE_p = \
79+
-lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)_core-2.5$(HOST_SUFFIX)
80+
@COND_MONOLITHIC_0@__WXLIB_CORE_p = $(COND_MONOLITHIC_0___WXLIB_CORE_p)
81+
@COND_MONOLITHIC_0@__WXLIB_BASE_p = \
82+
@COND_MONOLITHIC_0@ -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)-2.5$(HOST_SUFFIX)
83+
COND_MONOLITHIC_1___WXLIB_MONO_p = \
84+
-lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)-2.5$(HOST_SUFFIX)
85+
@COND_MONOLITHIC_1@__WXLIB_MONO_p = $(COND_MONOLITHIC_1___WXLIB_MONO_p)
86+
@COND_USE_GUI_1_WXUSE_LIBTIFF_BUILTIN@__LIB_TIFF_p \
87+
@COND_USE_GUI_1_WXUSE_LIBTIFF_BUILTIN@ = \
88+
@COND_USE_GUI_1_WXUSE_LIBTIFF_BUILTIN@ -lwxtiff$(WXDEBUGFLAG)$(HOST_SUFFIX)
89+
@COND_USE_GUI_1_WXUSE_LIBJPEG_BUILTIN@__LIB_JPEG_p \
90+
@COND_USE_GUI_1_WXUSE_LIBJPEG_BUILTIN@ = \
91+
@COND_USE_GUI_1_WXUSE_LIBJPEG_BUILTIN@ -lwxjpeg$(WXDEBUGFLAG)$(HOST_SUFFIX)
92+
@COND_USE_GUI_1_WXUSE_LIBPNG_BUILTIN@__LIB_PNG_p \
93+
@COND_USE_GUI_1_WXUSE_LIBPNG_BUILTIN@ = \
94+
@COND_USE_GUI_1_WXUSE_LIBPNG_BUILTIN@ -lwxpng$(WXDEBUGFLAG)$(HOST_SUFFIX)
95+
@COND_WXUSE_ZLIB_BUILTIN@__LIB_ZLIB_p = \
96+
@COND_WXUSE_ZLIB_BUILTIN@ -lwxzlib$(WXDEBUGFLAG)$(HOST_SUFFIX)
97+
@COND_WXUSE_ODBC_BUILTIN@__LIB_ODBC_p = \
98+
@COND_WXUSE_ODBC_BUILTIN@ -lwxodbc$(WXDEBUGFLAG)$(HOST_SUFFIX)
99+
@COND_WXUSE_REGEX_BUILTIN@__LIB_REGEX_p = \
100+
@COND_WXUSE_REGEX_BUILTIN@ -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(HOST_SUFFIX)
101+
@COND_WXUSE_EXPAT_BUILTIN@__LIB_EXPAT_p = \
102+
@COND_WXUSE_EXPAT_BUILTIN@ -lwxexpat$(WXDEBUGFLAG)$(HOST_SUFFIX)
103+
COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_1 = $(RESCOMP) -d __DARWIN__ -t APPL -d \
104+
__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_1) -i $(srcdir) $(__DLLFLAG_p_1) -i \
105+
$(srcdir)/../../../samples -i $(top_srcdir)/include -o htmlctrl$(EXEEXT) \
106+
Carbon.r $(LIBDIRNAME)/libwx_$(TOOLCHAIN_NAME).1.r sample.r
107+
@COND_TOOLKIT_MAC@__MACOSX_RESOURCES_p_1 = $(COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_1)
108+
109+
### Targets: ###
110+
111+
all: htmlctrl$(EXEEXT) $(__htmlctrl_bundle___depname)
112+
113+
install: all
114+
115+
uninstall:
116+
117+
install-strip: install
118+
119+
clean:
120+
rm -rf ./.deps ./.pch
121+
rm -f ./*.o
122+
rm -f htmlctrl$(EXEEXT)
123+
rm -rf htmlctrl.app
124+
125+
distclean: clean
126+
rm -f configure config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile
127+
128+
htmlctrl$(EXEEXT): $(HTMLCTRL_OBJECTS) $(__htmlctrl___win32rc)
129+
$(CXX) -o $@ $(HTMLCTRL_OBJECTS) $(LDFLAGS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(__LIB_ZLIB_p) $(__LIB_ODBC_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS) $(EXTRALIBS_GUI)
130+
$(__htmlctrl___mac_rezcmd)
131+
$(__htmlctrl___mac_setfilecmd)
132+
$(__htmlctrl___os2_emxbindcmd)
133+
$(SAMPLES_RPATH_POSTLINK)
134+
135+
htmlctrl.app/Contents/PkgInfo: htmlctrl$(EXEEXT) $(top_srcdir)/src/mac/carbon/Info.plist.in $(LIBDIRNAME)/libwx_$(TOOLCHAIN_NAME).1.rsrc $(top_srcdir)/src/mac/carbon/wxmac.icns
136+
mkdir -p htmlctrl.app/Contents
137+
mkdir -p htmlctrl.app/Contents/MacOS
138+
mkdir -p htmlctrl.app/Contents/Resources
139+
140+
141+
sed -e "s/IDENTIFIER/`echo $(srcdir) | sed -e 's,\.\./,,g' | sed -e 's,/,.,g'`/" \
142+
-e "s/EXECUTABLE/htmlctrl/" \
143+
-e "s/VERSION/$(WX_VERSION)/" \
144+
$(top_srcdir)/src/mac/carbon/Info.plist.in >htmlctrl.app/Contents/Info.plist
145+
146+
147+
echo -n "APPL????" >htmlctrl.app/Contents/PkgInfo
148+
149+
150+
ln -f htmlctrl$(EXEEXT) htmlctrl.app/Contents/MacOS/htmlctrl
151+
152+
153+
cp -f $(LIBDIRNAME)/libwx_$(TOOLCHAIN_NAME).1.rsrc htmlctrl.app/Contents/Resources/htmlctrl.rsrc
154+
cp -f $(top_srcdir)/src/mac/carbon/wxmac.icns htmlctrl.app/Contents/Resources/wxmac.icns
155+
156+
@COND_PLATFORM_MACOSX_1@htmlctrl_bundle: $(____htmlctrl_BUNDLE_TGT_REF_DEP)
157+
158+
htmlctrl_sample_rc.o: $(srcdir)/../../../samples/sample.rc
159+
$(RESCOMP) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_2) --include-dir $(srcdir) $(__DLLFLAG_p_2) --include-dir $(srcdir)/../../../samples --include-dir $(top_srcdir)/include
160+
161+
htmlctrl_htmlctrl.o: $(srcdir)/htmlctrl.cpp
162+
$(CXXC) -c -o $@ $(HTMLCTRL_CXXFLAGS) $<
163+
164+
165+
# Include dependency info, if present:
166+
@IF_GNU_MAKE@-include .deps/*.d
167+
168+
.PHONY: all install uninstall clean distclean htmlctrl_bundle

samples/html/htmlctrl/htmlctrl.bkl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" ?>
2+
<!-- $Id$ -->
3+
4+
<makefile>
5+
6+
<include file="../../../build/bakefiles/common_samples.bkl"/>
7+
8+
<exe id="htmlctrl" template="wx_sample" template_append="wx_append">
9+
<sources>htmlctrl.cpp</sources>
10+
<wx-lib>core</wx-lib>
11+
<wx-lib>base</wx-lib>
12+
</exe>
13+
14+
</makefile>

0 commit comments

Comments
 (0)