亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cfgkeys.c

?? 《c語言高級實例解析》光盤所附源代碼
?? C
字號:


#include <conio.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "tdecfg.h"
#include "cfgkeys.h"

extern struct vcfg cfg;
extern FILE *tde_exe;                  
extern long keys_offset;

static WINDOW *w_ptr;







void tdekeys( void )
{
HELP_WINDOW hw;
char t[80];
int  ch;
int  i;

   w_ptr = NULL;
   hw.dply_col = 2;
   hw.dply_row = 3;
   hw.line_length = 69;
   hw.avail_lines = 12;
   hw.v_row = 0;
   hw.select = 0;
   hw.num_entries = AVAIL_KEYS;
   hw.ulft_col = 3;
   hw.ulft_row = 2;
   hw.total_col = 73;
   hw.total_row = 21;

   initialize_keys( );
   master_help( &hw, key_defs, key_head, t, &ch );
   if (ch == F10) {
      for (i=0; i<hw.num_entries; i++)
         key_func.key[key_defs[i].key_index]  = key_defs[i].func_index;
      fseek( tde_exe, keys_offset, SEEK_SET );
      fwrite( (void *)&key_func, sizeof(KEY_FUNC), 1, tde_exe );
   }
   cls( );
}



void initialize_keys( void )
{
int i;

   fseek( tde_exe, keys_offset, SEEK_SET );
   fread( (void *)&key_func, sizeof(KEY_FUNC), 1, tde_exe );
   for (i=0; i<AVAIL_KEYS; i++)
      key_defs[i].func_index = key_func.key[key_defs[i].key_index];
}


void show_key_def_list( HELP_WINDOW *hw, KEY_DEFS *keys )
{
int row, col, i, j;

   col = hw->ulft_col + hw->dply_col;
   row = hw->ulft_row + hw->dply_row;
   scroll_window( 0, row, col, row+hw->avail_lines-1, col+hw->line_length,
                  NORMAL );
   i = 0;
   j = hw->select - hw->v_row;
   for (; i < hw->avail_lines && j<hw->num_entries; ++i, j++, row++) {
      s_output( keys[j].key, row, col, NORMAL );
      s_output( avail_func[keys[j].func_index], row, col+31, NORMAL );
   }
}



void show_func_list( HELP_WINDOW *hw, char *func[] )
{
int row, col, i, j;

   col = hw->ulft_col + hw->dply_col;
   row = hw->ulft_row + hw->dply_row;
   scroll_window( 0, row, col, row+hw->avail_lines-1, col+hw->line_length,
                  NORMAL );
   i = 0;
   j = hw->select - hw->v_row;
   for (; i < hw->avail_lines && j<hw->num_entries; ++i, j++, row++)
      s_output( func[j], row, col, NORMAL );
}



void position_cursor( HELP_WINDOW *hw, int len, int *un, int *cc, int *ch )
{
int col, row, y, yy;

   col = hw->ulft_col + hw->dply_col;
   row = hw->ulft_row + hw->dply_row + hw->v_row;
   y  = hw->ulft_row + hw->dply_row;
   yy = hw->ulft_row + hw->dply_row + hw->avail_lines - 1;
   *un = FALSE;
   switch (*ch) {
      case UP    :
         if (hw->v_row > 0 && hw->select > 0) {
            hlight_line( col, row, len, NORMAL );
            --hw->v_row;
            --hw->select;
            *cc = TRUE;
         } else if (hw->v_row == 0 && hw->select > 0) {
            hlight_line( col, row, len, NORMAL );
            --hw->select;
            scroll_window( -1, y, col, yy+1, col+hw->line_length, NORMAL );
            *un = TRUE;
            *cc = TRUE;
         }
         break;
      case DOWN :
         if (hw->v_row < hw->avail_lines-1 &&
                                      hw->select < hw->num_entries-1) {
            hlight_line( col, row, len, NORMAL );
            ++hw->v_row;
            ++hw->select;
            *cc = TRUE;
         } else if (hw->v_row == hw->avail_lines-1 &&
                                      hw->select < hw->num_entries-1) {
            hlight_line( col, row, len, NORMAL );
            ++hw->select;
            scroll_window( 1, y, col, yy, col+hw->line_length, NORMAL );
            *un = TRUE;
            *cc = TRUE;
         } else if (hw->select == hw->num_entries - 1 && hw->v_row > 0) {
            --hw->v_row;
            scroll_window(1, y, col, yy, col+hw->line_length, NORMAL );
         }
         break;
   }
}



