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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rguiproc.c

?? 十七種模擬器源代碼 非常有用的作課程設(shè)計不可缺少的
?? C
?? 第 1 頁 / 共 3 頁
字號:
// user to scroll through the list and to select items list by clicking// on them, and if it has the input focus also by using the arrow keys. If // the D_EXIT flag is set, double clicking on a list item will cause it to // close the dialog. The index of the selected item is held in the d1 // field, and d2 is used to store how far it has scrolled through the list.//// + MSG_DRAW is changed// + MSG_KEY/MSG_DCLICK are changed, so the list function is able to act upon//   the selection// + MSG_CHAR is changed, so the list function can use key shortcuts for//   selecting positionint d_raine_list_proc(int msg, DIALOG *d, int c){  int last_d1,ret; //ta   last_d1 = d->d1;   ret = D_O_K;   switch(msg){      case MSG_DRAW:         _draw_raine_listbox(d);      break;      case MSG_DCLICK:      case MSG_KEY:         ret = d_list_proc(msg,d,c);	 (*(getfuncptr)d->dp)(-2, &ret);      break;      case MSG_XCHAR:      case MSG_CHAR:         ret = d_list_proc(msg,d,c);         if(ret != D_USED_CHAR){		// If base routine didn't use the key...         ret = c;	 (*(getfuncptr)d->dp)(-3, &ret);         if(ret == D_USED_CHAR){	    scare_mouse();	    SEND_MESSAGE(d, MSG_DRAW, 0);	    unscare_mouse();            ret = D_USED_CHAR;         }         else{            ret = D_O_K;         }         }      break;      default:         ret = d_list_proc(msg,d,c);      break;   }   // Act on change of d1   if(last_d1 != d->d1){      last_d1 = d->d1;      (*(getfuncptr)d->dp)(-4, &last_d1);   }   return ret;}/* _draw_textbox: *  Helper function to draw a textbox object. */void _draw_raine_textbox(char *thetext, int *listsize, int draw, int offset,		   int wword, int tabsize, int x, int y, int w, int h,		   int disabled, int fore, int deselect, int disable){   int fg = fore;   int y1 = y+4;   int x1;   int len;   int ww = w-4;   char s[16];   char text[16];   char space[16];   char *printed = text;   char *scanned = text;   char *oldscan = text;   char *ignore = NULL;   char *tmp, *ptmp;   int width;   int line = 0;   int i = 0;   usetc(s+usetc(s, '.'), 0);   usetc(text+usetc(text, ' '), 0);   usetc(space+usetc(space, ' '), 0);   /* find the correct text */   if (thetext != NULL) {      printed = thetext;      scanned = thetext;   }   /* do some drawing setup */   if (draw) {      /* initial start blanking at the top */      rectfill(screen, x+2, y+2, x+w-1, y1-1, deselect);   }   /* choose the text color */   if (disabled)       fg = disable;   text_mode(deselect);   /* loop over the entire string */   while (1) {      width = 0;      /* find the next break */      while (ugetc(scanned)) {	 /* check for a forced break */	 if (ugetc(scanned) == '\n') {	    scanned += uwidth(scanned);	    /* we are done parsing the line end */	    break;	 }	 /* the next character length */	 usetc(s+usetc(s, ugetc(scanned)), 0);	 len = text_length(gui_fixed_font, s);	 /* modify length if its a tab */	 if (ugetc(s) == '\t') 	    len = tabsize * text_length(gui_fixed_font, space);	 /* check for the end of a line by excess width of next char */	 if (width+len >= ww) {	    /* we have reached end of line do we go back to find start */	    if (wword) {	       /* remember where we were */	       oldscan = scanned;	       /* go backwards looking for start of word */	       while (!uisspace(ugetc(scanned))) {		  /* don't wrap too far */		  if (scanned == printed) {		     /* the whole line is filled, so stop here */		     scanned = oldscan;		     break;		  }		  /* look further backwards to wrap */		  tmp = ptmp = printed;		  while (tmp < scanned) {		     ptmp = tmp;		     tmp += uwidth(tmp);		  }		  scanned = ptmp;	       }	       /* put the space at the end of the line */	       ignore = scanned;	       scanned += uwidth(scanned);	       /* check for endline at the convenient place */	       if (ugetc(scanned) == '\n') 		  scanned += uwidth(scanned);	    }	    /* we are done parsing the line end */	    break;	 }	 /* the character can be added */	 scanned += uwidth(scanned);	 width += len;      }      /* check if we are to print it */      if ((draw) && (line >= offset) && (y1+text_height(gui_fixed_font) < (y+h-1))) {	 x1 = x+4;	 /* the initial blank bit */	 rectfill(screen, x+2, y1, x1-1, y1+text_height(gui_fixed_font), deselect);	 /* print up to the marked character */	 while (printed != scanned) {	    /* do special stuff for each charater */	    switch (ugetc(printed)) {	       case '\r':	       case '\n':		  /* don't print endlines in the text */		  break;	       /* possibly expand the tabs */	       case '\t':		  for (i=0; i<tabsize; i++) {		     usetc(s+usetc(s, ' '), 0);		     textout(screen, gui_fixed_font, s, x1, y1, fg);		     x1 += text_length(gui_fixed_font, s);		  }		  break;	       /* print a normal charater */	       default:		  if (printed != ignore) {		     usetc(s+usetc(s, ugetc(printed)), 0);		     textout(screen, gui_fixed_font, s, x1, y1, fg);		     x1 += text_length(gui_fixed_font, s);		  }	    }	    /* goto the next character */	    printed += uwidth(printed);	 }	 /* the last blank bit */	 if (x1 < x+w-1) 	    rectfill(screen, x1, y1, x+w-1, y1+text_height(gui_fixed_font)-1, deselect);	 /* print the line end */	 y1 += text_height(gui_fixed_font);      }      printed = scanned;      /* we have done a line */      line++;      /* check if we are at the end of the string */      if (!ugetc(printed)) {	 /* the under blank bit */	 if (draw) 	    rectfill(screen, x+1, y1, x+w-1, y+h-1, deselect);	 /* tell how many lines we found */	 *listsize = line;	 return;      }   }}int d_raine_textbox_proc(int msg, DIALOG *d, int c){   int height, bar, ret = D_O_K;   //int start, top, bottom,l;   //int used;   int fg_color = (d->flags & D_DISABLED) ? CGUI_BOX_COL_MIDDLE : translate_color(d->fg);   /* calculate the actual height */   height = (d->h-4) / text_height(gui_fixed_font);   switch (msg) {      case MSG_START:	 /* measure how many lines of text we contain */	 _draw_raine_textbox(d->dp, &d->d1, 		       0, /* DONT DRAW anything */		       d->d2, !(d->flags & D_SELECTED), 8,		       d->x, d->y, d->w, d->h,		       (d->flags & D_DISABLED),		       0, 0, 0);      break;      case MSG_DRAW:	 /* tell the object to sort of draw, but only calculate the listsize */	 _draw_raine_textbox(d->dp, &d->d1, 		       0, /* DONT DRAW anything */		       d->d2, !(d->flags & D_SELECTED), 8,		       d->x, d->y, d->w, d->h,		       (d->flags & D_DISABLED),		       0, 0, 0);	 if (d->d1 > height) {	    bar = 12;	 }	 else {	    bar = 0;	    d->d2 = 0;	 }	 /* now do the actual drawing */	 _draw_raine_textbox(d->dp, &d->d1, 1, d->d2,		       !(d->flags & D_SELECTED), 8,		       d->x, d->y, d->w-bar-1, d->h,		       (d->flags & D_DISABLED),		       fg_color, translate_color(d->bg), gui_mg_color);	 /* draw the frame around */	 _draw_raine_scrollable_frame(d, d->d1, d->d2, height, fg_color);      break;      default:         ret = d_textbox_proc(msg,d,c);      break;   }   return ret;}/* x_text_proc: *  Text proc, but with translation file support. */int x_text_proc(int msg, DIALOG *d, int c){   if (msg==MSG_DRAW) {      int fg = (d->flags & D_DISABLED) ? CGUI_BOX_COL_MIDDLE : translate_color(d->fg);      FONT *oldfont = font;      if (d->dp2)	 font = d->dp2;      text_mode(CGUI_BOX_COL_MIDDLE);      gui_textout(screen, raine_translate_text(d->dp), d->x, d->y, fg, FALSE);      font = oldfont;   }   return D_O_K;}/* x_ctext_proc: *  Simple dialog procedure: draws the text string which is pointed to by dp, *  centering it around the object's x coordinate. * Add translation of text and color for raine */int x_ctext_proc(int msg, DIALOG *d, int c){   if (msg==MSG_DRAW) {      int rtm;      int fg = (d->flags & D_DISABLED) ? gui_mg_color : translate_color(d->fg);      FONT *oldfont = font;      if (d->dp2)	 font = d->dp2;      rtm = text_mode(translate_color(d->bg));      gui_textout(screen, raine_translate_text(d->dp), d->x, d->y, fg, TRUE);      text_mode(rtm);      font = oldfont;   }   return D_O_K;}int d_progress_proc(int msg, DIALOG *d, int c){   if (msg==MSG_DRAW)   {      int i, bg, fg;      bg = CGUI_BOX_COL_LOW_2;      fg = CGUI_BOX_COL_HIGH_2;      if(!d->d2)         d->d2 = 100;      if(d->d1 > d->d2)         d->d1 = d->d2;      i = ((d->d1 * d->w) / d->d2);      if(i < d->w)         rectfill(screen, d->x + i, d->y, d->x + d->w - i, d->y + d->h, bg );      if(i > 0)         rectfill(screen, d->x, d->y, d->x + i, d->y + d->h, fg );   }   return D_O_K;}char *raine_translate_text(char *src){   char *result;   #if 0   char add_string[256];   for(ta=0;ta<=strlen(src);ta++){      if(src[ta]==' ')         add_string[ta]='_';      else         add_string[ta]=src[ta];   }   result = raine_get_config_text(src);   raine_set_config_string("incoming", add_string, result);   return result;   #else   result = raine_get_config_text(src);   return result;   #endif}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩三级一区二区| 成人美女在线观看| 成人性生交大片免费| 欧美性猛交xxxxxx富婆| 亚洲乱码中文字幕| 欧美亚洲国产一卡| 日本欧美一区二区在线观看| 日韩欧美在线1卡| 国产美女一区二区三区| 国产精品国产三级国产有无不卡 | 欧美成va人片在线观看| 国产一区二区精品久久| 亚洲天堂2014| 国产精品白丝av| 国产美女精品在线| 一区二区三区在线视频观看58| 在线亚洲高清视频| 麻豆精品一区二区综合av| 久久久国产综合精品女国产盗摄| 99精品国产热久久91蜜凸| 丝袜亚洲另类欧美综合| 国产日韩三级在线| 在线观看亚洲专区| 国产又粗又猛又爽又黄91精品| 亚洲欧美视频在线观看| 日韩欧美电影一区| 一本色道久久综合狠狠躁的推荐| 美女精品自拍一二三四| 自拍偷拍欧美精品| 日韩午夜激情av| 色欲综合视频天天天| 久久机这里只有精品| 一区二区三区四区不卡在线| 精品久久久网站| 欧美日韩免费一区二区三区视频| 国产成a人亚洲精品| 国产日韩欧美不卡| 在线精品视频免费播放| 国内精品久久久久影院色| 综合精品久久久| 久久香蕉国产线看观看99| 欧美性高清videossexo| 国产馆精品极品| 麻豆高清免费国产一区| 亚洲高清视频中文字幕| 自拍偷拍国产精品| 国产日韩综合av| 精品日韩av一区二区| 欧美日韩在线精品一区二区三区激情| 国产精品白丝av| 看片网站欧美日韩| 日本欧美大码aⅴ在线播放| 一区二区三区成人| 国产午夜精品一区二区三区嫩草| 欧美一级理论片| 欧美日韩在线免费视频| 一本大道久久精品懂色aⅴ| 国产一区二区三区免费播放| 亚洲精品免费在线观看| 国产精品久久久久久久久免费樱桃| 欧美成人免费网站| 欧美一区二区三区免费观看视频 | 欧美日韩成人一区| 色成人在线视频| 9色porny自拍视频一区二区| 国产精品一区二区三区99| 极品美女销魂一区二区三区| 日韩成人dvd| 午夜精品一区在线观看| 日韩精品电影一区亚洲| 亚洲一线二线三线视频| 伊人色综合久久天天人手人婷| 国产精品乱码久久久久久| 国产日产精品1区| 中文字幕国产精品一区二区| 国产色综合久久| 欧美激情资源网| 国产精品免费视频网站| 亚洲欧洲日韩女同| 亚洲欧美日韩国产综合| 亚洲综合图片区| 午夜精品福利在线| 免费观看30秒视频久久| 国产乱码精品一区二区三| 高清国产一区二区三区| 成人av电影观看| 色天使色偷偷av一区二区| 欧美日韩在线播放| 日韩欧美专区在线| 久久精品一区二区三区不卡| 国产欧美综合色| 成人免费一区二区三区在线观看 | 亚洲成人激情自拍| 蜜臀久久久久久久| 国产一区二区在线观看免费| 成人综合激情网| 欧美色综合久久| 欧美一级精品大片| 中文字幕乱码亚洲精品一区| 一区二区三区色| 久久国产欧美日韩精品| 成人激情校园春色| 欧美视频在线观看一区二区| 欧美v国产在线一区二区三区| 欧美激情一区三区| 亚洲成人av中文| 国产精品一卡二卡| 一本大道av伊人久久综合| 日韩免费观看2025年上映的电影| 国产日韩欧美制服另类| 一区二区三区高清不卡| 国产综合色精品一区二区三区| 成人福利视频在线| 91精品国产综合久久香蕉的特点 | 中文字幕av一区 二区| 亚洲午夜国产一区99re久久| 麻豆91免费观看| 91亚洲精品一区二区乱码| 91精品国产一区二区三区香蕉| 日本一区二区动态图| 天使萌一区二区三区免费观看| 国产高清亚洲一区| 在线播放欧美女士性生活| 国产精品理论在线观看| 日韩精彩视频在线观看| 99久久久国产精品| 精品日韩一区二区| 亚洲va国产va欧美va观看| 99麻豆久久久国产精品免费优播| 日韩一区二区精品在线观看| 亚洲黄色片在线观看| 国产呦萝稀缺另类资源| 欧美一区二区三区视频免费| 亚洲色图清纯唯美| 成人做爰69片免费看网站| 日韩欧美亚洲另类制服综合在线| 亚洲精品v日韩精品| 成人在线综合网| www国产亚洲精品久久麻豆| 亚洲va国产天堂va久久en| 91年精品国产| 国产精品卡一卡二| 国产成人免费视频一区| 欧美不卡在线视频| 美日韩黄色大片| 欧美精品乱码久久久久久| 亚洲精品中文字幕乱码三区| 成人18精品视频| 国产精品亲子乱子伦xxxx裸| 国内成+人亚洲+欧美+综合在线| 欧美日韩精品久久久| 亚洲午夜久久久| 在线精品视频小说1| 一区二区三区日韩欧美精品| 成人高清免费观看| 国产精品的网站| 国产成a人亚洲精品| 久久午夜电影网| 国产在线一区观看| 久久精品免费在线观看| 狠狠色丁香婷综合久久| 久久综合色8888| 国产一区二区三区久久悠悠色av| 精品少妇一区二区三区视频免付费 | 国产精品美女一区二区| 国产毛片精品一区| 国产亚洲一本大道中文在线| 国产精品亚洲第一区在线暖暖韩国| 精品对白一区国产伦| 国产一本一道久久香蕉| 中文一区二区完整视频在线观看| 懂色av一区二区在线播放| 国产精品久久久久久久久果冻传媒| 成人中文字幕在线| 最新久久zyz资源站| 色老汉一区二区三区| 亚洲成人免费在线| 欧美成人乱码一区二区三区| 国产精品原创巨作av| 国产精品欧美综合在线| 日本韩国一区二区| 亚洲成人精品影院| 欧美精品一区视频| 成人久久久精品乱码一区二区三区| 亚洲视频免费观看| 欧美久久婷婷综合色| 六月丁香综合在线视频| 国产丝袜在线精品| 日本道色综合久久| 日本中文字幕一区二区视频 | 欧美一区二区三区四区高清| 精一区二区三区| 国产精品色一区二区三区| 日本久久一区二区三区| 热久久久久久久| 欧美韩国一区二区| 欧美狂野另类xxxxoooo| 国产一区二三区| 亚洲第一在线综合网站| 久久久久久久久久电影|