wxTimelineCtrlWidget
Loading...
Searching...
No Matches
TimelineItem.h
Go to the documentation of this file.
1#ifndef _TIMELINEITEM_H
2#define _TIMELINEITEM_H
3
4#include <wx/string.h>
5#include <wx/colour.h>
6#include <wx/gdicmn.h>
7#include <type_traits>
8#include "TimelineItemData.h"
9
10// Visual states
12{
13 Normal,
14 Hover,
15 Pressed,
17};
18
19// Timeline item template
20template<typename T>
22{
23 // Compile-time check: T must inherit from NamedObject
24 static_assert(std::is_base_of<TimelineItemData, T>::value, "TimelineItem<T>: T must derive from NamedObject");
25
26public:
27 TimelineItem(T* data = nullptr,
29 const wxColour& colour = *wxWHITE,
30 const wxRect& rect = wxRect())
31 : Data(data), State(state), Colour(colour), Rect(rect), m_displayLane(0)
32 {
33 }
34
35 // Set a new color for the item
36 void SetColour(const wxColour& colour)
37 {
38 Colour = colour;
39 }
40
42 : Data(other.Data), State(other.State), Colour(other.Colour), Rect(other.Rect), m_displayLane(other.m_displayLane)
43 {
44 }
45
46 // Get name safely
47 wxString GetItemName() const
48 {
49 if (Data)
50 return Data->GetName();
51 return wxEmptyString;
52 }
53
54public:
55 T* Data;
57 wxColour Colour;
58 wxRect Rect;
60};
61
62#endif // _TIMELINEITEM_H
TimelineElementState
Definition TimelineItem.h:12
Definition TimelineItem.h:22
TimelineItem(T *data=nullptr, TimelineElementState state=TimelineElementState::Normal, const wxColour &colour= *wxWHITE, const wxRect &rect=wxRect())
Definition TimelineItem.h:27
wxColour Colour
Definition TimelineItem.h:57
wxString GetItemName() const
Definition TimelineItem.h:47
wxRect Rect
Definition TimelineItem.h:58
T * Data
Definition TimelineItem.h:55
int m_displayLane
Definition TimelineItem.h:59
void SetColour(const wxColour &colour)
Definition TimelineItem.h:36
TimelineElementState State
Definition TimelineItem.h:56
TimelineItem(const TimelineItem &other)
Definition TimelineItem.h:41