BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
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__ */