Ejemplo n.º 1
0
void print_input_buf( char * str, int input_off )
{
	save_position();
	move_xy( 20, 10 );
	printf("                                   \n");
	move_xy( 20, 10 );
	printf("%s len = %d\n", str, strlen(str) );
	printf( "input_off = %d\n", input_off );
	fflush( NULL );
	restore_position();
}
Ejemplo n.º 2
0
int debug( char * fmt, char * str )
{
	save_position();
	
	move_xy( 65, 15 );
	printf("            \n");
	move_xy( 65, 15 );
	printf( fmt, str );
	
	restore_position();
}
Ejemplo n.º 3
0
int show_window( void )
{
   clear_screen();
	get_win_size( &winx, &winy );	
   rectangle( 1, 1, winx, winy );

	move_xy( 3, 3 );
	printf("善哉词霸");

	rectangle( 13, 2, winx-15, 3 );
   line( 1, 5, winx, 0, '=' );  

	line( winx / 3, 6, winy-6, 1, '|' );
	move_xy( 10,10 );
	fflush( NULL );
}
Ejemplo n.º 4
0
int show_explain( char * words, char * explain )
{
	save_position();

	bar( winx/3 + 2, 7, winx/3*2 -2, winy - 8, ' ' );
	move_xy( winx / 3 + 2, 7 );
	if( explain == NULL ) {
		printf("sorry, 没有找到这个单词.\n" );
	} else {
		printf("------ <<善哉电子辞典>> -------");
		move_xy( winx / 3 + 2, 8 );
		printf("单词: ");
		move_xy( winx / 3 + 2, 9 );
		printf("   %s", words ); 
		move_xy( winx / 3 + 2, 10 );
		printf("意义: ");
		move_xy( winx / 3 + 2, 11 );
		printf( "  %s\n", explain );
	}
	restore_position();
}
Ejemplo n.º 5
0
void show_chinese(char *chinese,char *english)
{
	int i,l;
	if(chinese != NULL && english != NULL)
	{
		save_position();

		move_xy(7,win_y / 3 + 1);
		puts("单词:");
		
		move_xy(8,win_y / 3 + 1);
		printf("     %s\n",english);	
		
		move_xy(10,win_y / 3 + 1);
		puts("意义:");

		move_xy(11,win_y / 3 + 1);
		printf("     %s\n",chinese);

		restore_position();
	}
}
Ejemplo n.º 6
0
int show_left_words( char * prefix, char left_words[][MAX_WORDS_LEN] )
{
	save_position();

	bar( 2, 6, winx / 3 - 3, left_words_num, ' ' );
	int i;
	for( i=0; i<have_search_words_num; i++ ) {
		move_xy( 3, 6+i );
		left_words[i][winx/3-5-strlen(prefix)] = '\0';
		printf("%s%s", prefix, left_words[i] );
	}
	fflush( NULL );
	restore_position();
}
Ejemplo n.º 7
0
void vmouse_run(struct vmouse_state *ms)
{
	if(ms->mouse_mode) {
		if(ms->mc) {
			move_wheel(input_fd, ms->mx/24, ms->my/24);
		} else {
			move_xy(input_fd, ms->mx/8, ms->my/8);
		}
		if(ms->mx < 0)
			ms->mx = ms->mx*7/8 - 24;
		if(ms->mx > 0)
			ms->mx = ms->mx*7/8 + 24;
		if(ms->my < 0)
			ms->my = ms->my*7/8 - 24;
		if(ms->my > 0)
			ms->my = ms->my*7/8 + 24;
	}
}
Ejemplo n.º 8
0
void show_english(char *english)
{
	save_position();

	int i,j,k;
	
	for(i = 0;i < word_count;i++)
	{
		move_xy(6 + i,2);
		for(j = 0;english[j] != 0 && j < win_y / 3 - 3;j++)
			putchar(english[j]);
		for(k = 0;word[i][k] != 0 && j < win_y / 3 - 3;k++,j++)
			putchar(word[i][k]);
	}

	fflush(stdout);

	restore_position();
}	
Ejemplo n.º 9
0
int main(int argc,char *argv[],char *env[])
{
	pdict = dict_create();

	FILE *fp = fopen(FILE_NAME,"r");
	if(fp == NULL)
	{
		perror("fopen");
		return FAILED;
	}
	
	char english[1000];
	char chinese[1000];

	while(!feof(fp))
	{
		memset(english,0,sizeof(english));
		memset(chinese,0,sizeof(chinese));
		
		if(fgets(english,sizeof(english),fp) == NULL)
			break;
		*strchr(english,'\n') = 0;
		
		if(fgets(chinese,sizeof(chinese),fp) == NULL)
			break;
		*strchr(chinese,'\n') = 0;

		dict_insert(pdict,english,chinese);
	}

	signal(28,handle);

	show_window();
	move_xy(3,15);

	char key;
	while(1)
	{
		key = get_key();	
		switch(key)
		{
			case ESC:
				clear_screen();
				move_xy(1,1);
				return 0;
			case BACKSPACE:
				if(buf_i > 0)
				{
					move_left(1);
					putchar(' ');
					fflush(stdout);
					move_left(1);

					buf_i--;
					input_buf[buf_i] = 0;

					show_word(pdict,input_buf);
				}
				break;
			default:
			if(buf_i <= win_y - 20 && isprint(key))
			{
				putchar(key);
				fflush(stdout);

				input_buf[buf_i] = key;
				buf_i++;
				input_buf[buf_i] = 0;

				show_word(pdict,input_buf);
			}	
		}
	}

	return 0;
}
Ejemplo n.º 10
0
 void check_controller(rov_context_t *context)
 {
     JoystickEvent event;
     bool result = context->joystick->sample(&event);
     if(result && !event.isInitialState())
     {
         if(event.isAxis())
         {
             int value = event.value;
             switch(event.number)
             {
                 case 0: // The x axis
                 {
                     x = value;
                     move_xy(context, x, y);
                 } break;
                 case 1: // The y axis
                 {
                     y = value;
                     move_xy(context, x, y);
                 } break;
                 case 2: // The twist axis
                 {
                     rotate_z(context, value);
                 } break;
                 case 3: // The kull axis
                 {
                     move_z(context, value);
                 } break;
                 case 4: // Top x-axis
                 {
                     top_x = value;
                     balance(context, top_x, top_y);
                 } break;
                 case 5: // Top y-axis
                 {
                     top_y = value;
                     balance(context, top_x, top_y);
                 } break;
             }
         }
         else if(event.isButton())
         {
             if (event.value)
             {
                 switch(event.number)
                 {
                     case 0:
                     {
                         rov_interface::control_gripper(context, 20);
                     } break;
                     case 1:
                     {
                         rov_interface::control_gripper(context, 150);
                     } break;
                     case 2:
                     {
                         rov_interface::switch_camera(context, 3);
                     } break;
                     case 3:
                     {
                         rov_interface::switch_camera(context, 4);
                     } break;
                     case 4:
                     {
                         rov_interface::switch_camera(context, 8);
                     } break;
                     case 8:
                     {
                         valve_opener_pwm -= 16;
                     } break;
                     case 9:
                     {
                         valve_opener_pwm += 16;
                     } break;
                 }
             }
             if (event.number == 10)
             {
                 rov_interface::set_motor(context, VALVE_OPENER, event.value, false, valve_opener_pwm);
             }
             else if (event.number == 11)
             {
                 rov_interface::set_motor(context, VALVE_OPENER, false, event.value, valve_opener_pwm);
             }
         }
     }
 }
