*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include <string.h>
-#include <malloc.h>
+#include <stdlib.h>
#include <math.h>
#include <assert.h>
#include <stdlib.h>
static double find_double_values(struct graph_label *l, double_comparator cmp)
{
struct flist_head *entry;
- double answer, tmp;
+ double answer = 0.0, tmp;
int first = 1;
if (flist_empty(&l->value_list))
continue;
/* Draw tick mark */
- cairo_set_line_width(cr, 0.8);
+ cairo_set_line_width(cr, 1.0);
cairo_move_to(cr, tx, y2);
cairo_line_to(cr, tx, y2 + (y2 - y1) * 0.03);
cairo_stroke(cr);
/* draw grid lines */
cairo_save(cr);
- cairo_set_dash(cr, dash, 2, 2.0);
- cairo_set_line_width(cr, 0.5);
+ cairo_set_dash(cr, dash, 2, 0.66);
+ cairo_set_line_width(cr, 0.33);
cairo_move_to(cr, tx, y1);
cairo_line_to(cr, tx, y2);
cairo_stroke(cr);
struct tickmark *tm;
double ty;
int i, power_of_ten;
- static double dash[] = { 2.0, 2.0 };
+ static double dash[] = { 1.0, 2.0 };
nticks = calc_tickmarks(miny, maxy, nticks, &tm, &power_of_ten,
g->y_axis_unit_change_callback == NULL, g->base_offset);
/* draw grid lines */
cairo_save(cr);
- cairo_set_dash(cr, dash, 2, 2.0);
- cairo_set_line_width(cr, 0.5);
+ cairo_set_dash(cr, dash, 2, 0.66);
+ cairo_set_line_width(cr, 0.33);
cairo_move_to(cr, x1, ty);
cairo_line_to(cr, x2, ty);
cairo_stroke(cr);
goto skip_data;
cairo_set_line_width(cr, 1.5);
+ cairo_set_line_join(cr, CAIRO_LINE_JOIN_ROUND);
+
flist_for_each(lentry, &g->label_list) {
i = flist_entry(lentry, struct graph_label, list);
first = 1;
if (first) {
cairo_move_to(cr, tx, ty);
first = 0;
- } else {
+ } else
cairo_line_to(cr, tx, ty);
- }
}
cairo_stroke(cr);
}
*/
while (!(v->flags & GV_F_ON_PRIO)) {
assert(!flist_empty(&v->alias));
- v = flist_entry(v->alias.next, struct graph_value, alias);
+ v = flist_first_entry(&v->alias, struct graph_value, alias);
}
prio_tree_remove(&l->prio_tree, &v->node);
while (!flist_empty(&v->alias)) {
struct graph_value *a;
- a = flist_entry(v->alias.next, struct graph_value, alias);
+ a = flist_first_entry(&v->alias, struct graph_value, alias);
flist_del_init(&a->alias);
__graph_value_drop(l, a);
to_drop = 2;
while (to_drop-- && !flist_empty(&i->value_list)) {
- x = flist_entry(i->value_list.next, struct graph_value, list);
+ x = flist_first_entry(&i->value_list, struct graph_value, list);
graph_value_drop(i, x);
/*
struct graph_value *i;
while (!flist_empty(&l->value_list)) {
- i = flist_entry(l->value_list.next, struct graph_value, list);
+ i = flist_first_entry(&l->value_list, struct graph_value, list);
graph_value_drop(l, i);
}
}
struct graph_label *i;
while (!flist_empty(&g->label_list)) {
- i = flist_entry(g->label_list.next, struct graph_label, list);
+ i = flist_first_entry(&g->label_list, struct graph_label, list);
flist_del(&i->list);
graph_free_values(i);
free(i);
}
}
+void graph_clear_values(struct graph *g)
+{
+ struct flist_head *node;
+ struct graph_label *i;
+
+ flist_for_each(node, &g->label_list) {
+ i = flist_entry(node, struct graph_label, list);
+ graph_free_values(i);
+ }
+}
+
void graph_set_color(struct graph *gr, graph_label_t label, double red,
double green, double blue)
{
ydiff = fabs(yval - y);
/*
- * zero delta, or within or match critera, break
+ * zero delta, or within or match criteria, break
*/
if (ydiff < best_delta) {
best_delta = ydiff;
}
}
if (!flist_empty(&v->alias))
- v = flist_entry(v->alias.next, struct graph_value, alias);
+ v = flist_first_entry(&v->alias, struct graph_value, alias);
} while (v != rootv);
} while ((n = prio_tree_next(&iter)) != NULL);