<class name="QSplitterHandle" doc="/**
&lt;p&gt;The &lt;a href=&quot;QSplitterHandle.html#QSplitterHandle(com.trolltech.qt.core.Qt.Orientation, com.trolltech.qt.gui.QSplitter)&quot;&gt;&lt;tt&gt;QSplitterHandle&lt;/tt&gt;&lt;/a&gt; class provides handle functionality of the splitter.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;QSplitterHandle.html#QSplitterHandle(com.trolltech.qt.core.Qt.Orientation, com.trolltech.qt.gui.QSplitter)&quot;&gt;&lt;tt&gt;QSplitterHandle&lt;/tt&gt;&lt;/a&gt; is typically what people think about when they think about a splitter. It is the handle that is used to resize the widgets.&lt;/p&gt;
&lt;p&gt;A typical developer using &lt;a href=&quot;QSplitter.html&quot;&gt;&lt;tt&gt;QSplitter&lt;/tt&gt;&lt;/a&gt; will never have to worry about &lt;a href=&quot;QSplitterHandle.html#QSplitterHandle(com.trolltech.qt.core.Qt.Orientation, com.trolltech.qt.gui.QSplitter)&quot;&gt;&lt;tt&gt;QSplitterHandle&lt;/tt&gt;&lt;/a&gt;. It is provided for developers who want splitter handles that provide extra features, such as popup menus.&lt;/p&gt;
&lt;p&gt;The typical way one would create splitter handles is to subclass &lt;a href=&quot;QSplitter.html&quot;&gt;&lt;tt&gt;QSplitter&lt;/tt&gt;&lt;/a&gt; then reimplement QSplitter::createHandle() to instantiate the custom splitter handle. For example, a minimum &lt;a href=&quot;QSplitter.html&quot;&gt;&lt;tt&gt;QSplitter&lt;/tt&gt;&lt;/a&gt; subclass might look like this:&lt;/p&gt;
&lt;pre&gt;    class Splitter : public QSplitter
    {
    public:
        Splitter(Qt::Orientation orientation, QWidget *parent = 0);

    protected:
        QSplitterHandle *createHandle();
    };&lt;/pre&gt;
&lt;p&gt;The createHandle() implementation simply constructs a custom splitter handle, called &lt;tt&gt;Splitter&lt;/tt&gt; in this example:&lt;/p&gt;
&lt;pre&gt;    QSplitterHandle *Splitter::createHandle()
    {
        return new SplitterHandle(orientation(), this);
    }&lt;/pre&gt;
&lt;p&gt;Information about a given handle can be obtained using functions like &lt;a href=&quot;QSplitterHandle.html#orientation()&quot;&gt;&lt;tt&gt;orientation&lt;/tt&gt;&lt;/a&gt; and &lt;a href=&quot;QSplitterHandle.html#opaqueResize()&quot;&gt;&lt;tt&gt;opaqueResize&lt;/tt&gt;&lt;/a&gt;, and is retrieved from its parent splitter. Details like these can be used to give custom handles different appearances depending on the splitter's orientation.&lt;/p&gt;
&lt;p&gt;The complexity of a custom handle subclass depends on the tasks that it needs to perform. A simple subclass might only provide a &lt;a href=&quot;QSplitterHandle.html#paintEvent(com.trolltech.qt.gui.QPaintEvent)&quot;&gt;&lt;tt&gt;paintEvent&lt;/tt&gt;&lt;/a&gt; implementation:&lt;/p&gt;
&lt;pre&gt;    void SplitterHandle::paintEvent(QPaintEvent *event)
    {
        QPainter painter(this);
        if (orientation() == Qt::Horizontal) {
            gradient.setStart(rect().left(), rect().height()/2);
            gradient.setFinalStop(rect().right(), rect().height()/2);
        } else {
            gradient.setStart(rect().width()/2, rect().top());
            gradient.setFinalStop(rect().width()/2, rect().bottom());
        }
        painter.fillRect(event-&amp;gt;rect(), QBrush(gradient));
    }&lt;/pre&gt;
