~ubuntu-branches/ubuntu/lucid/libsdl1.2/lucid-proposed

« back to all changes in this revision

Viewing changes to src/video/qtopia/SDL_QWin.h

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2006-07-03 11:30:59 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20060703113059-wtkvnv5lb2tnht1r
Tags: 1.2.10-3ubuntu1
* Merge from debian unstable. Remaining Ubuntu changes:
  - debian/control: Drop libsvga1-dev build dependency and dependencies,
    adapt package descriptions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
    SDL - Simple DirectMedia Layer
 
3
    Copyright (C) 1997-2006 Sam Lantinga
 
4
 
 
5
    This library is free software; you can redistribute it and/or
 
6
    modify it under the terms of the GNU Lesser General Public
 
7
    License as published by the Free Software Foundation; either
 
8
    version 2.1 of the License, or (at your option) any later version.
 
9
 
 
10
    This library is distributed in the hope that it will be useful,
 
11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
13
    Lesser General Public License for more details.
 
14
 
 
15
    You should have received a copy of the GNU Lesser General Public
 
16
    License along with this library; if not, write to the Free Software
 
17
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
18
 
 
19
    Sam Lantinga
 
20
    slouken@libsdl.org
 
21
*/
 
22
#include "SDL_config.h"
 
23
 
 
24
#ifndef _SDL_QWin_h
 
25
#define _SDL_QWin_h
 
26
 
 
27
#include <stdio.h>
 
28
 
 
29
#include <qimage.h>
 
30
#include <qpixmap.h>
 
31
#include <qwidget.h>
 
32
#include <qpainter.h>
 
33
#include <qdirectpainter_qws.h>
 
34
 
 
35
#include "SDL_events.h"
 
36
 
 
37
extern "C" {
 
38
#include "../../events/SDL_events_c.h"
 
39
};
 
40
 
 
41
typedef enum { 
 
42
    SDL_QT_NO_ROTATION = 0, 
 
43
    SDL_QT_ROTATION_90, 
 
44
    SDL_QT_ROTATION_270 
 
45
} screenRotationT;
 
46
 
 
47
extern screenRotationT screenRotation;
 
48
 
 
49
class SDL_QWin : public QWidget
 
50
{
 
51
  void QueueKey(QKeyEvent *e, int pressed);
 
52
 public:
 
53
  SDL_QWin(const QSize& size);
 
54
  virtual ~SDL_QWin();
 
55
  virtual bool shown(void) {
 
56
    return isVisible();
 
57
  }
 
58
  /* If called, the next resize event will not be forwarded to SDL. */
 
59
  virtual void inhibitResize(void) {
 
60
    my_inhibit_resize = true;
 
61
  }
 
62
  void setImage(QImage *image);
 
63
  void setOffset(int x, int y) {
 
64
    my_offset = QPoint(x, y);
 
65
  }
 
66
  void GetXYOffset(int &x, int &y) {
 
67
    x = my_offset.x();
 
68
    y = my_offset.y();
 
69
  }
 
70
  QImage *image(void) { return my_image; }
 
71
  
 
72
  void setWFlags(WFlags flags) {
 
73
    QWidget::setWFlags(flags);
 
74
    my_flags = flags;
 
75
  }
 
76
  const QPoint& mousePos() const { return my_mouse_pos; }
 
77
  void setMousePos(const QPoint& newpos);
 
78
  void setFullscreen(bool);
 
79
 
 
80
  bool lockScreen(bool force=false);
 
81
  void unlockScreen();
 
82
  void repaintRect(const QRect& rect);
 
83
 protected:
 
84
  /* Handle resizing of the window */
 
85
  virtual void resizeEvent(QResizeEvent *e);
 
86
  void focusInEvent(QFocusEvent *);
 
87
  void focusOutEvent(QFocusEvent *);
 
88
  void closeEvent(QCloseEvent *e);
 
89
  void mouseMoveEvent(QMouseEvent *e);
 
90
  void mousePressEvent(QMouseEvent *e);
 
91
  void mouseReleaseEvent(QMouseEvent *e);
 
92
  void paintEvent(QPaintEvent *ev);
 
93
  void keyPressEvent(QKeyEvent *e)   { QueueKey(e, 1); }
 
94
  void keyReleaseEvent(QKeyEvent *e) { QueueKey(e, 0); }
 
95
 private:
 
96
  bool repaintRotation0(const QRect& rect);
 
97
  bool repaintRotation1(const QRect& rect);
 
98
  bool repaintRotation3(const QRect& rect);
 
99
  void enableFullscreen();
 
100
  QDirectPainter *my_painter;
 
101
  QImage *my_image;
 
102
  bool my_inhibit_resize;
 
103
  QPoint my_offset;
 
104
  QPoint my_mouse_pos;
 
105
  WFlags my_flags;
 
106
  WFlags my_has_fullscreen;
 
107
  unsigned int my_locked;
 
108
};
 
109
 
 
110
#endif /* _SDL_QWin_h */