Branch: Tag:

2005-07-28

2005-07-28 15:26:09 by Martin Nilsson <mani@lysator.liu.se>

GTK2

Rev: src/post_modules/GTK2/AUTHORS:1.1
Rev: src/post_modules/GTK2/build_pgtk.pike:1.1
Rev: src/post_modules/GTK2/gdkeventstrings.h:1.1
Rev: src/post_modules/GTK2/module.pmod.in:1.1
Rev: src/post_modules/GTK2/pgtk.h:1.1
Rev: src/post_modules/GTK2/source/common_draw.inc:1.1
Rev: src/post_modules/GTK2/source/constants.pre:1.1
Rev: src/post_modules/GTK2/source/encode_truecolor.c:1.1
Rev: src/post_modules/GTK2/source/gdkatom.pre:1.1
Rev: src/post_modules/GTK2/source/gdkbitmap.pre:1.1
Rev: src/post_modules/GTK2/source/gdkcolor.pre:1.1
Rev: src/post_modules/GTK2/source/gdkdisplay.pre:1.1
Rev: src/post_modules/GTK2/source/gdkdragcontext.pre:1.1
Rev: src/post_modules/GTK2/source/gdkdrawable.pre:1.1
Rev: src/post_modules/GTK2/source/gdkevent.pre:1.1
Rev: src/post_modules/GTK2/source/gdkgc.pre:1.1
Rev: src/post_modules/GTK2/source/gdkimage.pre:1.1
Rev: src/post_modules/GTK2/source/gdkpixbuf.pre:1.1
Rev: src/post_modules/GTK2/source/gdkpixbufanimation.pre:1.1
Rev: src/post_modules/GTK2/source/gdkpixbufanimationiter.pre:1.1
Rev: src/post_modules/GTK2/source/gdkpixmap.pre:1.1
Rev: src/post_modules/GTK2/source/gdkrectangle.pre:1.1
Rev: src/post_modules/GTK2/source/gdkregion.pre:1.1
Rev: src/post_modules/GTK2/source/gdkwindow.pre:1.1
Rev: src/post_modules/GTK2/source/gladexml.pre:1.1
Rev: src/post_modules/GTK2/source/global.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeabout.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeapp.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeappbar.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeapplet.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecalculator.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecanvas.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecanvasgroup.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecanvasitem.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecanvasline.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomecolorpicker.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedateedit.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedialog.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedock.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedockband.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedockitem.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedocklayout.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedruid.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedruidpage.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedruidpagefinish.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedruidpagestandard.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomedruidpagestart.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomehref.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeiconentry.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeiconselection.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomeless.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomemessagebox.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomenumberentry.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomepaperselector.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomepropertybox.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomescores.pre:1.1
Rev: src/post_modules/GTK2/source/gnome/gnomestatusdocklet.pre:1.1
Rev: src/post_modules/GTK2/source/gnomeapp.pre:1.1
Rev: src/post_modules/GTK2/source/gnomeappbar.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvas.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasbpath.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasclipgroup.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasellipse.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasgroup.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasitem.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasline.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvaspixbuf.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasre.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasrect.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasrichtext.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvasshape.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvastext.pre:1.1
Rev: src/post_modules/GTK2/source/gnomecanvaswidget.pre:1.1
Rev: src/post_modules/GTK2/source/gnomeclient.pre:1.1
Rev: src/post_modules/GTK2/source/gnomedateedit.pre:1.1
Rev: src/post_modules/GTK2/source/gnomedruid.pre:1.1
Rev: src/post_modules/GTK2/source/gnomedruidpage.pre:1.1
Rev: src/post_modules/GTK2/source/gnomedruidpageedge.pre:1.1
Rev: src/post_modules/GTK2/source/gnomedruidpagestandard.pre:1.1
Rev: src/post_modules/GTK2/source/gnomehref.pre:1.1
Rev: src/post_modules/GTK2/source/gnomeiconentry.pre:1.1
Rev: src/post_modules/GTK2/source/gnomeiconselection.pre:1.1
Rev: src/post_modules/GTK2/source/gobject.pre:1.1
Rev: src/post_modules/GTK2/source/gtkaboutdialog.pre:1.1
Rev: src/post_modules/GTK2/source/gtkaccelgroup.pre:1.1
Rev: src/post_modules/GTK2/source/gtkaccellabel.pre:1.1
Rev: src/post_modules/GTK2/source/gtkaction.pre:1.1
Rev: src/post_modules/GTK2/source/gtkactiongroup.pre:1.1
Rev: src/post_modules/GTK2/source/gtkadjustment.pre:1.1
Rev: src/post_modules/GTK2/source/gtkalignment.pre:1.1
Rev: src/post_modules/GTK2/source/gtkarrow.pre:1.1
Rev: src/post_modules/GTK2/source/gtkaspectframe.pre:1.1
Rev: src/post_modules/GTK2/source/gtkbin.pre:1.1
Rev: src/post_modules/GTK2/source/gtkbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkbuttonbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcalendar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcelleditable.inc:1.1
Rev: src/post_modules/GTK2/source/gtkcelllayout.inc:1.1
Rev: src/post_modules/GTK2/source/gtkcellrenderer.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellrenderercombo.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellrendererpixbuf.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellrendererprogress.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellrenderertext.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellrenderertoggle.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcellview.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcheckbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcheckmenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtkclipboard.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcolorbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcolorselection.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcolorselectiondialog.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcombo.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcombobox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcomboboxentry.pre:1.1
Rev: src/post_modules/GTK2/source/gtkcontainer.pre:1.1
Rev: src/post_modules/GTK2/source/gtkdata.pre:1.1
Rev: src/post_modules/GTK2/source/gtkdialog.pre:1.1
Rev: src/post_modules/GTK2/source/gtkdrawingarea.pre:1.1
Rev: src/post_modules/GTK2/source/gtkeditable.inc:1.1
Rev: src/post_modules/GTK2/source/gtkentry.pre:1.1
Rev: src/post_modules/GTK2/source/gtkentrycompletion.pre:1.1
Rev: src/post_modules/GTK2/source/gtkeventbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkexpander.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfilechooser.inc:1.1
Rev: src/post_modules/GTK2/source/gtkfilechooserbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfilechooserdialog.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfilechooserwidget.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfilefilter.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfileselection.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfixed.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfontbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfontselection.pre:1.1
Rev: src/post_modules/GTK2/source/gtkfontselectiondialog.pre:1.1
Rev: src/post_modules/GTK2/source/gtkframe.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhandlebox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhbuttonbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhpaned.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhscale.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhscrollbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkhseparator.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconfactory.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconinfo.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconset.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconsize.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconsource.pre:1.1
Rev: src/post_modules/GTK2/source/gtkicontheme.pre:1.1
Rev: src/post_modules/GTK2/source/gtkiconview.pre:1.1
Rev: src/post_modules/GTK2/source/gtkimage.pre:1.1
Rev: src/post_modules/GTK2/source/gtkimagemenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtkinvisible.pre:1.1
Rev: src/post_modules/GTK2/source/gtkitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtklabel.pre:1.1
Rev: src/post_modules/GTK2/source/gtklayout.pre:1.1
Rev: src/post_modules/GTK2/source/gtkliststore.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmenu.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmenubar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmenushell.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmenutoolbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkmisc.pre:1.1
Rev: src/post_modules/GTK2/source/gtknotebook.pre:1.1
Rev: src/post_modules/GTK2/source/gtkobject.pre:1.1
Rev: src/post_modules/GTK2/source/gtkpaned.pre:1.1
Rev: src/post_modules/GTK2/source/gtkplug.pre:1.1
Rev: src/post_modules/GTK2/source/gtkprogress.pre:1.1
Rev: src/post_modules/GTK2/source/gtkprogressbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkradioaction.pre:1.1
Rev: src/post_modules/GTK2/source/gtkradiobutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkradiomenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtkradiotoolbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkrange.pre:1.1
Rev: src/post_modules/GTK2/source/gtkrcstyle.pre:1.1
Rev: src/post_modules/GTK2/source/gtkscale.pre:1.1
Rev: src/post_modules/GTK2/source/gtkscrollbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkscrolledwindow.pre:1.1
Rev: src/post_modules/GTK2/source/gtkselectiondata.pre:1.1
Rev: src/post_modules/GTK2/source/gtkseparator.pre:1.1
Rev: src/post_modules/GTK2/source/gtkseparatormenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtkseparatortoolitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtksettings.pre:1.1
Rev: src/post_modules/GTK2/source/gtksizegroup.pre:1.1
Rev: src/post_modules/GTK2/source/gtksocket.pre:1.1
Rev: src/post_modules/GTK2/source/gtkspinbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtkstatusbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkstyle.pre:1.1
Rev: src/post_modules/GTK2/source/gtktable.pre:1.1
Rev: src/post_modules/GTK2/source/gtktearoffmenuitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextattributes.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextbuffer.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextchildanchor.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextiter.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextmark.pre:1.1
Rev: src/post_modules/GTK2/source/gtktexttag.pre:1.1
Rev: src/post_modules/GTK2/source/gtktexttagtable.pre:1.1
Rev: src/post_modules/GTK2/source/gtktextview.pre:1.1
Rev: src/post_modules/GTK2/source/gtktoggleaction.pre:1.1
Rev: src/post_modules/GTK2/source/gtktogglebutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtktoggletoolbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtktoolbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtktoolbutton.pre:1.1
Rev: src/post_modules/GTK2/source/gtktoolitem.pre:1.1
Rev: src/post_modules/GTK2/source/gtktooltips.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreedragdest.inc:1.1
Rev: src/post_modules/GTK2/source/gtktreedragsource.inc:1.1
Rev: src/post_modules/GTK2/source/gtktreeiter.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreemodel.inc:1.1
Rev: src/post_modules/GTK2/source/gtktreemodel.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreepath.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreerowreference.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreeselection.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreesortable.inc:1.1
Rev: src/post_modules/GTK2/source/gtktreestore.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreeview.pre:1.1
Rev: src/post_modules/GTK2/source/gtktreeviewcolumn.pre:1.1
Rev: src/post_modules/GTK2/source/gtkuimanager.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvbuttonbox.pre:1.1
Rev: src/post_modules/GTK2/source/gtkviewport.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvpaned.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvscale.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvscrollbar.pre:1.1
Rev: src/post_modules/GTK2/source/gtkvseparator.pre:1.1
Rev: src/post_modules/GTK2/source/gtkwidget.pre:1.1
Rev: src/post_modules/GTK2/source/gtkwindow.pre:1.1
Rev: src/post_modules/GTK2/source/gtkwindowgroup.pre:1.1
Rev: src/post_modules/GTK2/source/pangoattrlist.pre:1.1
Rev: src/post_modules/GTK2/source/pangocontext.pre:1.1
Rev: src/post_modules/GTK2/source/pangofontdescription.pre:1.1
Rev: src/post_modules/GTK2/source/pangolayout.pre:1.1
Rev: src/post_modules/GTK2/source/pangolayoutiter.pre:1.1
Rev: src/post_modules/GTK2/source/pangolayoutline.pre:1.1
Rev: src/post_modules/GTK2/source/pangotabarray.pre:1.1
Rev: src/post_modules/GTK2/source/support.c:1.1

