39 struct window_opaque_t
53 window_opaque_t(nullptr_t)
62 window_opaque_t(
nullptr)
68 window_opaque_t(
const window_opaque_t& window)
71 this->operator = (window);
81 this->m_ulla[0] = ulla0;
82 this->m_ulla[1] = ulla1;
83 this->m_ulla[2] = ulla2;
103 && this->m_ulla[1] == 0
104 && this->m_ulla[2] == 0;
112 return !this->is_null();
117 bool operator == (
const window_opaque_t& windowopaque)
const
121 this->m_ulla[0] == windowopaque.m_ulla[0]
122 && this->m_ulla[1] == windowopaque.m_ulla[1]
123 && this->m_ulla[2] == windowopaque.m_ulla[2];
128 window_opaque_t& operator = (
const window_opaque_t& windowopaque)
131 this->m_ulla[0] = windowopaque.m_ulla[0];
132 this->m_ulla[1] = windowopaque.m_ulla[1];
133 this->m_ulla[2] = windowopaque.m_ulla[2];
140 operator ::hash32()
const
142 return ::as_hash32(this->m_ulla[0])
143 + ::as_hash32(this->m_ulla[1])
144 + ::as_hash32(this->m_ulla[2]);
157 using WINDOW_TYPE = WINDOW_T;
169 a_window_t(nullptr_t) { this->Null(); }
172 a_window_t() : a_window_t(
nullptr) {}
175 template <
typename WINDOW_OPAQUE_T >
176 requires (!::is_same < WINDOW_T, window_opaque_t >
177 && ::is_same < WINDOW_OPAQUE_T, window_opaque_t >)
178 a_window_t(
const WINDOW_OPAQUE_T& windowopaque)
181 this->operator = (windowopaque);
186 a_window_t(
const WINDOW_T & window)
189 this->operator = (window);
194 void Null() { this->m_window.Null(); }
197 bool operator == (
const a_window_t & awindowt)
const
200 return this->m_window == awindowt.m_window;
205 template <
typename WINDOW_OPAQUE_T >
206 requires (!::is_same < WINDOW_T, window_opaque_t >
207 && ::is_same < WINDOW_OPAQUE_T, window_opaque_t >)
208 bool operator ==(
const WINDOW_OPAQUE_T & windowopaque)
const
211 return this->m_opaque == windowopaque;
216 bool operator == (
const WINDOW_TYPE & window)
const
219 return this->m_window == window;
224 a_window_t& operator = (
const a_window_t & awindowt)
227 this->m_window = awindowt.m_window;
234 template <
typename WINDOW_OPAQUE_T >
235 requires (!::is_same < WINDOW_T, window_opaque_t >
236 && ::is_same < WINDOW_OPAQUE_T, window_opaque_t >)
237 a_window_t&
operator = (
const WINDOW_OPAQUE_T & windowopaque)
240 this->m_opaque = windowopaque;
247 a_window_t& operator = (
const WINDOW_T & window)
250 this->m_window = window;
260 return m_window.is_null();
268 return !this->is_null();
273 operator ::hash32()
const {
return m_opaque; }
288 public a_window_t < WINDOW_T >
295 using BASE_TYPE = a_window_t < WINDOW_T >;
298 using WINDOW_TYPE =
typename BASE_TYPE::WINDOW_TYPE;
301 ::windowing::enum_operating_ambient m_eoperatingambient;
319 a_window(
const a_window & awindow) :
320 m_pacmewindowingwindow(awindow.m_pacmewindowingwindow),
321 m_eoperatingambient(awindow.m_eoperatingambient),
322 BASE_TYPE(awindow.m_window)
328 template <
typename WINDOW >
329 requires (!::is_same < WINDOW_TYPE, window_opaque_t >
330 && ::is_same < WINDOW, window >)
331 a_window(
const WINDOW & window) :
332 m_pacmewindowingwindow(window._get_acme_windowing_window()),
333 m_eoperatingambient(window.m_eoperatingambient),
334 BASE_TYPE(window.m_opaque)
341 m_pacmewindowingwindow(pacmewindowingwindow),
342 m_eoperatingambient(t_eoperatingambient),
349 template <
typename WINDOW_OPAQUE_T >
350 requires (!::is_same < WINDOW_T, window_opaque_t >
351 && ::is_same < WINDOW_OPAQUE_T, window_opaque_t >)
352 a_window(const ::windowing::enum_operating_ambient& eoperatingambient,
const WINDOW_OPAQUE_T & windowopaque,
::acme::windowing::window* pacmewindowingwindow =
nullptr) :
353 m_pacmewindowingwindow(pacmewindowingwindow),
354 m_eoperatingambient(eoperatingambient),
355 BASE_TYPE(windowopaque)
360 a_window(const ::windowing::enum_operating_ambient& eoperatingambient,
364 m_pacmewindowingwindow(
nullptr),
365 m_eoperatingambient(eoperatingambient),
366 BASE_TYPE({ulla0, ulla1, ulla2})
375 m_pacmewindowingwindow = pwindow;
383 return m_pacmewindowingwindow;
391 this->m_window.Null();
392 m_pacmewindowingwindow =
nullptr;
393 m_eoperatingambient = ::windowing::e_operating_ambient_none;
397 ::operating_system::window & as_operating_system_window()
400 auto pthis = (::operating_system::window*)
this;
407 const ::operating_system::window & as_operating_system_window()
const
410 auto pthis = (::operating_system::window*)
this;
420 return (m_eoperatingambient == ::windowing::e_operating_ambient_none
421 || BASE_TYPE::is_null()) && m_pacmewindowingwindow ==
nullptr;
426 bool is_impact()
const
429 return (m_eoperatingambient == ::windowing::e_operating_ambient_macos_impact2)
430 || (m_eoperatingambient == ::windowing::e_operating_ambient_macos_impact_by_tag);
438 return !this->is_null();
443 bool operator == (const ::operating_system::window& operatingsystemwindow)
const
446 if (operatingsystemwindow.m_eoperatingambient != ::windowing::e_operating_ambient_none)
449 return (this->m_eoperatingambient == operatingsystemwindow.m_eoperatingambient
450 && BASE_TYPE::operator == (operatingsystemwindow.m_window));
454 return m_pacmewindowingwindow == operatingsystemwindow.m_pacmewindowingwindow;
458 bool operator == (const ::lparam &
lparam)
const
461 if (this->m_eoperatingambient != ::windowing::e_operating_ambient_none)
466 return this->m_opaque.m_ulla[0] ==
lparam.m_lparam
467 && this->m_opaque.m_ulla[1] == 0
468 && this->m_opaque.m_ulla[2] == 0
469 && this->m_opaque.m_ulla[3] == 0;
473 return ::best_effort_is_same_operating_system_window(m_pacmewindowingwindow,
lparam);
480 template <
typename WINDOW >
481 requires (!::is_same < WINDOW_TYPE, window_opaque_t >
482 && ::is_same < WINDOW, window >)
483 a_window &
operator = (
const WINDOW & window)
486 this->m_pacmewindowingwindow = window._get_acme_windowing_window();
487 this->m_eoperatingambient = window.m_eoperatingambient;
488 BASE_TYPE::operator = (window.m_window);
495 a_window & operator = (
const a_window & awindow)
498 this->m_pacmewindowingwindow = awindow.m_pacmewindowingwindow;
499 this->m_eoperatingambient = awindow.m_eoperatingambient;
500 BASE_TYPE::operator = (awindow.m_window);