mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Remember the event names as we encounter them
First step to being able to filter the events that we display in the profile. We could (in theory) walk all the dives in the divelist when we need this data, but it seems much more convenient to have them in an array in one place. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c4691306c4
commit
5ca49b0460
3 changed files with 33 additions and 0 deletions
31
profile.c
31
profile.c
|
@ -166,6 +166,37 @@ static void plot_text(struct graphics_context *gc, const text_render_options_t *
|
|||
cairo_show_text(cr, buffer);
|
||||
}
|
||||
|
||||
struct ev_select {
|
||||
char *ev_name;
|
||||
gboolean plot_ev;
|
||||
};
|
||||
static struct ev_select *ev_namelist;
|
||||
static int evn_allocated;
|
||||
static int evn_used;
|
||||
|
||||
void remember_event(const char *eventname)
|
||||
{
|
||||
int i=0, len;
|
||||
|
||||
if (!eventname || (len = strlen(eventname)) == 0)
|
||||
return;
|
||||
while (i < evn_used) {
|
||||
if (!strncmp(eventname,ev_namelist[i].ev_name,len))
|
||||
return;
|
||||
i++;
|
||||
}
|
||||
if (evn_used == evn_allocated) {
|
||||
evn_allocated += 10;
|
||||
ev_namelist = realloc(ev_namelist, evn_allocated * sizeof(struct ev_select));
|
||||
if (! ev_namelist)
|
||||
/* we are screwed, but let's just bail out */
|
||||
return;
|
||||
}
|
||||
ev_namelist[evn_used].ev_name = strdup(eventname);
|
||||
ev_namelist[evn_used].plot_ev = TRUE;
|
||||
evn_used++;
|
||||
}
|
||||
|
||||
static void plot_one_event(struct graphics_context *gc, struct plot_info *pi, struct event *event, const text_render_options_t *tro)
|
||||
{
|
||||
int i, depth = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue