BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bstcanvaslink.hh
Go to the documentation of this file.
00001  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
00002 #ifndef __BST_CANVAS_LINK_H__
00003 #define __BST_CANVAS_LINK_H__
00004 
00005 #include        "bstutils.hh"
00006 #include        "bstcanvassource.hh"
00007 
00008 
00009 #ifdef __cplusplus
00010 extern "C" {
00011 #endif /* __cplusplus */
00012 
00013 
00014 /* --- Gtk+ type macros --- */
00015 #define BST_TYPE_CANVAS_LINK            (bst_canvas_link_get_type ())
00016 #define BST_CANVAS_LINK(object)         (GTK_CHECK_CAST ((object), BST_TYPE_CANVAS_LINK, BstCanvasLink))
00017 #define BST_CANVAS_LINK_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), BST_TYPE_CANVAS_LINK, BstCanvasLinkClass))
00018 #define BST_IS_CANVAS_LINK(object)      (GTK_CHECK_TYPE ((object), BST_TYPE_CANVAS_LINK))
00019 #define BST_IS_CANVAS_LINK_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), BST_TYPE_CANVAS_LINK))
00020 #define BST_CANVAS_LINK_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), BST_TYPE_CANVAS_LINK, BstCanvasLinkClass))
00021 
00022 
00023 /* --- structures & typedefs --- */
00024 typedef struct  _BstCanvasLink          BstCanvasLink;
00025 typedef struct  _BstCanvasLinkClass     BstCanvasLinkClass;
00026 struct _BstCanvasLink
00027 {
00028   GnomeCanvasGroup parent_object;
00029 
00030   GnomeCanvasItem *line;
00031   GnomeCanvasItem *arrow;
00032   GnomeCanvasItem *tag_start, *tag_end;
00033 
00034   BstCanvasSource *ocsource;
00035   guint            ochannel;
00036   gulong           oc_handler;
00037   BstCanvasSource *icsource;
00038   guint            ichannel;
00039   gulong           ic_handler;
00040 
00041   guint            in_move : 1;
00042   gdouble          start_move_dx, start_move_dy;
00043   gdouble          end_move_dx, end_move_dy;
00044 
00045   GtkWidget       *link_view;
00046 };
00047 struct _BstCanvasLinkClass
00048 {
00049   GnomeCanvasGroupClass parent_class;
00050 };
00051 
00052 
00053 /* --- prototypes --- */
00054 GtkType          bst_canvas_link_get_type               (void);
00055 GnomeCanvasItem* bst_canvas_link_new                    (GnomeCanvasGroup *group);
00056 void             bst_canvas_link_set_ocsource           (BstCanvasLink    *clink,
00057                                                          BstCanvasSource  *ocsource,
00058                                                          guint             ochannel);
00059 void             bst_canvas_link_set_icsource           (BstCanvasLink    *clink,
00060                                                          BstCanvasSource  *icsource,
00061                                                          guint             ichannel);
00062 void             bst_canvas_link_popup_view             (BstCanvasLink    *clink);
00063 void             bst_canvas_link_toggle_view            (BstCanvasLink    *clink);
00064 BstCanvasLink*   bst_canvas_link_at                     (GnomeCanvas      *canvas,
00065                                                          gdouble           world_x,
00066                                                          gdouble           world_y);
00067 BstCanvasSource* bst_canvas_link_csource_at             (BstCanvasLink    *clink,
00068                                                          gdouble           world_x,
00069                                                          gdouble           world_y);
00070 
00071 
00072 
00073 
00074 #ifdef __cplusplus
00075 }
00076 #endif /* __cplusplus */
00077 
00078 #endif /* __BST_CANVAS_LINK_H__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines