Navit SVN

/work/compile/navit/src/navit/graphics/qt_qpainter/graphics_qt_qpainter.h

00001 
00019 #ifndef __GRAPHICS_QT_QPAINTER_H
00020 #define __GRAPHICS_QT_QPAINTER_H
00021 
00022 #include <glib.h>
00023 #include <stdio.h>
00024 #include <stdlib.h>
00025 #include "config.h"
00026 #include "navit/point.h"
00027 #include "navit/item.h"
00028 #include "navit/graphics.h"
00029 #include "navit/color.h"
00030 #include "navit/debug.h"
00031 #include "navit/plugin.h"
00032 #include "navit/callback.h"
00033 #include "navit/event.h"
00034 #include "navit/window.h"
00035 #include "navit/keys.h"
00036 #include "navit/navit.h"
00037 
00038 #include <qglobal.h>
00039 
00040 #ifndef QT_QPAINTER_USE_FREETYPE
00041 #define QT_QPAINTER_USE_FREETYPE 1
00042 #endif
00043 
00044 #if QT_QPAINTER_USE_FREETYPE
00045 #include "navit/font/freetype/font_freetype.h"
00046 #endif
00047 
00048 #if QT_VERSION < 0x040000
00049 #include <qwidget.h>
00050 #include <qapplication.h>
00051 #include <qpainter.h>
00052 #include <qpen.h>
00053 #include <qbrush.h>
00054 #include <qimage.h>
00055 #include <qpixmap.h>
00056 #include <qpixmapcache.h>
00057 #include <qlistview.h>
00058 #include <qobject.h>
00059 #include <qsocketnotifier.h>
00060 #ifdef HAVE_QPE
00061 #include <qpe/qpeapplication.h>
00062 #endif
00063 #ifndef QT_QPAINTER_USE_EVENT_QT
00064 #define QT_QPAINTER_USE_EVENT_QT 1
00065 #endif
00066 #else
00067 #include <QResizeEvent>
00068 #include <QApplication>
00069 #if QT_VERSION >= 0x040200
00070 #include <QGraphicsScene>
00071 #include <QGraphicsView>
00072 #endif
00073 #include <QPainter>
00074 #include <QPen>
00075 #include <QBrush>
00076 #include <QPixmap>
00077 #include <QWidget>
00078 #include <QPolygonF>
00079 #include <QPixmapCache>
00080 #include <QtGui>
00081 #ifdef HAVE_QT_SVG
00082 #include <QSvgRenderer>
00083 #endif
00084 
00085 #ifndef QT_QPAINTER_USE_EVENT_GLIB
00086 #define QT_QPAINTER_USE_EVENT_GLIB 1
00087 #endif
00088 
00089 #ifdef Q_WS_X11
00090 #ifndef QT_QPAINTER_USE_EMBEDDING
00091 #define QT_QPAINTER_USE_EMBEDDING 1
00092 #endif
00093 #endif
00094 
00095 #endif
00096 
00097 #if QT_QPAINTER_USE_EMBEDDING
00098 #include <QX11EmbedWidget>
00099 #endif
00100 
00101 #ifndef QT_QPAINTER_RENDERAREA_PARENT
00102 #define QT_QPAINTER_RENDERAREA_PARENT QWidget
00103 #endif
00104 
00105 class RenderArea;
00106 
00107 //##############################################################################################################
00108 //# Description: 
00109 //# Comment: 
00110 //# Authors: Martin Schaller (04/2008)
00111 //##############################################################################################################
00112 struct graphics_gc_priv {
00113         QPen *pen;
00114         QBrush *brush;
00115         struct color c;
00116 };
00117 
00118 //##############################################################################################################
00119 //# Description: 
00120 //# Comment: 
00121 //# Authors: Martin Schaller (04/2008)
00122 //##############################################################################################################
00123 struct graphics_priv {
00124 #ifdef HAVE_QPE
00125         QPEApplication *app;
00126 #else
00127         QApplication *app;
00128 #endif
00129         RenderArea *widget;
00130         QPainter *painter;
00131         struct graphics_gc_priv *background_gc;
00132         unsigned char rgba[4];
00133         enum draw_mode_num mode;
00134         struct graphics_priv *parent,*overlays,*next;
00135         struct point p,pclean;
00136         int cleanup;
00137         int overlay_disable;
00138         int wraparound;
00139 #if QT_QPAINTER_USE_FREETYPE
00140         struct font_priv * (*font_freetype_new)(void *meth);
00141         struct font_freetype_methods freetype_methods;
00142 #endif
00143         int w,h,flags;
00144         struct navit* nav;
00145         char *window_title;
00146 };
00147 
00148 void qt_qpainter_draw(struct graphics_priv *gr, const QRect *r, int paintev);
00149 struct event_watch {
00150                 QSocketNotifier *sn;
00151                         struct callback *cb;
00152                                 void *fd;
00153 };
00154 
00155 void event_qt_remove_timeout(struct event_timeout *ev);
00156 
00157 #endif /* __GRAPHICS_QT_QPAINTER_H */