Librerías útiles
Posted by and2arana on 2008-10-15 23:48
Estuve investigando cosas varias, y encontré esto:
1) http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/chapter-drawingarea.html
Básicamente, podemos usar GTKmm para dibujar en un canvas ("DrawingArea"). De hecho, podríamos heredar de esta clase y overridear el evento on_exposed_event para redibujar en pantalla los contenidos del modelo. Después de eso, lo único que queda es agregar un timeout signal al sistema de GTKmm para que invalide el rectángulo del DrawingArea 25 veces por segundo... y estamos (en realidad, se puede hacer algo mejor que eso, pero después lo charlamos, en un mail es medio choto para explicar). Además, tengo una leve idea de como resolver el tema del double buffering, así que si quieren usamos GTKmm para cliente y editor de mapas.
2) http://libsigc.sourceforge.net/
Investigando el tema de singal handlers de GTKmm llegué a esto. Me parece que estaría piola para usar como adicional por afuera de GTKmm, por ejemplo, para manejar la comunicación entre threads (de hecho, estoy pensando en reescribir una parte de mi tp 4 usando esto, total viene incluido en GTKmm). Peguenle una revisada y el viernes charlamos.
1) http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/chapter-drawingarea.html
Básicamente, podemos usar GTKmm para dibujar en un canvas ("DrawingArea"). De hecho, podríamos heredar de esta clase y overridear el evento on_exposed_event para redibujar en pantalla los contenidos del modelo. Después de eso, lo único que queda es agregar un timeout signal al sistema de GTKmm para que invalide el rectángulo del DrawingArea 25 veces por segundo... y estamos (en realidad, se puede hacer algo mejor que eso, pero después lo charlamos, en un mail es medio choto para explicar). Además, tengo una leve idea de como resolver el tema del double buffering, así que si quieren usamos GTKmm para cliente y editor de mapas.
2) http://libsigc.sourceforge.net/
Investigando el tema de singal handlers de GTKmm llegué a esto. Me parece que estaría piola para usar como adicional por afuera de GTKmm, por ejemplo, para manejar la comunicación entre threads (de hecho, estoy pensando en reescribir una parte de mi tp 4 usando esto, total viene incluido en GTKmm). Peguenle una revisada y el viernes charlamos.
Home / Developer API / Tour / Get a Project - Solutions for Bug & Issue Tracking, Collaboration Tools, Subversion Hosting, Git Hosting
Taller i is powered by Assembla.
1 Comments
By graineri on 2008-10-16 03:29
2) Claro. Fíjense que acabo de subir un ejemplo de Gtkmm que las usa para bindear el evento onClick y el OnEnterPressed (no se llaman así realmente). También lo utilicé para crear un Timer, pero eso no está en el ejemplo porque no era necesario.
Binding de Eventos:
// Cuando se aprieta Enter.
this->msgEntry.signal_activate().connect(sigc::mem_fun(*this, ClientView::onEnterPressed));
// Cuando se hace click en el botón.
this->sendButton.signal_clicked().connect(sigc::mem_fun(*this, &ClientView::onSendButtonClicked));