struct lab_layer_popup;
struct menuitem;
struct ssd_button;
+struct scaled_scene_buffer;
enum node_descriptor_type {
LAB_NODE_DESC_NODE = 0,
LAB_NODE_DESC_IME_POPUP,
LAB_NODE_DESC_MENUITEM,
LAB_NODE_DESC_TREE,
+ LAB_NODE_DESC_SCALED_SCENE_BUFFER,
LAB_NODE_DESC_SSD_BUTTON,
};
struct ssd_button *node_ssd_button_from_node(
struct wlr_scene_node *wlr_scene_node);
+/**
+ * node_scaled_scene_buffer_from_node - return scaled_scene_buffer from node
+ * @wlr_scene_node: wlr_scene_node from which to return data
+ */
+struct scaled_scene_buffer *node_scaled_scene_buffer_from_node(
+ struct wlr_scene_node *wlr_scene_node);
+
#endif /* LABWC_NODE_DESCRIPTOR_H */
#include "buffer.h"
#include "common/mem.h"
#include "common/scaled-scene-buffer.h"
+#include "node.h"
/**
* TODO
free(self);
return NULL;
}
+ node_descriptor_create(&self->scene_buffer->node,
+ LAB_NODE_DESC_SCALED_SCENE_BUFFER, self);
self->impl = impl;
/*
return ret;
case LAB_NODE_DESC_NODE:
case LAB_NODE_DESC_TREE:
+ case LAB_NODE_DESC_SCALED_SCENE_BUFFER:
break;
}
}
assert(node_descriptor->type == LAB_NODE_DESC_SSD_BUTTON);
return (struct ssd_button *)node_descriptor->data;
}
+
+struct scaled_scene_buffer *
+node_scaled_scene_buffer_from_node(struct wlr_scene_node *wlr_scene_node)
+{
+ assert(wlr_scene_node->data);
+ struct node_descriptor *node_descriptor = wlr_scene_node->data;
+ assert(node_descriptor->type == LAB_NODE_DESC_SCALED_SCENE_BUFFER);
+ return (struct scaled_scene_buffer *)node_descriptor->data;
+}