void master_help( HELP_WINDOW *hw, KEY_DEFS *help, struct screen *help_heading,
                  char *t, int *ch )
{
FILE *fp;               
int col, row, i, j;
int update_name, change_color, draw_page;
char str[80];
char *blank = "                                                 ";
char temp[20];
HELP_WINDOW hw_k;

   xygoto( -1, -1 );
   save_and_draw( hw, help_heading, &w_ptr );
   show_key_def_list( hw, help );

   col = hw->ulft_col + hw->dply_col;
   row = hw->ulft_row + hw->dply_row + hw->v_row;
   change_color = TRUE;
   *ch = 0;
   while (*ch!=F3 && *ch != F10 && *ch!=ESC) {
      draw_page = FALSE;
      position_cursor( hw, hw->line_length, &update_name, &change_color, ch );
      switch (*ch) {
         case PGUP :
            if (hw->select > hw->avail_lines-1) {
               hw->select = hw->select - hw->avail_lines;
               if (hw->v_row > hw->select)
                  hw->select = hw->v_row;
               draw_page = TRUE;
            } else if (hw->select - hw->v_row > 0) {
               hw->select = hw->v_row;
               draw_page = TRUE;
            }
            break;
         case PGDN :
            if (hw->select + hw->avail_lines < hw->num_entries) {
               hw->select = hw->select + hw->avail_lines;
               draw_page = TRUE;
            } else if (hw->select + hw->avail_lines - hw->v_row <
                                                         hw->num_entries) {
               hw->select = hw->num_entries - 1;
               draw_page = TRUE;
            }
            if ((hw->num_entries - 1) - hw->select <
                                              hw->avail_lines && draw_page) {
               i = row - hw->v_row;
               scroll_window( 0, i, col, i+hw->avail_lines-1,
                              col+hw->line_length, NORMAL );
            }
            break;
         case F5 :
            hw_k.dply_col = 2;
            hw_k.dply_row = 3;
            hw_k.line_length = 33;
            hw_k.avail_lines = 6;
            hw_k.v_row = 0;
            hw_k.select = 0;
            hw_k.num_entries = NUM_FUNC;
            hw_k.ulft_col = 20;
            hw_k.ulft_row = row + 1;
            if (hw_k.ulft_row > 12)
               hw_k.ulft_row = row - 12;
            hw_k.total_col = 37;
            hw_k.total_row = 12;
            new_assignment_help( &hw_k, avail_func, func_head, ch );
            if (*ch == RTURN) {
               help[hw->select].key[0] = '*';
               help[hw->select].func_index = (unsigned char)hw_k.select;
               s_output( help[hw->select].key, row, col, cfg.attr );
               s_output( "                     ", row, col+31, cfg.attr );
               s_output( avail_func[help[hw->select].func_index],
                         row, col+31, cfg.attr );
               *ch = 0;
            }
            break;
         case F7 :
            hw_k.ulft_col = 14;
            hw_k.ulft_row = 10;
            hw_k.total_col = 52;
            hw_k.total_row = 5;
            save_and_draw( &hw_k, file_head, &w_ptr );
            xygoto( hw_k.ulft_col+28, hw_k.ulft_row+2 );
            gets( str );
            j = TRUE;
            if ((i = access( str, EXIST )) == 0) {
               s_output( blank, hw_k.ulft_row+2, hw_k.ulft_col+1, NORMAL );
               s_output( "OK to overwrite exiting file (y/n)?",
                          hw_k.ulft_row+2, hw_k.ulft_col+1, NORMAL );
               xygoto( hw_k.ulft_col+38, hw_k.ulft_row+2 );
               i = getkey( );
               while (i != 'Y' && i != 'y' && i != 'N' && i != 'n')
                  i = getkey( );
               if (i == 'n' || i == 'N')
                  j = FALSE;
            }
            xygoto( -1, -1 );
            if (j == TRUE && (fp = fopen( str, "w" )) != NULL) {
               for (i=0; i<hw->num_entries && j; i++) {
                  fprintf( fp, " %22s  = ", help[i].key+3 );
                  fprintf( fp, "  %s\n",  avail_func[help[i].func_index] );
               }
               fclose( fp );
            } else {
               s_output( blank, hw_k.ulft_row+2, hw_k.ulft_col+1, NORMAL );
               s_output( "Cannot open file.  Press any key to contine.",
                          hw_k.ulft_row+2, hw_k.ulft_col+1, NORMAL );
               j = getkey( );
            }
            window_control( &w_ptr, RESTORE, hw_k.ulft_col, hw_k.ulft_row,
                            hw_k.total_col, hw_k.total_row );
            break;
         case F8 :
            if ((fp = fopen( "PRN", "a" )) != NULL) {
               hw_k.ulft_col = 20;
               hw_k.ulft_row = 10;
               hw_k.total_col = 42;
               hw_k.total_row = 5;
               save_and_draw( &hw_k, print_head, &w_ptr );
               j = TRUE;
               for (i=0; i<hw->num_entries && j; i++) {
                  itoa( i+1, temp, 10 );
                  s_output( temp, hw_k.ulft_row+2, hw_k.ulft_col+16, NORMAL );
                  fprintf( fp, " %22s  = ", help[i].key+3 );
                  fprintf( fp, "  %s\n",  avail_func[help[i].func_index] );
                  if (kbhit()) {
                     j = getkey( );
                     if (j == ESC)
                        j = FALSE;
                     else
                        j = TRUE;
                  }
               }
               fprintf( fp, "\f" );
               fclose( fp );
               window_control( &w_ptr, RESTORE, hw_k.ulft_col, hw_k.ulft_row,
                               hw_k.total_col, hw_k.total_row );
            }
            break;
      }
      if (draw_page == TRUE) {
         show_key_def_list( hw, help );
         update_name = TRUE;
         change_color = TRUE;
      }
      row = hw->ulft_row + hw->dply_row + hw->v_row;
      if (update_name) {
         s_output( help[hw->select].key, row, col, NORMAL );
         s_output( avail_func[help[hw->select].func_index], row, col+31,
                      NORMAL );
      }
      if (change_color)
         hlight_line( col, row, hw->line_length, cfg.attr );
      *ch = getkey( );
      change_color = FALSE;
   }
   window_control( &w_ptr, RESTORE, hw->ulft_col, hw->ulft_row,
                   hw->total_col, hw->total_row );
}



