void prompt_to_load_file() { char msg[] = "Please select the map file you wish to load"; char path[FILENAME_MAX * 6] = { "\0" }; int result; mouse_callback = NULL; result = file_select_ex(msg, path, "txt", sizeof(path), 0, 0); if (!result) { if (nodelist != NULL && vector_len((vector_t*)nodelist) > 0) return; allegro_message("You did not select a file to load: there's nothing for the program to do. Exiting."); exit(0); } if (debugging) fprintf(stderr, "%s\n", path); nodelist = load_file(path); render_image(screen); render_image(backbuffer); render_info(screen); render_info(backbuffer); strncpy(last_file, path, sizeof(last_file)); mouse_callback = mouse_cb; }
void Engine::render() { render_map(); render_messages(); render_info(); doupdate(); }
static void update_plugin() { Reader *reader; gchar *text; u_long val, since_last; gint clock_style_id; // GkrellmKrell *k; // gint i; /* See if we recieved SNMP responses */ simpleSNMPupdate(); /* Send new SNMP requests */ for (reader = readers; reader ; reader = reader->next) { // k = KRELL(panel); // k->previous = 0; if ( (! reader->session) && (! reader->old_error) ) { reader->session = simpleSNMPopen(reader->peer, reader->port, reader->community, reader); if (! reader->session) { text = reader->old_error; reader->old_error = render_error(reader); g_free(text); } } /* Send new SNMP requests */ if ( (reader->session) && ((GK.timer_ticks % reader->delay) == 0)) simpleSNMPsend(reader->session, reader->objid, reader->objid_length); if ( (reader->session) && (reader->sample) ) { if ((reader->error) && (reader->panel != NULL)) { if (!reader->old_error || strcmp(reader->error, reader->old_error) ) { text = reader->old_error; reader->old_error = g_strdup(reader->error); g_free(text); reader->panel->textstyle = gkrellm_panel_alt_textstyle(DEFAULT_STYLE_ID); text = render_error(reader); gtk_tooltips_set_tip(reader->tooltip, reader->panel->drawing_area, text, ""); gtk_tooltips_enable(reader->tooltip); g_free(text); } } else { if ((GK.timer_ticks % reader->delay) == 0) if (reader->chart != NULL) { /* 100: turn TimeTicks into seconds */ since_last = (reader->sample_time - reader->old_sample_time) / 100; if (reader->delta) val = (reader->sample_n - reader->old_sample_n) / ( (since_last < 1) ? 1 : since_last ) / ( (reader->divisor == 0) ? 1 : reader->divisor ); else val = reader->sample_n / ( (reader->divisor == 0) ? 1 : reader->divisor ); gkrellm_store_chartdata(reader->chart, 0, val); cb_draw_chart(reader); text = render_info(reader); gtk_tooltips_set_tip(reader->tooltip, reader->chart->drawing_area, text, ""); gtk_tooltips_enable(reader->tooltip); g_free(text); reader->old_sample_n = reader->sample_n; reader->old_sample_time = reader->sample_time; } /* if there are changes update label */ if (reader->panel != NULL) { reader->panel->textstyle = gkrellm_panel_textstyle(DEFAULT_STYLE_ID); if ( !reader->old_sample || strcmp(reader->sample, reader->old_sample) || (reader->sample_n != reader->old_sample_n) ) { g_free(reader->old_sample); reader->old_sample = g_strdup(reader->sample); text = render_label(reader); gkrellm_dup_string(&reader->panel->label->string, text); g_free(text); // i = atoi(text); text = render_info(reader); gtk_tooltips_set_tip(reader->tooltip, reader->panel->drawing_area, text, ""); gtk_tooltips_enable(reader->tooltip); g_free(text); reader->old_sample_n = reader->sample_n; reader->old_sample_time = reader->sample_time; } } } } else { if (reader->panel != NULL) reader->panel->textstyle = gkrellm_panel_alt_textstyle(DEFAULT_STYLE_ID); if (reader->panel != NULL) gtk_tooltips_disable(reader->tooltip); // i = -1; } // gkrellm_update_krell(panel, k, i); clock_style_id = gkrellm_lookup_meter_style_id(CLOCK_STYLE_NAME); if (reader->panel != NULL) gkrellm_draw_panel_label( reader->panel ); //GTK2 gkrellm_bg_panel_piximage(clock_style_id) ); if (reader->panel != NULL) gkrellm_draw_panel_layers(reader->panel); } }
int render_image(BITMAP *canvas) { int color = 0, linecolor = 55; int i, j, len, sz = rect_len; int minx, miny, maxx, maxy; mapnode_t *nd; minx = 0 - xoffset; miny = 0 - yoffset; maxx = canvas->w - xoffset; maxy = canvas->h - yoffset; scare_mouse(); if (!canvas) canvas = backbuffer; if (!canvas) ERROR_EXIT(); clear_to_color(canvas, bgc); len = vector_len((vector_t *)nodelist); for (i = 0; i < len; i++) { nd = vector_aref((vector_t *)nodelist, i); if (!nd) continue; /* ensure the node is in current screen bounds */ if ((nd->x < minx) || (nd->y < miny)) continue; else if ((nd->x > maxx) || (nd->y > maxy)) continue; /* draw the connections to adjacent rooms */ for (j = 0; nd->adj[j].nodeptr != NULL; j++) { /* restrict lines drawn to those ending in on-screen nodes only */ if (nd->adj[j].nodeptr->x < minx) continue; else if (nd->adj[j].nodeptr->y < miny) continue; else if (nd->adj[j].nodeptr->x > maxx) continue; else if (nd->adj[j].nodeptr->y > maxy) continue; line(canvas, nd->x+xoffset, nd->y+yoffset, nd->adj[j].nodeptr->x+xoffset, nd->adj[j].nodeptr->y+yoffset, linecolor); } } /* draw the rectangles representing each on-screen node */ for (i = 0; i < len; i++) { nd = vector_aref((vector_t *)nodelist, i); if (!nd) continue; else if ((nd->x < minx) || (nd->y < miny)) continue; else if ((nd->x > maxx) || (nd->y > maxy)) continue; rectfill(canvas, nd->x-sz+xoffset, nd->y-sz+yoffset, nd->x+sz+xoffset, nd->y+sz+yoffset, color); } /* make sure the selected node always has all adjacent rooms drawn as connections */ if (selected_node) { nd = selected_node; for (j = 0; nd->adj[j].nodeptr != NULL; j++) { line(canvas, nd->x+xoffset, nd->y+yoffset, nd->adj[j].nodeptr->x+xoffset, nd->adj[j].nodeptr->y+yoffset, highlight_color); } } render_info(canvas); return 0; }