DefaultMediaTheme: use DetachedFromWindow() for unwatching media events.
This commit is contained in:
parent
aa3083e086
commit
614d494afc
|
@ -112,6 +112,7 @@ class CheckBox : public BCheckBox {
|
|||
virtual ~CheckBox();
|
||||
|
||||
virtual void AttachedToWindow();
|
||||
virtual void DetachedFromWindow();
|
||||
private:
|
||||
BDiscreteParameter &fParameter;
|
||||
};
|
||||
|
@ -123,6 +124,7 @@ class OptionPopUp : public BOptionPopUp {
|
|||
virtual ~OptionPopUp();
|
||||
|
||||
virtual void AttachedToWindow();
|
||||
virtual void DetachedFromWindow();
|
||||
private:
|
||||
BDiscreteParameter &fParameter;
|
||||
};
|
||||
|
@ -134,6 +136,7 @@ class Slider : public BSlider {
|
|||
virtual ~Slider();
|
||||
|
||||
virtual void AttachedToWindow();
|
||||
virtual void DetachedFromWindow();
|
||||
private:
|
||||
BContinuousParameter &fParameter;
|
||||
};
|
||||
|
@ -146,6 +149,7 @@ class ChannelSlider : public BChannelSlider {
|
|||
virtual ~ChannelSlider();
|
||||
|
||||
virtual void AttachedToWindow();
|
||||
virtual void DetachedFromWindow();
|
||||
private:
|
||||
BContinuousParameter &fParameter;
|
||||
};
|
||||
|
@ -212,7 +216,8 @@ parameter_should_be_hidden(BParameter ¶meter)
|
|||
static void
|
||||
start_watching_for_parameter_changes(BControl* control, BParameter ¶meter)
|
||||
{
|
||||
if (BMediaRoster* roster = BMediaRoster::CurrentRoster()) {
|
||||
BMediaRoster* roster = BMediaRoster::CurrentRoster();
|
||||
if (roster != NULL) {
|
||||
roster->StartWatching(control, parameter.Web()->Node(),
|
||||
B_MEDIA_NEW_PARAMETER_VALUE);
|
||||
}
|
||||
|
@ -222,7 +227,8 @@ start_watching_for_parameter_changes(BControl* control, BParameter ¶meter)
|
|||
static void
|
||||
stop_watching_for_parameter_changes(BControl* control, BParameter ¶meter)
|
||||
{
|
||||
if (BMediaRoster* roster = BMediaRoster::CurrentRoster()) {
|
||||
BMediaRoster* roster = BMediaRoster::CurrentRoster();
|
||||
if (roster != NULL) {
|
||||
roster->StopWatching(control, parameter.Web()->Node(),
|
||||
B_MEDIA_NEW_PARAMETER_VALUE);
|
||||
}
|
||||
|
@ -630,7 +636,6 @@ CheckBox::CheckBox(BRect area, const char* name, const char* label,
|
|||
|
||||
CheckBox::~CheckBox()
|
||||
{
|
||||
stop_watching_for_parameter_changes(this, fParameter);
|
||||
}
|
||||
|
||||
|
||||
|
@ -641,6 +646,13 @@ CheckBox::AttachedToWindow()
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
CheckBox::DetachedFromWindow()
|
||||
{
|
||||
stop_watching_for_parameter_changes(this, fParameter);
|
||||
}
|
||||
|
||||
|
||||
OptionPopUp::OptionPopUp(BRect area, const char* name, const char* label,
|
||||
BDiscreteParameter ¶meter)
|
||||
: BOptionPopUp(area, name, label, NULL),
|
||||
|
@ -651,7 +663,6 @@ OptionPopUp::OptionPopUp(BRect area, const char* name, const char* label,
|
|||
|
||||
OptionPopUp::~OptionPopUp()
|
||||
{
|
||||
stop_watching_for_parameter_changes(this, fParameter);
|
||||
}
|
||||
|
||||
|
||||
|
@ -662,6 +673,13 @@ OptionPopUp::AttachedToWindow()
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
OptionPopUp::DetachedFromWindow()
|
||||
{
|
||||
stop_watching_for_parameter_changes(this, fParameter);
|
||||
}
|
||||
|
||||
|
||||
Slider::Slider(BRect area, const char* name, const char* label, int32 minValue,
|
||||
int32 maxValue, BContinuousParameter ¶meter)
|
||||
: BSlider(area, name, label, NULL, minValue, maxValue),
|
||||
|
@ -672,7 +690,6 @@ Slider::Slider(BRect area, const char* name, const char* label, int32 minValue,
|
|||
|
||||
Slider::~Slider()
|
||||
{
|
||||
stop_watching_for_parameter_changes(this, fParameter);
|
||||
}
|
||||
|
||||
|
||||
|
@ -683,6 +700,13 @@ Slider::AttachedToWindow()
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
Slider::DetachedFromWindow()
|
||||
{
|
||||
stop_watching_for_parameter_changes(this, fParameter);
|
||||
}
|
||||
|
||||
|
||||
ChannelSlider::ChannelSlider(BRect area, const char* name, const char* label,
|
||||
orientation orientation, int32 channels, BContinuousParameter ¶meter)
|
||||
: BChannelSlider(area, name, label, NULL, orientation, channels),
|
||||
|
@ -693,7 +717,6 @@ ChannelSlider::ChannelSlider(BRect area, const char* name, const char* label,
|
|||
|
||||
ChannelSlider::~ChannelSlider()
|
||||
{
|
||||
stop_watching_for_parameter_changes(this, fParameter);
|
||||
}
|
||||
|
||||
|
||||
|
@ -704,6 +727,13 @@ ChannelSlider::AttachedToWindow()
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
ChannelSlider::DetachedFromWindow()
|
||||
{
|
||||
stop_watching_for_parameter_changes(this, fParameter);
|
||||
}
|
||||
|
||||
|
||||
// #pragma mark -
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue