-
Notifications
You must be signed in to change notification settings - Fork 0
/
cursor_pointer_element.H
80 lines (64 loc) · 2.12 KB
/
cursor_pointer_element.H
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
** Copyright 2017-2021 Double Precision, Inc.
** See COPYING for distribution information.
*/
#ifndef cursor_pointer_element_h
#define cursor_pointer_element_h
#include "cursor_pointer.H"
#include "x/w/connection_threadfwd.H"
#include "cursor_pointer_elementfwd.H"
#include <utility>
LIBCXXW_NAMESPACE_START
//! One of the base classes inherited by an cursor_pointer_element.
//! Constructor
template<typename C>
cursor_pointer_1tag<C>::
cursor_pointer_1tag(const cursor_pointer &c)
: tagged_cursor_pointer_thread_only(c)
{
}
//! Initialize the cursor_pointer.
template<typename C>
inline void cursor_pointer_1tag<C>::initialize(ONLY IN_THREAD)
{
tagged_cursor_pointer(IN_THREAD)=
tagged_cursor_pointer(IN_THREAD)->initialize(IN_THREAD);
}
//! Reload all cursors after theme_updated().
template<typename C>
inline void cursor_pointer_1tag<C>::theme_updated(ONLY IN_THREAD,
const const_defaulttheme &new_theme)
{
tagged_cursor_pointer(IN_THREAD)=
tagged_cursor_pointer(IN_THREAD)->theme_updated(IN_THREAD,
new_theme);
}
//! Constructor
template<typename element_impl, typename Tag1, typename ...Tags>
template<typename ...Args>
inline cursor_pointer_element_implObj<element_impl, Tag1, Tags...>
::cursor_pointer_element_implObj(const cursor_pointer &c, Args && ...args)
: superclass_t(std::forward<Args>(args)...),
cursor_pointer_1tag<Tag1>(c)
{
}
//! Override initialize()
//! Also initialize the cursor_pointer in cursor_pointer_1tag.
template<typename element_impl, typename Tag1, typename ...Tags>
inline void cursor_pointer_element_implObj<element_impl, Tag1, Tags...>
::initialize(ONLY IN_THREAD)
{
superclass_t::initialize(IN_THREAD);
cursor_pointer_1tag<Tag1>::initialize(IN_THREAD);
}
//! Override theme_updated()
//! Also update the cursor_pointer_1tag.
template<typename element_impl, typename Tag1, typename ...Tags>
inline void cursor_pointer_element_implObj<element_impl, Tag1, Tags...>
::theme_updated(ONLY IN_THREAD, const const_defaulttheme &new_theme)
{
superclass_t::theme_updated(IN_THREAD, new_theme);
cursor_pointer_1tag<Tag1>::theme_updated(IN_THREAD, new_theme);
}
LIBCXXW_NAMESPACE_END
#endif