示例#1
0
文件: main.c 项目: falcaopetri/B-Tree
int main() {
	screen next_screen = HOME;
	populate_values();
	snprintf(msg, MSG_LEN, "-");
	n_keys = 0;

	while (next_screen != EXIT) {
		switch (next_screen) {
		case HOME:
			next_screen = home_screen();
			break;
		case ABOUT:
			next_screen = about_screen();
			break;
		case RUN:
			next_screen = run_screen();
			break;
		case RUNNING:
			next_screen = running_screen();
			break;
		case EXIT:
			break;
		}
	}

	snprintf(msg, MSG_LEN, " Saindo da aplicação");
	goodbye();

	return 0;
}
示例#2
0
//Toggle between zoom in and zoom out
void do_zoom(){
	Point sel = {0,0};
	if (zoom_level == ZOOM_IN){
		zoom_level = ZOOM_OUT;
	}
	else {
		zoom_level = ZOOM_IN;

		do{
			sel = GetPress();
		} while(sel.y > image_height[ZOOM_OUT] || sel.x > image_width[ZOOM_OUT]);

		sel = convert_pnt_to_zoom_in(sel);

		//we pass draw_image in the top left corner, sel should be the centre of the image
		sel.x -= DISPLAY_WIDTH/2;
		sel.y -= DISPLAY_HEIGHT/2;

		if(sel.x < 0)
			sel.x = 0;
		else if(sel.x > (image_width[ZOOM_IN] - DISPLAY_WIDTH))
			sel.x = image_width[ZOOM_IN]  - DISPLAY_WIDTH;

		if(sel.y < 0)
			sel.y = 0;
		else if(sel.y > (image_height[ZOOM_IN] - DISPLAY_HEIGHT))
			sel.y = image_height[ZOOM_IN] - DISPLAY_HEIGHT;
	}

	curr_image_pos = sel;
	draw_full_image();
	about_screen();
	ZOOM_BUTT.prs_p(ZOOM_BUTT);
	re_draw_path();
}
示例#3
0
// Ask for a start and end node and find the best directions
void do_dir(){
	int start_node = get_start_node();
	if (road_only && !vertex_had_road_edge(full_map_graph, start_node)){
		draw_information_box("YOUR CURRENT LOCATION HAS NO ROAD ACCESS. PLEASE TURN OFF THE ROADS BUTTON.");
		DIR_BUTT.prs_p(DIR_BUTT);
		return;
	}
	draw_information_box("PLEASE SELECT DESTINATION");

	end_node = get_node(full_map_graph);
	if (end_node == -1){
		DIR_BUTT.prs_p(DIR_BUTT);
		about_screen();
		return;
	}
	if (road_only && !vertex_had_road_edge(full_map_graph, end_node)){
		draw_information_box("YOUR SELECTED LOCATION HAS NO ROAD ACCESS. PLEASE TURN OFF THE ROADS BUTTON.");
		DIR_BUTT.prs_p(DIR_BUTT);
		return;
	}

	load_and_draw_graph_path(full_map_graph, start_node, end_node, road_only, PURPLEPIZZAZZ);

	draw_information_box("HAVE A FUN TRIP!");
	DIR_BUTT.prs_p(DIR_BUTT);
}
示例#4
0
// Display info of the next node touched
void do_info(){
	draw_information_box("SELECT A MAP POINT TO OBTAIN ITS INFORMATION.");
	char* info = get_node_info(full_map_graph);
	if (info == NULL) {
		about_screen();
		INFO_BUTT.prs_p(INFO_BUTT);
		return;
	}
	free(info);
	info_screen(info);
	INFO_BUTT.prs_p(INFO_BUTT);
}
示例#5
0
// Leave search mode and redraw the map
void do_back(){
	reset_query();
	destroy_matches();
	draw_full_image();
	about_screen();
}
示例#6
0
// Display app about
void do_about(void* nothing){
	about_screen();
}