/usr/include/Wt/WPopupWidget is in libwt-dev 3.3.4+dfsg-6ubuntu1.
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 | // This may look like C code, but it's really -*- C++ -*-
/*
* Copyright (C) 2012 Emweb bvba, Kessel-Lo, Belgium.
*
* See the LICENSE file for terms of use.
*/
#ifndef WPOPUP_WIDGET_H_
#define WPOPUP_WIDGET_H_
#include <Wt/WCompositeWidget>
namespace Wt {
/*! \class WPopupWidget Wt/WPopupWidget Wt/WPopupWidget
* \brief Base class for popup widgets.
*
* A popup widget anchors to another widget, for which it usually
* provides additional information or assists in editing, etc...
*
* The popup widget will position itself relative to the anchor widget
* by taking into account available space, and switching sides if
* necessary to fit the widget into the current window. For example, a
* vertically anchored widget will by default be a "drop-down",
* positioning itself under the anchor widget, but it may also choose
* to position itself above the anchor widget if space is lacking
* below.
*/
class WT_API WPopupWidget : public WCompositeWidget
{
public:
/*! \brief Constructor.
*
* You need to pass in a widget that provides the main contents of the
* widget (e.g. a WTemplate or WContainerWidget).
*
* Unlike other widgets, a popup widget does not need a parent
* widget (it acts like a pseudo top-level widget), but it can be
* given a parent object which is used to scope its lifetime.
*/
WPopupWidget(WWidget *impl, WObject *parent = 0);
/*! \brief Destructor.
*/
virtual ~WPopupWidget();
/*! \brief Sets an anchor widget.
*
* A vertical popup will show below (or above) the widget, while a
* horizontal popup will show right (or left) of the widget.
*/
void setAnchorWidget(WWidget *widget, Orientation orientation = Vertical);
/* \brief Returns the anchor widget.
*
* \sa setAnchorWidget()
*/
WWidget *anchorWidget() const { return anchorWidget_; }
/*! \brief Returns the orientation.
*
* \sa setOrientation()
*/
Orientation orientation() const { return orientation_; }
/*! \brief Sets transient property.
*
* A transient popup will automatically hide when the user clicks
* outside of the popup. When \p autoHideDelay is not 0, then it
* will also automatically hide when the user moves the mouse
* outside the widget for longer than this delay.
*/
void setTransient(bool transient, int autoHideDelay = 0);
/*! \brief Returns whether the popup is transient.
*
* \sa setTransient()
*/
bool isTransient() const { return transient_; }
/*! \brief Returns the auto-hide delay.
*
* \sa setTransient()
*/
int autoHideDelay() const { return autoHideDelay_; }
/*! \brief Lets the popup delete itself when hidden.
*
* When this is enabled, the popup will delete itself when
* hidden. You need to take care that when overriding setHidden(),
* the popup may thus be deleted from within
* WPopupWidget::setHidden().
*
* The default value is \c false.
*/
void setDeleteWhenHidden(bool enabled);
/*! \brief Returns whether auto delete is enabled.
*
* \sa setDeleteWhenHidden()
*/
bool isDeleteWhenHidden() const { return deleteWhenHidden_; }
virtual void setHidden(bool hidden,
const WAnimation& animation = WAnimation());
/*! \brief %Signal emitted when the popup is hidden.
*
* This signal is emitted when the popup is being hidden because of a
* client-side event (not when setHidden() or hide() is called).
*/
Signal<>& hidden() { return hidden_; }
/*! \brief %Signal emitted when the popup is shown.
*
* This signal is emitted when the popup is being hidden because of a
* client-side event (not when setHidden() or show() is called).
*/
Signal<>& shown() { return shown_; }
protected:
virtual void render(WFlags<RenderFlag> flags);
virtual void setParent(WObject *parent);
private:
WObject *fakeParent_;
WWidget *anchorWidget_;
Orientation orientation_;
bool transient_;
int autoHideDelay_;
bool deleteWhenHidden_;
Signal<> hidden_, shown_;
JSignal<> jsHidden_, jsShown_;
void create(WWidget *parent);
void defineJS();
};
}
#endif // WPOPUP_WIDGET_H_
|