Commit e4e46473 authored by Cedric Roux's avatar Cedric Roux

cleanup logging in the GUI

parent c3e59b16
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
static void repack(gui *g, widget *_this) static void repack(gui *g, widget *_this)
{ {
printf("REPACK container %p\n", _this); LOGD("REPACK container %p\n", _this);
struct container_widget *this = _this; struct container_widget *this = _this;
this->hints_are_valid = 0; this->hints_are_valid = 0;
return this->common.parent->repack(g, this->common.parent); return this->common.parent->repack(g, this->common.parent);
...@@ -16,7 +16,7 @@ printf("REPACK container %p\n", _this); ...@@ -16,7 +16,7 @@ printf("REPACK container %p\n", _this);
static void add_child(gui *g, widget *_this, widget *child, int position) static void add_child(gui *g, widget *_this, widget *child, int position)
{ {
printf("ADD_CHILD container\n"); LOGD("ADD_CHILD container\n");
struct container_widget *this = _this; struct container_widget *this = _this;
this->hints_are_valid = 0; this->hints_are_valid = 0;
widget_add_child_internal(g, this, child, position); widget_add_child_internal(g, this, child, position);
...@@ -78,7 +78,7 @@ static void compute_horizontal_hints(struct gui *g, ...@@ -78,7 +78,7 @@ static void compute_horizontal_hints(struct gui *g,
static void vertical_allocate(gui *_gui, widget *_this, static void vertical_allocate(gui *_gui, widget *_this,
int x, int y, int width, int height) int x, int y, int width, int height)
{ {
printf("ALLOCATE container vertical %p\n", _this); LOGD("ALLOCATE container vertical %p\n", _this);
int cy = 0; int cy = 0;
int cwidth, cheight; int cwidth, cheight;
struct gui *g = _gui; struct gui *g = _gui;
...@@ -126,7 +126,7 @@ hints_ok: ...@@ -126,7 +126,7 @@ hints_ok:
static void horizontal_allocate(gui *_gui, widget *_this, static void horizontal_allocate(gui *_gui, widget *_this,
int x, int y, int width, int height) int x, int y, int width, int height)
{ {
printf("ALLOCATE container horizontal %p\n", _this); LOGD("ALLOCATE container horizontal %p\n", _this);
int cx = 0; int cx = 0;
int cwidth, cheight; int cwidth, cheight;
struct gui *g = _gui; struct gui *g = _gui;
...@@ -173,7 +173,7 @@ hints_ok: ...@@ -173,7 +173,7 @@ hints_ok:
static void vertical_hints(gui *_gui, widget *_w, int *width, int *height) static void vertical_hints(gui *_gui, widget *_w, int *width, int *height)
{ {
printf("HINTS container vertical %p\n", _w); LOGD("HINTS container vertical %p\n", _w);
struct gui *g = _gui; struct gui *g = _gui;
struct container_widget *this = _w; struct container_widget *this = _w;
...@@ -191,7 +191,7 @@ printf("HINTS container vertical %p\n", _w); ...@@ -191,7 +191,7 @@ printf("HINTS container vertical %p\n", _w);
static void horizontal_hints(gui *_gui, widget *_w, int *width, int *height) static void horizontal_hints(gui *_gui, widget *_w, int *width, int *height)
{ {
printf("HINTS container horizontal %p\n", _w); LOGD("HINTS container horizontal %p\n", _w);
struct gui *g = _gui; struct gui *g = _gui;
struct container_widget *this = _w; struct container_widget *this = _w;
...@@ -210,7 +210,7 @@ printf("HINTS container horizontal %p\n", _w); ...@@ -210,7 +210,7 @@ printf("HINTS container horizontal %p\n", _w);
static void horizontal_button(gui *_g, widget *_this, int x, int y, static void horizontal_button(gui *_g, widget *_this, int x, int y,
int button, int up) int button, int up)
{ {
printf("BUTTON container horizontal %p xy %d %d button %d up %d\n", _this, x, y, button, up); LOGD("BUTTON container horizontal %p xy %d %d button %d up %d\n", _this, x, y, button, up);
struct gui *g = _g; struct gui *g = _g;
struct container_widget *this = _this; struct container_widget *this = _this;
struct widget_list *l; struct widget_list *l;
...@@ -228,7 +228,7 @@ printf("BUTTON container horizontal %p xy %d %d button %d up %d\n", _this, x, y, ...@@ -228,7 +228,7 @@ printf("BUTTON container horizontal %p xy %d %d button %d up %d\n", _this, x, y,
static void vertical_button(gui *_g, widget *_this, int x, int y, static void vertical_button(gui *_g, widget *_this, int x, int y,
int button, int up) int button, int up)
{ {
printf("BUTTON container vertical %p xy %d %d button %d up %d\n", _this, x, y, button, up); LOGD("BUTTON container vertical %p xy %d %d button %d up %d\n", _this, x, y, button, up);
struct gui *g = _g; struct gui *g = _g;
struct container_widget *this = _this; struct container_widget *this = _this;
struct widget_list *l; struct widget_list *l;
...@@ -245,7 +245,7 @@ printf("BUTTON container vertical %p xy %d %d button %d up %d\n", _this, x, y, b ...@@ -245,7 +245,7 @@ printf("BUTTON container vertical %p xy %d %d button %d up %d\n", _this, x, y, b
static void paint(gui *_gui, widget *_this) static void paint(gui *_gui, widget *_this)
{ {
printf("PAINT container\n"); LOGD("PAINT container\n");
struct gui *g = _gui; struct gui *g = _gui;
struct widget *this = _this; struct widget *this = _this;
struct widget_list *l; struct widget_list *l;
......
...@@ -63,7 +63,7 @@ static event *new_event_dirty(int id) ...@@ -63,7 +63,7 @@ static event *new_event_dirty(int id)
void send_event(gui *_gui, enum event_type type, ...) void send_event(gui *_gui, enum event_type type, ...)
{ {
printf("send_event %d\n", type); LOGD("send_event %d\n", type);
struct gui *g = _gui; struct gui *g = _gui;
int do_write = 0; int do_write = 0;
va_list ap; va_list ap;
...@@ -140,7 +140,7 @@ static void dirty_event(struct gui *g, int id) ...@@ -140,7 +140,7 @@ static void dirty_event(struct gui *g, int id)
static void process_event(struct gui *g, struct event *e) static void process_event(struct gui *g, struct event *e)
{ {
printf("processing event type %d\n", e->type); LOGD("processing event type %d\n", e->type);
switch (e->type) { switch (e->type) {
case REPACK: repack_event(g, ((struct repack_event *)e)->id); break; case REPACK: repack_event(g, ((struct repack_event *)e)->id); break;
case DIRTY: dirty_event(g, ((struct dirty_event *)e)->id); break; case DIRTY: dirty_event(g, ((struct dirty_event *)e)->id); break;
...@@ -152,7 +152,7 @@ void gui_events(gui *_gui) ...@@ -152,7 +152,7 @@ void gui_events(gui *_gui)
{ {
struct gui *g = _gui; struct gui *g = _gui;
printf("gui_events START: head %p\n", g->queued_events); LOGD("gui_events START: head %p\n", g->queued_events);
while (g->queued_events) { while (g->queued_events) {
struct event_list *cur = g->queued_events; struct event_list *cur = g->queued_events;
...@@ -162,5 +162,5 @@ printf("gui_events START: head %p\n", g->queued_events); ...@@ -162,5 +162,5 @@ printf("gui_events START: head %p\n", g->queued_events);
free_event(cur->item); free_event(cur->item);
free(cur); free(cur);
} }
printf("gui_events DONE\n"); LOGD("gui_events DONE\n");
} }
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <pthread.h> #include <pthread.h>
int volatile gui_logd;
void glock(gui *_gui) void glock(gui *_gui)
{ {
struct gui *g = _gui; struct gui *g = _gui;
......
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
/* defines the private API of the GUI */ /* defines the private API of the GUI */
extern int volatile gui_logd;
#define LOGD(...) do { if (gui_logd) printf(__VA_ARGS__); } while (0)
/*************************************************************************/ /*************************************************************************/
/* logging macros */ /* logging macros */
/*************************************************************************/ /*************************************************************************/
......
...@@ -9,7 +9,7 @@ static void paint(gui *_gui, widget *_w) ...@@ -9,7 +9,7 @@ static void paint(gui *_gui, widget *_w)
{ {
struct gui *g = _gui; struct gui *g = _gui;
struct label_widget *l = _w; struct label_widget *l = _w;
printf("PAINT label '%s'\n", l->t); LOGD("PAINT label '%s'\n", l->t);
x_draw_string(g->x, g->xwin, l->color, x_draw_string(g->x, g->xwin, l->color,
l->common.x, l->common.y + l->baseline, l->t); l->common.x, l->common.y + l->baseline, l->t);
} }
...@@ -17,7 +17,7 @@ printf("PAINT label '%s'\n", l->t); ...@@ -17,7 +17,7 @@ printf("PAINT label '%s'\n", l->t);
static void hints(gui *_gui, widget *_w, int *width, int *height) static void hints(gui *_gui, widget *_w, int *width, int *height)
{ {
struct label_widget *l = _w; struct label_widget *l = _w;
printf("HINTS label '%s'\n", l->t); LOGD("HINTS label '%s'\n", l->t);
*width = l->width; *width = l->width;
*height = l->height; *height = l->height;
} }
......
...@@ -13,7 +13,7 @@ unsigned long register_notifier(gui *_g, char *notification, widget *w, ...@@ -13,7 +13,7 @@ unsigned long register_notifier(gui *_g, char *notification, widget *w,
glock(g); glock(g);
if (g->next_notifier_id == 2UL * 1024 * 1024 * 1024) if (g->next_notifier_id == 2UL * 1024 * 1024 * 1024)
{ printf("%s:%d: report a bug\n", __FILE__, __LINE__); abort(); } ERR("%s:%d: report a bug\n", __FILE__, __LINE__);
g->notifiers = realloc(g->notifiers, g->notifiers = realloc(g->notifiers,
(g->notifiers_count+1) * sizeof(struct notifier)); (g->notifiers_count+1) * sizeof(struct notifier));
...@@ -50,11 +50,8 @@ void unregister_notifier(gui *_g, unsigned long notifier_id) ...@@ -50,11 +50,8 @@ void unregister_notifier(gui *_g, unsigned long notifier_id)
for (i = 0; i < g->notifiers_count; i++) for (i = 0; i < g->notifiers_count; i++)
if (g->notifiers[i].id == notifier_id) break; if (g->notifiers[i].id == notifier_id) break;
if (i == g->notifiers_count) { if (i == g->notifiers_count)
printf("%s:%d: notifier_id %ld not found\n", __FILE__, __LINE__, ERR("%s:%d: notifier_id %ld not found\n", __FILE__,__LINE__,notifier_id);
notifier_id);
abort();
}
free(g->notifiers[i].notification); free(g->notifiers[i].notification);
...@@ -83,8 +80,7 @@ void gui_notify(struct gui *g, char *notification, widget *w, ...@@ -83,8 +80,7 @@ void gui_notify(struct gui *g, char *notification, widget *w,
* for now let's crash in case of recursive call * for now let's crash in case of recursive call
*/ */
static int inside = 0; static int inside = 0;
if (inside) if (inside) ERR("%s:%d: BUG! contact the authors\n", __FILE__, __LINE__);
{printf("%s:%d: BUG! contact the authors\n", __FILE__, __LINE__);abort();}
inside = 1; inside = 1;
/* clear all handlers */ /* clear all handlers */
......
...@@ -10,7 +10,7 @@ static void paint(gui *_gui, widget *_this) ...@@ -10,7 +10,7 @@ static void paint(gui *_gui, widget *_this)
struct gui *g = _gui; struct gui *g = _gui;
struct text_list_widget *this = _this; struct text_list_widget *this = _this;
int i, j; int i, j;
printf("PAINT text_list %p xywh %d %d %d %d\n", _this, this->common.x, this->common.y, this->common.width, this->common.height); LOGD("PAINT text_list %p xywh %d %d %d %d\n", _this, this->common.x, this->common.y, this->common.width, this->common.height);
x_fill_rectangle(g->x, g->xwin, this->background_color, x_fill_rectangle(g->x, g->xwin, this->background_color,
this->common.x, this->common.y, this->common.x, this->common.y,
this->common.width, this->common.height); this->common.width, this->common.height);
...@@ -29,7 +29,7 @@ static void hints(gui *_gui, widget *_w, int *width, int *height) ...@@ -29,7 +29,7 @@ static void hints(gui *_gui, widget *_w, int *width, int *height)
struct text_list_widget *w = _w; struct text_list_widget *w = _w;
*width = w->wanted_width; *width = w->wanted_width;
*height = w->wanted_nlines * w->line_height; *height = w->wanted_nlines * w->line_height;
printf("HINTS text_list wh %d %d\n", *width, *height); LOGD("HINTS text_list wh %d %d\n", *width, *height);
} }
static void allocate( static void allocate(
...@@ -41,14 +41,14 @@ static void allocate( ...@@ -41,14 +41,14 @@ static void allocate(
this->common.width = width; this->common.width = width;
this->common.height = height; this->common.height = height;
this->allocated_nlines = height / this->line_height; this->allocated_nlines = height / this->line_height;
printf("ALLOCATE text_list %p xywh %d %d %d %d nlines %d\n", this, x, y, width, height, this->allocated_nlines); LOGD("ALLOCATE text_list %p xywh %d %d %d %d nlines %d\n", this, x, y, width, height, this->allocated_nlines);
} }
static void button(gui *_g, widget *_this, int x, int y, int button, int up) static void button(gui *_g, widget *_this, int x, int y, int button, int up)
{ {
struct gui *g = _g; struct gui *g = _g;
struct text_list_widget *this = _this; struct text_list_widget *this = _this;
printf("BUTTON test_list %p xy %d %d button %d up %d\n", _this, x, y, button, up); LOGD("BUTTON test_list %p xy %d %d button %d up %d\n", _this, x, y, button, up);
/* scroll up */ /* scroll up */
if (button == 4 && up == 0) { if (button == 4 && up == 0) {
gui_notify(g, "scrollup", _this, NULL); gui_notify(g, "scrollup", _this, NULL);
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
static void repack(gui *g, widget *_this) static void repack(gui *g, widget *_this)
{ {
printf("REPACK toplevel_window\n"); LOGD("REPACK toplevel_window\n");
struct toplevel_window_widget *this = _this; struct toplevel_window_widget *this = _this;
if (this->common.children == NULL) ERR("toplevel window has no child\n"); if (this->common.children == NULL) ERR("toplevel window has no child\n");
if (this->common.children->next != NULL) if (this->common.children->next != NULL)
...@@ -22,7 +22,7 @@ printf("REPACK toplevel_window\n"); ...@@ -22,7 +22,7 @@ printf("REPACK toplevel_window\n");
static void add_child(gui *_gui, widget *_this, widget *child, int position) static void add_child(gui *_gui, widget *_this, widget *child, int position)
{ {
printf("ADD_CHILD toplevel_window\n"); LOGD("ADD_CHILD toplevel_window\n");
struct widget *this = _this; struct widget *this = _this;
if (this->children != NULL) { if (this->children != NULL) {
WARN("toplevel window already has a child\n"); WARN("toplevel window already has a child\n");
...@@ -35,7 +35,7 @@ printf("ADD_CHILD toplevel_window\n"); ...@@ -35,7 +35,7 @@ printf("ADD_CHILD toplevel_window\n");
static void allocate( static void allocate(
gui *_gui, widget *_this, int x, int y, int width, int height) gui *_gui, widget *_this, int x, int y, int width, int height)
{ {
printf("ALLOCATE toplevel_window\n"); LOGD("ALLOCATE toplevel_window\n");
struct toplevel_window_widget *this = _this; struct toplevel_window_widget *this = _this;
this->common.width = width; this->common.width = width;
this->common.height = height; this->common.height = height;
...@@ -47,7 +47,7 @@ static void paint(gui *_gui, widget *_this) ...@@ -47,7 +47,7 @@ static void paint(gui *_gui, widget *_this)
{ {
struct gui *g = _gui; struct gui *g = _gui;
struct toplevel_window_widget *this = _this; struct toplevel_window_widget *this = _this;
printf("PAINT toplevel_window (%d %d)\n", this->common.width, this->common.height); LOGD("PAINT toplevel_window (%d %d)\n", this->common.width, this->common.height);
x_fill_rectangle(g->x, this->x, BACKGROUND_COLOR, x_fill_rectangle(g->x, this->x, BACKGROUND_COLOR,
0, 0, this->common.width, this->common.height); 0, 0, this->common.width, this->common.height);
g->xwin = this->x; g->xwin = this->x;
......
...@@ -46,7 +46,7 @@ x_connection *x_open(void) ...@@ -46,7 +46,7 @@ x_connection *x_open(void)
if (ret == NULL) OOM; if (ret == NULL) OOM;
ret->d = XOpenDisplay(0); ret->d = XOpenDisplay(0);
printf("XOpenDisplay display %p return x_connection %p\n", ret->d, ret); LOGD("XOpenDisplay display %p return x_connection %p\n", ret->d, ret);
if (ret->d == NULL) ERR("error calling XOpenDisplay: no X? you root?\n"); if (ret->d == NULL) ERR("error calling XOpenDisplay: no X? you root?\n");
x_new_color(ret, "white"); /* background color */ x_new_color(ret, "white"); /* background color */
...@@ -96,16 +96,16 @@ x_window *x_create_window(x_connection *_x, int width, int height, ...@@ -96,16 +96,16 @@ x_window *x_create_window(x_connection *_x, int width, int height,
#if 0 #if 0
/* wait for window to be mapped */ /* wait for window to be mapped */
printf("wait for map\n"); LOGD("wait for map\n");
while (1) { while (1) {
XEvent ev; XEvent ev;
//XWindowEvent(x->d, ret->w, StructureNotifyMask, &ev); //XWindowEvent(x->d, ret->w, StructureNotifyMask, &ev);
XWindowEvent(x->d, ret->w, ExposureMask, &ev); XWindowEvent(x->d, ret->w, ExposureMask, &ev);
printf("got ev %d\n", ev.type); LOGD("got ev %d\n", ev.type);
//if (ev.type == MapNotify) break; //if (ev.type == MapNotify) break;
if (ev.type == Expose) break; if (ev.type == Expose) break;
} }
printf("XXX create connection %p window %p (win id %d pixmap %d) w h %d %d\n", x, ret, (int)ret->w, (int)ret->p, width, height); LOGD("XXX create connection %p window %p (win id %d pixmap %d) w h %d %d\n", x, ret, (int)ret->w, (int)ret->p, width, height);
#endif #endif
return ret; return ret;
...@@ -133,7 +133,7 @@ void x_events(gui *_gui) ...@@ -133,7 +133,7 @@ void x_events(gui *_gui)
struct x_connection *x = g->x; struct x_connection *x = g->x;
struct toplevel_window_widget *w; struct toplevel_window_widget *w;
printf("x_events START\n"); LOGD("x_events START\n");
/* preprocessing (to "compress" events) */ /* preprocessing (to "compress" events) */
cur = g->toplevel; cur = g->toplevel;
while (cur) { while (cur) {
...@@ -149,7 +149,7 @@ printf("x_events START\n"); ...@@ -149,7 +149,7 @@ printf("x_events START\n");
while (XPending(x->d)) { while (XPending(x->d)) {
XEvent ev; XEvent ev;
XNextEvent(x->d, &ev); XNextEvent(x->d, &ev);
printf("XEV %d\n", ev.type); LOGD("XEV %d\n", ev.type);
switch (ev.type) { switch (ev.type) {
case MapNotify: case MapNotify:
case Expose: case Expose:
...@@ -166,7 +166,7 @@ printf("XEV %d\n", ev.type); ...@@ -166,7 +166,7 @@ printf("XEV %d\n", ev.type);
xw->new_height = ev.xconfigure.height; xw->new_height = ev.xconfigure.height;
if (xw->new_width < 10) xw->new_width = 10; if (xw->new_width < 10) xw->new_width = 10;
if (xw->new_height < 10) xw->new_height = 10; if (xw->new_height < 10) xw->new_height = 10;
printf("ConfigureNotify %d %d\n", ev.xconfigure.width, ev.xconfigure.height); LOGD("ConfigureNotify %d %d\n", ev.xconfigure.width, ev.xconfigure.height);
} }
break; break;
case ButtonPress: case ButtonPress:
...@@ -194,14 +194,14 @@ printf("ConfigureNotify %d %d\n", ev.xconfigure.width, ev.xconfigure.height); ...@@ -194,14 +194,14 @@ printf("ConfigureNotify %d %d\n", ev.xconfigure.width, ev.xconfigure.height);
} }
/* postprocessing */ /* postprocessing */
printf("post processing\n"); LOGD("post processing\n");
cur = g->toplevel; cur = g->toplevel;
while (cur) { while (cur) {
struct toplevel_window_widget *w = struct toplevel_window_widget *w =
(struct toplevel_window_widget *)cur->item; (struct toplevel_window_widget *)cur->item;
struct x_window *xw = w->x; struct x_window *xw = w->x;
if (xw->resize) { if (xw->resize) {
printf("resize old %d %d new %d %d\n", xw->width, xw->height, xw->new_width, xw->new_height); LOGD("resize old %d %d new %d %d\n", xw->width, xw->height, xw->new_width, xw->new_height);
if (xw->width != xw->new_width || xw->height != xw->new_height) { if (xw->width != xw->new_width || xw->height != xw->new_height) {
w->common.allocate(g, w, 0, 0, xw->new_width, xw->new_height); w->common.allocate(g, w, 0, 0, xw->new_width, xw->new_height);
xw->width = xw->new_width; xw->width = xw->new_width;
...@@ -220,13 +220,13 @@ printf("resize old %d %d new %d %d\n", xw->width, xw->height, xw->new_width, xw- ...@@ -220,13 +220,13 @@ printf("resize old %d %d new %d %d\n", xw->width, xw->height, xw->new_width, xw-
} }
if (xw->redraw) { if (xw->redraw) {
struct x_connection *x = g->x; struct x_connection *x = g->x;
printf("XCopyArea w h %d %d\n", xw->width, xw->height); LOGD("XCopyArea w h %d %d\n", xw->width, xw->height);
XCopyArea(x->d, xw->p, xw->w, x->colors[1], XCopyArea(x->d, xw->p, xw->w, x->colors[1],
0, 0, xw->width, xw->height, 0, 0); 0, 0, xw->width, xw->height, 0, 0);
} }
cur = cur->next; cur = cur->next;
} }
printf("x_events DONE\n"); LOGD("x_events DONE\n");
} }
void x_flush(x_connection *_x) void x_flush(x_connection *_x)
...@@ -248,7 +248,7 @@ void x_text_get_dimensions(x_connection *_c, const char *t, ...@@ -248,7 +248,7 @@ void x_text_get_dimensions(x_connection *_c, const char *t,
XQueryTextExtents(c->d, XGContextFromGC(c->colors[1]), t, strlen(t), XQueryTextExtents(c->d, XGContextFromGC(c->colors[1]), t, strlen(t),
&dir, &ascent, &descent, &overall); &dir, &ascent, &descent, &overall);
//printf("dir %d ascent %d descent %d lbearing %d rbearing %d width %d ascent %d descent %d\n", dir, ascent, descent, overall.lbearing, overall.rbearing, overall.width, overall.ascent, overall.descent); //LOGD("dir %d ascent %d descent %d lbearing %d rbearing %d width %d ascent %d descent %d\n", dir, ascent, descent, overall.lbearing, overall.rbearing, overall.width, overall.ascent, overall.descent);
*width = overall.width; *width = overall.width;
*height = ascent + descent; *height = ascent + descent;
...@@ -308,7 +308,7 @@ void x_draw(x_connection *_c, x_window *_w) ...@@ -308,7 +308,7 @@ void x_draw(x_connection *_c, x_window *_w)
{ {
struct x_connection *c = _c; struct x_connection *c = _c;
struct x_window *w = _w; struct x_window *w = _w;
printf("x_draw XCopyArea w h %d %d display %p window %d pixmap %d\n", w->width, w->height, c->d, (int)w->w, (int)w->p); LOGD("x_draw XCopyArea w h %d %d display %p window %d pixmap %d\n", w->width, w->height, c->d, (int)w->w, (int)w->p);
XCopyArea(c->d, w->p, w->w, c->colors[1], 0, 0, w->width, w->height, 0, 0); XCopyArea(c->d, w->p, w->w, c->colors[1], 0, 0, w->width, w->height, 0, 0);
} }
...@@ -333,7 +333,7 @@ void x_add_point(x_connection *_c, int x, int y) ...@@ -333,7 +333,7 @@ void x_add_point(x_connection *_c, int x, int y)
void x_plot_points(x_connection *_c, x_window *_w, int color) void x_plot_points(x_connection *_c, x_window *_w, int color)
{ {
struct x_connection *c = _c; struct x_connection *c = _c;
fprintf(stderr, "x_plot_points %d points\n", c->pts_size); LOGD("x_plot_points %d points\n", c->pts_size);
struct x_window *w = _w; struct x_window *w = _w;
XDrawPoints(c->d, w->p, c->colors[color], c->pts, c->pts_size, XDrawPoints(c->d, w->p, c->colors[color], c->pts, c->pts_size,
CoordModeOrigin); CoordModeOrigin);
......
...@@ -24,7 +24,7 @@ static void paint(gui *_gui, widget *_this) ...@@ -24,7 +24,7 @@ static void paint(gui *_gui, widget *_this)
# define FLIP(v) (-(v) + allocated_plot_height-1) # define FLIP(v) (-(v) + allocated_plot_height-1)
printf("PAINT xy plot xywh %d %d %d %d\n", this->common.x, this->common.y, this->common.width, this->common.height); LOGD("PAINT xy plot xywh %d %d %d %d\n", this->common.x, this->common.y, this->common.width, this->common.height);
//x_draw_rectangle(g->x, g->xwin, 1, this->common.x, this->common.y, this->common.width, this->common.height); //x_draw_rectangle(g->x, g->xwin, 1, this->common.x, this->common.y, this->common.width, this->common.height);
...@@ -52,14 +52,14 @@ printf("PAINT xy plot xywh %d %d %d %d\n", this->common.x, this->common.y, this- ...@@ -52,14 +52,14 @@ printf("PAINT xy plot xywh %d %d %d %d\n", this->common.x, this->common.y, this-
allocated_xmax = center + ((this->xmax - this->xmin) * allocated_xmax = center + ((this->xmax - this->xmin) *
allocated_plot_width / wanted_plot_width) / 2; allocated_plot_width / wanted_plot_width) / 2;
/* adjust tic if too tight */ /* adjust tic if too tight */
printf("pre x ticstep %g\n", ticstep); LOGD("pre x ticstep %g\n", ticstep);
while (1) { while (1) {
if (ticstep / (allocated_xmax - allocated_xmin) if (ticstep / (allocated_xmax - allocated_xmin)
* (allocated_plot_width - 1) > 40) break; * (allocated_plot_width - 1) > 40) break;
ticstep *= 2; ticstep *= 2;
} }
printf("post x ticstep %g\n", ticstep); LOGD("post x ticstep %g\n", ticstep);
printf("xmin/max %g %g width wanted allocated %d %d alloc xmin/max %g %g ticstep %g\n", this->xmin, this->xmax, wanted_plot_width, allocated_plot_width, allocated_xmin, allocated_xmax, ticstep); LOGD("xmin/max %g %g width wanted allocated %d %d alloc xmin/max %g %g ticstep %g\n", this->xmin, this->xmax, wanted_plot_width, allocated_plot_width, allocated_xmin, allocated_xmax, ticstep);
kmin = ceil(allocated_xmin / ticstep); kmin = ceil(allocated_xmin / ticstep);
kmax = floor(allocated_xmax / ticstep); kmax = floor(allocated_xmax / ticstep);
for (k = kmin; k <= kmax; k++) { for (k = kmin; k <= kmax; k++) {
...@@ -84,7 +84,7 @@ printf("xmin/max %g %g width wanted allocated %d %d alloc xmin/max %g %g ticstep ...@@ -84,7 +84,7 @@ printf("xmin/max %g %g width wanted allocated %d %d alloc xmin/max %g %g ticstep
this->common.y + this->common.height - this->label_height * 2 + this->common.y + this->common.height - this->label_height * 2 +
this->label_baseline, this->label_baseline,
v); v);
printf("tic k %d val %g x %g\n", k, k * ticstep, x); LOGD("tic k %d val %g x %g\n", k, k * ticstep, x);
} }
/* vertical tics */ /* vertical tics */
...@@ -98,14 +98,14 @@ printf("tic k %d val %g x %g\n", k, k * ticstep, x); ...@@ -98,14 +98,14 @@ printf("tic k %d val %g x %g\n", k, k * ticstep, x);
allocated_ymax = center + ((this->ymax - this->ymin) * allocated_ymax = center + ((this->ymax - this->ymin) *
allocated_plot_height / wanted_plot_height) / 2; allocated_plot_height / wanted_plot_height) / 2;
/* adjust tic if too tight */ /* adjust tic if too tight */
printf("pre y ticstep %g\n", ticstep); LOGD("pre y ticstep %g\n", ticstep);
while (1) { while (1) {
if (ticstep / (allocated_ymax - allocated_ymin) if (ticstep / (allocated_ymax - allocated_ymin)
* (allocated_plot_height - 1) > 20) break; * (allocated_plot_height - 1) > 20) break;
ticstep *= 2; ticstep *= 2;
} }
printf("post y ticstep %g\n", ticstep); LOGD("post y ticstep %g\n", ticstep);
printf("ymin/max %g %g height wanted allocated %d %d alloc ymin/max %g %g ticstep %g\n", this->ymin, this->ymax, wanted_plot_height, allocated_plot_height, allocated_ymin, allocated_ymax, ticstep); LOGD("ymin/max %g %g height wanted allocated %d %d alloc ymin/max %g %g ticstep %g\n", this->ymin, this->ymax, wanted_plot_height, allocated_plot_height, allocated_ymin, allocated_ymax, ticstep);
kmin = ceil(allocated_ymin / ticstep); kmin = ceil(allocated_ymin / ticstep);
kmax = floor(allocated_ymax / ticstep); kmax = floor(allocated_ymax / ticstep);
for (k = kmin; k <= kmax; k++) { for (k = kmin; k <= kmax; k++) {
...@@ -158,7 +158,7 @@ static void hints(gui *_gui, widget *_w, int *width, int *height) ...@@ -158,7 +158,7 @@ static void hints(gui *_gui, widget *_w, int *width, int *height)
struct xy_plot_widget *w = _w; struct xy_plot_widget *w = _w;
*width = w->wanted_width + w->vrule_width; *width = w->wanted_width + w->vrule_width;
*height = w->wanted_height + w->label_height * 2; /* TODO: refine */ *height = w->wanted_height + w->label_height * 2; /* TODO: refine */
printf("HINTS xy plot wh %d %d (vrule_width %d) (wanted wh %d %d)\n", *width, *height, w->vrule_width, w->wanted_width, w->wanted_height); LOGD("HINTS xy plot wh %d %d (vrule_width %d) (wanted wh %d %d)\n", *width, *height, w->vrule_width, w->wanted_width, w->wanted_height);
} }
widget *new_xy_plot(gui *_gui, int width, int height, char *label, widget *new_xy_plot(gui *_gui, int width, int height, char *label,
...@@ -176,7 +176,7 @@ widget *new_xy_plot(gui *_gui, int width, int height, char *label, ...@@ -176,7 +176,7 @@ widget *new_xy_plot(gui *_gui, int width, int height, char *label,
* not in the "gui thread") */ * not in the "gui thread") */
x_text_get_dimensions(g->x, label, &w->label_width, &w->label_height, x_text_get_dimensions(g->x, label, &w->label_width, &w->label_height,
&w->label_baseline); &w->label_baseline);
printf("XY PLOT label wh %d %d\n", w->label_width, w->label_height); LOGD("XY PLOT label wh %d %d\n", w->label_width, w->label_height);
w->wanted_width = width; w->wanted_width = width;
w->wanted_height = height; w->wanted_height = height;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment