Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

GtkExtra installation problem #11

Open
vmagnin opened this Issue · 13 comments

4 participants

@vmagnin
Collaborator

"GtkExtra is a useful set of widgets for creating GUI's for the Xwindows system using GTK+." It would be interesting to use it with gtk-fortran but I did not succeed compiling its 2.1.2 version under Ubuntu 10.10 (see the error message below when I use "make"). Note that "a developer release of gtkextra-3 has been made available in the project download area (26 Feb 2011)."

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I -I.. -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -g -O2 -Wall -MT gtkitementry.lo -MD -MP -MF .deps/gtkitementry.Tpo -c gtkitementry.c  -fPIC -DPIC -o .libs/gtkitementry.o
gtkitementry.c:134: error: static declaration of ‘gtk_entry_reset_im_context’ follows non-static declaration
/usr/include/gtk-2.0/gtk/gtkentry.h:311: note: previous declaration of ‘gtk_entry_reset_im_context’ was here
make[2]: *** [gtkitementry.lo] Erreur 1
make[2]: quittant le répertoire « /home/vmagnin/Bureau/gtk+extra-2.1.2/gtkextra »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /home/vmagnin/Bureau/gtk+extra-2.1.2 »
make: *** [all] Erreur 2
@jerryd
Owner
@bonanza
Collaborator

I get the same error with GtkExtra version 2.1.2.
Developer version 3.0.0 gives another error:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -g -O2 -O2 -Wall -MT gtkcharsel.lo -MD -MP -MF .deps/gtkcharsel.Tpo -c gtkcharsel.c  -fPIC -DPIC -o .libs/gtkcharsel.o
gtkcharsel.c:40:29: fatal error: gtkextra-compat.h: No such file or directory
compilation terminated.

A file named gtkextra-compat.h is not present in the tarball.

@jtappin
Collaborator

If you need anything tested/extracted, I have it installed on my Pardus system.

(As an aside: I find it a little surprising that packages are available for the most Qt/KDE-oriented of all the major distros and not on Ubuntu)

@vmagnin
Collaborator

From bonanza's message I conclude that the 3.0.0 version seems to use GTK+ 2 and not GTK+ 3 as I first thought. And probably GTK+ 2.18 if we look at the project homepage.

James, could you just add in that PATH_DICT dictionnary in the python script a line like that (I do not know if the include path is correct):
"/usr/include/gtkextra":"gtk-extra.f90",
and launch it with a Python 2 interpreter:
python cfwrapper.py
Just to see if the header files are well parsed by the script. Anyway, we first need to install GtkExtra successfully before going further... (see Jerry's message).

@vmagnin
Collaborator

Following Jerry's advice, I finally succeeded installing gtkextra 2.1.2: in its gtkitementry.c I commented the prototype and declaration of:
static void gtk_entry_reset_im_context (GtkEntry *entry)
This function is already defined in the GTK+ 2.22 file gtkentry.h

But I think gtkextra 2.1.2 is still using gdk to draw and so will not be compatible with GTK+ 3. It seems gtkextra developers have begun introducing cairo in gtkextra 3.0.0 (see gtkplotcairo.c).

@bonanza
Collaborator

I succeeded in installing gtkextra 3.
The missing file can be found in the CVS SCM repositories http://gtkextra.cvs.sourceforge.net/viewvc/gtkextra/ , it's marked dead.
However, it seems to be an useless file.

@jtappin
Collaborator

Running cfwrapper.py with the gtkextra include directory added does generate quite a few errors, mostly "unknown data type" or "function name not found". Unfortunately I'm not really familiar enough with python to figure out why they are happening. This is the first few relevant lines from the error log:
/usr/include/gtkextra-2.0/gtkextra/gtkplotcanvas.h
Unknown data type:

"C" GtkType gtk_plot_canvas_get_type (void);

/usr/include/gtkextra-2.0/gtkextra/gtkplotcanvas.h
Unknown data type:    GtkPlotLine line
void gtk_plot_canvas_set_line_attributes (GtkPlotCanvas *canvas, GtkPlotLine line);

/usr/include/gtkextra-2.0/gtkextra/gtkplotcanvas.h
Unknown data type:     
 }

/usr/include/gtkextra-2.0/gtkextra/gtkplotcanvas.h
Function name not found
 }

/usr/include/gtkextra-2.0/gtkextra/gtkplotcandle.h
Unknown data type:     
  "C"  GtkType gtk_plot_candle_get_type (void);

