use crate::co;
use crate::comctl::privs::*;
use crate::decl::*;
use crate::msg::*;
use crate::prelude::*;
use crate::user::privs::*;
pub struct PbmDeltaPos {
pub advance_amount: u32,
}
impl MsgSend for PbmDeltaPos {
type RetType = u32;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
v as _
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::DELTAPOS.into(),
wparam: self.advance_amount as _,
lparam: 0,
}
}
}
pub struct PbmGetBarColor {}
impl MsgSend for PbmGetBarColor {
type RetType = Option<COLORREF>;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
match v as u32 {
CLR_DEFAULT => None,
v => Some(unsafe { COLORREF::from_raw(v) }),
}
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::GETBARCOLOR.into(),
wparam: 0,
lparam: 0,
}
}
}
pub struct PbmGetBkColor {}
impl MsgSend for PbmGetBkColor {
type RetType = Option<COLORREF>;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
match v as u32 {
CLR_DEFAULT => None,
v => Some(unsafe { COLORREF::from_raw(v) }),
}
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::GETBKCOLOR.into(),
wparam: 0,
lparam: 0,
}
}
}
pub struct PbmGetPos {}
impl MsgSend for PbmGetPos {
type RetType = u32;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
v as _
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::GETPOS.into(),
wparam: 0,
lparam: 0,
}
}
}
pub struct PbmGetRange<'a> {
pub return_low: bool,
pub ranges: Option<&'a mut PBRANGE>,
}
impl<'a> MsgSend for PbmGetRange<'a> {
type RetType = i32;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
v as _
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::GETRANGE.into(),
wparam: self.return_low as _,
lparam: self.ranges.as_mut().map_or(0, |r| r as *mut _ as _),
}
}
}
pub struct PbmGetState {}
impl MsgSend for PbmGetState {
type RetType = co::PBST;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
unsafe { co::PBST::from_raw(v as _) }
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::GETSTATE.into(),
wparam: 0,
lparam: 0,
}
}
}
pub struct PbmGetStep {}
impl MsgSend for PbmGetStep {
type RetType = u32;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
v as _
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::SETSTEP.into(),
wparam: 0,
lparam: 0,
}
}
}
pub struct PbmSetBarColor {
pub color: Option<COLORREF>,
}
impl MsgSend for PbmSetBarColor {
type RetType = Option<COLORREF>;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
match v as u32 {
CLR_DEFAULT => None,
v => Some(unsafe { COLORREF::from_raw(v) }),
}
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::SETBARCOLOR.into(),
wparam: self.color.map_or(CLR_DEFAULT, |color| color.into()) as _,
lparam: 0,
}
}
}
pub struct PbmSetBkColor {
pub color: Option<COLORREF>,
}
impl MsgSend for PbmSetBkColor {
type RetType = Option<COLORREF>;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
match v as u32 {
CLR_DEFAULT => None,
v => Some(unsafe { COLORREF::from_raw(v) }),
}
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::SETBKCOLOR.into(),
wparam: self.color.map_or(CLR_DEFAULT, |color| color.into()) as _,
lparam: 0,
}
}
}
pub struct PbmSetMarquee {
pub turn_on: bool,
pub time_ms: Option<u32>,
}
impl MsgSend for PbmSetMarquee {
type RetType = ();
unsafe fn isize_to_ret(&self, _: isize) -> Self::RetType {
()
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::SETMARQUEE.into(),
wparam: self.turn_on as _,
lparam: self.time_ms.unwrap_or(0) as _,
}
}
}
pub struct PbmSetPos {
pub position: u32,
}
impl MsgSend for PbmSetPos {
type RetType = u32;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
v as _
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::SETPOS.into(),
wparam: self.position as _,
lparam: 0,
}
}
}
pub struct PbmSetRange {
pub min: u16,
pub max: u16,
}
impl MsgSend for PbmSetRange {
type RetType = SysResult<(u16, u16)>;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
zero_as_badargs(v).map(|v| (LOWORD(v as _), HIWORD(v as _)))
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::SETRANGE.into(),
wparam: 0,
lparam: MAKEDWORD(self.min, self.max) as _,
}
}
}
pub struct PbmSetRange32 {
pub min: u32,
pub max: u32,
}
impl MsgSend for PbmSetRange32 {
type RetType = ();
unsafe fn isize_to_ret(&self, _: isize) -> Self::RetType {
()
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::SETRANGE32.into(),
wparam: self.min as _,
lparam: self.max as _,
}
}
}
pub struct PbmSetState {
pub state: co::PBST,
}
impl MsgSend for PbmSetState {
type RetType = co::PBST;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
unsafe { co::PBST::from_raw(v as _) }
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::SETSTATE.into(),
wparam: self.state.raw() as _,
lparam: 0,
}
}
}
pub struct PbmSetStep {
pub step: u32,
}
impl MsgSend for PbmSetStep {
type RetType = u32;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
v as _
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::SETSTEP.into(),
wparam: self.step as _,
lparam: 0,
}
}
}
pub struct PbmStepIt {}
impl MsgSend for PbmStepIt {
type RetType = u32;
unsafe fn isize_to_ret(&self, v: isize) -> Self::RetType {
v as _
}
fn as_generic_wm(&mut self) -> Wm {
Wm {
msg_id: co::PBM::STEPIT.into(),
wparam: 0,
lparam: 0,
}
}
}