2013-08-09 13:04:52 +00:00
|
|
|
/*
|
|
|
|
* \brief A Qt Widget that shows a nitpicker view
|
|
|
|
* \author Christian Prochaska
|
|
|
|
* \date 2010-08-26
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
2017-02-20 12:23:52 +00:00
|
|
|
* Copyright (C) 2010-2017 Genode Labs GmbH
|
2013-08-09 13:04:52 +00:00
|
|
|
*
|
|
|
|
* This file is part of the Genode OS framework, which is distributed
|
2017-02-20 12:23:52 +00:00
|
|
|
* under the terms of the GNU Affero General Public License version 3.
|
2013-08-09 13:04:52 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef QNITPICKERVIEWWIDGET_H
|
|
|
|
#define QNITPICKERVIEWWIDGET_H
|
|
|
|
|
|
|
|
#include <QtWidgets>
|
|
|
|
#if 0
|
|
|
|
#include <qwindowsystem_qws.h>
|
|
|
|
#endif
|
|
|
|
|
2020-06-11 12:27:20 +00:00
|
|
|
#include <gui_session/client.h>
|
2013-08-09 13:04:52 +00:00
|
|
|
|
2014-06-11 14:22:44 +00:00
|
|
|
|
|
|
|
class QEmbeddedViewWidget : public QWidget
|
2013-08-09 13:04:52 +00:00
|
|
|
{
|
2014-06-11 14:22:44 +00:00
|
|
|
Q_OBJECT
|
2013-08-09 13:04:52 +00:00
|
|
|
|
|
|
|
private:
|
2014-06-11 14:22:44 +00:00
|
|
|
|
|
|
|
QHash<QScrollBar*, bool> _scrollbars;
|
|
|
|
|
|
|
|
int _orig_w = 0;
|
|
|
|
int _orig_h = 0;
|
|
|
|
int _orig_buf_x = 0;
|
|
|
|
int _orig_buf_y = 0;
|
2013-08-09 13:04:52 +00:00
|
|
|
|
|
|
|
private slots:
|
2014-06-11 14:22:44 +00:00
|
|
|
|
|
|
|
void valueChanged();
|
|
|
|
void destroyed(QObject *obj = 0);
|
2013-08-09 13:04:52 +00:00
|
|
|
|
|
|
|
protected:
|
2014-06-06 15:26:53 +00:00
|
|
|
|
2014-06-11 14:22:44 +00:00
|
|
|
struct View_geometry
|
|
|
|
{
|
|
|
|
int x, y, w, h, buf_x, buf_y;
|
|
|
|
};
|
|
|
|
|
|
|
|
QEmbeddedViewWidget(QWidget *parent = 0);
|
2014-06-06 15:26:53 +00:00
|
|
|
|
2014-06-11 14:22:44 +00:00
|
|
|
virtual ~QEmbeddedViewWidget();
|
2013-08-09 13:04:52 +00:00
|
|
|
|
2014-06-11 14:22:44 +00:00
|
|
|
void _orig_geometry(int w, int h, int buf_x, int buf_y)
|
|
|
|
{
|
|
|
|
_orig_w = w;
|
|
|
|
_orig_h = h;
|
|
|
|
_orig_buf_x = buf_x;
|
|
|
|
_orig_buf_y = buf_y;
|
|
|
|
}
|
|
|
|
|
|
|
|
View_geometry _calc_view_geometry();
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class QNitpickerViewWidget : public QEmbeddedViewWidget
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
Nitpicker::Session_client *nitpicker;
|
|
|
|
Nitpicker::Session::View_handle view_handle;
|
|
|
|
|
|
|
|
virtual void showEvent(QShowEvent *event);
|
|
|
|
virtual void hideEvent(QHideEvent *event);
|
|
|
|
virtual void paintEvent(QPaintEvent *event);
|
2014-12-04 15:20:56 +00:00
|
|
|
virtual void focusInEvent(QFocusEvent * event);
|
2013-08-09 13:04:52 +00:00
|
|
|
|
|
|
|
public:
|
2014-06-11 14:22:44 +00:00
|
|
|
|
|
|
|
QNitpickerViewWidget(QWidget *parent =0);
|
|
|
|
~QNitpickerViewWidget();
|
|
|
|
void setNitpickerView(Nitpicker::Session_client *nitpicker,
|
|
|
|
Nitpicker::Session::View_handle view_handle,
|
|
|
|
int buf_x, int buf_y, int w, int h);
|
2013-08-09 13:04:52 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // QNITPICKERVIEWWIDGET_H
|