/usr/include/gtkextra-2.0/gtkextra/gtkplotcandle.h
Unknown data type:     
 }
@bonanza
Collaborator

I succeeded in compilation and installation of GtkExtra 3.0.1 (http://sourceforge.net/projects/gtkextra/files/3.0.1/gtk%2Bextra-3.0.1.tar.gz/download).
After adding the following types to the TYPES_DICT in cfwrapper.py:

    "gboolean":("integer(c_int)","c_int"),
    "gdouble":("real(c_double)","c_double"),
    "gint":("integer(c_int)","c_int"), 
    "gfloat":("real(c_float)","c_float"),
    "GdkCapStyle":("type(c_ptr)","c_ptr"),
    "GdkColor":("type(c_ptr)","c_ptr"),
    "GdkJoinStyle":("type(c_ptr)","c_ptr"),
    "GtkAllocation":("type(c_ptr)","c_ptr"),
    "GtkJustification":("type(c_ptr)","c_ptr"),
    "GtkOrientation":("type(c_ptr)","c_ptr"),
    "GtkPlotDTnode":("type(c_ptr)","c_ptr"),
    "GtkPlotLine":("type(c_ptr)","c_ptr"),
    "GtkPlotText":("type(c_ptr)","c_ptr"),
    "GtkSelectionMode":("type(c_ptr)","c_ptr"),
    "GtkSheetDataType":("type(c_ptr)","c_ptr"),
    "GtkSheetState":("type(c_ptr)","c_ptr"),
    "GtkSheetVerticalJustification":("type(c_ptr)","c_ptr"),
    "GtkSignalFunc":("type(c_ptr)","c_ptr"),
    "GdkLineStyle":("type(c_ptr)","c_ptr"),
    "GtkStateType":("type(c_ptr)","c_ptr")

I got the following statistics using cfwrapper.py with the gtkextra-3.0 include directory;

nb_files scanned = 47
nb_generated_interfaces = 784
nb_type_errors = 133
nb_errors (others) = 61
nb_lines treated = 2309
nb_variadic functions = 0

Looks not bad so far.
Here are the error logs:

cfwrapper-type_errors

const GType entry_type
const GType entry_type
const GtkSheetDataType data_type
const gboolean editable
const gboolean is_key
const gboolean is_readonly
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint col
const gint gtk_sheet_get_column_width 
const gint row
const gint row
const gint row
const gint row
const gint row
const gint row
const gint row
const gint row
const guint gtkextra_binary_age
const guint gtkextra_interface_age
const guint gtkextra_micro_version
const guint gtkextra_minor_version
typedef struct _GtkSheetButton GtkSheetButton
typedef struct _GtkSheetCell GtkSheetCell
typedef struct _GtkSheetCellAttr GtkSheetCellAttr
typedef struct _GtkSheetCellBorder GtkSheetCellBorder
typedef struct _GtkSheetChild GtkSheetChild
typedef struct _GtkSheetClass GtkSheetClass
typedef struct _GtkSheetColumn GtkSheetColumn
typedef struct _GtkSheetColumnClass GtkSheetColumnClass
typedef struct _GtkSheetRange GtkSheetRange
typedef struct _GtkSheetRow GtkSheetRow

cfwrapper-errors

/usr/local/include/gtkextra-3.0/gtkextra/gtkfilelist.h
Unknown data type:     
  "C"  GType gtk_file_list_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkfilelist.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkfilelist.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotsurface.h
Unknown data type:     
  "C"  GType gtk_plot_surface_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotsurface.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotsurface.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotdata.h
Unknown data type:     
  "C" {  GType gtk_plot_data_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotdata.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotdata.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotprint.h
Unknown data type:     
  "C" {  gboolean gtk_plot_export_ps (GtkPlot *plot, char *file_name, GtkPlotPageOrientation orient, gboolean epsflag, GtkPlotPageSize page_size);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotprint.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotprint.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkbordercombo.h
Unknown data type:     
  "C"  GType gtk_border_combo_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkbordercombo.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkbordercombo.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkiconlist.h
Unknown data type:     
  "C"  GType gtk_icon_list_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkiconlist.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkiconlist.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotps.h
Unknown data type:     
  "C"  GType gtk_plot_ps_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotps.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotps.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotdt.h
Unknown data type:     
  "C"  GType gtk_plot_dt_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotdt.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotdt.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkpsfont.h
Unknown data type:     
  "C"  gint gtk_psfont_init ();

/usr/local/include/gtkextra-3.0/gtkextra/gtkpsfont.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkpsfont.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcandle.h
Unknown data type:     
  "C"  GType gtk_plot_candle_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcandle.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcandle.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcairo.h
Unknown data type:     
  "C"  struct _GtkPlotCairoClass   GType gtk_plot_cairo_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcairo.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcairo.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkdirtree.h
Unknown data type:     
  "C"  GType gtk_dir_tree_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkdirtree.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkdirtree.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotgdk.h
Unknown data type:     
  "C"  GType gtk_plot_gdk_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotgdk.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotgdk.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotbox.h
Unknown data type:     
  "C"  GType gtk_plot_box_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotbox.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotbox.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasplot.h
Unknown data type:     
  "C"  GType gtk_plot_canvas_plot_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasplot.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasplot.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvaspixmap.h
Unknown data type:     
  "C"  GType gtk_plot_canvas_pixmap_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvaspixmap.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvaspixmap.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkextra.h
No function to implement in this file


/usr/local/include/gtkextra-3.0/gtkextra/gtkplot.h
Unknown data type:     
  "C"  GType gtk_plot_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplot.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplot.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotpolar.h
Unknown data type:     
  "C"  GType gtk_plot_polar_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotpolar.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotpolar.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotpc.h
Unknown data type:     
  "C"  GType gtk_plot_pc_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotpc.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotpc.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkcharsel.h
Unknown data type:     
  "C"  GType gtk_char_selection_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkcharsel.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkcharsel.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotflux.h
Unknown data type:     
  "C"  GType gtk_plot_flux_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotflux.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotflux.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasrectangle.h
Unknown data type:     
  "C"  GType gtk_plot_canvas_rectangle_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasrectangle.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasrectangle.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkitementry.h
Unknown data type:     
  "C"  GType gtk_item_entry_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkitementry.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkitementry.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Unknown data type:     
  "C" {  const guint gtkextra_major_version;

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Function name not found
  "C" {  const guint gtkextra_major_version;

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Unknown data type:    const guint gtkextra_minor_version
const guint gtkextra_minor_version;

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Function name not found
const guint gtkextra_minor_version;

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Unknown data type:    const guint gtkextra_micro_version
const guint gtkextra_micro_version;

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Function name not found
const guint gtkextra_micro_version;

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Unknown data type:    const guint gtkextra_binary_age
const guint gtkextra_binary_age;

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Function name not found
const guint gtkextra_binary_age;

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Unknown data type:    const guint gtkextra_interface_age
const guint gtkextra_interface_age;

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Function name not found
const guint gtkextra_interface_age;

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkextrafeatures.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkiconfilesel.h
Unknown data type:     
  "C"  GType gtk_icon_file_selection_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkiconfilesel.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkiconfilesel.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotbubble.h
Unknown data type:     
  "C"  GType gtk_plot_bubble_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotbubble.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotbubble.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasellipse.h
Unknown data type:     
  "C"  GType gtk_plot_canvas_ellipse_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasellipse.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasellipse.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkfileicons.h
Function name not found
  static char * exec_xpm[] =  static char * folder_xpm[] =  static char * file_xpm[] =  static char * symlink_xpm[] =  static char * html_xpm[] =  static char*arch_xpm[]=  static char * core_xpm[] =  static char *package_xpm[] =  static char * ps_xpm[] =  static char*sound_xpm[]=  static char * c_xpm[] =  static char * cat_xpm[] =  static char * cpp_xpm[] =  static char * deb_xpm[] =  static char * f_xpm[] =  static char * h_xpm[] =  static char * image_xpm[] =  static char * movie_xpm[] =  static char * pdf_xpm[] =  static char * rpm_xpm[] =  static char * text_xpm[] =  static char * java_xpm[] =  static char * doc_xpm[] =  static char *home_xpm[]=  static char *up_xpm[]=  static char *refresh_xpm[]=

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotarray.h
Unknown data type:     
  "C"  GType gtk_plot_array_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotarray.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotarray.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvas.h
Unknown data type:     
  "C"  GType gtk_plot_canvas_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvas.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvas.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkextraicons.h
Function name not found
  static char *home_xpm[]=  static char *up_xpm[]=  static char *refresh_xpm[]=  static char *cancel_xpm[]=  static char *ok_xpm[]=

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotpixmap.h
Unknown data type:     
  "C"  GType gtk_plot_pixmap_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotpixmap.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotpixmap.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotsegment.h
Unknown data type:     
  "C"  GType gtk_plot_segment_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotsegment.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotsegment.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkcolorcombo.h
Unknown data type:     
  "C"  GType gtk_color_combo_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkcolorcombo.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkcolorcombo.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkfontcombo.h
Unknown data type:     
  "C"  GType gtk_font_combo_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkfontcombo.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkfontcombo.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplot3d.h
Unknown data type:     
  "C"  GType gtk_plot3d_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplot3d.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplot3d.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:     
  "C"  typedef enum   enum   typedef enum   typedef enum   typedef enum   typedef struct _GtkSheet GtkSheet;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
  "C"  typedef enum   enum   typedef enum   typedef enum   typedef enum   typedef struct _GtkSheet GtkSheet;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    typedef struct _GtkSheetClass GtkSheetClass
typedef struct _GtkSheetClass GtkSheetClass;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
typedef struct _GtkSheetClass GtkSheetClass;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    typedef struct _GtkSheetChild GtkSheetChild
typedef struct _GtkSheetChild GtkSheetChild;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
typedef struct _GtkSheetChild GtkSheetChild;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    typedef struct _GtkSheetRow GtkSheetRow
typedef struct _GtkSheetRow GtkSheetRow;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
typedef struct _GtkSheetRow GtkSheetRow;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    typedef struct _GtkSheetColumn GtkSheetColumn
typedef struct _GtkSheetColumn GtkSheetColumn;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
typedef struct _GtkSheetColumn GtkSheetColumn;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    typedef struct _GtkSheetColumnClass GtkSheetColumnClass
typedef struct _GtkSheetColumnClass GtkSheetColumnClass;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
typedef struct _GtkSheetColumnClass GtkSheetColumnClass;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    typedef struct _GtkSheetCell GtkSheetCell
typedef struct _GtkSheetCell GtkSheetCell;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
typedef struct _GtkSheetCell GtkSheetCell;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    typedef struct _GtkSheetRange GtkSheetRange
typedef struct _GtkSheetRange GtkSheetRange;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
typedef struct _GtkSheetRange GtkSheetRange;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    typedef struct _GtkSheetButton GtkSheetButton
typedef struct _GtkSheetButton GtkSheetButton;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
typedef struct _GtkSheetButton GtkSheetButton;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    typedef struct _GtkSheetCellAttr GtkSheetCellAttr
typedef struct _GtkSheetCellAttr GtkSheetCellAttr;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
typedef struct _GtkSheetCellAttr GtkSheetCellAttr;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    typedef struct _GtkSheetCellBorder GtkSheetCellBorder
typedef struct _GtkSheetCellBorder GtkSheetCellBorder;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
typedef struct _GtkSheetCellBorder GtkSheetCellBorder;

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const GType entry_type
 void gtk_sheet_change_entry(GtkSheet *sheet, const GType entry_type);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gboolean editable
void gtk_sheet_set_entry_editable(GtkSheet *sheet, const gboolean editable);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
 gchar *gtk_sheet_column_get_tooltip_markup(GtkSheet *sheet, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
void gtk_sheet_column_set_tooltip_markup(GtkSheet *sheet, const gint col, const gchar *markup);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
gchar *gtk_sheet_column_get_tooltip_text(GtkSheet *sheet, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
void gtk_sheet_column_set_tooltip_text(GtkSheet *sheet, const gint col, const gchar *text);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint row
 gchar *gtk_sheet_row_get_tooltip_markup(GtkSheet *sheet, const gint row);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint row
void gtk_sheet_row_set_tooltip_markup(GtkSheet *sheet, const gint row, const gchar *markup);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint row
gchar *gtk_sheet_row_get_tooltip_text(GtkSheet *sheet, const gint row);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint row
void gtk_sheet_row_set_tooltip_text(GtkSheet *sheet, const gint row, const gchar *text);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint row
 gchar *gtk_sheet_cell_get_tooltip_markup(GtkSheet *sheet, const gint row, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
 gchar *gtk_sheet_cell_get_tooltip_markup(GtkSheet *sheet, const gint row, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint row
void gtk_sheet_cell_set_tooltip_markup(GtkSheet *sheet, const gint row, const gint col, const gchar *markup);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
void gtk_sheet_cell_set_tooltip_markup(GtkSheet *sheet, const gint row, const gint col, const gchar *markup);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint row
gchar *gtk_sheet_cell_get_tooltip_text(GtkSheet *sheet, const gint row, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
gchar *gtk_sheet_cell_get_tooltip_text(GtkSheet *sheet, const gint row, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint row
void gtk_sheet_cell_set_tooltip_text(GtkSheet *sheet, const gint row, const gint col, const gchar *text);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
void gtk_sheet_cell_set_tooltip_text(GtkSheet *sheet, const gint row, const gint col, const gchar *text);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
 gboolean gtk_sheet_column_get_iskey(GtkSheet *sheet, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
void gtk_sheet_column_set_iskey(GtkSheet *sheet, const gint col, const gboolean is_key);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gboolean is_key
void gtk_sheet_column_set_iskey(GtkSheet *sheet, const gint col, const gboolean is_key);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
gboolean gtk_sheet_column_get_readonly(GtkSheet *sheet, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
void gtk_sheet_column_set_readonly(GtkSheet *sheet, const gint col, const gboolean is_readonly);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gboolean is_readonly
void gtk_sheet_column_set_readonly(GtkSheet *sheet, const gint col, const gboolean is_readonly);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
gchar *gtk_sheet_column_get_format(GtkSheet *sheet, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
void gtk_sheet_column_set_format(GtkSheet *sheet, const gint col, const gchar *format);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
GtkSheetDataType gtk_sheet_column_get_datatype(GtkSheet *sheet, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
void gtk_sheet_column_set_datatype(GtkSheet *sheet, const gint col, const GtkSheetDataType data_type);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const GtkSheetDataType data_type
void gtk_sheet_column_set_datatype(GtkSheet *sheet, const gint col, const GtkSheetDataType data_type);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
gchar *gtk_sheet_column_get_description(GtkSheet *sheet, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
void gtk_sheet_column_set_description(GtkSheet *sheet, const gint col, const gchar *description);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
GType gtk_sheet_column_get_entry_type(GtkSheet *sheet, const gint col);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint col
void gtk_sheet_column_set_entry_type(GtkSheet *sheet, const gint col, const GType entry_type);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const GType entry_type
void gtk_sheet_column_set_entry_type(GtkSheet *sheet, const gint col, const GType entry_type);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:    const gint gtk_sheet_get_column_width 
const gint gtk_sheet_get_column_width (GtkSheet * sheet, gint column);

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtksheet.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotbar.h
Unknown data type:     
  "C"  GType gtk_plot_bar_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotbar.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotbar.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkcombobutton.h
Unknown data type:     
  "C"  GType gtk_combo_button_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkcombobutton.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkcombobutton.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcsurface.h
Unknown data type:     
  "C"  GType gtk_plot_csurface_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcsurface.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcsurface.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtktogglecombo.h
Unknown data type:     
  "C"  GType gtk_toggle_combo_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtktogglecombo.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtktogglecombo.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasline.h
Unknown data type:     
  "C"  GType gtk_plot_canvas_line_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasline.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvasline.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkcheckitem.h
Unknown data type:     
  "C"  GType gtk_check_item_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkcheckitem.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkcheckitem.h
Function name not found
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvastext.h
Unknown data type:     
  "C"  GType gtk_plot_canvas_text_get_type (void);

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvastext.h
Unknown data type:     
 }

/usr/local/include/gtkextra-3.0/gtkextra/gtkplotcanvastext.h
Function name not found
 }
@bonanza
Collaborator

Finally, I got a working GtkExtra simple plot example (where should I commit that?) after changing the GtkExtra types in cfwrapper.py to:

    "gboolean":("integer(c_int)","c_int"),
    "gdouble":("real(c_double)","c_double"),
    "gint":("integer(c_int)","c_int"), 
    "gfloat":("real(c_float)","c_float"),
    "GdkCapStyle":("integer(c_int)","c_int"),
    "GdkColor":("type(c_ptr)","c_ptr"),
    "GdkJoinStyle":("integer(c_int)","c_int"),
    "GtkAllocation":("type(c_ptr)","c_ptr"),
    "GtkJustification":("integer(c_int)","c_int"),
    "GtkOrientation":("type(c_ptr)","c_ptr"),
    "GtkPlotDTnode":("type(c_ptr)","c_ptr"),
    "GtkPlotLine":("type(c_ptr)","c_ptr"),
    "GtkPlotText":("type(c_ptr)","c_ptr"),
    "GtkSelectionMode":("type(c_ptr)","c_ptr"),
    "GtkSheetDataType":("type(c_ptr)","c_ptr"),
    "GtkSheetState":("type(c_ptr)","c_ptr"),
    "GtkSheetVerticalJustification":("type(c_ptr)","c_ptr"),
    "GtkSignalFunc":("type(c_ptr)","c_ptr"),
    "GdkLineStyle":("type(c_ptr)","c_ptr"),
    "GtkStateType":("type(c_ptr)","c_ptr")

and applying the following patch (@ Vincent: Is ist possible to handle this in cfwrapper.py?):

@@ -555,10 +555,10 @@
 
 !  void gtk_plot_data_set_points (GtkPlotData *data, gdouble *x, gdouble *y, gdouble *dx, gdouble *dy, gint num_points);
 subroutine gtk_plot_data_set_points(data, x, y, dx, dy, num_points) bind(c) 
-  use iso_c_binding, only: c_ptr, c_int
+  use iso_c_binding, only: c_ptr, c_int,c_double
   type(c_ptr), value :: data
-  type(c_ptr), value :: x
-  type(c_ptr), value :: y
+  real(c_double), dimension(*):: x
+  real(c_double), dimension(*):: y
   type(c_ptr), value :: dx
   type(c_ptr), value :: dy
   integer(c_int), value :: num_points
@@ -1898,10 +1898,10 @@
 end function
 
 ! GtkPlotCanvasChild * gtk_plot_canvas_pixmap_new(GdkPixmap *_pixmap, GdkBitmap *mask);
-function gtk_plot_canvas_pixmap_new(_pixmap, mask) bind(c) 
+function gtk_plot_canvas_pixmap_new(pixmap, mask) bind(c) 
   use iso_c_binding, only: c_ptr
   type(c_ptr) :: gtk_plot_canvas_pixmap_new
-  type(c_ptr), value :: _pixmap
+  type(c_ptr), value :: pixmap
   type(c_ptr), value :: mask
 end function

@jtappin
Collaborator

The c_ptr vs. arrays issue can be tricky -- in C as far as I know there's no way to distinguish from the prototype between passing an array and passing a scalar by reference, with a c_ptr it is at least possible to use c_loc(x) for the appropriate type. I'm pretty sure I remember some get size routines that are subroutines with 2 scalar arguments passed by address to return the x & y sizes.

On another point with gtk extra, I've asked on the gtkextra mailing list if there are any plans to make a Gtk+-3 version (even though the new version calls itself V3.0, it's clearly still based on Gtk+2 as it includes (at least) GdkPixmaps).

@vmagnin
Collaborator

Yes, concerning pointers toward arrays the script can not decide himself. I think that in GTK+, arrays are generally passed as dummy arguments:

void gtk_curve_get_vector (GtkCurve *curve, int veclen, gfloat vector[]);

Concerning names beginning with an underscore, like _pixmap, they are not allowed in Fortran. I think you can try to add just after line 513, which is:

var_name = RGX_VAR_NAME.search(arg).group(1)

this line:

var_name = var_name.lstrip("_")

Concerning where to commit things concerning gtk_extra, I do not know if it should be commited in src or in a new directory. To discuss. What I can say is that I don't think we could have only one cfwrapper.py script working for all libraries because each library code is written with its own style. So regular expressions would be very difficult to tune and we would have to deal with a lot of peculiarities. And I think cfwrapper.py is already a mess ;-) [I think I will try to improve its structure this summer].

@jtappin
Collaborator

Equally we have:

void                gtk_widget_get_size_request         (GtkWidget *widget,
                                                     gint *width,
                                                     gint *height);

which is returning 2 scalars.

I think that the graphics stuff should have its own directory (or directories) because both approaches (gtk_extra and plplot) require extra libraries to be installed and not all potential user will need the graphics, and keeping them separate will make it easier to build and install them as needed.

@bonanza
Collaborator

I agree to use a separate graphics directory - this makes sense.
My suggestion is to have a "graphics" directory with subdirectories "plplot" and "gtk_extra".

Concerning GtkExtra and GTK+3 I found a comment by Roy Rankin (http://blog.gmane.org/gmane.comp.scigraphica.gtkextra ):
"In case you are not aware, there is a branch in the gtkextra CVS called
gtkexta-3. New development is taking place in this branch with the aim
of this branch working with gtk3 (currently 2.90). Currently this branch
works with gtk2 up to and including 2.20.

One of the changes from gtk2 to gtk3 is the dropping of the depreciated
interfaces. Unfortunately Gtkextra heavily uses these interfaces. I have
been working for about a week to removing the depreciated interfaces in
my copy of the gtkextra-3 tree. I expect it will take several more weeks
before I have a consistent tree that I can commit to the CVS archive."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.