diff options
author | flavio <fdanesse@gmail.com> | 2012-05-24 22:52:54 (GMT) |
---|---|---|
committer | flavio <fdanesse@gmail.com> | 2012-05-24 22:52:54 (GMT) |
commit | 02511ae82da5ccc39ec22f12881402268166059a (patch) | |
tree | cb971b5d0e018aff2aa61ec4839ec9d855689558 | |
parent | 137b4990240efd9743aaad1171c765a1d2dd6f04 (diff) |
base
-rw-r--r-- | CaminoAlaPlata.py | 52 | ||||
-rw-r--r-- | Globals.py | 43 | ||||
-rw-r--r-- | Widgets.py | 169 |
3 files changed, 133 insertions, 131 deletions
diff --git a/CaminoAlaPlata.py b/CaminoAlaPlata.py index 7029663..b4c072e 100644 --- a/CaminoAlaPlata.py +++ b/CaminoAlaPlata.py @@ -19,25 +19,26 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -import gtk import time import sys -import gobject import os +from gi.repository import Gtk from Widgets import * import Globals as G -class CaminoAlaPlata(gtk.Window): +class CaminoAlaPlata(Gtk.Window): def __init__(self): - gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL) + Gtk.Window.__init__(self) self.set_title("Camino a la Plata") self.set_icon_from_file(os.path.join(G.ICONOS, "caminoalaplata-ico.png")) - self.modify_bg(gtk.STATE_NORMAL, G.NEGRO) + self.modify_bg(0, G.NEGRO) self.set_size_request(G.WIDTH,G.HEIGHT) self.set_border_width(2) - self.set_position(gtk.WIN_POS_CENTER) + #self.set_position(Gtk.WIN_POS_CENTER) self.set_resizable(True) + self.base_vbox = None + self.aplicacion_vbox = None self.toolbar = None self.tablaperiodica = None @@ -45,22 +46,49 @@ class CaminoAlaPlata(gtk.Window): self.show_all() self.connect("delete_event", self.delete_event) + self.toolbar.connect("clicked", self.clicked_toolbar) def set_layout(self): - vbox = gtk.VBox() + self.base_vbox = Gtk.VBox() self.toolbar = Toolbar1() + self.aplicacion_vbox = Gtk.VBox() + self.tablaperiodica = TablaPeriodica() - vbox.pack_start(self.toolbar, False, False, 0) - vbox.pack_start(self.tablaperiodica, True, True, 0) - self.add(vbox) + self.base_vbox.pack_start(self.toolbar, False, False, 0) + self.base_vbox.pack_start(self.aplicacion_vbox, True, True, 0) + + self.aplicacion_vbox.pack_start(self.tablaperiodica, True, True, 0) + + self.add(self.base_vbox) + + def clear_aplicacion_vbox(self): + for child in self.aplicacion_vbox.get_children(): + self.aplicacion_vbox.remove(child) + + def get_tabla(self): + self.clear_aplicacion_vbox() + self.aplicacion_vbox.pack_start(self.tablaperiodica, True, True, 0) + + def get_game(self): + self.clear_aplicacion_vbox() + + def clicked_toolbar(self, widget, valor): + if valor == "tabla": + self.get_tabla() + elif valor == "game": + self.get_game() + elif valor == "exit": + self.salir() + else: + print "Señal desconocida desde toolbar" def delete_event(self, widget, event, data=None): self.salir() - return False + return False def salir(self, widget= None, event= None): sys.exit(0) if __name__=="__main__": CaminoAlaPlata() - gtk.main() + Gtk.main() @@ -19,27 +19,27 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -import gtk import os - -GRIS = gtk.gdk.Color(60156, 60156, 60156, 1) -ROJO = gtk.gdk.Color(65000,0,0,1) -NARANJA = gtk.gdk.Color(65000,49705,0,1) -VERDEOSCURO = gtk.gdk.Color(43588, 50980, 14019, 1) -VERDECLARO = gtk.gdk.Color(0, 60000, 0, 1) -VERDELIMON = gtk.gdk.Color(50725, 65000, 21666, 1) -ROSADOCLARO = gtk.gdk.Color(65000,43333,43333,1) -ROSADOOSCURO = gtk.gdk.Color(65000,20000,43333,1) -CELESTE = gtk.gdk.Color(0, 44352, 65000,1) -CELESTECLARO = gtk.gdk.Color(50725, 65000, 62450,1) -AMARILLO = gtk.gdk.Color(65000,65000,0,1) -BORRADEVINO = gtk.gdk.Color(50980, 35941, 50980, 1) - -BLANCO = gtk.gdk.Color(65000, 65000, 65000,1) -NEGRO = gtk.gdk.Color(0, 0, 0, 1) -FONDO1 = gtk.gdk.Color(29823, 42568, 43333, 1) -FONDO2 = gtk.gdk.Color(24000, 65000, 28000, 1) -FONDO3 = gtk.gdk.Color(58000, 65000, 65000) +from gi.repository import Gtk, Gdk + +GRIS = Gdk.Color(60156, 60156, 60156) +ROJO = Gdk.Color(65000,0,0) +NARANJA = Gdk.Color(65000,49705,0) +VERDEOSCURO = Gdk.Color(43588, 50980, 14019) +VERDECLARO = Gdk.Color(0, 60000, 0) +VERDELIMON = Gdk.Color(50725, 65000, 21666) +ROSADOCLARO =Gdk.Color(65000,43333,43333) +ROSADOOSCURO = Gdk.Color(65000,20000,43333) +CELESTE = Gdk.Color(0, 44352, 65000) +CELESTECLARO = Gdk.Color(50725, 65000, 62450) +AMARILLO = Gdk.Color(65000,65000,0) +BORRADEVINO = Gdk.Color(50980, 35941, 50980) + +BLANCO = Gdk.Color(65000, 65000, 65000) +NEGRO = Gdk.Color(0, 0, 0) +FONDO1 =Gdk.Color(29823, 42568, 43333) +FONDO2 = Gdk.Color(24000, 65000, 28000) +FONDO3 = Gdk.Color(58000, 65000, 65000) WIDTH= 640 HEIGHT= 480 @@ -49,8 +49,7 @@ def get_gtk_color(r,g,b): r = int(r*65000/255) g = int(g*65000/255) b = int(b*65000/255) - h = 1 - return gtk.gdk.Color(r, g, b, h) + return Gdk.Color(r, g, b) DIRECTORIO_BASE = os.path.dirname(__file__) ICONOS = os.path.join(DIRECTORIO_BASE, "Iconos/") @@ -5,34 +5,19 @@ # Flavio Danesse <fdanesse@gmail.com> # CeibalJAM! - Uruguay -# 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -import gtk -import gobject import os +from gi.repository import Gtk, Gdk, GObject, GdkPixbuf import Globals as G -class Button(gtk.EventBox): - __gsignals__ = {"clicked":(gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT, ))} +class Button(Gtk.EventBox): + __gsignals__ = {"clicked":(GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE, (GObject.TYPE_PYOBJECT, ))} def __init__(self): - gtk.EventBox.__init__(self) + Gtk.EventBox.__init__(self) self.set_visible_window(True) self.set_border_width(1) - # http://developer.gnome.org/pygtk/stable/gdk-constants.html#gdk-event-mask-constants - self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK | gtk.gdk.POINTER_MOTION_MASK | - gtk.gdk.ENTER_NOTIFY_MASK | gtk.gdk.LEAVE_NOTIFY_MASK) + + #self.add_events(Gdk.BUTTON_PRESS_MASK | Gdk.BUTTON_RELEASE_MASK | Gdk.POINTER_MOTION_MASK | + # Gdk.ENTER_NOTIFY_MASK | Gdk.LEAVE_NOTIFY_MASK) self.connect("button_press_event", self.button_press) self.connect("button_release_event", self.button_release) self.connect("enter-notify-event", self.enter_notify_event) @@ -41,22 +26,22 @@ class Button(gtk.EventBox): self.normalcolor = G.AMARILLO self.selectlocor = G.BLANCO self.clickedcolor = G.NARANJA - self.modify_bg(gtk.STATE_NORMAL, self.normalcolor) + self.modify_bg(0, self.normalcolor) self.show_all() def button_release(self, widget, event): - self.modify_bg(gtk.STATE_NORMAL, self.selectlocor) + self.modify_bg(0, self.selectlocor) def leave_notify_event(self, widget, event): - self.modify_bg(gtk.STATE_NORMAL, self.normalcolor) + self.modify_bg(0, self.normalcolor) def enter_notify_event(self, widget, event): - self.modify_bg(gtk.STATE_NORMAL, self.selectlocor) + self.modify_bg(0, self.selectlocor) def button_press(self, widget, event): if event.button == 1: - self.modify_bg(gtk.STATE_NORMAL, self.clickedcolor) + self.modify_bg(0, self.clickedcolor) self.emit("clicked", event) def set_tooltip(self, texto): - tooltips = gtk.Tooltips() + tooltips = Gtk.Tooltips() tooltips.set_tip(self, texto, tip_private=None) def set_tamanio(self, w, h): @@ -68,7 +53,7 @@ class ButtonElemento(Button): def __init__(self, diccionario): Button.__init__(self) self.elementoquimico = diccionario - self.add(gtk.Label(self.elementoquimico["simbolo"])) + self.add(Gtk.Label(self.elementoquimico["simbolo"])) texto = "" for key in self.elementoquimico.keys(): texto += "%s = %s%s" % (key, self.elementoquimico[key], "\n") @@ -97,14 +82,14 @@ class ElementoenJuego(ButtonElemento): # print opcion # print "Respuesta:", self.respuesta''' -class TablaPeriodica(gtk.EventBox): +class TablaPeriodica(Gtk.EventBox): def __init__(self): - gtk.EventBox.__init__(self) + Gtk.EventBox.__init__(self) self.set_visible_window(True) - self.modify_bg(gtk.STATE_NORMAL, G.FONDO3) + self.modify_bg(0, G.FONDO3) self.tabla = None self.filasdeelementos = None - self.set_layout() + #self.set_layout() self.show_all() def set_layout(self): @@ -115,11 +100,11 @@ class TablaPeriodica(gtk.EventBox): button.normalcolor = G.BLANCO button.selectlocor = G.BLANCO button.clickedcolor = G.BLANCO - button.modify_bg(gtk.STATE_NORMAL, button.normalcolor) - button.add(gtk.Label(x)) + button.modify_bg(0, button.normalcolor) + button.add(Gtk.Label(x)) self.tabla.attach(button, x, x+1, 0, 1, - xoptions=gtk.EXPAND|gtk.FILL, - yoptions=gtk.EXPAND|gtk.FILL, + xoptions=Gtk.EXPAND|Gtk.FILL, + yoptions=Gtk.EXPAND|Gtk.FILL, xpadding=0, ypadding=0) for x in range(1,10): @@ -127,11 +112,11 @@ class TablaPeriodica(gtk.EventBox): button.normalcolor = G.BLANCO button.selectlocor = G.BLANCO button.clickedcolor = G.BLANCO - button.modify_bg(gtk.STATE_NORMAL, button.normalcolor) - button.add(gtk.Label(x)) + button.modify_bg(0, button.normalcolor) + button.add(Gtk.Label(x)) self.tabla.attach(button, 0, 1, x, x+1, - xoptions=gtk.EXPAND|gtk.FILL, - yoptions=gtk.EXPAND|gtk.FILL, + xoptions=Gtk.EXPAND|Gtk.FILL, + yoptions=Gtk.EXPAND|Gtk.FILL, xpadding=0, ypadding=0) self.add(self.tabla) @@ -158,8 +143,8 @@ class TablaPeriodica(gtk.EventBox): col = line.index(boton)+1 if boton != None: self.tabla.attach(boton, col, col+1, row, row+1, - xoptions=gtk.EXPAND|gtk.FILL, - yoptions=gtk.EXPAND|gtk.FILL, + xoptions=Gtk.EXPAND|Gtk.FILL, + yoptions=Gtk.EXPAND|Gtk.FILL, xpadding=0, ypadding=0) def set_colores(self, boton): @@ -167,121 +152,111 @@ class TablaPeriodica(gtk.EventBox): color, indices = elemen if boton.elementoquimico["Z"] in indices: boton.normalcolor = color - boton.modify_bg(gtk.STATE_NORMAL, boton.normalcolor) + boton.modify_bg(0, boton.normalcolor) -class Tabla(gtk.Table): +class Tabla(Gtk.Table): def __init__(self): - gtk.Table.__init__(self, rows = 10, columns = 19, homogeneous = True) + Gtk.Table.__init__(self, rows = 10, columns = 19, homogeneous = True) self.set_row_spacing(7, 5) self.show_all() -class Toolbar1(gtk.Toolbar): +class Toolbar1(Gtk.Toolbar): + __gsignals__ = {"clicked":(GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE, (GObject.TYPE_STRING, ))} def __init__(self): - gtk.Toolbar.__init__(self) - self.modify_bg(gtk.STATE_NORMAL, G.NEGRO) + Gtk.Toolbar.__init__(self) + self.modify_bg(0, G.NEGRO) - ''' - separator = gtk.SeparatorToolItem() - separator.props.draw = False - separator.set_size_request(5, -1) - separator.set_expand(False) - self.insert(separator, -1)''' - - boton = gtk.ToolButton() - imagen = gtk.Image() - pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(os.path.join(G.ICONOS, + boton = Gtk.ToolButton() + imagen = Gtk.Image() + pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(os.path.join(G.ICONOS, "atomo.png"), 32, 32) imagen.set_from_pixbuf(pixbuf) boton.set_icon_widget(imagen) imagen.show() self.insert(boton, -1) boton.show() - #tooltips = gtk.Tooltips() - #tooltips.set_tip(boton, _("Detener Grabación."), tip_private=None) - #boton.connect("clicked", self.ok_callback) - - ''' - separator = gtk.SeparatorToolItem() - separator.props.draw = False - separator.set_size_request(5, -1) - separator.set_expand(False) - self.insert(separator, -1)''' - - boton = gtk.ToolButton() - imagen = gtk.Image() - pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(os.path.join(G.ICONOS, + boton.connect("clicked", self.emit_senial_tabla) + + boton = Gtk.ToolButton() + imagen = Gtk.Image() + pixbuf =GdkPixbuf.Pixbuf.new_from_file_at_size(os.path.join(G.ICONOS, "caminoalaplata-ico.png"), 32, 32) imagen.set_from_pixbuf(pixbuf) boton.set_icon_widget(imagen) imagen.show() self.insert(boton, -1) boton.show() - #tooltips = gtk.Tooltips() - #tooltips.set_tip(boton, _("Detener Grabación."), tip_private=None) - #boton.connect("clicked", self.ok_callback) - - separator = gtk.SeparatorToolItem() + boton.connect("clicked", self.emit_senial_game) + + separator = Gtk.SeparatorToolItem() separator.props.draw = False separator.set_size_request(0, -1) separator.set_expand(True) self.insert(separator, -1) - imagen = gtk.Image() - pixbuf = gtk.gdk.pixbuf_new_from_file(os.path.join(G.ICONOS, + imagen = Gtk.Image() + pixbuf = GdkPixbuf.Pixbuf.new_from_file(os.path.join(G.ICONOS, 'ceibaljam.png')) imagen.set_from_pixbuf(pixbuf) imagen.show() - item = gtk.ToolItem() + item = Gtk.ToolItem() item.add(imagen) self.insert(item, -1) - separator = gtk.SeparatorToolItem() + separator = Gtk.SeparatorToolItem() separator.props.draw = False separator.set_size_request(5, -1) separator.set_expand(False) self.insert(separator, -1) - imagen = gtk.Image() - pixbuf = gtk.gdk.pixbuf_new_from_file(os.path.join(G.ICONOS, + imagen = Gtk.Image() + pixbuf = GdkPixbuf.Pixbuf.new_from_file(os.path.join(G.ICONOS, 'uruguay.png')) imagen.set_from_pixbuf(pixbuf) imagen.show() - item = gtk.ToolItem() + item = Gtk.ToolItem() item.add(imagen) self.insert(item, -1) - separator = gtk.SeparatorToolItem() + separator = Gtk.SeparatorToolItem() separator.props.draw = False separator.set_size_request(5, -1) separator.set_expand(False) self.insert(separator, -1) - imagen = gtk.Image() - pixbuf = gtk.gdk.pixbuf_new_from_file(os.path.join(G.ICONOS, + imagen = Gtk.Image() + pixbuf = GdkPixbuf.Pixbuf.new_from_file(os.path.join(G.ICONOS, 'licencia.png')) imagen.set_from_pixbuf(pixbuf) imagen.show() - item = gtk.ToolItem() + item = Gtk.ToolItem() item.add(imagen) self.insert(item, -1) - separator = gtk.SeparatorToolItem() + separator = Gtk.SeparatorToolItem() separator.props.draw = False separator.set_size_request(0, -1) separator.set_expand(True) self.insert(separator, -1) - boton = gtk.ToolButton() - imagen = gtk.Image() - pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(os.path.join(G.ICONOS, + boton = Gtk.ToolButton() + imagen = Gtk.Image() + pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(os.path.join(G.ICONOS, "salir.png"), 32, 32) imagen.set_from_pixbuf(pixbuf) boton.set_icon_widget(imagen) imagen.show() self.insert(boton, -1) boton.show() - #tooltips = gtk.Tooltips() - #tooltips.set_tip(boton, _("Detener Grabación."), tip_private=None) - #boton.connect("clicked", self.ok_callback) - + boton.connect("clicked", self.emit_senial_exit) + self.show_all() + + def emit_senial_tabla(self, widget): + self.emit("clicked", "tabla") + + def emit_senial_game(self, widget): + self.emit("clicked", "game") + + def emit_senial_exit(self, widget): + self.emit("clicked", "exit") |