Ejemplo n.º 11
0
int main( int argc, char ** argv )
{
	g_dict_list_t gdl;
	init_g_dict_list( &gdl );

	printf("正在加载词库...\n");	
	FILE * fp = fopen( CIKU_FILENAME, "rb" );
	if( fp == NULL ) {
		perror("fopen");
		return 1;
	}

	char words_line[1024];
	char explain_line[1024];
	char * ret;
	char * p;

	int len = 0;
	while( !feof( fp ) ) {
		ret = fgets( words_line, sizeof(words_line), fp );
		if( ret == NULL )
			break;

		p = strchr(words_line, '\n');
		*p = '\0';
		len += strlen( words_line );
		ret = fgets( explain_line, sizeof(explain_line), fp );
		if( ret == NULL )
			break;

		p = strchr(explain_line, '\n');
		*p = '\0';
		insert_dict_glist( &gdl, words_line, explain_line ); 	
	}
	printf("cha liao %d ci.\n", gdl.node_num );
	
	printf("加载完毕.\n");
	//traversal_glist( gdl.first_level );
	printf("len = %d\n", len );
	//return 0;

	show_window();	

	char input_buf[ winy ];
	move_input_window();
	int key;
	int input_off = 0;

	left_words_num = winy - 6;
	char left_words[ left_words_num ][MAX_WORDS_LEN];
	char * explain;

	insert_dict_glist( &gdl, "shit", "些特" );

	while( 1 ) {
		key = get_key( 0 );		
		switch( key ) {
			case BACKSPACE:
				if( input_off > 0 ) {
					move_left( 1 );
					putchar( ' ' );
					move_left( 1 );
					input_off --;

					input_buf[ input_off ] = '\0';
					bzero( left_words, sizeof(left_words) );

					search_words( &gdl, input_buf, left_words, &explain );

					show_left_words( input_buf, left_words );
					show_explain( input_buf, explain );
					fflush( NULL );
				}
				break;
			case ESC:
				clear_screen();
				move_xy( 1, 1 );
				exit( 0 );
				break;	
			default:
				if( input_off < winx - 20 ) {
					if( isprint( key ) ) 
						putchar( key );

					input_buf[ input_off ++ ] = key;

					input_buf[ input_off ] = '\0';
					bzero( left_words, sizeof(left_words) );
					search_words( &gdl, input_buf, left_words, &explain );

					show_left_words( input_buf, left_words );
					show_explain( input_buf, explain );
					fflush( NULL );
				}
		}
	}
		
	return 0;
}
Ejemplo n.º 12
0
int move_input_window( void )
{
	move_xy( 15, 3  );
}