26 void note_on(
int note,
float velocity = 1.0f);
32 std::function<void(
int note,
float velocity)>
on_note_on;
44 if (orientation_ ==
o)
83 bool show_names_ =
false;
88 Color highlight_color_{0.0f, 0.0f, 0.0f, 0.0f};
94 NoteState note_states_[128] = {};
97 bool is_black_key(
int note)
const;
98 int note_at_position(Point pos)
const;
99 Rect key_rect(
int note)
const;
100 float white_key_width()
const;
101 int white_key_count()
const;
Definition canvas.hpp:240
void set_highlight_color(Color c)
Definition midi_keyboard.hpp:62
void on_mouse_up(Point pos) override
void set_show_note_names(bool show)
Show C octave labels using the MIDI convention where note 60 is C4.
Definition midi_keyboard.hpp:55
bool is_note_on(int note) const
void on_mouse_event(const MouseEvent &event) override
Mouse down with full event context.
void on_mouse_drag(Point pos) override
bool show_note_names() const
Definition midi_keyboard.hpp:58
Orientation
Keyboard geometry.
Definition midi_keyboard.hpp:36
@ horizontal
Definition midi_keyboard.hpp:37
@ vertical_chromatic_rows
Equal semitone rows, with last_note() at the top.
Definition midi_keyboard.hpp:39
@ vertical
Physical piano-key proportions.
Definition midi_keyboard.hpp:38
void set_range(int first_note, int last_note)
void paint(canvas::Canvas &canvas) override
int last_note() const
Definition midi_keyboard.hpp:21
void note_on(int note, float velocity=1.0f)
void set_orientation(Orientation o)
Select geometry. Chromatic rows are an explicitly vertical mode.
Definition midi_keyboard.hpp:43
std::function< void(int note)> on_note_off
Definition midi_keyboard.hpp:33
void on_mouse_down(Point pos) override
std::function< void(int note, float velocity)> on_note_on
Definition midi_keyboard.hpp:32
int first_note() const
Definition midi_keyboard.hpp:18
bool wants_mouse_input() const override
True if this widget handles mouse down/drag through virtual methods even when it does not expose JS p...
Definition midi_keyboard.hpp:71
float intrinsic_height() const override
Definition midi_keyboard.hpp:75
Orientation orientation() const
Definition midi_keyboard.hpp:49
void request_repaint()
Request that this view's host invalidate and schedule a repaint.
Definition affine_transform.hpp:24
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
canvas::Color Color
Definition theme.hpp:12
@ c
Definition input_events.hpp:39
@ o
Definition input_events.hpp:40
Rich mouse/pointer event with position, modifiers, button state, pointer ID, and stylus properties.
Definition input_events.hpp:104
Definition geometry.hpp:20