| 
							- /* 
 -  * Patchbay Canvas engine using QGraphicsView/Scene
 -  * Copyright (C) 2010-2012 Filipe Coelho <falktx@falktx.com>
 -  *
 -  * 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
 -  * 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.
 -  *
 -  * For a full copy of the GNU General Public License see the COPYING file
 -  */
 - 
 - #ifndef PATCHCANVAS_H
 - #define PATCHCANVAS_H
 - 
 - #include <QtGui/QGraphicsItem>
 - 
 - #include "../patchcanvas.h"
 - 
 - #define foreach2(var, list) \
 -     for (int i=0; i < list.count(); i++) { var = list[i];
 - 
 - class QSettings;
 - class QTimer;
 - 
 - class CanvasObject : public QObject {
 -     Q_OBJECT
 - 
 - public:
 -     CanvasObject(QObject* parent=0);
 - 
 - public slots:
 -     void AnimationIdle();
 -     void AnimationHide();
 -     void AnimationDestroy();
 -     void CanvasPostponedGroups();
 -     void PortContextMenuDisconnect();
 - };
 - 
 - START_NAMESPACE_PATCHCANVAS
 - 
 - class AbstractCanvasLine;
 - class CanvasFadeAnimation;
 - class CanvasBox;
 - class CanvasPort;
 - class Theme;
 - 
 - // object types
 - enum CanvasType {
 -     CanvasBoxType           = QGraphicsItem::UserType + 1,
 -     CanvasIconType          = QGraphicsItem::UserType + 2,
 -     CanvasPortType          = QGraphicsItem::UserType + 3,
 -     CanvasLineType          = QGraphicsItem::UserType + 4,
 -     CanvasBezierLineType    = QGraphicsItem::UserType + 5,
 -     CanvasLineMovType       = QGraphicsItem::UserType + 6,
 -     CanvasBezierLineMovType = QGraphicsItem::UserType + 7
 - };
 - 
 - // object lists
 - struct group_dict_t {
 -     int group_id;
 -     QString group_name;
 -     bool split;
 -     Icon icon;
 -     CanvasBox* widgets[2];
 - };
 - 
 - struct port_dict_t {
 -     int group_id;
 -     int port_id;
 -     QString port_name;
 -     PortMode port_mode;
 -     PortType port_type;
 -     CanvasPort* widget;
 - };
 - 
 - struct connection_dict_t {
 -     int connection_id;
 -     int port_in_id;
 -     int port_out_id;
 -     AbstractCanvasLine* widget;
 - };
 - 
 - struct animation_dict_t {
 -     CanvasFadeAnimation* animation;
 -     QGraphicsItem* item;
 - };
 - 
 - // Main Canvas object
 - class Canvas {
 - public:
 -     Canvas();
 -     ~Canvas();
 - 
 -     PatchScene* scene;
 -     Callback callback;
 -     bool debug;
 -     unsigned long last_z_value;
 -     int last_connection_id;
 -     QPointF initial_pos;
 -     QRectF size_rect;
 -     QList<group_dict_t> group_list;
 -     QList<port_dict_t> port_list;
 -     QList<connection_dict_t> connection_list;
 -     QList<animation_dict_t> animation_list;
 -     CanvasObject* qobject;
 -     QSettings* settings;
 -     Theme* theme;
 -     bool initiated;
 - };
 - 
 - const char* bool2str(bool check);
 - const char* port_mode2str(PortMode port_mode);
 - const char* port_type2str(PortType port_type);
 - const char* icon2str(Icon icon);
 - const char* split2str(SplitOption split);
 - 
 - QString CanvasGetGroupName(int group_id);
 - int CanvasGetGroupPortCount(int group_id);
 - QPointF CanvasGetNewGroupPos(bool horizontal=false);
 - QString CanvasGetFullPortName(int port_id);
 - QList<int> CanvasGetPortConnectionList(int port_id);
 - int CanvasGetConnectedPort(int connection_id, int port_id);
 - void CanvasRemoveAnimation(CanvasFadeAnimation* f_animation);
 - void CanvasPostponedGroups();
 - void CanvasCallback(CallbackAction action, int value1, int value2, QString value_str);
 - void CanvasItemFX(QGraphicsItem* item, bool show, bool destroy=false);
 - void CanvasRemoveItemFX(QGraphicsItem* item);
 - 
 - // global objects
 - extern Canvas canvas;
 - extern options_t options;
 - extern features_t features;
 - 
 - END_NAMESPACE_PATCHCANVAS
 - 
 - #endif // PATCHCANVAS_H
 
 
  |