Files
lmms/include/ControllerView.h
Michael Gregorius cd0176b5af Controllers are rendered more dynamically
ControllerRackView now uses a layout to organize the ControllerViews.
The ControllerViews in turn use layouts to organize their widgets
(labels and push button). ControllerView now inherits from QFrame
instead of QWidget. The (static) background image for controllers was
deleted because the ControllerView can now be resized dynamically.

Song: Added specific signals for added and removed controllers. Also
removed a TODO by putting the functionality to remove all controllers in
a method (removeAllControllers).

Deleted Controllers now don't unregister from Song during deletion. This
has to be done by the client (Hollywood principle - "Don't call us, we
call you.").

TODO: For some strange reason I cannot programmatically resize the
controller rack to make it fit the controllers on my screen.
2015-07-29 22:35:06 +02:00

86 lines
1.9 KiB
C++

/*
* ControllerView.h - view-component for an control
*
* Copyright (c) 2008 Paul Giblock <drfaygo/at/gmail.com>
*
* This file is part of LMMS - http://lmms.io
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program 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
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program (see COPYING); if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
*/
#ifndef CONTROLLER_VIEW_H
#define CONTROLLER_VIEW_H
#include <QFrame>
#include "AutomatableModel.h"
#include "Controller.h"
#include "ModelView.h"
class QGroupBox;
class QLabel;
class QPushButton;
class QMdiSubWindow;
class LedCheckBox;
class ControllerView : public QFrame, public ModelView
{
Q_OBJECT
public:
ControllerView( Controller * _controller, QWidget * _parent );
virtual ~ControllerView();
inline Controller * getController()
{
return( castModel<Controller>() );
}
inline const Controller * getController() const
{
return( castModel<Controller>() );
}
public slots:
void editControls();
void deleteController();
void displayHelp();
void closeControls();
signals:
void deleteController( ControllerView * _view );
protected:
virtual void contextMenuEvent( QContextMenuEvent * _me );
virtual void modelChanged();
virtual void mouseDoubleClickEvent( QMouseEvent * event );
private:
QMdiSubWindow * m_subWindow;
ControllerDialog * m_controllerDlg;
QLabel * m_nameLabel;
bool m_show;
} ;
#endif