forked from teamnwah/openmw-tes3coop
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
923 B
C++
33 lines
923 B
C++
#ifndef COMPONENTS_LOADINGLISTENER_H
|
|
#define COMPONENTS_LOADINGLISTENER_H
|
|
|
|
namespace Loading
|
|
{
|
|
class Listener
|
|
{
|
|
public:
|
|
virtual void setLabel (const std::string& label) = 0;
|
|
|
|
// Use ScopedLoad instead of using these directly
|
|
virtual void loadingOn() = 0;
|
|
virtual void loadingOff() = 0;
|
|
|
|
/// Indicate that some progress has been made, without specifying how much
|
|
virtual void indicateProgress () = 0;
|
|
|
|
virtual void setProgressRange (size_t range) = 0;
|
|
virtual void setProgress (size_t value) = 0;
|
|
virtual void increaseProgress (size_t increase = 1) = 0;
|
|
};
|
|
|
|
// Used for stopping a loading sequence when the object goes out of scope
|
|
struct ScopedLoad
|
|
{
|
|
ScopedLoad(Listener* l) : mListener(l) { mListener->loadingOn(); }
|
|
~ScopedLoad() { mListener->loadingOff(); }
|
|
Listener* mListener;
|
|
};
|
|
}
|
|
|
|
#endif
|