1
Fork 0
jacker/trackview.hpp

82 lines
2.0 KiB
C++
Raw Normal View History

2010-02-13 09:53:17 +02:00
#pragma once
#include <gtkmm.h>
#if !defined(GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED)
#error GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED must be set.
#endif
#include "model.hpp"
#include <vector>
2010-02-13 09:53:17 +02:00
namespace Jacker {
2010-02-13 10:11:41 +02:00
//=============================================================================
class TrackBar : public Gtk::HBox {
public:
TrackBar(int index, class TrackView &view);
2010-02-13 12:45:38 +02:00
~TrackBar();
Gtk::Label name;
Gtk::EventBox name_eventbox;
Gtk::EventBox channel_eventbox;
Gtk::Menu channel_menu;
Gtk::Label channel;
2010-02-13 12:45:38 +02:00
Gtk::RadioButtonGroup channel_radio_group;
Gtk::EventBox port_eventbox;
Gtk::Menu port_menu;
Gtk::Label port;
2010-02-13 12:45:38 +02:00
Gtk::RadioButtonGroup port_radio_group;
2010-09-06 20:52:56 +03:00
Gtk::ToggleButton mute;
Model *model;
2010-02-13 12:45:38 +02:00
class TrackView *view;
int index;
void update();
bool on_channel_button_press_event(GdkEventButton *event);
bool on_port_button_press_event(GdkEventButton *event);
bool on_name_button_press_event(GdkEventButton *event);
2010-09-06 20:52:56 +03:00
void on_mute_toggled();
void on_channel(int channel);
void on_port(int port);
};
2010-02-13 10:11:41 +02:00
//=============================================================================
2010-02-13 09:53:17 +02:00
class TrackView : public Gtk::VBox {
2010-09-06 20:52:56 +03:00
friend class TrackBar;
2010-02-13 09:53:17 +02:00
public:
2010-09-06 20:52:56 +03:00
typedef std::vector<TrackBar *> TrackBarArray;
typedef sigc::signal<void, int, bool> type_mute_toggled;
2010-02-13 09:53:17 +02:00
TrackView(BaseObjectType* cobject,
const Glib::RefPtr<Gtk::Builder>& builder);
2010-02-13 12:45:38 +02:00
~TrackView();
2010-02-13 09:53:17 +02:00
Glib::RefPtr<Gtk::SizeGroup> group_names;
Glib::RefPtr<Gtk::SizeGroup> group_channels;
Glib::RefPtr<Gtk::SizeGroup> group_ports;
2010-09-06 20:52:56 +03:00
Glib::RefPtr<Gtk::SizeGroup> group_mutes;
Model *model;
TrackBarArray bars;
void destroy_bars();
2010-02-13 09:53:17 +02:00
void set_model(class Model &model);
void update_tracks();
2010-09-06 20:52:56 +03:00
type_mute_toggled signal_mute_toggled();
protected:
type_mute_toggled _mute_toggled;
2010-02-13 09:53:17 +02:00
};
2010-02-13 10:11:41 +02:00
//=============================================================================
2010-02-13 09:53:17 +02:00
} // namespace Jacker