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

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

?? fl_widget.cxx

?? flnx 0.17 是做嵌入linux gui 必備工具箱
?? CXX
字號:
//// "$Id: Fl_Widget.cxx,v 1.1.1.1 2003/08/07 21:18:40 jasonk Exp $"//// Base widget class 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/Fl.H>#include <FL/Fl_Widget.H>#include <FL/Fl_Group.H>////////////////////////////////////////////////////////////////// for compatability with Forms, all widgets without callbacks are// inserted into a "queue" when they are activated, and the forms// compatability interaction functions (fl_do_events, etc) will// read one widget at a time from this queue and return it:const int QUEUE_SIZE = 20;static Fl_Widget *obj_queue[QUEUE_SIZE];static int obj_head, obj_tail;void Fl_Widget::default_callback(Fl_Widget *o, void * /*v*/) {#if 0  // This is necessary for strict forms compatability but is confusing.  // Use the parent's callback if this widget does not have one.  for (Fl_Widget *p = o->parent(); p; p = p->parent())    if (p->callback() != default_callback) {      p->do_callback(o,v);      return;    }#endif  obj_queue[obj_head++] = o;  if (obj_head >= QUEUE_SIZE) obj_head = 0;  if (obj_head == obj_tail) {    obj_tail++;    if (obj_tail >= QUEUE_SIZE) obj_tail = 0;  }}Fl_Widget *Fl::readqueue() {  if (obj_tail==obj_head) return 0;  Fl_Widget *o = obj_queue[obj_tail++];  if (obj_tail >= QUEUE_SIZE) obj_tail = 0;  return o;}    ////////////////////////////////////////////////////////////////int Fl_Widget::handle(int) {return 0;}Fl_Widget::Fl_Widget(int X, int Y, int W, int H, const char* L) {  x_ = X; y_ = Y; w_ = W; h_ = H;  label_.value	= L;  label_.type	= FL_NORMAL_LABEL;  label_.font	= FL_HELVETICA;  label_.size	= FL_NORMAL_SIZE;  label_.color	= FL_BLACK;  callback_	= default_callback;  user_data_ 	= 0;  type_		= 0;  flags_	= 0;  damage_	= 0;  box_		= FL_NO_BOX;  color_	= FL_GRAY;  color2_	= FL_GRAY;  align_	= FL_ALIGN_CENTER;  when_		= FL_WHEN_RELEASE;  parent_ = 0;  if (Fl_Group::current()) Fl_Group::current()->add(this);}void Fl_Widget::resize(int X, int Y, int W, int H) {  x_ = X; y_ = Y; w_ = W; h_ = H;}// this is useful for parent widgets to call to resize children:int Fl_Widget::damage_resize(int X, int Y, int W, int H) {  if (x() == X && y() == Y && w() == W && h() == H) return 0;  resize(X, Y, W, H);  redraw();  return 1;}int Fl_Widget::take_focus() {  if (!takesevents()) return 0;  if (!handle(FL_FOCUS)) return 0; // see if it wants it  if (contains(Fl::focus())) return 1; // it called Fl::focus for us  Fl::focus(this);  return 1;}extern void fl_throw_focus(Fl_Widget*); // in Fl_x.C// Destruction does not remove from any parent group!  And groups when// destroyed destroy all their children.  This is convienent and fast.// However, it is only legal to destroy a "root" such as an Fl_Window,// and automatic destructors may be called.Fl_Widget::~Fl_Widget() {  parent_ = 0; // kludge to prevent ~Fl_Group from destroying again  fl_throw_focus(this);}// redraw this, plus redraw opaque object if there is an outside labelstatic void redraw_label(Fl_Widget* w) {  w->redraw();  if (w->label() && (w->align()&15) && !(w->align() & FL_ALIGN_INSIDE)) {    for (Fl_Widget *p = w->parent(); p; p = p->parent())      if (p->box() || !p->parent()) {p->redraw(); break;}  }}void Fl_Widget::activate() {  if (!active()) {    clear_flag(INACTIVE);    if (active_r()) {      redraw_label(this);      handle(FL_ACTIVATE);      if (inside(Fl::focus())) Fl::focus()->take_focus();    }  }}void Fl_Widget::deactivate() {  if (active_r()) {    set_flag(INACTIVE);    redraw_label(this);    handle(FL_DEACTIVATE);    fl_throw_focus(this);  } else {    set_flag(INACTIVE);  }}int Fl_Widget::active_r() const {  for (const Fl_Widget* o = this; o; o = o->parent())    if (!o->active()) return 0;  return 1;}void Fl_Widget::show() {  if (!visible()) {    clear_flag(INVISIBLE);    if (visible_r()) {      redraw_label(this);      handle(FL_SHOW);      if (inside(Fl::focus())) Fl::focus()->take_focus();    }  }}void Fl_Widget::hide() {  if (visible_r()) {    set_flag(INVISIBLE);    for (Fl_Widget *p = parent(); p; p = p->parent())      if (p->box() || !p->parent()) {p->redraw(); break;}    handle(FL_HIDE);    fl_throw_focus(this);  } else {    set_flag(INVISIBLE);  }}int Fl_Widget::visible_r() const {  for (const Fl_Widget* o = this; o; o = o->parent())    if (!o->visible()) return 0;  return 1;}// return true if widget is inside (or equal to) this:// Returns false for null widgets.int Fl_Widget::contains(const Fl_Widget *o) const {  for (; o; o = o->parent_) if (o == this) return 1;  return 0;}//// End of "$Id: Fl_Widget.cxx,v 1.1.1.1 2003/08/07 21:18:40 jasonk Exp $".//

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区四区在线观看| 美日韩黄色大片| 中文字幕中文字幕一区| 国产午夜精品福利| 欧美经典一区二区| 中文字幕免费在线观看视频一区| 久久婷婷国产综合国色天香| 久久久不卡影院| 国产欧美日韩麻豆91| 综合分类小说区另类春色亚洲小说欧美 | 亚洲一区二区视频在线观看| 国产精品久久久久影院老司| 亚洲三级小视频| 香蕉乱码成人久久天堂爱免费| 亚瑟在线精品视频| 精品一区二区三区免费| 国产一区二区看久久| 99精品久久99久久久久| 日韩欧美国产一区二区在线播放| 精品成人一区二区三区四区| 久久久久久久久伊人| 成人免费在线播放视频| 天堂蜜桃91精品| 狠狠色狠狠色综合| 91浏览器在线视频| 欧美一级片在线看| 最新不卡av在线| 日日夜夜免费精品| 大胆欧美人体老妇| 欧美久久久影院| 国产视频一区二区三区在线观看| 亚洲三级久久久| 免费av网站大全久久| 成人精品视频一区二区三区| 欧美午夜片在线看| 久久精品视频一区| 五月综合激情网| 成人一区二区三区视频在线观看| 欧美色图激情小说| 国产视频一区在线观看 | 欧美成人性战久久| 综合久久久久久久| 久久99久久99精品免视看婷婷| 99视频在线精品| 国产女人18水真多18精品一级做| 亚洲欧美电影一区二区| 紧缚奴在线一区二区三区| 欧洲精品一区二区三区在线观看| 精品人在线二区三区| 亚洲免费观看高清完整版在线观看| 精品一区二区久久| 欧美午夜精品久久久久久孕妇| 久久久国产精品不卡| 日本午夜精品视频在线观看| 一本色道a无线码一区v| 中文字幕成人网| 久久成人免费网站| 欧美丝袜自拍制服另类| 国产精品青草久久| 国产精品综合久久| 日韩欧美国产午夜精品| 五月婷婷综合激情| 在线观看一区二区视频| 亚洲三级视频在线观看| 成人永久看片免费视频天堂| 久久理论电影网| 精彩视频一区二区| ww久久中文字幕| 久久99久久久久| 精品国产一区二区三区四区四| 亚洲成av人片一区二区梦乃| 在线一区二区三区四区五区| 中文字幕亚洲一区二区va在线| 国产精品自拍网站| 精品国产一区二区三区不卡| 久久av资源站| 久久精品这里都是精品| 国产精品一二三四| 国产欧美日韩在线看| 成人自拍视频在线| 国产精品成人一区二区三区夜夜夜| 国产成人亚洲综合a∨婷婷图片| 精品国产一区久久| 欧美丝袜丝交足nylons| 亚洲一区在线视频| 欧美精品乱人伦久久久久久| 日韩精品国产欧美| 日韩欧美中文一区| 韩国av一区二区| 国产日韩亚洲欧美综合| av激情亚洲男人天堂| 亚洲摸摸操操av| 欧美日韩一二三区| 麻豆专区一区二区三区四区五区| 精品不卡在线视频| 色综合一区二区三区| 亚洲综合精品久久| 日韩欧美国产精品一区| 国产.欧美.日韩| 亚洲一区二区精品视频| 日韩欧美中文字幕精品| 成人影视亚洲图片在线| 亚洲成人一区在线| 久久久精品国产免费观看同学| 99精品黄色片免费大全| 日日摸夜夜添夜夜添国产精品| 精品久久久久久久一区二区蜜臀| 成人免费毛片片v| 亚洲国产精品久久人人爱| 亚洲精品在线观看视频| 91免费国产在线观看| 免费黄网站欧美| 亚洲视频网在线直播| 精品国产乱子伦一区| 99久久国产综合精品色伊| 美女一区二区视频| 亚洲美女少妇撒尿| 2020国产成人综合网| 色吊一区二区三区| 国模少妇一区二区三区| 亚洲午夜精品久久久久久久久| 久久婷婷综合激情| 91精品蜜臀在线一区尤物| caoporen国产精品视频| 麻豆国产欧美一区二区三区| 亚洲精品国产精品乱码不99| 精品88久久久久88久久久 | 毛片一区二区三区| 中文字幕在线一区| 日韩午夜激情视频| 欧美手机在线视频| 色网综合在线观看| 国产精品综合网| 韩国女主播一区| 日韩电影在线一区二区| 亚洲综合一区在线| 成人免费小视频| 中文字幕免费观看一区| 国产日韩综合av| 久久蜜桃一区二区| 久久久久久久久伊人| 久久午夜电影网| 久久先锋影音av鲁色资源网| 欧美videos大乳护士334| 在线电影国产精品| 欧美精品777| 欧美日韩精品免费观看视频| 欧美专区日韩专区| 欧洲生活片亚洲生活在线观看| 91在线观看视频| 99v久久综合狠狠综合久久| 成人丝袜18视频在线观看| 国产高清不卡一区二区| 国产一区二区三区免费播放| 久久电影国产免费久久电影 | 一级日本不卡的影视| 国产精品欧美一区喷水| 国产精品网站在线观看| 国产欧美一区二区精品婷婷 | 日韩高清不卡在线| 日韩av高清在线观看| 日本不卡一二三| 精品系列免费在线观看| 国产精品一区免费在线观看| 国产成人综合精品三级| 成人深夜视频在线观看| 色综合久久综合网欧美综合网| 99r精品视频| 欧美精品自拍偷拍| 精品国产免费人成在线观看| 国产午夜精品美女毛片视频| 亚洲欧洲另类国产综合| 一区二区欧美精品| 蜜桃视频第一区免费观看| 国产剧情一区二区| 91麻豆国产精品久久| 欧美日韩国产综合视频在线观看| 欧美一卡二卡三卡| 国产精品免费人成网站| 亚洲网友自拍偷拍| 国模套图日韩精品一区二区| 99精品欧美一区二区三区小说| 91福利区一区二区三区| 日韩午夜在线影院| 国产精品麻豆一区二区 | 韩国v欧美v亚洲v日本v| 成人网男人的天堂| 欧美群妇大交群的观看方式| 精品国产伦一区二区三区观看方式 | 亚洲一区二区三区激情| 伦理电影国产精品| 在线欧美日韩国产| 久久综合九色综合欧美98| 亚洲蜜臀av乱码久久精品蜜桃| 老司机精品视频导航| 色综合久久久久网| 精品国产青草久久久久福利| 亚洲综合男人的天堂| 国产·精品毛片| 日韩欧美一区在线观看|