Re: [pygtk] Problem with ExposeEvent changes

2002-06-08 Thread Matt Wilson


I broke it.  Will fix early next week.

Matt

On Thu, Jun 06, 2002 at 02:10:03PM -0500, Art Haas wrote:
 Hi.
 
 The latest pygtk2 has lost the 'area' field in expose events. Here's
 the warning that now pops up when I run a drawing example program
 I have ...
 
   File win8.py, line 472, in expose_event
   area = event.area
   AttributeError: 'gtk.gdk.EventExpose' object has no attribute
   'area'
 
 The code is the handler for an expose_event in a drawing area ...
 
 def expose_event(widget, event):
 global pixmap
 area = event.area
 gc = widget.get_style().fg_gc[gtk.STATE_NORMAL]
 win = widget.window
 win.draw_drawable(gc, pixmap, area[0], area[1],
   area[0], area[1], area[2], area[3])
 return gtk.FALSE
 
 A CVS update today has pulled in the following changes which seem
 like the likely cause ...
 
 2002-06-03  Matt Wilson  [EMAIL PROTECTED]
 
   * gtk/gdk-types.defs (EventExpose): added to make the code
   generator write GdkEventExpose * for
   _wrap_gtk_container_propagate_expose (gets rid of a warning)
 
 I tried adding the appropriate fields bits to the scheme code
 in the hope that their addition would fix the problem, but the
 resulting python module segfaulted immediately, so my efforts
 were a failure. :-(
 
 Below is a hacked-up version of the scribble.py script
 found in the examples/simple directory that I made run under
 pygtk2. It demonstrates the warning. Feel free to swap out
 the existing scribble.py script which is more for the older
 pygtk release with mine if you want.
 
 =
 #!/usr/bin/env python
 
 #this is a simple translation of the scribble example that comes with GTK+
 
 import gtk
 
 pixmap = None
 
 def configure_event(widget, event):
   global pixmap
   win = widget.window
   width = win.get_geometry()[2]
   height = win.get_geometry()[3]
   pixmap = gtk.gdk.Pixmap(win, width, height, -1)
   pixmap.draw_rectangle(widget.get_style().white_gc, gtk.TRUE,
 0, 0, width, height)
   return gtk.TRUE
 
 def expose_event(widget, event):
   area = event.area
   gc = widget.get_style().fg_gc[gtk.STATE_NORMAL]
   win = widget.window
   win.draw_drawable(gc, pixmap, area[0], area[1], area[0],
 area[1], area[2], area[3])
   return gtk.FALSE
 
 def draw_brush(widget, x, y):
   rect = (x-5, y-5, 10, 10)
   pixmap.draw_rectangle(widget.get_style().black_gc, gtk.TRUE,
 x-5, y-5, 10, 10)
   widget.queue_draw()
 
 def button_press_event(widget, event):
   if event.button == 1 and pixmap != None:
   draw_brush(widget, event.x, event.y)
   return gtk.TRUE
 
 def motion_notify_event(widget, event):
   if event.is_hint:
   x, y, state = event.window.get_pointer()
   else:
   x = event.x; y = event.y
   state = event.state
   if state  gtk.gdk.BUTTON1_MASK and pixmap != None:
   draw_brush(widget, x, y)
   return gtk.TRUE
 
 def main():
   win = gtk.Window()
   win.set_title('Test Input')
   win.connect('destroy', lambda win: gtk.main_quit())
   win.set_border_width(5)
 
   vbox = gtk.VBox(spacing=3)
   win.add(vbox)
   vbox.show()
 
   drawing_area = gtk.DrawingArea()
   drawing_area.set_size_request(200, 200)
   vbox.pack_start(drawing_area)
   drawing_area.show()
 
   drawing_area.connect(expose_event, expose_event)
   drawing_area.connect(configure_event, configure_event)
   drawing_area.connect(motion_notify_event, motion_notify_event)
   drawing_area.connect(button_press_event, button_press_event)
   drawing_area.set_events(gtk.gdk.EXPOSURE_MASK |
   gtk.gdk.LEAVE_NOTIFY_MASK |
   gtk.gdk.BUTTON_PRESS_MASK |
   gtk.gdk.POINTER_MOTION_MASK |
   gtk.gdk.POINTER_MOTION_HINT_MASK)
 
   button = gtk.Button(Quit)
   vbox.pack_start(button, expand=gtk.FALSE, fill=gtk.FALSE)
   button.connect(clicked, lambda widget, win=win: win.destroy())
   button.show()
   win.show()
   gtk.main()
 
 if __name__ == '__main__':
   main()
 =
 
 Thanks for all the work on PyGTK.
 
 -- 
 They that can give up essential liberty to obtain a little temporary
 safety deserve neither liberty nor safety.
  -- Benjamin Franklin, Historical Review of Pennsylvania, 1759
 ___
 pygtk mailing list   [EMAIL PROTECTED]
 http://www.daa.com.au/mailman/listinfo/pygtk
 Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
___
pygtk mailing list   [EMAIL PROTECTED]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/



[pygtk] text and fonts

2002-06-08 Thread Collins

I'm using a gtk rc file to set colors and fonts for various
compotents.  Most everything is working ok, but I can't seem to get
fonts to take effect.  The only one that seems to be recognized is
bitstream-charter.  All of the other common fonts honor the font size
(somewhat), but the display is a broken font of some sort that gets
more unreadable as font size increases (bold is ignored).

Any ideas what might be going on here?

I've tried removing some of the font libraries from the X config, but
that seems to have no effect.

-- 
Collins Richey - Denver Area - WWTLRD?
gentoo(since 01/01/01) 2.4.18+(ext3) xfce-sylpheed-mozilla
___
pygtk mailing list   [EMAIL PROTECTED]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/