#ifndef __KRY_WAVEFORM_GROUP_H__ #define __KRY_WAVEFORM_GROUP_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #define KRY_TYPE_WAVEFORM_GROUP (kry_waveform_group_get_type ()) #define KRY_WAVEFORM_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KRY_TYPE_WAVEFORM_GROUP, KryWaveformGroup)) #define KRY_WAVEFORM_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KRY_TYPE_WAVEFORM_GROUP, KryWaveformGroupClass)) #define KRY_IS_WAVEFORM_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KRY_TYPE_WAVEFORM_GROUP)) #define KRY_IS_WAVEFORMM_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KRY_TYPE_WAVEFORM_GROUP)) #define KRY_WAVEFORM_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KRY_TYPE_WAVEFORM_GROUP, KryWaveformGroupClass)) typedef struct _KryWaveformGroup KryWaveformGroup; typedef struct _KryWaveformGroupClass KryWaveformGroupClass; struct _KryWaveformGroup { GtkVBox parent_instance; GtkWidget *toolbar; GtkWidget *scrollbar; GList *waveform_list; GList *marker_list; GList *region_list; KryWaveformKeyframeList *keyframe_list; KryRegionFixedList *region_fixed_list; KryMarker *marker_active_start; KryMarker *marker_active_end; KryMarker *marker_autoscroll; gboolean drag_selection; gboolean marker_dragging; gboolean simple_interface; gboolean show_time_bar; gboolean show_time_markers; gboolean disable_draw; GtkAdjustment *common_adjustment; double common_zoom; int common_scale; }; struct _KryWaveformGroupClass { GtkVBoxClass parent_class; void (*zoom_changed) (KryWaveformGroupItem *item, double zoom); void (*scale_changed) (KryWaveformGroupItem *item, int scale); }; GType kry_waveform_group_get_type (void) G_GNUC_CONST; GtkWidget* kry_waveform_group_new(void); void kry_waveform_group_reset(KryWaveformGroup *group); GtkAdjustment *kry_waveform_group_get_adjustment(KryWaveformGroup *group); KryWaveformGroupItem * kry_waveform_group_waveform_add(KryWaveformGroup *group, KryWaveformGroupItem *item); KryWaveformGroupItem * kry_waveform_group_waveform_add_with_toolbar(KryWaveformGroup *group, KryWaveformGroupItem *item); KryWaveformGroupItem * kry_waveform_group_waveform_view_add(KryWaveformGroup *group, KryWaveformGroupItem *parent, KryWaveformGroupItem *item); KryWaveformGroupItem * kry_waveform_group_waveform_view_add_with_toolbar(KryWaveformGroup *group, KryWaveformGroupItem *parent, KryWaveformGroupItem *item); void kry_waveform_group_waveform_remove(KryWaveformGroup *group, KryWaveformGroupItem *item); void kry_waveform_group_waveform_remove_all(KryWaveformGroup *group); void kry_waveform_group_set_drag_selection(KryWaveformGroup *group, gboolean val); void kry_waveform_group_set_marker_dragging(KryWaveformGroup *group, gboolean val); void kry_waveform_group_disable_draw(KryWaveformGroup *group); void kry_waveform_group_enable_draw(KryWaveformGroup *group); void kry_waveform_group_focus_selected(KryWaveformGroup *group); KryWaveformKeyframeList *kry_waveform_group_get_keyframe_list(KryWaveformGroup *group); void kry_waveform_group_set_keyframe_list(KryWaveformGroup *group, KryWaveformKeyframeList *list); void kry_waveform_group_region_add(KryWaveformGroup *group, KryRegion *region); void kry_waveform_group_region_add_new(KryWaveformGroup *group, KryMarker *marker_left, KryMarker *marker_right, int colorid); void kry_waveform_group_region_remove_by_type(KryWaveformGroup *group, int colorid); void kry_waveform_group_region_remove_all(KryWaveformGroup *group); void kry_waveform_group_region_fixed_list_set(KryWaveformGroup *group, KryRegionFixedList *list); void kry_waveform_group_marker_add(KryWaveformGroup *group, KryMarker *marker); void kry_waveform_group_marker_show(KryWaveformGroup *group, KryMarker *marker); void kry_waveform_group_marker_hide(KryWaveformGroup *group, KryMarker *marker); void kry_waveform_group_marker_set_active_start(KryWaveformGroup *group, KryMarker *marker); void kry_waveform_group_marker_set_active_end(KryWaveformGroup *group, KryMarker *marker); void kry_waveform_group_marker_set_autoscroll(KryWaveformGroup *group, KryMarker *marker); void kry_waveform_group_marker_remove(KryWaveformGroup *group, KryMarker *marker_match); void kry_waveform_group_marker_remove_all(KryWaveformGroup *group); void kry_waveform_group_set_zoom(KryWaveformGroup *group, double zoom); void kry_waveform_group_set_scale(KryWaveformGroup *group, int scale); void kry_waveform_group_enable_simple_interface(KryWaveformGroup *group); void kry_waveform_group_disable_simple_interface(KryWaveformGroup *group); GtkWidget *kry_waveform_group_get_toolbar(KryWaveformGroup *group); void kry_waveform_group_set_toolbar(KryWaveformGroup *group, GtkWidget *toolbar); GtkWidget *kry_waveform_group_get_scrollbar(KryWaveformGroup *group); void kry_waveform_group_set_scrollbar(KryWaveformGroup *group, GtkWidget *scrollbar); void kry_waveform_group_set_show_time_bar(KryWaveformGroup *group, gboolean val); void kry_waveform_group_set_show_time_markers(KryWaveformGroup *group, gboolean val); void kry_waveform_group_set_show_keyframes(KryWaveformGroup *group, gboolean val); GList *kry_waveform_group_waveform_get_list(KryWaveformGroup *group); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __KRY_WAVEFORM_GROUP_H__ */