wxrust_base/generated/class_c.rs
1use super::*;
2
3// wxClassInfo
4wxwidgets! {
5 /// This class stores meta-information about classes.
6 /// - [`ClassInfo`] represents a C++ `wxClassInfo` class instance which your code has ownership, [`ClassInfoIsOwned`]`<false>` represents one which don't own.
7 /// - Use [`ClassInfo`]'s `new()` to create an instance of this class.
8 /// - See [C++ `wxClassInfo` class's documentation](https://docs.wxwidgets.org/3.2/classwx_class_info.html) for more details.
9 #[doc(alias = "wxClassInfo")]
10 #[doc(alias = "ClassInfo")]
11 class ClassInfo
12 = ClassInfoIsOwned<true>(wxClassInfo) impl
13 ClassInfoMethods
14}
15impl<const OWNED: bool> ClassInfoIsOwned<OWNED> {
16 // NOT_SUPPORTED: fn wxClassInfo()
17 pub fn none() -> Option<&'static Self> {
18 None
19 }
20}
21impl Clone for ClassInfoIsOwned<false> {
22 fn clone(&self) -> Self {
23 Self(self.0)
24 }
25}
26impl<const OWNED: bool> Drop for ClassInfoIsOwned<OWNED> {
27 fn drop(&mut self) {
28 if OWNED {
29 unsafe { ffi::wxClassInfo_delete(self.0) }
30 }
31 }
32}
33
34// wxClientData
35wxwidgets! {
36 /// All classes deriving from wxEvtHandler (such as all controls and wxApp) can hold arbitrary data which is here referred to as "client data".
37 /// - [`ClientData`] represents a C++ `wxClientData` class instance which your code has ownership, [`ClientDataIsOwned`]`<false>` represents one which don't own.
38 /// - Use [`ClientData`]'s `new()` to create an instance of this class.
39 /// - See [C++ `wxClientData` class's documentation](https://docs.wxwidgets.org/3.2/classwx_client_data.html) for more details.
40 #[doc(alias = "wxClientData")]
41 #[doc(alias = "ClientData")]
42 class ClientData
43 = ClientDataIsOwned<true>(wxClientData) impl
44 ClientDataMethods
45}
46impl<const OWNED: bool> ClientDataIsOwned<OWNED> {
47 /// Constructor.
48 ///
49 /// See [C++ `wxClientData::wxClientData()`'s documentation](https://docs.wxwidgets.org/3.2/classwx_client_data.html#acf0e79134d5fb8abd8a4a343c616e8d7).
50 pub fn new() -> ClientDataIsOwned<OWNED> {
51 unsafe { ClientDataIsOwned(ffi::wxClientData_new()) }
52 }
53 pub fn none() -> Option<&'static Self> {
54 None
55 }
56}
57impl Clone for ClientDataIsOwned<false> {
58 fn clone(&self) -> Self {
59 Self(self.0)
60 }
61}
62impl<const OWNED: bool> Drop for ClientDataIsOwned<OWNED> {
63 fn drop(&mut self) {
64 if OWNED {
65 unsafe { ffi::wxClientData_delete(self.0) }
66 }
67 }
68}