mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-01 17:15:28 +00:00
implement progressbar
This commit is contained in:
parent
a5a3a5625b
commit
46e004966e
6 changed files with 118 additions and 3 deletions
53
src/app/browser/main/tab/page/progressbar.cpp
Normal file
53
src/app/browser/main/tab/page/progressbar.cpp
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#include "progressbar.hpp"
|
||||
|
||||
using namespace app::browser::main::tab::page;
|
||||
|
||||
Progressbar::Progressbar()
|
||||
{
|
||||
set_margin_top(
|
||||
MARGIN
|
||||
);
|
||||
|
||||
set_margin_bottom(
|
||||
MARGIN
|
||||
);
|
||||
|
||||
set_pulse_step(
|
||||
PULSE_STEP
|
||||
);
|
||||
|
||||
set_opacity(0);
|
||||
}
|
||||
|
||||
Progressbar::~Progressbar() = default;
|
||||
|
||||
// Public actions
|
||||
void Progressbar::set(
|
||||
double fraction
|
||||
) {
|
||||
// Toggle transparency
|
||||
set_opacity(
|
||||
fraction < 1 ? 1 : 0
|
||||
);
|
||||
|
||||
// Reset initial progress
|
||||
progress = fraction;
|
||||
|
||||
// Animate progress function
|
||||
Glib::signal_timeout().connect(
|
||||
[this]() -> bool
|
||||
{
|
||||
double current = get_fraction();
|
||||
|
||||
if (current < progress)
|
||||
{
|
||||
set_fraction(
|
||||
current + PULSE_STEP
|
||||
);
|
||||
}
|
||||
|
||||
return current < 1;
|
||||
},
|
||||
ANIMATION_TIME
|
||||
);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue