Add wxPowerResourceBlocker for power management.
Add functions to acquire/release power resources, preventing/allowing back the system to go to sleep or turn off the screen and a class wrapping them in a safe way. This patch implements the functions for MSW and OSX, adds documentation and updates the sample to demonstrate the new functionality. Closes #16413. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
47
Makefile.in
47
Makefile.in
@@ -883,6 +883,7 @@ ALL_BASE_SOURCES = \
|
|||||||
src/osx/carbon/utils.cpp \
|
src/osx/carbon/utils.cpp \
|
||||||
src/osx/carbon/uma.cpp \
|
src/osx/carbon/uma.cpp \
|
||||||
src/osx/cocoa/utils.mm \
|
src/osx/cocoa/utils.mm \
|
||||||
|
src/osx/cocoa/power.mm \
|
||||||
src/msw/main.cpp \
|
src/msw/main.cpp \
|
||||||
src/msw/volume.cpp \
|
src/msw/volume.cpp \
|
||||||
src/common/fs_inet.cpp \
|
src/common/fs_inet.cpp \
|
||||||
@@ -4519,7 +4520,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS = \
|
|||||||
monodll_dlmsw.o \
|
monodll_dlmsw.o \
|
||||||
monodll_evtloopconsole.o \
|
monodll_evtloopconsole.o \
|
||||||
monodll_msw_mimetype.o \
|
monodll_msw_mimetype.o \
|
||||||
monodll_power.o \
|
monodll_msw_power.o \
|
||||||
monodll_regconf.o \
|
monodll_regconf.o \
|
||||||
monodll_registry.o \
|
monodll_registry.o \
|
||||||
monodll_msw_snglinst.o \
|
monodll_msw_snglinst.o \
|
||||||
@@ -4539,7 +4540,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS = \
|
|||||||
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS \
|
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS \
|
||||||
@COND_TOOLKIT_OSX_CARBON@ = monodll_carbon_utils.o monodll_uma.o
|
@COND_TOOLKIT_OSX_CARBON@ = monodll_carbon_utils.o monodll_uma.o
|
||||||
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS \
|
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS \
|
||||||
@COND_TOOLKIT_OSX_COCOA@ = monodll_osx_cocoa_utils.o
|
@COND_TOOLKIT_OSX_COCOA@ = monodll_osx_cocoa_utils.o monodll_cocoa_power.o
|
||||||
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS \
|
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS \
|
||||||
@COND_PLATFORM_MACOSX_1@ = monodll_socketiohandler.o monodll_sockunix.o \
|
@COND_PLATFORM_MACOSX_1@ = monodll_socketiohandler.o monodll_sockunix.o \
|
||||||
@COND_PLATFORM_MACOSX_1@ monodll_sockosx.o
|
@COND_PLATFORM_MACOSX_1@ monodll_sockosx.o
|
||||||
@@ -6867,7 +6868,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
|
|||||||
monolib_dlmsw.o \
|
monolib_dlmsw.o \
|
||||||
monolib_evtloopconsole.o \
|
monolib_evtloopconsole.o \
|
||||||
monolib_msw_mimetype.o \
|
monolib_msw_mimetype.o \
|
||||||
monolib_power.o \
|
monolib_msw_power.o \
|
||||||
monolib_regconf.o \
|
monolib_regconf.o \
|
||||||
monolib_registry.o \
|
monolib_registry.o \
|
||||||
monolib_msw_snglinst.o \
|
monolib_msw_snglinst.o \
|
||||||
@@ -6887,7 +6888,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
|
|||||||
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_1 \
|
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_1 \
|
||||||
@COND_TOOLKIT_OSX_CARBON@ = monolib_carbon_utils.o monolib_uma.o
|
@COND_TOOLKIT_OSX_CARBON@ = monolib_carbon_utils.o monolib_uma.o
|
||||||
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_1 \
|
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_1 \
|
||||||
@COND_TOOLKIT_OSX_COCOA@ = monolib_osx_cocoa_utils.o
|
@COND_TOOLKIT_OSX_COCOA@ = monolib_osx_cocoa_utils.o monolib_cocoa_power.o
|
||||||
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS_1 \
|
@COND_PLATFORM_MACOSX_1@__NET_PLATFORM_SRC_OBJECTS_1 \
|
||||||
@COND_PLATFORM_MACOSX_1@ = monolib_socketiohandler.o monolib_sockunix.o \
|
@COND_PLATFORM_MACOSX_1@ = monolib_socketiohandler.o monolib_sockunix.o \
|
||||||
@COND_PLATFORM_MACOSX_1@ monolib_sockosx.o
|
@COND_PLATFORM_MACOSX_1@ monolib_sockosx.o
|
||||||
@@ -9268,7 +9269,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
|
|||||||
basedll_dlmsw.o \
|
basedll_dlmsw.o \
|
||||||
basedll_evtloopconsole.o \
|
basedll_evtloopconsole.o \
|
||||||
basedll_msw_mimetype.o \
|
basedll_msw_mimetype.o \
|
||||||
basedll_power.o \
|
basedll_msw_power.o \
|
||||||
basedll_regconf.o \
|
basedll_regconf.o \
|
||||||
basedll_registry.o \
|
basedll_registry.o \
|
||||||
basedll_msw_snglinst.o \
|
basedll_msw_snglinst.o \
|
||||||
@@ -9288,7 +9289,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
|
|||||||
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_2 \
|
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_2 \
|
||||||
@COND_TOOLKIT_OSX_CARBON@ = basedll_carbon_utils.o basedll_uma.o
|
@COND_TOOLKIT_OSX_CARBON@ = basedll_carbon_utils.o basedll_uma.o
|
||||||
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_2 \
|
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_2 \
|
||||||
@COND_TOOLKIT_OSX_COCOA@ = basedll_cocoa_utils.o
|
@COND_TOOLKIT_OSX_COCOA@ = basedll_cocoa_utils.o basedll_cocoa_power.o
|
||||||
COND_MONOLITHIC_0_SHARED_0___baselib___depname = \
|
COND_MONOLITHIC_0_SHARED_0___baselib___depname = \
|
||||||
$(LIBDIRNAME)/$(LIBPREFIX)wx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT)
|
$(LIBDIRNAME)/$(LIBPREFIX)wx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT)
|
||||||
@COND_MONOLITHIC_0_SHARED_0@__baselib___depname = $(COND_MONOLITHIC_0_SHARED_0___baselib___depname)
|
@COND_MONOLITHIC_0_SHARED_0@__baselib___depname = $(COND_MONOLITHIC_0_SHARED_0___baselib___depname)
|
||||||
@@ -9356,7 +9357,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
|
|||||||
baselib_dlmsw.o \
|
baselib_dlmsw.o \
|
||||||
baselib_evtloopconsole.o \
|
baselib_evtloopconsole.o \
|
||||||
baselib_msw_mimetype.o \
|
baselib_msw_mimetype.o \
|
||||||
baselib_power.o \
|
baselib_msw_power.o \
|
||||||
baselib_regconf.o \
|
baselib_regconf.o \
|
||||||
baselib_registry.o \
|
baselib_registry.o \
|
||||||
baselib_msw_snglinst.o \
|
baselib_msw_snglinst.o \
|
||||||
@@ -9376,7 +9377,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
|
|||||||
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_3 \
|
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_3 \
|
||||||
@COND_TOOLKIT_OSX_CARBON@ = baselib_carbon_utils.o baselib_uma.o
|
@COND_TOOLKIT_OSX_CARBON@ = baselib_carbon_utils.o baselib_uma.o
|
||||||
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_3 \
|
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_3 \
|
||||||
@COND_TOOLKIT_OSX_COCOA@ = baselib_cocoa_utils.o
|
@COND_TOOLKIT_OSX_COCOA@ = baselib_cocoa_utils.o baselib_cocoa_power.o
|
||||||
@COND_SHARED_1@____wxbase_namedll_DEP = $(__basedll___depname)
|
@COND_SHARED_1@____wxbase_namedll_DEP = $(__basedll___depname)
|
||||||
@COND_SHARED_0@____wxbase_namelib_DEP = $(__baselib___depname)
|
@COND_SHARED_0@____wxbase_namelib_DEP = $(__baselib___depname)
|
||||||
COND_MONOLITHIC_0_SHARED_1___netdll___depname = \
|
COND_MONOLITHIC_0_SHARED_1___netdll___depname = \
|
||||||
@@ -9548,7 +9549,7 @@ COND_USE_SOVERSOLARIS_1___coredll___so_symlinks_uninst_cmd = rm -f \
|
|||||||
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_4 \
|
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_4 \
|
||||||
@COND_TOOLKIT_OSX_CARBON@ = coredll_carbon_utils.o coredll_uma.o
|
@COND_TOOLKIT_OSX_CARBON@ = coredll_carbon_utils.o coredll_uma.o
|
||||||
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_4 \
|
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_4 \
|
||||||
@COND_TOOLKIT_OSX_COCOA@ = coredll_osx_cocoa_utils.o
|
@COND_TOOLKIT_OSX_COCOA@ = coredll_osx_cocoa_utils.o coredll_power.o
|
||||||
COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_2 = \
|
COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_2 = \
|
||||||
$(__LOWLEVEL_SRC_OBJECTS_4) \
|
$(__LOWLEVEL_SRC_OBJECTS_4) \
|
||||||
$(__PLATFORM_SRC_OBJECTS_8) \
|
$(__PLATFORM_SRC_OBJECTS_8) \
|
||||||
@@ -11317,7 +11318,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_GUI_1___corelib___depname = \
|
|||||||
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_5 \
|
@COND_TOOLKIT_OSX_CARBON@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_5 \
|
||||||
@COND_TOOLKIT_OSX_CARBON@ = corelib_carbon_utils.o corelib_uma.o
|
@COND_TOOLKIT_OSX_CARBON@ = corelib_carbon_utils.o corelib_uma.o
|
||||||
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_5 \
|
@COND_TOOLKIT_OSX_COCOA@__BASE_AND_GUI_TOOLKIT_SRC_OBJECTS_5 \
|
||||||
@COND_TOOLKIT_OSX_COCOA@ = corelib_osx_cocoa_utils.o
|
@COND_TOOLKIT_OSX_COCOA@ = corelib_osx_cocoa_utils.o corelib_power.o
|
||||||
COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_3 = \
|
COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_3 = \
|
||||||
$(__LOWLEVEL_SRC_OBJECTS_6) \
|
$(__LOWLEVEL_SRC_OBJECTS_6) \
|
||||||
$(__PLATFORM_SRC_OBJECTS_9) \
|
$(__PLATFORM_SRC_OBJECTS_9) \
|
||||||
@@ -17552,7 +17553,7 @@ monodll_evtloopconsole.o: $(srcdir)/src/msw/evtloopconsole.cpp $(MONODLL_ODEP)
|
|||||||
monodll_msw_mimetype.o: $(srcdir)/src/msw/mimetype.cpp $(MONODLL_ODEP)
|
monodll_msw_mimetype.o: $(srcdir)/src/msw/mimetype.cpp $(MONODLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/mimetype.cpp
|
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/mimetype.cpp
|
||||||
|
|
||||||
monodll_power.o: $(srcdir)/src/msw/power.cpp $(MONODLL_ODEP)
|
monodll_msw_power.o: $(srcdir)/src/msw/power.cpp $(MONODLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/power.cpp
|
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/power.cpp
|
||||||
|
|
||||||
monodll_regconf.o: $(srcdir)/src/msw/regconf.cpp $(MONODLL_ODEP)
|
monodll_regconf.o: $(srcdir)/src/msw/regconf.cpp $(MONODLL_ODEP)
|
||||||
@@ -17642,6 +17643,9 @@ monodll_uma.o: $(srcdir)/src/osx/carbon/uma.cpp $(MONODLL_ODEP)
|
|||||||
monodll_osx_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(MONODLL_ODEP)
|
monodll_osx_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(MONODLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
||||||
|
|
||||||
|
monodll_cocoa_power.o: $(srcdir)/src/osx/cocoa/power.mm $(MONODLL_ODEP)
|
||||||
|
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/power.mm
|
||||||
|
|
||||||
monodll_fs_inet.o: $(srcdir)/src/common/fs_inet.cpp $(MONODLL_ODEP)
|
monodll_fs_inet.o: $(srcdir)/src/common/fs_inet.cpp $(MONODLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/fs_inet.cpp
|
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/fs_inet.cpp
|
||||||
|
|
||||||
@@ -23414,7 +23418,7 @@ monolib_evtloopconsole.o: $(srcdir)/src/msw/evtloopconsole.cpp $(MONOLIB_ODEP)
|
|||||||
monolib_msw_mimetype.o: $(srcdir)/src/msw/mimetype.cpp $(MONOLIB_ODEP)
|
monolib_msw_mimetype.o: $(srcdir)/src/msw/mimetype.cpp $(MONOLIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/mimetype.cpp
|
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/mimetype.cpp
|
||||||
|
|
||||||
monolib_power.o: $(srcdir)/src/msw/power.cpp $(MONOLIB_ODEP)
|
monolib_msw_power.o: $(srcdir)/src/msw/power.cpp $(MONOLIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/power.cpp
|
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/power.cpp
|
||||||
|
|
||||||
monolib_regconf.o: $(srcdir)/src/msw/regconf.cpp $(MONOLIB_ODEP)
|
monolib_regconf.o: $(srcdir)/src/msw/regconf.cpp $(MONOLIB_ODEP)
|
||||||
@@ -23504,6 +23508,9 @@ monolib_uma.o: $(srcdir)/src/osx/carbon/uma.cpp $(MONOLIB_ODEP)
|
|||||||
monolib_osx_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(MONOLIB_ODEP)
|
monolib_osx_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(MONOLIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
||||||
|
|
||||||
|
monolib_cocoa_power.o: $(srcdir)/src/osx/cocoa/power.mm $(MONOLIB_ODEP)
|
||||||
|
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/power.mm
|
||||||
|
|
||||||
monolib_fs_inet.o: $(srcdir)/src/common/fs_inet.cpp $(MONOLIB_ODEP)
|
monolib_fs_inet.o: $(srcdir)/src/common/fs_inet.cpp $(MONOLIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/fs_inet.cpp
|
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/fs_inet.cpp
|
||||||
|
|
||||||
@@ -29276,7 +29283,7 @@ basedll_evtloopconsole.o: $(srcdir)/src/msw/evtloopconsole.cpp $(BASEDLL_ODEP)
|
|||||||
basedll_msw_mimetype.o: $(srcdir)/src/msw/mimetype.cpp $(BASEDLL_ODEP)
|
basedll_msw_mimetype.o: $(srcdir)/src/msw/mimetype.cpp $(BASEDLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/msw/mimetype.cpp
|
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/msw/mimetype.cpp
|
||||||
|
|
||||||
basedll_power.o: $(srcdir)/src/msw/power.cpp $(BASEDLL_ODEP)
|
basedll_msw_power.o: $(srcdir)/src/msw/power.cpp $(BASEDLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/msw/power.cpp
|
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/msw/power.cpp
|
||||||
|
|
||||||
basedll_regconf.o: $(srcdir)/src/msw/regconf.cpp $(BASEDLL_ODEP)
|
basedll_regconf.o: $(srcdir)/src/msw/regconf.cpp $(BASEDLL_ODEP)
|
||||||
@@ -29366,6 +29373,9 @@ basedll_uma.o: $(srcdir)/src/osx/carbon/uma.cpp $(BASEDLL_ODEP)
|
|||||||
basedll_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASEDLL_ODEP)
|
basedll_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASEDLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASEDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
$(CXXC) -c -o $@ $(BASEDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
||||||
|
|
||||||
|
basedll_cocoa_power.o: $(srcdir)/src/osx/cocoa/power.mm $(BASEDLL_ODEP)
|
||||||
|
$(CXXC) -c -o $@ $(BASEDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/power.mm
|
||||||
|
|
||||||
@COND_PLATFORM_UNIX_1@basedll_fdiodispatcher.o: $(srcdir)/src/common/fdiodispatcher.cpp $(BASEDLL_ODEP)
|
@COND_PLATFORM_UNIX_1@basedll_fdiodispatcher.o: $(srcdir)/src/common/fdiodispatcher.cpp $(BASEDLL_ODEP)
|
||||||
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/fdiodispatcher.cpp
|
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/fdiodispatcher.cpp
|
||||||
|
|
||||||
@@ -29753,7 +29763,7 @@ baselib_evtloopconsole.o: $(srcdir)/src/msw/evtloopconsole.cpp $(BASELIB_ODEP)
|
|||||||
baselib_msw_mimetype.o: $(srcdir)/src/msw/mimetype.cpp $(BASELIB_ODEP)
|
baselib_msw_mimetype.o: $(srcdir)/src/msw/mimetype.cpp $(BASELIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/msw/mimetype.cpp
|
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/msw/mimetype.cpp
|
||||||
|
|
||||||
baselib_power.o: $(srcdir)/src/msw/power.cpp $(BASELIB_ODEP)
|
baselib_msw_power.o: $(srcdir)/src/msw/power.cpp $(BASELIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/msw/power.cpp
|
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/msw/power.cpp
|
||||||
|
|
||||||
baselib_regconf.o: $(srcdir)/src/msw/regconf.cpp $(BASELIB_ODEP)
|
baselib_regconf.o: $(srcdir)/src/msw/regconf.cpp $(BASELIB_ODEP)
|
||||||
@@ -29843,6 +29853,9 @@ baselib_uma.o: $(srcdir)/src/osx/carbon/uma.cpp $(BASELIB_ODEP)
|
|||||||
baselib_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASELIB_ODEP)
|
baselib_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(BASELIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
$(CXXC) -c -o $@ $(BASELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
||||||
|
|
||||||
|
baselib_cocoa_power.o: $(srcdir)/src/osx/cocoa/power.mm $(BASELIB_ODEP)
|
||||||
|
$(CXXC) -c -o $@ $(BASELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/power.mm
|
||||||
|
|
||||||
@COND_PLATFORM_UNIX_1@baselib_fdiodispatcher.o: $(srcdir)/src/common/fdiodispatcher.cpp $(BASELIB_ODEP)
|
@COND_PLATFORM_UNIX_1@baselib_fdiodispatcher.o: $(srcdir)/src/common/fdiodispatcher.cpp $(BASELIB_ODEP)
|
||||||
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/fdiodispatcher.cpp
|
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/fdiodispatcher.cpp
|
||||||
|
|
||||||
@@ -30080,6 +30093,9 @@ coredll_uma.o: $(srcdir)/src/osx/carbon/uma.cpp $(COREDLL_ODEP)
|
|||||||
coredll_osx_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(COREDLL_ODEP)
|
coredll_osx_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(COREDLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
||||||
|
|
||||||
|
coredll_power.o: $(srcdir)/src/osx/cocoa/power.mm $(COREDLL_ODEP)
|
||||||
|
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/power.mm
|
||||||
|
|
||||||
coredll_gtk1_bmpbuttn.o: $(srcdir)/src/gtk1/bmpbuttn.cpp $(COREDLL_ODEP)
|
coredll_gtk1_bmpbuttn.o: $(srcdir)/src/gtk1/bmpbuttn.cpp $(COREDLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/gtk1/bmpbuttn.cpp
|
$(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/gtk1/bmpbuttn.cpp
|
||||||
|
|
||||||
@@ -34454,6 +34470,9 @@ corelib_uma.o: $(srcdir)/src/osx/carbon/uma.cpp $(CORELIB_ODEP)
|
|||||||
corelib_osx_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(CORELIB_ODEP)
|
corelib_osx_cocoa_utils.o: $(srcdir)/src/osx/cocoa/utils.mm $(CORELIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/utils.mm
|
||||||
|
|
||||||
|
corelib_power.o: $(srcdir)/src/osx/cocoa/power.mm $(CORELIB_ODEP)
|
||||||
|
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/power.mm
|
||||||
|
|
||||||
corelib_gtk1_bmpbuttn.o: $(srcdir)/src/gtk1/bmpbuttn.cpp $(CORELIB_ODEP)
|
corelib_gtk1_bmpbuttn.o: $(srcdir)/src/gtk1/bmpbuttn.cpp $(CORELIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/gtk1/bmpbuttn.cpp
|
$(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/gtk1/bmpbuttn.cpp
|
||||||
|
|
||||||
|
@@ -223,6 +223,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||||||
|
|
||||||
<set var="BASE_AND_GUI_OSX_COCOA_SRC" hints="files">
|
<set var="BASE_AND_GUI_OSX_COCOA_SRC" hints="files">
|
||||||
src/osx/cocoa/utils.mm
|
src/osx/cocoa/utils.mm
|
||||||
|
src/osx/cocoa/power.mm
|
||||||
</set>
|
</set>
|
||||||
|
|
||||||
<set var="BASE_AND_GUI_OSX_IPHONE_SRC" hints="files">
|
<set var="BASE_AND_GUI_OSX_IPHONE_SRC" hints="files">
|
||||||
|
@@ -165,6 +165,7 @@ BASE_AND_GUI_OSX_CARBON_SRC =
|
|||||||
|
|
||||||
BASE_AND_GUI_OSX_COCOA_SRC =
|
BASE_AND_GUI_OSX_COCOA_SRC =
|
||||||
src/osx/cocoa/utils.mm
|
src/osx/cocoa/utils.mm
|
||||||
|
src/osx/cocoa/power.mm
|
||||||
|
|
||||||
BASE_AND_GUI_OSX_IPHONE_SRC =
|
BASE_AND_GUI_OSX_IPHONE_SRC =
|
||||||
src/osx/iphone/utils.mm
|
src/osx/iphone/utils.mm
|
||||||
|
@@ -1768,6 +1768,10 @@
|
|||||||
A1A7B833061C35B4AABD093C /* preferencesg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D8F06DEA1AA339ED819B3812 /* preferencesg.cpp */; };
|
A1A7B833061C35B4AABD093C /* preferencesg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D8F06DEA1AA339ED819B3812 /* preferencesg.cpp */; };
|
||||||
A1A7B833061C35B4AABD093D /* preferencesg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D8F06DEA1AA339ED819B3812 /* preferencesg.cpp */; };
|
A1A7B833061C35B4AABD093D /* preferencesg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D8F06DEA1AA339ED819B3812 /* preferencesg.cpp */; };
|
||||||
A1A7B833061C35B4AABD093E /* preferencesg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D8F06DEA1AA339ED819B3812 /* preferencesg.cpp */; };
|
A1A7B833061C35B4AABD093E /* preferencesg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D8F06DEA1AA339ED819B3812 /* preferencesg.cpp */; };
|
||||||
|
A1A7C58E276F6F2B247F0813 /* power.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0714536835B5227019E29D06 /* power.mm */; };
|
||||||
|
A1A7C58E276F6F2B247F0814 /* power.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0714536835B5227019E29D06 /* power.mm */; };
|
||||||
|
A1A7C58E276F6F2B247F0815 /* power.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0714536835B5227019E29D06 /* power.mm */; };
|
||||||
|
A1A7C58E276F6F2B247F0816 /* power.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0714536835B5227019E29D06 /* power.mm */; };
|
||||||
A1A7D793B034398B8696EF33 /* utils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 789F45D14FF23E248FCFB5FA /* utils.mm */; };
|
A1A7D793B034398B8696EF33 /* utils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 789F45D14FF23E248FCFB5FA /* utils.mm */; };
|
||||||
A1A7D793B034398B8696EF34 /* utils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 789F45D14FF23E248FCFB5FA /* utils.mm */; };
|
A1A7D793B034398B8696EF34 /* utils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 789F45D14FF23E248FCFB5FA /* utils.mm */; };
|
||||||
A1A7D793B034398B8696EF35 /* utils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 789F45D14FF23E248FCFB5FA /* utils.mm */; };
|
A1A7D793B034398B8696EF35 /* utils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 789F45D14FF23E248FCFB5FA /* utils.mm */; };
|
||||||
@@ -4201,6 +4205,7 @@
|
|||||||
777385D10CCC350C90F02824 /* textentry_osx.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = textentry_osx.cpp; path = ../../src/osx/textentry_osx.cpp; sourceTree = "<group>"; };
|
777385D10CCC350C90F02824 /* textentry_osx.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = textentry_osx.cpp; path = ../../src/osx/textentry_osx.cpp; sourceTree = "<group>"; };
|
||||||
77D6E66F72443765A2FBE263 /* aboutdlgg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = aboutdlgg.cpp; path = ../../src/generic/aboutdlgg.cpp; sourceTree = "<group>"; };
|
77D6E66F72443765A2FBE263 /* aboutdlgg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = aboutdlgg.cpp; path = ../../src/generic/aboutdlgg.cpp; sourceTree = "<group>"; };
|
||||||
77F5E7BCD9B2307D8DBCC052 /* font.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = font.cpp; path = ../../src/osx/carbon/font.cpp; sourceTree = "<group>"; };
|
77F5E7BCD9B2307D8DBCC052 /* font.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = font.cpp; path = ../../src/osx/carbon/font.cpp; sourceTree = "<group>"; };
|
||||||
|
0714536835B5227019E29D06 /* power.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = power.mm; path = ../../src/osx/cocoa/power.mm; sourceTree = "<group>"; };
|
||||||
789F45D14FF23E248FCFB5FA /* utils.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = utils.mm; path = ../../src/osx/cocoa/utils.mm; sourceTree = "<group>"; };
|
789F45D14FF23E248FCFB5FA /* utils.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = utils.mm; path = ../../src/osx/cocoa/utils.mm; sourceTree = "<group>"; };
|
||||||
78D7866F95C73A28BB540606 /* LexBash.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LexBash.cxx; path = ../../src/stc/scintilla/lexers/LexBash.cxx; sourceTree = "<group>"; };
|
78D7866F95C73A28BB540606 /* LexBash.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LexBash.cxx; path = ../../src/stc/scintilla/lexers/LexBash.cxx; sourceTree = "<group>"; };
|
||||||
7906BD74118A3B4DAC515BC2 /* odcombo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = odcombo.cpp; path = ../../src/generic/odcombo.cpp; sourceTree = "<group>"; };
|
7906BD74118A3B4DAC515BC2 /* odcombo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = odcombo.cpp; path = ../../src/generic/odcombo.cpp; sourceTree = "<group>"; };
|
||||||
@@ -5943,6 +5948,7 @@
|
|||||||
C9A305CEC03B3085B159B617 /* fs_mem.cpp */,
|
C9A305CEC03B3085B159B617 /* fs_mem.cpp */,
|
||||||
E968913A9A593B258BD8EACB /* msgout.cpp */,
|
E968913A9A593B258BD8EACB /* msgout.cpp */,
|
||||||
4188821BBA833CCAA678B234 /* utilscmn.cpp */,
|
4188821BBA833CCAA678B234 /* utilscmn.cpp */,
|
||||||
|
0714536835B5227019E29D06 /* power.mm */,
|
||||||
789F45D14FF23E248FCFB5FA /* utils.mm */,
|
789F45D14FF23E248FCFB5FA /* utils.mm */,
|
||||||
);
|
);
|
||||||
name = base;
|
name = base;
|
||||||
@@ -7343,6 +7349,7 @@
|
|||||||
131B879180AE3FB481F81CC9 /* fs_mem.cpp in Sources */,
|
131B879180AE3FB481F81CC9 /* fs_mem.cpp in Sources */,
|
||||||
05814571E7A83F5DBFB6E4C6 /* msgout.cpp in Sources */,
|
05814571E7A83F5DBFB6E4C6 /* msgout.cpp in Sources */,
|
||||||
80665EEAE8613DF8A93A7986 /* utilscmn.cpp in Sources */,
|
80665EEAE8613DF8A93A7986 /* utilscmn.cpp in Sources */,
|
||||||
|
A1A7C58E276F6F2B247F0815 /* power.mm in Sources */,
|
||||||
A1A7D793B034398B8696EF35 /* utils.mm in Sources */,
|
A1A7D793B034398B8696EF35 /* utils.mm in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
@@ -7375,6 +7382,7 @@
|
|||||||
131B879180AE3FB481F81CCA /* fs_mem.cpp in Sources */,
|
131B879180AE3FB481F81CCA /* fs_mem.cpp in Sources */,
|
||||||
05814571E7A83F5DBFB6E4C7 /* msgout.cpp in Sources */,
|
05814571E7A83F5DBFB6E4C7 /* msgout.cpp in Sources */,
|
||||||
80665EEAE8613DF8A93A7987 /* utilscmn.cpp in Sources */,
|
80665EEAE8613DF8A93A7987 /* utilscmn.cpp in Sources */,
|
||||||
|
A1A7C58E276F6F2B247F0816 /* power.mm in Sources */,
|
||||||
A1A7D793B034398B8696EF36 /* utils.mm in Sources */,
|
A1A7D793B034398B8696EF36 /* utils.mm in Sources */,
|
||||||
F4C0CEADEDC23610BF6983D8 /* artmac.cpp in Sources */,
|
F4C0CEADEDC23610BF6983D8 /* artmac.cpp in Sources */,
|
||||||
296692A7A3783E3A83D005C8 /* brush.cpp in Sources */,
|
296692A7A3783E3A83D005C8 /* brush.cpp in Sources */,
|
||||||
@@ -8040,6 +8048,7 @@
|
|||||||
131B879180AE3FB481F81CC8 /* fs_mem.cpp in Sources */,
|
131B879180AE3FB481F81CC8 /* fs_mem.cpp in Sources */,
|
||||||
05814571E7A83F5DBFB6E4C5 /* msgout.cpp in Sources */,
|
05814571E7A83F5DBFB6E4C5 /* msgout.cpp in Sources */,
|
||||||
80665EEAE8613DF8A93A7985 /* utilscmn.cpp in Sources */,
|
80665EEAE8613DF8A93A7985 /* utilscmn.cpp in Sources */,
|
||||||
|
A1A7C58E276F6F2B247F0814 /* power.mm in Sources */,
|
||||||
A1A7D793B034398B8696EF34 /* utils.mm in Sources */,
|
A1A7D793B034398B8696EF34 /* utils.mm in Sources */,
|
||||||
F4C0CEADEDC23610BF6983D7 /* artmac.cpp in Sources */,
|
F4C0CEADEDC23610BF6983D7 /* artmac.cpp in Sources */,
|
||||||
296692A7A3783E3A83D005C7 /* brush.cpp in Sources */,
|
296692A7A3783E3A83D005C7 /* brush.cpp in Sources */,
|
||||||
@@ -9225,6 +9234,7 @@
|
|||||||
131B879180AE3FB481F81CC7 /* fs_mem.cpp in Sources */,
|
131B879180AE3FB481F81CC7 /* fs_mem.cpp in Sources */,
|
||||||
05814571E7A83F5DBFB6E4C4 /* msgout.cpp in Sources */,
|
05814571E7A83F5DBFB6E4C4 /* msgout.cpp in Sources */,
|
||||||
80665EEAE8613DF8A93A7984 /* utilscmn.cpp in Sources */,
|
80665EEAE8613DF8A93A7984 /* utilscmn.cpp in Sources */,
|
||||||
|
A1A7C58E276F6F2B247F0813 /* power.mm in Sources */,
|
||||||
A1A7D793B034398B8696EF33 /* utils.mm in Sources */,
|
A1A7D793B034398B8696EF33 /* utils.mm in Sources */,
|
||||||
F4C0CEADEDC23610BF6983D6 /* artmac.cpp in Sources */,
|
F4C0CEADEDC23610BF6983D6 /* artmac.cpp in Sources */,
|
||||||
296692A7A3783E3A83D005C6 /* brush.cpp in Sources */,
|
296692A7A3783E3A83D005C6 /* brush.cpp in Sources */,
|
||||||
|
@@ -7517,7 +7517,7 @@ if test "$wxUSE_GUI" = "yes"; then
|
|||||||
|
|
||||||
dnl TODO some samples are never built so far: mfc (requires VC++)
|
dnl TODO some samples are never built so far: mfc (requires VC++)
|
||||||
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs drawing \
|
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs drawing \
|
||||||
erase event exec font image minimal render \
|
erase event exec font image minimal power render \
|
||||||
shaped svg taborder vscroll widgets wrapsizer"
|
shaped svg taborder vscroll widgets wrapsizer"
|
||||||
|
|
||||||
if test "$wxUSE_MONOLITHIC" != "yes"; then
|
if test "$wxUSE_MONOLITHIC" != "yes"; then
|
||||||
|
@@ -32,6 +32,7 @@ Changes in behaviour which may result in build errors
|
|||||||
|
|
||||||
All:
|
All:
|
||||||
|
|
||||||
|
- Add wxPowerResourceBlocker (Tobias Taschner).
|
||||||
- Add wxApp::StoreCurrentException() and RethrowStoredException() and implement
|
- Add wxApp::StoreCurrentException() and RethrowStoredException() and implement
|
||||||
their functionality by default when using C++11 compiler.
|
their functionality by default when using C++11 compiler.
|
||||||
- Allow iterating over wxCmdLineParser arguments in order (Armel Asselin).
|
- Allow iterating over wxCmdLineParser arguments in order (Armel Asselin).
|
||||||
|
@@ -95,6 +95,49 @@ typedef void (wxEvtHandler::*wxPowerEventFunction)(wxPowerEvent&);
|
|||||||
#undef wxHAS_POWER_EVENTS
|
#undef wxHAS_POWER_EVENTS
|
||||||
#endif // support for power events/no support
|
#endif // support for power events/no support
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxPowerResourceBlocker
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
enum wxPowerResourceKind
|
||||||
|
{
|
||||||
|
wxPOWER_RESOURCE_SCREEN,
|
||||||
|
wxPOWER_RESOURCE_SYSTEM
|
||||||
|
};
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_BASE wxPowerResource
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static bool Acquire(wxPowerResourceKind kind,
|
||||||
|
const wxString& reason = wxString());
|
||||||
|
static void Release(wxPowerResourceKind kind);
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxPowerResourceBlocker
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit wxPowerResourceBlocker(wxPowerResourceKind kind,
|
||||||
|
const wxString& reason = wxString())
|
||||||
|
: m_kind(kind),
|
||||||
|
m_acquired(wxPowerResource::Acquire(kind, reason))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IsInEffect() const { return m_acquired; }
|
||||||
|
|
||||||
|
~wxPowerResourceBlocker()
|
||||||
|
{
|
||||||
|
if ( m_acquired )
|
||||||
|
wxPowerResource::Release(m_kind);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
const wxPowerResourceKind m_kind;
|
||||||
|
const bool m_acquired;
|
||||||
|
|
||||||
|
wxDECLARE_NO_COPY_CLASS(wxPowerResourceBlocker);
|
||||||
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// power management functions
|
// power management functions
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -21,6 +21,19 @@ enum wxBatteryState
|
|||||||
wxBATTERY_UNKNOWN_STATE
|
wxBATTERY_UNKNOWN_STATE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
Possible power resources that can be locked by wxPowerResourceBlocker.
|
||||||
|
|
||||||
|
@since 3.1.0
|
||||||
|
*/
|
||||||
|
enum wxPowerResourceKind
|
||||||
|
{
|
||||||
|
/// Use to prevent automatic display power off.
|
||||||
|
wxPOWER_RESOURCE_SCREEN,
|
||||||
|
|
||||||
|
/// Use to prevent automatic system suspend.
|
||||||
|
wxPOWER_RESOURCE_SYSTEM
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@class wxPowerEvent
|
@class wxPowerEvent
|
||||||
@@ -38,6 +51,11 @@ enum wxBatteryState
|
|||||||
|
|
||||||
@beginEventTable{wxPowerEvent}
|
@beginEventTable{wxPowerEvent}
|
||||||
@event{EVT_POWER_SUSPENDING(func)}
|
@event{EVT_POWER_SUSPENDING(func)}
|
||||||
|
@warning This event and the possibility to veto suspend was removed
|
||||||
|
from MSW systems starting from Windows Vista. wxPowerResourceBlocker
|
||||||
|
can be used to prevent the system from suspending under both XP and
|
||||||
|
later systems, use it instead of handling this event.
|
||||||
|
|
||||||
System is about to be suspended, this event can be vetoed to prevent
|
System is about to be suspended, this event can be vetoed to prevent
|
||||||
suspend from taking place.
|
suspend from taking place.
|
||||||
@event{EVT_POWER_SUSPENDED(func)}
|
@event{EVT_POWER_SUSPENDED(func)}
|
||||||
@@ -80,4 +98,126 @@ wxEventType wxEVT_POWER_SUSPENDED;
|
|||||||
wxEventType wxEVT_POWER_SUSPEND_CANCEL;
|
wxEventType wxEVT_POWER_SUSPEND_CANCEL;
|
||||||
wxEventType wxEVT_POWER_RESUME;
|
wxEventType wxEVT_POWER_RESUME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
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
|
||||||
|
OSX and on the latter only ::wxPOWER_RESOURCE_SYSTEM is supported for
|
||||||
|
versions earlier than 10.9.
|
||||||
|
|
||||||
|
If possible, use wxPowerResourceBlocker class to ensure that Release() is
|
||||||
|
called instead of calling it manually.
|
||||||
|
|
||||||
|
@since 3.1.0
|
||||||
|
@library{wxbase}
|
||||||
|
@category{misc}
|
||||||
|
|
||||||
|
@see wxPowerResourceBlocker
|
||||||
|
*/
|
||||||
|
class wxPowerResource
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
Acquire a power resource for the application.
|
||||||
|
|
||||||
|
If successful, the system will not automatically power of the screen or
|
||||||
|
suspend until Release() is called.
|
||||||
|
|
||||||
|
Every call to Acquire @b 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.
|
||||||
|
|
||||||
|
@param kind Power resource required, either ::wxPOWER_RESOURCE_SCREEN
|
||||||
|
or ::wxPOWER_RESOURCE_SYSTEM.
|
||||||
|
@param reason Optional 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.
|
||||||
|
@return Returns true if the acquisition was successful.
|
||||||
|
|
||||||
|
@see Release()
|
||||||
|
*/
|
||||||
|
static bool Acquire(wxPowerResourceKind kind,
|
||||||
|
const wxString& reason = wxString());
|
||||||
|
|
||||||
|
/**
|
||||||
|
Release a previously acquired power resource.
|
||||||
|
|
||||||
|
Release @b must be called for every Acquire() call made to restore
|
||||||
|
normal power saving behaviour
|
||||||
|
|
||||||
|
@param kind Power resource to be released.
|
||||||
|
|
||||||
|
@see Acquire()
|
||||||
|
*/
|
||||||
|
static void Release(wxPowerResourceKind kind);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
Helper RAII class ensuring that power resources are released.
|
||||||
|
|
||||||
|
A wxPowerResourceBlocker object acquires a power resource in the
|
||||||
|
constructor and releases it in the destructor making it impossible to to
|
||||||
|
forget to release the power resource (which would prevent suspending or
|
||||||
|
screen power off until the application ends).
|
||||||
|
|
||||||
|
Example:
|
||||||
|
@code
|
||||||
|
void MyWindow::DoSomething()
|
||||||
|
{
|
||||||
|
wxPowerResourceBlocker
|
||||||
|
blocker(wxPOWER_RESOURCE_SYSTEM, "Downloading something important");
|
||||||
|
|
||||||
|
if ( !blocker.IsInEffect() )
|
||||||
|
{
|
||||||
|
// If the resource could not be acquired, tell the user that he has
|
||||||
|
// to keep the system alive
|
||||||
|
wxLogMessage("Warning: system may suspend while downloading.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run an important download and the system will not suspend while downloading
|
||||||
|
for ( int i = 0; i < download.size(); ++i )
|
||||||
|
download.readByte();
|
||||||
|
|
||||||
|
// wxPOWER_RESOURCE_SYSTEM automatically released here.
|
||||||
|
}
|
||||||
|
@endcode
|
||||||
|
|
||||||
|
@since 3.1.0
|
||||||
|
@library{wxbase}
|
||||||
|
@category{misc}
|
||||||
|
|
||||||
|
@see wxPowerResource
|
||||||
|
*/
|
||||||
|
class wxPowerResourceBlocker
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
Acquires the power resource.
|
||||||
|
|
||||||
|
Uses the same parameters as wxPowerResource::Acquire().
|
||||||
|
*/
|
||||||
|
explicit wxPowerResourceBlocker(wxPowerResourceKind kind,
|
||||||
|
const wxString& reason = wxString());
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns whether the power resource could be acquired.
|
||||||
|
|
||||||
|
This can be used to inform the user that the application will not
|
||||||
|
prevent automatic suspending.
|
||||||
|
|
||||||
|
@see wxPowerResource::Acquire()
|
||||||
|
*/
|
||||||
|
bool IsInEffect() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Releases the power resource.
|
||||||
|
|
||||||
|
@see wxPowerResource::Release()
|
||||||
|
*/
|
||||||
|
~wxPowerResourceBlocker();
|
||||||
|
};
|
||||||
|
@@ -29,6 +29,8 @@
|
|||||||
|
|
||||||
#include "wx/textctrl.h"
|
#include "wx/textctrl.h"
|
||||||
#include "wx/msgdlg.h"
|
#include "wx/msgdlg.h"
|
||||||
|
#include "wx/menu.h"
|
||||||
|
#include "wx/timer.h"
|
||||||
|
|
||||||
#include "wx/power.h"
|
#include "wx/power.h"
|
||||||
|
|
||||||
@@ -47,6 +49,16 @@ public:
|
|||||||
: wxFrame(NULL, wxID_ANY, wxT("wxWidgets Power Management Sample"),
|
: wxFrame(NULL, wxID_ANY, wxT("wxWidgets Power Management Sample"),
|
||||||
wxDefaultPosition, wxSize(500, 200))
|
wxDefaultPosition, wxSize(500, 200))
|
||||||
{
|
{
|
||||||
|
m_powerResourceBlocker = NULL;
|
||||||
|
|
||||||
|
wxMenu *fileMenu = new wxMenu;
|
||||||
|
fileMenu->Append(wxID_NEW, "Start long running task\tCtrl-S");
|
||||||
|
fileMenu->Append(wxID_ABORT, "Stop long running task");
|
||||||
|
|
||||||
|
wxMenuBar* menuBar = new wxMenuBar();
|
||||||
|
menuBar->Append(fileMenu, wxT("&Task"));
|
||||||
|
SetMenuBar(menuBar);
|
||||||
|
|
||||||
wxTextCtrl *text = new wxTextCtrl(this, wxID_ANY, wxT(""),
|
wxTextCtrl *text = new wxTextCtrl(this, wxID_ANY, wxT(""),
|
||||||
wxDefaultPosition, wxDefaultSize,
|
wxDefaultPosition, wxDefaultSize,
|
||||||
wxTE_MULTILINE | wxTE_READONLY);
|
wxTE_MULTILINE | wxTE_READONLY);
|
||||||
@@ -58,11 +70,20 @@ public:
|
|||||||
|
|
||||||
UpdatePowerSettings(wxPOWER_UNKNOWN, wxBATTERY_UNKNOWN_STATE);
|
UpdatePowerSettings(wxPOWER_UNKNOWN, wxBATTERY_UNKNOWN_STATE);
|
||||||
|
|
||||||
|
StopLongTask();
|
||||||
|
Bind(wxEVT_COMMAND_MENU_SELECTED,
|
||||||
|
&MyFrame::OnStartTaskClicked, this, wxID_NEW);
|
||||||
|
Bind(wxEVT_COMMAND_MENU_SELECTED,
|
||||||
|
&MyFrame::OnStopTaskClicked, this, wxID_ABORT);
|
||||||
|
m_taskTimer.Bind(wxEVT_TIMER, &MyFrame::OnTaskTimer, this);
|
||||||
|
|
||||||
Show();
|
Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~MyFrame()
|
virtual ~MyFrame()
|
||||||
{
|
{
|
||||||
|
delete m_powerResourceBlocker;
|
||||||
|
|
||||||
delete wxLog::SetActiveTarget(m_logOld);
|
delete wxLog::SetActiveTarget(m_logOld);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,10 +183,67 @@ private:
|
|||||||
batteryStr.c_str()));
|
batteryStr.c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnStartTaskClicked( wxCommandEvent& WXUNUSED(event) )
|
||||||
|
{
|
||||||
|
wxLogMessage("Starting long running task "
|
||||||
|
"(screen should keep powered on while running)...");
|
||||||
|
StartLongTask();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnStopTaskClicked(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
StopLongTask();
|
||||||
|
wxLogMessage("Stopped long running task");
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnTaskTimer(wxTimerEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
++m_taskProgress;
|
||||||
|
|
||||||
|
if ( m_taskProgress == 100 )
|
||||||
|
{
|
||||||
|
StopLongTask();
|
||||||
|
wxLogMessage("Long running task finished");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxLogMessage("Long running task at %d%%...", m_taskProgress);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StartLongTask()
|
||||||
|
{
|
||||||
|
m_taskProgress = 0;
|
||||||
|
m_taskTimer.Start(12000);
|
||||||
|
GetMenuBar()->Enable(wxID_NEW, false);
|
||||||
|
GetMenuBar()->Enable(wxID_ABORT, true);
|
||||||
|
|
||||||
|
m_powerResourceBlocker
|
||||||
|
= new wxPowerResourceBlocker(wxPOWER_RESOURCE_SYSTEM);
|
||||||
|
|
||||||
|
if ( !m_powerResourceBlocker->IsInEffect() )
|
||||||
|
{
|
||||||
|
wxLogMessage("Power resource could not be acquired, "
|
||||||
|
"user input is required to prevent system standby");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StopLongTask()
|
||||||
|
{
|
||||||
|
GetMenuBar()->Enable(wxID_NEW, true);
|
||||||
|
GetMenuBar()->Enable(wxID_ABORT, false);
|
||||||
|
m_taskTimer.Stop();
|
||||||
|
|
||||||
|
wxDELETE(m_powerResourceBlocker);
|
||||||
|
}
|
||||||
|
|
||||||
wxPowerType m_powerType;
|
wxPowerType m_powerType;
|
||||||
wxBatteryState m_batteryState;
|
wxBatteryState m_batteryState;
|
||||||
|
|
||||||
wxLog *m_logOld;
|
wxLog *m_logOld;
|
||||||
|
wxTimer m_taskTimer;
|
||||||
|
wxPowerResourceBlocker *m_powerResourceBlocker;
|
||||||
|
int m_taskProgress;
|
||||||
|
|
||||||
wxDECLARE_EVENT_TABLE();
|
wxDECLARE_EVENT_TABLE();
|
||||||
};
|
};
|
||||||
|
@@ -41,6 +41,23 @@
|
|||||||
IMPLEMENT_DYNAMIC_CLASS(wxPowerEvent, wxEvent)
|
IMPLEMENT_DYNAMIC_CLASS(wxPowerEvent, wxEvent)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Provide stubs for systems without power resource management functions
|
||||||
|
#if !defined(__WINDOWS__) && !defined(__APPLE__)
|
||||||
|
|
||||||
|
bool
|
||||||
|
wxPowerResource::Acquire(wxPowerResourceKind kind,
|
||||||
|
const wxString& WXUNUSED(reason))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPowerResource::Release(wxPowerResourceKind kind)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // !(__WINDOWS__ || __APPLE__)
|
||||||
|
|
||||||
// provide stubs for the systems not implementing these functions
|
// provide stubs for the systems not implementing these functions
|
||||||
#if !defined(__WINDOWS__)
|
#if !defined(__WINDOWS__)
|
||||||
|
|
||||||
|
@@ -27,6 +27,7 @@
|
|||||||
#endif //WX_PRECOMP
|
#endif //WX_PRECOMP
|
||||||
|
|
||||||
#include "wx/power.h"
|
#include "wx/power.h"
|
||||||
|
#include "wx/atomic.h"
|
||||||
#include "wx/msw/private.h"
|
#include "wx/msw/private.h"
|
||||||
|
|
||||||
#if !defined(__WINCE_STANDARDSDK__)
|
#if !defined(__WINCE_STANDARDSDK__)
|
||||||
@@ -39,6 +40,85 @@
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxPowerResource
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
wxAtomicInt g_powerResourceScreenRefCount = 0;
|
||||||
|
wxAtomicInt g_powerResourceSystemRefCount = 0;
|
||||||
|
|
||||||
|
bool UpdatePowerResourceExecutionState()
|
||||||
|
{
|
||||||
|
EXECUTION_STATE executionState = ES_CONTINUOUS;
|
||||||
|
if ( g_powerResourceScreenRefCount > 0 )
|
||||||
|
executionState |= ES_DISPLAY_REQUIRED;
|
||||||
|
|
||||||
|
if ( g_powerResourceSystemRefCount > 0 )
|
||||||
|
executionState |= ES_SYSTEM_REQUIRED;
|
||||||
|
|
||||||
|
if ( ::SetThreadExecutionState(executionState) == NULL )
|
||||||
|
{
|
||||||
|
wxLogLastError(wxT("SetThreadExecutionState()"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // anonymous namespace
|
||||||
|
|
||||||
|
bool
|
||||||
|
wxPowerResource::Acquire(wxPowerResourceKind kind,
|
||||||
|
const wxString& WXUNUSED(reason))
|
||||||
|
{
|
||||||
|
switch ( kind )
|
||||||
|
{
|
||||||
|
case wxPOWER_RESOURCE_SCREEN:
|
||||||
|
wxAtomicInc(g_powerResourceScreenRefCount);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case wxPOWER_RESOURCE_SYSTEM:
|
||||||
|
wxAtomicInc(g_powerResourceSystemRefCount);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return UpdatePowerResourceExecutionState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPowerResource::Release(wxPowerResourceKind kind)
|
||||||
|
{
|
||||||
|
switch ( kind )
|
||||||
|
{
|
||||||
|
case wxPOWER_RESOURCE_SCREEN:
|
||||||
|
if ( g_powerResourceScreenRefCount > 0 )
|
||||||
|
{
|
||||||
|
wxAtomicDec(g_powerResourceScreenRefCount);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxFAIL_MSG( "Screen power resource was not acquired" );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case wxPOWER_RESOURCE_SYSTEM:
|
||||||
|
if ( g_powerResourceSystemRefCount > 0 )
|
||||||
|
{
|
||||||
|
wxAtomicDec(g_powerResourceSystemRefCount);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxFAIL_MSG( "System power resource was not acquired" );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdatePowerResourceExecutionState();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// helper functions
|
// helper functions
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
129
src/osx/cocoa/power.mm
Normal file
129
src/osx/cocoa/power.mm
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: src/osx/cocoa/power.mm
|
||||||
|
// Purpose: wxPowerResource implementation for OSX
|
||||||
|
// Author: Tobias Taschner
|
||||||
|
// Created: 2014-08-09
|
||||||
|
// Copyright: (c) wxWidgets team
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
|
#include "wx/power.h"
|
||||||
|
#include "wx/atomic.h"
|
||||||
|
#include "wx/osx/private.h"
|
||||||
|
|
||||||
|
#include <IOKit/pwr_mgt/IOPMLib.h>
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxPowerResource
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
wxAtomicInt g_powerResourceSystemRefCount = 0;
|
||||||
|
|
||||||
|
IOPMAssertionID g_pmAssertionID = 0;
|
||||||
|
NSObject* g_processInfoActivity = nil;
|
||||||
|
|
||||||
|
bool UpdatePowerResourceUsage(wxPowerResourceKind kind, const wxString& reason)
|
||||||
|
{
|
||||||
|
if ( g_powerResourceSystemRefCount >= 1 )
|
||||||
|
{
|
||||||
|
wxCFStringRef cfreason(reason);
|
||||||
|
if( reason.IsEmpty())
|
||||||
|
cfreason = wxString("User Activity");
|
||||||
|
|
||||||
|
if ( UMAGetSystemVersion() >= 0x1090 )
|
||||||
|
{
|
||||||
|
// Use NSProcessInfo for 10.9 and newer
|
||||||
|
if ( !g_processInfoActivity )
|
||||||
|
{
|
||||||
|
NSActivityOptions
|
||||||
|
options = NSActivityUserInitiated |
|
||||||
|
NSActivityIdleSystemSleepDisabled;
|
||||||
|
|
||||||
|
if ( kind == wxPOWER_RESOURCE_SCREEN )
|
||||||
|
options |= NSActivityIdleDisplaySleepDisabled;
|
||||||
|
|
||||||
|
g_processInfoActivity = [[NSProcessInfo processInfo]
|
||||||
|
beginActivityWithOptions:options
|
||||||
|
reason:cfreason.AsNSString()];
|
||||||
|
[g_processInfoActivity retain];
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ( !g_pmAssertionID )
|
||||||
|
{
|
||||||
|
// Use power manager API for < 10.9 systems
|
||||||
|
IOReturn success = IOPMAssertionCreateWithName
|
||||||
|
(
|
||||||
|
kIOPMAssertionTypeNoIdleSleep,
|
||||||
|
kIOPMAssertionLevelOn,
|
||||||
|
cfreason,
|
||||||
|
&g_pmAssertionID
|
||||||
|
);
|
||||||
|
if ( success == kIOReturnSuccess )
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ( g_powerResourceSystemRefCount == 0 )
|
||||||
|
{
|
||||||
|
// Release power assertion
|
||||||
|
if ( UMAGetSystemVersion() >= 0x1090 )
|
||||||
|
{
|
||||||
|
// Use NSProcessInfo for 10.9 and newer
|
||||||
|
if ( g_processInfoActivity )
|
||||||
|
{
|
||||||
|
[[NSProcessInfo processInfo]
|
||||||
|
endActivity:(id)g_processInfoActivity];
|
||||||
|
g_processInfoActivity = nil;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ( g_pmAssertionID )
|
||||||
|
{
|
||||||
|
// Use power manager API for < 10.9 systems
|
||||||
|
IOReturn success = IOPMAssertionRelease(g_pmAssertionID);
|
||||||
|
g_pmAssertionID = 0;
|
||||||
|
if (success == kIOReturnSuccess)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPowerResource::Acquire(wxPowerResourceKind kind, const wxString& reason)
|
||||||
|
{
|
||||||
|
wxAtomicInc(g_powerResourceSystemRefCount);
|
||||||
|
|
||||||
|
bool success = UpdatePowerResourceUsage(kind, reason);
|
||||||
|
if (!success)
|
||||||
|
wxAtomicDec(g_powerResourceSystemRefCount);
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPowerResource::Release(wxPowerResourceKind kind)
|
||||||
|
{
|
||||||
|
switch ( kind )
|
||||||
|
{
|
||||||
|
case wxPOWER_RESOURCE_SCREEN:
|
||||||
|
case wxPOWER_RESOURCE_SYSTEM:
|
||||||
|
if ( g_powerResourceSystemRefCount > 0 )
|
||||||
|
{
|
||||||
|
wxAtomicDec(g_powerResourceSystemRefCount);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxFAIL_MSG("Power resource was not acquired");
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdatePowerResourceUsage(kind, "");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user