void new_assignment_help( HELP_WINDOW *hw, char *help[],
                          struct screen *help_heading, int *ch )
{
int col, row, i;
int update_name, change_color, draw_page;

   save_and_draw( hw, help_heading, &w_ptr );
   show_func_list( hw, help );

   col = hw->ulft_col + hw->dply_col;
   row = hw->ulft_row + hw->dply_row + hw->v_row;
   change_color = TRUE;
   *ch = 0;
   while (*ch!=RTURN && *ch!=ESC) {
      draw_page = FALSE;
      position_cursor( hw, hw->line_length, &update_name, &change_color, ch );
      switch (*ch) {
         case PGUP :
            if (hw->select > hw->avail_lines-1) {
               hw->select = hw->select - hw->avail_lines;
               if (hw->v_row > hw->select)
                  hw->select = hw->v_row;
               draw_page = TRUE;
            } else if (hw->select - hw->v_row > 0) {
               hw->select = hw->v_row;
               draw_page = TRUE;
            }
            break;
         case PGDN :
            if (hw->select + hw->avail_lines < hw->num_entries) {
               hw->select = hw->select + hw->avail_lines;
               draw_page = TRUE;
            } else if (hw->select + hw->avail_lines - hw->v_row <
                                                         hw->num_entries) {
               hw->select = hw->num_entries - 1;
               draw_page = TRUE;
            }
            if ((hw->num_entries - 1) - hw->select <
                                              hw->avail_lines && draw_page) {
               i = row - hw->v_row;
               scroll_window( 0, i, col, i+hw->avail_lines-1,
                              col+hw->line_length, NORMAL );
            }
            break;
      }
      if (draw_page == TRUE) {
         show_func_list( hw, help );
         update_name = TRUE;
         change_color = TRUE;
      }
      row = hw->ulft_row + hw->dply_row + hw->v_row;
      if (update_name)
         s_output( help[hw->select], row, col, NORMAL );
      if (change_color)
         hlight_line( col, row, hw->line_length, cfg.attr );
      *ch = getkey( );
      change_color = FALSE;
   }
   window_control( &w_ptr, RESTORE, hw->ulft_col, hw->ulft_row,
                   hw->total_col, hw->total_row );
   if (*ch != RTURN)
      *ch = 0;
}



