python-gtkextra-commits Mailing List for GtkExtra Python Language Bindings (Page 2)
Status: Beta
Brought to you by:
treeves
You can subscribe to this list here.
2002 |
Jan
(13) |
Feb
(7) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(13) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(9) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(18) |
Feb
|
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2004 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <pyt...@li...> - 2003-01-09 13:16:10
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/examples In directory sc8-pr-cvs1:/tmp/cvs-serv16338/examples Modified Files: test.sh Log Message: include test.sh in dist Index: test.sh =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/test.sh,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** test.sh 24 Dec 2002 18:49:10 -0000 1.3 --- test.sh 9 Jan 2003 13:16:07 -0000 1.4 *************** *** 10,14 **** fi - #export PYTHONPATH=../:../gtkextra/:$PYTHONPATH export PYTHONPATH=../:$PYTHONPATH --- 10,13 ---- |
From: <pyt...@li...> - 2003-01-09 13:16:10
|
Update of /cvsroot/python-gtkextra/python-gtkextra2 In directory sc8-pr-cvs1:/tmp/cvs-serv16338 Modified Files: Makefile.am Log Message: include test.sh in dist Index: Makefile.am =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 7 Jan 2003 17:06:06 -0000 1.2 --- Makefile.am 9 Jan 2003 13:16:07 -0000 1.3 *************** *** 14,17 **** --- 14,18 ---- python-gtkextra.spec.in \ python-gtkextra.pc.in \ + examples/test.sh \ examples/icons.py \ examples/pixmaps.py \ |
From: <pyt...@li...> - 2003-01-09 13:10:53
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/gtkextra In directory sc8-pr-cvs1:/tmp/cvs-serv13845/gtkextra Modified Files: gtkextramodule.c Log Message: fixed warning Index: gtkextramodule.c =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextramodule.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** gtkextramodule.c 7 Jan 2003 17:06:21 -0000 1.6 --- gtkextramodule.c 9 Jan 2003 13:10:50 -0000 1.7 *************** *** 18,22 **** init_gtkextra(void) { ! PyObject *m, *d, *module; m = Py_InitModule("gtkextra._gtkextra", pygtkextra_functions); --- 18,22 ---- init_gtkextra(void) { ! PyObject *m, *d; m = Py_InitModule("gtkextra._gtkextra", pygtkextra_functions); |
From: <pyt...@li...> - 2003-01-07 17:07:01
|
Update of /cvsroot/python-gtkextra/python-gtkextra2 In directory sc8-pr-cvs1:/tmp/cvs-serv31396 Modified Files: Makefile.am configure.in python-gtkextra.spec.in Log Message: install and rpms fixes. cleanups Index: Makefile.am =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/Makefile.am,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Makefile.am 10 Jul 2002 19:06:49 -0000 1.1.1.1 --- Makefile.am 7 Jan 2003 17:06:06 -0000 1.2 *************** *** 10,19 **** pkgconfig_DATA = python-gtkextra.pc - noinst_PYTHON = ltihooks.py - EXTRA_DIST += \ python-gtkextra.spec \ python-gtkextra.spec.in \ ! python-gtkextra-2.0.pc.in snap: --- 10,34 ---- pkgconfig_DATA = python-gtkextra.pc EXTRA_DIST += \ python-gtkextra.spec \ python-gtkextra.spec.in \ ! python-gtkextra.pc.in \ ! examples/icons.py \ ! examples/pixmaps.py \ ! examples/testboxes.py \ ! examples/testbubbles.py \ ! examples/testcharsel.py \ ! examples/testcontour.py \ ! examples/testflux.py \ ! examples/testgtkfilesel.py \ ! examples/testgtkfont.py \ ! examples/testgtkiconlist.py \ ! examples/testgtkplot3d.py \ ! examples/testgtkplot.py \ ! examples/testgtksheet.py \ ! examples/testiterator.py \ ! examples/testpixmap.py \ ! examples/testpolar.py \ ! examples/testrealtime.py snap: Index: configure.in =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/configure.in,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** configure.in 30 Dec 2002 20:42:12 -0000 1.3 --- configure.in 7 Jan 2003 17:06:11 -0000 1.4 *************** *** 4,9 **** dnl the python-gtkextra version number m4_define(python_gtkextra_major_version, 1) ! m4_define(python_gtkextra_minor_version, 99) ! m4_define(python_gtkextra_micro_version, 8) m4_define(python_gtkextra_version, python_gtkextra_major_version.python_gtkextra_minor_version.python_gtkextra_micro_version) --- 4,9 ---- dnl the python-gtkextra version number m4_define(python_gtkextra_major_version, 1) ! m4_define(python_gtkextra_minor_version, 1) ! m4_define(python_gtkextra_micro_version, 0) m4_define(python_gtkextra_version, python_gtkextra_major_version.python_gtkextra_minor_version.python_gtkextra_micro_version) Index: python-gtkextra.spec.in =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/python-gtkextra.spec.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** python-gtkextra.spec.in 10 Jul 2002 19:06:50 -0000 1.1.1.1 --- python-gtkextra.spec.in 7 Jan 2003 17:06:16 -0000 1.2 *************** *** 1,70 **** ! %define buildglade %(pkg-config libglade-2.0 && echo 1 || echo 0) ! ! Summary: Python bindings for the GTK+ widget set. ! Name: pygtk2 Version: @VERSION@ ! Release: 3 Copyright: LGPL Group: Development/Languages ! Source: ftp://ftp.gtk.org/pub/gtk/python/pygtk-%{version}.tar.gz ! BuildRoot: /var/tmp/pygtk-root ! Packager: James Henstridge <ja...@da...> Requires: gtk2 >= 1.3.9 ! Requires: python2 >= 2.2 ! Buildrequires: python2-devel >= 2.2 ! Buildrequires: libglade2-devel %description ! PyGTK is an extension module for python that gives you access to the GTK+ ! widget set. Just about anything you can write in C with GTK+ you can write ! in python with PyGTK (within reason), but with all the benefits of python. ! ! %package libglade ! Summary: A wrapper for the libglade library for use with PyGTK ! Group: Development/Languages ! Requires: pygtk2 = %{version} ! ! %description libglade ! This module contains a wrapper for the libglade library. Libglade allows ! a program to construct its user interface from an XML description, which ! allows the programmer to keep the UI and program logic separate. %package devel ! Summary: files needed to build wrappers for GTK+ addon libraries Group: Development/Languages ! Requires: pygtk2 = %{version} %description devel ! This package contains files required to build wrappers for GTK+ addon ! libraries so that they interoperate with pygtk. ! ! %changelog ! * Wed Apr 3 2002 Matt Wilson <ms...@re...> ! - new CVS snapshot to fix libglade. ! ! * Mon Mar 11 2002 Tim Powers <ti...@re...> ! - rebuild ! ! * Wed Feb 27 2002 Matt Wilson <ms...@re...> ! - 1.99.8 ! ! * Mon Jan 28 2002 Matt Wilson <ms...@re...> ! - added atkmodule.so to file list ! ! * Thu Oct 18 2001 Matt Wilson <ms...@re...> ! - fix devel filelist to match new header location ! ! * Mon Oct 15 2001 Matt Wilson <ms...@re...> ! - get the headers from their new version-specific location ! ! * Thu Oct 11 2001 Matt Wilson <ms...@re...> ! - fixed typo in devel filelist ! - added macro that tests to see if we have libglade2, make the ! filelist a condition of that ! - changed name to 'pygtk2' to avoid name conflict with pygtk %prep ! %setup -q -n pygtk-%{version} ! [ -x /usr/bin/python2.2 ] && export PYTHON=/usr/bin/python2.2 ./configure --prefix=%{_prefix} --- 1,33 ---- ! Summary: Python bindings for the Gtk+Extra widget set. ! Name: python-gtkextra2 Version: @VERSION@ ! Release: 1 Copyright: LGPL Group: Development/Languages ! Source: ftp://ftp.nowhere.org/pub/gtk/python/python-gtkextra-%{version}.tar.gz ! BuildRoot: /var/tmp/python-gtkextra-root Requires: gtk2 >= 1.3.9 ! Requires: python >= 2.2 ! Requires: pygtk2 >= 1.99.13 ! Requires: gtk+extra2 >= 1.1 ! Buildrequires: python-devel >= 2.2 ! Buildrequires: pygtk2-devel >= 1.99.13 ! Buildrequires: gtk+extra2-devel >= 1.1 %description ! Python-gtkextra is an extension module for python that gives you access to ! the Gtk+Extra widget set. %package devel ! Summary: files needed to build wrappers for python-gtkextra addon libraries Group: Development/Languages ! Requires: python-gtkextra2 = %{version} %description devel ! This package containes files needed to build wrappers for python-gtkextra ! addon libraries so that they interoperate with python-gtkextra. %prep ! %setup -q -n python-gtkextra-%{version} ./configure --prefix=%{_prefix} *************** *** 78,120 **** %files %defattr(644, root, root, 755) ! %dir %{_prefix}/lib/python?.?/site-packages/gtk ! %{_prefix}/lib/python?.?/site-packages/gtk/__init__.py* ! %{_prefix}/lib/python?.?/site-packages/gtk/keysyms.py* %defattr(755, root, root, 755) ! %{_prefix}/lib/python?.?/site-packages/atkmodule.so ! %{_prefix}/lib/python?.?/site-packages/gobjectmodule.so ! %{_prefix}/lib/python?.?/site-packages/pangomodule.so ! %{_prefix}/lib/python?.?/site-packages/gtk/_gtkmodule.so ! %doc AUTHORS NEWS README MAPPING ChangeLog %doc examples - %if %{buildglade} - %files libglade - %defattr(755, root, root, 755) - %{_prefix}/lib/python?.?/site-packages/gtk/glademodule.so - %endif - %files devel %defattr(755, root, root, 755) ! %{_prefix}/bin/pygtk-codegen-2.0 ! %defattr(644, root, root, 755) ! %dir %{_prefix}/include/pygtk-2.0 ! %{_prefix}/include/pygtk-2.0/*.h ! %dir %{_prefix}/include/pygtk-2.0/pygtk ! %{_prefix}/include/pygtk-2.0/pygtk/*.h ! %{_prefix}/lib/pkgconfig/pygtk-2.0.pc ! %dir %{_prefix}/share/pygtk ! %dir %{_prefix}/share/pygtk/2.0 ! %dir %{_prefix}/share/pygtk/2.0/codegen %dir %{_prefix}/share/pygtk/2.0/defs ! %{_prefix}/share/pygtk/2.0/codegen/* ! %{_prefix}/share/pygtk/2.0/defs/pango.defs ! %{_prefix}/share/pygtk/2.0/defs/pango-types.defs ! %{_prefix}/share/pygtk/2.0/defs/gdk.defs ! %{_prefix}/share/pygtk/2.0/defs/gdk-types.defs ! %{_prefix}/share/pygtk/2.0/defs/gtk.defs ! %{_prefix}/share/pygtk/2.0/defs/gtk-types.defs ! %{_prefix}/share/pygtk/2.0/defs/gtk-extrafuncs.defs ! %{_prefix}/share/pygtk/2.0/defs/libglade.defs --- 41,62 ---- %files %defattr(644, root, root, 755) ! %dir %{_prefix}/lib/python?.?/site-packages/gtkextra ! %{_prefix}/lib/python?.?/site-packages/gtkextra/*.py* %defattr(755, root, root, 755) ! %{_prefix}/lib/python?.?/site-packages/gtkextra/_gtkextramodule.so ! %doc AUTHORS NEWS README ChangeLog %doc examples %files devel %defattr(755, root, root, 755) ! %{_prefix}/lib/pkgconfig/python-gtkextra.pc ! %{_prefix}/lib/python?.?/site-packages/gtkextra/_gtkextramodule.la %dir %{_prefix}/share/pygtk/2.0/defs ! %{_prefix}/share/pygtk/2.0/defs/gtkextra.defs ! %{_prefix}/share/pygtk/2.0/defs/gtkextra-types.defs ! %{_prefix}/share/pygtk/2.0/defs/gtkextra-addons.defs ! ! ! |
From: <pyt...@li...> - 2003-01-07 17:07:01
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/gtkextra In directory sc8-pr-cvs1:/tmp/cvs-serv31396/gtkextra Modified Files: Makefile.am gtkextramodule.c Log Message: install and rpms fixes. cleanups Index: Makefile.am =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/Makefile.am,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Makefile.am 30 Dec 2002 20:42:13 -0000 1.6 --- Makefile.am 7 Jan 2003 17:06:19 -0000 1.7 *************** *** 4,13 **** _config.py pygtkextraexecdir = $(pyexecdir)/gtkextra # FIXME: Do we want to drop files in the pygtk directory or in our own pkg directory defsdir = $(PYGTK_DEFSDIR) ! defs_DATA = ! EXTRA_DIST = $(defs_DATA) CLEANFILES = --- 4,20 ---- _config.py + EXTRA_DIST = \ + mycodegen.py + pygtkextraexecdir = $(pyexecdir)/gtkextra # FIXME: Do we want to drop files in the pygtk directory or in our own pkg directory defsdir = $(PYGTK_DEFSDIR) ! defs_DATA = \ ! gtkextra.defs \ ! gtkextra-types.defs \ ! gtkextra-addons.defs ! ! EXTRA_DIST += $(defs_DATA) CLEANFILES = *************** *** 15,19 **** pkginclude_HEADERS = ! INCLUDES = -I$(top_srcdir) $(PYTHON_INCLUDES) -Wall #COMMONDEFS = $(srcdir)/gtkextra-types.defs COMMONDEFS = --- 22,26 ---- pkginclude_HEADERS = ! INCLUDES = -I$(top_srcdir) $(PYTHON_INCLUDES) #COMMONDEFS = $(srcdir)/gtkextra-types.defs COMMONDEFS = *************** *** 22,26 **** pygtkextraexec_LTLIBRARIES = _gtkextramodule.la _gtkextramodule_la_CFLAGS = $(PYGTK_CFLAGS) $(GTK_CFLAGS) $(GTKEXTRA_CFLAGS) ! _gtkextramodule_la_LDFLAGS = -module -avoid-version -export-symbols-regex initgtkextra _gtkextramodule_la_LIBADD = $(GTKEXTRA_LIBS) $(PYGTK_LIBS) $(GTK_LIBS) _gtkextramodule_la_SOURCES = gtkextramodule.c --- 29,33 ---- pygtkextraexec_LTLIBRARIES = _gtkextramodule.la _gtkextramodule_la_CFLAGS = $(PYGTK_CFLAGS) $(GTK_CFLAGS) $(GTKEXTRA_CFLAGS) ! _gtkextramodule_la_LDFLAGS = -module -avoid-version -export-symbols-regex init_gtkextra _gtkextramodule_la_LIBADD = $(GTKEXTRA_LIBS) $(PYGTK_LIBS) $(GTK_LIBS) _gtkextramodule_la_SOURCES = gtkextramodule.c Index: gtkextramodule.c =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextramodule.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** gtkextramodule.c 24 Dec 2002 18:49:10 -0000 1.5 --- gtkextramodule.c 7 Jan 2003 17:06:21 -0000 1.6 *************** *** 15,20 **** extern PyMethodDef pygtkextra_functions[]; - PyTypeObject *_PyArray_Type; - DL_EXPORT(void) init_gtkextra(void) --- 15,18 ---- *************** *** 46,60 **** PyModule_AddIntConstant(m, "ICON_LIST_TEXT_RIGHT", GTK_ICON_LIST_TEXT_RIGHT); PyModule_AddIntConstant(m, "ICON_LIST_TEXT_BELOW", GTK_ICON_LIST_TEXT_BELOW); - - - if ((module = PyImport_ImportModule("array")) != NULL) { - PyObject *moddict = PyModule_GetDict(module); - _PyArray_Type = (PyTypeObject *)PyDict_GetItemString(moddict, "ArrayType"); - } - else { - Py_FatalError("could not import array"); - return; - } - if (PyErr_Occurred()) --- 44,47 ---- |
From: <pyt...@li...> - 2003-01-02 22:01:38
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/examples In directory sc8-pr-cvs1:/tmp/cvs-serv32495/examples Modified Files: testboxes.py testbubbles.py testcontour.py testflux.py testgtkfont.py testgtkplot.py testgtkplot3d.py testgtksheet.py testpixmap.py testpolar.py Log Message: lots Index: testboxes.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testboxes.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** testboxes.py 22 Jul 2002 13:06:54 -0000 1.3 --- testboxes.py 2 Jan 2003 22:00:42 -0000 1.4 *************** *** 6,14 **** def __init__(self): - self.hack = [] gtk.Window.__init__(self) self.set_title("GtkPlotBox Demo") self.set_size_request(550, 360) - self.connect("destroy", self.quit) scrollwin = gtk.ScrolledWindow() --- 6,12 ---- *************** *** 55,65 **** data.set_line_attributes(gtkextra.PLOT_LINE_NONE, 0, 0, 1, red) data.set_legend("Boxes") - self.hack.append(data) #FIXME - - def quit(self, *args): - gtk.main_quit() if __name__ == '__main__': app = Application() gtk.main() --- 53,60 ---- data.set_line_attributes(gtkextra.PLOT_LINE_NONE, 0, 0, 1, red) data.set_legend("Boxes") if __name__ == '__main__': app = Application() + app.connect("destroy", lambda win : gtk.main_quit()) gtk.main() Index: testbubbles.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testbubbles.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testbubbles.py 10 Jul 2002 19:06:52 -0000 1.1.1.1 --- testbubbles.py 2 Jan 2003 22:00:43 -0000 1.2 *************** *** 1,33 **** #!/usr/bin/env python ! from gtk import * ! from gtkextra import * ! class Application(GtkWindow): def __init__(self): ! GtkWindow.__init__(self, title="Bubbles Demo") ! self.set_usize(550, 650) ! self.connect("destroy", mainquit) colormap = self.get_colormap() ! blue = colormap.alloc("blue") ! scrollwin = GtkScrolledWindow() ! scrollwin.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = GtkPlotCanvas(PLOT_LETTER_W, PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) ! plot = GtkPlot(width=0.5, height=0.25) plot.legends_move(0.05, 0.05) plot.set_legends_border(0, 0) ! plot.axis_hide_title(PLOT_AXIS_TOP) ! plot.axis_show_ticks(PLOT_AXIS_BOTTOM, 15, 3) ! plot.axis_set_visible(PLOT_AXIS_TOP, TRUE) ! plot.axis_set_visible(PLOT_AXIS_RIGHT, TRUE) ! plot.grids_set_visible(TRUE, TRUE, TRUE, TRUE) canvas.add_plot(plot, 0.15, 0.06) --- 1,34 ---- #!/usr/bin/env python ! import gtk ! import gtkextra ! class Application(gtk.Window): def __init__(self): ! gtk.Window.__init__(self) ! self.set_title("Bubbles Demo") ! self.set_size_request(550, 650) ! self.connect("destroy", lambda win : gtk.main_quit()) colormap = self.get_colormap() ! blue = colormap.alloc_color("blue") ! scrollwin = gtk.ScrolledWindow() ! scrollwin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = gtkextra.PlotCanvas(gtkextra.PLOT_LETTER_W, gtkextra.PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(gtkextra.PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) ! plot = gtkextra.Plot(width=0.5, height=0.25) plot.legends_move(0.05, 0.05) plot.set_legends_border(0, 0) ! plot.axis_hide_title(gtkextra.PLOT_AXIS_TOP) ! plot.axis_show_ticks(gtkextra.PLOT_AXIS_BOTTOM, 15, 3) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_TOP, gtk.TRUE) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_RIGHT, gtk.TRUE) ! plot.grids_set_visible(gtk.TRUE, gtk.TRUE, gtk.TRUE, gtk.TRUE) canvas.add_plot(plot, 0.15, 0.06) *************** *** 37,56 **** pda1 = [.132, .23, .432, .34, .46, .56, .785, .76, .86, .89] ! data = GtkPlotData() ! data.set_points(px1, py1) ! data.set_a(pa1) ! data.set_da(pda1) ! data.set_symbol(PLOT_SYMBOL_CIRCLE, PLOT_SYMBOL_OPAQUE, 10, 2, blue) ! data.set_line_attributes(PLOT_LINE_NONE, 1, blue) data.set_legend("Bubbles") ! data.gradient_set_visible(TRUE) plot.add_data(data) self.show_all() - def mainloop(self): - mainloop() - if __name__ == '__main__': app = Application() ! app.mainloop() --- 38,52 ---- pda1 = [.132, .23, .432, .34, .46, .56, .785, .76, .86, .89] ! data = gtkextra.PlotData() ! data.set_points(x=px1, y=py1, a=pa1, da=pda1) ! data.set_symbol(gtkextra.PLOT_SYMBOL_CIRCLE, gtkextra.PLOT_SYMBOL_OPAQUE, 10, 2, blue, blue) ! data.set_line_attributes(gtkextra.PLOT_LINE_NONE, 0, 0, 1, blue) data.set_legend("Bubbles") ! data.gradient_set_visible(gtk.TRUE) plot.add_data(data) self.show_all() if __name__ == '__main__': app = Application() ! gtk.main() Index: testcontour.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testcontour.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testcontour.py 10 Jul 2002 19:06:52 -0000 1.1.1.1 --- testcontour.py 2 Jan 2003 22:00:45 -0000 1.2 *************** *** 1,51 **** #!/usr/bin/env python ! from gtk import * ! from gtkextra import * from math import cos ! class Application(GtkWindow): def __init__(self): ! GtkWindow.__init__(self, title="Contour Demo") ! self.set_usize(550, 600) ! self.connect("destroy", mainquit) ! scrollwin = GtkScrolledWindow() ! scrollwin.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = GtkPlotCanvas(PLOT_LETTER_W, PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) ! plot = GtkPlot3D(width=0.5, height=0.5) ! plot.axis_set_minor_ticks(PLOT_AXIS_X, 3) ! plot.axis_set_minor_ticks(PLOT_AXIS_Y, 3) ! plot.minor_grids_set_visible(FALSE, FALSE, FALSE) canvas.add_plot(plot, 0.16, 0.02) ! surface = GtkPlotCSurface(self.function) ! surface.set_xstep(0.025) ! surface.set_ystep(0.025) surface.set_legend("cos ((r-r\\s0\\N)\\S2\\N)") ! surface.set_gradient(0.2, 0.8, 6, 3) ! surface.set_lines_visible(FALSE) plot.add_data(surface) ! plot = GtkPlot(width=0.4, height=0.4) ! plot.axis_set_minor_ticks(PLOT_AXIS_X, 1) ! plot.axis_set_minor_ticks(PLOT_AXIS_Y, 1) canvas.add_plot(plot, 0.26, 0.56) ! surface = GtkPlotCSurface(self.function) ! surface.set_xstep(0.025) ! surface.set_ystep(0.025) surface.set_legend("cos ((r-r\\s0\\N)\\S2\\N)") ! surface.set_gradient(0.2, 0.8, 6, 0) ! surface.set_grid_visible(FALSE) ! surface.set_lines_only(TRUE) plot.add_data(surface) ! self.show_all() --- 1,56 ---- #!/usr/bin/env python ! import gtk ! import gtkextra from math import cos ! class Application(gtk.Window): def __init__(self): ! gtk.Window.__init__(self) ! self.set_title("Contour Demo") ! self.set_size_request(550, 600) ! scale = 1.0 ! scrollwin = gtk.ScrolledWindow() ! scrollwin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = gtkextra.PlotCanvas(gtkextra.PLOT_LETTER_W * scale, gtkextra.PLOT_LETTER_H * scale) ! canvas.plot_canvas_set_flags(gtkextra.PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) ! plot = gtkextra.Plot3D(width=0.5, height=0.5) ! plot.axis_set_minor_ticks(gtkextra.PLOT_AXIS_X, 3) ! plot.axis_set_minor_ticks(gtkextra.PLOT_AXIS_Y, 3) ! plot.minor_grids_set_visible(gtk.FALSE, gtk.FALSE, gtk.FALSE) canvas.add_plot(plot, 0.16, 0.02) ! surface = gtkextra.PlotCSurface(self.function) ! surface.set_xstep(0.05) ! surface.set_ystep(0.05) surface.set_legend("cos ((r-r\\s0\\N)\\S2\\N)") ! surface.set_gradient(0.2, 0.8, 6, 1) ! surface.set_lines_visible(gtk.FALSE) ! surface.set_transparent(gtk.FALSE) plot.add_data(surface) ! plot = gtkextra.Plot(width=0.4, height=0.4) ! plot.axis_set_minor_ticks(gtkextra.PLOT_AXIS_X, 1) ! plot.axis_set_minor_ticks(gtkextra.PLOT_AXIS_Y, 1) canvas.add_plot(plot, 0.26, 0.56) ! surface = gtkextra.PlotCSurface(self.function) ! surface.set_xstep(0.10) ! surface.set_ystep(0.10) surface.set_legend("cos ((r-r\\s0\\N)\\S2\\N)") ! surface.set_gradient(0.2, 0.8, 6, 1) ! surface.set_grid_visible(gtk.FALSE) ! surface.set_transparent(gtk.FALSE) ! surface.set_projection(gtkextra.PLOT_PROJECT_FULL) plot.add_data(surface) ! ! canvas.export_ps("democsurface.ps", 0, 0, gtkextra.PLOT_LETTER) ! canvas.export_ps("democsurface.ps", 0, 0, gtkextra.PLOT_LETTER) self.show_all() *************** *** 54,61 **** / 3.0 + 0.5 - def mainloop(self): - mainloop() - if __name__ == '__main__': app = Application() ! app.mainloop() --- 59,64 ---- / 3.0 + 0.5 if __name__ == '__main__': app = Application() ! app.connect("destroy", lambda win : gtk.main_quit()) ! gtk.main() Index: testflux.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testflux.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** testflux.py 16 Jul 2002 17:05:14 -0000 1.2 --- testflux.py 2 Jan 2003 22:00:46 -0000 1.3 *************** *** 6,14 **** def __init__(self): - self.hack = [] gtk.Window.__init__(self) self.set_title("GtkPlotFlux Demo") self.set_size_request(550, 340) - self.connect("destroy", self.quit) colormap = self.get_colormap() --- 6,12 ---- *************** *** 50,54 **** data.set_legend("Flux") plot.add_data(data) - self.hack.append(data) self.show_all() --- 48,51 ---- *************** *** 61,68 **** return gtk.TRUE - def quit(self, *args): - gtk.main_quit() - if __name__ == '__main__': app = Application() gtk.main() --- 58,63 ---- return gtk.TRUE if __name__ == '__main__': app = Application() + app.connect("destroy", lambda win : gtk.main_quit()) gtk.main() Index: testgtkfont.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkfont.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testgtkfont.py 10 Jul 2002 19:06:52 -0000 1.1.1.1 --- testgtkfont.py 2 Jan 2003 22:00:47 -0000 1.2 *************** *** 1,22 **** #!/usr/bin/env python ! from gtk import * ! from gtkextra import * PREVIEW_TEXT = "ABCDEFGHI abcdefghi 0123456789" ! class Application(GtkWindow): def __init__(self): ! GtkWindow.__init__(self, title="GtkFontCombo Demo") ! self.connect("destroy", mainquit) ! vbox = GtkVBox() self.add(vbox) ! font_combo = GtkFontCombo() ! vbox.pack_start(font_combo, FALSE, FALSE) ! preview_entry = GtkEntry() preview_entry.set_text(PREVIEW_TEXT) vbox.pack_start(preview_entry) --- 1,22 ---- #!/usr/bin/env python ! import gtk ! import gtkextra PREVIEW_TEXT = "ABCDEFGHI abcdefghi 0123456789" ! class Application(gtk.Window): def __init__(self): ! gtk.Window.__init__(self) ! self.set_title("GtkFontCombo Demo") ! vbox = gtk.VBox() self.add(vbox) ! font_combo = gtkextra.FontCombo() ! vbox.pack_start(font_combo, gtk.FALSE, gtk.FALSE) ! preview_entry = gtk.Entry() preview_entry.set_text(PREVIEW_TEXT) vbox.pack_start(preview_entry) *************** *** 28,42 **** def new_font(self, font_combo, preview_entry, *args): ! style = preview_entry.get_style().copy() ! style.font = font_combo.font ! preview_entry.set_style(style) if not preview_entry.get_text(): preview_entry.set_text(PREVIEW_TEXT) preview_entry.set_position(0) - def mainloop(self): - mainloop() - if __name__ == '__main__': app = Application() ! app.mainloop() --- 28,46 ---- def new_font(self, font_combo, preview_entry, *args): ! if 0: ! # The C example is as follows: ! # But pygtk2 style does not allow setting font_desc. ! style = preview_entry.get_style().copy() ! style.font_desc = font_combo.get_font_description() ! preview_entry.set_style(style) ! else: ! #This works though. ! preview_entry.modify_font(font_combo.get_font_description()) if not preview_entry.get_text(): preview_entry.set_text(PREVIEW_TEXT) preview_entry.set_position(0) if __name__ == '__main__': app = Application() ! app.connect("destroy", lambda win : gtk.main_quit()) ! gtk.main() Index: testgtkplot.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkplot.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** testgtkplot.py 31 Dec 2002 18:04:18 -0000 1.7 --- testgtkplot.py 2 Jan 2003 22:00:47 -0000 1.8 *************** *** 21,25 **** self.set_title("GtkPlot Demo") self.set_size_request(550, 650) - self.connect("destroy", self.quit) scrollwin = gtk.ScrolledWindow() --- 21,24 ---- *************** *** 234,242 **** except: return None - def quit(self, *args): - gtk.main_quit() if __name__ == '__main__': app = Application() gtk.main() --- 233,240 ---- except: return None if __name__ == '__main__': app = Application() + app.connect("destroy", lambda win : gtk.main_quit()) gtk.main() Index: testgtkplot3d.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkplot3d.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** testgtkplot3d.py 31 Dec 2002 18:04:18 -0000 1.3 --- testgtkplot3d.py 2 Jan 2003 22:00:49 -0000 1.4 *************** *** 13,17 **** self.set_title=("GtkPlot3D Demo") self.set_size_request(550, 650) - self.connect("destroy", self.quit) scrollwin = gtk.ScrolledWindow() --- 13,16 ---- *************** *** 79,86 **** canvas.refresh() - def quit(self, *args): - gtk.main_quit() - if __name__ == '__main__': app = Application() gtk.main() --- 78,83 ---- canvas.refresh() if __name__ == '__main__': app = Application() + app.connect("destroy", lambda win : gtk.main_quit()) gtk.main() Index: testgtksheet.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtksheet.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testgtksheet.py 10 Jul 2002 19:06:54 -0000 1.1.1.1 --- testgtksheet.py 2 Jan 2003 22:00:50 -0000 1.2 *************** *** 2,7 **** import string ! from gtk import * ! from gtkextra import * import pixmaps --- 2,7 ---- import string ! import gtk ! import gtkextra import pixmaps *************** *** 9,13 **** DEFAULT_SPACE = 8 ! class Example1(GtkSheet): xfont1 = "-bitstream-charter-bold-r-normal--28-280-72-72-p-0-iso8859-1" --- 9,13 ---- DEFAULT_SPACE = 8 ! class Example1(gtkextra.Sheet): xfont1 = "-bitstream-charter-bold-r-normal--28-280-72-72-p-0-iso8859-1" *************** *** 23,32 **** def __init__(self): ! GtkSheet.__init__(self, 1000, 26, "Example 1") colormap = self.get_colormap() ! self.set_background(colormap.alloc("light yellow")) ! self.set_grid(colormap.alloc("light blue")) for column in xrange(self.get_columns_count()): --- 23,32 ---- def __init__(self): ! gtkextra.Sheet.__init__(self, 1000, 26, "Example 1") colormap = self.get_colormap() ! self.set_background(colormap.alloc_color("light yellow")) ! self.set_grid(colormap.alloc_color("light blue")) for column in xrange(self.get_columns_count()): *************** *** 36,47 **** self.row_button_add_label(0, "This is\na multiline\nlabel") ! self.row_button_justify(0, JUSTIFY_RIGHT) ! range = GtkSheetRange(1, 1, 2, 3) ! self.clip_range(range) # As long as a GdkFont object is used a reference to it must be kept. ! self.font1 = load_font(self.xfont1) if not self.font1: print "Couldn't load", self.xfont1 --- 36,46 ---- self.row_button_add_label(0, "This is\na multiline\nlabel") ! self.row_button_justify(0, gtk.JUSTIFY_RIGHT) ! range = gtkextra.SheetRange(1, 1, 2, 3) self.clip_range(range) # As long as a GdkFont object is used a reference to it must be kept. ! self.font1 = gtk.load_font(self.xfont1) if not self.font1: print "Couldn't load", self.xfont1 *************** *** 49,55 **** self.range_set_font(range, self.font1) ! self.range_set_foreground(range, colormap.alloc("red")) ! self.set_cell(1, 2, JUSTIFY_CENTER, "Welcome to") range.row0 = 2 --- 48,54 ---- self.range_set_font(range, self.font1) ! self.range_set_foreground(range, colormap.alloc_color("red")) ! self.set_cell(1, 2, gtk.JUSTIFY_CENTER, "Welcome to") range.row0 = 2 *************** *** 61,73 **** self.range_set_font(range, self.font2) ! self.range_set_foreground(range, colormap.alloc("blue")) ! self.set_cell(2, 2, JUSTIFY_CENTER, "GtkSheet") range = GtkSheetRange(3, 0, 3, 4) ! self.range_set_background(range, colormap.alloc("dark gray")) ! self.range_set_foreground(range, colormap.alloc("green")) ! self.set_cell(3, 2, JUSTIFY_CENTER, "a Matrix widget for Gtk+") (pixmap, mask) = create_pixmap_from_xpm_d(colormap, None, --- 60,72 ---- self.range_set_font(range, self.font2) ! self.range_set_foreground(range, colormap.alloc_color("blue")) ! self.set_cell(2, 2, gtk.JUSTIFY_CENTER, "GtkSheet") range = GtkSheetRange(3, 0, 3, 4) ! self.range_set_background(range, colormap.alloc_color("dark gray")) ! self.range_set_foreground(range, colormap.alloc_color("green")) ! self.set_cell(3, 2, gtk.JUSTIFY_CENTER, "a Matrix widget for Gtk+") (pixmap, mask) = create_pixmap_from_xpm_d(colormap, None, *************** *** 79,83 **** bullet = GtkPixmap(pixmap, mask) self.attach(bullet, row, 0, .5, .5) ! self.set_cell(row, 1, JUSTIFY_LEFT, line) row = row + 1 --- 78,82 ---- bullet = GtkPixmap(pixmap, mask) self.attach(bullet, row, 0, .5, .5) ! self.set_cell(row, 1, gtk.JUSTIFY_LEFT, line) row = row + 1 *************** *** 96,100 **** show_button = GtkButton("Show me a plot") ! show_button.set_usize(100, 60) self.attach(show_button, 12, 2, .5, .5) show_button.connect("clicked", self.show_child) --- 95,99 ---- show_button = GtkButton("Show me a plot") ! show_button.set_size_request(100, 60) self.attach(show_button, 12, 2, .5, .5) show_button.connect("clicked", self.show_child) *************** *** 119,123 **** def alarm_traverse(self, widget, row, column, new_row, new_column, *args): print "TRAVERSE: %d %d %d %d" % (row, column, new_row, new_column) ! # You can return FALSE, TRUE or a 2-tuple. return (new_row, new_column) --- 118,122 ---- def alarm_traverse(self, widget, row, column, new_row, new_column, *args): print "TRAVERSE: %d %d %d %d" % (row, column, new_row, new_column) ! # You can return gtk.FALSE, gtk.TRUE or a 2-tuple. return (new_row, new_column) *************** *** 127,131 **** ! class Example2(GtkSheet): text = [ ("Click the right mouse button to display a popup", "blue"), --- 126,130 ---- ! class Example2(gtkextra.Sheet): text = [ ("Click the right mouse button to display a popup", "blue"), *************** *** 134,154 **** def __init__(self): ! GtkSheet.__init__(self, 1000, 26, "Example 2") ! self.sheet_unset_flags(SHEET_AUTO_SCROLL) ! self.set_selection_mode(SELECTION_SINGLE) colormap = self.get_colormap() ! range = GtkSheetRange(0, 0, 2, self.get_columns_count() - 1) ! self.range_set_editable(range, FALSE) ! self.range_set_background(range, colormap.alloc("light gray")) row = 0 for (line, colorname) in self.text: range.row0 = row ! self.range_set_foreground(range, colormap.alloc(colorname)) ! self.row_set_sensitivity(row, FALSE) ! self.set_cell(row, 2, JUSTIFY_CENTER, line) row = row + 1 self.set_active_cell(row, 0) --- 133,153 ---- def __init__(self): ! gtkextra.Sheet.__init__(self, 1000, 26, "Example 2") ! self.sheet_unset_flags(gtkextra.SHEET_AUTO_SCROLL) ! self.set_selection_mode(gtk.SELECTION_SINGLE) colormap = self.get_colormap() ! range = gtkextra.SheetRange(0, 0, 2, self.get_columns_count() - 1) ! self.range_set_editable(range, gtk.FALSE) ! self.range_set_background(range, colormap.alloc_color("light gray")) row = 0 for (line, colorname) in self.text: range.row0 = row ! self.range_set_foreground(range, colormap.alloc_color(colorname)) ! self.row_set_sensitivity(row, gtk.FALSE) ! self.set_cell(row, 2, gtk.JUSTIFY_CENTER, line) row = row + 1 self.set_active_cell(row, 0) *************** *** 179,183 **** self.range_clear(range) self.popup = None ! return TRUE def build_menu(self): --- 178,182 ---- self.range_clear(range) self.popup = None ! return gtk.TRUE def build_menu(self): *************** *** 187,191 **** i = 0 for label in items: ! item = GtkMenuItem(label) item.connect("activate", self.popup_activated, label) item.set_flags(SENSITIVE | CAN_FOCUS) --- 186,190 ---- i = 0 for label in items: ! item = gtk.MenuItem(label) item.connect("activate", self.popup_activated, label) item.set_flags(SENSITIVE | CAN_FOCUS) *************** *** 207,211 **** self.popup = self.build_menu() self.popup.popup(None, None, None, event.button, event.time) ! return TRUE def format_text(self, column, justification, text): --- 206,210 ---- self.popup = self.build_menu() self.popup.popup(None, None, None, event.button, event.time) ! return gtk.TRUE def format_text(self, column, justification, text): *************** *** 215,219 **** pass else: ! justification = JUSTIFY_RIGHT cell_width = self.get_column_width(column) char_width = gdk_char_width(self.get_style().font, "X") --- 214,218 ---- pass else: ! justification = gtk.JUSTIFY_RIGHT cell_width = self.get_column_width(column) char_width = gdk_char_width(self.get_style().font, "X") *************** *** 250,272 **** ! class Example3(GtkSheet): def __init__(self): ! GtkSheet.__init__(self, 1000, 26, "Example 3") ! self.show_grid(FALSE) colormap = self.get_colormap() ! range = GtkSheetRange(0, 0, 10, 6) ! self.range_set_background(range, colormap.alloc("orange")) ! self.range_set_foreground(range, colormap.alloc("violet")) range.row0 = 1 ! self.range_set_background(range, colormap.alloc("blue")) range.coli = 0 ! self.range_set_background(range, colormap.alloc("dark green")) range.row0 = 0 ! self.range_set_border_color(range, colormap.alloc("dark blue")) self.range_set_border(range, SHEET_RIGHT_BORDER, 4, GDK.LINE_ON_OFF_DASH) --- 249,271 ---- ! class Example3(gtkextra.Sheet): def __init__(self): ! gtkextra.Sheet.__init__(self, 1000, 26, "Example 3") ! self.show_grid(gtk.FALSE) colormap = self.get_colormap() ! range = gtkextra.SheetRange(0, 0, 10, 6) ! self.range_set_background(range, colormap.alloc_color("orange")) ! self.range_set_foreground(range, colormap.alloc_color("violet")) range.row0 = 1 ! self.range_set_background(range, colormap.alloc_color("blue")) range.coli = 0 ! self.range_set_background(range, colormap.alloc_color("dark green")) range.row0 = 0 ! self.range_set_border_color(range, colormap.alloc_color("dark blue")) self.range_set_border(range, SHEET_RIGHT_BORDER, 4, GDK.LINE_ON_OFF_DASH) *************** *** 274,278 **** range.rowi = 0 range.coli = 0 ! self.range_set_background(range, colormap.alloc("red")) self.range_set_border(range, SHEET_RIGHT_BORDER | SHEET_BOTTOM_BORDER, 4, GDK.LINE_SOLID) --- 273,277 ---- range.rowi = 0 range.coli = 0 ! self.range_set_background(range, colormap.alloc_color("red")) self.range_set_border(range, SHEET_RIGHT_BORDER | SHEET_BOTTOM_BORDER, 4, GDK.LINE_SOLID) *************** *** 280,284 **** range.rowi = 0 range.coli = 6 ! self.range_set_border_color(range, colormap.alloc("dark blue")) self.range_set_border(range, SHEET_BOTTOM_BORDER, 4, GDK.LINE_ON_OFF_DASH) --- 279,283 ---- range.rowi = 0 range.coli = 6 ! self.range_set_border_color(range, colormap.alloc_color("dark blue")) self.range_set_border(range, SHEET_BOTTOM_BORDER, 4, GDK.LINE_ON_OFF_DASH) *************** *** 292,325 **** def changeentry(self, widget, row, column, new_row, new_column, *args): if new_column == 0 and column != 0: ! self.change_entry(GtkCombo.get_type()) entry = self.get_entry() ! combo = entry.get_ancestor(GtkCombo.get_type()) combo.set_popdown_strings(["", "foo", "bar", "baz"]) if new_column == 1 and column != 1: ! self.change_entry(GtkEntry.get_type()) if new_column == 2 and column != 2: ! self.change_entry(GtkSpinButton.get_type()) if new_column >= 3 and column < 3: ! self.change_entry(GtkItemEntry.get_type()) ! return TRUE ! class PixmapButton(GtkToggleButton): def __init__(self, pixmap_data): ! GtkToggleButton.__init__(self) ! (pixmap, mask) = create_pixmap_from_xpm_d(self.get_colormap(), None, ! pixmap_data) ! self.pixmap = GtkPixmap(pixmap, mask) self.add(self.pixmap) ! class ColorCombo(GtkColorCombo): def __init__(self, pixmap_data, rectangle): ! GtkColorCombo.__init__(self) (pixmap, mask) = create_pixmap_from_xpm_d(self.get_colormap(), None, pixmap_data) ! self.pixmap = GtkPixmap(pixmap, mask) self.button.add(self.pixmap) self.rectangle = rectangle --- 291,325 ---- def changeentry(self, widget, row, column, new_row, new_column, *args): if new_column == 0 and column != 0: ! self.change_entry(gtk.Combo.get_type()) entry = self.get_entry() ! combo = entry.get_ancestor(gtk.Combo.get_type()) combo.set_popdown_strings(["", "foo", "bar", "baz"]) if new_column == 1 and column != 1: ! self.change_entry(gtk.Entry.get_type()) if new_column == 2 and column != 2: ! self.change_entry(gtk.SpinButton.get_type()) if new_column >= 3 and column < 3: ! self.change_entry(gtk.ItemEntry.get_type()) ! return gtk.TRUE ! class PixmapButton(gtk.ToggleButton): def __init__(self, pixmap_data): ! gtk.ToggleButton.__init__(self) ! (pixmap, mask) = gtk.gdk.pixmap_colormap_create_from_xpm_d(None, self.get_colormap(), ! None, pixmap_data) ! ! self.pixmap = gtk.Pixmap(pixmap, mask) self.add(self.pixmap) ! class ColorCombo(gtkextra.ColorCombo): def __init__(self, pixmap_data, rectangle): ! gtkextra.ColorCombo.__init__(self) (pixmap, mask) = create_pixmap_from_xpm_d(self.get_colormap(), None, pixmap_data) ! self.pixmap = gtk.Pixmap(pixmap, mask) self.button.add(self.pixmap) self.rectangle = rectangle *************** *** 327,355 **** def change_color(self, widget, i, colorname, *args): ! color = self.get_colormap().alloc(colorname) tmp_gc = self.get_window().new_gc() tmp_gc.foreground = color (pixmap, mask) = self.pixmap.get() (x, y, width, height) = self.rectangle ! draw_rectangle(pixmap, tmp_gc, TRUE, x, y, width, height) self.pixmap.queue_draw() ! class Application(GtkWindow): def __init__(self): ! GtkWindow.__init__(self, title="GtkSheet Demo") ! self.set_usize(900, 600) ! self.connect("destroy", mainquit) ! main_vbox = GtkVBox(spacing=1) main_vbox.set_border_width(0) self.add(main_vbox) ! show_hide_box = GtkHBox(spacing=1) ! hide_row_titles = GtkButton("Hide Row Titles") ! hide_column_titles = GtkButton("Hide Column Titles") ! show_row_titles = GtkButton("Show Row Titles") ! show_column_titles = GtkButton("Show Column Titles") show_hide_box.pack_start(hide_row_titles) --- 327,356 ---- def change_color(self, widget, i, colorname, *args): ! color = self.get_colormap().alloc_color(colorname) tmp_gc = self.get_window().new_gc() tmp_gc.foreground = color (pixmap, mask) = self.pixmap.get() (x, y, width, height) = self.rectangle ! draw_rectangle(pixmap, tmp_gc, gtk.TRUE, x, y, width, height) self.pixmap.queue_draw() ! class Application(gtk.Window): def __init__(self): ! gtk.Window.__init__(self) ! self.set_title("GtkSheet Demo") ! self.set_size_request(900, 600) ! self.connect("destroy", lambda win : gtk.main_quit()) ! main_vbox = gtk.VBox(spacing=1) main_vbox.set_border_width(0) self.add(main_vbox) ! show_hide_box = gtk.HBox(spacing=1) ! hide_row_titles = gtk.Button("Hide Row Titles") ! hide_column_titles = gtk.Button("Hide Column Titles") ! show_row_titles = gtk.Button("Show Row Titles") ! show_column_titles = gtk.Button("Show Column Titles") show_hide_box.pack_start(hide_row_titles) *************** *** 363,375 **** show_column_titles.connect("clicked", self.do_show_column_titles) ! main_vbox.pack_start(show_hide_box, FALSE) ! toolbar = GtkToolbar() toolbar.append_space() ! font_combo = GtkFontCombo() toolbar.append_widget(font_combo, "font", "font") ! font_combo.italic_button.set_usize(32, 32) ! font_combo.bold_button.set_usize(32, 32) font_combo.connect("changed", self.new_font) --- 364,376 ---- show_column_titles.connect("clicked", self.do_show_column_titles) ! main_vbox.pack_start(show_hide_box, gtk.FALSE) ! toolbar = gtk.Toolbar() toolbar.append_space() ! font_combo = gtkextra.FontCombo() toolbar.append_widget(font_combo, "font", "font") ! font_combo.italic_button.set_size_request(32, 32) ! font_combo.bold_button.set_size_request(32, 32) font_combo.connect("changed", self.new_font) *************** *** 392,446 **** toolbar.append_space() ! bordercombo = GtkBorderCombo() toolbar.append_widget(bordercombo, "border", "border") ! bordercombo.button.set_usize(32, 32) bordercombo.connect("changed", self.change_border) toolbar.append_space() ! fgcolorcombo = ColorCombo(pixmaps.font, (5, 20, 16, 4)) ! toolbar.append_widget(fgcolorcombo, "font color", "font color") ! fgcolorcombo.connect("changed", self.change_foreground) toolbar.append_space() ! bgcolorcombo = ColorCombo(pixmaps.paint, (4, 20, 18, 4)) ! toolbar.append_widget(bgcolorcombo, "background color", ! "background color") ! bgcolorcombo.connect("changed", self.change_background) toolbar.append_space() ! toggle_combo = GtkToggleCombo(5, 5) toolbar.append_widget(toggle_combo, "test", "test") ! toggle_combo.button.set_usize(32, 32) ! main_vbox.pack_start(toolbar, FALSE) ! status_box = GtkHBox(spacing=1) status_box.set_border_width(0) ! main_vbox.pack_start(status_box, FALSE) ! self.location = GtkLabel() (width, height) = self.location.size_request() ! self.location.set_usize(160, height) ! status_box.pack_start(self.location, FALSE) ! self.entry = GtkEntry() status_box.pack_start(self.entry) ! self.notebook = GtkNotebook() ! self.notebook.set_tab_pos(POS_BOTTOM) main_vbox.pack_start(self.notebook) ! self.sheets = [ Example1(), Example2(), Example3() ] scrolled_windows = [] n = 1 for sheet in self.sheets: ! scrolled_window = GtkScrolledWindow() scrolled_windows.append(scrolled_window) scrolled_window.add(sheet) ! label = GtkLabel("Folder %d" % n) self.notebook.append_page(scrolled_window, label) --- 393,450 ---- toolbar.append_space() ! bordercombo = gtkextra.BorderCombo() toolbar.append_widget(bordercombo, "border", "border") ! bordercombo.button.set_size_request(32, 32) bordercombo.connect("changed", self.change_border) toolbar.append_space() ! #fgcolorcombo = gtkextra.ColorCombo(pixmaps.font, (5, 20, 16, 4)) ! #toolbar.append_widget(fgcolorcombo, "font color", "font color") ! #fgcolorcombo.connect("changed", self.change_foreground) toolbar.append_space() ! #bgcolorcombo = gtkextra.ColorCombo(pixmaps.paint, (4, 20, 18, 4)) ! #toolbar.append_widget(bgcolorcombo, "background color", ! # "background color") ! #bgcolorcombo.connect("changed", self.change_background) toolbar.append_space() ! toggle_combo = gtkextra.ToggleCombo(5, 5) toolbar.append_widget(toggle_combo, "test", "test") ! toggle_combo.button.set_size_request(32, 32) ! main_vbox.pack_start(toolbar, gtk.FALSE) ! status_box = gtk.HBox(spacing=1) status_box.set_border_width(0) ! main_vbox.pack_start(status_box, gtk.FALSE) ! self.location = gtk.Label("") (width, height) = self.location.size_request() ! self.location.set_size_request(160, height) ! status_box.pack_start(self.location, gtk.FALSE) ! self.entry = gtk.Entry() status_box.pack_start(self.entry) ! self.notebook = gtk.Notebook() ! self.notebook.set_tab_pos(gtk.POS_BOTTOM) main_vbox.pack_start(self.notebook) ! #self.sheets = [ Example1(), Example2(), Example3() ] ! #self.sheets = [ Example1() ] ! self.sheets = [ ] ! scrolled_windows = [] n = 1 for sheet in self.sheets: ! scrolled_window = gtk.ScrolledWindow() scrolled_windows.append(scrolled_window) scrolled_window.add(sheet) ! label = gtk.Label("Folder %d" % n) self.notebook.append_page(scrolled_window, label) *************** *** 460,464 **** def show_sheet_entry(self, entry, *args): ! if not entry.flags(HAS_FOCUS): return sheet = self.get_active_sheet() --- 464,468 ---- def show_sheet_entry(self, entry, *args): ! if not entry.flags(gtk.HAS_FOCUS): return sheet = self.get_active_sheet() *************** *** 470,475 **** sheet = self.get_active_sheet() sheet_entry = sheet.get_entry() ! justification = JUSTIFY_LEFT ! if isinstance(sheet_entry, GtkItemEntry): justification = sheet_entry.get_justification() cell = sheet.get_active_cell() --- 474,479 ---- sheet = self.get_active_sheet() sheet_entry = sheet.get_entry() ! justification = gtk.JUSTIFY_LEFT ! if isinstance(sheet_entry, gtk.ItemEntry): justification = sheet_entry.get_justification() cell = sheet.get_active_cell() *************** *** 479,483 **** def show_entry(self, sheet_entry, *args): ! if not sheet_entry.flags(HAS_FOCUS): return text = sheet_entry.get_text() --- 483,487 ---- def show_entry(self, sheet_entry, *args): ! if not sheet_entry.flags(gtk.HAS_FOCUS): return text = sheet_entry.get_text() *************** *** 502,534 **** self.entry.set_editable(attributes.is_editable) ! if attributes.justification == JUSTIFY_CENTER: self.justify_center() ! elif attributes.justification == JUSTIFY_RIGHT: self.justify_right() else: self.justify_left() ! return TRUE def justify_left(self, *args): sheet = self.get_active_sheet() ! self.left_button.set_active(STATE_ACTIVE) ! self.center_button.set_active(STATE_NORMAL) ! self.right_button.set_active(STATE_NORMAL) ! sheet.range_set_justification(sheet.get_range(), JUSTIFY_LEFT) def justify_center(self, *args): sheet = self.get_active_sheet() ! self.center_button.set_active(STATE_ACTIVE) ! self.left_button.set_active(STATE_NORMAL) ! self.right_button.set_active(STATE_NORMAL) ! sheet.range_set_justification(sheet.get_range(), JUSTIFY_CENTER) def justify_right(self, *args): sheet = self.get_active_sheet() ! self.right_button.set_active(STATE_ACTIVE) ! self.left_button.set_active(STATE_NORMAL) ! self.center_button.set_active(STATE_NORMAL) ! sheet.range_set_justification(sheet.get_range(), JUSTIFY_RIGHT) def change_border(self, widget, border, *args): --- 506,538 ---- self.entry.set_editable(attributes.is_editable) ! if attributes.justification == gtk.JUSTIFY_CENTER: self.justify_center() ! elif attributes.justification == gtk.JUSTIFY_RIGHT: self.justify_right() else: self.justify_left() ! return gtk.TRUE def justify_left(self, *args): sheet = self.get_active_sheet() ! self.left_button.set_active(gtk.STATE_ACTIVE) ! self.center_button.set_active(gtk.STATE_NORMAL) ! self.right_button.set_active(gtk.STATE_NORMAL) ! sheet.range_set_justification(sheet.get_range(), gtk.JUSTIFY_LEFT) def justify_center(self, *args): sheet = self.get_active_sheet() ! self.center_button.set_active(gtk.STATE_ACTIVE) ! self.left_button.set_active(gtk.STATE_NORMAL) ! self.right_button.set_active(gtk.STATE_NORMAL) ! sheet.range_set_justification(sheet.get_range(), gtk.JUSTIFY_CENTER) def justify_right(self, *args): sheet = self.get_active_sheet() ! self.right_button.set_active(gtk.STATE_ACTIVE) ! self.left_button.set_active(gtk.STATE_NORMAL) ! self.center_button.set_active(gtk.STATE_NORMAL) ! sheet.range_set_justification(sheet.get_range(), gtk.JUSTIFY_RIGHT) def change_border(self, widget, border, *args): *************** *** 538,585 **** sheet.range_set_border(range, 0, 0) if border == 1: ! border_mask = SHEET_TOP_BORDER range.rowi = range.row0 sheet.range_set_border(range, border_mask, border_width) elif border == 2: ! border_mask = SHEET_BOTTOM_BORDER range.row0 = range.rowi sheet.range_set_border(range, border_mask, border_width) elif border == 3: ! border_mask = SHEET_RIGHT_BORDER range.col0 = range.coli sheet.range_set_border(range, border_mask, border_width) elif border == 4: ! border_mask = SHEET_LEFT_BORDER range.coli = range.col0 sheet.range_set_border(range, border_mask, border_width) elif border == 5: if range.col0 == range.coli: ! border_mask = SHEET_LEFT_BORDER | SHEET_RIGHT_BORDER sheet.range_set_border(range, border_mask, border_width) else: ! border_mask = SHEET_LEFT_BORDER auxcol = range.coli range.coli = range.col0 sheet.range_set_border(range, border_mask, border_width) ! border_mask = SHEET_RIGHT_BORDER range.col0 = range.coli = auxcol sheet.range_set_border(range, border_mask, border_width) elif border == 6: if range.row0 == range.rowi: ! border_mask = SHEET_TOP_BORDER | SHEET_BOTTOM_BORDER sheet.range_set_border(range, border_mask, border_width) else: ! border_mask = SHEET_TOP_BORDER auxrow = range.rowi range.rowi = range.row0 sheet.range_set_border(range, border_mask, border_width) ! border_mask = SHEET_BOTTOM_BORDER range.row0 = range.rowi = auxrow sheet.range_set_border(range, border_mask, border_width) elif border == 7: ! border_mask = SHEET_RIGHT_BORDER | SHEET_LEFT_BORDER sheet.range_set_border(range, border_mask, border_width) elif border == 8: ! border_mask = SHEET_BOTTOM_BORDER | SHEET_TOP_BORDER sheet.range_set_border(range, border_mask, border_width) elif border == 9: --- 542,589 ---- sheet.range_set_border(range, 0, 0) if border == 1: ! border_mask = gtkextra.SHEET_TOP_BORDER range.rowi = range.row0 sheet.range_set_border(range, border_mask, border_width) elif border == 2: ! border_mask = gtkextra.SHEET_BOTTOM_BORDER range.row0 = range.rowi sheet.range_set_border(range, border_mask, border_width) elif border == 3: ! border_mask = gtkextra.SHEET_RIGHT_BORDER range.col0 = range.coli sheet.range_set_border(range, border_mask, border_width) elif border == 4: ! border_mask = gtkextra.SHEET_LEFT_BORDER range.coli = range.col0 sheet.range_set_border(range, border_mask, border_width) elif border == 5: if range.col0 == range.coli: ! border_mask = gtkextra.SHEET_LEFT_BORDER | gtkextra.SHEET_RIGHT_BORDER sheet.range_set_border(range, border_mask, border_width) else: ! border_mask = gtkextra.SHEET_LEFT_BORDER auxcol = range.coli range.coli = range.col0 sheet.range_set_border(range, border_mask, border_width) ! border_mask = gtkextra.SHEET_RIGHT_BORDER range.col0 = range.coli = auxcol sheet.range_set_border(range, border_mask, border_width) elif border == 6: if range.row0 == range.rowi: ! border_mask = gtkextra.SHEET_TOP_BORDER | gtkextra.SHEET_BOTTOM_BORDER sheet.range_set_border(range, border_mask, border_width) else: ! border_mask = gtkextra.SHEET_TOP_BORDER auxrow = range.rowi range.rowi = range.row0 sheet.range_set_border(range, border_mask, border_width) ! border_mask = gtkextra.SHEET_BOTTOM_BORDER range.row0 = range.rowi = auxrow sheet.range_set_border(range, border_mask, border_width) elif border == 7: ! border_mask = gtkextra.SHEET_RIGHT_BORDER | gtkextra.SHEET_LEFT_BORDER sheet.range_set_border(range, border_mask, border_width) elif border == 8: ! border_mask = gtkextra.SHEET_BOTTOM_BORDER | gtkextra.SHEET_TOP_BORDER sheet.range_set_border(range, border_mask, border_width) elif border == 9: *************** *** 588,600 **** for j in xrange(range.col0, range.coli + 1): border_mask = 15 ! auxrange = GtkSheetRange(i, j, i, j) if i == range.rowi: ! border_mask = border_mask ^ SHEET_BOTTOM_BORDER if i == range.row0: ! border_mask = border_mask ^ SHEET_TOP_BORDER if j == range.coli: ! border_mask = border_mask ^ SHEET_RIGHT_BORDER if j == range.col0: ! border_mask = border_mask ^ SHEET_LEFT_BORDER if border_mask != 15: sheet.range_set_border(auxrange, border_mask, --- 592,604 ---- for j in xrange(range.col0, range.coli + 1): border_mask = 15 ! auxrange = gtk.SheetRange(i, j, i, j) if i == range.rowi: ! border_mask = border_mask ^ gtkextra.SHEET_BOTTOM_BORDER if i == range.row0: ! border_mask = border_mask ^ gtkextra.SHEET_TOP_BORDER if j == range.coli: ! border_mask = border_mask ^ gtkextra.SHEET_RIGHT_BORDER if j == range.col0: ! border_mask = border_mask ^ gtkextra.SHEET_LEFT_BORDER if border_mask != 15: sheet.range_set_border(auxrange, border_mask, *************** *** 604,616 **** for j in xrange(range.col0, range.coli + 1): border_mask = 0 ! auxrange = GtkSheetRange(i, j, i, j) if i == range.rowi: ! border_mask = border_mask | SHEET_BOTTOM_BORDER if i == range.row0: ! border_mask = border_mask | SHEET_TOP_BORDER if j == range.coli: ! border_mask = border_mask | SHEET_RIGHT_BORDER if j == range.col0: ! border_mask = border_mask | SHEET_LEFT_BORDER if border_mask != 0: sheet.range_set_border(auxrange, border_mask, --- 608,620 ---- for j in xrange(range.col0, range.coli + 1): border_mask = 0 ! auxrange = gtk.SheetRange(i, j, i, j) if i == range.rowi: ! border_mask = border_mask | gtkextra.SHEET_BOTTOM_BORDER if i == range.row0: ! border_mask = border_mask | gtkextra.SHEET_TOP_BORDER if j == range.coli: ! border_mask = border_mask | gtkextra.SHEET_RIGHT_BORDER if j == range.col0: ! border_mask = border_mask | gtkextra.SHEET_LEFT_BORDER if border_mask != 0: sheet.range_set_border(auxrange, border_mask, *************** *** 622,631 **** def change_foreground(self, widget, i, colorname, *args): sheet = self.get_active_sheet() ! color = sheet.get_colormap().alloc(colorname) sheet.range_set_foreground(sheet.get_range(), color) def change_background(self, widget, i, colorname, *args): sheet = self.get_active_sheet() ! color = sheet.get_colormap().alloc(colorname) sheet.range_set_background(sheet.get_range(), color) --- 626,635 ---- def change_foreground(self, widget, i, colorname, *args): sheet = self.get_active_sheet() ! color = sheet.get_colormap().alloc_color(colorname) sheet.range_set_foreground(sheet.get_range(), color) def change_background(self, widget, i, colorname, *args): sheet = self.get_active_sheet() ! color = sheet.get_colormap().alloc_color(colorname) sheet.range_set_background(sheet.get_range(), color) *************** *** 651,653 **** if __name__ == '__main__': app = Application() ! app.mainloop() --- 655,659 ---- if __name__ == '__main__': app = Application() ! app.connect("destroy", lambda win : gtk.main_quit()) ! gtk.main() ! Index: testpixmap.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testpixmap.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** testpixmap.py 31 Dec 2002 18:04:18 -0000 1.2 --- testpixmap.py 2 Jan 2003 22:00:51 -0000 1.3 *************** *** 75,79 **** def __init__(self): gtk.Window.__init__(self) - self.connect("destroy", self.quit) self.set_title=("GtkPlot3D Demo") self.set_size_request(550, 650) --- 75,78 ---- *************** *** 127,135 **** pass - def quit(self, *args): - gtk.main_quit() - if __name__ == '__main__': app = Application() ! #app.connect("destroy", lambda win : gtk.main_quit) ! gtk.mainloop() --- 126,131 ---- pass if __name__ == '__main__': app = Application() ! app.connect("destroy", lambda win : gtk.main_quit()) ! gtk.main() Index: testpolar.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testpolar.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** testpolar.py 16 Jul 2002 17:05:14 -0000 1.2 --- testpolar.py 2 Jan 2003 22:00:52 -0000 1.3 *************** *** 6,14 **** def __init__(self): - self.hack = [] gtk.Window.__init__(self) self.set_title("GtkPlotPolar Demo") self.set_size_request(500, 320) - self.connect("destroy", self.quit) colormap = self.get_colormap() --- 6,12 ---- *************** *** 36,47 **** data.set_legend("Example") plot.add_data(data) - self.hack.append(data) self.show_all() - def quit(self, *args): - gtk.main_quit() - if __name__ == '__main__': app = Application() gtk.main() --- 34,42 ---- data.set_legend("Example") plot.add_data(data) self.show_all() if __name__ == '__main__': app = Application() + app.connect("destroy", lambda win : gtk.main_quit()) gtk.main() |
From: <pyt...@li...> - 2003-01-02 22:01:08
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/gtkextra In directory sc8-pr-cvs1:/tmp/cvs-serv32495/gtkextra Modified Files: gtkextra-addons.defs gtkextra-types.defs gtkextra.defs gtkextra.override Log Message: lots Index: gtkextra-addons.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra-addons.defs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gtkextra-addons.defs 24 Dec 2002 18:49:10 -0000 1.3 --- gtkextra-addons.defs 2 Jan 2003 22:00:53 -0000 1.4 *************** *** 25,26 **** --- 25,37 ---- + (define-function gtk_sheet_range_new + (is-constructor-of "GtkSheetRange") + (c-name "gtk_sheet_range_new") + (return-type "GtkSheetRange*") + (parameters + '("gint" "row0" (default "0")) + '("gint" "col0" (default "0")) + '("gint" "rowi" (default "0")) + '("gint" "coli" (default "0")) + ) + ) Index: gtkextra-types.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra-types.defs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** gtkextra-types.defs 31 Dec 2002 18:04:19 -0000 1.5 --- gtkextra-types.defs 2 Jan 2003 22:00:54 -0000 1.6 *************** *** 2,5 **** --- 2,8 ---- ; object definitions ... + ; As for fields, I'm not sure which are safe to expose. + ; I also have no scrubbed which are set by functions. + ; Somebody can help me here. (define-object CharSelection *************** *** 30,33 **** --- 33,43 ---- (c-name "GtkComboBox") (gtype-id "GTK_TYPE_COMBO_BOX") + (fields + '("GtkWidget*" "button") + '("GtkWidget*" "arrow") + '("GtkWidget*" "popup") + '("GtkWidget*" "popwin") + '("GtkWidget*" "frame") + ) ) *************** *** 44,47 **** --- 54,65 ---- (c-name "GtkBorderCombo") (gtype-id "GTK_TYPE_BORDER_COMBO") + (fields + '("gint" "nrows") + '("gint" "ncols") + '("gint" "row") + '("gint" "column") + ; '("GtkWidget***" "button") + '("GtkWidget*" "table") + ) ) *************** *** 51,54 **** --- 69,84 ---- (c-name "GtkDirTree") (gtype-id "GTK_TYPE_DIR_TREE") + (fields + '("gchar*" "local_hostname") + '("gboolean" "show_hidden") + '("GdkPixmap*" "my_pc") + '("GdkPixmap*" "folder") + '("GdkPixmap*" "ofolder") + '("GdkPixmap*" "dennied") + '("GdkBitmap*" "my_pc_mask") + '("GdkBitmap*" "folder_mask") + '("GdkBitmap*" "ofolder_mask") + '("GdkBitmap*" "dennied_mask") + ) ) *************** *** 58,68 **** (c-name "GtkFontCombo") (gtype-id "GTK_TYPE_FONT_COMBO") ) ! (define-object IconFileSel (in-module "Gtk") (parent "GtkWindow") (c-name "GtkIconFileSel") (gtype-id "GTK_TYPE_ICON_FILE_SEL") ) --- 88,115 ---- (c-name "GtkFontCombo") (gtype-id "GTK_TYPE_FONT_COMBO") + (fields + '("GtkWidget*" "name_combo") + '("GtkWidget*" "size_combo") + '("GtkWidget*" "bold_button") + '("GtkWidget*" "italic_button") + ) ) ! (define-object IconFileSelection (in-module "Gtk") (parent "GtkWindow") (c-name "GtkIconFileSel") (gtype-id "GTK_TYPE_ICON_FILE_SEL") + (fields + '("GtkWidget*" "path_label") + '("GtkWidget*" "dir_tree") + '("GtkWidget*" "file_list") + '("GtkWidget*" "history_combo") + '("GtkWidget*" "file_entry") + '("GtkWidget*" "filter_entry") + '("GtkWidget*" "ok_button") + '("GtkWidget*" "cancel_button") + '("GtkWidget*" "action_area") + ) ) *************** *** 72,75 **** --- 119,125 ---- (c-name "GtkIconList") (gtype-id "GTK_TYPE_ICON_LIST") + (fields + '("gint" "num_icons") + ) ) *************** *** 95,98 **** --- 145,149 ---- (fields '("guint16" "flags") + '("GdkPixmap*" "pixmap") ) ) *************** *** 294,297 **** --- 345,360 ---- '("GtkWidget*" "entry") ;'("gpointer" "link") + ) + ) + + (define-boxed SheetRange + (in-module "Gtk") + (c-name "GtkSheetRange") + (gtype-id "GTK_TYPE_SHEET_RANGE") + (fields + '("gint" "row0") + '("gint" "col0") + '("gint" "rowi") + '("gint" "coli") ) ) Index: gtkextra.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.defs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** gtkextra.defs 31 Dec 2002 18:04:19 -0000 1.7 --- gtkextra.defs 2 Jan 2003 22:00:55 -0000 1.8 *************** *** 5,8 **** --- 5,11 ---- ;; python ~/gnome-cvs/gnome-python/pygtk/codegen/mergedefs.py gtkextra_.defs gtkextra.defs > gtkextra_merged.defs ;; Then redo include's. + ;; + ;; Another thing is null-ok's on return of points. + ;; I have added that to many functions, but may have missed some that should have it. (include "gtkextra-types.defs") *************** *** 178,182 **** [...1106 lines suppressed...] '("GtkWidget*" "widget") --- 5900,5904 ---- (of-object "GtkSheet") (c-name "gtk_sheet_put") ! (return-type "GtkSheetChild*" (null-ok)) (parameters '("GtkWidget*" "widget") *************** *** 5956,5960 **** (of-object "GtkSheet") (c-name "gtk_sheet_get_child_at") ! (return-type "GtkSheetChild*") (parameters '("gint" "row") --- 5959,5963 ---- (of-object "GtkSheet") (c-name "gtk_sheet_get_child_at") ! (return-type "GtkSheetChild*" (null-ok)) (parameters '("gint" "row") Index: gtkextra.override =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.override,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** gtkextra.override 31 Dec 2002 18:04:19 -0000 1.8 --- gtkextra.override 2 Jan 2003 22:00:58 -0000 1.9 *************** *** 165,168 **** --- 165,181 ---- } + static GtkSheetRange* + gtk_sheet_range_new ( gint row0, gint col0, gint rowi, gint coli) + { + GtkSheetRange *p = g_new (GtkSheetRange, 1); + if (p) { + p->row0 = row0; + p->col0 = col0; + p->rowi = rowi; + p->coli = coli; + } + return p; + } + static void gtk_plot_draw_text_PY (GtkPlot *plot, GtkPlotText *text) *************** *** 960,963 **** --- 973,1091 ---- if (!self->obj) { PyErr_SetString(PyExc_RuntimeError, "could not create GtkPlotSurface object"); + return -1; + } + pygobject_register_wrapper((PyObject *)self); + return 0; + } + %% + override gtk_plot_csurface_new kwargs + static int + _wrap_gtk_plot_csurface_new(PyGObject *self, PyObject *args, PyObject *kwargs) + { + static char *kwlist[] = { "function", NULL }; + PyObject *function = NULL; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:GtkPlotCSurface.__init__", kwlist, &function)) + return -1; + + if (!function) + self->obj = (GObject *)gtk_plot_csurface_new(); + else { + if (!PyCallable_Check(function)) { + PyErr_SetString(PyExc_RuntimeError, "function argument must be callable"); + return -1; + } + self->obj = (GObject *)gtk_plot_csurface_new_function(pygtkextra_plot_function_3D); + if(self->obj) + pygtkextra_set_data(self, function_key, function); + } + if (!self->obj) { + PyErr_SetString(PyExc_RuntimeError, "could not create GtkPlotCSurface object"); + return -1; + } + pygobject_register_wrapper((PyObject *)self); + return 0; + } + %% + override gtk_plot_csurface_construct_function kwargs + static PyObject * + _wrap_gtk_plot_csurface_construct_function(PyGObject *self, PyObject *args, PyObject *kwargs) + { + static char *kwlist[] = { "function", NULL }; + PyObject *function; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GtkPlotCSurface.construct_function", kwlist, &function)) + return NULL; + + if (!PyCallable_Check(function)) { + PyErr_SetString(PyExc_RuntimeError, "function argument must be callable"); + return NULL; + } + + gtk_plot_csurface_construct_function(GTK_PLOT_CSURFACE(self->obj), pygtkextra_plot_function_3D); + pygtkextra_set_data(self, function_key, function); + + Py_INCREF(Py_None); + return Py_None; + } + %% + override gtk_color_combo_new kwargs + static int + _wrap_gtk_color_combo_new(PyGObject *self, PyObject *args, PyObject *kwargs) + { + static char *kwlist1[] = { NULL }; + static char *kwlist2[] = { "nrows", "ncols", "colors", NULL }; + + if (PyArg_ParseTupleAndKeywords(args, kwargs, ":GtkColorCombo.__init__", kwlist1)) { + self->obj = (GObject *)gtk_color_combo_new(); + } + else { + int nrows, ncols; + int len, i; + PyObject *py_colors; + GdkColor **colors = NULL; + + PyErr_Clear(); + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iiO:GtkColorCombo.__init__", kwlist2, + &nrows, &ncols, &py_colors)) + return -1; + + if (!PySequence_Check(py_colors)) { + PyErr_SetString(PyExc_TypeError, "colors must be a sequence of GdkColor"); + return -1; + } + + len = PySequence_Length(py_colors); + if ( len != nrows * ncols) { + PyErr_SetString(PyExc_TypeError, "colors length is not nrows * ncols "); + return -1; + } + + colors = (GdkColor**) g_new(GdkColor*, len); + if (!colors) { + PyErr_SetString(PyExc_RuntimeError, "g_new failed"); + return -1; + } + + for (i = 0; i < len; ++i) { + PyObject *py_color; + + py_color = PySequence_GetItem(py_colors, i); + if (pyg_boxed_check(py_color, GDK_TYPE_COLOR)) { + colors[i] = (GdkColor*) pyg_boxed_get(py_color, GdkColor); + Py_DECREF(py_color); + } + else { + PyErr_SetString(PyExc_TypeError, "colors items should be a GdkColor"); + g_free(colors); + Py_DECREF(py_color); + return -1; + } + } + self->obj = (GObject *)gtk_color_combo_new_with_values(nrows, ncols, *colors); + g_free(colors); + } + if (!self->obj) { + PyErr_SetString(PyExc_RuntimeError, "could not create GtkColorCombo object"); return -1; } |
From: <pyt...@li...> - 2002-12-31 18:04:23
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/gtkextra In directory sc8-pr-cvs1:/tmp/cvs-serv27404/gtkextra Modified Files: gtkextra-types.defs gtkextra.defs gtkextra.override Log Message: more Index: gtkextra-types.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra-types.defs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** gtkextra-types.defs 24 Dec 2002 18:49:10 -0000 1.4 --- gtkextra-types.defs 31 Dec 2002 18:04:19 -0000 1.5 *************** *** 88,92 **** ) - ;; Missed by h2def.py (define-object PlotCanvas (in-module "Gtk") --- 88,91 ---- *************** *** 249,253 **** ; Also gtkextra code needs all of those boxed fixed up with types and macros. ! (define-boxed GtkPlotLine (in-module "Gtk") (c-name "GtkPlotLine") --- 248,252 ---- ; Also gtkextra code needs all of those boxed fixed up with types and macros. ! (define-boxed PlotLine (in-module "Gtk") (c-name "GtkPlotLine") *************** *** 258,261 **** --- 257,266 ---- '("GdkJoinStyle" "join_style") ) + ) + + (define-boxed PlotMarker + (in-module "Gtk") + (c-name "GtkPlotMarker") + (gtype-id "GTK_TYPE_PLOT_MARKER") ) Index: gtkextra.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.defs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** gtkextra.defs 24 Dec 2002 18:49:10 -0000 1.6 --- gtkextra.defs 31 Dec 2002 18:04:19 -0000 1.7 *************** *** 4266,4270 **** (parameters '("GdkPixmap*" "pixmap") ! '("GdkBitmap*" "mask") ) ) --- 4266,4270 ---- (parameters '("GdkPixmap*" "pixmap") ! '("GdkBitmap*" "mask" (default "NULL") (null-ok)) ) ) Index: gtkextra.override =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.override,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** gtkextra.override 30 Dec 2002 20:42:13 -0000 1.7 --- gtkextra.override 31 Dec 2002 18:04:19 -0000 1.8 *************** *** 31,34 **** --- 31,35 ---- static PyObject *pygtkextra_data_from_pyobject_callback = NULL; + static const gchar *function_key = "pygtkextra::function"; /* *************** *** 93,96 **** --- 94,132 ---- } + #define GTK_TYPE_PLOT_MARKER (gtk_plot_marker_get_type ()) + GtkPlotMarker* + gtk_plot_marker_copy (const GtkPlotMarker *marker) + { + /* FIXME: am I correct? */ + GtkPlotMarker *copy; + g_return_val_if_fail (marker != NULL, NULL); + copy = g_new (GtkPlotMarker, 1); + *copy = *marker; + if (marker->data) + g_object_ref (G_OBJECT (marker->data)); + return copy; + } + + void + gtk_plot_marker_free (GtkPlotMarker *marker) + { + /* FIXME: am I correct? */ + g_return_if_fail (marker != NULL); + if (marker->data) + g_object_unref (G_OBJECT (marker->data)); + g_free (marker); + } + + static GType + gtk_plot_marker_get_type (void) + { + static GType our_type = 0; + if (our_type == 0) + our_type = g_boxed_type_register_static ("GtkPlotMarker", + (GBoxedCopyFunc) gtk_plot_marker_copy, + (GBoxedFreeFunc) gtk_plot_marker_free); + return our_type; + } + #define GTK_TYPE_PLOT_TEXT (gtk_plot_text_get_type ()) static GType *************** *** 261,264 **** --- 297,395 ---- } + static gdouble + pygtkextra_plot_function (GtkPlot *plot, + GtkPlotData *data, + gdouble x, + gboolean *error) + { + PyObject *py_function = NULL, *py_result = NULL, *py_data = NULL; + gdouble y = 0.0; + + py_data = pygobject_new((GObject*) data); + py_function = pygtkextra_get_data((PyGObject*) py_data, function_key); + + *error = TRUE; + + if (py_function == Py_None) { + PyErr_SetString(PyExc_TypeError, + "could not retrieve the python plot function"); + } + else { + py_result = PyEval_CallFunction(py_function, "(d)", x); + if (py_result) { + PyObject *py_value; + if (PyFloat_Check(py_result)) { + y = PyFloat_AS_DOUBLE(py_result); + *error = FALSE; + } else if (PyNumber_Check(py_result) && (py_value = PyNumber_Float(py_result))) { + y = PyFloat_AS_DOUBLE(py_value); + Py_DECREF(py_value); + *error = FALSE; + } else if (py_result != Py_None) { + PyErr_SetString(PyExc_TypeError, + "plot function must return number or None"); + } + } + } + + if (PyErr_Occurred()) { + PyErr_Print(); + PyErr_Clear(); + } + + Py_XDECREF(py_function); + Py_XDECREF(py_result); + Py_XDECREF(py_data); + return y; + } + + static gdouble + pygtkextra_plot_function_3D (GtkPlot *plot, + GtkPlotData *data, + gdouble x, gdouble y, + gboolean *error) + { + PyObject *py_function = NULL, *py_result = NULL, *py_data = NULL; + gdouble z = 0.0; + + py_data = pygobject_new((GObject*) data); + py_function = pygtkextra_get_data((PyGObject*) py_data, function_key); + + *error = TRUE; + + if (py_function == Py_None) { + PyErr_SetString(PyExc_TypeError, + "could not retrieve the python plot function"); + } + else { + py_result = PyEval_CallFunction(py_function, "(dd)", x, y); + if (py_result) { + PyObject *py_value; + if (PyFloat_Check(py_result)) { + z = PyFloat_AS_DOUBLE(py_result); + *error = FALSE; + } else if (PyNumber_Check(py_result) && (py_value = PyNumber_Float(py_result))) { + z = PyFloat_AS_DOUBLE(py_value); + Py_DECREF(py_value); + *error = FALSE; + } else if (py_result != Py_None) { + PyErr_SetString(PyExc_TypeError, + "plot function must return number or None"); + } + } + } + + if (PyErr_Occurred()) { + PyErr_Print(); + PyErr_Clear(); + } + + Py_XDECREF(py_function); + Py_XDECREF(py_result); + Py_XDECREF(py_data); + + return z; + } + /* ---------------------------------------------------------------------- */ %% *************** *** 387,390 **** --- 518,522 ---- goto do_err; \ Py_DECREF(py_ ## _x ##_out); \ + gtk_plot_data_set_ ## _x (GTK_PLOT_DATA(self->obj), NULL); \ gtk_plot_data_set_ ## _x (GTK_PLOT_DATA(self->obj), _x); \ *************** *** 547,550 **** --- 679,716 ---- } %% + %% + override gtk_plot_new kwargs + static int + _wrap_gtk_plot_new(PyGObject *self, PyObject *args, PyObject *kwargs) + { + static char *kwlist1[] = { "drawable", NULL }; + static char *kwlist2[] = { "width", "height", "drawable", NULL }; + PyGObject *drawable = NULL; + + if (PyArg_ParseTupleAndKeywords(args, kwargs, "|O!:GtkPlot.__init__", + kwlist1, &PyGdkDrawable_Type, &drawable)) { + self->obj = (GObject *)gtk_plot_new(drawable ? GDK_DRAWABLE(drawable->obj) : NULL); + } + else { + double width, height; + PyErr_Clear(); + /* It would have been nice if optional arguments were last in prototype. */ + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "dd|O!:GtkPlot.__init__", + kwlist2, + &width, &height, + &PyGdkDrawable_Type, &drawable)) + return -1; + self->obj = (GObject *)gtk_plot_new_with_size(drawable ? GDK_DRAWABLE(drawable->obj) : NULL, + width, height); + } + + if (!self->obj) { + PyErr_SetString(PyExc_RuntimeError, "could not create GtkPlot object"); + return -1; + } + pygobject_register_wrapper((PyObject *)self); + return 0; + } + %% override gtk_plot_get_internal_allocation noargs static PyObject * *************** *** 567,571 **** return NULL; gtk_plot_add_data(GTK_PLOT(self->obj), GTK_PLOT_DATA(data->obj)); ! g_snprintf(key, sizeof(key), "data_%p", data); pygtkextra_set_data(self, key, (PyObject*) data); Py_INCREF(Py_None); --- 733,737 ---- return NULL; gtk_plot_add_data(GTK_PLOT(self->obj), GTK_PLOT_DATA(data->obj)); ! g_snprintf(key, sizeof(key), "data_%p", data->obj); pygtkextra_set_data(self, key, (PyObject*) data); Py_INCREF(Py_None); *************** *** 585,593 **** return NULL; ret = gtk_plot_remove_data(GTK_PLOT(self->obj), GTK_PLOT_DATA(data->obj)); ! g_snprintf(key, sizeof(key), "data_%p", data); pygtkextra_set_data(self, key, Py_None); /* not perfect, but harmless */ return PyInt_FromLong(ret); } %% override gtk_plot_get_pixel static PyObject * --- 751,781 ---- return NULL; ret = gtk_plot_remove_data(GTK_PLOT(self->obj), GTK_PLOT_DATA(data->obj)); ! g_snprintf(key, sizeof(key), "data_%p", data->obj); pygtkextra_set_data(self, key, Py_None); /* not perfect, but harmless */ return PyInt_FromLong(ret); } %% + override gtk_plot_add_function kwargs + static PyObject * + _wrap_gtk_plot_add_function(PyGObject *self, PyObject *args, PyObject *kwargs) + { + static char *kwlist[] = { "function", NULL }; + PyObject *function; + PyObject *data; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GtkPlot.add_function", kwlist, &function)) + return NULL; + + if (!PyCallable_Check(function)) { + PyErr_SetString(PyExc_RuntimeError, "function argument must be callable"); + return NULL; + } + + data = pygobject_new( (GObject*) gtk_plot_add_function(GTK_PLOT(self->obj), pygtkextra_plot_function)); + pygtkextra_set_data( (PyGObject*) data, function_key, function); + + return data; + } + %% override gtk_plot_get_pixel static PyObject * *************** *** 692,696 **** } %% ! override gtk_plot3d_new static int _wrap_gtk_plot3d_new(PyGObject *self, PyObject *args, PyObject *kwargs) --- 880,884 ---- } %% ! override gtk_plot3d_new kwargs static int _wrap_gtk_plot3d_new(PyGObject *self, PyObject *args, PyObject *kwargs) *************** *** 702,706 **** if (PyArg_ParseTupleAndKeywords(args, kwargs, "|O!:GtkPlot3D.__init__", kwlist1, &PyGdkDrawable_Type, &drawable)) { ! self->obj = (GObject *)gtk_plot3d_new(GDK_DRAWABLE(drawable->obj)); } else { --- 890,894 ---- if (PyArg_ParseTupleAndKeywords(args, kwargs, "|O!:GtkPlot3D.__init__", kwlist1, &PyGdkDrawable_Type, &drawable)) { ! self->obj = (GObject *)gtk_plot3d_new(drawable ? GDK_DRAWABLE(drawable->obj) : NULL); } else { *************** *** 713,722 **** &PyGdkDrawable_Type, &drawable)) return -1; ! if (drawable) ! self->obj = (GObject *)gtk_plot3d_new_with_size(GDK_DRAWABLE(drawable->obj), ! width, height); ! else ! self->obj = (GObject *)gtk_plot3d_new_with_size(NULL, ! width, height); } --- 901,906 ---- &PyGdkDrawable_Type, &drawable)) return -1; ! self->obj = (GObject *)gtk_plot3d_new_with_size(drawable ? GDK_DRAWABLE(drawable->obj) : NULL, ! width, height); } *************** *** 729,735 **** } %% ignore plot3d_construct plot3d_construct_with_size %% ! ignore-glob *_get_type --- 913,970 ---- } %% + override gtk_plot3d_major_grids_visible noargs + static PyObject * + _wrap_gtk_plot3d_major_grids_visible(PyGObject *self) + { + gboolean x, y, z; + gtk_plot3d_major_grids_visible(GTK_PLOT3D(self->obj), &x, &y, &z); + return Py_BuildValue("(iiii)", (int) x, (int) x, (int) x, (int) x); + } + %% + override gtk_plot3d_minor_grids_visible noargs + static PyObject * + _wrap_gtk_plot3d_minor_grids_visible(PyGObject *self) + { + gboolean x, y, z; + gtk_plot3d_minor_grids_visible(GTK_PLOT3D(self->obj), &x, &y, &z); + return Py_BuildValue("(iiii)", (int) x, (int) x, (int) x, (int) x); + } + %% + %% ignore plot3d_construct plot3d_construct_with_size + %% ! override gtk_plot_surface_new kwargs ! static int ! _wrap_gtk_plot_surface_new(PyGObject *self, PyObject *args, PyObject *kwargs) ! { ! static char *kwlist[] = { "function", NULL }; ! PyObject *function = NULL; ! ! if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:GtkPlotSurface.__init__", kwlist, &function)) ! return -1; ! ! if (!function) ! self->obj = (GObject *)gtk_plot_surface_new(); ! else { ! if (!PyCallable_Check(function)) { ! PyErr_SetString(PyExc_RuntimeError, "function argument must be callable"); ! return -1; ! } ! self->obj = (GObject *)gtk_plot_surface_new_function(pygtkextra_plot_function_3D); ! if(self->obj) ! pygtkextra_set_data(self, function_key, function); ! } ! if (!self->obj) { ! PyErr_SetString(PyExc_RuntimeError, "could not create GtkPlotSurface object"); ! return -1; ! } ! pygobject_register_wrapper((PyObject *)self); ! return 0; ! } ! %% ! ignore-glob ! *_get_type ! *_construct |
From: <pyt...@li...> - 2002-12-31 18:04:22
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/examples In directory sc8-pr-cvs1:/tmp/cvs-serv27404/examples Modified Files: testgtkplot.py testgtkplot3d.py testpixmap.py Log Message: more Index: testgtkplot.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkplot.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** testgtkplot.py 24 Dec 2002 18:49:10 -0000 1.6 --- testgtkplot.py 31 Dec 2002 18:04:18 -0000 1.7 *************** *** 7,10 **** --- 7,12 ---- scale = 1.0 + def __del__(self): + print 'Application.__del__' def __init__(self): *************** *** 115,120 **** (i, x, y) = canvas.get_active_point() print "Active point: %d -> %f %f" % (i, x, y) ! #canvas.get_active_data().add_marker(i) ! #canvas.get_active_plot().queue_draw() elif item.type == gtkextra.PLOT_CANVAS_MARKER: print "Item selected: MARKER" --- 117,122 ---- (i, x, y) = canvas.get_active_point() print "Active point: %d -> %f %f" % (i, x, y) ! canvas.get_active_data().add_marker(i) ! canvas.get_active_plot().queue_draw() elif item.type == gtkextra.PLOT_CANVAS_MARKER: print "Item selected: MARKER" *************** *** 196,202 **** data.set_legend("Line + Symbol") ! #data = plot.add_function(self.function) ! #data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, blue) ! #data.set_legend("Function Plot") def build_example2(self, plot): --- 198,204 ---- data.set_legend("Line + Symbol") ! data = plot.add_function(self.function) ! data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 0, blue) ! data.set_legend("Function Plot") def build_example2(self, plot): *************** *** 209,215 **** blue = colormap.alloc_color("blue") ! #data = plot.add_function(self.gaussian) ! #data.set_line_attributes(gtkextra.PLOT_LINE_DASHED, 2, dark_green) ! #data.set_legend("Gaussian") data = gtkextra.PlotBar(gtk.ORIENTATION_VERTICAL) --- 211,217 ---- blue = colormap.alloc_color("blue") ! data = plot.add_function(self.gaussian) ! data.set_line_attributes(gtkextra.PLOT_LINE_DASHED, 0, 0, 2, dark_green) ! data.set_legend("Gaussian") data = gtkextra.PlotBar(gtk.ORIENTATION_VERTICAL) Index: testgtkplot3d.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkplot3d.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** testgtkplot3d.py 30 Dec 2002 20:42:12 -0000 1.2 --- testgtkplot3d.py 31 Dec 2002 18:04:18 -0000 1.3 *************** *** 6,9 **** --- 6,11 ---- class Application(gtk.Window): + def __del__(self): + print 'Application.__del__' def __init__(self): *************** *** 32,37 **** canvas.add_plot(plot, 0.10, 0.06) ! #surface = gtkextra.PlotSurface(self.function) #FIXME SOON ! surface = gtkextra.PlotSurface() surface.set_xstep(0.025) surface.set_ystep(0.025) --- 34,38 ---- canvas.add_plot(plot, 0.10, 0.06) ! surface = gtkextra.PlotSurface(self.function) surface.set_xstep(0.025) surface.set_ystep(0.025) *************** *** 78,84 **** canvas.refresh() - def mainloop(self): - mainloop() - def quit(self, *args): gtk.main_quit() --- 79,82 ---- Index: testpixmap.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testpixmap.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testpixmap.py 10 Jul 2002 19:06:54 -0000 1.1.1.1 --- testpixmap.py 31 Dec 2002 18:04:18 -0000 1.2 *************** *** 1,8 **** #!/usr/bin/env python ! from gtk import * ! from gtkextra import * ! class Application(GtkWindow): cloud_xpm = [ --- 1,8 ---- #!/usr/bin/env python ! import gtk ! import gtkextra ! class Application(gtk.Window): cloud_xpm = [ *************** *** 74,99 **** def __init__(self): ! GtkWindow.__init__(self, title="GtkPlotPixmap Demo") ! self.set_usize(500, 320) ! self.connect("destroy", mainquit) colormap = self.get_colormap() ! canvas = GtkPlotCanvas(PLOT_LETTER_W, PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(PLOT_CANVAS_DND_FLAGS) self.add(canvas) ! plot = GtkPlot(width=0.5, height=0.25) plot.set_range(0.0, 1.0, 0.0, 1.4) plot.legends_move(0.5, 0.05) plot.set_legends_border(0, 0) ! plot.axis_hide_title(PLOT_AXIS_TOP) ! plot.axis_show_ticks(PLOT_AXIS_BOTTOM, 15, 3) ! plot.axis_set_ticks(PLOT_AXIS_X, 1.0, 1) ! plot.axis_set_ticks(PLOT_AXIS_Y, 1.0, 1) ! plot.axis_set_visible(PLOT_AXIS_TOP, TRUE) ! plot.axis_set_visible(PLOT_AXIS_RIGHT, TRUE) ! plot.x0_set_visible(TRUE) ! plot.y0_set_visible(TRUE) canvas.add_plot(plot, 0.15, 0.06) --- 74,100 ---- def __init__(self): ! gtk.Window.__init__(self) ! self.connect("destroy", self.quit) ! self.set_title=("GtkPlot3D Demo") ! self.set_size_request(550, 650) colormap = self.get_colormap() ! canvas = gtkextra.PlotCanvas(gtkextra.PLOT_LETTER_W, gtkextra.PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(gtkextra.PLOT_CANVAS_DND_FLAGS) self.add(canvas) ! plot = gtkextra.Plot(width=0.5, height=0.25) plot.set_range(0.0, 1.0, 0.0, 1.4) plot.legends_move(0.5, 0.05) plot.set_legends_border(0, 0) ! plot.axis_hide_title(gtkextra.PLOT_AXIS_TOP) ! plot.axis_show_ticks(gtkextra.PLOT_AXIS_BOTTOM, 15, 3) ! plot.axis_set_ticks(gtkextra.PLOT_AXIS_X, 1.0, 1) ! plot.axis_set_ticks(gtkextra.PLOT_AXIS_Y, 1.0, 1) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_TOP, gtk.TRUE) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_RIGHT, gtk.TRUE) ! plot.x0_set_visible(gtk.TRUE) ! plot.y0_set_visible(gtk.TRUE) canvas.add_plot(plot, 0.15, 0.06) *************** *** 103,117 **** py2 = [.12, .22, .27, .12, .52, .62] ! (pixmap, mask) = create_pixmap_from_xpm_d(colormap, None, ! self.cloud_xpm) ! data = GtkPlotPixmap(pixmap, mask) ! data.set_points(px1, py1, px2, py2) data.set_legend("Pixmap 1") plot.add_data(data) ! (pixmap, mask) = create_pixmap_from_xpm_d(colormap, None, ! self.suncloud_xpm) ! data = GtkPlotPixmap(pixmap, mask) ! data.set_points(px2, py2) data.set_legend("Pixmap 2") plot.add_data(data) --- 104,119 ---- py2 = [.12, .22, .27, .12, .52, .62] ! (pixmap, mask) = gtk.gdk.pixmap_colormap_create_from_xpm_d(None, colormap, ! None, self.cloud_xpm) ! data = gtkextra.PlotPixmap(pixmap, mask) ! data.set_points(x=px1, y=py1) data.set_legend("Pixmap 1") plot.add_data(data) ! (pixmap, mask) = gtk.gdk.pixmap_colormap_create_from_xpm_d(None, colormap, ! None, self.suncloud_xpm) ! ! data = gtkextra.PlotPixmap(pixmap, mask) ! data.set_points(x=px2, y=py2) data.set_legend("Pixmap 2") plot.add_data(data) *************** *** 125,132 **** pass ! def mainloop(self): ! mainloop() if __name__ == '__main__': app = Application() ! app.mainloop() --- 127,135 ---- pass ! def quit(self, *args): ! gtk.main_quit() if __name__ == '__main__': app = Application() ! #app.connect("destroy", lambda win : gtk.main_quit) ! gtk.mainloop() |
From: <pyt...@li...> - 2002-12-30 20:42:16
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/gtkextra In directory sc8-pr-cvs1:/tmp/cvs-serv27635/gtkextra Modified Files: Makefile.am gtkextra.override mycodegen.py Added Files: _config.py.in Log Message: more --- NEW FILE: _config.py.in --- # @configure_input@ import string PREFIX='@prefix@' PKGDATADIR = string.replace('@datadir@/@PACKAGE@','${prefix}', PREFIX) PYDIR= string.replace('@pythondir@','${prefix}', PREFIX) VERSION='@VERSION@' PYGTK_DEFSDIR='@PYGTK_DEFSDIR@' del string Index: Makefile.am =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/Makefile.am,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Makefile.am 24 Dec 2002 18:49:10 -0000 1.5 --- Makefile.am 30 Dec 2002 20:42:13 -0000 1.6 *************** *** 1,4 **** pygtkextradir = $(pythondir)/gtkextra ! pygtkextra_PYTHON = __init__.py pygtkextraexecdir = $(pyexecdir)/gtkextra --- 1,6 ---- pygtkextradir = $(pythondir)/gtkextra ! pygtkextra_PYTHON = \ ! __init__.py \ ! _config.py pygtkextraexecdir = $(pyexecdir)/gtkextra *************** *** 18,22 **** # gtkextra module - #GTKEXTRA_LIBS=-lgtkextra-x11-1.1 #DOES NOT WORK pygtkextraexec_LTLIBRARIES = _gtkextramodule.la _gtkextramodule_la_CFLAGS = $(PYGTK_CFLAGS) $(GTK_CFLAGS) $(GTKEXTRA_CFLAGS) --- 20,23 ---- *************** *** 29,40 **** CLEANFILES += gtkextra.c defs_DATA += gtkextra.defs gtkextra-types.defs ! EXTRA_DIST += gtkextra.override ! #CODEGEN=$(PYGTK_DEFSDIR)/../codegen/codegen.py ! CODEGEN=$(srcdir)/mycodegen.py .defs.c: (cd $(srcdir) \ ! && $(PYTHON) $(CODEGEN) \ --register $(PYGTK_DEFSDIR)/pango-types.defs \ --register $(PYGTK_DEFSDIR)/gdk-types.defs \ --- 30,40 ---- CLEANFILES += gtkextra.c defs_DATA += gtkextra.defs gtkextra-types.defs ! EXTRA_DIST += gtkextra.override mycodegen.py ! CODEGEN=$(PYTHON) $(srcdir)/mycodegen.py .defs.c: (cd $(srcdir) \ ! && $(CODEGEN) \ --register $(PYGTK_DEFSDIR)/pango-types.defs \ --register $(PYGTK_DEFSDIR)/gdk-types.defs \ *************** *** 45,46 **** --- 45,49 ---- && rm -f gen-$*.c + # a hack so that _config.py is not included in the final package. + dist-hook: + -rm -f $(distdir)/_config.py Index: gtkextra.override =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.override,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** gtkextra.override 24 Dec 2002 18:49:10 -0000 1.6 --- gtkextra.override 30 Dec 2002 20:42:13 -0000 1.7 *************** *** 692,694 **** --- 692,735 ---- } %% + override gtk_plot3d_new + static int + _wrap_gtk_plot3d_new(PyGObject *self, PyObject *args, PyObject *kwargs) + { + static char *kwlist1[] = { "drawable", NULL }; + static char *kwlist2[] = { "width", "height", "drawable", NULL }; + PyGObject *drawable = NULL; + + if (PyArg_ParseTupleAndKeywords(args, kwargs, "|O!:GtkPlot3D.__init__", + kwlist1, &PyGdkDrawable_Type, &drawable)) { + self->obj = (GObject *)gtk_plot3d_new(GDK_DRAWABLE(drawable->obj)); + } + else { + double width, height; + PyErr_Clear(); + /* It would have been nice if optional arguments were last in prototype. */ + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "dd|O!:GtkPlot3D.__init__", + kwlist2, + &width, &height, + &PyGdkDrawable_Type, &drawable)) + return -1; + if (drawable) + self->obj = (GObject *)gtk_plot3d_new_with_size(GDK_DRAWABLE(drawable->obj), + width, height); + else + self->obj = (GObject *)gtk_plot3d_new_with_size(NULL, + width, height); + } + + if (!self->obj) { + PyErr_SetString(PyExc_RuntimeError, "could not create GtkPlot3D object"); + return -1; + } + pygobject_register_wrapper((PyObject *)self); + return 0; + } + %% + ignore + plot3d_construct + plot3d_construct_with_size + %% ignore-glob *_get_type Index: mycodegen.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/mycodegen.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mycodegen.py 11 Jul 2002 19:17:44 -0000 1.1 --- mycodegen.py 30 Dec 2002 20:42:13 -0000 1.2 *************** *** 1,13 **** #!/bin/env python ! # This is a temporary hack. import sys ! sys.path.append('/usr/share/pygtk/2.0/') ! del sys - # Use the PyGtk2 codegen modules from codegen.argtypes import matcher import codegen.codegen - matcher.register('GdkWChar', matcher.get('gint32')) --- 1,14 ---- #!/bin/env python ! # Use the PyGtk2 codegen modules. ! # Allow new types to be registered. ! ! import _config import sys ! import os ! sys.path.append(os.path.join(_config.PYGTK_DEFSDIR, '../')) from codegen.argtypes import matcher import codegen.codegen matcher.register('GdkWChar', matcher.get('gint32')) |
From: <pyt...@li...> - 2002-12-30 20:42:15
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/examples In directory sc8-pr-cvs1:/tmp/cvs-serv27635/examples Modified Files: testgtkplot3d.py Log Message: more Index: testgtkplot3d.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkplot3d.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testgtkplot3d.py 10 Jul 2002 19:06:52 -0000 1.1.1.1 --- testgtkplot3d.py 30 Dec 2002 20:42:12 -0000 1.2 *************** *** 1,35 **** #!/usr/bin/env python ! from gtk import * ! from gtkextra import * from math import cos ! class Application(GtkWindow): def __init__(self): ! GtkWindow.__init__(self, title="GtkPlot3D Demo") ! self.set_usize(550, 650) ! self.connect("destroy", mainquit) ! scrollwin = GtkScrolledWindow() ! scrollwin.set_policy(POLICY_ALWAYS, POLICY_ALWAYS) self.add(scrollwin) ! canvas = GtkPlotCanvas(PLOT_LETTER_W, PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) ! plot = GtkPlot3D(width=0.7, height=0.7) ! plot.axis_set_minor_ticks(PLOT_AXIS_X, 1) ! plot.axis_set_minor_ticks(PLOT_AXIS_Y, 1) ! plot.axis_show_ticks(PLOT_SIDE_XY, PLOT_TICKS_OUT, PLOT_TICKS_OUT) ! plot.axis_show_ticks(PLOT_SIDE_XZ, PLOT_TICKS_OUT, PLOT_TICKS_OUT) ! plot.axis_show_ticks(PLOT_SIDE_YX, PLOT_TICKS_OUT, PLOT_TICKS_OUT) ! plot.axis_show_ticks(PLOT_SIDE_YZ, PLOT_TICKS_OUT, PLOT_TICKS_OUT) ! plot.axis_show_ticks(PLOT_SIDE_ZX, PLOT_TICKS_OUT, PLOT_TICKS_OUT) ! plot.axis_show_ticks(PLOT_SIDE_ZY, PLOT_TICKS_OUT, PLOT_TICKS_OUT) canvas.add_plot(plot, 0.10, 0.06) ! surface = GtkPlotSurface(self.function) surface.set_xstep(0.025) surface.set_ystep(0.025) --- 1,37 ---- #!/usr/bin/env python ! import gtk ! import gtkextra from math import cos ! class Application(gtk.Window): def __init__(self): ! gtk.Window.__init__(self) ! self.set_title=("GtkPlot3D Demo") ! self.set_size_request(550, 650) ! self.connect("destroy", self.quit) ! scrollwin = gtk.ScrolledWindow() ! scrollwin.set_policy(gtk.POLICY_ALWAYS, gtk.POLICY_ALWAYS) self.add(scrollwin) ! canvas = gtkextra.PlotCanvas(gtkextra.PLOT_LETTER_W, gtkextra.PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(gtkextra.PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) ! plot = gtkextra.Plot3D(width=0.7, height=0.7) ! plot.axis_set_minor_ticks(gtkextra.PLOT_AXIS_X, 1) ! plot.axis_set_minor_ticks(gtkextra.PLOT_AXIS_Y, 1) ! plot.axis_show_ticks(gtkextra.PLOT_SIDE_XY, gtkextra.PLOT_TICKS_OUT, gtkextra.PLOT_TICKS_OUT) ! plot.axis_show_ticks(gtkextra.PLOT_SIDE_XZ, gtkextra.PLOT_TICKS_OUT, gtkextra.PLOT_TICKS_OUT) ! plot.axis_show_ticks(gtkextra.PLOT_SIDE_YX, gtkextra.PLOT_TICKS_OUT, gtkextra.PLOT_TICKS_OUT) ! plot.axis_show_ticks(gtkextra.PLOT_SIDE_YZ, gtkextra.PLOT_TICKS_OUT, gtkextra.PLOT_TICKS_OUT) ! plot.axis_show_ticks(gtkextra.PLOT_SIDE_ZX, gtkextra.PLOT_TICKS_OUT, gtkextra.PLOT_TICKS_OUT) ! plot.axis_show_ticks(gtkextra.PLOT_SIDE_ZY, gtkextra.PLOT_TICKS_OUT, gtkextra.PLOT_TICKS_OUT) canvas.add_plot(plot, 0.10, 0.06) ! #surface = gtkextra.PlotSurface(self.function) #FIXME SOON ! surface = gtkextra.PlotSurface() surface.set_xstep(0.025) surface.set_ystep(0.025) *************** *** 37,49 **** plot.add_data(surface) ! button = GtkButton("Rotate X") button.connect("clicked", self.rotate_x, canvas, plot) canvas.put(button, 150, 0) ! button = GtkButton("Rotate Y") button.connect("clicked", self.rotate_y, canvas, plot) canvas.put(button, 230, 0) ! button = GtkButton("Rotate Z") button.connect("clicked", self.rotate_z, canvas, plot) canvas.put(button, 310, 0) --- 39,51 ---- plot.add_data(surface) ! button = gtk.Button("Rotate X") button.connect("clicked", self.rotate_x, canvas, plot) canvas.put(button, 150, 0) ! button = gtk.Button("Rotate Y") button.connect("clicked", self.rotate_y, canvas, plot) canvas.put(button, 230, 0) ! button = gtk.Button("Rotate Z") button.connect("clicked", self.rotate_z, canvas, plot) canvas.put(button, 310, 0) *************** *** 79,83 **** mainloop() ! if __name__ == '__main__': app = Application() ! app.mainloop() --- 81,88 ---- mainloop() ! def quit(self, *args): ! gtk.main_quit() ! ! if __name__ == '__main__': app = Application() ! gtk.main() |
From: <pyt...@li...> - 2002-12-30 20:42:15
|
Update of /cvsroot/python-gtkextra/python-gtkextra2 In directory sc8-pr-cvs1:/tmp/cvs-serv27635 Modified Files: AUTHORS autogen.sh configure.in Log Message: more Index: AUTHORS =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/AUTHORS,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** AUTHORS 10 Jul 2002 19:06:49 -0000 1.1.1.1 --- AUTHORS 30 Dec 2002 20:42:12 -0000 1.2 *************** *** 1 **** ! FIXME --- 1,6 ---- ! Andreas Voegele wrote the python bindings for GtkExtra-0.99.x ! under PyGtk-1 and Gtk-1.2. He as since left the project. ! ! Toby D. Reeves <tr...@us...> wrote the python ! bindings for GtkExtra-2 under PyGtk-2 and Gtk-2.x. This is an ! almost complete rewrite with very little of Andreas' C code left. Index: autogen.sh =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/autogen.sh,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** autogen.sh 22 Jul 2002 13:06:54 -0000 1.2 --- autogen.sh 30 Dec 2002 20:42:12 -0000 1.3 *************** *** 98,102 **** $AUTOMAKE -a $am_opt ! $AUTOHEADER $AUTOCONF cd $ORIGDIR --- 98,102 ---- $AUTOMAKE -a $am_opt ! #$AUTOHEADER $AUTOCONF cd $ORIGDIR Index: configure.in =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/configure.in,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** configure.in 22 Jul 2002 13:06:54 -0000 1.2 --- configure.in 30 Dec 2002 20:42:12 -0000 1.3 *************** *** 57,73 **** dnl gtk+extra ! PKG_CHECK_MODULES(GTKEXTRA, gtkextra-2.0 >= gtkextra_required_version,,[AC_MSG_ERROR(maybe you want gtk+extra for gtk-gnome-1-2 branch)]) AC_SUBST(GTKEXTRA_CFLAGS) AC_SUBST(GTKEXTRA_LIBS) dnl pygtk ! PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= pygtk_required_version,,[AC_MSG_ERROR(maybe you want the gtk-gnome-1-2 branch?)]) AC_SUBST(PYGTK_CFLAGS) AC_MSG_CHECKING(PYGTK_DEFSDIR) PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir "pygtk-2.0"` - AC_MSG_RESULT($PYGTK_DEFSDIR) AC_SUBST(PYGTK_DEFSDIR) ! AC_ARG_ENABLE(numpy, --- 57,72 ---- dnl gtk+extra ! PKG_CHECK_MODULES(GTKEXTRA, gtkextra-2.0 >= gtkextra_required_version) AC_SUBST(GTKEXTRA_CFLAGS) AC_SUBST(GTKEXTRA_LIBS) dnl pygtk ! PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= pygtk_required_version) AC_SUBST(PYGTK_CFLAGS) AC_MSG_CHECKING(PYGTK_DEFSDIR) PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir "pygtk-2.0"` AC_SUBST(PYGTK_DEFSDIR) ! AC_MSG_RESULT($PYGTK_DEFSDIR) AC_ARG_ENABLE(numpy, *************** *** 110,113 **** --- 109,113 ---- python-gtkextra.pc gtkextra/Makefile + gtkextra/_config.py python-gtkextra.spec) AC_OUTPUT |
From: <pyt...@li...> - 2002-12-30 14:22:05
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/gtkextra In directory sc8-pr-cvs1:/tmp/cvs-serv26188 Added Files: __init__.py Log Message: missing file --- NEW FILE: __init__.py --- try: import ltihooks except: pass import _gtkextra from _gtkextra import * # Allow other modules to install data handlers for arbitrary types. # # Handler must return a tuple (obj, buffer, buffer_len) of types # (PyObject, Long, Int). # # Look at the C code for details of exactly what happens. # # The 'obj' PyObject will be stored in the data set until # set to something else or the data set is destroyed. # # You must take responsibility for life of the obj and ensure # that the buffer and buffer_len do not change unless # you call set_points() again before they are used. _handlers = [] def add_handler( handler ): _handlers.insert(0, handler) def _data_from_pyobject_callback(obj): for h in _handlers: r = h(obj) if not r is None: return r raise TypeError('No handler installed for type %s' % type(obj)) _gtkextra._set_data_from_pyobject_callback(_data_from_pyobject_callback) def _array_handler( obj ): """ Data handler array.array's and any sequence of numbers including lists of numbers. """ import array if type(obj) is array.ArrayType: a = obj else: a = array.array('d', obj) return (a,) + a.buffer_info() add_handler( _array_handler ) |
Update of /cvsroot/python-gtkextra/python-gtkextra2/gtkextra In directory sc8-pr-cvs1:/tmp/cvs-serv4818/gtkextra Modified Files: Makefile.am gtkextra-addons.defs gtkextra-types.defs gtkextra.defs gtkextra.override gtkextramodule.c Added Files: ltihooks.py Log Message: Working toward first release. Much works correctly now. --- NEW FILE: ltihooks.py --- # -*- Mode: Python; py-indent-offset: 4 -*- # ltihooks.py: python import hooks that understand libtool libraries. # Copyright (C) 2000 James Henstridge. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import os, ihooks class LibtoolHooks(ihooks.Hooks): def get_suffixes(self): """Like normal get_suffixes, but adds .la suffixes to list""" ret = ihooks.Hooks.get_suffixes(self) ret.insert(0, ('module.la', 'rb', 3)) ret.insert(0, ('.la', 'rb', 3)) return ret def load_dynamic(self, name, filename, file=None): """Like normal load_dynamic, but treat .la files specially""" if len(filename) > 3 and filename[-3:] == '.la': fp = open(filename, 'r') dlname = '' installed = 1 line = fp.readline() while line: if len(line) > 7 and line[:7] == 'dlname=': dlname = line[8:-2] elif len(line) > 10 and line[:10] == 'installed=': installed = line[10:-1] == 'yes' line = fp.readline() fp.close() if dlname: if installed: filename = os.path.join(os.path.dirname(filename), dlname) else: filename = os.path.join(os.path.dirname(filename), '.libs', dlname) return ihooks.Hooks.load_dynamic(self, name, filename, file) importer = ihooks.ModuleImporter() importer.set_hooks(LibtoolHooks()) def install(): importer.install() def uninstall(): importer.uninstall() install() Index: Makefile.am =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Makefile.am 22 Jul 2002 13:06:54 -0000 1.4 --- Makefile.am 24 Dec 2002 18:49:10 -0000 1.5 *************** *** 19,29 **** # gtkextra module #GTKEXTRA_LIBS=-lgtkextra-x11-1.1 #DOES NOT WORK ! pygtkextraexec_LTLIBRARIES = gtkextramodule.la ! gtkextramodule_la_CFLAGS = $(PYGTK_CFLAGS) $(GTK_CFLAGS) $(GTKEXTRA_CFLAGS) ! gtkextramodule_la_LDFLAGS = -module -avoid-version -export-symbols-regex initgtkextra ! gtkextramodule_la_LIBADD = $(GTKEXTRA_LIBS) $(PYGTK_LIBS) $(GTK_LIBS) ! gtkextramodule_la_SOURCES = gtkextramodule.c gtkextra.c: $(COMMONDEFS) gtkextra-addons.defs gtkextra-types.defs gtkextra.override ! nodist_gtkextramodule_la_SOURCES = gtkextra.c CLEANFILES += gtkextra.c --- 19,29 ---- # gtkextra module #GTKEXTRA_LIBS=-lgtkextra-x11-1.1 #DOES NOT WORK ! pygtkextraexec_LTLIBRARIES = _gtkextramodule.la ! _gtkextramodule_la_CFLAGS = $(PYGTK_CFLAGS) $(GTK_CFLAGS) $(GTKEXTRA_CFLAGS) ! _gtkextramodule_la_LDFLAGS = -module -avoid-version -export-symbols-regex initgtkextra ! _gtkextramodule_la_LIBADD = $(GTKEXTRA_LIBS) $(PYGTK_LIBS) $(GTK_LIBS) ! _gtkextramodule_la_SOURCES = gtkextramodule.c gtkextra.c: $(COMMONDEFS) gtkextra-addons.defs gtkextra-types.defs gtkextra.override ! nodist__gtkextramodule_la_SOURCES = gtkextra.c CLEANFILES += gtkextra.c Index: gtkextra-addons.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra-addons.defs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** gtkextra-addons.defs 16 Jul 2002 17:05:14 -0000 1.2 --- gtkextra-addons.defs 24 Dec 2002 18:49:10 -0000 1.3 *************** *** 20,22 **** --- 20,26 ---- ) + (define-function _set_data_from_pyobject_callback + (c-name "_set_data_from_pyobject_callback") + ) + Index: gtkextra-types.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra-types.defs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gtkextra-types.defs 16 Jul 2002 17:05:15 -0000 1.3 --- gtkextra-types.defs 24 Dec 2002 18:49:10 -0000 1.4 *************** *** 131,134 **** --- 131,144 ---- (parent "GtkWidget") (c-name "GtkPlotData") + (fields + '("gdouble*" "x") + '("gdouble*" "dx") + '("gdouble*" "y") + '("gdouble*" "dy") + '("gdouble*" "z") + '("gdouble*" "dz") + '("gdouble*" "a") + '("gdouble*" "da") + ) (gtype-id "GTK_TYPE_PLOT_DATA") ) *************** *** 239,242 **** --- 249,263 ---- ; Also gtkextra code needs all of those boxed fixed up with types and macros. + (define-boxed GtkPlotLine + (in-module "Gtk") + (c-name "GtkPlotLine") + (gtype-id "GTK_TYPE_PLOT_LINE") + (fields + '("GtkPlotLineStyle" "line_style") + '("GdkCapStyle" "cap_style") + '("GdkJoinStyle" "join_style") + ) + ) + (define-boxed PlotText (in-module "Gtk") *************** *** 273,276 **** --- 294,308 ---- ;; Enumerations and flags ... + (define-enum IconListMode + (in-module "Gtk") + (c-name "GtkIconListMode") + (gtype-id "GTK_TYPE_ICON_LIST_MODE") + (values + '("icon" "GTK_ICON_LIST_ICON") + '("text-right" "GTK_ICON_LIST_TEXT_RIGHT") + '("text-below" "GTK_ICON_LIST_TEXT_BELOW") + ) + ) + (define-enum PlotPlane (in-module "Gtk") *************** *** 407,410 **** --- 439,453 ---- ) + (define-enum PlotProjection + (in-module "Gtk") + (c-name "GtkPlotProjection") + (gtype-id "GTK_TYPE_PLOT_PROJECTION") + (values + '("none" "GTK_PLOT_PROJECT_NONE") + '("empty" "GTK_PLOT_PROJECT_EMPTY") + '("full" "GTK_PLOT_PROJECT_FULL") + ) + ) + (define-enum PlotScale (in-module "Gtk") *************** *** 555,558 **** --- 598,636 ---- ) + (define-enum PlotPageSize + (in-module "Gtk") + (c-name "GtkPlotPageSize") + (gtype-id "GTK_TYPE_PLOT_PAGE_SIZE") + (values + '("letter" "GTK_PLOT_LETTER") + '("legal" "GTK_PLOT_LEGAL") + '("a4" "GTK_PLOT_A4") + '("executive" "GTK_PLOT_EXECUTIVE") + '("custom" "GTK_PLOT_CUSTOM") + ) + ) + + (define-enum PlotPageOrientation + (in-module "Gtk") + (c-name "GtkPlotPageOrientation") + (gtype-id "GTK_TYPE_PLOT_PAGE_ORIENTATION") + (values + '("portrait" "GTK_PLOT_PORTRAIT") + '("landscape" "GTK_PLOT_LANDSCAPE") + ) + ) + + (define-enum PlotUnits + (in-module "Gtk") + (c-name "GtkPlotUnits") + (gtype-id "GTK_TYPE_PLOT_UNITS") + (values + '("pspoints" "GTK_PLOT_PSPOINTS") + '("mm" "GTK_PLOT_MM") + '("cm" "GTK_PLOT_CM") + '("inches" "GTK_PLOT_INCHES") + ) + ) + (define-enum SheetAttrType (in-module "Gtk") *************** *** 570,573 **** ) ) - - --- 648,649 ---- Index: gtkextra.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.defs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** gtkextra.defs 22 Jul 2002 13:06:55 -0000 1.5 --- gtkextra.defs 24 Dec 2002 18:49:10 -0000 1.6 *************** *** 1,13 **** ;; -*- scheme -*- ! ;; Use newer cvs version not what is stock on RH 7.3 ! ;; python2 ~/gnome-cvs/gnome-python/pygtk/codegen/h2def.py /usr/include/gtk-2.0/gtkextra/*.h >gtkextra_.defs ! ;; Then merge old defs with new defs with mergedefs.py (for fields) (include "gtkextra-types.defs") (include "gtkextra-addons.defs") - ;; From /usr/include/gtk-2.0/gtkextra/gtkbordercombo.h [...1586 lines suppressed...] (define-function gtk_toggle_combo_new - (c-name "gtk_toggle_combo_new") (is-constructor-of "GtkToggleCombo") (return-type "GtkWidget*") (parameters --- 5980,5985 ---- (define-function gtk_toggle_combo_new (is-constructor-of "GtkToggleCombo") + (c-name "gtk_toggle_combo_new") (return-type "GtkWidget*") (parameters *************** *** 5914,5917 **** ) ) - --- 6030,6032 ---- Index: gtkextra.override =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.override,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** gtkextra.override 22 Jul 2002 13:06:55 -0000 1.5 --- gtkextra.override 24 Dec 2002 18:49:10 -0000 1.6 *************** *** 30,33 **** --- 30,60 ---- #include <gtkextra/gtkextratypebuiltins.h> + static PyObject *pygtkextra_data_from_pyobject_callback = NULL; + + /* + This exists in pygtk/gtk/gtk-types.c. It is not static there, but + is exported for our use. Especially since dlopen is now not done + with RTLD_GLOBAL flags by default. Might wish to ask James if it + could be published or if there is another way. + */ + + static gboolean + pygdk_rectangle_from_pyobject(PyObject *object, GdkRectangle *rectangle) + { + g_return_val_if_fail(rectangle != NULL, FALSE); + + if (pyg_boxed_check(object, GDK_TYPE_RECTANGLE)) { + *rectangle = *pyg_boxed_get(object, GdkRectangle); + return TRUE; + } + if (PyArg_ParseTuple(object, "iiii", &rectangle->x, &rectangle->y, + &rectangle->width, &rectangle->height)) { + return TRUE; + } + PyErr_Clear(); + PyErr_SetString(PyExc_TypeError, "could not convert to GdkRectangle"); + return FALSE; + } + /* ---------------------------------------------------------------------- Fixup boo-boo's or ommissions. Probably should be fixed in gtkextra. *************** *** 42,46 **** #define GTK_TYPE_TOGGLE_COMBO (gtk_toggle_combo_get_type()) ! /* Hack boxed types. Just enought to let code generator compile. Not correct! These and lots more need to be fixed in gtkextra code. A good example is GtkIconSet in gtkiconfactory.[hc]. --- 69,73 ---- #define GTK_TYPE_TOGGLE_COMBO (gtk_toggle_combo_get_type()) ! /* Hack boxed types. Just enough to let code generator compile. Not correct! These and lots more need to be fixed in gtkextra code. A good example is GtkIconSet in gtkiconfactory.[hc]. *************** *** 53,56 **** --- 80,84 ---- */ + #define GTK_TYPE_PSFONT (gtk_psfont_get_type ()) static GType *************** *** 83,86 **** --- 111,131 ---- } + #define GTK_TYPE_PLOT_LINE (gtk_plot_line_get_type ()) + static GType + gtk_plot_line_get_type (void) + { + static GType our_type = 0; + + #if 1 //HACK + if (our_type == 0) + our_type = g_pointer_type_register_static ("GtkPlotLine"); + #else //Should be something similiar to this + if (our_type == 0) + our_type = g_boxed_type_register_static ("GtkPlotLine", + (GBoxedCopyFunc) gtk_plot_line_ref, + (GBoxedFreeFunc) gtk_plot_line_unref); + #endif + return our_type; + } static void *************** *** 90,93 **** --- 135,149 ---- } + static void + gtk_plot_draw_line_PY (GtkPlot *plot, GtkPlotLine *line, gdouble x1, gdouble y1, gdouble x2, gdouble y2) + { + gtk_plot_draw_line(plot, *line, x1, y1, x2, y2); + } + + static void + gtk_plot_set_line_attributes_PY (GtkPlot *plot, GtkPlotLine *line) + { + gtk_plot_set_line_attributes (plot, *line); + } /* This one is probably an "error" in h2def.py */ *************** *** 97,102 **** guint16 gtk_plot_canvas_unset_flags(GtkPlotCanvas *canvas, guint16 flags) { return GTK_PLOT_CANVAS_UNSET_FLAGS(canvas, flags); } ! /* cpp abuse. ! */ #define _GET_ONE_DOUBLE(_f, _c) static PyObject * \ _wrap_##_f(PyGObject *self) \ --- 153,157 ---- guint16 gtk_plot_canvas_unset_flags(GtkPlotCanvas *canvas, guint16 flags) { return GTK_PLOT_CANVAS_UNSET_FLAGS(canvas, flags); } ! /* cpp abuse */ #define _GET_ONE_DOUBLE(_f, _c) static PyObject * \ _wrap_##_f(PyGObject *self) \ *************** *** 115,228 **** } - #define _GET_ONE_DOUBLE_VEC(_f, _c) static PyObject * \ - _wrap_##_f(PyGObject *self) \ - { \ - PyObject *py_ret; \ - gdouble *p_d; \ - gint len_d; \ - \ - p_d = _f(_c(self->obj), &len_d); \ - \ - if( !(py_ret = pygtkextra_vec2py(len_d, p_d))) \ - return NULL; \ - \ - return py_ret; \ - } - - /* ---------------------------------------------------------------------- - Functions for converting Python sequence like objects To/From C arrays. - The C arrays are limited to either type gdouble* or gint*. - - This is very limited for now. It will grow to include NumPy and some - generic object get/set method look-up and use. - - May desire to more this out to separate file. - - May reuse large parts of Andreas Voegele's code here. May not. - I have to first become more familiar with the gtkextra C code. - - For now, I'll just leak.... - - Also, not doing iterators or function dataset's (yet). - - */ int ! pygtkextra_py2vec(PyObject *sequence, gint *p_n, gdouble **p_points) { ! int n = 0; ! gdouble *points = NULL; ! *p_n = 0; *p_points = NULL; ! if (sequence == Py_None || sequence == NULL) { ! /* done */ } - else if (PySequence_Check(sequence)) { - n = PySequence_Length(sequence); - if (n > 0) { - int i; - - points = g_new(gdouble, n); - for (i = 0; i < n; ++i) { - PyObject *item, *value; ! item = PySequence_GetItem(sequence, i); ! if (PyFloat_Check(item)) { ! points[i] = PyFloat_AS_DOUBLE(item); ! } else if (PyNumber_Check(item) ! && (value = PyNumber_Float(item))) { ! points[i] = PyFloat_AS_DOUBLE(value); ! Py_DECREF(value); ! } else { ! #if 1 ! PyErr_SetString(PyExc_TypeError, ! "sequence items must be numbers"); ! #endif ! Py_DECREF(item); ! g_free(points); ! return -1; ! } ! Py_DECREF(item); ! } ! } ! } ! #if 1 ! else { ! PyErr_SetString(PyExc_TypeError, "argument must be sequence or None"); ! return -2; } ! #endif ! *p_points = points; ! *p_n = n; return 0; } ! ! PyObject * ! pygtkextra_vec2py(const gint n, const gdouble *points) { ! PyObject *sequence; ! ! int i; ! if (points == NULL) { ! Py_INCREF(Py_None); ! return Py_None; ! } ! ! if ( !(sequence=PyList_New((int) n)) ) ! return NULL; ! for(i=0; i<n; i++) { ! PyObject *value; ! ! value = PyFloat_FromDouble(points[i]); ! if (!value) { ! Py_DECREF(sequence); ! return NULL; ! } ! PyList_SET_ITEM(sequence, i, value); ! } ! return sequence; } --- 170,226 ---- } int ! pygtkextra_data_from_pyobject(PyObject **out_obj, PyObject *in_obj, gint *p_n, gdouble **p_points) { ! *out_obj = NULL; *p_n = 0; *p_points = NULL; ! if ( !in_obj || (in_obj == Py_None )) { ! *out_obj = Py_None; ! Py_INCREF(Py_None); ! return 0; } ! /* ! Use the stored callback to convert into needed format. ! */ ! PyObject *arglist, *result; ! if ( !pygtkextra_data_from_pyobject_callback ) { ! PyErr_SetString(PyExc_TypeError, "There is no data callback function registered."); ! return -1; } ! arglist = Py_BuildValue("(O)", in_obj); ! result = PyEval_CallObject(pygtkextra_data_from_pyobject_callback, arglist); ! Py_DECREF(arglist); ! ! if ( !result || !PyTuple_Check(result) || PyObject_Length(result) != 3) { ! PyErr_SetString(PyExc_TypeError, "callback must return (in_obj, buffer, buffer_len)"); ! return -1; ! } ! ! *out_obj = PyTuple_GET_ITEM(result, 0); ! *p_points = (double*) PyLong_AsLong(PyTuple_GET_ITEM(result, 1)); ! *p_n = PyInt_AsLong(PyTuple_GET_ITEM(result, 2)); ! ! Py_INCREF(*out_obj); /* We now own a reference before tuple is destroyed. */ ! Py_DECREF(result); return 0; } ! static int ! pygtkextra_set_data(PyGObject *gobj, const char *key, PyObject *pobj) { ! PyObject *result = PyObject_CallMethod( (PyObject*) gobj, "set_data", "(sO)", key, pobj); ! if ( !result ) ! return -1; ! Py_DECREF(result); /* was Py_None */ ! return 0; ! } ! static PyObject * ! pygtkextra_get_data(PyGObject *gobj, const char *key) ! { ! return PyObject_CallMethod( (PyObject*) gobj, "get_data", "(s)", key); } *************** *** 270,273 **** --- 268,272 ---- import gtk.gdk.Pixmap as PyGdkPixmap_Type import gtk.gdk.Drawable as PyGdkDrawable_Type + import gtk.gdk.Rectangle as PyGdkRectangle_Type import gtk._gtk.Widget as PyGtkWidget_Type import gtk._gtk.Object as PyGtkObject_Type *************** *** 281,285 **** import gtk._gtk.Adjustment as PyGtkAdjustment_Type import gtk._gtk.HBox as PyGtkHBox_Type - %% override gtk_psfont_get_char_size --- 280,283 ---- *************** *** 290,294 **** return NULL; } - %% override-attr GtkPlotCanvasChild.data --- 288,291 ---- *************** *** 314,318 **** } } - %% override gtk_plot_data_set_points kwargs --- 311,314 ---- *************** *** 320,328 **** _wrap_gtk_plot_data_set_points(PyGObject *self, PyObject *args, PyObject *kwargs) { static char *kwlist[] = { "x", "dx", "y", "dy", "z", "dz", "a", "da", NULL }; gdouble *x = NULL, *y = NULL, *dx = NULL, *dy = NULL, *z = NULL, *dz = NULL, *a = NULL, *da = NULL; PyObject *py_x = NULL, *py_y = NULL, *py_z = NULL, *py_a = NULL; PyObject *py_dx = NULL, *py_dy = NULL, *py_dz = NULL, *py_da = NULL; ! int rx, nx, rdx, ndx, ry, ny, rdy, ndy, rz, nz, rdz, ndz, ra, na, rda, nda; gint num_points=0; --- 316,335 ---- _wrap_gtk_plot_data_set_points(PyGObject *self, PyObject *args, PyObject *kwargs) { + /* + Treat kwargs as a complete data set. + If a key is specified set value. + If a key is not specified clear value. + */ + static char *kwlist[] = { "x", "dx", "y", "dy", "z", "dz", "a", "da", NULL }; gdouble *x = NULL, *y = NULL, *dx = NULL, *dy = NULL, *z = NULL, *dz = NULL, *a = NULL, *da = NULL; PyObject *py_x = NULL, *py_y = NULL, *py_z = NULL, *py_a = NULL; PyObject *py_dx = NULL, *py_dy = NULL, *py_dz = NULL, *py_da = NULL; ! ! PyObject *py_x_out = NULL, *py_y_out = NULL, *py_z_out = NULL, *py_a_out = NULL; ! PyObject *py_dx_out = NULL, *py_dy_out = NULL, *py_dz_out = NULL, *py_da_out = NULL; ! ! int nx, ndx, ny, ndy, nz, ndz, na, nda; ! int rx, rdx, ry, rdy, rz, rdz, ra, rda; gint num_points=0; *************** *** 331,350 **** return NULL; ! rx = pygtkextra_py2vec( py_x, &nx, &x ); ! ry = pygtkextra_py2vec( py_y, &ny, &y ); ! rz = pygtkextra_py2vec( py_z, &nz, &z ); ! ra = pygtkextra_py2vec( py_a, &na, &a ); ! rdx = pygtkextra_py2vec( py_dx, &ndx, &dx ); ! rdy = pygtkextra_py2vec( py_dy, &ndy, &dy ); ! rdz = pygtkextra_py2vec( py_dz, &ndz, &dz ); ! rda = pygtkextra_py2vec( py_da, &nda, &da ); printf("n: %d %d %d %d %d %d %d %d\n", nx, ny, ndx, ndy, nz, ndz, na, nda); printf("r: %d %d %d %d %d %d %d %d\n", rx, ry, rdx, rdy, rz, rdz, ra, rda); ! if ( (rx < 0) || (ry < 0) || (rdx < 0) || (rdy < 0) ! || (rz < 0) || (rdz < 0) || (rda < 0) || (rda < 0) ) ! return NULL; num_points = MAX(nx, ndx); num_points = MAX(num_points, ny); --- 338,360 ---- return NULL; ! rx = pygtkextra_data_from_pyobject( &py_x_out, py_x, &nx, &x); ! ry = pygtkextra_data_from_pyobject( &py_y_out, py_y, &ny, &y ); ! rz = pygtkextra_data_from_pyobject( &py_z_out, py_z, &nz, &z ); ! ra = pygtkextra_data_from_pyobject( &py_a_out, py_a, &na, &a ); ! rdx = pygtkextra_data_from_pyobject( &py_dx_out, py_dx, &ndx, &dx ); ! rdy = pygtkextra_data_from_pyobject( &py_dy_out, py_dy, &ndy, &dy ); ! rdz = pygtkextra_data_from_pyobject( &py_dz_out, py_dz, &ndz, &dz ); ! rda = pygtkextra_data_from_pyobject( &py_da_out, py_da, &nda, &da ); + #if defined(_DEBUG) printf("n: %d %d %d %d %d %d %d %d\n", nx, ny, ndx, ndy, nz, ndz, na, nda); printf("r: %d %d %d %d %d %d %d %d\n", rx, ry, rdx, rdy, rz, rdz, ra, rda); ! #endif if ( (rx < 0) || (ry < 0) || (rdx < 0) || (rdy < 0) ! || (rz < 0) || (rdz < 0) || (rda < 0) || (rda < 0) ) { ! goto do_err; ! } ! num_points = MAX(nx, ndx); num_points = MAX(num_points, ny); *************** *** 355,358 **** --- 365,372 ---- num_points = MAX(num_points, nda); + #if defined(_DEBUG) + printf("num+_points = %d\n", num_points); + #endif + if ( (rx && (nx != num_points)) || (rdx && (ndx != num_points)) *************** *** 364,446 **** || (rda && (nda != num_points)) ) { PyErr_SetString(PyExc_TypeError, "argments must have same length"); } gtk_plot_data_set_numpoints(GTK_PLOT_DATA(self->obj), num_points); ! if (py_x) gtk_plot_data_set_x (GTK_PLOT_DATA(self->obj), x); ! if (py_dx) gtk_plot_data_set_dx (GTK_PLOT_DATA(self->obj), dx); ! if (py_y) gtk_plot_data_set_y (GTK_PLOT_DATA(self->obj), y); ! if (py_dy) gtk_plot_data_set_dy (GTK_PLOT_DATA(self->obj), dy); ! if (py_z) gtk_plot_data_set_z (GTK_PLOT_DATA(self->obj), z); ! if (py_dz) gtk_plot_data_set_dz (GTK_PLOT_DATA(self->obj), dz); ! if (py_a) gtk_plot_data_set_a (GTK_PLOT_DATA(self->obj), a); ! if (py_da) gtk_plot_data_set_da (GTK_PLOT_DATA(self->obj), da); Py_INCREF(Py_None); return Py_None; - } %% ! override gtk_plot_data_get_points noargs static PyObject * ! _wrap_gtk_plot_data_get_points(PyGObject *self) { ! PyObject *py_x, *py_y, *py_dx, *py_dy; ! gdouble *x, *y, *dx, *dy; ! gint num_points; ! ! gtk_plot_data_get_points(GTK_PLOT_DATA(self->obj), &x, &y, &dx, &dy, &num_points); ! ! if( !(py_x = pygtkextra_vec2py(num_points, x))) ! return NULL; ! if( !(py_y = pygtkextra_vec2py(num_points, y))) { ! Py_DECREF(py_x); ! return NULL; ! } ! if( !(py_dx = pygtkextra_vec2py(num_points, dx))) { ! Py_DECREF(py_x); ! Py_DECREF(py_y); ! return NULL; ! } ! if( !(py_dy = pygtkextra_vec2py(num_points, dy))) { ! Py_DECREF(py_x); ! Py_DECREF(py_y); ! Py_DECREF(py_dx); ! return NULL; ! } ! return Py_BuildValue("(OOOO)", py_x, py_y, py_dx, py_dy); } - %% ! override gtk_plot_data_get_x noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_x, GTK_PLOT_DATA) ! %% ! override gtk_plot_data_get_y noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_y, GTK_PLOT_DATA) ! %% ! override gtk_plot_data_get_z noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_z, GTK_PLOT_DATA) ! %% ! override gtk_plot_data_get_a noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_a, GTK_PLOT_DATA) ! %% ! override gtk_plot_data_get_dx noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_dx, GTK_PLOT_DATA) ! %% ! override gtk_plot_data_get_dy noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_dy, GTK_PLOT_DATA) ! %% ! override gtk_plot_data_get_dz noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_dz, GTK_PLOT_DATA) ! %% ! override gtk_plot_data_get_da noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_da, GTK_PLOT_DATA) ! %% override gtk_plot_canvas_get_active_point noargs --- 378,492 ---- || (rda && (nda != num_points)) ) { PyErr_SetString(PyExc_TypeError, "argments must have same length"); + goto do_err; } gtk_plot_data_set_numpoints(GTK_PLOT_DATA(self->obj), num_points); ! ! #define _DO_ONE(_x) \ ! if ( pygtkextra_set_data(self, #_x, py_ ## _x ## _out) ) \ ! goto do_err; \ ! Py_DECREF(py_ ## _x ##_out); \ ! gtk_plot_data_set_ ## _x (GTK_PLOT_DATA(self->obj), _x); \ ! ! _DO_ONE(x); ! _DO_ONE(dx); ! _DO_ONE(y); ! _DO_ONE(dy); ! _DO_ONE(z); ! _DO_ONE(dz); ! _DO_ONE(a); ! _DO_ONE(da); ! ! #undef _DO_ONE Py_INCREF(Py_None); return Py_None; + do_err: + Py_XDECREF(py_x_out); + Py_XDECREF(py_dx_out); + Py_XDECREF(py_y_out); + Py_XDECREF(py_dy_out); + Py_XDECREF(py_z_out); + Py_XDECREF(py_dz_out); + Py_XDECREF(py_a_out); + Py_XDECREF(py_da_out); + return NULL; + } %% ! override-attr GtkPlotData.x static PyObject * ! _wrap_gtk_plot_data__get_x(PyGObject *self, void *closure) { ! return pygtkextra_get_data(self, "x"); } %% ! override-attr GtkPlotData.dx ! static PyObject * ! _wrap_gtk_plot_data__get_dx(PyGObject *self, void *closure) ! { ! return pygtkextra_get_data(self, "dx"); ! } %% ! override-attr GtkPlotData.y ! static PyObject * ! _wrap_gtk_plot_data__get_y(PyGObject *self, void *closure) ! { ! return pygtkextra_get_data(self, "y"); ! } %% ! override-attr GtkPlotData.dy ! static PyObject * ! _wrap_gtk_plot_data__get_dy(PyGObject *self, void *closure) ! { ! return pygtkextra_get_data(self, "dy"); ! } %% ! override-attr GtkPlotData.z ! static PyObject * ! _wrap_gtk_plot_data__get_z(PyGObject *self, void *closure) ! { ! return pygtkextra_get_data(self, "z"); ! } %% ! override-attr GtkPlotData.dz ! static PyObject * ! _wrap_gtk_plot_data__get_dz(PyGObject *self, void *closure) ! { ! return pygtkextra_get_data(self, "dz"); ! } %% ! override-attr GtkPlotData.a ! static PyObject * ! _wrap_gtk_plot_data__get_a(PyGObject *self, void *closure) ! { ! return pygtkextra_get_data(self, "a"); ! } %% ! override-attr GtkPlotData.da ! static PyObject * ! _wrap_gtk_plot_data__get_da(PyGObject *self, void *closure) ! { ! return pygtkextra_get_data(self, "da"); ! } %% ! ignore ! gtk_plot_data_get_points ! gtk_plot_data_get_x ! gtk_plot_data_get_dx ! gtk_plot_data_get_y ! gtk_plot_data_get_dy ! gtk_plot_data_get_z ! gtk_plot_data_get_dz ! gtk_plot_data_get_a ! gtk_plot_data_get_da ! gtk_plot_data_set_x ! gtk_plot_data_set_dx ! gtk_plot_data_set_y ! gtk_plot_data_set_dy ! gtk_plot_data_set_z ! gtk_plot_data_set_dz ! gtk_plot_data_set_a ! gtk_plot_data_set_da %% override gtk_plot_canvas_get_active_point noargs *************** *** 454,474 **** return Py_BuildValue("(idd)", (int) active_point, (double) x, (double) y); } %% override gtk_plot_get_xrange noargs _GET_TWO_DOUBLE(gtk_plot_get_xrange, GTK_PLOT) ! %% override gtk_plot_get_position noargs _GET_TWO_DOUBLE(gtk_plot_get_position, GTK_PLOT) - %% override gtk_plot_get_size noargs _GET_TWO_DOUBLE(gtk_plot_get_size, GTK_PLOT) %% ignore-glob *_get_type - %% - ignore - triangulate --- 500,694 ---- return Py_BuildValue("(idd)", (int) active_point, (double) x, (double) y); } + %% + override gtk_color_combo_find_color + static PyObject * + _wrap_gtk_color_combo_find_color(PyGObject *self, PyObject *args) + { + int row, col; + GdkColor *color = NULL; + PyObject *py_color = NULL; + if (!PyArg_ParseTuple(args, "O", &py_color)) { + return NULL; + } + if (pyg_boxed_check(py_color, GDK_TYPE_COLOR)) + color = pyg_boxed_get(py_color, GdkColor); + else { + PyErr_SetString(PyExc_TypeError, "color should be a GdkColor"); + return NULL; + } + gtk_color_combo_find_color(GTK_COLOR_COMBO(self->obj), pyg_boxed_get(py_color, GdkColor), &row, &col); + return Py_BuildValue("(ii)", row, col); + } + %% + override gtk_plot_canvas_get_pixel + static PyObject * + _wrap_gtk_plot_canvas_get_pixel(PyGObject *self, PyObject *args) + { + double px, py; + int x, y; + if (!PyArg_ParseTuple(args, "dd", &px, &py)) { + return NULL; + } + gtk_plot_canvas_get_pixel(GTK_PLOT_CANVAS(self->obj), px, py, &x, &y); + return Py_BuildValue("(ii)", x, y); + } + %% + override gtk_plot_canvas_get_position + static PyObject * + _wrap_gtk_plot_canvas_get_position(PyGObject *self, PyObject *args) + { + int x, y; + gdouble px, py; + if (!PyArg_ParseTuple(args, "ii", &x, &y)) { + return NULL; + } + gtk_plot_canvas_get_position(GTK_PLOT_CANVAS(self->obj), x, y, &px, &py); + return Py_BuildValue("(dd)", px, py); + } + %% + override gtk_plot_get_internal_allocation noargs + static PyObject * + _wrap_gtk_plot_get_internal_allocation(PyGObject *self) + { + GtkAllocation allocation; + allocation = gtk_plot_get_internal_allocation(GTK_PLOT(self->obj)); + return pyg_boxed_new(GDK_TYPE_RECTANGLE, &allocation, TRUE, TRUE); + } + %% + override gtk_plot_add_data kwargs + static PyObject * + _wrap_gtk_plot_add_data(PyGObject *self, PyObject *args, PyObject *kwargs) + { + static char *kwlist[] = { "data", NULL }; + PyGObject *data; + char key[1024]; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!:GtkPlot.add_data", kwlist, &PyGtkPlotData_Type, &data)) + return NULL; + gtk_plot_add_data(GTK_PLOT(self->obj), GTK_PLOT_DATA(data->obj)); + g_snprintf(key, sizeof(key), "data_%p", data); + pygtkextra_set_data(self, key, (PyObject*) data); + Py_INCREF(Py_None); + return Py_None; + } + %% + override gtk_plot_remove_data kwargs + static PyObject * + _wrap_gtk_plot_remove_data(PyGObject *self, PyObject *args, PyObject *kwargs) + { + static char *kwlist[] = { "data", NULL }; + PyGObject *data; + int ret; + char key[1024]; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!:GtkPlot.remove_data", kwlist, &PyGtkPlotData_Type, &data)) + return NULL; + ret = gtk_plot_remove_data(GTK_PLOT(self->obj), GTK_PLOT_DATA(data->obj)); + g_snprintf(key, sizeof(key), "data_%p", data); + pygtkextra_set_data(self, key, Py_None); /* not perfect, but harmless */ + return PyInt_FromLong(ret); + } + %% + override gtk_plot_get_pixel + static PyObject * + _wrap_gtk_plot_get_pixel(PyGObject *self, PyObject *args) + { + double xx, yy; + double x, y; + if (!PyArg_ParseTuple(args, "dd", &xx, &yy)) { + return NULL; + } + gtk_plot_get_pixel(GTK_PLOT(self->obj), xx, yy, &x, &y); + return Py_BuildValue("(dd)", x, y); + } + %% + override gtk_plot_get_point + static PyObject * + _wrap_gtk_plot_get_point(PyGObject *self, PyObject *args) + { + int x, y; + double xx, yy; + if (!PyArg_ParseTuple(args, "ii", &x, &y)) { + return NULL; + } + gtk_plot_get_point(GTK_PLOT(self->obj), x, y, &xx, &yy); + return Py_BuildValue("(dd)", xx, yy); + } %% override gtk_plot_get_xrange noargs _GET_TWO_DOUBLE(gtk_plot_get_xrange, GTK_PLOT) ! %% ! override gtk_plot_get_yrange noargs ! _GET_TWO_DOUBLE(gtk_plot_get_yrange, GTK_PLOT) %% override gtk_plot_get_position noargs _GET_TWO_DOUBLE(gtk_plot_get_position, GTK_PLOT) %% override gtk_plot_get_size noargs _GET_TWO_DOUBLE(gtk_plot_get_size, GTK_PLOT) + %% + override gtk_plot_axis_get_attributes kwargs + static PyObject * + _wrap_gtk_plot_axis_get_attributes(PyGObject *self, PyObject *args, PyObject *kwargs) + { + static char *kwlist[] = { "axis", NULL }; + PyObject *py_axis = NULL; + gfloat width; + GdkColor color = {0, }; + GtkPlotAxisPos axis; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GtkPlot.axis_get_attributes", kwlist, &py_axis)) + return NULL; + if (pyg_enum_get_value(GTK_TYPE_PLOT_AXIS_POS, py_axis, (gint *)&axis)) + return NULL; + gtk_plot_axis_get_attributes(GTK_PLOT(self->obj), axis, &width, &color); + return Py_BuildValue("(dO)", (double)width, pyg_boxed_new(GDK_TYPE_COLOR, &color, TRUE, TRUE)); + } + %% + override gtk_plot_grids_visible noargs + static PyObject * + _wrap_gtk_plot_grids_visible(PyGObject *self) + { + gboolean vmajor, vminor, hmajor, hminor; + gtk_plot_grids_visible(GTK_PLOT(self->obj), &vmajor, &vminor, &hmajor, &hminor); + return Py_BuildValue("(iiii)", (int) vmajor, (int) vminor, (int) hmajor, (int) hminor); + } + %% + override gtk_plot_legends_get_position noargs + _GET_TWO_DOUBLE(gtk_plot_legends_get_position, GTK_PLOT) + %% + override gtk_plot_legends_get_allocation noargs + static PyObject * + _wrap_gtk_plot_legends_get_allocation(PyGObject *self) + { + GtkAllocation allocation; + allocation = gtk_plot_legends_get_allocation(GTK_PLOT(self->obj)); + return pyg_boxed_new(GDK_TYPE_RECTANGLE, &allocation, TRUE, TRUE); + } + %% + override _set_data_from_pyobject_callback + static PyObject * + _wrap__set_data_from_pyobject_callback(PyObject *dummy, PyObject *args) + { + + PyObject *cb; + + if (!PyArg_ParseTuple(args, "O", &cb)) { + return NULL; + } + if (cb == Py_None) { + if ( pygtkextra_data_from_pyobject_callback != NULL ) { + Py_DECREF(pygtkextra_data_from_pyobject_callback); + } + pygtkextra_data_from_pyobject_callback = NULL; + } + else { + Py_INCREF(cb); + pygtkextra_data_from_pyobject_callback = cb; + } + Py_INCREF(Py_None); + return Py_None; + } %% ignore-glob *_get_type Index: gtkextramodule.c =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextramodule.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** gtkextramodule.c 22 Jul 2002 13:06:55 -0000 1.4 --- gtkextramodule.c 24 Dec 2002 18:49:10 -0000 1.5 *************** *** 15,25 **** extern PyMethodDef pygtkextra_functions[]; DL_EXPORT(void) ! initgtkextra(void) { ! PyObject *m, *d; ! //m = Py_InitModule("gtkextra.gtkextra", pygtkextra_functions); ! m = Py_InitModule("gtkextra", pygtkextra_functions); d = PyModule_GetDict(m); --- 15,26 ---- extern PyMethodDef pygtkextra_functions[]; + PyTypeObject *_PyArray_Type; + DL_EXPORT(void) ! init_gtkextra(void) { ! PyObject *m, *d, *module; ! m = Py_InitModule("gtkextra._gtkextra", pygtkextra_functions); d = PyModule_GetDict(m); *************** *** 46,50 **** PyModule_AddIntConstant(m, "ICON_LIST_TEXT_BELOW", GTK_ICON_LIST_TEXT_BELOW); if (PyErr_Occurred()) ! Py_FatalError("could not initialise module gtkextra.gtkextra"); } --- 47,62 ---- PyModule_AddIntConstant(m, "ICON_LIST_TEXT_BELOW", GTK_ICON_LIST_TEXT_BELOW); + + if ((module = PyImport_ImportModule("array")) != NULL) { + PyObject *moddict = PyModule_GetDict(module); + _PyArray_Type = (PyTypeObject *)PyDict_GetItemString(moddict, "ArrayType"); + } + else { + Py_FatalError("could not import array"); + return; + } + + if (PyErr_Occurred()) ! Py_FatalError("could not initialise module gtkextra._gtkextra"); } |
From: <pyt...@li...> - 2002-12-24 18:49:13
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/examples In directory sc8-pr-cvs1:/tmp/cvs-serv4818/examples Modified Files: test.sh testgtkplot.py testrealtime.py Log Message: Working toward first release. Much works correctly now. Index: test.sh =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/test.sh,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** test.sh 22 Jul 2002 13:06:54 -0000 1.2 --- test.sh 24 Dec 2002 18:49:10 -0000 1.3 *************** *** 10,21 **** fi ! export PYTHONPATH=../:../gtkextra/:$PYTHONPATH if test -z $DEBUG; then ! python2 -c "import ltihooks;del ltihooks;execfile('$1')" else ! python2 -c "\ ! import ltihooks ! del ltihooks import os raw_input('Attach gdb on %d. Press return to begin \"$1\".' % os.getpid()) --- 10,20 ---- fi ! #export PYTHONPATH=../:../gtkextra/:$PYTHONPATH ! export PYTHONPATH=../:$PYTHONPATH if test -z $DEBUG; then ! python -c "execfile('$1')" else ! python -c "\ import os raw_input('Attach gdb on %d. Press return to begin \"$1\".' % os.getpid()) Index: testgtkplot.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkplot.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** testgtkplot.py 22 Jul 2002 13:06:54 -0000 1.5 --- testgtkplot.py 24 Dec 2002 18:49:10 -0000 1.6 *************** *** 9,14 **** def __init__(self): - self.hack = [] - self.nlayers = 0 self.buttons = [] --- 9,12 ---- *************** *** 68,78 **** canvas.connect("select_item", self.select_item) ! canvas.put_text(0.40, 0.02, "Times-BoldItalic", 16, 0, None, None, gtk.TRUE, gtk.JUSTIFY_CENTER, "DnD titles, legends and plots") ! canvas.put_text(0.40, 0.72, "Times-Roman", 16, 0, None, None, gtk.TRUE, gtk.JUSTIFY_CENTER, "You can use \\ssubscripts\\b\\b\\b\\b\\b\\b\\b"\ "\\b\\b\\b\\N\\Ssuperscripts") ! child = canvas.put_text(0.40, 0.755, "Times-Roman", 16, 0, None, None, gtk.TRUE, gtk.JUSTIFY_CENTER, "Format text mixing \\Bbold \\N\\i, italics, "\ --- 66,76 ---- canvas.connect("select_item", self.select_item) ! canvas.put_text(0.40, 0.02, "Helvetica", 16, 0, None, None, gtk.TRUE, gtk.JUSTIFY_CENTER, "DnD titles, legends and plots") ! canvas.put_text(0.40, 0.72, "Helvetica", 16, 0, None, None, gtk.TRUE, gtk.JUSTIFY_CENTER, "You can use \\ssubscripts\\b\\b\\b\\b\\b\\b\\b"\ "\\b\\b\\b\\N\\Ssuperscripts") ! child = canvas.put_text(0.40, 0.755, "Helvetica", 16, 0, None, None, gtk.TRUE, gtk.JUSTIFY_CENTER, "Format text mixing \\Bbold \\N\\i, italics, "\ *************** *** 83,91 **** self.show_all() ! canvas.export_ps_with_size("plotdemo.ps", eps=gtk.TRUE) print "Wrote plotdemo.ps" def move_item(self, canvas, item, new_x, new_y, *args): if item.type == gtkextra.PLOT_CANVAS_DATA: print "MOVING DATA" --- 81,90 ---- self.show_all() ! canvas.export_ps_with_size("plotdemo.ps", epsflag=gtk.TRUE) print "Wrote plotdemo.ps" def move_item(self, canvas, item, new_x, new_y, *args): + print "move_item" if item.type == gtkextra.PLOT_CANVAS_DATA: print "MOVING DATA" *************** *** 93,100 **** print "Active point: %d -> %f %f" % (i, new_x, new_y) data = canvas.get_active_data() ! x,y,dx,dy = data.get_points() x[i] = new_x y[i] = new_y ! data.set_points(x=x, y=y) return gtk.TRUE --- 92,99 ---- print "Active point: %d -> %f %f" % (i, new_x, new_y) data = canvas.get_active_data() ! x, y, dx, dy = data.x, data.y, data.dx, data.dy x[i] = new_x y[i] = new_y ! data.set_points(x=x, y=y, dx=dx, dy=dy) return gtk.TRUE *************** *** 186,191 **** data.show_yerrbars() data.set_legend("Spline + EY") - self.hack.append(data) #FIXME: Crashes without holding this. I think plot.add_data() should do a ref(). - data = gtkextra.PlotData() --- 185,188 ---- *************** *** 198,202 **** data.set_y_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 0, black) data.set_legend("Line + Symbol") - self.hack.append(data) #FIXME: Crashes without holding this. I think plot.add_data() should do a ref(). #data = plot.add_function(self.function) --- 195,198 ---- *************** *** 224,228 **** data.set_connector(gtkextra.PLOT_CONNECT_NONE) data.set_legend("V Bars") - self.hack.append(data) #FIXME: Crashes without holding this. I think plot.add_data() should do a ref(). def function(self, x, *extra): --- 220,223 ---- Index: testrealtime.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testrealtime.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** testrealtime.py 16 Jul 2002 17:05:14 -0000 1.2 --- testrealtime.py 24 Dec 2002 18:49:10 -0000 1.3 *************** *** 7,11 **** def __init__(self): - self.hack = []; gtk.Window.__init__(self) self.set_title("GtkPlot Real Time Demo") --- 7,10 ---- *************** *** 35,40 **** plot.axis_set_ticks(gtkextra.PLOT_AXIS_X, 2.0, 1) plot.axis_set_ticks(gtkextra.PLOT_AXIS_Y, 0.1, 1) ! plot.axis_set_labels_numbers(gtkextra.PLOT_AXIS_TOP, gtkextra.PLOT_LABEL_FLOAT, 0) ! plot.axis_set_labels_numbers(gtkextra.PLOT_AXIS_BOTTOM, gtkextra.PLOT_LABEL_FLOAT, 0) plot.axis_set_visible(gtkextra.PLOT_AXIS_TOP, gtk.TRUE) plot.axis_set_visible(gtkextra.PLOT_AXIS_RIGHT, gtk.TRUE) --- 34,39 ---- plot.axis_set_ticks(gtkextra.PLOT_AXIS_X, 2.0, 1) plot.axis_set_ticks(gtkextra.PLOT_AXIS_Y, 0.1, 1) ! plot.axis_set_labels_style(gtkextra.PLOT_AXIS_TOP, gtkextra.PLOT_LABEL_FLOAT, 0) ! plot.axis_set_labels_style(gtkextra.PLOT_AXIS_BOTTOM, gtkextra.PLOT_LABEL_FLOAT, 0) plot.axis_set_visible(gtkextra.PLOT_AXIS_TOP, gtk.TRUE) plot.axis_set_visible(gtkextra.PLOT_AXIS_RIGHT, gtk.TRUE) *************** *** 48,52 **** canvas.add_plot(plot, 0.15, 0.15) ! canvas.put_text(0.45, 0.05, "Times-BoldItalic", 20, 0, None, None, gtk.TRUE, gtk.JUSTIFY_CENTER, "Real Time Demo") --- 47,53 ---- canvas.add_plot(plot, 0.15, 0.15) ! #canvas.put_text(0.45, 0.05, "Times-BoldItalic", 20, 0, None, None, ! #canvas.put_text(0.45, 0.05, "Courier-Bold", 20, 0, None, None, #OK ! canvas.put_text(0.45, 0.05, "Helvetica", 20, 0, None, None, #OK gtk.TRUE, gtk.JUSTIFY_CENTER, "Real Time Demo") *************** *** 56,60 **** data.set_symbol(gtkextra.PLOT_SYMBOL_DIAMOND, gtkextra.PLOT_SYMBOL_OPAQUE, 10, 2, red, red) data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 1, red) - self.hack.append(data) plot.clip_data(gtk.TRUE) --- 57,60 ---- *************** *** 67,72 **** y = randint(0, 9) / 10.0 ! px = data.get_x() ! py = data.get_y() if px is None : px = [] if py is None : py = [] --- 67,72 ---- y = randint(0, 9) / 10.0 ! px = data.x ! py = data.y if px is None : px = [] if py is None : py = [] |
From: <pyt...@li...> - 2002-12-24 18:49:13
|
Update of /cvsroot/python-gtkextra/python-gtkextra2 In directory sc8-pr-cvs1:/tmp/cvs-serv4818 Removed Files: ltihooks.py Log Message: Working toward first release. Much works correctly now. --- ltihooks.py DELETED --- |
From: <pyt...@li...> - 2002-07-22 13:06:58
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/gtkextra In directory usw-pr-cvs1:/tmp/cvs-serv27698/gtkextra Modified Files: Makefile.am gtkextra.defs gtkextra.override gtkextramodule.c Log Message: More examples mostly run. GtkExtra fixes Index: Makefile.am =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile.am 11 Jul 2002 19:17:44 -0000 1.3 --- Makefile.am 22 Jul 2002 13:06:54 -0000 1.4 *************** *** 18,23 **** # gtkextra module ! #GTKEXTRA_LIBS=-lgtkextra #DOES NOT WORK ! #GTKEXTRA_LIBS=-lgtkextra-x11 #DOES NOT WORK pygtkextraexec_LTLIBRARIES = gtkextramodule.la gtkextramodule_la_CFLAGS = $(PYGTK_CFLAGS) $(GTK_CFLAGS) $(GTKEXTRA_CFLAGS) --- 18,22 ---- # gtkextra module ! #GTKEXTRA_LIBS=-lgtkextra-x11-1.1 #DOES NOT WORK pygtkextraexec_LTLIBRARIES = gtkextramodule.la gtkextramodule_la_CFLAGS = $(PYGTK_CFLAGS) $(GTK_CFLAGS) $(GTKEXTRA_CFLAGS) Index: gtkextra.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.defs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** gtkextra.defs 16 Jul 2002 17:05:15 -0000 1.4 --- gtkextra.defs 22 Jul 2002 13:06:55 -0000 1.5 *************** *** 2760,2766 **** ) ! (define-method set_quadtrilateral (of-object "GtkPlotDT") ! (c-name "gtk_plot_dt_set_quadtrilateral") (return-type "none") (parameters --- 2760,2766 ---- ) ! (define-method set_quadrilateral (of-object "GtkPlotDT") ! (c-name "gtk_plot_dt_set_quadrilateral") (return-type "none") (parameters *************** *** 5330,5336 **** ) ! (define-method row_resizable (of-object "GtkSheet") ! (c-name "gtk_sheet_row_resizable") (return-type "gboolean") ) --- 5330,5336 ---- ) ! (define-method rows_resizable (of-object "GtkSheet") ! (c-name "gtk_sheet_rows_resizable") (return-type "gboolean") ) Index: gtkextra.override =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.override,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** gtkextra.override 16 Jul 2002 17:05:15 -0000 1.4 --- gtkextra.override 22 Jul 2002 13:06:55 -0000 1.5 *************** *** 28,31 **** --- 28,32 ---- #include <pygtk/pygtk.h> #include <gtkextra/gtkextra.h> + #include <gtkextra/gtkextratypebuiltins.h> /* ---------------------------------------------------------------------- *************** *** 129,148 **** } - #define _GET_ONE(_x) static PyObject * \ - _wrap_gtk_plot_data_get_##_x(PyGObject *self) \ - { \ - PyObject *py_ret; \ - gdouble *points; \ - gint num_points; \ - \ - points = gtk_plot_data_get_##_x(GTK_PLOT_DATA(self->obj), &num_points); \ - \ - if( !(py_ret = pygtkextra_vec2py(num_points, points))) \ - return NULL; \ - \ - return py_ret; \ - } - - /* ---------------------------------------------------------------------- Functions for converting Python sequence like objects To/From C arrays. --- 130,133 ---- *************** *** 428,456 **** %% override gtk_plot_data_get_x noargs ! _GET_ONE(x) %% override gtk_plot_data_get_y noargs ! _GET_ONE(y) %% override gtk_plot_data_get_z noargs ! _GET_ONE(z) %% override gtk_plot_data_get_a noargs ! _GET_ONE(a) %% override gtk_plot_data_get_dx noargs ! _GET_ONE(dx) %% override gtk_plot_data_get_dy noargs ! _GET_ONE(dy) %% override gtk_plot_data_get_dz noargs ! _GET_ONE(dz) %% --- 413,441 ---- %% override gtk_plot_data_get_x noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_x, GTK_PLOT_DATA) %% override gtk_plot_data_get_y noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_y, GTK_PLOT_DATA) %% override gtk_plot_data_get_z noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_z, GTK_PLOT_DATA) %% override gtk_plot_data_get_a noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_a, GTK_PLOT_DATA) %% override gtk_plot_data_get_dx noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_dx, GTK_PLOT_DATA) %% override gtk_plot_data_get_dy noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_dy, GTK_PLOT_DATA) %% override gtk_plot_data_get_dz noargs ! _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_dz, GTK_PLOT_DATA) %% *************** *** 488,492 **** ignore triangulate - gtk_sheet_row_resizable - gtkextra_check_version - gtk_plot_dt_set_quadtrilateral --- 473,474 ---- Index: gtkextramodule.c =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextramodule.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gtkextramodule.c 16 Jul 2002 17:05:15 -0000 1.3 --- gtkextramodule.c 22 Jul 2002 13:06:55 -0000 1.4 *************** *** 8,11 **** --- 8,12 ---- #include <pygtk/pygtk.h> #include <gtkextra/gtkextra.h> + #include <gtkextra/gtkextratypebuiltins.h> void pygtkextra_register_classes(PyObject *d); |
From: <pyt...@li...> - 2002-07-22 13:06:57
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/examples In directory usw-pr-cvs1:/tmp/cvs-serv27698/examples Modified Files: test.sh testboxes.py testgtkplot.py Log Message: More examples mostly run. GtkExtra fixes Index: test.sh =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/test.sh,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** test.sh 10 Jul 2002 19:06:54 -0000 1.1.1.1 --- test.sh 22 Jul 2002 13:06:54 -0000 1.2 *************** *** 1,3 **** #!/bin/sh ! PYTHONPATH=../gtkextra/.libs LD_PRELOAD=/usr/lib/libgtkextra-x11-1.1.so.0 python2 $@ --- 1,24 ---- #!/bin/sh ! [ $1 = "-gdb" ] && DEBUG=1 && shift ! ! if test -z $1; then ! echo ! echo "Run example program in development tree" ! echo "Use: $0 [-gdb] filename.py" ! echo "Toby D. Reeves <to...@so...>" ! exit 0 ! fi ! ! export PYTHONPATH=../:../gtkextra/:$PYTHONPATH + if test -z $DEBUG; then + python2 -c "import ltihooks;del ltihooks;execfile('$1')" + else + python2 -c "\ + import ltihooks + del ltihooks + import os + raw_input('Attach gdb on %d. Press return to begin \"$1\".' % os.getpid()) + del os + execfile('$1')" + fi Index: testboxes.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testboxes.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** testboxes.py 16 Jul 2002 17:05:13 -0000 1.2 --- testboxes.py 22 Jul 2002 13:06:54 -0000 1.3 *************** *** 61,65 **** if __name__ == '__main__': - raw_input("attach now") app = Application() gtk.main() --- 61,64 ---- Index: testgtkplot.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkplot.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** testgtkplot.py 16 Jul 2002 17:05:14 -0000 1.4 --- testgtkplot.py 22 Jul 2002 13:06:54 -0000 1.5 *************** *** 241,245 **** if __name__ == '__main__': - raw_input("attach now") app = Application() gtk.main() --- 241,244 ---- |
From: <pyt...@li...> - 2002-07-22 13:06:57
|
Update of /cvsroot/python-gtkextra/python-gtkextra2 In directory usw-pr-cvs1:/tmp/cvs-serv27698 Modified Files: autogen.sh configure.in Log Message: More examples mostly run. GtkExtra fixes Index: autogen.sh =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/autogen.sh,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** autogen.sh 10 Jul 2002 19:06:49 -0000 1.1.1.1 --- autogen.sh 22 Jul 2002 13:06:54 -0000 1.2 *************** *** 13,16 **** --- 13,17 ---- DIE=0 + test -z "$AUTOMAKE" && AUTOMAKE=automake test -z "$ACLOCAL" && ACLOCAL=aclocal *************** *** 78,81 **** --- 79,85 ---- done fi + + # Delete all symbolic links to files rooted at "/" + find $srcdir -lname "/*" -exec rm {} \; #echo "Running gettextize... Ignore non-fatal messages." Index: configure.in =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/configure.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** configure.in 10 Jul 2002 19:06:49 -0000 1.1.1.1 --- configure.in 22 Jul 2002 13:06:54 -0000 1.2 *************** *** 9,20 **** dnl versions of packages we require ... - m4_define(glib_required_version, 2.0.0) - m4_define(pango_required_version, 1.0.0) - m4_define(atk_required_version, 1.0.0) m4_define(gtk_required_version, 2.0.0) ! m4_define(pygtk_required_version, 0.12.0) AC_INIT(python-gtkextra, python_gtkextra_version, ! [http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-python&component=python-gtkextra]) AC_DEFINE(PYTHON_GTKEXTRA_MAJOR_VERSION, python_gtkextra_major_version, [Python GtkExtra major version]) --- 9,18 ---- dnl versions of packages we require ... m4_define(gtk_required_version, 2.0.0) ! m4_define(pygtk_required_version, 1.99.8) ! m4_define(gtkextra_required_version, 1.1.0) AC_INIT(python-gtkextra, python_gtkextra_version, ! [http://sourceforge.net/tracker/?group_id=35371]) AC_DEFINE(PYTHON_GTKEXTRA_MAJOR_VERSION, python_gtkextra_major_version, [Python GtkExtra major version]) *************** *** 51,63 **** AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)]) - #dnl glib - #AM_PATH_GLIB_2_0(glib_required_version,,[AC_MSG_ERROR(maybe you want the gtk-gnome-1-2 branch?)],gobject $extra_mods) - - #dnl atk - #PKG_CHECK_MODULES(ATK, atk >= atk_required_version,,[AC_MSG_ERROR(maybe you want the gtk-gnome-1-2 branch?)]) - #AC_SUBST(ATK_CFLAGS) - #AC_SUBST(ATK_LIBS) - - #dnl pango #PKG_CHECK_MODULES(PANGO, pango >= pango_required_version,,[AC_MSG_ERROR(maybe you want the gtk-gnome-1-2 branch?)]) #AC_SUBST(PANGO_CFLAGS) --- 49,52 ---- *************** *** 68,85 **** dnl gtk+extra ! # HACK/TODO/FIXME: build and submit patch so gtk+extra uses pkg-config ! # Does not check version but should ! AC_PATH_PROG(GTKEXTRA_CONFIG, gtkextra-config, no) ! if test x$GTKEXTRA_CONFIG = xno ; then ! AC_MSG_ERROR(could not find gtk+extra) ! fi ! #AC_MSG_CHECKING(GTKEXTRA_CFLAGS) ! #GTKEXTRA_CFLAGS=`$GTKEXTRA_CONFIG --cflags` ! #AC_MSG_RESULT($GTKEXTRA_CFLAGS) ! #AC_MSG_CHECKING(GTKEXTRA_LIBS) ! #GTKEXTRA_LIBS=`$GTKEXTRA_CONFIG --libs` ! #AC_MSG_RESULT($GTKEXTRA_LIBS) ! #AC_SUBST(GTKEXTRA_CFLAGS) ! #AC_SUBST(GTKEXTRA_LIBS) dnl pygtk --- 57,63 ---- dnl gtk+extra ! PKG_CHECK_MODULES(GTKEXTRA, gtkextra-2.0 >= gtkextra_required_version,,[AC_MSG_ERROR(maybe you want gtk+extra for gtk-gnome-1-2 branch)]) ! AC_SUBST(GTKEXTRA_CFLAGS) ! AC_SUBST(GTKEXTRA_LIBS) dnl pygtk |
Update of /cvsroot/python-gtkextra/python-gtkextra2/examples In directory usw-pr-cvs1:/tmp/cvs-serv29381/examples Modified Files: testboxes.py testflux.py testgtkiconlist.py testgtkplot.py testpolar.py testrealtime.py Log Message: More examples partially work. Still lots to do. Index: testboxes.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testboxes.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testboxes.py 10 Jul 2002 19:06:52 -0000 1.1.1.1 --- testboxes.py 16 Jul 2002 17:05:13 -0000 1.2 *************** *** 1,32 **** #!/usr/bin/env python ! from gtk import * ! from gtkextra import * ! class Application(GtkWindow): def __init__(self): ! GtkWindow.__init__(self, title="GtkPlotBox Demo") ! self.set_usize(550, 360) ! self.connect("destroy", mainquit) ! scrollwin = GtkScrolledWindow() ! scrollwin.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = GtkPlotCanvas(PLOT_LETTER_W, PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) ! plot = GtkPlot(width=0.5, height=0.25) plot.set_range(-1.0, 1.0, -1.0, 1.4) plot.legends_move(0.51, 0.05) ! plot.set_legends_border(PLOT_BORDER_NONE) ! plot.axis_hide_title(PLOT_AXIS_TOP) ! plot.axis_show_ticks(PLOT_AXIS_BOTTOM, 15, 3) ! plot.axis_set_ticks(PLOT_AXIS_X, 1.0, 1) ! plot.axis_set_ticks(PLOT_AXIS_Y, 1.0, 1) ! plot.x0_set_visible(TRUE); ! plot.y0_set_visible(TRUE); canvas.add_plot(plot, 0.15, 0.06) --- 1,34 ---- #!/usr/bin/env python ! import gtk, gtkextra ! class Application(gtk.Window): def __init__(self): ! self.hack = [] ! gtk.Window.__init__(self) ! self.set_title("GtkPlotBox Demo") ! self.set_size_request(550, 360) ! self.connect("destroy", self.quit) ! scrollwin = gtk.ScrolledWindow() ! scrollwin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = gtkextra.PlotCanvas(gtkextra.PLOT_LETTER_W, gtkextra.PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(gtkextra.PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) ! plot = gtkextra.Plot() ! plot.resize(width=0.5, height=0.25) plot.set_range(-1.0, 1.0, -1.0, 1.4) plot.legends_move(0.51, 0.05) ! plot.set_legends_border(gtkextra.PLOT_BORDER_NONE, gtkextra.PLOT_BORDER_NONE) ! plot.axis_hide_title(gtkextra.PLOT_AXIS_TOP) ! plot.axis_show_ticks(gtkextra.PLOT_AXIS_BOTTOM, 15, 3) ! plot.axis_set_ticks(gtkextra.PLOT_AXIS_X, 1.0, 1) ! plot.axis_set_ticks(gtkextra.PLOT_AXIS_Y, 1.0, 1) ! plot.x0_set_visible(gtk.TRUE); ! plot.y0_set_visible(gtk.TRUE); canvas.add_plot(plot, 0.15, 0.06) *************** *** 42,63 **** colormap = self.get_colormap() ! red = colormap.alloc("red") ! yellow = colormap.alloc("yellow") ! data = GtkPlotBox(ORIENTATION_VERTICAL) plot.add_data(data) ! data.set_points(px1, py1) ! data.set_z(pz1) ! data.set_dz(dz1) data.show_zerrbars() ! data.set_symbol(PLOT_SYMBOL_CIRCLE, PLOT_SYMBOL_FILLED, 10, 2, yellow, red) ! data.set_line_attributes(PLOT_LINE_NONE, 1, red) data.set_legend("Boxes") ! def mainloop(self): ! mainloop() ! if __name__ == '__main__': app = Application() ! app.mainloop() --- 44,66 ---- colormap = self.get_colormap() ! red = colormap.alloc_color("red") ! yellow = colormap.alloc_color("yellow") ! data = gtkextra.PlotBox(gtk.ORIENTATION_VERTICAL) plot.add_data(data) ! data.set_points(x=px1, y=py1, z=pz1, dz=dz1) data.show_zerrbars() ! data.set_symbol(gtkextra.PLOT_SYMBOL_CIRCLE, gtkextra.PLOT_SYMBOL_FILLED, 10, 2, yellow, red) ! data.set_line_attributes(gtkextra.PLOT_LINE_NONE, 0, 0, 1, red) data.set_legend("Boxes") + self.hack.append(data) #FIXME ! def quit(self, *args): ! gtk.main_quit() ! if __name__ == '__main__': ! raw_input("attach now") app = Application() ! gtk.main() ! Index: testflux.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testflux.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testflux.py 10 Jul 2002 19:06:52 -0000 1.1.1.1 --- testflux.py 16 Jul 2002 17:05:14 -0000 1.2 *************** *** 1,39 **** #!/usr/bin/env python ! from gtk import * ! from gtkextra import * ! class Application(GtkWindow): def __init__(self): ! GtkWindow.__init__(self, title="GtkPlotFlux Demo") ! self.set_usize(550, 340) ! self.connect("destroy", mainquit) colormap = self.get_colormap() ! red = colormap.alloc("red") ! scrollwin = GtkScrolledWindow() ! scrollwin.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = GtkPlotCanvas(PLOT_LETTER_W, PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(PLOT_CANVAS_CAN_SELECT_POINT ! | PLOT_CANVAS_CAN_DND_POINT) canvas.connect("select_item", self.select_item) scrollwin.add_with_viewport(canvas) ! plot = GtkPlot(width=0.5, height=0.25) plot.set_range(-1.0, 1.0, -1.0, 1.4) plot.legends_move(0.51, 0.05) plot.set_legends_border(0, 0) ! plot.axis_hide_title(PLOT_AXIS_TOP) ! plot.axis_show_ticks(PLOT_AXIS_BOTTOM, 15, 3) ! plot.axis_set_ticks(PLOT_AXIS_X, 1.0, 1) ! plot.axis_set_ticks(PLOT_AXIS_Y, 1.0, 1) ! plot.axis_set_visible(PLOT_AXIS_TOP, TRUE) ! plot.axis_set_visible(PLOT_AXIS_RIGHT, TRUE) ! plot.x0_set_visible(TRUE) ! plot.y0_set_visible(TRUE) canvas.add_plot(plot, 0.15, 0.06) --- 1,40 ---- #!/usr/bin/env python ! import gtk, gtkextra ! class Application(gtk.Window): def __init__(self): ! self.hack = [] ! gtk.Window.__init__(self) ! self.set_title("GtkPlotFlux Demo") ! self.set_size_request(550, 340) ! self.connect("destroy", self.quit) colormap = self.get_colormap() ! red = colormap.alloc_color("red") ! scrollwin = gtk.ScrolledWindow() ! scrollwin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = gtkextra.PlotCanvas(gtkextra.PLOT_LETTER_W, gtkextra.PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(gtkextra.PLOT_CANVAS_DND_FLAGS) canvas.connect("select_item", self.select_item) scrollwin.add_with_viewport(canvas) ! plot = gtkextra.Plot() ! plot.resize(width=0.5, height=0.25) plot.set_range(-1.0, 1.0, -1.0, 1.4) plot.legends_move(0.51, 0.05) plot.set_legends_border(0, 0) ! plot.axis_hide_title(gtkextra.PLOT_AXIS_TOP) ! plot.axis_show_ticks(gtkextra.PLOT_AXIS_BOTTOM, 15, 3) ! plot.axis_set_ticks(gtkextra.PLOT_AXIS_X, 1.0, 1) ! plot.axis_set_ticks(gtkextra.PLOT_AXIS_Y, 1.0, 1) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_TOP, gtk.TRUE) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_RIGHT, gtk.TRUE) ! plot.x0_set_visible(gtk.TRUE) ! plot.y0_set_visible(gtk.TRUE) canvas.add_plot(plot, 0.15, 0.06) *************** *** 43,66 **** py2 = [.0, .05, .12, .22, .16, .1] ! data = GtkPlotFlux() ! data.set_points(px1, py1, px2, py2) ! data.set_symbol(PLOT_SYMBOL_CIRCLE, PLOT_SYMBOL_OPAQUE, 10, 2, red) ! data.set_line_attributes(PLOT_LINE_NONE, 1, red) data.set_legend("Flux") plot.add_data(data) self.show_all() def select_item(self, canvas, event, item, *args): ! if item.type == PLOT_CANVAS_DATA: tuple = canvas.get_active_point() if tuple: print "Active point:", tuple[0], "->", tuple[1], tuple[2] ! return TRUE ! ! def mainloop(self): ! mainloop() ! if __name__ == '__main__': app = Application() ! app.mainloop() --- 44,68 ---- py2 = [.0, .05, .12, .22, .16, .1] ! data = gtkextra.PlotFlux() ! data.set_points(x=px1, y=py1, dx=px2, dy=py2) ! data.set_symbol(gtkextra.PLOT_SYMBOL_CIRCLE, gtkextra.PLOT_SYMBOL_OPAQUE, 10, 2, red, red) ! data.set_line_attributes(gtkextra.PLOT_LINE_NONE, 0, 0, 1, red) data.set_legend("Flux") plot.add_data(data) + self.hack.append(data) self.show_all() def select_item(self, canvas, event, item, *args): ! if item.type == gtkextra.PLOT_CANVAS_DATA: tuple = canvas.get_active_point() if tuple: print "Active point:", tuple[0], "->", tuple[1], tuple[2] ! return gtk.TRUE ! def quit(self, *args): ! gtk.main_quit() ! ! if __name__ == '__main__': app = Application() ! gtk.main() Index: testgtkiconlist.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkiconlist.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testgtkiconlist.py 10 Jul 2002 19:06:52 -0000 1.1.1.1 --- testgtkiconlist.py 16 Jul 2002 17:05:14 -0000 1.2 *************** *** 1,48 **** #!/usr/bin/env python ! from gtk import * ! from gtkextra import * import icons ! class Application(GtkWindow): def __init__(self): ! GtkWindow.__init__(self, title="GtkIconList Demo") ! self.set_usize(400, 400) ! self.connect("destroy", mainquit) ! hbox1 = GtkHBox() self.add(hbox1) ! table = GtkTable(4, 2) ! hbox1.pack_start(table, FALSE, FALSE) ! notebook = GtkNotebook() hbox1.pack_start(notebook) ! scrollw1 = GtkScrolledWindow() scrollw1.set_border_width(0) ! scrollw1.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) ! label1 = GtkLabel("Worksheets") notebook.append_page(scrollw1, label1) ! scrollw2 = GtkScrolledWindow() scrollw2.set_border_width(0) ! scrollw2.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) ! label2 = GtkLabel("Plots") notebook.append_page(scrollw2, label2) ! iconlist1 = GtkIconList(48, ICON_LIST_TEXT_BELOW) ! iconlist1.set_selection_mode(SELECTION_SINGLE) iconlist1.connect("select_icon", self.select_icon) scrollw1.add_with_viewport(iconlist1) for i in xrange(20): ! iconlist1.add_from_data(icons.sheet_icon2, "Data %02d" % i) ! iconlist2 = GtkIconList(48, ICON_LIST_TEXT_RIGHT) ! iconlist2.set_selection_mode(SELECTION_MULTIPLE) scrollw2.add_with_viewport(iconlist2) for i in xrange(20): ! iconlist2.add_from_data(icons.plot_icon2, "Plot %02d" % i) self.show_all() --- 1,50 ---- #!/usr/bin/env python ! import gtk, gtkextra import icons ! class Application(gtk.Window): def __init__(self): ! gtk.Window.__init__(self) ! self.set_title("GtkIconList Demo") ! self.set_size_request(400, 400) ! self.connect("destroy", self.quit) ! hbox1 = gtk.HBox() self.add(hbox1) ! table = gtk.Table(4, 2) ! hbox1.pack_start(table, gtk.FALSE, gtk.FALSE) ! notebook = gtk.Notebook() hbox1.pack_start(notebook) ! scrollw1 = gtk.ScrolledWindow() scrollw1.set_border_width(0) ! scrollw1.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) ! label1 = gtk.Label("Worksheets") notebook.append_page(scrollw1, label1) ! scrollw2 = gtk.ScrolledWindow() scrollw2.set_border_width(0) ! scrollw2.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) ! label2 = gtk.Label("Plots") notebook.append_page(scrollw2, label2) ! iconlist1 = gtkextra.IconList(48, gtkextra.ICON_LIST_TEXT_BELOW) ! iconlist1.set_selection_mode(gtk.SELECTION_SINGLE) iconlist1.connect("select_icon", self.select_icon) scrollw1.add_with_viewport(iconlist1) for i in xrange(20): ! print "FIXME: IconList.add_from_data" ! #iconlist1.add_from_data(icons.sheet_icon2, "Data %02d" % i) ! iconlist2 = gtkextra.IconList(48, gtkextra.ICON_LIST_TEXT_RIGHT) ! iconlist2.set_selection_mode(gtk.SELECTION_MULTIPLE) scrollw2.add_with_viewport(iconlist2) for i in xrange(20): ! print "FIXME: IconList.add_from_data" ! #iconlist2.add_from_data(icons.plot_icon2, "Plot %02d" % i) self.show_all() *************** *** 50,59 **** def select_icon(self, widget, item, event, *args): print "SELECTION:", item.label ! return TRUE ! def mainloop(self): ! mainloop() ! if __name__ == '__main__': app = Application() ! app.mainloop() --- 52,61 ---- def select_icon(self, widget, item, event, *args): print "SELECTION:", item.label ! return gtk.TRUE ! def quit(self, *args): ! gtk.main_quit() ! if __name__ == '__main__': app = Application() ! gtk.main() Index: testgtkplot.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkplot.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** testgtkplot.py 12 Jul 2002 19:59:50 -0000 1.3 --- testgtkplot.py 16 Jul 2002 17:05:14 -0000 1.4 *************** *** 93,100 **** print "Active point: %d -> %f %f" % (i, new_x, new_y) data = canvas.get_active_data() ! points = data.get_points() ! points[0][i] = new_x ! points[1][i] = new_y ! data.set_points(points) return gtk.TRUE --- 93,100 ---- print "Active point: %d -> %f %f" % (i, new_x, new_y) data = canvas.get_active_data() ! x,y,dx,dy = data.get_points() ! x[i] = new_x ! y[i] = new_y ! data.set_points(x=x, y=y) return gtk.TRUE *************** *** 180,184 **** data = gtkextra.PlotData() plot.add_data(data) ! data.set_points(px1, py1, dx1, dy1) data.set_symbol(gtkextra.PLOT_SYMBOL_DIAMOND, gtkextra.PLOT_SYMBOL_EMPTY, 10, 2, red, red) data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 1, red) --- 180,184 ---- data = gtkextra.PlotData() plot.add_data(data) ! data.set_points(x=px1, y=py1, dx=dx1, dy=dy1) data.set_symbol(gtkextra.PLOT_SYMBOL_DIAMOND, gtkextra.PLOT_SYMBOL_EMPTY, 10, 2, red, red) data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 1, red) *************** *** 191,195 **** data = gtkextra.PlotData() plot.add_data(data) ! data.set_points(px2, py2, dx2, dy2) data.set_symbol(gtkextra.PLOT_SYMBOL_SQUARE, gtkextra.PLOT_SYMBOL_OPAQUE, 8, 2, black, black) data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 4, red) --- 191,195 ---- data = gtkextra.PlotData() plot.add_data(data) ! data.set_points(x=px2, y=py2, dx=dx2, dy=dy2) data.set_symbol(gtkextra.PLOT_SYMBOL_SQUARE, gtkextra.PLOT_SYMBOL_OPAQUE, 8, 2, black, black) data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 4, red) *************** *** 219,223 **** data = gtkextra.PlotBar(gtk.ORIENTATION_VERTICAL) plot.add_data(data) ! data.set_points(px2, py2, dx2) data.set_symbol(gtkextra.PLOT_SYMBOL_NONE, gtkextra.PLOT_SYMBOL_OPAQUE, 10, 2, blue, blue) data.set_line_attributes(gtkextra.PLOT_LINE_NONE, 0, 0, 1, blue) --- 219,223 ---- data = gtkextra.PlotBar(gtk.ORIENTATION_VERTICAL) plot.add_data(data) ! data.set_points(x=px2, y=py2, dx=dx2) data.set_symbol(gtkextra.PLOT_SYMBOL_NONE, gtkextra.PLOT_SYMBOL_OPAQUE, 10, 2, blue, blue) data.set_line_attributes(gtkextra.PLOT_LINE_NONE, 0, 0, 1, blue) Index: testpolar.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testpolar.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testpolar.py 10 Jul 2002 19:06:54 -0000 1.1.1.1 --- testpolar.py 16 Jul 2002 17:05:14 -0000 1.2 *************** *** 1,26 **** #!/usr/bin/env python ! from gtk import * ! from gtkextra import * ! class Application(GtkWindow): def __init__(self): ! GtkWindow.__init__(self, title="GtkPlotPolar Demo") ! self.set_usize(500, 320) ! self.connect("destroy", mainquit) colormap = self.get_colormap() ! red = colormap.alloc("red") ! scrollwin = GtkScrolledWindow() ! scrollwin.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = GtkPlotCanvas(PLOT_LETTER_W, PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) ! plot = GtkPlotPolar(width=0.5, height=0.25) canvas.add_plot(plot, 0.15, 0.06) --- 1,28 ---- #!/usr/bin/env python ! import gtk, gtkextra ! class Application(gtk.Window): def __init__(self): ! self.hack = [] ! gtk.Window.__init__(self) ! self.set_title("GtkPlotPolar Demo") ! self.set_size_request(500, 320) ! self.connect("destroy", self.quit) colormap = self.get_colormap() ! red = colormap.alloc_color("red") ! scrollwin = gtk.ScrolledWindow() ! scrollwin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = gtkextra.PlotCanvas(gtkextra.PLOT_LETTER_W, gtkextra.PLOT_LETTER_H) ! canvas.plot_canvas_set_flags(gtkextra.PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) ! plot = gtkextra.PlotPolar() ! plot.resize(width=0.5, height=0.25) canvas.add_plot(plot, 0.15, 0.06) *************** *** 28,44 **** angle = [15.0, 20.0, 43.0, 67.0, 84.0, 106.0] ! data = GtkPlotData() ! data.set_points(r, angle) ! data.set_symbol(PLOT_SYMBOL_DIAMOND, PLOT_SYMBOL_OPAQUE, 10, 2, red) ! data.set_line_attributes(PLOT_LINE_SOLID, 1, red) data.set_legend("Example") plot.add_data(data) self.show_all() ! def mainloop(self): ! mainloop() ! if __name__ == '__main__': app = Application() ! app.mainloop() --- 30,47 ---- angle = [15.0, 20.0, 43.0, 67.0, 84.0, 106.0] ! data = gtkextra.PlotData() ! data.set_points(x=r, y=angle) ! data.set_symbol(gtkextra.PLOT_SYMBOL_DIAMOND, gtkextra.PLOT_SYMBOL_OPAQUE, 10, 2, red, red) ! data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 1, red) data.set_legend("Example") plot.add_data(data) + self.hack.append(data) self.show_all() ! def quit(self, *args): ! gtk.main_quit() ! if __name__ == '__main__': app = Application() ! gtk.main() Index: testrealtime.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testrealtime.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testrealtime.py 10 Jul 2002 19:06:54 -0000 1.1.1.1 --- testrealtime.py 16 Jul 2002 17:05:14 -0000 1.2 *************** *** 1,63 **** #!/usr/bin/env python ! from gtk import * ! from gtkextra import * from random import randint ! class Application(GtkWindow): def __init__(self): ! GtkWindow.__init__(self, title="GtkPlot Real Time Demo") ! self.set_usize(550, 600) ! self.connect("destroy", mainquit) colormap = self.get_colormap() ! red = colormap.alloc("red") ! light_blue = colormap.alloc("light blue") ! light_yellow = colormap.alloc("light yellow") ! white = colormap.alloc("white") ! scrollwin = GtkScrolledWindow() ! scrollwin.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = GtkPlotCanvas(PLOT_LETTER_W, PLOT_LETTER_H) canvas.set_background(light_blue) canvas.connect("button_press_event", self.button_press_handler) scrollwin.add_with_viewport(canvas) ! plot = GtkPlot(width=0.65, height=0.45) plot.set_background(light_yellow) plot.legends_set_attributes(None, 0, None, white) plot.set_range(0.0, 20.0, 0.0, 1.0) ! plot.axis_set_ticks(PLOT_AXIS_X, 2.0, 1) ! plot.axis_set_ticks(PLOT_AXIS_Y, 0.1, 1) ! plot.axis_set_labels_numbers(PLOT_AXIS_TOP, PLOT_LABEL_FLOAT, 0) ! plot.axis_set_labels_numbers(PLOT_AXIS_BOTTOM, PLOT_LABEL_FLOAT, 0) ! plot.axis_set_visible(PLOT_AXIS_TOP, TRUE) ! plot.axis_set_visible(PLOT_AXIS_RIGHT, TRUE) ! plot.grids_set_visible(TRUE, TRUE, TRUE, TRUE) ! plot.axis_hide_title(PLOT_AXIS_TOP) ! plot.axis_hide_title(PLOT_AXIS_RIGHT) ! plot.axis_set_title(PLOT_AXIS_LEFT, "Intensity") ! plot.axis_set_title(PLOT_AXIS_BOTTOM, "Time (s)") ! plot.set_legends_border(PLOT_BORDER_SHADOW, 3) plot.legends_move(0.60, 0.10) canvas.add_plot(plot, 0.15, 0.15) canvas.put_text(0.45, 0.05, "Times-BoldItalic", 20, 0, None, None, ! TRUE, JUSTIFY_CENTER, "Real Time Demo") ! data = GtkPlotData() plot.add_data(data) data.set_legend("Random pulse") ! data.set_symbol(PLOT_SYMBOL_DIAMOND, PLOT_SYMBOL_OPAQUE, 10, 2, red) ! data.set_line_attributes(PLOT_LINE_SOLID, 1, red) ! plot.clip_data(TRUE) self.show_all() ! timeout_add(1000, self.update, canvas, plot, data) def update(self, canvas, plot, data, *args): --- 1,66 ---- #!/usr/bin/env python ! import gtk, gtkextra from random import randint ! class Application(gtk.Window): def __init__(self): ! self.hack = []; ! gtk.Window.__init__(self) ! self.set_title("GtkPlot Real Time Demo") ! self.set_size_request(550, 600) ! self.connect("destroy", self.quit) colormap = self.get_colormap() ! red = colormap.alloc_color("red") ! light_blue = colormap.alloc_color("light blue") ! light_yellow = colormap.alloc_color("light yellow") ! white = colormap.alloc_color("white") ! scrollwin = gtk.ScrolledWindow() ! scrollwin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.add(scrollwin) ! canvas = gtkextra.PlotCanvas(gtkextra.PLOT_LETTER_W, gtkextra.PLOT_LETTER_H) canvas.set_background(light_blue) canvas.connect("button_press_event", self.button_press_handler) scrollwin.add_with_viewport(canvas) ! plot = gtkextra.Plot() ! plot.resize(width=0.65, height=0.45) plot.set_background(light_yellow) plot.legends_set_attributes(None, 0, None, white) plot.set_range(0.0, 20.0, 0.0, 1.0) ! plot.axis_set_ticks(gtkextra.PLOT_AXIS_X, 2.0, 1) ! plot.axis_set_ticks(gtkextra.PLOT_AXIS_Y, 0.1, 1) ! plot.axis_set_labels_numbers(gtkextra.PLOT_AXIS_TOP, gtkextra.PLOT_LABEL_FLOAT, 0) ! plot.axis_set_labels_numbers(gtkextra.PLOT_AXIS_BOTTOM, gtkextra.PLOT_LABEL_FLOAT, 0) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_TOP, gtk.TRUE) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_RIGHT, gtk.TRUE) ! plot.grids_set_visible(gtk.TRUE, gtk.TRUE, gtk.TRUE, gtk.TRUE) ! plot.axis_hide_title(gtkextra.PLOT_AXIS_TOP) ! plot.axis_hide_title(gtkextra.PLOT_AXIS_RIGHT) ! plot.axis_set_title(gtkextra.PLOT_AXIS_LEFT, "Intensity") ! plot.axis_set_title(gtkextra.PLOT_AXIS_BOTTOM, "Time (s)") ! plot.set_legends_border(gtkextra.PLOT_BORDER_SHADOW, 3) plot.legends_move(0.60, 0.10) canvas.add_plot(plot, 0.15, 0.15) canvas.put_text(0.45, 0.05, "Times-BoldItalic", 20, 0, None, None, ! gtk.TRUE, gtk.JUSTIFY_CENTER, "Real Time Demo") ! data = gtkextra.PlotData() plot.add_data(data) data.set_legend("Random pulse") ! data.set_symbol(gtkextra.PLOT_SYMBOL_DIAMOND, gtkextra.PLOT_SYMBOL_OPAQUE, 10, 2, red, red) ! data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 1, red) ! self.hack.append(data) ! plot.clip_data(gtk.TRUE) self.show_all() ! gtk.timeout_add(1000, self.update, canvas, plot, data) def update(self, canvas, plot, data, *args): *************** *** 66,69 **** --- 69,74 ---- px = data.get_x() py = data.get_y() + if px is None : px = [] + if py is None : py = [] n = data.get_numpoints() *************** *** 76,80 **** py.append(y) ! data.set_points(px, py) (xmin, xmax) = plot.get_xrange() --- 81,85 ---- py.append(y) ! data.set_points(x=px, y=py) (xmin, xmax) = plot.get_xrange() *************** *** 85,89 **** canvas.refresh() ! return TRUE def button_press_handler(self, canvas, event, *extra): --- 90,94 ---- canvas.refresh() ! return gtk.TRUE def button_press_handler(self, canvas, event, *extra): *************** *** 92,99 **** print "Canvas position:", position[0], position[1] ! def mainloop(self): ! mainloop() ! if __name__ == '__main__': app = Application() ! app.mainloop() --- 97,104 ---- print "Canvas position:", position[0], position[1] ! def quit(self, *args): ! gtk.main_quit() ! if __name__ == '__main__': app = Application() ! gtk.main() |
Update of /cvsroot/python-gtkextra/python-gtkextra2/gtkextra In directory usw-pr-cvs1:/tmp/cvs-serv29381/gtkextra Modified Files: gtkextra-addons.defs gtkextra-types.defs gtkextra.defs gtkextra.override gtkextramodule.c Log Message: More examples partially work. Still lots to do. Index: gtkextra-addons.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra-addons.defs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** gtkextra-addons.defs 11 Jul 2002 19:17:44 -0000 1.1 --- gtkextra-addons.defs 16 Jul 2002 17:05:14 -0000 1.2 *************** *** 19,20 **** --- 19,22 ---- ) ) + + Index: gtkextra-types.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra-types.defs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** gtkextra-types.defs 12 Jul 2002 19:59:51 -0000 1.2 --- gtkextra-types.defs 16 Jul 2002 17:05:15 -0000 1.3 *************** *** 255,258 **** --- 255,274 ---- ) + (define-boxed IconListItem + (in-module "Gtk") + (c-name "GtkIconListItem") + (gtype-id "GTK_TYPE_ICON_LIST_ITEM") + (fields + '("guint" "x") + '("guint" "y") + '("gint" "state") + '("gchar*" "entry_label") + '("gchar*" "label") + '("GtkWidget*" "pixmap") + '("GtkWidget*" "entry") + ;'("gpointer" "link") + ) + ) + ;; Enumerations and flags ... Index: gtkextra.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.defs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gtkextra.defs 12 Jul 2002 19:59:51 -0000 1.3 --- gtkextra.defs 16 Jul 2002 17:05:15 -0000 1.4 *************** *** 721,726 **** (parameters '("gchar**" "data") ! '("const-gchar*" "label") ! '("gpointer" "link") ) ) --- 721,726 ---- (parameters '("gchar**" "data") ! '("const-gchar*" "label" (default "NULL") (null-ok)) ! '("gpointer" "link" (default "NULL") (null-ok)) ) ) *************** *** 4207,4211 **** (return-type "GtkWidget*") (parameters ! '("GdkDrawable*" "drawable") ) ) --- 4207,4211 ---- (return-type "GtkWidget*") (parameters ! '("GdkDrawable*" "drawable" (default "NULL") (null-ok)) ) ) *************** *** 4215,4219 **** (return-type "GtkWidget*") (parameters ! '("GdkDrawable*" "drawable") '("gdouble" "width") '("gdouble" "height") --- 4215,4219 ---- (return-type "GtkWidget*") (parameters ! '("GdkDrawable*" "drawable" (default "NULL") (null-ok)) '("gdouble" "width") '("gdouble" "height") Index: gtkextra.override =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.override,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gtkextra.override 12 Jul 2002 19:59:51 -0000 1.3 --- gtkextra.override 16 Jul 2002 17:05:15 -0000 1.4 *************** *** 1,3 **** ! /* -*- Mode: C; c-basic-offset: 4 -*- */ %% headers --- 1,3 ---- ! * -*- Mode: C; c-basic-offset: 4 -*- */ %% headers *************** *** 83,87 **** ! static void gtk_plot_draw_text_PY (GtkPlot *plot, GtkPlotText *text) { gtk_plot_draw_text(plot, *text); } --- 83,91 ---- ! static void ! gtk_plot_draw_text_PY (GtkPlot *plot, GtkPlotText *text) ! { ! gtk_plot_draw_text(plot, *text); ! } *************** *** 92,95 **** --- 96,148 ---- guint16 gtk_plot_canvas_unset_flags(GtkPlotCanvas *canvas, guint16 flags) { return GTK_PLOT_CANVAS_UNSET_FLAGS(canvas, flags); } + /* cpp abuse. + */ + #define _GET_ONE_DOUBLE(_f, _c) static PyObject * \ + _wrap_##_f(PyGObject *self) \ + { \ + gdouble a; \ + _f(_c(self->obj), &a); \ + return Py_BuildValue("d", (double) a); \ + } + + #define _GET_TWO_DOUBLE(_f, _c) static PyObject * \ + _wrap_##_f(PyGObject *self) \ + { \ + gdouble a, b; \ + _f(_c(self->obj), &a, &b); \ + return Py_BuildValue("(dd)", (double) a, (double) b); \ + } + + #define _GET_ONE_DOUBLE_VEC(_f, _c) static PyObject * \ + _wrap_##_f(PyGObject *self) \ + { \ + PyObject *py_ret; \ + gdouble *p_d; \ + gint len_d; \ + \ + p_d = _f(_c(self->obj), &len_d); \ + \ + if( !(py_ret = pygtkextra_vec2py(len_d, p_d))) \ + return NULL; \ + \ + return py_ret; \ + } + + #define _GET_ONE(_x) static PyObject * \ + _wrap_gtk_plot_data_get_##_x(PyGObject *self) \ + { \ + PyObject *py_ret; \ + gdouble *points; \ + gint num_points; \ + \ + points = gtk_plot_data_get_##_x(GTK_PLOT_DATA(self->obj), &num_points); \ + \ + if( !(py_ret = pygtkextra_vec2py(num_points, points))) \ + return NULL; \ + \ + return py_ret; \ + } + + /* ---------------------------------------------------------------------- Functions for converting Python sequence like objects To/From C arrays. *************** *** 110,118 **** */ int ! pygtkextra_get_points(PyObject *sequence, gdouble** out_points) { int n = 0; gdouble *points = NULL; ! if (PySequence_Check(sequence)) { n = PySequence_Length(sequence); if (n > 0) { --- 163,178 ---- */ int ! pygtkextra_py2vec(PyObject *sequence, gint *p_n, gdouble **p_points) { int n = 0; gdouble *points = NULL; ! ! *p_n = 0; ! *p_points = NULL; ! ! if (sequence == Py_None || sequence == NULL) { ! /* done */ ! } ! else if (PySequence_Check(sequence)) { n = PySequence_Length(sequence); if (n > 0) { *************** *** 131,135 **** Py_DECREF(value); } else { ! #if 0 PyErr_SetString(PyExc_TypeError, "sequence items must be numbers"); --- 191,195 ---- Py_DECREF(value); } else { ! #if 1 PyErr_SetString(PyExc_TypeError, "sequence items must be numbers"); *************** *** 137,141 **** Py_DECREF(item); g_free(points); - points = NULL; return -1; } --- 197,200 ---- *************** *** 144,156 **** } } ! #if 0 ! else if (sequence != Py_None) { PyErr_SetString(PyExc_TypeError, "argument must be sequence or None"); ! return -1; } #endif ! *out_points = points; ! return n; } /* ---------------------------------------------------------------------- */ %% --- 203,281 ---- } } ! #if 1 ! else { PyErr_SetString(PyExc_TypeError, "argument must be sequence or None"); ! return -2; } #endif ! *p_points = points; ! *p_n = n; ! return 0; ! } ! ! ! PyObject * ! pygtkextra_vec2py(const gint n, const gdouble *points) ! { ! PyObject *sequence; ! ! int i; ! if (points == NULL) { ! Py_INCREF(Py_None); ! return Py_None; ! } ! ! if ( !(sequence=PyList_New((int) n)) ) ! return NULL; ! ! for(i=0; i<n; i++) { ! PyObject *value; ! ! value = PyFloat_FromDouble(points[i]); ! if (!value) { ! Py_DECREF(sequence); ! return NULL; ! } ! PyList_SET_ITEM(sequence, i, value); ! } ! return sequence; ! } ! ! /* ! * pygtkextra_convert_pixmap_data_to_vector ! * ! * Takes a list of pixmap data strings and puts them into a C vector. ! * The vector must be freed by the caller. If the pixmap data cannot ! * be converted the Python error indicator will be set and NULL will ! * be returned. ! */ ! char ** ! pygtkextra_convert_pixmap_data_to_vector(PyObject *data) ! { ! int len, i; ! char **vector; ! ! if (!PySequence_Check(data)) { ! PyErr_SetString(PyExc_TypeError, "pixmap data must be a sequence"); ! return NULL; ! } ! len = PySequence_Length(data); ! vector = g_new(char *, len); ! for (i = 0; i < len; ++i) { ! PyObject *string; ! ! string = PySequence_GetItem(data, i); ! if (!PyString_Check(string)) { ! PyErr_SetString(PyExc_TypeError, "sequence items must be strings"); ! g_free(vector); ! Py_DECREF(string); ! return NULL; ! } ! vector[i] = PyString_AS_STRING(string); ! Py_DECREF(string); ! } ! return vector; } + /* ---------------------------------------------------------------------- */ %% *************** *** 206,244 **** %% ! override gtk_plot_data_set_points static PyObject * _wrap_gtk_plot_data_set_points(PyGObject *self, PyObject *args, PyObject *kwargs) { ! static char *kwlist[] = { "x", "y", "dx", "dy", NULL }; ! gdouble *x, *y, *dx, *dy = NULL; ! PyObject *py_x, *py_y, *py_dx, *py_dy= NULL; ! int nx, ny, ndx, ndy; ! if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OOOO:GtkPlotData.set_points", kwlist, ! &py_x, &py_y, &py_dx, &py_dy )) return NULL; ! nx = pygtkextra_get_points( py_x, &x ); ! ny = pygtkextra_get_points( py_y, &y ); ! ndx = pygtkextra_get_points( py_dx, &dx ); ! ndy = pygtkextra_get_points( py_dy, &dy ); ! ! printf("%d %d %d %d\n", nx, ny, ndx, ndy); ! gtk_plot_data_set_points(GTK_PLOT_DATA(self->obj), x, y, dx, dy, nx); ! gtk_plot_data_set_points(GTK_PLOT_DATA(self->obj), x, y, dx, dy, nx); Py_INCREF(Py_None); return Py_None; } - #if 0 - void gtk_plot_data_set_points212 (GtkPlotData *data, - gdouble *x, gdouble *y, - gdouble *dx, gdouble *dy, - gint num_points); - #endif --- 331,484 ---- %% ! override gtk_plot_data_set_points kwargs static PyObject * _wrap_gtk_plot_data_set_points(PyGObject *self, PyObject *args, PyObject *kwargs) { ! static char *kwlist[] = { "x", "dx", "y", "dy", "z", "dz", "a", "da", NULL }; ! gdouble *x = NULL, *y = NULL, *dx = NULL, *dy = NULL, *z = NULL, *dz = NULL, *a = NULL, *da = NULL; ! PyObject *py_x = NULL, *py_y = NULL, *py_z = NULL, *py_a = NULL; ! PyObject *py_dx = NULL, *py_dy = NULL, *py_dz = NULL, *py_da = NULL; ! int rx, nx, rdx, ndx, ry, ny, rdy, ndy, rz, nz, rdz, ndz, ra, na, rda, nda; ! gint num_points=0; ! if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OOOOOOOO:GtkPlotData.set_points", kwlist, ! &py_x, &py_dx, &py_y, &py_dy, &py_z, &py_dz, &py_a, &py_da )) return NULL; ! rx = pygtkextra_py2vec( py_x, &nx, &x ); ! ry = pygtkextra_py2vec( py_y, &ny, &y ); ! rz = pygtkextra_py2vec( py_z, &nz, &z ); ! ra = pygtkextra_py2vec( py_a, &na, &a ); ! rdx = pygtkextra_py2vec( py_dx, &ndx, &dx ); ! rdy = pygtkextra_py2vec( py_dy, &ndy, &dy ); ! rdz = pygtkextra_py2vec( py_dz, &ndz, &dz ); ! rda = pygtkextra_py2vec( py_da, &nda, &da ); ! printf("n: %d %d %d %d %d %d %d %d\n", nx, ny, ndx, ndy, nz, ndz, na, nda); ! printf("r: %d %d %d %d %d %d %d %d\n", rx, ry, rdx, rdy, rz, rdz, ra, rda); ! ! ! if ( (rx < 0) || (ry < 0) || (rdx < 0) || (rdy < 0) ! || (rz < 0) || (rdz < 0) || (rda < 0) || (rda < 0) ) ! return NULL; ! num_points = MAX(nx, ndx); ! num_points = MAX(num_points, ny); ! num_points = MAX(num_points, ndy); ! num_points = MAX(num_points, nz); ! num_points = MAX(num_points, ndz); ! num_points = MAX(num_points, na); ! num_points = MAX(num_points, nda); ! ! if ( (rx && (nx != num_points)) ! || (rdx && (ndx != num_points)) ! || (ry && (ny != num_points)) ! || (rdy && (ndy != num_points)) ! || (rz && (nz != num_points)) ! || (rdz && (ndz != num_points)) ! || (ra && (na != num_points)) ! || (rda && (nda != num_points)) ) { ! PyErr_SetString(PyExc_TypeError, "argments must have same length"); ! } ! ! gtk_plot_data_set_numpoints(GTK_PLOT_DATA(self->obj), num_points); ! if (py_x) gtk_plot_data_set_x (GTK_PLOT_DATA(self->obj), x); ! if (py_dx) gtk_plot_data_set_dx (GTK_PLOT_DATA(self->obj), dx); ! if (py_y) gtk_plot_data_set_y (GTK_PLOT_DATA(self->obj), y); ! if (py_dy) gtk_plot_data_set_dy (GTK_PLOT_DATA(self->obj), dy); ! if (py_z) gtk_plot_data_set_z (GTK_PLOT_DATA(self->obj), z); ! if (py_dz) gtk_plot_data_set_dz (GTK_PLOT_DATA(self->obj), dz); ! if (py_a) gtk_plot_data_set_a (GTK_PLOT_DATA(self->obj), a); ! if (py_da) gtk_plot_data_set_da (GTK_PLOT_DATA(self->obj), da); Py_INCREF(Py_None); return Py_None; + } + + %% + override gtk_plot_data_get_points noargs + static PyObject * + _wrap_gtk_plot_data_get_points(PyGObject *self) + { + PyObject *py_x, *py_y, *py_dx, *py_dy; + gdouble *x, *y, *dx, *dy; + gint num_points; + + gtk_plot_data_get_points(GTK_PLOT_DATA(self->obj), &x, &y, &dx, &dy, &num_points); + + if( !(py_x = pygtkextra_vec2py(num_points, x))) + return NULL; + if( !(py_y = pygtkextra_vec2py(num_points, y))) { + Py_DECREF(py_x); + return NULL; + } + if( !(py_dx = pygtkextra_vec2py(num_points, dx))) { + Py_DECREF(py_x); + Py_DECREF(py_y); + return NULL; + } + if( !(py_dy = pygtkextra_vec2py(num_points, dy))) { + Py_DECREF(py_x); + Py_DECREF(py_y); + Py_DECREF(py_dx); + return NULL; + } + return Py_BuildValue("(OOOO)", py_x, py_y, py_dx, py_dy); + } + + %% + override gtk_plot_data_get_x noargs + _GET_ONE(x) + + %% + override gtk_plot_data_get_y noargs + _GET_ONE(y) + + %% + override gtk_plot_data_get_z noargs + _GET_ONE(z) + + %% + override gtk_plot_data_get_a noargs + _GET_ONE(a) + + %% + override gtk_plot_data_get_dx noargs + _GET_ONE(dx) + %% + override gtk_plot_data_get_dy noargs + _GET_ONE(dy) + + %% + override gtk_plot_data_get_dz noargs + _GET_ONE(dz) + + %% + override gtk_plot_data_get_da noargs + _GET_ONE_DOUBLE_VEC(gtk_plot_data_get_da, GTK_PLOT_DATA) + + %% + override gtk_plot_canvas_get_active_point noargs + static PyObject * + _wrap_gtk_plot_canvas_get_active_point(PyGObject *self) + { + gint active_point; + gdouble x, y; + active_point = gtk_plot_canvas_get_active_point(GTK_PLOT_CANVAS(self->obj), &x, &y); + return Py_BuildValue("(idd)", (int) active_point, (double) x, (double) y); } + %% + override gtk_plot_get_xrange noargs + _GET_TWO_DOUBLE(gtk_plot_get_xrange, GTK_PLOT) + + %% + override gtk_plot_get_position noargs + _GET_TWO_DOUBLE(gtk_plot_get_position, GTK_PLOT) + + %% + override gtk_plot_get_size noargs + _GET_TWO_DOUBLE(gtk_plot_get_size, GTK_PLOT) Index: gtkextramodule.c =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextramodule.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** gtkextramodule.c 11 Jul 2002 19:17:44 -0000 1.2 --- gtkextramodule.c 16 Jul 2002 17:05:15 -0000 1.3 *************** *** 29,32 **** --- 29,33 ---- pygtkextra_add_constants(m, "GTK_"); + /* These were #defines's */ PyModule_AddIntConstant(m, "PLOT_LETTER_W", GTK_PLOT_LETTER_W); PyModule_AddIntConstant(m, "PLOT_LETTER_H", GTK_PLOT_LETTER_H); *************** *** 38,41 **** --- 39,47 ---- PyModule_AddIntConstant(m, "PLOT_EXECUTIVE_H", GTK_PLOT_EXECUTIVE_H); PyModule_AddIntConstant(m, "PLOT_CANVAS_DND_FLAGS", GTK_PLOT_CANVAS_DND_FLAGS); + + /* These were anonymous enum's. They really should be fixed in gtkextra. */ + PyModule_AddIntConstant(m, "ICON_LIST_ICON", GTK_ICON_LIST_ICON); + PyModule_AddIntConstant(m, "ICON_LIST_TEXT_RIGHT", GTK_ICON_LIST_TEXT_RIGHT); + PyModule_AddIntConstant(m, "ICON_LIST_TEXT_BELOW", GTK_ICON_LIST_TEXT_BELOW); if (PyErr_Occurred()) |
From: <pyt...@li...> - 2002-07-12 19:59:54
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/gtkextra In directory usw-pr-cvs1:/tmp/cvs-serv28817/gtkextra Modified Files: gtkextra-types.defs gtkextra.defs gtkextra.override Log Message: testgtkplot.py mostly works now. Still VERY rough. Index: gtkextra-types.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra-types.defs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** gtkextra-types.defs 11 Jul 2002 19:17:44 -0000 1.1 --- gtkextra-types.defs 12 Jul 2002 19:59:51 -0000 1.2 *************** *** 236,240 **** ) ! (define-pointer PlotCanvasChild (in-module "Gtk") (c-name "GtkPlotCanvasChild") --- 236,249 ---- ) ! ; Lot more to do from gtkplot.h. Also compare fields to accessor functions. ! ; Also gtkextra code needs all of those boxed fixed up with types and macros. ! ! (define-boxed PlotText ! (in-module "Gtk") ! (c-name "GtkPlotText") ! (gtype-id "GTK_TYPE_PLOT_TEXT") ! ) ! ! (define-boxed PlotCanvasChild (in-module "Gtk") (c-name "GtkPlotCanvasChild") *************** *** 242,245 **** --- 251,255 ---- (fields '("gint" "data") + '("gint" "type") ) ) Index: gtkextra.defs =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.defs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** gtkextra.defs 11 Jul 2002 19:17:44 -0000 1.2 --- gtkextra.defs 12 Jul 2002 19:59:51 -0000 1.3 *************** *** 3357,3361 **** (define-method draw_text (of-object "GtkPlot") ! (c-name "gtk_plot_draw_text") (return-type "none") (parameters --- 3357,3361 ---- (define-method draw_text (of-object "GtkPlot") ! (c-name "gtk_plot_draw_text_PY") (return-type "none") (parameters Index: gtkextra.override =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/gtkextra/gtkextra.override,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** gtkextra.override 11 Jul 2002 19:17:44 -0000 1.2 --- gtkextra.override 12 Jul 2002 19:59:51 -0000 1.3 *************** *** 2,5 **** --- 2,27 ---- %% headers + /* + * Python bindings for the GtkExtra widget set + * + * Copyright (C) 2000-2001 Andreas Voegele + * Copyright (C) 2002 Toby D. Reeves + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + #define NO_IMPORT_PYGOBJECT #include <pygobject.h> *************** *** 7,11 **** #include <gtkextra/gtkextra.h> ! /* Fixup boo-boo's or ommissions. Probably should be fixed in gtkextra.*/ #define GTK_ICON_FILE_SEL GTK_ICON_FILESEL #define GTK_TYPE_ICON_FILE_SEL (gtk_icon_file_selection_get_type()) --- 29,35 ---- #include <gtkextra/gtkextra.h> ! /* ---------------------------------------------------------------------- ! Fixup boo-boo's or ommissions. Probably should be fixed in gtkextra. ! */ #define GTK_ICON_FILE_SEL GTK_ICON_FILESEL #define GTK_TYPE_ICON_FILE_SEL (gtk_icon_file_selection_get_type()) *************** *** 17,22 **** #define GTK_TYPE_TOGGLE_COMBO (gtk_toggle_combo_get_type()) ! /* Hack boxed types. Just enought to let code generator compile. Not perfectly correct! */ ! //GType gtk_psfont_get_type (void) G_GNUC_CONST; #define GTK_TYPE_PSFONT (gtk_psfont_get_type ()) static GType --- 41,55 ---- #define GTK_TYPE_TOGGLE_COMBO (gtk_toggle_combo_get_type()) ! /* Hack boxed types. Just enought to let code generator compile. Not correct! ! These and lots more need to be fixed in gtkextra code. ! A good example is GtkIconSet in gtkiconfactory.[hc]. ! ! I wish ! void gtk_plot_draw_text (GtkPlot *plot, GtkPlotText text); ! was instead ! void gtk_plot_draw_text (GtkPlot *plot, GtkPlotText *text); ! for all similiar functions. ! ! */ #define GTK_TYPE_PSFONT (gtk_psfont_get_type ()) static GType *************** *** 31,48 **** } ! #if 0 ! //GType gtk_plot_canvas_child_get_type (void) G_GNUC_CONST; ! #define GTK_TYPE_PLOT_CANVAS_CHILD (gtk_plot_canvas_child_get_type ()) static GType ! gtk_plot_canvas_child_get_type (void) { static GType our_type = 0; - - if (our_type == 0) - our_type = g_pointer_type_register_static ("GtkPlotCanvasChild"); return our_type; } ! #endif /* This one is probably an "error" in h2def.py */ --- 64,88 ---- } ! #define GTK_TYPE_PLOT_TEXT (gtk_plot_text_get_type ()) static GType ! gtk_plot_text_get_type (void) { static GType our_type = 0; + #if 1 //HACK + if (our_type == 0) + our_type = g_pointer_type_register_static ("GtkPlotText"); + #else //Should be something similiar to this + if (our_type == 0) + our_type = g_boxed_type_register_static ("GtkPlotText", + (GBoxedCopyFunc) gtk_plot_text_ref, + (GBoxedFreeFunc) gtk_plot_text_unref); + #endif return our_type; } ! ! ! static void gtk_plot_draw_text_PY (GtkPlot *plot, GtkPlotText *text) { gtk_plot_draw_text(plot, *text); } ! /* This one is probably an "error" in h2def.py */ *************** *** 52,55 **** --- 92,157 ---- guint16 gtk_plot_canvas_unset_flags(GtkPlotCanvas *canvas, guint16 flags) { return GTK_PLOT_CANVAS_UNSET_FLAGS(canvas, flags); } + /* ---------------------------------------------------------------------- + Functions for converting Python sequence like objects To/From C arrays. + The C arrays are limited to either type gdouble* or gint*. + + This is very limited for now. It will grow to include NumPy and some + generic object get/set method look-up and use. + + May desire to more this out to separate file. + + May reuse large parts of Andreas Voegele's code here. May not. + I have to first become more familiar with the gtkextra C code. + + For now, I'll just leak.... + + Also, not doing iterators or function dataset's (yet). + + */ + int + pygtkextra_get_points(PyObject *sequence, gdouble** out_points) + { + int n = 0; + gdouble *points = NULL; + if (PySequence_Check(sequence)) { + n = PySequence_Length(sequence); + if (n > 0) { + int i; + + points = g_new(gdouble, n); + for (i = 0; i < n; ++i) { + PyObject *item, *value; + + item = PySequence_GetItem(sequence, i); + if (PyFloat_Check(item)) { + points[i] = PyFloat_AS_DOUBLE(item); + } else if (PyNumber_Check(item) + && (value = PyNumber_Float(item))) { + points[i] = PyFloat_AS_DOUBLE(value); + Py_DECREF(value); + } else { + #if 0 + PyErr_SetString(PyExc_TypeError, + "sequence items must be numbers"); + #endif + Py_DECREF(item); + g_free(points); + points = NULL; + return -1; + } + Py_DECREF(item); + } + } + } + #if 0 + else if (sequence != Py_None) { + PyErr_SetString(PyExc_TypeError, "argument must be sequence or None"); + return -1; + } + #endif + *out_points = points; + return n; + } + /* ---------------------------------------------------------------------- */ %% modulename gtkextra *************** *** 84,103 **** _wrap_gtk_plot_canvas_child__get_data(PyObject *self, void *closure) { ! // FIXME ! switch (pyg_pointer_get(self, GtkPlotCanvasChild)->type) { case GTK_PLOT_CANVAS_NONE: Py_INCREF(Py_None); return Py_None; ! #if 0 case GTK_PLOT_CANVAS_PLOT: case GTK_PLOT_CANVAS_DATA: case GTK_PLOT_CANVAS_LEGENDS: - case GTK_PLOT_CANVAS_TEXT: - return pygobject_new((GObject *)(pyg_pointer_get(self, GtkPlotCanvasChild)->data)); - #endif default: return PyCObject_FromVoidPtr(pyg_pointer_get(self, GtkPlotCanvasChild)->data, NULL); } } %% --- 186,245 ---- _wrap_gtk_plot_canvas_child__get_data(PyObject *self, void *closure) { ! switch (pyg_boxed_get(self, GtkPlotCanvasChild)->type) { case GTK_PLOT_CANVAS_NONE: Py_INCREF(Py_None); return Py_None; ! ! case GTK_PLOT_CANVAS_TEXT: ! #if 0 // When boxed correctly ! return pyg_boxed_new(GTK_TYPE_PLOT_TEXT, pyg_boxed_get(self, GtkPlotCanvasChild)->data, TRUE, TRUE); ! #else // Might also be ok when boxed correctly. ! return pyg_boxed_new(GTK_TYPE_PLOT_TEXT, pyg_boxed_get(self, GtkPlotCanvasChild)->data, FALSE, FALSE); ! #endif case GTK_PLOT_CANVAS_PLOT: case GTK_PLOT_CANVAS_DATA: case GTK_PLOT_CANVAS_LEGENDS: default: return PyCObject_FromVoidPtr(pyg_pointer_get(self, GtkPlotCanvasChild)->data, NULL); } } + + %% + override gtk_plot_data_set_points + static PyObject * + _wrap_gtk_plot_data_set_points(PyGObject *self, PyObject *args, PyObject *kwargs) + { + static char *kwlist[] = { "x", "y", "dx", "dy", NULL }; + gdouble *x, *y, *dx, *dy = NULL; + PyObject *py_x, *py_y, *py_dx, *py_dy= NULL; + int nx, ny, ndx, ndy; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OOOO:GtkPlotData.set_points", kwlist, + &py_x, &py_y, &py_dx, &py_dy )) + return NULL; + + nx = pygtkextra_get_points( py_x, &x ); + ny = pygtkextra_get_points( py_y, &y ); + ndx = pygtkextra_get_points( py_dx, &dx ); + ndy = pygtkextra_get_points( py_dy, &dy ); + + printf("%d %d %d %d\n", nx, ny, ndx, ndy); + + gtk_plot_data_set_points(GTK_PLOT_DATA(self->obj), x, y, dx, dy, nx); + gtk_plot_data_set_points(GTK_PLOT_DATA(self->obj), x, y, dx, dy, nx); + + Py_INCREF(Py_None); + return Py_None; + + + } + #if 0 + void gtk_plot_data_set_points212 (GtkPlotData *data, + gdouble *x, gdouble *y, + gdouble *dx, gdouble *dy, + gint num_points); + #endif + + %% |
From: <pyt...@li...> - 2002-07-12 19:59:54
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/examples In directory usw-pr-cvs1:/tmp/cvs-serv28817/examples Modified Files: testgtkplot.py Log Message: testgtkplot.py mostly works now. Still VERY rough. Index: testgtkplot.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkplot.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** testgtkplot.py 11 Jul 2002 19:17:44 -0000 1.2 --- testgtkplot.py 12 Jul 2002 19:59:50 -0000 1.3 *************** *** 9,12 **** --- 9,14 ---- def __init__(self): + self.hack = [] + self.nlayers = 0 self.buttons = [] *************** *** 47,53 **** plot.axis_set_labels_suffix(gtkextra.PLOT_AXIS_LEFT, "%"); canvas.add_plot(plot, 0.15, 0.06) ! #self.build_example1(plot) ! ! plot = self.new_layer(canvas) --- 49,53 ---- plot.axis_set_labels_suffix(gtkextra.PLOT_AXIS_LEFT, "%"); canvas.add_plot(plot, 0.15, 0.06) ! self.build_example1(plot) plot = self.new_layer(canvas) *************** *** 63,70 **** plot.legends_move(0.58, 0.05) canvas.add_plot(plot, 0.15, 0.4) ! #self.build_example2(plot) ! ! #self.show_all() ! #return canvas.connect("move_item", self.move_item) --- 63,67 ---- plot.legends_move(0.58, 0.05) canvas.add_plot(plot, 0.15, 0.4) ! self.build_example2(plot) canvas.connect("move_item", self.move_item) *************** *** 81,86 **** "Format text mixing \\Bbold \\N\\i, italics, "\ "\\ggreek \\4\\N and \\+different fonts") ! #This is harder since "data" can be different types. Think about this... ! #child.data.set_border(gtkextra.PLOT_BORDER_SHADOW, 2, 0, 2) self.show_all() --- 78,83 ---- "Format text mixing \\Bbold \\N\\i, italics, "\ "\\ggreek \\4\\N and \\+different fonts") ! ! child.data.set_border(gtkextra.PLOT_BORDER_SHADOW, 2, 0, 2) self.show_all() *************** *** 177,206 **** colormap = self.get_colormap() ! red = colormap.alloc("red") ! black = colormap.alloc("black") ! blue = colormap.alloc("blue") ! data = GtkPlotData() plot.add_data(data) data.set_points(px1, py1, dx1, dy1) ! data.set_symbol(gtkextra.PLOT_SYMBOL_DIAMOND, gtkextra.PLOT_SYMBOL_EMPTY, 10, 2, red) ! data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 1, red) data.set_connector(gtkextra.PLOT_CONNECT_SPLINE) data.show_yerrbars() data.set_legend("Spline + EY") ! data = GtkPlotData() plot.add_data(data) data.set_points(px2, py2, dx2, dy2) ! data.set_symbol(gtkextra.PLOT_SYMBOL_SQUARE, gtkextra.PLOT_SYMBOL_OPAQUE, 8, 2, black) ! data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 4, red) data.set_connector(gtkextra.PLOT_CONNECT_STRAIGHT) ! data.set_x_attributes(gtkextra.PLOT_LINE_SOLID, 0, black) ! data.set_y_attributes(gtkextra.PLOT_LINE_SOLID, 0, black) data.set_legend("Line + Symbol") ! data = plot.add_function(self.function) ! data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, blue) ! data.set_legend("Function Plot") def build_example2(self, plot): --- 174,206 ---- colormap = self.get_colormap() ! red = colormap.alloc_color("red") ! black = colormap.alloc_color("black") ! blue = colormap.alloc_color("blue") ! data = gtkextra.PlotData() plot.add_data(data) data.set_points(px1, py1, dx1, dy1) ! data.set_symbol(gtkextra.PLOT_SYMBOL_DIAMOND, gtkextra.PLOT_SYMBOL_EMPTY, 10, 2, red, red) ! data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 1, red) data.set_connector(gtkextra.PLOT_CONNECT_SPLINE) data.show_yerrbars() data.set_legend("Spline + EY") + self.hack.append(data) #FIXME: Crashes without holding this. I think plot.add_data() should do a ref(). ! ! data = gtkextra.PlotData() plot.add_data(data) data.set_points(px2, py2, dx2, dy2) ! data.set_symbol(gtkextra.PLOT_SYMBOL_SQUARE, gtkextra.PLOT_SYMBOL_OPAQUE, 8, 2, black, black) ! data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 4, red) data.set_connector(gtkextra.PLOT_CONNECT_STRAIGHT) ! data.set_x_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 0, black) ! data.set_y_attributes(gtkextra.PLOT_LINE_SOLID, 0, 0, 0, black) data.set_legend("Line + Symbol") + self.hack.append(data) #FIXME: Crashes without holding this. I think plot.add_data() should do a ref(). ! #data = plot.add_function(self.function) ! #data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, blue) ! #data.set_legend("Function Plot") def build_example2(self, plot): *************** *** 210,228 **** colormap = self.get_colormap() ! dark_green = colormap.alloc("dark green") ! blue = colormap.alloc("blue") ! data = plot.add_function(self.gaussian) ! data.set_line_attributes(gtkextra.PLOT_LINE_DASHED, 2, dark_green) ! data.set_legend("Gaussian") ! data = GtkPlotBar(gtkextra.ORIENTATION_VERTICAL) plot.add_data(data) data.set_points(px2, py2, dx2) ! data.set_symbol(gtkextra.PLOT_SYMBOL_NONE, gtkextra.PLOT_SYMBOL_OPAQUE, 10, 2, blue) ! data.set_line_attributes(gtkextra.PLOT_LINE_NONE, 1, blue) data.set_connector(gtkextra.PLOT_CONNECT_NONE) data.set_legend("V Bars") ! def function(self, x, *extra): try: --- 210,229 ---- colormap = self.get_colormap() ! dark_green = colormap.alloc_color("dark green") ! blue = colormap.alloc_color("blue") ! #data = plot.add_function(self.gaussian) ! #data.set_line_attributes(gtkextra.PLOT_LINE_DASHED, 2, dark_green) ! #data.set_legend("Gaussian") ! data = gtkextra.PlotBar(gtk.ORIENTATION_VERTICAL) plot.add_data(data) data.set_points(px2, py2, dx2) ! data.set_symbol(gtkextra.PLOT_SYMBOL_NONE, gtkextra.PLOT_SYMBOL_OPAQUE, 10, 2, blue, blue) ! data.set_line_attributes(gtkextra.PLOT_LINE_NONE, 0, 0, 1, blue) data.set_connector(gtkextra.PLOT_CONNECT_NONE) data.set_legend("V Bars") ! self.hack.append(data) #FIXME: Crashes without holding this. I think plot.add_data() should do a ref(). ! def function(self, x, *extra): try: *************** *** 239,243 **** gtk.main_quit() ! if __name__ == '__main__': app = Application() gtk.main() --- 240,245 ---- gtk.main_quit() ! if __name__ == '__main__': ! raw_input("attach now") app = Application() gtk.main() |
From: <pyt...@li...> - 2002-07-11 19:17:48
|
Update of /cvsroot/python-gtkextra/python-gtkextra2/examples In directory usw-pr-cvs1:/tmp/cvs-serv20769/examples Modified Files: testcharsel.py testgtkplot.py Log Message: little bit closer Index: testcharsel.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testcharsel.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testcharsel.py 10 Jul 2002 19:06:52 -0000 1.1.1.1 --- testcharsel.py 11 Jul 2002 19:17:44 -0000 1.2 *************** *** 4,25 **** import gtkextra - class xApplication(gtkextra.CharSelection): - - def __init__(self): - gtkextra.CharSelection.__init__(self) - self.connect("destroy", gtk.main_quit) - self.cancel_button.connect("clicked", gtk.main_quit) - self.ok_button.connect("clicked", self.ok_clicked) - self.show() - - def ok_clicked(self, *args): - psfont = self.font_combo.psfont - psname = psfont.psname - code = self.get_selection() - print "%s, %d" % (psname, code) - - def mainloop(self): - gtk.main() - class Application(gtkextra.CharSelection): --- 4,7 ---- *************** *** 32,40 **** def ok_clicked(self, *args): ! #FIXME ! psfont = self.font_combo.psfont ! psname = psfont.psname ! code = self.get_selection() ! print "%s, %d" % (psname, code) def quit(self, *args): --- 14,22 ---- def ok_clicked(self, *args): ! psfont = self.font_combo.get_psfont() ! psname_f = psfont.get_psfontname() ! psname_a = psfont.psname ! code = self.selection ! print "psname_f=%s psname_a=%s code=%d " % (psname_f, psname_a, code) def quit(self, *args): Index: testgtkplot.py =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/examples/testgtkplot.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** testgtkplot.py 10 Jul 2002 19:06:52 -0000 1.1.1.1 --- testgtkplot.py 11 Jul 2002 19:17:44 -0000 1.2 *************** *** 1,10 **** #!/usr/bin/env python ! ! from gtk import * ! from gtkextra import * from math import exp, pow, sin - import icons ! class Application(GtkWindow): scale = 1.0 --- 1,8 ---- #!/usr/bin/env python ! import gtk ! import gtkextra from math import exp, pow, sin ! class Application(gtk.Window): scale = 1.0 *************** *** 15,35 **** self.plots = [] ! page_width = PLOT_LETTER_W * self.scale ! page_height = PLOT_LETTER_H * self.scale ! GtkWindow.__init__(self, title="GtkPlot Demo") ! self.set_usize(550, 650) ! self.connect("destroy", mainquit) ! scrollwin = GtkScrolledWindow() ! scrollwin.set_policy(POLICY_ALWAYS, POLICY_ALWAYS) self.add(scrollwin) colormap = self.get_colormap() ! light_yellow = colormap.alloc("light yellow") ! light_blue = colormap.alloc("light blue") ! canvas = GtkPlotCanvas(page_width, page_height) ! canvas.plot_canvas_set_flags(PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) canvas.set_size(page_width, page_height) --- 13,34 ---- self.plots = [] ! page_width = gtkextra.PLOT_LETTER_W * self.scale ! page_height = gtkextra.PLOT_LETTER_H * self.scale ! gtk.Window.__init__(self) ! self.set_title("GtkPlot Demo") ! self.set_size_request(550, 650) ! self.connect("destroy", self.quit) ! scrollwin = gtk.ScrolledWindow() ! scrollwin.set_policy(gtk.POLICY_ALWAYS, gtk.POLICY_ALWAYS) self.add(scrollwin) colormap = self.get_colormap() ! light_yellow = colormap.alloc_color("light yellow") ! light_blue = colormap.alloc_color("light blue") ! canvas = gtkextra.PlotCanvas(page_width, page_height) ! canvas.plot_canvas_set_flags(gtkextra.PLOT_CANVAS_DND_FLAGS) scrollwin.add_with_viewport(canvas) canvas.set_size(page_width, page_height) *************** *** 38,52 **** plot.set_range(-1.0, 1.0, -1.0, 1.4) plot.legends_move(0.51, 0.05) ! plot.set_legends_border(PLOT_BORDER_NONE) ! plot.axis_hide_title(PLOT_AXIS_TOP) ! plot.axis_set_ticks(PLOT_AXIS_X, 1.0, 1) ! plot.axis_set_ticks(PLOT_AXIS_Y, 1.0, 1) ! plot.axis_set_visible(PLOT_AXIS_TOP, TRUE) ! plot.axis_set_visible(PLOT_AXIS_RIGHT, TRUE) ! plot.x0_set_visible(TRUE) ! plot.y0_set_visible(TRUE) ! plot.axis_set_labels_suffix(PLOT_AXIS_LEFT, "%"); canvas.add_plot(plot, 0.15, 0.06) ! self.build_example1(plot) plot = self.new_layer(canvas) --- 37,53 ---- plot.set_range(-1.0, 1.0, -1.0, 1.4) plot.legends_move(0.51, 0.05) ! plot.set_legends_border(gtkextra.PLOT_BORDER_NONE, gtkextra.PLOT_BORDER_NONE) ! plot.axis_hide_title(gtkextra.PLOT_AXIS_TOP) ! plot.axis_set_ticks(gtkextra.PLOT_AXIS_X, 1.0, 1) ! plot.axis_set_ticks(gtkextra.PLOT_AXIS_Y, 1.0, 1) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_TOP, gtk.TRUE) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_RIGHT, gtk.TRUE) ! plot.x0_set_visible(gtk.TRUE) ! plot.y0_set_visible(gtk.TRUE) ! plot.axis_set_labels_suffix(gtkextra.PLOT_AXIS_LEFT, "%"); canvas.add_plot(plot, 0.15, 0.06) ! #self.build_example1(plot) ! ! plot = self.new_layer(canvas) *************** *** 54,91 **** plot.legends_set_attributes(None, 0, None, light_blue) plot.set_range(0.0, 1.0, 0.0, 0.85) ! plot.axis_set_visible(PLOT_AXIS_TOP, TRUE) ! plot.axis_set_visible(PLOT_AXIS_RIGHT, TRUE) ! plot.axis_hide_title(PLOT_AXIS_TOP) ! plot.axis_hide_title(PLOT_AXIS_RIGHT) ! plot.grids_set_visible(TRUE, TRUE, TRUE, TRUE) ! plot.set_legends_border(PLOT_BORDER_SHADOW, 3) plot.legends_move(0.58, 0.05) canvas.add_plot(plot, 0.15, 0.4) ! self.build_example2(plot) canvas.connect("move_item", self.move_item) canvas.connect("select_item", self.select_item) canvas.put_text(0.40, 0.02, "Times-BoldItalic", 16, 0, None, None, ! TRUE, JUSTIFY_CENTER, "DnD titles, legends and plots") canvas.put_text(0.40, 0.72, "Times-Roman", 16, 0, None, None, ! TRUE, JUSTIFY_CENTER, "You can use \\ssubscripts\\b\\b\\b\\b\\b\\b\\b"\ "\\b\\b\\b\\N\\Ssuperscripts") child = canvas.put_text(0.40, 0.755, "Times-Roman", 16, 0, None, None, ! TRUE, JUSTIFY_CENTER, "Format text mixing \\Bbold \\N\\i, italics, "\ "\\ggreek \\4\\N and \\+different fonts") ! child.data.set_border(PLOT_BORDER_SHADOW, 2, 0, 2) self.show_all() ! try: ! canvas.export_ps_with_size("plotdemo.ps", eps=TRUE) ! print "Wrote plotdemo.ps" ! except: ! pass def move_item(self, canvas, item, new_x, new_y, *args): ! if item.type == PLOT_CANVAS_DATA: print "MOVING DATA" (i, old_x, old_y) = canvas.get_active_point() --- 55,95 ---- plot.legends_set_attributes(None, 0, None, light_blue) plot.set_range(0.0, 1.0, 0.0, 0.85) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_TOP, gtk.TRUE) ! plot.axis_set_visible(gtkextra.PLOT_AXIS_RIGHT, gtk.TRUE) ! plot.axis_hide_title(gtkextra.PLOT_AXIS_TOP) ! plot.axis_hide_title(gtkextra.PLOT_AXIS_RIGHT) ! plot.grids_set_visible(gtk.TRUE, gtk.TRUE, gtk.TRUE, gtk.TRUE) ! plot.set_legends_border(gtkextra.PLOT_BORDER_SHADOW, 3) plot.legends_move(0.58, 0.05) canvas.add_plot(plot, 0.15, 0.4) ! #self.build_example2(plot) ! ! #self.show_all() ! #return ! canvas.connect("move_item", self.move_item) canvas.connect("select_item", self.select_item) canvas.put_text(0.40, 0.02, "Times-BoldItalic", 16, 0, None, None, ! gtk.TRUE, gtk.JUSTIFY_CENTER, "DnD titles, legends and plots") canvas.put_text(0.40, 0.72, "Times-Roman", 16, 0, None, None, ! gtk.TRUE, gtk.JUSTIFY_CENTER, "You can use \\ssubscripts\\b\\b\\b\\b\\b\\b\\b"\ "\\b\\b\\b\\N\\Ssuperscripts") child = canvas.put_text(0.40, 0.755, "Times-Roman", 16, 0, None, None, ! gtk.TRUE, gtk.JUSTIFY_CENTER, "Format text mixing \\Bbold \\N\\i, italics, "\ "\\ggreek \\4\\N and \\+different fonts") ! #This is harder since "data" can be different types. Think about this... ! #child.data.set_border(gtkextra.PLOT_BORDER_SHADOW, 2, 0, 2) self.show_all() ! canvas.export_ps_with_size("plotdemo.ps", eps=gtk.TRUE) ! print "Wrote plotdemo.ps" ! def move_item(self, canvas, item, new_x, new_y, *args): ! if item.type == gtkextra.PLOT_CANVAS_DATA: print "MOVING DATA" (i, old_x, old_y) = canvas.get_active_point() *************** *** 96,115 **** points[1][i] = new_y data.set_points(points) ! return TRUE def select_item(self, canvas, event, item, *args): ! if item.type == PLOT_CANVAS_TEXT: print "Item selected: TEXT" ! elif item.type == PLOT_CANVAS_TITLE: print "Item selected: TITLE" ! elif item.type == PLOT_CANVAS_LEGENDS: print "Item selected: LEGENDS" ! elif item.type == PLOT_CANVAS_PLOT: print "Item selected: PLOT" ! elif item.type == PLOT_CANVAS_AXIS: print "Item selected: AXIS" ! elif item.type == PLOT_CANVAS_PIXMAP: print "Item selected: PIXMAP" ! elif item.type == PLOT_CANVAS_DATA: print "Item selected: DATA" (i, x, y) = canvas.get_active_point() --- 100,119 ---- points[1][i] = new_y data.set_points(points) ! return gtk.TRUE def select_item(self, canvas, event, item, *args): ! if item.type == gtkextra.PLOT_CANVAS_TEXT: print "Item selected: TEXT" ! elif item.type == gtkextra.PLOT_CANVAS_TITLE: print "Item selected: TITLE" ! elif item.type == gtkextra.PLOT_CANVAS_LEGENDS: print "Item selected: LEGENDS" ! elif item.type == gtkextra.PLOT_CANVAS_PLOT: print "Item selected: PLOT" ! elif item.type == gtkextra.PLOT_CANVAS_AXIS: print "Item selected: AXIS" ! elif item.type == gtkextra.PLOT_CANVAS_PIXMAP: print "Item selected: PIXMAP" ! elif item.type == gtkextra.PLOT_CANVAS_DATA: print "Item selected: DATA" (i, x, y) = canvas.get_active_point() *************** *** 117,123 **** #canvas.get_active_data().add_marker(i) #canvas.get_active_plot().queue_draw() ! elif item.type == PLOT_CANVAS_MARKER: print "Item selected: MARKER" ! elif item.type == PLOT_CANVAS_NONE: print "Item selected: NONE" plot = canvas.get_active_plot() --- 121,127 ---- #canvas.get_active_data().add_marker(i) #canvas.get_active_plot().queue_draw() ! elif item.type == gtkextra.PLOT_CANVAS_MARKER: print "Item selected: MARKER" ! elif item.type == gtkextra.PLOT_CANVAS_NONE: print "Item selected: NONE" plot = canvas.get_active_plot() *************** *** 125,132 **** if plot == self.plots[n]: canvas.set_active_plot(plot) ! self.buttons[n].set_active(TRUE) else: ! self.buttons[n].set_active(FALSE) ! return TRUE def activate_plot(self, button, canvas, *args): --- 129,136 ---- if plot == self.plots[n]: canvas.set_active_plot(plot) ! self.buttons[n].set_active(gtk.TRUE) else: ! self.buttons[n].set_active(gtk.FALSE) ! return gtk.TRUE def activate_plot(self, button, canvas, *args): *************** *** 136,141 **** canvas.set_active_plot(self.plots[n]) else: ! self.buttons[n].set_active(FALSE) ! return TRUE def activate_button(self, canvas, *args): --- 140,145 ---- canvas.set_active_plot(self.plots[n]) else: ! self.buttons[n].set_active(gtk.FALSE) ! return gtk.TRUE def activate_button(self, canvas, *args): *************** *** 143,161 **** for n in xrange(self.nlayers): if plot == self.plots[n]: ! self.buttons[n].set_active(TRUE) else: ! self.buttons[n].set_active(FALSE) ! return TRUE def new_layer(self, canvas): self.nlayers = self.nlayers + 1 ! button = GtkToggleButton(str(self.nlayers)) ! button.set_usize(20, 20) canvas.put(button, (self.nlayers - 1) * 20, 0) button.connect("toggled", self.activate_plot, canvas) ! plot = GtkPlot(width=0.5, height=0.25) self.buttons.append(button) self.plots.append(plot) ! button.set_active(TRUE) return plot --- 147,166 ---- for n in xrange(self.nlayers): if plot == self.plots[n]: ! self.buttons[n].set_active(gtk.TRUE) else: ! self.buttons[n].set_active(gtk.FALSE) ! return gtk.TRUE def new_layer(self, canvas): self.nlayers = self.nlayers + 1 ! button = gtk.ToggleButton(str(self.nlayers)) ! button.set_size_request(20, 20) canvas.put(button, (self.nlayers - 1) * 20, 0) button.connect("toggled", self.activate_plot, canvas) ! plot = gtkextra.Plot() ! plot.resize(0.5, 0.25) self.buttons.append(button) self.plots.append(plot) ! button.set_active(gtk.TRUE) return plot *************** *** 179,185 **** plot.add_data(data) data.set_points(px1, py1, dx1, dy1) ! data.set_symbol(PLOT_SYMBOL_DIAMOND, PLOT_SYMBOL_EMPTY, 10, 2, red) ! data.set_line_attributes(PLOT_LINE_SOLID, 1, red) ! data.set_connector(PLOT_CONNECT_SPLINE) data.show_yerrbars() data.set_legend("Spline + EY") --- 184,190 ---- plot.add_data(data) data.set_points(px1, py1, dx1, dy1) ! data.set_symbol(gtkextra.PLOT_SYMBOL_DIAMOND, gtkextra.PLOT_SYMBOL_EMPTY, 10, 2, red) ! data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 1, red) ! data.set_connector(gtkextra.PLOT_CONNECT_SPLINE) data.show_yerrbars() data.set_legend("Spline + EY") *************** *** 188,200 **** plot.add_data(data) data.set_points(px2, py2, dx2, dy2) ! data.set_symbol(PLOT_SYMBOL_SQUARE, PLOT_SYMBOL_OPAQUE, 8, 2, black) ! data.set_line_attributes(PLOT_LINE_SOLID, 4, red) ! data.set_connector(PLOT_CONNECT_STRAIGHT) ! data.set_x_attributes(PLOT_LINE_SOLID, 0, black) ! data.set_y_attributes(PLOT_LINE_SOLID, 0, black) data.set_legend("Line + Symbol") data = plot.add_function(self.function) ! data.set_line_attributes(PLOT_LINE_SOLID, 0, blue) data.set_legend("Function Plot") --- 193,205 ---- plot.add_data(data) data.set_points(px2, py2, dx2, dy2) ! data.set_symbol(gtkextra.PLOT_SYMBOL_SQUARE, gtkextra.PLOT_SYMBOL_OPAQUE, 8, 2, black) ! data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 4, red) ! data.set_connector(gtkextra.PLOT_CONNECT_STRAIGHT) ! data.set_x_attributes(gtkextra.PLOT_LINE_SOLID, 0, black) ! data.set_y_attributes(gtkextra.PLOT_LINE_SOLID, 0, black) data.set_legend("Line + Symbol") data = plot.add_function(self.function) ! data.set_line_attributes(gtkextra.PLOT_LINE_SOLID, 0, blue) data.set_legend("Function Plot") *************** *** 209,221 **** data = plot.add_function(self.gaussian) ! data.set_line_attributes(PLOT_LINE_DASHED, 2, dark_green) data.set_legend("Gaussian") ! data = GtkPlotBar(ORIENTATION_VERTICAL) plot.add_data(data) data.set_points(px2, py2, dx2) ! data.set_symbol(PLOT_SYMBOL_NONE, PLOT_SYMBOL_OPAQUE, 10, 2, blue) ! data.set_line_attributes(PLOT_LINE_NONE, 1, blue) ! data.set_connector(PLOT_CONNECT_NONE) data.set_legend("V Bars") --- 214,226 ---- data = plot.add_function(self.gaussian) ! data.set_line_attributes(gtkextra.PLOT_LINE_DASHED, 2, dark_green) data.set_legend("Gaussian") ! data = GtkPlotBar(gtkextra.ORIENTATION_VERTICAL) plot.add_data(data) data.set_points(px2, py2, dx2) ! data.set_symbol(gtkextra.PLOT_SYMBOL_NONE, gtkextra.PLOT_SYMBOL_OPAQUE, 10, 2, blue) ! data.set_line_attributes(gtkextra.PLOT_LINE_NONE, 1, blue) ! data.set_connector(gtkextra.PLOT_CONNECT_NONE) data.set_legend("V Bars") *************** *** 231,239 **** except: return None ! ! def mainloop(self): ! mainloop() if __name__ == '__main__': app = Application() ! app.mainloop() --- 236,244 ---- except: return None ! def quit(self, *args): ! gtk.main_quit() if __name__ == '__main__': app = Application() ! gtk.main() ! |
From: <pyt...@li...> - 2002-07-11 19:17:48
|
Update of /cvsroot/python-gtkextra/python-gtkextra2 In directory usw-pr-cvs1:/tmp/cvs-serv20769 Modified Files: .cvsignore Log Message: little bit closer Index: .cvsignore =================================================================== RCS file: /cvsroot/python-gtkextra/python-gtkextra2/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** .cvsignore 10 Jul 2002 19:26:06 -0000 1.1 --- .cvsignore 11 Jul 2002 19:17:44 -0000 1.2 *************** *** 1,2 **** --- 1,3 ---- + Makefile Makefile.in aclocal.m4 *************** *** 6,8 **** --- 7,12 ---- config.status configure + libtool + python-gtkextra.pc + python-gtkextra.spec |