&lt;p&gt;In this example, a predefined gradient is set up differently depending on the orientation of the handle. &lt;a href=&quot;QSplitterHandle.html#QSplitterHandle(com.trolltech.qt.core.Qt.Orientation, com.trolltech.qt.gui.QSplitter)&quot;&gt;&lt;tt&gt;QSplitterHandle&lt;/tt&gt;&lt;/a&gt; provides a reasonable size hint for the handle, so the subclass does not need to provide a reimplementation of &lt;a href=&quot;QSplitterHandle.html#sizeHint()&quot;&gt;&lt;tt&gt;sizeHint&lt;/tt&gt;&lt;/a&gt; unless the handle has special size requirements.&lt;/p&gt;

@see &lt;a href=&quot;QSplitter.html&quot;&gt;&lt;tt&gt;QSplitter&lt;/tt&gt;&lt;/a&gt; */">
    <signal name="protected final void customContextMenuRequested(com.trolltech.qt.core.QPoint pos)" doc="/**
&lt;p&gt;This signal is emitted when the widget's &lt;a href=&quot;QWidget.html#contextMenuPolicy()&quot;&gt;&lt;tt&gt;contextMenuPolicy&lt;/tt&gt;&lt;/a&gt; is Qt::CustomContextMenu, and the user has requested a context menu on the widget. The position &lt;tt&gt;pos&lt;/tt&gt; is the position of the context menu event that the widget receives. Normally this is in widget coordinates. The exception to this rule is &lt;a href=&quot;QAbstractScrollArea.html&quot;&gt;&lt;tt&gt;QAbstractScrollArea&lt;/tt&gt;&lt;/a&gt; and its subclasses that map the context menu event to coordinates of the viewport()&lt;/tt&gt; .&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;b&gt;Compatible Slot Signatures:&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;tt&gt;void mySlot(com.trolltech.qt.core.QPoint pos)&lt;/tt&gt;&lt;/dd&gt;
&lt;dd&gt;&lt;tt&gt;void mySlot()&lt;/tt&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;a href=&quot;QWidget.html#mapToGlobal(com.trolltech.qt.core.QPoint)&quot;&gt;&lt;tt&gt;mapToGlobal&lt;/tt&gt;&lt;/a&gt;, &lt;a href=&quot;QMenu.html&quot;&gt;&lt;tt&gt;QMenu&lt;/tt&gt;&lt;/a&gt;, &lt;a href=&quot;QWidget.html#contextMenuPolicy()&quot;&gt;&lt;tt&gt;contextMenuPolicy&lt;/tt&gt;&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
 */"/>
    <method name="public QSplitterHandle(com.trolltech.qt.core.Qt.Orientation o, com.trolltech.qt.gui.QSplitter parent)" doc="/**
&lt;p&gt;Creates a &lt;a href=&quot;QSplitter.html&quot;&gt;&lt;tt&gt;QSplitter&lt;/tt&gt;&lt;/a&gt; handle with the given &lt;tt&gt;o&lt;/tt&gt; and &lt;a href=&quot;QSplitter.html&quot;&gt;&lt;tt&gt;QSplitter&lt;/tt&gt;&lt;/a&gt; &lt;tt&gt;parent&lt;/tt&gt;.&lt;/p&gt;
 */"/>
    <method name="protected final int closestLegalPosition(int p)" doc="/**
&lt;p&gt;Returns the closest legal position to &lt;tt&gt;p&lt;/tt&gt; of the splitter handle. The positions are measured from the left or top edge of the splitter, even for right-to-left languages.&lt;/p&gt;

