I need to place zoom in this codigo, I help me. PLEASE
#!/usr/bin/env python
import gtk
width = gtk.gdk.screen_width()
height = gtk.gdk.screen_height()
fator_zoom = 500
fator_distancia = 1
class map:
def draw(self,widget):
gc = widget.window.new_gc()
gc.line_style = gtk.gdk.LINE_ON_OFF_DASH
gc.set_dashes(0, [6,6])
x = range(0,width,fator_distancia)#posicionamento,tamanho,largura
y = [fator_zoom*height for height in x]
widget.window.draw_lines( gc, zip(x,y))
widget.window.draw_lines( gc, zip(y,x))
def expose_event(self,widget, event):
self.style = self.area.get_style()
self.gc = self.style.fg_gc[gtk.STATE_NORMAL]
self.draw(widget)
def vert_horiz_lines(self,widget, event):
self.style = self.area.get_style()
self.gc = self.style.fg_gc[gtk.STATE_NORMAL]
#gc = widget.window.new_gc()
self.gc.line_style = gtk.gdk.LINE_ON_OFF_DASH
self.gc.set_dashes(0, [6,6])
x = range(0,width,fator_distancia)#posicionamento,tamanho,largura
y = [fator_zoom*height for height in x]
widget.window.draw_lines( self.gc, zip(x,y))
widget.window.draw_lines( self.gc, zip(y,x))
def on_edit_clicked(self,event):
print "eidt"
def zoomin(self,event):
label= gtk.Label("Viewpoind:")
label.show()
def popup(self,obj,event):
if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
self.build_context_menu()
def build_context_menu(self):
entries = [(("Show-Grid"), self.on_edit_clicked,1),
(("Hide-Grid"), self.on_edit_clicked,1),
(gtk.STOCK_ZOOM_IN, self.zoomin,1),
(gtk.STOCK_ZOOM_OUT, self.on_edit_clicked,1),
(gtk.STOCK_SELECT_COLOR, self.change_color,1)]
menu = gtk.Menu()
for stock_id,callback,sensitivity in entries:
item = gtk.ImageMenuItem(stock_id)
if callback:
item.connect("activate",callback)
item.set_sensitive(sensitivity)
item.show()
menu.append(item)
menu.popup(None,None,None,0,0)
def show_grid(self,widget, event):
print "show_grid"
def hide_grid(self,widget, event):
self.area.hide()
def waypoint(self,widget, event):
if event.type == gtk.gdk.BUTTON_PRESS:
print "teste"
return gtk.TRUE
def set_background_color(self, widget):
colormap = self.area.get_colormap()
color = self.colorseldlg.colorsel.get_current_color()
self.area.modify_bg(gtk.STATE_NORMAL, color)
def change_color(self, widget):
handled = gtk.FALSE
handled = gtk.TRUE
if self.colorseldlg == None:
self.colorseldlg = gtk.ColorSelectionDialog("Select background
color")
colorsel = self.colorseldlg.colorsel
colorsel.set_previous_color(self.color)
colorsel.set_current_color(self.color)
colorsel.set_has_palette(gtk.TRUE)
colorsel.connect("color_changed", self.set_background_color)
resp = self.colorseldlg.run()
if resp -- gtk.RESPONSE_OK:
self.color = colorsel.get_current_color()
else:
self.area.modify_bg(gtk.STATE_NORMAL, self.color)
self.colorseldlg.hide()
return handled
def __init__(self):
self.colorseldlg = None
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.maximize()
self.window.connect("destroy", gtk.mainquit)
self.tam=self.window.get_size()
self.window.set_title("MAPA")
self.window.set_resizable(gtk.TRUE)
self.area = gtk.DrawingArea()
self.pangolayout = self.area.create_pango_layout("")
self.color = self.area.get_colormap().alloc_color(0, 65535,0)
self.area.set_size_request(600, 400)
self.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)
# self.area.connect("event", self.change_color)
self.area.connect("expose_event", self.expose_event)
# self.area.connect("button_press_event", self.waypoint)
# self.area.connect("button_press_event", self.show_grid)
# self.area.connect("button_press_event", self.hide_grid)
self.area.connect("button_press_event", self.popup)
self.window.add(self.area)
self.cor = gtk.gdk.color_parse("#FFFFFF")
self.area.modify_bg(gtk.STATE_NORMAL, self.cor)
self.area.show()
self.window.show()
def main():
gtk.main()
return 0
if __name__ == "__main__":
map()
main()
-------------------------------
Departamento de Ci�ncia da Computa��o - DCC-FESURV (www.dcc.fesurv.br)
_______________________________________________
pygtk mailing list [EMAIL PROTECTED]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/