Exemple #1
0
void Editor::moveCurser() {
	assert(curser);
	
	//place/choose/ delete
	if (hold_place && !Fl::event_key(' ')) {
		hold_place = false;
	} else if (hold_place) {
   		handleSpace();
	} else if (hold_del && !Fl::event_key(FL_Shift_L) && !Fl::event_key(FL_Shift_R)) {
		hold_del = false;
	} else if (hold_del)
		removeThing();


	
	// skip some frames
	if (frame < 0)
		frame = FRAME_SKIP;
	else {
		frame--;
		return;
	}

	bool up, down, left, right;
	up = down = left = right = false;

	// move in x-dir
	if (hold_left && !Fl::event_key(FL_Left)) {
		hold_left = false;
	} else if (hold_left){
		left = true;
	} else if (hold_right && !Fl::event_key(FL_Right)) {
		hold_right = false;
	} else if (hold_right) {
		right = true;
	}

	// move in y-dir
	if (hold_up && !Fl::event_key(FL_Up)) {
		hold_up = false;
	} else if (hold_up) {
			up = true;
	} else if (hold_down && !Fl::event_key(FL_Down)) 
		hold_down = false;
	else if (hold_down)
		down = true;

	// set positions
	advancePosition(up, down, left, right);
}
Exemple #2
0
/**
 * Parse function parses the user input and stores the results in the PARAM struct.
 * @param param pointer to the PARAM struct
 * @param input char array that contains the user input
 */
void parse(ParamP param, char userIn[]) {
	//check if user only hit enter with no tokens
	handleBlank(param, userIn);
	char *parser = strtok(userIn, " \t\n");
	while (parser != NULL) {
		if (!strncmp(parser, "<", 1) || !strncmp(parser, ">", 1)) //check for redirects
				{
			handleSpace(param, parser, userIn);
			handleInRedir(param, parser);
			parser = strtok(NULL, " \t\n");
		} else //add tokens to argumentVector array
		{
			param->argumentVector[param->argumentCount] = parser;
			param->argumentCount++;
			parser = strtok(NULL, " \t\n");
		}
	}
	handleAmpersand(param, userIn);
}