PBD::Searchpath StatefulImage::_image_search_path;
StatefulImage::ImageCache StatefulImage::_image_cache;
-StatefulImage::StatefulImage (Group* group, const XMLNode& node)
- : Item (group)
+StatefulImage::StatefulImage (Canvas* c, const XMLNode& node)
+ : Item (c)
, _state (0)
, _font (0)
, _text_x (0)
Rect self = item_to_window (Rect (0, 0, image->get_width(), image->get_height()));
boost::optional<Rect> draw = self.intersection (area);
-
+
if (!draw) {
return;
}
StatefulImage::load_states (const XMLNode& node)
{
const XMLNodeList& nodes (node.children());
-
+
_states.clear ();
-
+
for (XMLNodeList::const_iterator i = nodes.begin(); i != nodes.end(); ++i) {
State s;
States::size_type id;
const XMLProperty* prop;
-
+
if ((prop = (*i)->property ("id")) == 0) {
error << _("no ID for state") << endmsg;
continue;
}
- sscanf (prop->value().c_str(), "%zd", &id);
+ sscanf (prop->value().c_str(), "%" G_GSIZE_FORMAT, &id);
if ((prop = (*i)->property ("image")) == 0) {
error << _("no image for state") << endmsg;
continue;
}
-
+
if ((s.image = find_image (prop->value())) == 0) {
error << string_compose (_("image %1 not found for state"), prop->value()) << endmsg;
continue;
}
-
+
if (_states.size() < id) {
_states.reserve (id);
}
std::string path;
- if (!find_file_in_search_path (_image_search_path, name, path)) {
+ if (!find_file (_image_search_path, name, path)) {
error << string_compose (_("Image named %1 not found"),
name) << endmsg;
return ImageHandle();
}
-
+
return Cairo::ImageSurface::create_from_png (path);
}