Exemple #1
0
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;
}
Exemple #2
0
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);
    }

}
Exemple #4
0
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;
}