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

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

?? rguiproc.c

?? 十七種模擬器源代碼 非常有用的作課程設計不可缺少的
?? C
?? 第 1 頁 / 共 3 頁
字號:
/******************************************************************************//*                                                                            *//*                              R-GUI: RAINE GUI                              *//*                                                                            *//******************************************************************************/#include "raine.h"#include "rgui.h"#include "rguiproc.h"#include "gui.h" // color conversion for the gui#include "palette.h" // GET_PEN.../*Todo:- Anything/everything/something... some day maybe... boring...*/#define SLOW_DRAG			// Don't buffer window when moving it, slow// typedef for the listbox callback functionstypedef char *(*getfuncptr)(int, int *);static int translate_color(int x) {  int Cx=0; // Translated color  SET_PAL(x);  return Cx;}static DEF_INLINE void trans_3d_box(int x1, int y1, int x2, int y2){   putpixel(screen, x2, y1, CGUI_BOX_COL_MIDDLE);   putpixel(screen, x1, y2, CGUI_BOX_COL_MIDDLE);   hline(screen, x1,   y1,   x2-1, CGUI_BOX_COL_HIGH_2);   hline(screen, x1+1, y2,   x2,   CGUI_BOX_COL_LOW_2 );   vline(screen, x1,   y1,   y2-1, CGUI_BOX_COL_HIGH_2);   vline(screen, x2,   y1+1, y2,   CGUI_BOX_COL_LOW_2 );}static DEF_INLINE void trans_3d_box_invert(int x1, int y1, int x2, int y2){   putpixel(screen, x2, y1, CGUI_BOX_COL_MIDDLE);   putpixel(screen, x1, y2, CGUI_BOX_COL_MIDDLE);   hline(screen, x1,   y1,   x2-1, CGUI_BOX_COL_LOW_2 );   hline(screen, x1+1, y2,   x2,   CGUI_BOX_COL_HIGH_2);   vline(screen, x1,   y1,   y2-1, CGUI_BOX_COL_LOW_2 );   vline(screen, x2,   y1+1, y2,   CGUI_BOX_COL_HIGH_2);}static DEF_INLINE void solid_3d_box(int x1, int y1, int x2, int y2){   rectfill(screen, x1, y1, x2-1, y2-1, CGUI_BOX_COL_MIDDLE);   hline(screen, x1+0, y1+0, x2-2, CGUI_BOX_COL_HIGH_2);   hline(screen, x1+1, y2-1, x2-1, CGUI_BOX_COL_LOW_2 );   vline(screen, x1+0, y1+0, y2-2, CGUI_BOX_COL_HIGH_2);   vline(screen, x2-1, y1+1, y2-1, CGUI_BOX_COL_LOW_2 );   hline(screen, x1+1, y1+1, x2-3, CGUI_BOX_COL_HIGH_1);   hline(screen, x1+2, y2-2, x2-2, CGUI_BOX_COL_LOW_1 );   vline(screen, x1+1, y1+1, y2-3, CGUI_BOX_COL_HIGH_1);   vline(screen, x2-2, y1+2, y2-2, CGUI_BOX_COL_LOW_1 );}static DEF_INLINE void solid_3d_box_invert(int x1, int y1, int x2, int y2){   rectfill(screen, x1, y1, x2-1, y2-1, CGUI_BOX_COL_MIDDLE);   hline(screen, x1+0, y1+0, x2-2, CGUI_BOX_COL_LOW_2 );   hline(screen, x1+1, y2-1, x2-1, CGUI_BOX_COL_HIGH_2);   vline(screen, x1+0, y1+0, y2-2, CGUI_BOX_COL_LOW_2 );   vline(screen, x2-1, y1+1, y2-1, CGUI_BOX_COL_HIGH_2);   hline(screen, x1+1, y1+1, x2-3, CGUI_BOX_COL_LOW_1 );   hline(screen, x1+2, y2-2, x2-2, CGUI_BOX_COL_HIGH_1);   vline(screen, x1+1, y1+1, y2-3, CGUI_BOX_COL_LOW_1 );   vline(screen, x2-2, y1+2, y2-2, CGUI_BOX_COL_HIGH_1);}static DEF_INLINE void dotted_rect(int x1, int y1, int x2, int y2){   rect(screen, x1, y1, x2, y2, CGUI_COL_SELECT);}// d_raine_box_proc:// Simple dialog procedure: just draws a 3D box.int d_raine_box_proc(int msg, DIALOG *d, int c){   if(msg==MSG_DRAW)      solid_3d_box(d->x, d->y, d->x+d->w, d->y+d->h);   return D_O_K;}typedef struct WINDOW_DATA{   BITMAP *back_cache;   BITMAP *window;   UINT32  back_x;   UINT32  back_y;   UINT32  back_w;   UINT32  back_h;} WINDOW_DATA;void _handle_drag_window(DIALOG *dialog){   int x_ofs, y_ofs;   int xx   , yy;   int gx   , gy;   int count;   WINDOW_DATA *wdat;   // Init   gx = rgui_mouse_x();   gy = rgui_mouse_y();   x_ofs = gx - dialog[0].x;   y_ofs = gy - dialog[0].y;   wdat = (WINDOW_DATA *) dialog[0].dp2;   while (gui_mouse_b()) {      // Check if mouse has moved      gx = rgui_mouse_x();      gy = rgui_mouse_y();      xx = dialog[0].x - (gx - x_ofs);      yy = dialog[0].y - (gy - y_ofs);      // Update dialog if it moved      if((xx != 0)||(yy != 0)){         for (count=0; dialog[count].proc; count++) {             dialog[count].x -= xx;            dialog[count].y -= yy;         }         x_ofs = gx - dialog[0].x;         y_ofs = gy - dialog[0].y;#ifdef SLOW_DRAG         broadcast_dialog_message(MSG_DRAW, 0);#else         scare_mouse();         if(wdat){         if(wdat->window){	// Copy Window            blit(screen, wdat->window, wdat->back_x, wdat->back_y, 0, 0, dialog[0].w+1, dialog[0].h+1);         }         if(wdat->back_cache){	// Restore Back            blit(wdat->back_cache, screen, 0, 0, wdat->back_x, wdat->back_y, dialog[0].w+1, dialog[0].h+1);         }         }         if(wdat){         if(wdat->back_cache){	// Store Back            wdat->back_x = dialog[0].x;            wdat->back_y = dialog[0].y;            blit(screen, wdat->back_cache, wdat->back_x, wdat->back_y, 0, 0, dialog[0].w+1, dialog[0].h+1);         }         if(wdat->window){	// Paste Window            blit(wdat->window, screen, 0, 0, wdat->back_x, wdat->back_y, dialog[0].w+1, dialog[0].h+1);         }         }         unscare_mouse();#endif      }      // Don't suffocate the rest of the dialog      broadcast_dialog_message(MSG_IDLE, 0);   }}int d_raine_window_proc(int msg, DIALOG *dialog, int c){   WINDOW_DATA *wdat;   switch(msg){      case MSG_START:         wdat = (WINDOW_DATA *) malloc(sizeof(WINDOW_DATA));         if(wdat){         wdat->back_x      = dialog->x;         wdat->back_y      = dialog->y;         wdat->back_w      = dialog->w;         wdat->back_h      = dialog->h;         wdat->back_cache  = create_bitmap( wdat->back_w, wdat->back_h);         wdat->window      = create_bitmap( wdat->back_w, wdat->back_h);         if(wdat->back_cache){            scare_mouse();            blit(screen, wdat->back_cache, wdat->back_x, wdat->back_y, 0, 0, wdat->back_w, wdat->back_h);            unscare_mouse();         }         }         dialog->dp2 = (void *) wdat;         return D_O_K;      break;      case MSG_END:         wdat = (WINDOW_DATA *) dialog->dp2;         if(wdat){         if(wdat->back_cache){            scare_mouse();            blit(wdat->back_cache, screen, 0, 0, wdat->back_x, wdat->back_y, wdat->back_w, wdat->back_h);            unscare_mouse();            destroy_bitmap(wdat->back_cache);         }         free(wdat);         }         return D_O_K;      break;      case MSG_DRAW:         wdat = (WINDOW_DATA *) dialog->dp2;         if(wdat){         if(wdat->back_cache){            blit(wdat->back_cache, screen, 0, 0, wdat->back_x, wdat->back_y, wdat->back_w, wdat->back_h);            wdat->back_x = dialog->x;            wdat->back_y = dialog->y;            blit(screen, wdat->back_cache, wdat->back_x, wdat->back_y, 0, 0, wdat->back_w, wdat->back_h);         }         }         solid_3d_box(dialog->x, dialog->y, dialog->x+dialog->w, dialog->y+dialog->h);         rectfill(screen, dialog->x+3, dialog->y+3+1, dialog->x+dialog->w-4, dialog->y+3+text_height(gui_main_font), CGUI_BOX_COL_LOW_2 );         hline(screen, dialog->x+3, dialog->y+3,                            dialog->x+dialog->w-4, CGUI_BOX_COL_LOW_1 );         hline(screen, dialog->x+3, dialog->y+4+text_height(gui_main_font), dialog->x+dialog->w-4, CGUI_BOX_COL_LOW_1 );         text_mode(-1);	 if (dialog->dp)	   textout(screen, gui_main_font, raine_translate_text(dialog->dp), dialog->x+4+6, dialog->y+4, CGUI_COL_TEXT_1 );         return D_O_K;      break;      case MSG_CLICK:         {            int gx = rgui_mouse_x();            int gy = rgui_mouse_y();            if((gx >= dialog->x+3)&&(gy >= dialog->y+3)&&(gx <= dialog->x+dialog->w-4)&&(gy <= dialog->y+4+text_height(gui_main_font)))	       _handle_drag_window( dialog );            else               broadcast_dialog_message(MSG_IDLE, 0);         };         return D_O_K;      break;      case MSG_IDLE:         dialog_oxygen();         return D_O_K;      break;      default:         return D_O_K;      break;   }}int d_null_proc(int msg, DIALOG *d, int c){   return D_O_K;}int d_raine_oxygen_proc(int msg, DIALOG *d, int c){   if(msg==MSG_IDLE)      dialog_oxygen();   return D_O_K;}int raine_slider_proc(int msg, DIALOG *d, int c){   BITMAP *slhan = NULL;   int sfg;                /* slider foreground color */   int vert = TRUE;        /* flag: is slider vertical? */   int hh = 7;             /* handle height (width for horizontal sliders) */   int hmar;               /* handle margin */   int slp;                /* slider position */   int irange;   int slx, sly, slh, slw;   int retval = D_O_K;   fixed slratio, slmax, slpos;   int dbg;        /* check for slider direction */   if (d->h < d->w)      vert = FALSE;   /* set up the metrics for the control */   if (d->dp != NULL) {      slhan = (BITMAP *)d->dp;      if (vert)	 hh = slhan->h;      else	 hh = slhan->w;   }   hmar = hh/2;   irange = (vert) ? d->h : d->w;   slmax = itofix(irange-hh);   slratio = slmax / (d->d1);   slpos = slratio * d->d2;   slp = fixtoi(slpos);   switch (msg) {      case MSG_DRAW:	 sfg = (d->flags & D_DISABLED) ? gui_mg_color : d->fg;	 sfg = translate_color(sfg);		 dbg = translate_color(d->bg);	 	 if (vert) {	    rectfill(screen, d->x, d->y, d->x+d->w/2-2, d->y+d->h-1, dbg);	    rectfill(screen, d->x+d->w/2-1, d->y, d->x+d->w/2+1, d->y+d->h-1, sfg);	    rectfill(screen, d->x+d->w/2+2, d->y, d->x+d->w-1, d->y+d->h-1, dbg);	 }	 else {	    rectfill(screen, d->x, d->y, d->x+d->w-1, d->y+d->h/2-2, dbg);	    rectfill(screen, d->x, d->y+d->h/2-1, d->x+d->w-1, d->y+d->h/2+1, sfg);	    rectfill(screen, d->x, d->y+d->h/2+2, d->x+d->w-1, d->y+d->h-1, dbg);	 }	 /* okay, background and slot are drawn, now draw the handle */	 if (slhan) {	    if (vert) {	       slx = d->x+(d->w/2)-(slhan->w/2);	       sly = d->y+(d->h-1)-(hh+slp);	    } 	    else {	       slx = d->x+slp;	       sly = d->y+(d->h/2)-(slhan->h/2);	    }	    draw_sprite(screen, slhan, slx, sly);	 } 	 else {	    /* draw default handle */	    if (vert) {	       slx = d->x;	       sly = d->y+(d->h)-(hh+slp);	       slw = d->w-1;	       slh = hh-1;	    } else {	       slx = d->x+slp;	       sly = d->y;	       slw = hh-1;	       slh = d->h-1;	    }	    /* draw body */	    rectfill(screen, slx+2, sly, slx+(slw-2), sly+slh, sfg);	    vline(screen, slx+1, sly+1, sly+slh-1, sfg);	    vline(screen, slx+slw-1, sly+1, sly+slh-1, sfg);	    vline(screen, slx, sly+2, sly+slh-2, sfg);	    vline(screen, slx+slw, sly+2, sly+slh-2, sfg);	    vline(screen, slx+1, sly+2, sly+slh-2, dbg);	    hline(screen, slx+2, sly+1, slx+slw-2, dbg);	    putpixel(screen, slx+2, sly+2, d->bg);	 }	 if (d->flags & D_GOTFOCUS)	    dotted_rect(d->x, d->y, d->x+d->w-1, d->y+d->h-1);	 break;   default:     return d_slider_proc(msg,d,c);   }   return retval;   

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丰满放荡岳乱妇91ww| 视频一区二区三区在线| 欧美成人艳星乳罩| 欧美日韩国产精品成人| 色噜噜久久综合| www.久久久久久久久| 天天亚洲美女在线视频| 亚洲色图欧美激情| 国产精品久久久一区麻豆最新章节| 国产喷白浆一区二区三区| 欧美情侣在线播放| 色婷婷av一区二区三区大白胸| 国产精品99久久久久久有的能看| 日韩精品一二区| 午夜精品久久久久久久久久久| 亚洲美女屁股眼交3| 2014亚洲片线观看视频免费| 日韩欧美另类在线| 精品国产免费一区二区三区香蕉| 91丝袜国产在线播放| 成人黄色片在线观看| 成人免费看的视频| 成人综合在线视频| 成人午夜av电影| 成人av电影在线| 99精品欧美一区| 在线观看www91| 欧美剧情片在线观看| 制服丝袜在线91| 欧美一区2区视频在线观看| 欧美一区二区视频观看视频| 日韩欧美国产成人一区二区| 精品国产免费一区二区三区香蕉| 久久久久久久av麻豆果冻| 国产亚洲短视频| 国产精品国模大尺度视频| 亚洲欧美日韩国产另类专区| 亚洲成人免费电影| 免费高清在线一区| 国产·精品毛片| 高清国产一区二区| 日本精品视频一区二区| 欧美日韩不卡一区| 欧美日韩免费不卡视频一区二区三区 | 国产亚洲欧美中文| 久久夜色精品国产噜噜av| 精品日韩欧美在线| 中文字幕欧美国产| 亚洲大片一区二区三区| 国产在线麻豆精品观看| 99在线精品一区二区三区| 色老综合老女人久久久| 日韩女优电影在线观看| 中文字幕一区三区| 日产国产高清一区二区三区| 国产成人高清视频| 欧美视频一区在线| 国产日韩精品一区二区三区| 一区二区三区.www| 黄网站免费久久| 国产麻豆午夜三级精品| 在线免费观看日韩欧美| 日韩美女视频在线| 丝袜美腿成人在线| 九色综合狠狠综合久久| 91丨porny丨首页| 久久这里只精品最新地址| 伊人一区二区三区| 国产成人aaa| 日韩欧美黄色影院| 亚洲狠狠爱一区二区三区| 国产成人av电影在线播放| 69堂亚洲精品首页| 日本亚洲电影天堂| 欧美怡红院视频| 国产精品高潮久久久久无| 免费成人在线播放| 欧美视频精品在线观看| 国产精品色一区二区三区| 麻豆国产欧美日韩综合精品二区| 日本精品裸体写真集在线观看| 久久久精品欧美丰满| 蜜臀av国产精品久久久久| 在线精品亚洲一区二区不卡| 国产精品毛片a∨一区二区三区| 美女视频免费一区| 91精品国产综合久久香蕉麻豆 | 亚洲高清免费在线| 91理论电影在线观看| 久久夜色精品国产噜噜av| 久久99蜜桃精品| 91精品在线免费观看| 五月天激情小说综合| 欧美喷潮久久久xxxxx| 一区二区在线观看视频| 97精品视频在线观看自产线路二| 欧美国产一区二区在线观看| 国产美女一区二区| 久久丝袜美腿综合| 国产成人三级在线观看| 久久精品水蜜桃av综合天堂| 经典一区二区三区| 久久久一区二区| 国产传媒久久文化传媒| 欧美激情一区二区三区| 不卡av在线免费观看| 国产精品日韩精品欧美在线| 91一区二区在线| 亚洲国产一区二区三区青草影视| 在线观看视频91| 三级影片在线观看欧美日韩一区二区 | 国产精品18久久久久久久久久久久| 日韩美女视频在线| 国产成人免费9x9x人网站视频| 久久久精品2019中文字幕之3| 国产v综合v亚洲欧| 亚洲激情在线播放| 91精品国产高清一区二区三区 | 午夜国产不卡在线观看视频| 欧美日韩五月天| 久久国产乱子精品免费女| 久久久综合视频| 色婷婷久久99综合精品jk白丝 | 一区二区激情小说| 在线观看欧美日本| 免费在线观看一区二区三区| 国产亚洲美州欧州综合国| 99久久99久久精品免费看蜜桃| 一区二区三区小说| 日韩欧美二区三区| av色综合久久天堂av综合| 一区二区三区在线视频观看 | 欧美色综合天天久久综合精品| 久久精品国产**网站演员| 欧美国产日本视频| 日韩免费看的电影| 色综合久久88色综合天天免费| 一区二区在线免费观看| 26uuu另类欧美| 欧美性感一类影片在线播放| 狠狠色伊人亚洲综合成人| 日韩码欧中文字| www国产精品av| 欧美日韩国产免费| 97久久久精品综合88久久| 麻豆一区二区三区| 洋洋成人永久网站入口| 久久精品一区四区| 欧美一级生活片| 色综合久久中文字幕综合网| 久热成人在线视频| 亚洲成人你懂的| 亚洲欧美视频在线观看| 国产日韩欧美综合在线| 日韩精品一区二区三区在线 | 国产精品色一区二区三区| 日韩一二三区不卡| 欧美优质美女网站| 91碰在线视频| 成人天堂资源www在线| 九九精品一区二区| 日韩av中文在线观看| 亚洲在线中文字幕| 亚洲精选在线视频| 亚洲乱码国产乱码精品精可以看| 亚洲国产精品激情在线观看| 久久精品一区二区三区不卡| 精品国一区二区三区| 日韩一区二区三区电影在线观看| 欧美日韩中文国产| 欧美日韩在线观看一区二区| 欧美在线一区二区| 欧美三级中文字| 欧美精品色一区二区三区| 欧美久久免费观看| 制服丝袜在线91| 日韩一区国产二区欧美三区| 欧美一级在线视频| 精品国产3级a| 久久久久高清精品| 国产精品成人一区二区三区夜夜夜| 国产精品私人自拍| 亚洲欧美一区二区三区久本道91| 一区二区在线电影| 日韩中文字幕麻豆| 毛片av一区二区| 国产精品1区2区3区在线观看| 盗摄精品av一区二区三区| 99久久婷婷国产综合精品电影| 99久久伊人网影院| 91一区二区在线| 91精品黄色片免费大全| 精品国精品自拍自在线| 欧美国产综合一区二区| 一区二区三区精品久久久| 日本欧美一区二区| 国产麻豆日韩欧美久久| av不卡一区二区三区| 在线播放亚洲一区| 国产精品网曝门|