1
// -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*-
3
* Copyright (C) 2010 Canonical Ltd
5
* This program is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 3 as
7
* published by the Free Software Foundation.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
14
* You should have received a copy of the GNU General Public License
15
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
* Authored by: Jason Smith <jason.smith@canonical.com>
20
#include "Decaymulator.h"
25
Decaymulator::Decaymulator()
28
value.changed.connect(sigc::mem_fun(this, &Decaymulator::OnValueChanged));
31
void Decaymulator::OnValueChanged(int value)
33
if (!on_decay_handle && value > 0)
35
on_decay_handle = g_timeout_add(10, &Decaymulator::OnDecayTimeout, this);
39
gboolean Decaymulator::OnDecayTimeout(gpointer data)
41
Decaymulator* self = (Decaymulator*) data;
43
int partial_decay = self->rate_of_decay / 100;
45
if (self->value <= partial_decay)
48
self->on_decay_handle = 0;
53
self->value = self->value - partial_decay;
b'\\ No newline at end of file'