* in a drawable. Doing this generically will permit user defined drawing
* behavior in a later time.
*
- * We keep each data type in a hash table, as this container suits the
- * best the information we receive (GQuark).
- * (A hash table for facilities, pointing to an array per facility, containing
- * event_number events.)
- * (hash tables for cpus, for process state, for execution mode and submode).
+ * We keep each data type in attributes, keys to specific information
+ * being formed from the GQuark corresponding to the information received.
+ * (facilities / facility_name / events / eventname.)
+ * (cpus/cpu_name, process_states/ps_name,
+ * execution_modes/em_name, execution_submodes/es_name).
* The goal is then to provide a generic way to print information on the
* screen for all this different information.
*
* - point (color, size)
* - background color (color)
*
- * Each item has an array of pointers to operation structures, which define
- * the information type selector. We seek the array each time we want to
- * draw an item. We execute each operation in order, casting to the right
- * operation type corresponding to the information type selector.
+ * Each item has an array of hooks (hook list). Each hook represents an
+ * operation to perform. We seek the array each time we want to
+ * draw an item. We execute each operation in order. An operation type
+ * is associated with each hook to permit user listing and modification
+ * of these operations. The operation type is also used to find the
+ * corresponding priority for the sorting. Operation type and priorities
+ * are enum and a static int table.
*
* The array has to be sorted by priority each time we add a task in it.
- * A priority is associated with each information type selector. It permits
+ * A priority is associated with each operation type. It permits
* to perform background color selection before line or text drawing. We also
* draw lines before text, so the text appears over the lines.
*
* has to be done in a same DrawContext. The goal there is to keep the offset
* of the text and icons over and under the middle line, so a specific
* event could be printed as ( R Si 0 for running, scheduled in, cpu 0 ),
- * text being easy to replace with icons.
+ * text being easy to replace with icons. The DrawContext is passed as
+ * call_data for the operation hooks.
*
* Author : Mathieu Desnoyers, October 2003
*/
+
+#include <glib.h>
+#include <lttv/hook.h>
+#include <lttv/attribute.h>
+#include <lttv/iattribute.h>
+