コード例 #1
0
ファイル: button.c プロジェクト: alchar/cpen_391_project1
/* On valid search, find the path to the selected entry from current location. Re-draw the map.
	On invalid search, returns and keep listening for keyboard inputs */
bool do_enter(){
	bool retval = false;
	if(ready()){
		retval = true;
		name_list* nl = matched_names.head;
		for(int i = 1; i < sel; i++){
			nl = nl->next;
		}

		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.");
			do_back();
			return retval;
		}

		end_node = find_vertex_by_name(full_map_graph, nl->name)->id;
		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.");
			do_back();
			return retval;
		}

		do_back();
		load_and_draw_graph_path(full_map_graph, start_node, end_node, road_only, PURPLEPIZZAZZ);
		draw_information_box("HAVE A FUN TRIP!");
	}
	return retval;
}
コード例 #2
0
bool TransitionData::tool_cmd(ToolCom * com, const char * args,
			      BrowserNode * bn,
			      const QString & comment) {
  if (((unsigned char) args[-1]) >= firstSetCmd) {
    if (!bn->is_writable() && !root_permission())
      com->write_ack(FALSE);
    else {
      switch ((unsigned char) args[-1]) {
      case setUmlTriggerCmd:
	uml.trigger = args;
	break;
      case setUmlGuardCmd:
	uml.guard = args;
	break;
      case setUmlActivityCmd:
	uml.expr = args;
	break;
      case setCppTriggerCmd:
	cpp.trigger = args;
	break;
      case setCppGuardCmd:
	cpp.guard = args;
	break;
      case setCppActivityCmd:
	cpp.expr = args;
	break;
      case setJavaTriggerCmd:
	java.trigger = args;
	break;
      case setJavaGuardCmd:
	java.guard = args;
	break;
      case setJavaActivityCmd:
	java.expr = args;
	break;
      case setIsCppExternalCmd:
	if (*args != 0)
	  is_internal = FALSE;
	else if (get_start_node() != end) {
	  com->write_ack(FALSE);
	  return TRUE;
	}
	else
	  is_internal = TRUE;
	break;
      default:
	return BasicData::tool_cmd(com, args, bn, comment);
      }
      
      // ok case
      bn->package_modified();
      modified();
      com->write_ack(TRUE);
    }
  }
  else
    return BasicData::tool_cmd(com, args, bn, comment);
  
  return TRUE;
}
コード例 #3
0
ファイル: button.c プロジェクト: alchar/cpen_391_project1
// 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
ファイル: kmer.hpp プロジェクト: raymondr/cosmo
T get_start_node(const T & x, uint8_t) {
    return get_start_node(x);
}