There are still some bugs with this because of the waveview image cache - fixes coming soon.
+++ /dev/null
-/*
- Copyright (C) 2012 Paul Davis
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-CANVAS_VARIABLE(canvasvar_ActiveCrossfade, "active crossfade")
-CANVAS_VARIABLE(canvasvar_AudioBusBase, "audio bus base")
-CANVAS_VARIABLE(canvasvar_AudioMasterBusBase, "audio master bus base")
-CANVAS_VARIABLE(canvasvar_AudioTrackBase, "audio track base")
-CANVAS_VARIABLE(canvasvar_AutomationLine, "automation line")
-CANVAS_VARIABLE(canvasvar_AutomationTrackFill, "automation track fill")
-CANVAS_VARIABLE(canvasvar_AutomationTrackOutline, "automation track outline")
-CANVAS_VARIABLE(canvasvar_CDMarkerBar, "cd marker bar")
-CANVAS_VARIABLE(canvasvar_CrossfadeEditorBase, "crossfade editor base")
-CANVAS_VARIABLE(canvasvar_CrossfadeEditorLine, "crossfade editor line")
-CANVAS_VARIABLE(canvasvar_CrossfadeEditorLineShading, "crossfade editor line shading")
-CANVAS_VARIABLE(canvasvar_CrossfadeEditorPointFill, "crossfade editor point fill")
-CANVAS_VARIABLE(canvasvar_CrossfadeEditorPointOutline, "crossfade editor point outline")
-CANVAS_VARIABLE(canvasvar_CrossfadeEditorWave, "crossfade editor wave")
-CANVAS_VARIABLE(canvasvar_SelectedCrossfadeEditorWaveFill, "selected crossfade editor wave fill")
-CANVAS_VARIABLE(canvasvar_CrossfadeLine, "crossfade line")
-CANVAS_VARIABLE(canvasvar_EditPoint, "edit point")
-CANVAS_VARIABLE(canvasvar_EnteredAutomationLine, "entered automation line")
-CANVAS_VARIABLE(canvasvar_ControlPointFill, "control point fill")
-CANVAS_VARIABLE(canvasvar_ControlPointOutline, "control point outline")
-CANVAS_VARIABLE(canvasvar_ControlPointSelected, "control point selected")
-CANVAS_VARIABLE(canvasvar_EnteredGainLine, "entered gain line")
-CANVAS_VARIABLE(canvasvar_EnteredMarker, "entered marker")
-CANVAS_VARIABLE(canvasvar_FrameHandle, "frame handle")
-CANVAS_VARIABLE(canvasvar_GainLine, "gain line")
-CANVAS_VARIABLE(canvasvar_GainLineInactive, "gain line inactive")
-CANVAS_VARIABLE(canvasvar_GhostTrackBase, "ghost track base")
-CANVAS_VARIABLE(canvasvar_GhostTrackMidiOutline, "ghost track midi outline")
-CANVAS_VARIABLE(canvasvar_GhostTrackWave, "ghost track wave")
-CANVAS_VARIABLE(canvasvar_GhostTrackWaveFill, "ghost track wave fill")
-CANVAS_VARIABLE(canvasvar_GhostTrackWaveClip, "ghost track wave clip")
-CANVAS_VARIABLE(canvasvar_GhostTrackZeroLine, "ghost track zero line")
-CANVAS_VARIABLE(canvasvar_ImageTrack, "image track")
-CANVAS_VARIABLE(canvasvar_InactiveCrossfade, "inactive crossfade")
-CANVAS_VARIABLE(canvasvar_InactiveFadeHandle, "inactive fade handle")
-CANVAS_VARIABLE(canvasvar_LocationCDMarker, "location cd marker")
-CANVAS_VARIABLE(canvasvar_LocationLoop, "location loop")
-CANVAS_VARIABLE(canvasvar_LocationMarker, "location marker")
-CANVAS_VARIABLE(canvasvar_LocationPunch, "location punch")
-CANVAS_VARIABLE(canvasvar_LocationRange, "location range")
-CANVAS_VARIABLE(canvasvar_MarkerBar, "marker bar")
-CANVAS_VARIABLE(canvasvar_MarkerBarSeparator, "marker bar separator")
-CANVAS_VARIABLE(canvasvar_MarkerDragLine, "marker drag line")
-CANVAS_VARIABLE(canvasvar_MarkerLabel, "marker label")
-CANVAS_VARIABLE(canvasvar_MarkerTrack, "marker track")
-CANVAS_VARIABLE(canvasvar_MeasureLineBar, "measure line bar")
-CANVAS_VARIABLE(canvasvar_MeasureLineBeat, "measure line beat")
-CANVAS_VARIABLE(canvasvar_MeterBar, "meter bar")
-CANVAS_VARIABLE(canvasvar_MeterBridgePeakLabel, "meterbridge peaklabel")
-CANVAS_VARIABLE(canvasvar_MeterColorBBC, "meter color BBC")
-CANVAS_VARIABLE(canvasvar_MeterColor0, "meter fill: 0")
-CANVAS_VARIABLE(canvasvar_MeterColor1, "meter fill: 1")
-CANVAS_VARIABLE(canvasvar_MeterColor2, "meter fill: 2")
-CANVAS_VARIABLE(canvasvar_MeterColor3, "meter fill: 3")
-CANVAS_VARIABLE(canvasvar_MeterColor4, "meter fill: 4")
-CANVAS_VARIABLE(canvasvar_MeterColor5, "meter fill: 5")
-CANVAS_VARIABLE(canvasvar_MeterColor6, "meter fill: 6")
-CANVAS_VARIABLE(canvasvar_MeterColor7, "meter fill: 7")
-CANVAS_VARIABLE(canvasvar_MeterColor8, "meter fill: 8")
-CANVAS_VARIABLE(canvasvar_MeterColor9, "meter fill: 9")
-CANVAS_VARIABLE(canvasvar_MidiMeterColor0, "midi meter fill: 0")
-CANVAS_VARIABLE(canvasvar_MidiMeterColor1, "midi meter fill: 1")
-CANVAS_VARIABLE(canvasvar_MidiMeterColor2, "midi meter fill: 2")
-CANVAS_VARIABLE(canvasvar_MidiMeterColor3, "midi meter fill: 3")
-CANVAS_VARIABLE(canvasvar_MidiMeterColor4, "midi meter fill: 4")
-CANVAS_VARIABLE(canvasvar_MidiMeterColor5, "midi meter fill: 5")
-CANVAS_VARIABLE(canvasvar_MidiMeterColor6, "midi meter fill: 6")
-CANVAS_VARIABLE(canvasvar_MidiMeterColor7, "midi meter fill: 7")
-CANVAS_VARIABLE(canvasvar_MidiMeterColor8, "midi meter fill: 8")
-CANVAS_VARIABLE(canvasvar_MidiMeterColor9, "midi meter fill: 9")
-CANVAS_VARIABLE(canvasvar_MeterBackgroundBot, "meter background: bottom")
-CANVAS_VARIABLE(canvasvar_MeterBackgroundTop, "meter background: top")
-CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOffFillStart, "meterbridge peakindicator: fill start")
-CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOffFillEnd, "meterbridge peakindicator: fill end")
-CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOnFillStart, "meterbridge peakindicator on: fill start")
-CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOnFillEnd, "meterbridge peakindicator on: fill end")
-CANVAS_VARIABLE(canvasvar_MeterBridgeLabelFillStart, "meterbridge label: fill start")
-CANVAS_VARIABLE(canvasvar_MeterBridgeLabelFillEnd, "meterbridge label: fill end")
-CANVAS_VARIABLE(canvasvar_MeterBridgeLabelText, "meterbridge label: text")
-CANVAS_VARIABLE(canvasvar_MeterMarker, "meter marker")
-CANVAS_VARIABLE(canvasvar_MidiBusBase, "midi bus base")
-CANVAS_VARIABLE(canvasvar_MidiFrameBase, "midi frame base")
-CANVAS_VARIABLE(canvasvar_MidiNoteInactiveChannel, "midi note inactive channel")
-CANVAS_VARIABLE(canvasvar_MidiNoteColorBase, "midi note color min")
-CANVAS_VARIABLE(canvasvar_MidiNoteColorMid, "midi note color mid")
-CANVAS_VARIABLE(canvasvar_MidiNoteColorTop, "midi note color max")
-CANVAS_VARIABLE(canvasvar_SelectedMidiNoteColorBase, "selected midi note color min")
-CANVAS_VARIABLE(canvasvar_SelectedMidiNoteColorMid, "selected midi note color mid")
-CANVAS_VARIABLE(canvasvar_SelectedMidiNoteColorTop, "selected midi note color max")
-CANVAS_VARIABLE(canvasvar_MidiNoteSelected, "midi note selected")
-CANVAS_VARIABLE(canvasvar_MidiNoteVelocityText, "midi note velocity text")
-CANVAS_VARIABLE(canvasvar_MidiPatchChangeFill, "midi patch change fill")
-CANVAS_VARIABLE(canvasvar_MidiPatchChangeOutline, "midi patch change outline")
-CANVAS_VARIABLE(canvasvar_MidiPatchChangeInactiveChannelFill, "midi patch change inactive channel fill")
-CANVAS_VARIABLE(canvasvar_MidiPatchChangeInactiveChannelOutline, "midi patch change inactive channel outline")
-CANVAS_VARIABLE(canvasvar_MidiSysExFill, "midi sysex fill")
-CANVAS_VARIABLE(canvasvar_MidiSysExOutline, "midi sysex outline")
-CANVAS_VARIABLE(canvasvar_MidiSelectRectFill, "midi select rect fill")
-CANVAS_VARIABLE(canvasvar_MidiSelectRectOutline, "midi select rect outline")
-CANVAS_VARIABLE(canvasvar_MidiTrackBase, "midi track base")
-CANVAS_VARIABLE(canvasvar_NameHighlightFill, "name highlight fill")
-CANVAS_VARIABLE(canvasvar_NameHighlightOutline, "name highlight outline")
-CANVAS_VARIABLE(canvasvar_PianoRollBlackOutline, "piano roll black outline")
-CANVAS_VARIABLE(canvasvar_PianoRollBlack, "piano roll black")
-CANVAS_VARIABLE(canvasvar_PianoRollWhite, "piano roll white")
-CANVAS_VARIABLE(canvasvar_PlayHead, "play head")
-CANVAS_VARIABLE(canvasvar_ProcessorAutomationLine, "processor automation line")
-CANVAS_VARIABLE(canvasvar_PunchLine, "punch line")
-CANVAS_VARIABLE(canvasvar_RangeDragBarRect, "range drag bar rect")
-CANVAS_VARIABLE(canvasvar_RangeDragRect, "range drag rect")
-CANVAS_VARIABLE(canvasvar_RangeMarkerBar, "range marker bar")
-CANVAS_VARIABLE(canvasvar_RecordingRect, "recording rect")
-CANVAS_VARIABLE(canvasvar_RecWaveFormFill, "recorded waveform fill")
-CANVAS_VARIABLE(canvasvar_RecWaveForm, "recorded waveform outline")
-CANVAS_VARIABLE(canvasvar_RubberBandRect, "rubber band rect")
-CANVAS_VARIABLE(canvasvar_RulerBase, "ruler base")
-CANVAS_VARIABLE(canvasvar_RulerText, "ruler text")
-CANVAS_VARIABLE(canvasvar_SelectedCrossfadeEditorLine, "selected crossfade editor line")
-CANVAS_VARIABLE(canvasvar_SelectedCrossfadeEditorWave, "selected crossfade editor wave")
-CANVAS_VARIABLE(canvasvar_SelectedFrameBase, "selected region base")
-CANVAS_VARIABLE(canvasvar_SelectedWaveFormFill, "selected waveform fill")
-CANVAS_VARIABLE(canvasvar_SelectedWaveForm, "selected waveform outline")
-CANVAS_VARIABLE(canvasvar_SelectionRect, "selection rect")
-CANVAS_VARIABLE(canvasvar_Selection, "selection")
-CANVAS_VARIABLE(canvasvar_Shuttle, "shuttle")
-CANVAS_VARIABLE(canvasvar_Silence, "silence")
-CANVAS_VARIABLE(canvasvar_SilenceText, "silence text")
-CANVAS_VARIABLE(canvasvar_MonoPannerOutline, "mono panner outline")
-CANVAS_VARIABLE(canvasvar_MonoPannerFill, "mono panner fill")
-CANVAS_VARIABLE(canvasvar_MonoPannerText, "mono panner text")
-CANVAS_VARIABLE(canvasvar_MonoPannerBackground, "mono panner bg")
-CANVAS_VARIABLE(canvasvar_MonoPannerPositionFill, "mono panner position fill")
-CANVAS_VARIABLE(canvasvar_MonoPannerPositionOutline, "mono panner position outline")
-CANVAS_VARIABLE(canvasvar_StereoPannerOutline, "stereo panner outline")
-CANVAS_VARIABLE(canvasvar_StereoPannerFill, "stereo panner fill")
-CANVAS_VARIABLE(canvasvar_StereoPannerText, "stereo panner text")
-CANVAS_VARIABLE(canvasvar_StereoPannerBackground, "stereo panner bg")
-CANVAS_VARIABLE(canvasvar_StereoPannerRule, "stereo panner rule")
-CANVAS_VARIABLE(canvasvar_StereoPannerMonoOutline, "stereo panner mono outline")
-CANVAS_VARIABLE(canvasvar_StereoPannerMonoFill, "stereo panner mono fill")
-CANVAS_VARIABLE(canvasvar_StereoPannerMonoText, "stereo panner mono text")
-CANVAS_VARIABLE(canvasvar_StereoPannerMonoBackground, "stereo panner mono bg")
-CANVAS_VARIABLE(canvasvar_StereoPannerInvertedOutline, "stereo panner inverted outline")
-CANVAS_VARIABLE(canvasvar_StereoPannerInvertedFill, "stereo panner inverted fill")
-CANVAS_VARIABLE(canvasvar_StereoPannerInvertedText, "stereo panner inverted text")
-CANVAS_VARIABLE(canvasvar_StereoPannerInvertedBackground, "stereo panner inverted bg")
-CANVAS_VARIABLE(canvasvar_TempoBar, "tempo bar")
-CANVAS_VARIABLE(canvasvar_TempoMarker, "tempo marker")
-CANVAS_VARIABLE(canvasvar_TimeAxisFrame, "time axis frame")
-CANVAS_VARIABLE(canvasvar_SelectedTimeAxisFrame, "selected time axis frame")
-CANVAS_VARIABLE(canvasvar_TimeStretchFill, "time stretch fill")
-CANVAS_VARIABLE(canvasvar_TimeStretchOutline, "time stretch outline")
-CANVAS_VARIABLE(canvasvar_TransportDragRect, "transport drag rect")
-CANVAS_VARIABLE(canvasvar_TransportLoopRect, "transport loop rect")
-CANVAS_VARIABLE(canvasvar_TransportMarkerBar, "transport marker bar")
-CANVAS_VARIABLE(canvasvar_TransportPunchRect, "transport punch rect")
-CANVAS_VARIABLE(canvasvar_TrimHandleLocked, "trim handle locked")
-CANVAS_VARIABLE(canvasvar_TrimHandle, "trim handle")
-CANVAS_VARIABLE(canvasvar_VerboseCanvasCursor, "verbose canvas cursor")
-CANVAS_VARIABLE(canvasvar_VestigialFrame, "vestigial frame")
-CANVAS_VARIABLE(canvasvar_VideoBar, "video timeline bar")
-CANVAS_VARIABLE(canvasvar_FrameBase, "region base")
-CANVAS_VARIABLE(canvasvar_CoveredRegion, "region area covered by another region")
-CANVAS_VARIABLE(canvasvar_WaveForm, "waveform outline")
-CANVAS_VARIABLE(canvasvar_WaveFormClip, "clipped waveform")
-CANVAS_VARIABLE(canvasvar_WaveFormFill, "waveform fill")
-CANVAS_VARIABLE(canvasvar_ZeroLine, "zero line")
-CANVAS_VARIABLE(canvasvar_ZoomRect, "zoom rect")
-CANVAS_VARIABLE(canvasvar_MonitorSectionKnob, "monitor knob")
-
-CANVAS_VARIABLE(canvasvar_ButtonBorder, "border color")
-#define BUTTON_VARS(root,name) \
-CANVAS_VARIABLE(canvasvar_ ## root ## FillStart, name ": fill start") \
-CANVAS_VARIABLE(canvasvar_ ## root ## FillEnd, name ": fill end") \
-CANVAS_VARIABLE(canvasvar_ ## root ## FillStartActive, name ": fill start active") \
-CANVAS_VARIABLE(canvasvar_ ## root ## FillEndActive, name ": fill end active") \
-CANVAS_VARIABLE(canvasvar_ ## root ## LED, name ": led") \
-CANVAS_VARIABLE(canvasvar_ ## root ## LEDActive, name ": led active") \
-CANVAS_VARIABLE(canvasvar_ ## root ## Text, name ": text") \
-CANVAS_VARIABLE(canvasvar_ ## root ## TextActive, name ": text active") \
-
-BUTTON_VARS(ProcessorPreFader, "processor prefader")
-BUTTON_VARS(ProcessorFader, "processor fader")
-BUTTON_VARS(ProcessorPostFader, "processor postfader")
-BUTTON_VARS(ProcessorControlButton, "processor control button")
-BUTTON_VARS(MonitorButton, "monitor button")
-BUTTON_VARS(SoloIsolateButton, "solo isolate")
-BUTTON_VARS(SoloSafeButton, "solo safe")
-BUTTON_VARS(MidiDeviceButton, "midi device")
-BUTTON_VARS(MonitorSectionCutButton, "monitor section cut")
-BUTTON_VARS(MonitorSectionDimButton, "monitor section dim")
-BUTTON_VARS(MonitorSectionSoloButton, "monitor section solo")
-BUTTON_VARS(MonitorSectionInvertButton, "monitor section invert")
-BUTTON_VARS(MonitorSectionMonoButton, "monitor section mono")
-BUTTON_VARS(MonitorSectionSoloModelButton, "monitor section solo model")
-BUTTON_VARS(MonitorSectionSoloOverrideButton, "monitor solo override")
-BUTTON_VARS(MonitorSectionSoloExclusiveButton, "monitor solo exclusive")
-BUTTON_VARS(RudeSolo, "rude solo")
-BUTTON_VARS(RudeIsolate, "rude isolate")
-BUTTON_VARS(RudeAudition, "rude audition")
-BUTTON_VARS(FeedbackAlert, "feedback alert")
-BUTTON_VARS(InvertButton, "invert button")
-BUTTON_VARS(MuteButton, "mute button")
-BUTTON_VARS(SoloButton, "solo button")
-BUTTON_VARS(RecEnableButton, "record enable button")
-BUTTON_VARS(SendButton, "send alert button")
-BUTTON_VARS(TransportButton, "transport button")
-BUTTON_VARS(TransportRecenableButton, "transport recenable button")
-BUTTON_VARS(TransportOptionButton, "transport option button")
-BUTTON_VARS(TransportActiveOptionButton, "transport active option button")
-BUTTON_VARS(PluginBypassButton, "plugin bypass button")
-BUTTON_VARS(PunchButton, "punch button")
-BUTTON_VARS(MouseModeButton, "mouse mode button")
-BUTTON_VARS(NudgeButton, "nudge button")
-BUTTON_VARS(ZoomButton, "zoom button")
-BUTTON_VARS(ZoomMenu, "zoom menu")
-BUTTON_VARS(RouteButton, "route button")
-BUTTON_VARS(MixerStripButton, "mixer strip button")
-BUTTON_VARS(MixerStripNameButton, "mixer strip name button")
-BUTTON_VARS(MidiInputButton, "midi input button")
-BUTTON_VARS(GenericButton, "generic button")
-
-#define CLOCK_VARS(root,name) \
- CANVAS_VARIABLE(canvasvar_ ## root ## Background, name ": background") \
- CANVAS_VARIABLE(canvasvar_ ## root ## Text, name ": text") \
- CANVAS_VARIABLE(canvasvar_ ## root ## EditedText, name ": edited text") \
- CANVAS_VARIABLE(canvasvar_ ## root ## Cursor, name ": cursor")
-
-CLOCK_VARS(TransportClock, "transport clock")
-CLOCK_VARS(SecondaryClock, "secondary clock")
-CLOCK_VARS(TransportDeltaClock, "transport delta clock")
-CLOCK_VARS(SecondaryDeltaClock, "secondary delta clock")
-CLOCK_VARS(BigClock, "big clock")
-CLOCK_VARS(BigClockActive, "big clock active")
-CLOCK_VARS(PunchClock, "punch clock")
-CLOCK_VARS(SelectionClock, "selection clock")
-CLOCK_VARS(NudgeClock, "nudge clock")
-CLOCK_VARS(GenericClock, "clock")
--- /dev/null
+/*
+ Copyright (C) 2012 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+CANVAS_VARIABLE(canvasvar_ActiveCrossfade, "active crossfade")
+CANVAS_VARIABLE(canvasvar_AudioBusBase, "audio bus base")
+CANVAS_VARIABLE(canvasvar_AudioMasterBusBase, "audio master bus base")
+CANVAS_VARIABLE(canvasvar_AudioTrackBase, "audio track base")
+CANVAS_VARIABLE(canvasvar_AutomationLine, "automation line")
+CANVAS_VARIABLE(canvasvar_AutomationTrackFill, "automation track fill")
+CANVAS_VARIABLE(canvasvar_AutomationTrackOutline, "automation track outline")
+CANVAS_VARIABLE(canvasvar_CDMarkerBar, "cd marker bar")
+CANVAS_VARIABLE(canvasvar_CrossfadeEditorBase, "crossfade editor base")
+CANVAS_VARIABLE(canvasvar_CrossfadeEditorLine, "crossfade editor line")
+CANVAS_VARIABLE(canvasvar_CrossfadeEditorLineShading, "crossfade editor line shading")
+CANVAS_VARIABLE(canvasvar_CrossfadeEditorPointFill, "crossfade editor point fill")
+CANVAS_VARIABLE(canvasvar_CrossfadeEditorPointOutline, "crossfade editor point outline")
+CANVAS_VARIABLE(canvasvar_CrossfadeEditorWave, "crossfade editor wave")
+CANVAS_VARIABLE(canvasvar_SelectedCrossfadeEditorWaveFill, "selected crossfade editor wave fill")
+CANVAS_VARIABLE(canvasvar_CrossfadeLine, "crossfade line")
+CANVAS_VARIABLE(canvasvar_EditPoint, "edit point")
+CANVAS_VARIABLE(canvasvar_EnteredAutomationLine, "entered automation line")
+CANVAS_VARIABLE(canvasvar_ControlPointFill, "control point fill")
+CANVAS_VARIABLE(canvasvar_ControlPointOutline, "control point outline")
+CANVAS_VARIABLE(canvasvar_ControlPointSelected, "control point selected")
+CANVAS_VARIABLE(canvasvar_EnteredGainLine, "entered gain line")
+CANVAS_VARIABLE(canvasvar_EnteredMarker, "entered marker")
+CANVAS_VARIABLE(canvasvar_FrameHandle, "frame handle")
+CANVAS_VARIABLE(canvasvar_GainLine, "gain line")
+CANVAS_VARIABLE(canvasvar_GainLineInactive, "gain line inactive")
+CANVAS_VARIABLE(canvasvar_GhostTrackBase, "ghost track base")
+CANVAS_VARIABLE(canvasvar_GhostTrackMidiOutline, "ghost track midi outline")
+CANVAS_VARIABLE(canvasvar_GhostTrackWave, "ghost track wave")
+CANVAS_VARIABLE(canvasvar_GhostTrackWaveFill, "ghost track wave fill")
+CANVAS_VARIABLE(canvasvar_GhostTrackWaveClip, "ghost track wave clip")
+CANVAS_VARIABLE(canvasvar_GhostTrackZeroLine, "ghost track zero line")
+CANVAS_VARIABLE(canvasvar_ImageTrack, "image track")
+CANVAS_VARIABLE(canvasvar_InactiveCrossfade, "inactive crossfade")
+CANVAS_VARIABLE(canvasvar_InactiveFadeHandle, "inactive fade handle")
+CANVAS_VARIABLE(canvasvar_LocationCDMarker, "location cd marker")
+CANVAS_VARIABLE(canvasvar_LocationLoop, "location loop")
+CANVAS_VARIABLE(canvasvar_LocationMarker, "location marker")
+CANVAS_VARIABLE(canvasvar_LocationPunch, "location punch")
+CANVAS_VARIABLE(canvasvar_LocationRange, "location range")
+CANVAS_VARIABLE(canvasvar_MarkerBar, "marker bar")
+CANVAS_VARIABLE(canvasvar_MarkerBarSeparator, "marker bar separator")
+CANVAS_VARIABLE(canvasvar_MarkerDragLine, "marker drag line")
+CANVAS_VARIABLE(canvasvar_MarkerLabel, "marker label")
+CANVAS_VARIABLE(canvasvar_MarkerTrack, "marker track")
+CANVAS_VARIABLE(canvasvar_MeasureLineBar, "measure line bar")
+CANVAS_VARIABLE(canvasvar_MeasureLineBeat, "measure line beat")
+CANVAS_VARIABLE(canvasvar_MeterBar, "meter bar")
+CANVAS_VARIABLE(canvasvar_MeterBridgePeakLabel, "meterbridge peaklabel")
+CANVAS_VARIABLE(canvasvar_MeterColorBBC, "meter color BBC")
+CANVAS_VARIABLE(canvasvar_MeterColor0, "meter fill: 0")
+CANVAS_VARIABLE(canvasvar_MeterColor1, "meter fill: 1")
+CANVAS_VARIABLE(canvasvar_MeterColor2, "meter fill: 2")
+CANVAS_VARIABLE(canvasvar_MeterColor3, "meter fill: 3")
+CANVAS_VARIABLE(canvasvar_MeterColor4, "meter fill: 4")
+CANVAS_VARIABLE(canvasvar_MeterColor5, "meter fill: 5")
+CANVAS_VARIABLE(canvasvar_MeterColor6, "meter fill: 6")
+CANVAS_VARIABLE(canvasvar_MeterColor7, "meter fill: 7")
+CANVAS_VARIABLE(canvasvar_MeterColor8, "meter fill: 8")
+CANVAS_VARIABLE(canvasvar_MeterColor9, "meter fill: 9")
+CANVAS_VARIABLE(canvasvar_MidiMeterColor0, "midi meter fill: 0")
+CANVAS_VARIABLE(canvasvar_MidiMeterColor1, "midi meter fill: 1")
+CANVAS_VARIABLE(canvasvar_MidiMeterColor2, "midi meter fill: 2")
+CANVAS_VARIABLE(canvasvar_MidiMeterColor3, "midi meter fill: 3")
+CANVAS_VARIABLE(canvasvar_MidiMeterColor4, "midi meter fill: 4")
+CANVAS_VARIABLE(canvasvar_MidiMeterColor5, "midi meter fill: 5")
+CANVAS_VARIABLE(canvasvar_MidiMeterColor6, "midi meter fill: 6")
+CANVAS_VARIABLE(canvasvar_MidiMeterColor7, "midi meter fill: 7")
+CANVAS_VARIABLE(canvasvar_MidiMeterColor8, "midi meter fill: 8")
+CANVAS_VARIABLE(canvasvar_MidiMeterColor9, "midi meter fill: 9")
+CANVAS_VARIABLE(canvasvar_MeterBackgroundBot, "meter background: bottom")
+CANVAS_VARIABLE(canvasvar_MeterBackgroundTop, "meter background: top")
+CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOffFillStart, "meterbridge peakindicator: fill start")
+CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOffFillEnd, "meterbridge peakindicator: fill end")
+CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOnFillStart, "meterbridge peakindicator on: fill start")
+CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOnFillEnd, "meterbridge peakindicator on: fill end")
+CANVAS_VARIABLE(canvasvar_MeterBridgeLabelFillStart, "meterbridge label: fill start")
+CANVAS_VARIABLE(canvasvar_MeterBridgeLabelFillEnd, "meterbridge label: fill end")
+CANVAS_VARIABLE(canvasvar_MeterBridgeLabelText, "meterbridge label: text")
+CANVAS_VARIABLE(canvasvar_MeterMarker, "meter marker")
+CANVAS_VARIABLE(canvasvar_MidiBusBase, "midi bus base")
+CANVAS_VARIABLE(canvasvar_MidiFrameBase, "midi frame base")
+CANVAS_VARIABLE(canvasvar_MidiNoteInactiveChannel, "midi note inactive channel")
+CANVAS_VARIABLE(canvasvar_MidiNoteColorBase, "midi note color min")
+CANVAS_VARIABLE(canvasvar_MidiNoteColorMid, "midi note color mid")
+CANVAS_VARIABLE(canvasvar_MidiNoteColorTop, "midi note color max")
+CANVAS_VARIABLE(canvasvar_SelectedMidiNoteColorBase, "selected midi note color min")
+CANVAS_VARIABLE(canvasvar_SelectedMidiNoteColorMid, "selected midi note color mid")
+CANVAS_VARIABLE(canvasvar_SelectedMidiNoteColorTop, "selected midi note color max")
+CANVAS_VARIABLE(canvasvar_MidiNoteSelected, "midi note selected")
+CANVAS_VARIABLE(canvasvar_MidiNoteVelocityText, "midi note velocity text")
+CANVAS_VARIABLE(canvasvar_MidiPatchChangeFill, "midi patch change fill")
+CANVAS_VARIABLE(canvasvar_MidiPatchChangeOutline, "midi patch change outline")
+CANVAS_VARIABLE(canvasvar_MidiPatchChangeInactiveChannelFill, "midi patch change inactive channel fill")
+CANVAS_VARIABLE(canvasvar_MidiPatchChangeInactiveChannelOutline, "midi patch change inactive channel outline")
+CANVAS_VARIABLE(canvasvar_MidiSysExFill, "midi sysex fill")
+CANVAS_VARIABLE(canvasvar_MidiSysExOutline, "midi sysex outline")
+CANVAS_VARIABLE(canvasvar_MidiSelectRectFill, "midi select rect fill")
+CANVAS_VARIABLE(canvasvar_MidiSelectRectOutline, "midi select rect outline")
+CANVAS_VARIABLE(canvasvar_MidiTrackBase, "midi track base")
+CANVAS_VARIABLE(canvasvar_NameHighlightFill, "name highlight fill")
+CANVAS_VARIABLE(canvasvar_NameHighlightOutline, "name highlight outline")
+CANVAS_VARIABLE(canvasvar_PianoRollBlackOutline, "piano roll black outline")
+CANVAS_VARIABLE(canvasvar_PianoRollBlack, "piano roll black")
+CANVAS_VARIABLE(canvasvar_PianoRollWhite, "piano roll white")
+CANVAS_VARIABLE(canvasvar_PlayHead, "play head")
+CANVAS_VARIABLE(canvasvar_ProcessorAutomationLine, "processor automation line")
+CANVAS_VARIABLE(canvasvar_PunchLine, "punch line")
+CANVAS_VARIABLE(canvasvar_RangeDragBarRect, "range drag bar rect")
+CANVAS_VARIABLE(canvasvar_RangeDragRect, "range drag rect")
+CANVAS_VARIABLE(canvasvar_RangeMarkerBar, "range marker bar")
+CANVAS_VARIABLE(canvasvar_RecordingRect, "recording rect")
+CANVAS_VARIABLE(canvasvar_RecWaveFormFill, "recorded waveform fill")
+CANVAS_VARIABLE(canvasvar_RecWaveForm, "recorded waveform outline")
+CANVAS_VARIABLE(canvasvar_RubberBandRect, "rubber band rect")
+CANVAS_VARIABLE(canvasvar_RulerBase, "ruler base")
+CANVAS_VARIABLE(canvasvar_RulerText, "ruler text")
+CANVAS_VARIABLE(canvasvar_SelectedCrossfadeEditorLine, "selected crossfade editor line")
+CANVAS_VARIABLE(canvasvar_SelectedCrossfadeEditorWave, "selected crossfade editor wave")
+CANVAS_VARIABLE(canvasvar_SelectedFrameBase, "selected region base")
+CANVAS_VARIABLE(canvasvar_SelectedWaveFormFill, "selected waveform fill")
+CANVAS_VARIABLE(canvasvar_SelectedWaveForm, "selected waveform outline")
+CANVAS_VARIABLE(canvasvar_SelectionRect, "selection rect")
+CANVAS_VARIABLE(canvasvar_Selection, "selection")
+CANVAS_VARIABLE(canvasvar_Shuttle, "shuttle")
+CANVAS_VARIABLE(canvasvar_Silence, "silence")
+CANVAS_VARIABLE(canvasvar_SilenceText, "silence text")
+CANVAS_VARIABLE(canvasvar_MonoPannerOutline, "mono panner outline")
+CANVAS_VARIABLE(canvasvar_MonoPannerFill, "mono panner fill")
+CANVAS_VARIABLE(canvasvar_MonoPannerText, "mono panner text")
+CANVAS_VARIABLE(canvasvar_MonoPannerBackground, "mono panner bg")
+CANVAS_VARIABLE(canvasvar_MonoPannerPositionFill, "mono panner position fill")
+CANVAS_VARIABLE(canvasvar_MonoPannerPositionOutline, "mono panner position outline")
+CANVAS_VARIABLE(canvasvar_StereoPannerOutline, "stereo panner outline")
+CANVAS_VARIABLE(canvasvar_StereoPannerFill, "stereo panner fill")
+CANVAS_VARIABLE(canvasvar_StereoPannerText, "stereo panner text")
+CANVAS_VARIABLE(canvasvar_StereoPannerBackground, "stereo panner bg")
+CANVAS_VARIABLE(canvasvar_StereoPannerRule, "stereo panner rule")
+CANVAS_VARIABLE(canvasvar_StereoPannerMonoOutline, "stereo panner mono outline")
+CANVAS_VARIABLE(canvasvar_StereoPannerMonoFill, "stereo panner mono fill")
+CANVAS_VARIABLE(canvasvar_StereoPannerMonoText, "stereo panner mono text")
+CANVAS_VARIABLE(canvasvar_StereoPannerMonoBackground, "stereo panner mono bg")
+CANVAS_VARIABLE(canvasvar_StereoPannerInvertedOutline, "stereo panner inverted outline")
+CANVAS_VARIABLE(canvasvar_StereoPannerInvertedFill, "stereo panner inverted fill")
+CANVAS_VARIABLE(canvasvar_StereoPannerInvertedText, "stereo panner inverted text")
+CANVAS_VARIABLE(canvasvar_StereoPannerInvertedBackground, "stereo panner inverted bg")
+CANVAS_VARIABLE(canvasvar_TempoBar, "tempo bar")
+CANVAS_VARIABLE(canvasvar_TempoMarker, "tempo marker")
+CANVAS_VARIABLE(canvasvar_TimeAxisFrame, "time axis frame")
+CANVAS_VARIABLE(canvasvar_SelectedTimeAxisFrame, "selected time axis frame")
+CANVAS_VARIABLE(canvasvar_TimeStretchFill, "time stretch fill")
+CANVAS_VARIABLE(canvasvar_TimeStretchOutline, "time stretch outline")
+CANVAS_VARIABLE(canvasvar_TransportDragRect, "transport drag rect")
+CANVAS_VARIABLE(canvasvar_TransportLoopRect, "transport loop rect")
+CANVAS_VARIABLE(canvasvar_TransportMarkerBar, "transport marker bar")
+CANVAS_VARIABLE(canvasvar_TransportPunchRect, "transport punch rect")
+CANVAS_VARIABLE(canvasvar_TrimHandleLocked, "trim handle locked")
+CANVAS_VARIABLE(canvasvar_TrimHandle, "trim handle")
+CANVAS_VARIABLE(canvasvar_VerboseCanvasCursor, "verbose canvas cursor")
+CANVAS_VARIABLE(canvasvar_VestigialFrame, "vestigial frame")
+CANVAS_VARIABLE(canvasvar_VideoBar, "video timeline bar")
+CANVAS_VARIABLE(canvasvar_FrameBase, "region base")
+CANVAS_VARIABLE(canvasvar_CoveredRegion, "region area covered by another region")
+CANVAS_VARIABLE(canvasvar_WaveForm, "waveform outline")
+CANVAS_VARIABLE(canvasvar_WaveFormClip, "clipped waveform")
+CANVAS_VARIABLE(canvasvar_WaveFormFill, "waveform fill")
+CANVAS_VARIABLE(canvasvar_ZeroLine, "zero line")
+CANVAS_VARIABLE(canvasvar_ZoomRect, "zoom rect")
+CANVAS_VARIABLE(canvasvar_MonitorSectionKnob, "monitor knob")
+
+CANVAS_VARIABLE(canvasvar_ButtonBorder, "border color")
+#define BUTTON_VARS(root,name) \
+CANVAS_VARIABLE(canvasvar_ ## root ## FillStart, name ": fill start") \
+CANVAS_VARIABLE(canvasvar_ ## root ## FillEnd, name ": fill end") \
+CANVAS_VARIABLE(canvasvar_ ## root ## FillStartActive, name ": fill start active") \
+CANVAS_VARIABLE(canvasvar_ ## root ## FillEndActive, name ": fill end active") \
+CANVAS_VARIABLE(canvasvar_ ## root ## LED, name ": led") \
+CANVAS_VARIABLE(canvasvar_ ## root ## LEDActive, name ": led active") \
+CANVAS_VARIABLE(canvasvar_ ## root ## Text, name ": text") \
+CANVAS_VARIABLE(canvasvar_ ## root ## TextActive, name ": text active") \
+
+BUTTON_VARS(ProcessorPreFader, "processor prefader")
+BUTTON_VARS(ProcessorFader, "processor fader")
+BUTTON_VARS(ProcessorPostFader, "processor postfader")
+BUTTON_VARS(ProcessorControlButton, "processor control button")
+BUTTON_VARS(MonitorButton, "monitor button")
+BUTTON_VARS(SoloIsolateButton, "solo isolate")
+BUTTON_VARS(SoloSafeButton, "solo safe")
+BUTTON_VARS(MidiDeviceButton, "midi device")
+BUTTON_VARS(MonitorSectionCutButton, "monitor section cut")
+BUTTON_VARS(MonitorSectionDimButton, "monitor section dim")
+BUTTON_VARS(MonitorSectionSoloButton, "monitor section solo")
+BUTTON_VARS(MonitorSectionInvertButton, "monitor section invert")
+BUTTON_VARS(MonitorSectionMonoButton, "monitor section mono")
+BUTTON_VARS(MonitorSectionSoloModelButton, "monitor section solo model")
+BUTTON_VARS(MonitorSectionSoloOverrideButton, "monitor solo override")
+BUTTON_VARS(MonitorSectionSoloExclusiveButton, "monitor solo exclusive")
+BUTTON_VARS(RudeSolo, "rude solo")
+BUTTON_VARS(RudeIsolate, "rude isolate")
+BUTTON_VARS(RudeAudition, "rude audition")
+BUTTON_VARS(FeedbackAlert, "feedback alert")
+BUTTON_VARS(InvertButton, "invert button")
+BUTTON_VARS(MuteButton, "mute button")
+BUTTON_VARS(SoloButton, "solo button")
+BUTTON_VARS(RecEnableButton, "record enable button")
+BUTTON_VARS(SendButton, "send alert button")
+BUTTON_VARS(TransportButton, "transport button")
+BUTTON_VARS(TransportRecenableButton, "transport recenable button")
+BUTTON_VARS(TransportOptionButton, "transport option button")
+BUTTON_VARS(TransportActiveOptionButton, "transport active option button")
+BUTTON_VARS(PluginBypassButton, "plugin bypass button")
+BUTTON_VARS(PunchButton, "punch button")
+BUTTON_VARS(MouseModeButton, "mouse mode button")
+BUTTON_VARS(NudgeButton, "nudge button")
+BUTTON_VARS(ZoomButton, "zoom button")
+BUTTON_VARS(ZoomMenu, "zoom menu")
+BUTTON_VARS(RouteButton, "route button")
+BUTTON_VARS(MixerStripButton, "mixer strip button")
+BUTTON_VARS(MixerStripNameButton, "mixer strip name button")
+BUTTON_VARS(MidiInputButton, "midi input button")
+BUTTON_VARS(GenericButton, "generic button")
+
+#define CLOCK_VARS(root,name) \
+ CANVAS_VARIABLE(canvasvar_ ## root ## Background, name ": background") \
+ CANVAS_VARIABLE(canvasvar_ ## root ## Text, name ": text") \
+ CANVAS_VARIABLE(canvasvar_ ## root ## EditedText, name ": edited text") \
+ CANVAS_VARIABLE(canvasvar_ ## root ## Cursor, name ": cursor")
+
+CLOCK_VARS(TransportClock, "transport clock")
+CLOCK_VARS(SecondaryClock, "secondary clock")
+CLOCK_VARS(TransportDeltaClock, "transport delta clock")
+CLOCK_VARS(SecondaryDeltaClock, "secondary delta clock")
+CLOCK_VARS(BigClock, "big clock")
+CLOCK_VARS(BigClockActive, "big clock active")
+CLOCK_VARS(PunchClock, "punch clock")
+CLOCK_VARS(SelectionClock, "selection clock")
+CLOCK_VARS(NudgeClock, "nudge clock")
+CLOCK_VARS(GenericClock, "clock")
if (first_move) {
rv->drag_start ();
- rv->set_opacity_for_drag (true);
/* reparent the regionview into a group above all
* others
void
RegionMotionDrag::finished (GdkEvent *, bool)
{
- for (list<DraggingView>::iterator i = _views.begin(); i != _views.end(); ++i) {
- i->view->set_opacity_for_drag (false);
- }
-
for (vector<TimeAxisView*>::iterator i = _time_axis_views.begin(); i != _time_axis_views.end(); ++i) {
if (!(*i)->view()) {
continue;
visible.
*/
rv->hide_region_editor();
- rv->set_opacity_for_drag (false);
+
remove_region_from_playlist (rv->region(), i->initial_playlist, modified_playlists);
rv->get_canvas_group()->reparent (rtv->view()->canvas_item());
rv->get_canvas_group()->set_y_position (0);
rv->drag_end ();
- rv->set_opacity_for_drag (false);
rv->move (-_total_x_delta, 0);
rv->set_height (rtv->view()->child_height ());
}
DEBUG_TRACE (DEBUG::Drags, string_compose("SHIFT REGION at %1 by %2\n", i->initial_position, dt));
if (first_move) {
rv->drag_start ();
- rv->set_opacity_for_drag (true);
rv->region()->clear_changes ();
rv->region()->suspend_property_changes();
}
for (list<AVDraggingView>::iterator i = _views.begin(); i != _views.end(); ++i) {
i->view->drag_end();
- i->view->set_opacity_for_drag (false);
i->view->region()->resume_property_changes ();
_editor->session()->add_command (new StatefulDiffCommand (i->view->region()));
for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
RegionView* rv = i->view;
- rv->set_opacity_for_drag (false);
rv->enable_display (false);
rv->region()->playlist()->clear_owned_changes ();
for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
i->view->thaw_after_trim ();
i->view->enable_display (true);
- i->view->set_opacity_for_drag (true);
/* Trimming one region may affect others on the playlist, so we need
to get undo Commands from the whole playlist rather than just the
return true;
}
+uint32_t
+RegionView::fill_opacity () const
+{
+ if (!_region->opaque()) {
+ return 60;
+ }
+
+ uint32_t normal_tavi_opacity = TimeAxisViewItem::fill_opacity ();
+
+ return normal_tavi_opacity;
+}
+
void
RegionView::set_colors ()
{
void
RegionView::set_frame_color ()
{
- if (!frame) {
- return;
- }
-
- if (!_region->opaque()) {
- fill_opacity = 60;
- }
-
TimeAxisViewItem::set_frame_color ();
}
virtual void set_frame_color ();
virtual void reset_width_dependent_items (double pixel_width);
+ uint32_t fill_opacity () const;
+
virtual void color_handler () {}
boost::shared_ptr<ARDOUR::Region> _region;
group->Event.connect (sigc::mem_fun (*this, &TimeAxisViewItem::canvas_group_event));
fill_color = base_color;
- pre_drag_fill_color = base_color;
samples_per_pixel = fpp;
frame_position = start;
item_duration = duration;
}
set_color (base_color);
- set_opacity_for_drag (false);
set_duration (item_duration, this);
set_position (start, this);
void
TimeAxisViewItem::set_colors()
{
- /* we cannot be dragging this item when changing colors,
- so reuse set_opacity_for_drag()
- */
- set_opacity_for_drag (false);
- set_frame_color();
+ set_frame_color ();
if (name_highlight) {
name_highlight->set_fill_color (fill_color);
name_text->set_color (contrasting_text_color (f));
}
+uint32_t
+TimeAxisViewItem::fill_opacity () const
+{
+ if (!rect_visible) {
+ /* if the frame/rect is marked as invisible, then the
+ * fill should be transparent. simplest: set
+
+ * alpha/opacity to zero.
+ */
+ return 0;
+ }
+
+ if (_dragging) {
+ return 130;
+ }
+
+ uint32_t col = ARDOUR_UI::config()->get_canvasvar_FrameBase();
+ return UINT_RGBA_A (col);
+}
+
uint32_t
TimeAxisViewItem::get_fill_color () const
{
uint32_t f;
uint32_t o;
+ o = fill_opacity ();
+
if (_selected) {
f = ARDOUR_UI::config()->get_canvasvar_SelectedFrameBase();
- if (fill_opacity != 0) {
- o = fill_opacity;
- } else {
+ if (o == 0) {
/* some condition of this item has set fill opacity to
* zero, but it has been selected, so use a mid-way
* alpha value to make it reasonably visible.
} else {
if ((!Config->get_show_name_highlight() || high_enough_for_name) && !ARDOUR_UI::config()->get_color_regions_using_track_color()) {
f = ARDOUR_UI::config()->get_canvasvar_FrameBase();
- /* use the opacity as set for the FrameBase color */
- o = UINT_RGBA_A (f);
} else {
f = fill_color;
- o = fill_opacity;
}
}
-
- /* tweak opacity */
-
- if (!rect_visible) {
- /* if the frame/rect is marked as invisible, then the
- * fill should be transparent. simplest: set
- * alpha/opacity to zero.
- */
- o = 0;
- }
}
return UINT_RGBA_CHANGE_A (f, o);
}
}
-void
-TimeAxisViewItem::set_opacity_for_drag (bool drag_starting)
-{
- if (drag_starting) {
- fill_opacity = 130;
- } else {
- /* use the alpha/opacity value from the basic color, no matter whether
- we use the color of our time axis or not.
- */
-
- uint32_t col = ARDOUR_UI::config()->get_canvasvar_FrameBase();
- fill_opacity = UINT_RGBA_A (col);
- }
- set_frame_color ();
-}
-
void
TimeAxisViewItem::set_frame_gradient ()
{
set_frame_gradient ();
}
}
+
+void
+TimeAxisViewItem::drag_start ()
+{
+ _dragging = true;
+ set_frame_color ();
+}
+
+void
+TimeAxisViewItem::drag_end ()
+{
+ _dragging = false;
+ set_frame_color ();
+}
void set_y (double);
void set_color (uint32_t);
void set_name_text_color ();
- void set_opacity_for_drag (bool drag_starting);
uint32_t get_fill_color () const;
double get_samples_per_pixel () const;
- virtual void drag_start() { _dragging = true; }
- virtual void drag_end() { _dragging = false; }
+ virtual void drag_start();
+ virtual void drag_end();
bool dragging() const { return _dragging; }
virtual void raise () { return; }
/** true if a small vestigial rect should be shown when the item gets very narrow */
bool show_vestigial;
- uint32_t fill_opacity;
uint32_t fill_color;
- uint32_t pre_drag_fill_color;
+
+ virtual uint32_t fill_opacity() const;
uint32_t last_item_width;
int name_text_width;