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

📄 qwidget.cpp

📁 PIXIL is a small footprint operating environment, complete with PDA PIM applications, a browser and
💻 CPP
字号:
#include "qpoint.h"#include "qwidget.h"#include <Fl.H>#ifdef _NANOX#include <n_x.h>#else#include <x.H>#endifQPoint QMouseEvent::g;//extern int fl_window;QMetaObject *QWidget::metaObj = 0;const char * QWidget::className() const{  return "QWidget";}void QWidget::resize(int w, int h) {   resize(x(),y(),w,h);}void QWidget::repaint(){  redraw();}void QWidget::repaint(bool erase){  redraw();}void QWidget::draw() {   QRect r(0,0,w(),h());  m_bInPaint = true;  if(m_pWidget) {    Fl_Window::draw();  } else {    QPaintEvent pe(r);    paintEvent(&pe);  }   m_bInPaint = false;      }void QWidget::move(int x, int y){  FLTK_PARENT_WIDGET::position(x,y);}void QWidget::repaint(int x, int y, int w, int h, bool erase){  damage(0,x,y,w,h);  redraw();}void QWidget::show(){  if(!visible()){    FLTK_PARENT_WIDGET::show();#ifdef _NANOX    GrReparentWindow(fl_xid(this),fl_xid((Fl_Window*)parent()),x(),y());#endif  } else {    if(!shown())      FLTK_PARENT_WIDGET::show();  }  if(m_pWidget) {    m_pWidget->show();  }}void QWidget::hide(){  FLTK_PARENT_WIDGET::hide();  if(m_pWidget) {    m_pWidget->hide();  }}void QWidget::setWidget(Fl_Widget * w){  m_pWidget = w;  Fl_Group::add(w);}// CRHFl_Widget *QWidget::getWidget(){	return m_pWidget;}void QWidget::resize(int _x, int _y, int _w, int _h){  QSize old_size(width(), height());  QSize new_size(_w,_h);  QResizeEvent q(new_size,old_size);  FLTK_PARENT_WIDGET::resize(_x,_y,_w,_h);    resizeEvent(&q);  if(m_pWidget) {    m_pWidget->size(_w,_h);  }}void QWidget::setGeometry(int _x, int _y, int _w, int _h){  resize(_x,_y,_w,_h);}void QWidget::resizeEvent( QResizeEvent *){  //  cerr << "QWidget::resizeEvent\n";  }void QWidget::FillMouseEvent(QMouseEvent * e){/*  int x = parent() ? Fl::event_x() - parent()->x() : Fl::event_x();  int y = parent() ? Fl::event_y() - parent()->y() : Fl::event_y();*/  int x = Fl::event_x();  int y = Fl::event_y();  int b = Fl::event_state();  int b1 = 0;  if(b == FL_BUTTON1)    b1 = LeftButton;  else if(b== FL_BUTTON2)    b1 = RightButton;  else    b1 = MidButton;    e->setButton(b1);  e->setPos(QPoint(x,y));  e->setGlobalPos(QPoint(Fl::event_x(), Fl::event_y()));}void QWidget::initMetaObject(){}static int send(Fl_Widget* o, int event) {  if (o->type() < FL_WINDOW) return o->handle(event);  int save_x = Fl::e_x; Fl::e_x -= o->x();  int save_y = Fl::e_y; Fl::e_y -= o->y();  int ret = o->handle(event);  Fl::e_y = save_y;  Fl::e_x = save_x;  return ret;}int QWidget::handle(int event){  Fl_Widget*const* a = array();  int i;  Fl_Widget * o;  int ret = 0;  QMouseEvent e;  //  if(m_pWidget)  //    return Fl_Window::handle(event);    switch(event) {  case FL_PUSH:    FillMouseEvent(&e);    mousePressEvent(&e);    ret = 0;    break;  case FL_MOVE:    FillMouseEvent(&e);    //    mouseMoveEvent(&e);    ret = 0;    break;  case FL_RELEASE:    FillMouseEvent(&e);    mouseReleaseEvent(&e);    for (i = children(); i--;) {      o = a[i];      if (o->takesevents() && Fl::event_inside(o)) {	if (send(o,FL_RELEASE)) {	  return 1;	}      }    }    ret = 0;    break;  }  return Fl_Window::handle(event);  return ret;}

⌨️ 快捷键说明

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