mirror of https://github.com/YGGverse/Yoda.git
yggverse
3 months ago
6 changed files with 118 additions and 3 deletions
@ -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 |
||||||
|
); |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
#ifndef APP_BROWSER_MAIN_TAB_PAGE_PROGRESSBAR_HPP |
||||||
|
#define APP_BROWSER_MAIN_TAB_PAGE_PROGRESSBAR_HPP |
||||||
|
|
||||||
|
#include <glibmm/main.h> |
||||||
|
#include <gtkmm/progressbar.h> |
||||||
|
|
||||||
|
namespace app::browser::main::tab::page |
||||||
|
{ |
||||||
|
class Progressbar : public Gtk::ProgressBar |
||||||
|
{ |
||||||
|
const int MARGIN = 2; |
||||||
|
const double PULSE_STEP = .1; |
||||||
|
const int ANIMATION_TIME = 10; |
||||||
|
|
||||||
|
double progress = 0; |
||||||
|
|
||||||
|
public: |
||||||
|
|
||||||
|
Progressbar(); |
||||||
|
~Progressbar(); |
||||||
|
|
||||||
|
void set( |
||||||
|
double fraction |
||||||
|
); |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
#endif // APP_BROWSER_MAIN_TAB_PAGE_PROGRESSBAR_HPP
|
Loading…
Reference in new issue