Version: 3.3.0
wxPowerResource Class Reference

#include <wx/power.h>

Detailed Description

Helper functions for acquiring and releasing the given power resource.

If an application performs a long running task without user interaction it is often necessary to prevent the system from automatically suspending or powering off the screen and Acquire() method can be used to do this.

Notice that currently this functionality is only implemented for MSW and macOS for wxPOWER_RESOURCE_SCREEN and these platforms and Linux for wxPOWER_RESOURCE_SYSTEM, however the system must be using systemd 183 or later for this to work there.

If possible, use wxPowerResourceBlocker class to ensure that Release() is called instead of calling it manually.

Since
3.1.0

Library:  wxCore
Category:  Miscellaneous
See also
wxPowerResourceBlocker

Static Public Member Functions

static bool Acquire (wxPowerResourceKind kind, const wxString &reason=wxString(), wxPowerBlockKind blockKind=wxPOWER_PREVENT)
 Acquire a power resource for the application. More...
 
static void Release (wxPowerResourceKind kind)
 Release a previously acquired power resource. More...
 

Member Function Documentation

◆ Acquire()

static bool wxPowerResource::Acquire ( wxPowerResourceKind  kind,
const wxString reason = wxString(),
wxPowerBlockKind  blockKind = wxPOWER_PREVENT 
)
static

Acquire a power resource for the application.

The default behaviour, chosen by setting blockKind to wxPOWER_PREVENT, is to ensure that the resource of the corresponding kind remains accessible, i.e. prevent the system from turning off the screen or suspending.

Specifying wxPOWER_DELAY for blockKind doesn't actually prevent the system from suspending but does delay it to allow the application to handle the corresponding notifications. Note that under Linux systems will not receive wxEVT_POWER_SUSPENDED without acquiring the system resource using wxPOWER_DELAY.

Every call to Acquire must be matched by a corresponding call to Release() or the system will not suspend until the application ends, use wxPowerResourceBlocker to ensure that this happens.

Parameters
kindPower resource required, either wxPOWER_RESOURCE_SCREEN or wxPOWER_RESOURCE_SYSTEM.
reasonOptional reason may be specified which might be used on some platforms to inform the user what is preventing power saving. It should usually describe the operation requiring the resource and specifying it is strongly recommended.
blockKindThe default value corresponds to the blocking behaviour, the wxPOWER_DELAY value can be used to avoid blocking the resource but just delay it to allow the application to handle the corresponding notifications. This parameter is available in wxWidgets 3.3.0 and later.
Returns
Returns true if the acquisition was successful.
See also
Release()

◆ Release()

static void wxPowerResource::Release ( wxPowerResourceKind  kind)
static

Release a previously acquired power resource.

Release must be called for every Acquire() call made to restore normal power saving behaviour

Parameters
kindPower resource to be released.
See also
Acquire()