/usr/include/plasma/dialog.h is in kdelibs5-dev 4:4.8.2-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | /*
* Copyright 2008 by Alessandro Diaferia <alediaferia@gmail.com>
* Copyright 2007 by Alexis Ménard <darktears31@gmail.com>
* Copyright 2007 Sebastian Kuegler <sebas@kde.org>
* Copyright 2006 Aaron Seigo <aseigo@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301 USA
*/
#ifndef PLASMA_DIALOG_H
#define PLASMA_DIALOG_H
#include <QtGui/QWidget>
#include <QtGui/QGraphicsSceneEvent>
#include <QtGui/QGraphicsView>
#include <plasma/plasma_export.h>
#include <plasma/plasma.h>
namespace Plasma
{
class DialogPrivate;
/**
* @class Dialog plasma/dialog.h <Plasma/Dialog>
*
* @short A dialog that uses the Plasma style
*
* Dialog provides a dialog-like widget that can be used to display additional
* information.
*
* Dialog uses the plasma theme, and usually has no window decoration. It's meant
* as an interim solution to display widgets as extension to plasma applets, for
* example when you click on an applet like the devicenotifier or the clock, the
* widget that is then displayed, is a Dialog.
*/
class PLASMA_EXPORT Dialog : public QWidget
{
Q_OBJECT
public:
/**
* Use these flags to choose the active resize corners.
*/
enum ResizeCorner {
NoCorner = 0,
NorthEast = 1,
SouthEast = 2,
NorthWest = 4,
SouthWest = 8,
All = NorthEast | SouthEast | NorthWest | SouthWest
};
Q_DECLARE_FLAGS(ResizeCorners, ResizeCorner)
/**
* @param parent the parent widget, for plasmoids, this is usually 0.
* @param f the Qt::WindowFlags, default is to not show a windowborder.
*/
explicit Dialog(QWidget * parent = 0, Qt::WindowFlags f = Qt::Window);
virtual ~Dialog();
/**
* Sets a QGraphicsWidget to be shown as the content in this dialog.
* The dialog will then set up a QGraphicsView and coordinate geometry with
* the widget automatically.
*
* @param widget the QGraphicsWidget to display in this dialog
*/
void setGraphicsWidget(QGraphicsWidget *widget);
/**
* @return the graphics widget shown in this dialog
*/
QGraphicsWidget *graphicsWidget();
/**
* @param corners the corners the resize handlers should be placed in.
*/
void setResizeHandleCorners(ResizeCorners corners);
/**
* Convenience method to get the enabled resize corners.
* @return which resize corners are active.
*/
ResizeCorners resizeCorners() const;
/**
* @return true if currently being resized by the user
*/
bool isUserResizing() const;
/**
* Sets the minimum values that each of four sides of the rect may expand to or from
*
* @param left the screen coordinate that the left may not go beyond; -1 for no limit
* @param top the screen coordinate that the top may not go beyond; -1 for no limit
* @param right the screen coordinate that the right may not go beyond; -1 for no limit
* @param bottom the screen coordinate that the bottom may not go beyond; -1 for no limit
*/
void setMinimumResizeLimits(int left, int top, int right, int bottom);
/**
* Retrives the minimum resize limits for the dialog
*
* @param left the screen coordinate that the left may not go beyond; -1 for no limit
* @param top the screen coordinate that the top may not go beyond; -1 for no limit
* @param right the screen coordinate that the right may not go beyond; -1 for no limit
* @param bottom the screen coordinate that the bottom may not go beyond; -1 for no limit
*/
void getMinimumResizeLimits(int *left, int *top, int *right, int *bottom);
/**
* Causes an animated hide; requires compositing to work, otherwise
* the dialog will simply hide.
* @since 4.3
*/
void animatedHide(Plasma::Direction direction);
/**
* Causes an animated show; requires compositing to work, otherwise
* the dialog will simply show.
* @since 4.3
*/
void animatedShow(Plasma::Direction direction);
/**
* @return the preferred aspect ratio mode for placement and resizing
* @since 4.4
*/
Plasma::AspectRatioMode aspectRatioMode() const;
/**
* Sets the preferred aspect ratio mode for placement and resizing
* @since 4.4
*/
void setAspectRatioMode(Plasma::AspectRatioMode mode);
Q_SIGNALS:
/**
* Fires when the dialog automatically resizes.
*/
void dialogResized();
/**
* Emit a signal when the dialog become visible/invisible
*/
void dialogVisible(bool status);
public Q_SLOTS:
/**
* Adjusts the dialog to the associated QGraphicsWidget's geometry
* Should not normally need to be called by users of Dialog as Dialog
* does it automatically. Event compression may cause unwanted delays,
* however, and so this method may be called to immediately cause a
* synchronization.
* @since 4.5
*/
void syncToGraphicsWidget();
protected:
/**
* Reimplemented from QWidget
*/
void paintEvent(QPaintEvent *e);
bool event(QEvent *event);
void resizeEvent(QResizeEvent *e);
bool eventFilter(QObject *watched, QEvent *event);
void hideEvent(QHideEvent *event);
void showEvent(QShowEvent *event);
void focusInEvent(QFocusEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void keyPressEvent(QKeyEvent *event);
void moveEvent(QMoveEvent *event);
/**
* Convenience method to know whether the point is in a control area (e.g. resize area)
* or not.
* @return true if the point is in the control area.
*/
bool inControlArea(const QPoint &point);
private:
DialogPrivate *const d;
friend class DialogPrivate;
/**
* React to theme changes
*/
Q_PRIVATE_SLOT(d, void themeChanged())
Q_PRIVATE_SLOT(d, void checkBorders())
Q_PRIVATE_SLOT(d, void delayedAdjustSize())
friend class PopupAppletPrivate;
};
} // Plasma namespace
Q_DECLARE_OPERATORS_FOR_FLAGS(Plasma::Dialog::ResizeCorners)
#endif
|