* gtk: toolbar space style @ 2001-04-04 5:50 David Pirotte [not found] ` <986400337.1886.1.camel@soleil> 0 siblings, 1 reply; 7+ messages in thread From: David Pirotte @ 2001-04-04 5:50 UTC (permalink / raw) To: guile-gtk, guile-user Hello, can someone tell me if it is possible (and how) I can tell a toolbar to set its space style to 'line manythanks, david ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <986400337.1886.1.camel@soleil>]
* Re: gtk: toolbar space style [not found] ` <986400337.1886.1.camel@soleil> @ 2001-04-04 12:40 ` David Pirotte [not found] ` <986428047.18191.5.camel@soleil> 2001-04-04 12:41 ` David Pirotte 1 sibling, 1 reply; 7+ messages in thread From: David Pirotte @ 2001-04-04 12:40 UTC (permalink / raw) To: Ariel Rios; +Cc: guile-gtk, guile-user Ariel Rios wrote: > > (define-enum GtkToolBarSpaceStyle > (empty GTK_TOOLBAR_SPACE_EMPTY) > (line GTK_TOOLBAR_SPACE_LINE)) > Thanks Ariel, but don't you also need to add: (define-func gtk_toolbar_set_space_style none ((GtkToolbar toolbar) (GtkToolBarSpaceStyle style)) ) or something like that: it's not in my gtk-1.2.defs file (I am using guile-gtk-0.19) can I just add these lines (including yours of course) and just recompile? if not, where is the cvs site for guile-gtk ? thanks again David ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <986428047.18191.5.camel@soleil>]
* Re: gtk: toolbar space style [not found] ` <986428047.18191.5.camel@soleil> @ 2001-04-05 2:41 ` David Pirotte 2001-04-05 5:28 ` Announcing guile-gobject Martin Baulig [not found] ` <986508739.1535.0.camel@soleil> 0 siblings, 2 replies; 7+ messages in thread From: David Pirotte @ 2001-04-05 2:41 UTC (permalink / raw) To: Ariel Rios; +Cc: guile-gtk, guile-user Ariel Rios wrote: > ... > It is on the GNOME cvs. > You can find info on http://developer.gnome.org/tools/cvs.html > But basically you need to do: > $export CVSROOT=':pserver:anonymous@anoncvs.gnome.org:/cvs/gnome' > $cvs login Ariel, I did a checkout of both gnome-guile and guile-gtk, but I get the same little problem when trying to compile: david@faust:~/ftp/guile/gnome-guile/guile-gtk 27 $ sh ./autogen.sh ./autogen.sh: gnome-autogen.sh: no such file or directory and david@faust:~/ftp/guile/guile-gtk 30 $ sh ./autogen.sh ./autogen.sh: gnome-autogen.sh: o such file or directory thanks, david PS: for info to who may help: the 'Mixp library' (Guile (Projects List)) refers to a home page that contains a damaged tar.gz file ^ permalink raw reply [flat|nested] 7+ messages in thread
* Announcing guile-gobject 2001-04-05 2:41 ` David Pirotte @ 2001-04-05 5:28 ` Martin Baulig 2001-04-09 9:25 ` Marius Vollmer [not found] ` <986508739.1535.0.camel@soleil> 1 sibling, 1 reply; 7+ messages in thread From: Martin Baulig @ 2001-04-05 5:28 UTC (permalink / raw) To: guile-gtk; +Cc: gnome-hackers Hi guys, about a week ago I started some little hacking project because I felt like I must hack something to feel good. The result of this hacking week is now in GNOME CVS in the `guile-gobject' module, right in time before GUADEC ... Unfortunately, I don't have much time to write what guile-gobject is and how it is different from guile-gtk since I need to leave to GUADEC soon, but maybe we can have some little BOF about it there. It's basically a new set of scheme / guile bindings for GNOME 2.0 which is based on gobject. The main difference to guile-gtk is that it is using goops and g-wrap and that it's based on gobject. Basically, with guile-gobject you don't need any C compiled glue code to access arbitrary GObject's and other glib/gobject based types such as GEnum and GFlags. This all works with very little C code, most of the stuff is done in scheme. The other big advantage of guile-gobject is that it's a two-way wrapper; you cannot only access a GObject which is defined in some C library from Guile, you can also write your own GObjects in Guile and access them from C. This code is still very experimental and unfinished, I just hacked on it for about a week or so. Here's some example code: ==== (use-modules (gobject gobject) (oop goops)) ;; Assuming your C code has a GObject `Foo' and there's ;; a C function foo_get_type (). (define-class <foo> (<gobject>)) (define foo (make <foo>)) ;; Assuming there's a GObject `Bar' and a scheme function ;; (bar-get-type) returning Bar's GType. (define bar (make <gobject> #:type (bar-get-type))) ;; Derive `Bar', creating your own `SuperBar' GObject in scheme (define super-bar-type (g-type-create-object (bar-get-type) 'SuperBar '())) (define super-bar-class (g-object-class-from-type super-bar-type)) (define super-bar (make <gobject> #:type super-bar-type)) ;; Assuming `Foo' has a boolean `foo property (g-object-get-property foo 'foo) (g-object-set-property foo 'foo #t) ;; Assuming `Foo' has a signal 'hello' which takes a boolean and a float ;; argument and returns a long (define retval (g-object-signal-emit foo 'hello #t 3.45)) (display retval) (newline) ;; this will be a long ;; Now let's connect something to the 'hello' signal: (g-object-signal-connect foo 'hello (lambda (object a b) (display (list "HELLO" object a b "END")) (newline) 305)) ;; Add a new boolean `super' property to the `SuperBar' GObject (g-object-class-install-property super-bar-class (make <gparam-spec-wrapper> #:name 'super #:value-type g-type-boolean)) ==== So all glue code that's needed is for C functions, but the whole object management can be done directly in Scheme. The following isn't finished yet, but basically it'll be possible to do something like this: ==== ;; Assume you have a C function `void test_func (GObject *object)' and its ;; scheme wrapper, you can create your own GObject and pass it to this ;; function (define super-bar-type (g-type-create-object g-type-object 'SuperBar '())) (define super-bar-class (g-object-class-from-type super-bar-type)) (define super-bar-get-type (lambda () super-bar-type)) ;; This will assume there is a `super-bar-get-type' function (define-class <super-bar> (<gobject>)) ;; You can also say (define-class <super-bar> (<gobject>) #:type super-bar-type) ;; This create a new instance of `SuperBar'. (define super-bar (make <super-bar>)) ;; You can also use this without creating a class: (define super-bar (make <gobject> #:type super-bar-type)) ;; (test-func) takes a GObject, so let's pass it our `SuperBar': (test-func super-bar) ==== For the C part, I also had a new and much simpler idea how to wrap a GObject and how to do the reference counting. For each GObject, there's a GObjectWrapper: === struct _GuileGObject { int ref_count; gboolean floating; size_t size; void (*finalize) (gpointer); SCM scm_class; }; struct _GObjectWrapper { GuileGObject guile; GObject *object; }; === This wrapper is created on-the-fly when a GObject is about to be passed to Scheme code and it'll only stay around as long as it's needed: * when a GObject is passed to Scheme code, a new GObjectWrapper object is created and the GObject ref'ed. * the GObjectWrapper is freeded during garbage collecting which will cause the GObject to be unref'ed. So when we create a new GObject, it'll be "owned" by its GObjectWrapper and the unref during garbage collecting will cause it to be destroyed. * when we call a C function from scheme which takes a GObject, we pass the GObject itself to C and not its Scheme wrapper; the GObject doesn't know anything about its GObjectWrapper so that the wrapper can safely be freed during garbage collecting even if the GObject is still in use (since the C code must ref the object anyways because it's owned by the caller). This also works when we create our own GObjects in scheme: * (g-type-create-object) basically calls g_type_register_static() to register a new type for the derived object (with the same class and instance sizes as its parent type) and uses g_type_set_qdata() to assign some per-class data with the new type. It provides a custom class_init function for the new type which will override the `get_property', `set_property' etc. functions. -- Martin Baulig martin@gnome.org (private) baulig@suse.de (work) ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Announcing guile-gobject 2001-04-05 5:28 ` Announcing guile-gobject Martin Baulig @ 2001-04-09 9:25 ` Marius Vollmer 0 siblings, 0 replies; 7+ messages in thread From: Marius Vollmer @ 2001-04-09 9:25 UTC (permalink / raw) To: Martin Baulig; +Cc: guile-gtk, gnome-hackers Martin Baulig <martin@home-of-linux.org> writes: > The result of this hacking week is now in GNOME CVS in the > `guile-gobject' module, right in time before GUADEC ... Splendid! I didn't have a look yet, but it sounds very promising, indeed! ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <986508739.1535.0.camel@soleil>]
* Re: gtk: toolbar space style [not found] ` <986508739.1535.0.camel@soleil> @ 2001-04-06 10:03 ` David Pirotte 0 siblings, 0 replies; 7+ messages in thread From: David Pirotte @ 2001-04-06 10:03 UTC (permalink / raw) To: Ariel Rios; +Cc: guile-gtk, guile-user Sorry, I forgot to use the 'reply-all' so it was only sent to Ariel ... Ariel Rios wrote: > > On 05 Apr 2001 12:42:03 +0200, David Pirotte wrote: > > > Ariel, > > > > I did a checkout of both gnome-guile and guile-gtk, but I get the same > > little problem when trying to compile: > Ah! You need the gnome-common package from CVS or from ftp.gnome.org Ariel, I tried anything I could by myself, but no success: - gnome-common does not contain the requested gnome-autogen.sh but why should I do this anyway? - I have the latest stable gnome lib already installed - I do not want (at this stage) gnome-guile, but simply guile-gtk [- even so, why gnome-guile module would not be 'complete' ?] so why can't we expect to have the autogen.sh of the guile-gtk 'complete' and 'independant' from gnome? In the mean time, trying to compile with the additional stuff: (copying your latest gtk-1.2.defs in guile-gtk-0.19 dir ...) (and I added in guile-gtk.c) static GtkType sgtk_try_missing_type (char *name) { static sgtk_type_info missing[] = { ... { "GtkToolbarStyle", GTK_TYPE_ENUM }, { "GtkToolBarSpaceStyle", GTK_TYPE_ENUM }, ... {NULL, GTK_TYPE_NONE} }; but even doing a make distclean (to be sure that gtk-glue.c is re-created) ./configure make it does not compile properly: so please help me ... david /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include -I/usr/local/include -I/usr/local/lib/glib/include -I/usr/local/include -I/usr/X11R6/include -g -O2 -c gtk-glue.c rm -f .libs/gtk-glue.lo gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include -I/usr/local/include -I/usr/local/lib/glib/include -I/usr/local/include -I/usr/X11R6/include -g -O2 -c -fPIC -DPIC gtk-glue.c -o .libs/gtk-glue.lo gtk-glue.c: In function `sgtk_gtk_style_light_gc': gtk-glue.c:1080: warning: assignment makes pointer from integer without a cast gtk-glue.c: In function `sgtk_gtk_style_dark_gc': gtk-glue.c:1100: warning: assignment makes pointer from integer without a cast gtk-glue.c: In function `sgtk_gtk_style_mid_gc': gtk-glue.c:1120: warning: assignment makes pointer from integer without a cast gtk-glue.c: In function `sgtk_gtk_style_text_gc': gtk-glue.c:1140: warning: assignment makes pointer from integer without a cast gtk-glue.c: In function `sgtk_gtk_style_base_gc': gtk-glue.c:1160: warning: assignment makes pointer from integer without a cast gtk-glue.c: In function `sgtk_gtk_widget_requisition_width': gtk-glue.c:1604: `width' undeclared (first use in this function) gtk-glue.c:1604: (Each undeclared identifier is reported only once gtk-glue.c:1604: for each function it appears in.) gtk-glue.c: In function `sgtk_gtk_widget_requisition_height': gtk-glue.c:1621: `height' undeclared (first use in this function) gtk-glue.c: In function `sgtk_gtk_widget_allocation_x': gtk-glue.c:1638: `x' undeclared (first use in this function) gtk-glue.c: In function `sgtk_gtk_widget_allocation_y': gtk-glue.c:1655: `y' undeclared (first use in this function) gtk-glue.c: In function `sgtk_gtk_widget_allocation_width': gtk-glue.c:1672: `width' undeclared (first use in this function) gtk-glue.c: In function `sgtk_gtk_widget_allocation_height': gtk-glue.c:1689: `height' undeclared (first use in this function) gtk-glue.c: In function `sgtk_gtk_toolbar_set_space_style': gtk-glue.c:6280: `GtkToolBarSpaceStyle' undeclared (first use in this function) gtk-glue.c:6280: parse error before `c_style' gtk-glue.c:6282: `c_style' undeclared (first use in this function) make: *** [gtk-glue.lo] Error 1 david@faust:/usr/local/src/guile/guile-gtk-0.19 16 $ ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: gtk: toolbar space style [not found] ` <986400337.1886.1.camel@soleil> 2001-04-04 12:40 ` David Pirotte @ 2001-04-04 12:41 ` David Pirotte 1 sibling, 0 replies; 7+ messages in thread From: David Pirotte @ 2001-04-04 12:41 UTC (permalink / raw) To: Ariel Rios; +Cc: guile-gtk, guile-user Ariel Rios wrote: > > (define-enum GtkToolBarSpaceStyle > (empty GTK_TOOLBAR_SPACE_EMPTY) > (line GTK_TOOLBAR_SPACE_LINE)) > Thanks Ariel, but don't you also need to add: (define-func gtk_toolbar_set_space_style none ((GtkToolbar toolbar) (GtkToolBarSpaceStyle style)) ) or something like that: it's not in my gtk-1.2.defs file (I am using guile-gtk-0.19) can I just add these lines (including yours of course) and just recompile? if not, where is the cvs site for guile-gtk ? thanks again David ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2001-04-09 9:25 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2001-04-04 5:50 gtk: toolbar space style David Pirotte [not found] ` <986400337.1886.1.camel@soleil> 2001-04-04 12:40 ` David Pirotte [not found] ` <986428047.18191.5.camel@soleil> 2001-04-05 2:41 ` David Pirotte 2001-04-05 5:28 ` Announcing guile-gobject Martin Baulig 2001-04-09 9:25 ` Marius Vollmer [not found] ` <986508739.1535.0.camel@soleil> 2001-04-06 10:03 ` gtk: toolbar space style David Pirotte 2001-04-04 12:41 ` David Pirotte
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).