⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 forms_compatability.cxx

📁 PIXIL is a small footprint operating environment, complete with PDA PIM applications, a browser and
💻 CXX
字号:
//// "$Id: forms_compatability.cxx,v 1.1.1.1 2003/08/07 21:18:41 jasonk Exp $"//// Forms compatibility functions 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".//// Forms library compatability functions.// Many more functions are defined as inlines in forms.h!#include <FL/forms.H>#include <stdlib.h>char fl_flip = 2;void fl_end_form() {  while (Fl_Group::current()) Fl_Group::current()->forms_end();}void Fl_Group::forms_end() {  // set the dimensions of a group to surround contents  if (children() && !w()) {    Fl_Widget*const* a = array();    Fl_Widget* o = *a++;    int rx = o->x();    int ry = o->y();    int rw = rx+o->w();    int rh = ry+o->h();    for (int i=children_-1; i--;) {      o = *a++;      if (o->x() < rx) rx = o->x();      if (o->y() < ry) ry = o->y();      if (o->x()+o->w() > rw) rw = o->x()+o->w();      if (o->y()+o->h() > rh) rh = o->y()+o->h();    }    x(rx);    y(ry);    w(rw-rx);    h(rh-ry);  }  // flip all the children's coordinate systems:  if (fl_flip) {    Fl_Widget* o = (type()>=FL_WINDOW) ? this : window();    int Y = o->h();    Fl_Widget*const* a = array();    for (int i=children(); i--;) {      Fl_Widget* o = *a++;      int newy = Y-o->y()-o->h();      o->y(newy);    }  }  end();}static int initargc;static char **initargv;void fl_initialize(int *argc, char **argv, const char *, FL_CMD_OPT *, int) {  initargc = *argc;  initargv = new char*[*argc+1];  int i,j;  for (i=0; i<=*argc; i++) initargv[i] = argv[i];  for (i=j=1; i<*argc; ) {    if (Fl::arg(*argc,argv,i));    else argv[j++] = argv[i++];  }  argv[j] = 0;  *argc = j;  if (fl_flip==2) fl_flip = 0;}char fl_modal_next; // set by fl_freeze_forms()void fl_show_form(Fl_Window *f,int place,int b,const char *n) {  Fl::enable_symbols();  f->label(n);  if (!b) f->clear_border();  if (fl_modal_next || b==FL_TRANSIENT) {f->set_modal(); fl_modal_next = 0;}  if (place & FL_PLACE_MOUSE) f->hotspot(f);  if (place & FL_PLACE_CENTER)    f->position((Fl::w()-f->w())/2, (Fl::h()-f->h())/2);  if (place & FL_PLACE_FULLSCREEN)    f->fullscreen();  if (place & (FL_PLACE_POSITION | FL_PLACE_GEOMETRY))    f->position(      (f->x() < 0) ? Fl::w()-f->w()+f->x()-1 : f->x(),      (f->y() < 0) ? Fl::h()-f->h()+f->y()-1 : f->y());// if (place & FL_PLACE_ASPECT) {// this is not yet implemented// it can be done by setting size_range().  if (place == FL_PLACE_FREE || place == FL_PLACE_SIZE)    f->free_position();  if (place == FL_PLACE_FREE || place & FL_FREE_SIZE)    if (!f->resizable()) f->resizable(f);  if (initargc) {f->show(initargc,initargv); initargc = 0;}  else f->show();}Fl_Widget *fl_do_forms(void) {  Fl_Widget *obj;  while (!(obj = Fl::readqueue())) if (!Fl::wait()) exit(0);  return obj;}Fl_Widget *fl_check_forms() {  Fl::check();  return Fl::readqueue();}void fl_set_graphics_mode(int /*r*/,int /*d*/) {}void Fl_FormsText::draw() {  draw_box();  align(align()|FL_ALIGN_INSIDE); // questionable method of compatability  draw_label();}// Create a forms button by selecting correct fltk subclass:#include <FL/Fl_Return_Button.H>#include <FL/Fl_Repeat_Button.H>Fl_Button *fl_add_button(uchar t,int x,int y,int w,int h,const char *l) {  Fl_Button *b;  switch (t) {  case FL_RETURN_BUTTON:  case FL_HIDDEN_RET_BUTTON:    b = new Fl_Return_Button(x,y,w,h,l);    break;  case FL_TOUCH_BUTTON:    b = new Fl_Repeat_Button(x,y,w,h,l);    break;  default:    b = new Fl_Button(x,y,w,h,l);  }  switch (t) {  case FL_TOGGLE_BUTTON:  case FL_RADIO_BUTTON:    b->type(t);    break;  case FL_HIDDEN_BUTTON:  case FL_HIDDEN_RET_BUTTON:    b->type(FL_HIDDEN_BUTTON);    break;  case FL_INOUT_BUTTON:    b->when(FL_WHEN_CHANGED);    break;  }  return b;}void fl_show_message(const char *q1,const char *q2,const char *q3) {  fl_message("%s\n%s\n%s", q1?q1:"", q2?q2:"", q3?q3:"");}void fl_show_alert(const char *q1,const char *q2,const char *q3,int) {  fl_alert("%s\n%s\n%s", q1?q1:"", q2?q2:"", q3?q3:"");}int fl_show_question(const char *q1,const char *q2,const char *q3) {  return fl_ask("%s\n%s\n%s", q1?q1:"", q2?q2:"", q3?q3:"");}int fl_show_choice(  const char *q1,  const char *q2,  const char *q3,  int, // number of buttons, ignored  const char *b0,  const char *b1,  const char *b2) {  return fl_choice("%s\n%s\n%s", q1?q1:"", q2?q2:"", q3?q3:"", b0,b1,b2)+1;}char *fl_show_simple_input(const char *str1, const char *defstr) {  const char *r = fl_input(str1, defstr);  return (char *)(r ? r : defstr);}//// End of "$Id: forms_compatability.cxx,v 1.1.1.1 2003/08/07 21:18:41 jasonk Exp $".//

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -