#include "item_codo.h"
-Codo::Codo(Glib::ustring _name, int orientacion):Item(_name)
+ViewCodo::ViewCodo(Glib::ustring _name, int orientacion):ViewItem(_name)
{
switch (orientacion) {
case 0:
- image = Gdk::Pixbuf::create_from_file("codo_o.png");
+ image.set(PACKAGE_DATA_DIR"/plaqui-client/pixmaps/codo_o.png");
break;
case 1:
- image = Gdk::Pixbuf::create_from_file("codo_n.png");
+ image.set(PACKAGE_DATA_DIR"/plaqui-client/pixmaps/codo_n.png");
break;
case 2:
- image = Gdk::Pixbuf::create_from_file("codo_e.png");
+ image.set(PACKAGE_DATA_DIR"/plaqui-client/pixmaps/codo_e.png");
break;
case 3:
- image = Gdk::Pixbuf::create_from_file("codo_s.png");
+ image.set(PACKAGE_DATA_DIR"/plaqui-client/pixmaps/codo_s.png");
}
- set_size_request(image->get_width(), image->get_height());
+ m_or = orientacion;
+ image.show();
+ set_size_request();
}
-Codo::~Codo()
+ViewCodo::~ViewCodo()
{
}
+bool ViewCodo::on_image_expose_event(GdkEventExpose *e)
+{
+ Glib::RefPtr<Gdk::Colormap> colormap = Gtk::Widget::get_default_colormap();
+ colormap->alloc_color(color);
+ gc->set_foreground(color);
+ gc->set_background(color);
+ gc->set_line_attributes(6, Gdk::LINE_SOLID, Gdk::CAP_NOT_LAST, Gdk::JOIN_MITER);
+ int w,h;
+ w = image.get_width();
+ h = image.get_height();
+ // TODO : hacer que dibuje arcos en el sentido del codo!
+ if (actual_flow == 0) return true;
+ switch (m_or) {
+ case 0:
+ image.get_window()->draw_arc(gc, 0, -16, 16, w, h, 0, 90*64);
+ image.get_window()->draw_line(gc, 0, 16, 16, 16);
+ image.get_window()->draw_line(gc, 64-16, 64-16, 64-16, 64);
+ break;
+ case 1:
+ image.get_window()->draw_arc(gc, 0, -16, -16, w, h, 0*64, -90*64);
+ image.get_window()->draw_line(gc, 64-16, 0, 64-16, 16);
+ image.get_window()->draw_line(gc, 0, 64-16, 16, 64-16);
+ break;
+ case 2:
+ image.get_window()->draw_arc(gc, 0, 16, -16, w, h, -90*64, -90*64);
+ image.get_window()->draw_line(gc, 16, 0, 16, 16);
+ image.get_window()->draw_line(gc, 64-16, 64-16, 64, 64-16);
+ break;
+ case 3:
+ image.get_window()->draw_arc(gc, 0, 16, 16, w, h, 90*64, 90*64);
+ image.get_window()->draw_line(gc, 16, 64-16, 16, 64);
+ image.get_window()->draw_line(gc, 64-16, 16, 64, 16);
+ }
+ return true;
+}
+