35#ifndef WaveformGroup_h
36#define WaveformGroup_h
53 void ReferenceWaveformTextures();
55 void RenderWaveformTextures(
56 vk::raii::CommandBuffer&
cmdbuf,
57 std::vector<std::shared_ptr<InputDescriptor> >&
channels,
60 const std::string GetID()
63 const std::string& GetRawID()
66 const std::string& GetTitle()
69 void AddArea(std::shared_ptr<WaveformArea>&
area);
71 void AddArea(std::shared_ptr<WaveformArea>&
area,
size_t position);
79 void OnPanHorizontal(
float step);
117 float GetPixelsPerXUnit()
125 float GetYAxisWidth()
131 if(a->GetYAxisUnit() == Unit::UNIT_HEXNUM)
132 return 10 * ImGui::GetFontSize();
134 return 6 * ImGui::GetFontSize();
138 {
return ImGui::GetFrameHeightWithSpacing() - ImGui::GetFrameHeight(); }
143 std::lock_guard<std::mutex>
lock(m_areaMutex);
148 bool LoadConfiguration(
const YAML::Node&
node);
151 bool IsDraggingTrigger()
154 bool IsDraggingXCursor()
157 bool IsDraggingMarker()
160 bool IsDraggingSomething()
163 bool IsMouseOverXCursor(
int iCursor);
166 bool IsMouseOverAnyXCursor()
167 {
return IsMouseOverXCursor(0) || IsMouseOverXCursor(1); }
169 void AutofitHorizontal(
float width);
172 void RenderTimeline(
float width,
float height);
178 void TitleHoverHelp();
188 DRAG_STATE_X_CURSOR0,
189 DRAG_STATE_X_CURSOR1,
224 std::vector< std::shared_ptr<WaveformArea> >
m_areas;
227 std::mutex m_areaMutex;
Definition AcceleratorBuffer.h:204
Bidirectional table mapping integer IDs in scopesession files to object pointers.
Definition IDTable.h:49
Top level application window.
Definition MainWindow.h:168
Data for a marker.
Definition Marker.h:85
A single channel on an oscilloscope.
Definition OscilloscopeChannel.h:49
Definition SerializableObject.h:40
Descriptor for a single stream coming off a channel.
Definition StreamDescriptor.h:47
A unit of measurement, plus conversion to pretty-printed output.
Definition Unit.h:59