Scroom  0.14
progressbarmanager.hh
Go to the documentation of this file.
1 /*
2  * Scroom - Generic viewer for 2D data
3  * Copyright (C) 2009-2022 Kees-Jan Dijkzeul
4  *
5  * SPDX-License-Identifier: LGPL-2.1
6  */
7 
8 #pragma once
9 
10 #include <gtk/gtk.h>
11 
12 #include <scroom/viewinterface.hh>
13 
15 {
16 public:
17  using Ptr = boost::shared_ptr<ProgressBarManager>;
18 
19 private:
20  GtkProgressBar* progressBar;
21  bool isWaiting{false};
22 
23 private:
24  explicit ProgressBarManager(GtkProgressBar* progressBar);
25 
26  void stopWaiting();
27  void startWaiting();
28 
29 public:
30  static Ptr create(GtkProgressBar* progressBar = nullptr);
31 
32  ~ProgressBarManager() override;
33  ProgressBarManager(const ProgressBarManager&) = delete;
37 
38 
39  void setProgressBar(GtkProgressBar* progressBar);
40 
41  // ProgressInterface ///////////////////////////////////////////////////
42 
43  void setIdle() override;
44  void setWaiting(double progress = 0.0) override;
45  void setWorking(double progress) override;
46  void setFinished() override;
47 };
assertions.hh
workinterface.hh
ProgressBarManager::progressBar
GtkProgressBar * progressBar
Definition: progressbarmanager.hh:20
ProgressBarManager::setWaiting
void setWaiting(double progress=0.0) override
Definition: progressbarmanager.cc:152
ProgressBarManager::setWorking
void setWorking(double progress) override
Definition: progressbarmanager.cc:154
ProgressBarManager::~ProgressBarManager
~ProgressBarManager() override
Definition: progressbarmanager.cc:120
Scroom::MemoryBlocks::RawPageData::Ptr
boost::shared_ptr< uint8_t > Ptr
Definition: blockallocator.hh:23
progressbarmanager.hh
anonymous_namespace{progressbarmanager.cc}::ProgressBarPulser::progressbars
std::list< GtkProgressBar * > progressbars
Definition: progressbarmanager.cc:28
ProgressInterface
Definition: progressinterface.hh:17
anonymous_namespace{progressbarmanager.cc}::ProgressBarPulser
Definition: progressbarmanager.cc:21
anonymous_namespace{progressbarmanager.cc}::ProgressBarPulser::Ptr
boost::shared_ptr< ProgressBarPulser > Ptr
Definition: progressbarmanager.cc:24
Scroom::GtkHelpers::sync_on_ui_thread
void sync_on_ui_thread(T f)
Definition: gtk-helpers.hh:59
on_idle
gboolean on_idle(gpointer user_data)
Definition: callbacks.cc:272
current
static unsigned int current
Definition: measure-framerate-callbacks.cc:17
ProgressBarManager::stopWaiting
void stopWaiting()
Definition: progressbarmanager.cc:138
ProgressBarManager::setFinished
void setFinished() override
Definition: progressbarmanager.cc:161
ProgressBarManager::setProgressBar
void setProgressBar(GtkProgressBar *progressBar)
Definition: progressbarmanager.cc:122
ProgressBarManager::setIdle
void setIdle() override
Definition: progressbarmanager.cc:150
ProgressBarManager::Ptr
boost::shared_ptr< ProgressBarManager > Ptr
Definition: progressbarmanager.hh:17
anonymous_namespace{progressbarmanager.cc}::instance
ProgressBarPulser::Ptr instance()
Definition: progressbarmanager.cc:43
callbacks.hh
WorkInterface
Definition: workinterface.hh:12
ProgressBarManager
Definition: progressbarmanager.hh:14
viewinterface.hh
anonymous_namespace{progressbarmanager.cc}::ProgressBarPulser::mut
boost::mutex mut
Definition: progressbarmanager.cc:27
gtk-helpers.hh
ProgressBarManager::operator=
ProgressBarManager operator=(const ProgressBarManager &)=delete
anonymous_namespace{progressbarmanager.cc}::ProgressBarPulser::current
std::list< GtkProgressBar * >::iterator current
Definition: progressbarmanager.cc:29
ProgressBarManager::ProgressBarManager
ProgressBarManager(GtkProgressBar *progressBar)
Definition: progressbarmanager.cc:109
defect
#define defect()
Definition: assertions.hh:40
ProgressBarManager::startWaiting
void startWaiting()
Definition: progressbarmanager.cc:128
ProgressBarManager::isWaiting
bool isWaiting
Definition: progressbarmanager.hh:21
ProgressBarManager::create
static Ptr create(GtkProgressBar *progressBar=nullptr)
Definition: progressbarmanager.cc:115