use crate::dc::DeviceContext;
use crate::window::WxWidget;
pub struct WindowDC {
dc_ptr: *mut wxdragon_sys::wxd_WindowDC_t,
}
impl WindowDC {
pub fn new<W: WxWidget>(window: &W) -> Self {
let ptr = window.handle_ptr();
let dc_ptr = unsafe { wxdragon_sys::wxd_WindowDC_Create(ptr) };
Self { dc_ptr }
}
}
impl DeviceContext for WindowDC {
fn dc_ptr(&self) -> *mut wxdragon_sys::wxd_DC_t {
unsafe { wxdragon_sys::wxd_WindowDC_AsDC(self.dc_ptr) }
}
}
impl Drop for WindowDC {
fn drop(&mut self) {
unsafe {
wxdragon_sys::wxd_WindowDC_Destroy(self.dc_ptr);
}
}
}