1: + class GDK2.Pixmap; + inherit GDK2.Drawable;    -  + //! This class creates a GDK2.Pixmap from either an GDK2.Image or + //! Image.image object (or a numeric ID, see your X-manual for XIDs). + //! <p> The GDK2.Pixmap object can be used in a lot + //! of different GTK widgets. The most notable is the W(Pixmap) + //! widget.</p> + //! + //! NOIMG + %{ + #ifdef __NT__ + #include <gdk/win32/gdkwin32.h> + #else + #include <gdk/gdkx.h> + #endif +  + GdkImage *pgtk_pixmap_setup(struct object *o, int *free) + { +  if (get_gdkobject(o,image)) +  return get_gdkobject(o,image); +  else { +  *free=1; +  return gdkimage_from_pikeimage(o,GDK_IMAGE_FASTEST,0); +  } + } +  + void pgtk__pixmap_draw(GdkImage *i) + { +  GdkGC *gc; +  if (THIS->extra_data) +  gc=THIS->extra_data; +  else +  THIS->extra_data=gc=gdk_gc_new(GDK_WINDOW(THIS->obj)); +  gdk_draw_image(GDK_WINDOW(THIS->obj),gc,i,0,0,0,0, +  i->width,i->height); + } + %} +  + void create(int|object image) + //! Create a new GDK2.Pixmap object. + //! Argument is a GDK2.Image object or a Image.Image object + { +  GdkImage *i; +  int f=0; +  struct object *o; +  pgtk_verify_setup(); +  pgtk_verify_not_inited(); +  +  if (Pike_sp[-args].type==PIKE_T_OBJECT) { +  get_all_args("create",args,"%o",&o); +  i=pgtk_pixmap_setup(o,&f); +  +  THIS->obj=G_OBJECT(gdk_pixmap_new(0,i->width,i->height,i->depth)); +  if (!THIS->obj) { +  if (f) +  g_object_unref(i); +  Pike_error("Failed to create pixmap.\n"); +  } +  pgtk__pixmap_draw(i); +  if (f) +  g_object_unref(i); +  } else if (args && Pike_sp[-1].type==PIKE_T_INT) { +  THIS->obj=G_OBJECT(gdk_pixmap_foreign_new(Pike_sp[-1].u.integer)); +  if (!THIS->obj) +  Pike_error("Failed to find remote pixmap\n"); +  } + } +  + void set(GDK2.Image|Image.Image image) + //! Argument is a GDK2.Image object or an Image.image object. + //! It is much faster to use an gdkImage object, especially one + //! allocated in shared memory. This is only an issue if you are + //! going to change the contents of the pixmap often, toggling between + //! a small number of images. + { +  struct object *o; +  int f=0; +  GdkImage *i; +  get_all_args("set", args, "%o", &o ); +  pgtk__pixmap_draw(i=pgtk_pixmap_setup(o,&f)); +  if (f) +  g_object_unref(i); +  +  RETURN_THIS(); + } +  + void destroy() + //! Destructor. Destroys the pixmap. + { +  if (THIS->obj) +  g_object_unref(THIS->obj); +  THIS->obj=0; +  +  if (THIS->extra_data) +  g_object_unref(THIS->extra_data); +  THIS->extra_data=0; + } +  + void ref() + //! Ref this object. + { +  g_object_ref(THIS->obj); +  RETURN_THIS(); + } +  + void unref() + //! Unref this object. + { +  g_object_unref(THIS->obj); +  RETURN_THIS(); + } +    Newline at end of file added.