void save_and_draw( HELP_WINDOW *hw, struct screen *help_heading,
                    WINDOW **w_ptr )
{
   window_control( w_ptr, SAVE, hw->ulft_col, hw->ulft_row,
                   hw->total_col, hw->total_row );
   make_window( hw->ulft_col, hw->ulft_row, hw->total_col, hw->total_row,
                NORMAL );
   show_box( hw->ulft_col, hw->ulft_row, help_heading, NORMAL );
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产片| 国产精品一区二区三区网站| 一本久久a久久精品亚洲| 国产日韩亚洲欧美综合| 国产精品一区二区久久不卡| 久久久www成人免费毛片麻豆| 欧美日韩精品高清| 青青国产91久久久久久| 欧美xxx久久| 成人综合在线视频| 亚洲精品水蜜桃| 在线综合视频播放| 国产精品911| 一区二区三区在线视频观看 | 欧美日韩亚洲综合在线 | 国产校园另类小说区| 成人av网站大全| 亚洲欧美日本韩国| 欧美一区二区成人| 国产东北露脸精品视频| 亚洲乱码国产乱码精品精的特点| 欧美精品国产精品| 国产99久久久国产精品免费看| 亚洲精品中文在线影院| 日韩免费看网站| 成人av集中营| 日韩成人午夜电影| 亚洲欧美中日韩| 日韩丝袜情趣美女图片| 粉嫩高潮美女一区二区三区| 亚洲一区二区在线视频| 欧美成人一区二区三区片免费| 99久久精品费精品国产一区二区| 日韩成人免费电影| 亚洲视频一区在线观看| 26uuu久久天堂性欧美| 色偷偷88欧美精品久久久| 日本中文一区二区三区| 亚洲欧洲日产国码二区| 精品奇米国产一区二区三区| 色狠狠桃花综合| 成人精品国产一区二区4080| 免费日韩伦理电影| 亚洲丝袜制服诱惑| 欧美精品一区二区蜜臀亚洲| 欧美自拍丝袜亚洲| 成人开心网精品视频| 蜜桃久久久久久| 一区二区日韩av| 欧美国产欧美综合| 2019国产精品| 欧美一级在线观看| 欧美日韩中文字幕精品| 成人av资源网站| 国产成人av网站| 久草中文综合在线| 日韩电影在线观看电影| 亚洲一区在线免费观看| 亚洲免费在线电影| 国产精品传媒视频| 国产片一区二区三区| 久久综合九色综合欧美就去吻| 911精品国产一区二区在线| 色综合久久久久久久久| 成人av中文字幕| 成人精品免费看| 波多野结衣一区二区三区| 狠狠色狠狠色综合系列| 久久精品国产久精国产| 日韩不卡一区二区| 日本亚洲免费观看| 奇米在线7777在线精品| 午夜精品久久久久久久99樱桃 | 中文字幕一区在线观看视频| 久久精品日韩一区二区三区| 久久夜色精品一区| 久久精品日产第一区二区三区高清版| xnxx国产精品| 国产午夜精品一区二区三区嫩草 | 亚洲欧美综合色| 亚洲视频你懂的| 依依成人精品视频| 亚洲综合色噜噜狠狠| 亚洲成人资源在线| 日本美女一区二区三区视频| 蜜桃av一区二区| 国产最新精品免费| 高清在线不卡av| 日本电影亚洲天堂一区| 欧美三级电影一区| 欧美一区二视频| 久久久精品免费免费| 国产精品丝袜黑色高跟| 亚洲毛片av在线| 丝袜诱惑制服诱惑色一区在线观看 | 国产日韩高清在线| 国产精品久久久久久久久图文区 | 欧美高清性hdvideosex| 日韩欧美亚洲一区二区| 久久久美女毛片| 亚洲色图在线播放| 日产国产高清一区二区三区| 国产乱码精品一品二品| www.欧美.com| 欧美高清激情brazzers| 久久亚洲捆绑美女| 亚洲品质自拍视频| 五月天亚洲精品| 国产尤物一区二区在线| 91麻豆自制传媒国产之光| 欧美电影在哪看比较好| 久久久99精品免费观看| 一片黄亚洲嫩模| 美女视频免费一区| 91日韩一区二区三区| 日韩一区二区免费高清| 国产精品久久久久一区二区三区| 亚洲一区二区在线视频| 国产精品99久| 欧美人动与zoxxxx乱| 国产日韩精品一区| 日本伊人色综合网| 不卡视频一二三四| 6080yy午夜一二三区久久| 国产精品久线在线观看| 蜜桃精品视频在线观看| 99精品在线观看视频| 欧美成人国产一区二区| 亚洲一区二区三区自拍| 国产成人午夜电影网| 欧美精品粉嫩高潮一区二区| 亚洲色图一区二区三区| 国产尤物一区二区在线| 6080亚洲精品一区二区| 亚洲精品老司机| 国产成人av影院| 精品久久久久av影院| 亚洲国产精品久久人人爱| 北岛玲一区二区三区四区| 精品剧情在线观看| 午夜精品aaa| 色婷婷激情一区二区三区| 中文字幕欧美区| 国产一区二区三区av电影| 91麻豆精品国产无毒不卡在线观看| 亚洲日本成人在线观看| 成人高清视频在线观看| 精品国产sm最大网站免费看| 日韩av一区二区在线影视| 欧美亚一区二区| 亚洲精品福利视频网站| 91在线云播放| 中文字幕一区二区三区乱码在线| 国产精品一区二区无线| 久久综合色婷婷| 激情五月激情综合网| 日韩一区二区免费视频| 免费观看91视频大全| 日韩一级大片在线观看| 日韩精品成人一区二区在线| 欧美日韩一二区| 日韩精品久久理论片| 欧美一卡2卡3卡4卡| 日本不卡免费在线视频| 欧美一区二区三区免费大片| 日本午夜精品视频在线观看| 91精品国产91综合久久蜜臀| 日韩avvvv在线播放| 日韩欧美的一区二区| 美女一区二区在线观看| 欧美大尺度电影在线| 国产综合久久久久影院| 欧美精品一区二区三区蜜桃| 国产一区二区三区最好精华液| 久久日韩精品一区二区五区| 国产一区二区三区免费观看| 久久精品欧美日韩精品| 国产精品1区2区3区| 国产精品视频你懂的| av在线综合网| 亚洲大片在线观看| 欧美一区二区黄色| 国产精品18久久久久久久久久久久 | 亚洲天堂精品视频| 欧美性猛交一区二区三区精品| 亚洲成人一区二区在线观看| 日韩午夜激情视频| 岛国精品在线观看| 亚洲美女免费视频| 欧美一二三在线| 福利电影一区二区三区| 亚洲男同1069视频| 制服丝袜av成人在线看| 狠狠狠色丁香婷婷综合激情| 亚洲欧美综合在线精品| 91精品在线观看入口| 高清不卡一区二区| 丝袜诱惑亚洲看片| 久久人人爽爽爽人久久久| 日本韩国一区二区三区|