switch (orientacion) {
case 0:
image.set(PACKAGE_DATA_DIR"/plaqui-client/pixmaps/tanque_e.png");
+ in_x = 5;
+ in_y = 16;
+ out_x = 64-16;
+ out_y = 64;
+ offset_x = 0;
+ offset_y = 0;
+ item_offset_x = 0;
+ item_offset_y = 0;
break;
case 1:
image.set(PACKAGE_DATA_DIR"/plaqui-client/pixmaps/tanque_o.png");
+ in_x = 64-5;
+ in_y = 16;
+ out_x = 16;
+ out_y = 64;
+ offset_x = 0;
+ offset_y = 0;
+ item_offset_x = 0;
+ item_offset_y = 0;
}
image.show();
+ m_or = orientacion;
set_size_request();
}
return s;
}
+bool ViewTank::on_image_expose_event(GdkEventExpose *e)
+{
+ Glib::RefPtr<Gdk::Colormap> colormap = Gtk::Widget::get_default_colormap();
+ Gdk::Color negro = Gdk::Color("black");
+ Gdk::Color blanco = Gdk::Color("white");
+ colormap->alloc_color(negro);
+ colormap->alloc_color(blanco);
+ colormap->alloc_color(color);
+ gc->set_line_attributes(1, Gdk::LINE_SOLID, Gdk::CAP_NOT_LAST, Gdk::JOIN_MITER);
+ int w,h,x,y,h_offset,y_offset;
+ w = image.get_width();
+ h = image.get_height();
+
+ if (actual_flow == 0) return true;
+
+ switch (m_or) {
+ case 0:
+ x = 5;
+ break;
+ case 1:
+ x = w-w/2-5;
+ }
+ y = 15;
+ w = w/2;
+ h = h/2;
+ y_offset = static_cast<int>(h*(1.0f-extra/actual_flow));
+ h_offset = static_cast<int>(h*(1.0f-extra/actual_flow));
+ gc->set_foreground(negro);
+ gc->set_background(negro);
+ image.get_window()->draw_rectangle(gc, 1, x, y, w, h);
+ gc->set_foreground(color);
+ gc->set_background(color);
+ image.get_window()->draw_rectangle(gc, 1, x, y+y_offset, w, h-h_offset);
+
+ /* Un borde para que se vea bien */
+ gc->set_foreground(blanco);
+ gc->set_background(blanco);
+ image.get_window()->draw_rectangle(gc, 0, x-1, y-1, w+1, h+1);
+ return true;
+}