RE: Re: Displaying simple HTML in gtkmm app (got it!)
- From: erik_ohrnberger dme net
- To: jtaber johntaber net, gtkmm-list gnome org
- Cc:
- Subject: RE: Re: Displaying simple HTML in gtkmm app (got it!)
- Date: Thu, 21 Apr 2005 14:06:43 -0400
Sorry for the late reply, but it seems as if the list email is not making it
to me.
The compile line looks like this:
g++ -pipe -M `pkg-config gtkmm-2.0 --cflags` `pkg-config glib-2.0 --cflags`
`pkg-config libgtkhtml-2.0 --cflags` `pkg-config gnome-vfs-2.0 --cflags`
testgtkhtml.cpp -o testgtkhtml.o
And the link line like this:
g++ testgtkhtml.o `pkg-config gtkmm-2.0 --libs` `pkg-config glib-2.0 --libs`
`pkg-config libgtkhtml-2.0 --libs` `pkg-config gnome-vfs-2.0 --libs` -o
testgtkhtml
The other thing that I noticed about this way of implementing this
is that you are limited to a single instance of a window that can render
HTML. I was starting to create a C++ wrapper class, but found out that the
lines:
g_signal_connect( G_OBJECT( document ), "request_url", G_CALLBACK(
>khtml::url_requested ), NULL );
g_signal_connect( G_OBJECT( document ), "link_clicked", G_CALLBACK(
>khtml::link_clicked ), NULL );
are proving to be difficult to resolve. How would you connect gtk+
signals to a C++ class instance? That appears to be the question now, for
me at least.
Erik.
> -----Original Message-----
> From: Ohrnberger, Erik
> Sent: Thursday, April 21, 2005 2:01 PM
> To: Ohrnberger, Erik
> Subject: Re: Displaying simple HTML in gtkmm app (got it!)
>
>
> On Friday 15 April 2005 09:46, [EMAIL PROTECTED] wrote:
> > OK, so I got it working now. It's pretty much a hack job,
> but it'll get me
> > by for now.
>
> Erik,
> thks for the post - using gtkhtml will be really useful for
> some of us. I'm
> trying to get this working in a small demo program but struggling:
> 1) which libs did you include when you compiled?
> 2) still not sure how you combined the simple c program under
> gtkmm - could
> you post the complete code listing (or email it). thks
>
> >
> > I've declared a class gtkhtml, which is a sub class of
> Gtk::ScrolledWindow.
> >
> >
> > In this code module, I just include the simple.c source
> code file like so:
> > extern "C"
> > {
> > # include "simple.c"
> > };
> >
> > And make sure to either remove or commnet out the int main(
> int argc,
> > char** argv) code
> >
> > Below is the class' CTOR:
> >
> > gtkhtml::gtkhtml( void )
> >
> > : ScrolledWindow()
> >
> > {
> > // Set properties
> > g_object_set( G_OBJECT( gtk_html_context_get () ),
> "debug_painting",
> > FALSE, NULL);
> >
> > // Create the document
> > document = html_document_new();
> >
> > 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 );
> >
> > // And the view
> > view = html_view_new();
> > html_view_set_document( HTML_VIEW( view ), document );
> >
> > g_signal_connect( G_OBJECT( view ), "request_object", G_CALLBACK(
> > request_object ), NULL );
> >
> > // ScrolledWindow that's hosting is already created.
> >
> > // Now wrap and add the Gtkhtml widget to the ScrolledWindow
> > Gtk::Widget* GtkmmView = Glib::wrap( view );
> >
> > add( *GtkmmView );
> > GtkmmView->show();
> > }
> >
> > And finally, is the LoadFile method, where you can load a
> file from local
> > disk and display it in the ScrolledWindow.
> >
> > void gtkhtml::LoadFile( char* Filename )
> > {
> > load_file( Filename );
> > }
> >
> >
> > The only other thing is that I had to hack the
> > /usr/include/gtkhtml-2.0/libgtkhtml/css/cssstylesheet.h
> header file, 'cause
> > the structure below had a field called 'class', which g++
> didn't like, so I
> > renamed it '_class':
> >
> > struct _CssTail {
> > CssTailType type;
> >
> > union {
> > struct {
> > HtmlAtom att;
> > CssAttrMatch match;
> > CssAttrVal val;
> > } attr_sel;
> > struct {
> > HtmlAtom id;
> > } id_sel;
> > struct {
> > HtmlAtom _class;
> > } class_sel;
> > struct {
> > HtmlAtom name;
> > } pseudo_sel;
> > } t;
> > };
> >
> > _______________________________________________
> > gtkmm-list mailing list
> > gtkmm-list gnome org
> > http://mail.gnome.org/mailman/listinfo/gtkmm-list
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]