"Post Window" -> "Post window" prevents it being seen as two separate
[supercollider.git] / QtCollider / widgets / BasicWidgets.cpp
blob33a8738dcafddb276d113fe5c96bb918e056de37
1 /************************************************************************
3 * Copyright 2010 Jakob Leben (jakob.leben@gmail.com)
5 * This file is part of SuperCollider Qt GUI.
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 ************************************************************************/
22 #include "BasicWidgets.h"
23 #include "../QcWidgetFactory.h"
25 #include <QPaintEvent>
26 #include <QPainter>
28 QC_DECLARE_QWIDGET_FACTORY( QcDefaultWidget );
29 QC_DECLARE_QWIDGET_FACTORY( QcHLayoutWidget );
30 QC_DECLARE_QWIDGET_FACTORY( QcVLayoutWidget );
32 void QcSimpleWidget::setBackground( const QColor &c )
34 if(_bkg == c) return;
36 _bkg = c;
37 setAttribute(Qt::WA_OpaquePaintEvent, c.isValid() && c.alpha() == 255);
38 update();
41 void QcSimpleWidget::paintEvent( QPaintEvent *e )
43 if (!_bkg.isValid()) return;
45 QPainter p(this);
46 p.fillRect(e->rect(), _bkg);
49 class QcCustomPaintedFactory : public QcWidgetFactory<QcCustomPainted>
51 protected:
52 virtual void initialize( QWidgetProxy *p, QcCustomPainted *w )
54 QObject::connect( w, SIGNAL(painting(QPainter*)),
55 p, SLOT(customPaint(QPainter*)) );
59 QC_DECLARE_FACTORY( QcCustomPainted, QcCustomPaintedFactory );