renderer: Render whole keyboard the same way as pressed buttons

Removed window size dependent surface.
This commit is contained in:
Dorota Czaplejewicz
2019-12-07 14:30:51 +00:00
parent 581c86809a
commit f77db1bb73
4 changed files with 37 additions and 158 deletions

View File

@ -75,6 +75,31 @@ mod c {
}
}
}
#[no_mangle]
pub extern "C"
fn squeek_draw_layout_base_view(
layout: *mut Layout,
renderer: EekRenderer,
cr: *mut cairo_sys::cairo_t,
) {
let layout = unsafe { &mut *layout };
let cr = unsafe { cairo::Context::from_raw_none(cr) };
let view = layout.get_current_view();
let view_position = view.bounds.get_position();
for row in &view.rows {
for button in &row.buttons {
let position = &view_position
+ row.bounds.clone().unwrap().get_position()
+ button.bounds.get_position();
render_button_at_position(
renderer, &cr,
position, button.as_ref(),
keyboard::PressType::Released, false,
);
}
}
}
}
/// Renders a button at a position (button's own bounds ignored)