@see &lt;tt&gt;QSplitter::closestLegalPosition&lt;/tt&gt;
@see &lt;a href=&quot;QSplitterHandle.html#moveSplitter(int)&quot;&gt;&lt;tt&gt;moveSplitter&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="protected final void moveSplitter(int p)" doc="/**
&lt;p&gt;Tells the splitter to move this handle to position &lt;tt&gt;p&lt;/tt&gt;, which is the distance from the left or top edge of the widget.&lt;/p&gt;
&lt;p&gt;Note that &lt;tt&gt;p&lt;/tt&gt; is also measured from the left (or top) for right-to-left languages. This function will map &lt;tt&gt;p&lt;/tt&gt; to the appropriate position before calling QSplitter::moveSplitter().&lt;/p&gt;

@see &lt;tt&gt;QSplitter::moveSplitter&lt;/tt&gt;
@see &lt;a href=&quot;QSplitterHandle.html#closestLegalPosition(int)&quot;&gt;&lt;tt&gt;closestLegalPosition&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final boolean opaqueResize()" doc="/**
&lt;p&gt;Returns true if widgets are resized dynamically (opaquely), otherwise returns false. This value is controlled by the &lt;a href=&quot;QSplitter.html&quot;&gt;&lt;tt&gt;QSplitter&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;

@see &lt;tt&gt;QSplitter::opaqueResize&lt;/tt&gt; */"/>
    <method name="public final com.trolltech.qt.core.Qt.Orientation orientation()" doc="/**
&lt;p&gt;Returns the handle's orientation. This is usually propagated from the &lt;a href=&quot;QSplitter.html&quot;&gt;&lt;tt&gt;QSplitter&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;

@see &lt;a href=&quot;QSplitterHandle.html#setOrientation(com.trolltech.qt.core.Qt.Orientation)&quot;&gt;&lt;tt&gt;setOrientation&lt;/tt&gt;&lt;/a&gt;
@see &lt;tt&gt;QSplitter::orientation&lt;/tt&gt; */"/>
    <method name="public final void setOrientation(com.trolltech.qt.core.Qt.Orientation o)" doc="/**
&lt;p&gt;Sets the orientation of the splitter handle to &lt;tt&gt;o&lt;/tt&gt;. This is usually propogated from the &lt;a href=&quot;QSplitter.html&quot;&gt;&lt;tt&gt;QSplitter&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;

@see &lt;a href=&quot;QSplitterHandle.html#orientation()&quot;&gt;&lt;tt&gt;orientation&lt;/tt&gt;&lt;/a&gt;
@see &lt;tt&gt;QSplitter::setOrientation&lt;/tt&gt; */"/>
    <method name="public final com.trolltech.qt.gui.QSplitter splitter()" doc="/**
&lt;p&gt;Returns the splitter associated with this splitter handle.&lt;/p&gt;

@see &lt;tt&gt;QSplitter::handle&lt;/tt&gt; */"/>
    <method name="public boolean event(com.trolltech.qt.core.QEvent arg__1)" doc="/**
&lt;p&gt;This function is reimplemented for internal reasons.&lt;/p&gt;
 */"/>
    <method name="protected void mouseMoveEvent(com.trolltech.qt.gui.QMouseEvent arg__1)" doc="/**
&lt;p&gt;This function is reimplemented for internal reasons.&lt;/p&gt;
 */"/>
    <method name="protected void mousePressEvent(com.trolltech.qt.gui.QMouseEvent arg__1)" doc="/**
&lt;p&gt;This function is reimplemented for internal reasons.&lt;/p&gt;
 */"/>
    <method name="protected void mouseReleaseEvent(com.trolltech.qt.gui.QMouseEvent arg__1)" doc="/**
&lt;p&gt;This function is reimplemented for internal reasons.&lt;/p&gt;
 */"/>
    <method name="protected void paintEvent(com.trolltech.qt.gui.QPaintEvent arg__1)" doc="/**
&lt;p&gt;This function is reimplemented for internal reasons.&lt;/p&gt;
 */"/>
    <method name="public com.trolltech.qt.core.QSize sizeHint()" doc="/**
&lt;p&gt;This function is reimplemented for internal reasons.&lt;/p&gt;
 */"/>
</class>
