1/* This file is part of the KDE libraries
2 Copyright (C) 2006 Hamish Rodda <rodda@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License version 2 as published by the Free Software Foundation.
7
8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details.
12
13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16 Boston, MA 02110-1301, USA.
17*/
18
19#ifndef KTOOLBARSPACERACTION_H
20#define KTOOLBARSPACERACTION_H
21
22#include "kaction.h"
23
24/**
25 * An extension to KAction which allows for adding a spacer item into a
26 * QToolBar / KToolBar.
27 *
28 * Use this as the replacement for the old KToolBar::alignItemRight().
29 *
30 * @author Hamish Rodda <rodda@kde.org>
31 */
32class KDEUI_EXPORT KToolBarSpacerAction : public KAction
33{
34 Q_OBJECT
35 Q_PROPERTY( int width READ width WRITE setWidth )
36 Q_PROPERTY( int minimumWidth READ minimumWidth WRITE setMinimumWidth )
37 Q_PROPERTY( int maximumWidth READ maximumWidth WRITE setMaximumWidth )
38
39 public:
40 /**
41 * Creates a new toolbar spacer action.
42 *
43 * @param parent The action's parent object.
44 */
45 explicit KToolBarSpacerAction(QObject *parent);
46
47 ~KToolBarSpacerAction();
48
49 /**
50 * Returns the width of the spacer item.
51 */
52 int width() const;
53
54 /**
55 * Sets the @param width of the spacer item.
56 */
57 void setWidth( int width );
58
59 /**
60 * Returns the minimum width of the spacer item.
61 */
62 int minimumWidth() const;
63
64 /**
65 * Sets the minimum @param width of the spacer item.
66 */
67 void setMinimumWidth( int width );
68
69 /**
70 * Returns the maximum width of the spacer item.
71 */
72 int maximumWidth() const;
73
74 /**
75 * Sets the maximum @param width of the spacer item.
76 */
77 void setMaximumWidth( int width );
78
79 /**
80 * Reimplemented from @see QActionWidgetFactory.
81 */
82 virtual QWidget* createWidget( QWidget* parent );
83
84 /**
85 * Reimplemented from @see QWidgetAction.
86 */
87 virtual void deleteWidget(QWidget *widget);
88
89
90 private:
91 class Private;
92 Private* const d;
93
94 Q_PRIVATE_SLOT( d, void _k_spacerDestroyed( QObject* ) )
95};
96
97#endif
98