Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflavio <fdanesse@gmail.com>2012-05-24 22:52:54 (GMT)
committer flavio <fdanesse@gmail.com>2012-05-24 22:52:54 (GMT)
commit02511ae82da5ccc39ec22f12881402268166059a (patch)
treecb971b5d0e018aff2aa61ec4839ec9d855689558
parent137b4990240efd9743aaad1171c765a1d2dd6f04 (diff)
base
-rw-r--r--CaminoAlaPlata.py52
-rw-r--r--Globals.py43
-rw-r--r--Widgets.py169
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()
diff --git a/Globals.py b/Globals.py
index 03b48d9..d2f7bfe 100644
--- a/Globals.py
+++ b/Globals.py
@@ -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/")
diff --git a/Widgets.py b/Widgets.py
index 4a0b04a..5fddd75 100644
--- a/Widgets.py
+++ b/Widgets.py
@@ -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")