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

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

?? fl.cxx

?? flnx 0.17 是做嵌入linux gui 必備工具箱
?? CXX
?? 第 1 頁 / 共 2 頁
字號:
#include <stdio.h>//// "$Id: Fl.cxx,v 1.1.1.1 2003/08/07 21:18:39 jasonk Exp $"//// Main event handling code for the Fast Light Tool Kit (FLTK).//// Copyright 1998-1999 by Bill Spitzak and others.//// This library is free software; you can redistribute it and/or// modify it under the terms of the GNU Library General Public// License as published by the Free Software Foundation; either// version 2 of the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU// Library General Public License for more details.//// You should have received a copy of the GNU Library General Public// License along with this library; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307// USA.//// Please report all bugs and problems to "fltk-bugs@easysw.com".//#include <FL/x.H>#include <FL/Fl.H>#include <FL/Fl_Window.H>#include <ctype.h>#include <stdlib.h>#include <string.h>#include <stdio.h>//// Globals...//Fl_Widget	*Fl::belowmouse_,		*Fl::pushed_,		*Fl::focus_,		*Fl::selection_owner_;int		Fl::damage_,		Fl::e_x,		Fl::e_y,		Fl::e_x_root,		Fl::e_y_root,		Fl::e_state,		Fl::e_clicks,		Fl::e_is_click,		Fl::e_keysym;char		*Fl::e_text = "";int		Fl::e_length;static double fl_elapsed();//// 'Fl:event_inside()' - Return whether or not the mouse event is inside//                       the given rectangle.//int Fl::event_inside(int x,int y,int w,int h) /*const*/ {  int mx = event_x() - x;  int my = event_y() - y;  return (mx >= 0 && mx < w && my >= 0 && my < h);}int Fl::event_inside(const Fl_Widget *o) /*const*/ {  return event_inside(o->x(),o->y(),o->w(),o->h());}// Timeouts are insert-sorted into order.  This works good if there// are only a small number:static struct Timeout {  double time;  void (*cb)(void*);  void* arg;} * timeout;static int numtimeouts;static int timeout_array_size;void Fl::add_timeout(double t, void (*cb)(void *), void *v) {  fl_elapsed();  if (numtimeouts >= timeout_array_size) {    timeout_array_size = 2*timeout_array_size+1;    timeout = (Timeout*)realloc(timeout, timeout_array_size*sizeof(Timeout));  }  // insert-sort the new timeout:  int i;  for (i=0; i<numtimeouts; i++) {    if (timeout[i].time > t) {      for (int j=numtimeouts; j>i; j--) timeout[j] = timeout[j-1];      break;    }  }  timeout[i].time = t;  timeout[i].cb = cb;  timeout[i].arg = v;  numtimeouts++;}void Fl::remove_timeout(void (*cb)(void *), void *v) {  int i,j;  for (i=j=0; i<numtimeouts; i++) {    if (timeout[i].cb == cb && timeout[i].arg==v) ;    else {if (j<i) timeout[j]=timeout[i]; j++;}  }  numtimeouts = j;}static int call_timeouts() {  int expired = 0;  while (numtimeouts) {    if (timeout[0].time > 0) break;    // we must remove timeout from array before doing the callback:    void (*cb)(void*) = timeout[0].cb;    void *arg = timeout[0].arg;    numtimeouts--; expired++;    if (numtimeouts) memmove(timeout, timeout+1, numtimeouts*sizeof(Timeout));    // now it is safe for the callback to do add_timeout:    cb(arg);  }  return expired;}void Fl::flush() {  if (damage()) {    damage_ = 0;    for (Fl_X* x = Fl_X::first; x; x = x->next) {      if (x->w->damage() && x->w->visible_r()) {//      if (1) {	if (x->wait_for_expose) {	  // leave Fl::damage() set so programs can tell damage still exists	  	damage_ = 1;		x->wait_for_expose=0;//tanghao	} else {	  x->flush();	  x->w->clear_damage();	}      }    }  }#ifndef WIN32#ifdef NANO_X  if (fl_display)GrFlush();#else  if (fl_display) XFlush(fl_display);#endif#endif}extern double fl_wait(int timeout_flag, double timeout);extern int fl_ready();static int initclock; // if false we didn't call fl_elapsed() last time#ifndef WIN32#include <sys/time.h>#endif// fl_elapsed must return the amount of time since the last time it was// called.  To reduce the number of system calls to get the// current time, the "initclock" symbol is turned on by an indefinite// wait.  This should then reset the measured-from time and return zerostatic double fl_elapsed() {#ifdef WIN32  unsigned long newclock = GetTickCount();  const int TICKS_PER_SECOND = 1000; // divisor of the value to get seconds  static unsigned long prevclock;  if (!initclock) {prevclock = newclock; initclock = 1; return 0.0;}  else if (newclock < prevclock) return 0.0;  double t = double(newclock-prevclock)/TICKS_PER_SECOND;  prevclock = newclock;#else  static struct timeval prevclock;  struct timeval newclock;  gettimeofday(&newclock, NULL);  if (!initclock) {    prevclock.tv_sec = newclock.tv_sec;    prevclock.tv_usec = newclock.tv_usec;    initclock = 1;    return 0.0;  }  double t = newclock.tv_sec - prevclock.tv_sec +    (newclock.tv_usec - prevclock.tv_usec)/1000000.0;  prevclock.tv_sec = newclock.tv_sec;  prevclock.tv_usec = newclock.tv_usec;#endif  // expire any timeouts:  if (t > 0.0) for (int i=0; i<numtimeouts; i++) timeout[i].time -= t;  return t;}void (*Fl::idle)();static char in_idle;static void callidle() {  if (!Fl::idle || in_idle) return;  in_idle = 1;  Fl::idle();  in_idle = 0;}int Fl::wait() {  callidle();  int expired = 0;  if (numtimeouts) {fl_elapsed(); expired = call_timeouts();}  flush();  //if (!Fl_X::first) return 0; // no windows  if (!Fl_X::first) {      fl_wait(1,1);      return 0;  } else if ((idle && !in_idle) || expired) {    fl_wait(1,0.0);  } else if (numtimeouts) {    fl_wait(1, timeout[0].time);  } else {    initclock = 0;    //if (!Fl_X::first) {    //  fl_wait(1,1);    //  return 0;    //} else {      fl_wait(0,0);    //}  }  return 1;}double Fl::wait(double time) {  callidle();  int expired = 0;  if (numtimeouts) {time -= fl_elapsed(); expired = call_timeouts();}  flush();  double wait_time = (idle && !in_idle) || expired ? 0.0 : time;  if (numtimeouts && timeout[0].time < wait_time) wait_time = timeout[0].time;  fl_wait(1, wait_time);  return time - fl_elapsed();}int Fl::check() {  callidle();  if (numtimeouts) {fl_elapsed(); call_timeouts();}  fl_wait(1, 0.0);  flush();  return Fl_X::first != 0; // return true if there is a window}int Fl::ready() {  // if (idle && !in_idle) return 1; // should it do this?  if (numtimeouts) {fl_elapsed(); if (timeout[0].time <= 0) return 1;}  return fl_ready();}int Fl::run() {  while (wait());  return 0;}////////////////////////////////////////////////////////////////// Window list management:Fl_X* Fl_X::first;Fl_Window* fl_find(Window xid) {  Fl_X *window;  for (Fl_X **pp = &Fl_X::first; (window = *pp); pp = &window->next)    if (window->xid == xid) {      if (window != Fl_X::first && !Fl::modal()) {	// make this window be first to speed up searches	// this is not done if modal is true to avoid messing up modal stack	*pp = window->next;	window->next = Fl_X::first;	Fl_X::first = window;      }      return window->w;    }  return 0;}void Fl::redraw() {  for (Fl_X* x = Fl_X::first; x; x = x->next) x->w->redraw();}Fl_Window* Fl::first_window() {Fl_X* x = Fl_X::first; return x ? x->w : 0;}Fl_Window* Fl::next_window(const Fl_Window* w) {  Fl_X* x = Fl_X::i(w)->next; return x ? x->w : 0;}////////////////////////////////////////////////////////////////// Event handlers:struct handler_link {  int (*handle)(int);  const handler_link *next;};static const handler_link *handlers = 0;void Fl::add_handler(int (*h)(int)) {  handler_link *l = new handler_link;  l->handle = h;  l->next = handlers;  handlers = l;}static int send_handlers(int event) {  for (const handler_link *h = handlers; h; h = h->next)    if (h->handle(event)) return 1;  return 0;}////////////////////////////////////////////////////////////////Fl_Widget* fl_oldfocus; // kludge for Fl_Group...void Fl::focus(Fl_Widget *o) {  if (grab()) return; // don't do anything while grab is on  Fl_Widget *p = focus_;  if (o != p) {    focus_ = o;    fl_oldfocus = 0;    for (; p && !p->contains(o); p = p->parent()) {      p->handle(FL_UNFOCUS);      fl_oldfocus = p;    }  }}void Fl::belowmouse(Fl_Widget *o) {  if (grab()) return; // don't do anything while grab is on  Fl_Widget *p = belowmouse_;  if (o != p) {    event_is_click(0);    belowmouse_ = o;    for (; p && !p->contains(o); p = p->parent()) p->handle(FL_LEAVE);  }}void Fl::pushed(Fl_Widget *o) {  pushed_ = o;}Fl_Window *fl_xfocus;	// which window X thinks has focusFl_Window *fl_xmousewin;// which window X thinks has FL_ENTERFl_Window *Fl::grab_;	// most recent Fl::grab()Fl_Window *Fl::modal_;	// topmost modal() window// Update modal(), focus() and other state according to system state,// and send FL_ENTER, FL_LEAVE, FL_FOCUS, and/or FL_UNFOCUS events.// This is the only function that produces these events in response// to system activity.// This is called whenever a window is added or hidden, and whenever// X says the focus or mouse window have changed.void fl_fix_focus() {  if (Fl::grab()) return; // don't do anything while grab is on.  // set focus based on Fl::modal() and fl_xfocus  Fl_Widget* w = fl_xfocus;  if (w) {    while (w->parent()) w = w->parent();    if (Fl::modal()) w = Fl::modal();    if (!w->contains(Fl::focus()))      if (!w->take_focus()) Fl::focus(w);  } else    Fl::focus(0);  if (!Fl::pushed()) {    // set belowmouse based on Fl::modal() and fl_xmousewin:    w = fl_xmousewin;    if (w) {      if (Fl::modal()) w = Fl::modal();      if (!w->contains(Fl::belowmouse())) {	Fl::belowmouse(w);	w->handle(FL_ENTER);      } else {	// send a FL_MOVE event so the enter/leave state is up to date	Fl::e_x = Fl::e_x_root-fl_xmousewin->x();	Fl::e_y = Fl::e_y_root-fl_xmousewin->y();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩中字一区| 同产精品九九九| 亚洲高清视频在线| 成人免费视频视频| 欧美一级精品大片| 亚洲欧美日韩中文播放| 激情图区综合网| 欧美日韩国产一级| 一区二区在线观看av| 国产精品1区2区3区| 欧美日韩一级二级三级| 亚洲乱码国产乱码精品精小说| 精品一区在线看| 欧美性猛交一区二区三区精品| 国产精品视频一二三区| 激情综合五月婷婷| 欧美精品久久一区| 亚洲gay无套男同| 在线看国产一区| 亚洲日本在线观看| 99久久婷婷国产综合精品电影| 亚洲情趣在线观看| www.欧美.com| 中文字幕精品一区| 成人免费视频免费观看| 日韩精品综合一本久道在线视频| 亚洲丝袜美腿综合| 99麻豆久久久国产精品免费 | 精品亚洲porn| 欧美性极品少妇| 亚洲精品国产一区二区精华液| jizz一区二区| 国产精品嫩草久久久久| 成人免费视频免费观看| 国产精品成人一区二区艾草| 暴力调教一区二区三区| 亚洲国产精品黑人久久久| 国产福利精品导航| 国产精品动漫网站| 91免费观看国产| 一区二区三区中文字幕精品精品| 欧美综合亚洲图片综合区| 亚洲午夜一二三区视频| 91精品国产色综合久久ai换脸 | 久久先锋资源网| 高清国产午夜精品久久久久久| 国产精品美女久久久久av爽李琼| 成人少妇影院yyyy| 亚洲精品久久久蜜桃| 欧美精品18+| 国产一区在线看| 亚洲最新在线观看| 欧美久久久一区| 国产资源在线一区| ●精品国产综合乱码久久久久| 色www精品视频在线观看| 偷拍一区二区三区四区| 久久婷婷一区二区三区| 波多野结衣在线aⅴ中文字幕不卡| 一区二区三区高清不卡| 欧美一级精品大片| 色欧美片视频在线观看在线视频| 亚洲第一福利一区| 久久综合久久鬼色中文字| av高清不卡在线| 日韩在线卡一卡二| 国产蜜臀av在线一区二区三区| 色8久久精品久久久久久蜜| 毛片基地黄久久久久久天堂| 中文字幕第一区综合| 在线观看91av| 国产成人精品一区二区三区四区 | 亚洲精品大片www| 日韩一二在线观看| 91色婷婷久久久久合中文| 蜜乳av一区二区三区| 国产精品午夜电影| 7777精品伊人久久久大香线蕉| 国产一区二区三区不卡在线观看| 亚洲一区二区高清| 国产欧美日韩在线看| 91精品国产综合久久久蜜臀粉嫩 | 日韩区在线观看| 91原创在线视频| 精品一区二区三区在线播放| 亚洲综合男人的天堂| 国产欧美日韩在线观看| 欧美成人一区二区三区在线观看| voyeur盗摄精品| 国产精品羞羞答答xxdd| 另类成人小视频在线| 亚洲激情在线激情| 国产精品嫩草影院com| 精品国产91乱码一区二区三区| 欧美三级中文字| 91在线国内视频| av一区二区久久| 成人av网址在线| 国产成人精品免费在线| 国产一区欧美一区| 成人免费毛片aaaaa**| 乱一区二区av| 久久成人免费网站| 久久99热狠狠色一区二区| 奇米四色…亚洲| 日韩有码一区二区三区| 亚洲乱码中文字幕| 玉米视频成人免费看| 夜夜夜精品看看| 亚洲午夜电影网| 亚洲gay无套男同| 日韩和的一区二区| 日本中文字幕一区二区视频| 欧美aaa在线| 久久成人免费电影| 韩国欧美国产一区| 国产精品一区在线观看乱码 | 欧美国产欧美综合| 中文字幕不卡的av| 中文字幕一区二区三区四区| 亚洲男人天堂av| 亚洲精品一二三区| 亚洲高清视频中文字幕| 日本大胆欧美人术艺术动态| 蜜臀av性久久久久蜜臀aⅴ流畅| 麻豆国产91在线播放| 国模一区二区三区白浆| 国产传媒欧美日韩成人| 99久久99久久精品国产片果冻| 色婷婷综合激情| 欧美一区二区三区影视| 国产日产精品一区| 国产精品福利一区二区三区| 亚洲一级二级三级| 蜜桃91丨九色丨蝌蚪91桃色| 国产999精品久久久久久| 在线看国产一区二区| 欧美一区二区久久| 中文字幕国产精品一区二区| 亚洲图片一区二区| 激情国产一区二区| 床上的激情91.| 欧美性色欧美a在线播放| 欧美精品一区二区三区高清aⅴ | 国产精品拍天天在线| 亚洲综合一区在线| 久久99精品国产| 色综合色综合色综合 | 欧美丰满少妇xxxbbb| 国产精品天美传媒沈樵| 亚洲午夜在线电影| 国内成人自拍视频| 欧美在线观看一区二区| 欧美xxxx在线观看| 亚洲色图清纯唯美| 精品一区二区三区久久久| 色视频成人在线观看免| 欧美r级在线观看| 玉米视频成人免费看| 国产传媒一区在线| 制服丝袜亚洲播放| 一区二区中文字幕在线| 精品一区在线看| 欧美日韩中文另类| 亚洲欧洲精品成人久久奇米网| 日本91福利区| 欧美午夜宅男影院| 国产精品国产三级国产aⅴ原创| 蜜臀99久久精品久久久久久软件| 色婷婷一区二区三区四区| 日本一区二区综合亚洲| 麻豆国产精品777777在线| 欧美日韩在线不卡| 中文字幕制服丝袜成人av | 男人的天堂久久精品| 日本电影亚洲天堂一区| 日本一区二区三区dvd视频在线| 免费高清在线视频一区·| 91精品91久久久中77777| 久久久久国色av免费看影院| 日韩成人一级片| 欧美日韩国产高清一区二区三区 | 日本va欧美va精品| 欧美色爱综合网| 亚洲美女少妇撒尿| 99视频精品在线| 国产精品日产欧美久久久久| 国内精品免费在线观看| 亚洲精品一区二区三区影院 | 91在线看国产| 国产精品久久久久久久浪潮网站| 成人污视频在线观看| 久久亚洲精品国产精品紫薇| 韩国欧美国产1区| 日韩美女视频在线| 极品尤物av久久免费看| 久久久精品中文字幕麻豆发布| 国产在线精品一区二区三区不卡| 欧美岛国在线观看| 国产一区啦啦啦在线观看|