52#include <com/sun/star/accessibility/MSAAService.hpp>
54#include <config_features.h>
64 struct private_aImplSVData :
65 public rtl::Static<ImplSVData, private_aImplSVData> {};
67 struct private_aImplSVHelpData :
68 public rtl::Static<ImplSVHelpData, private_aImplSVHelpData> {};
71 struct private_aImplSVWinData :
72 public rtl::Static<ImplSVWinData, private_aImplSVWinData> {};
77 return &private_aImplSVData::get();
104 typedef ::std::map< basegfx::SystemDependentData_SharedPtr, sal_uInt32 > EntryMap;
110 std::unique_ptr<AutoTimer> maTimer;
116 SystemDependentDataBuffer(
const char* pDebugName)
119 maTimer->SetTimeout(1000);
120 maTimer->SetInvokeHandler(
LINK(
this, SystemDependentDataBuffer, implTimeoutHdl));
123 virtual ~SystemDependentDataBuffer()
override
130 std::unique_lock aGuard(m_aMutex);
131 EntryMap::iterator aFound(maEntries.find(rData));
133 if(aFound == maEntries.end())
135 if(maTimer && !maTimer->IsActive())
140 maEntries[rData] = rData->calculateCombinedHoldCyclesInSeconds();
146 std::unique_lock aGuard(m_aMutex);
147 EntryMap::iterator aFound(maEntries.find(rData));
149 if(aFound != maEntries.end())
151 maEntries.erase(aFound);
157 std::unique_lock aGuard(m_aMutex);
158 EntryMap::iterator aFound(maEntries.find(rData));
160 if(aFound != maEntries.end())
162 aFound->second = rData->calculateCombinedHoldCyclesInSeconds();
168 std::unique_lock aGuard(m_aMutex);
182 std::unique_lock aGuard(m_aMutex);
183 EntryMap::iterator aIter(maEntries.begin());
185 while(aIter != maEntries.end())
194 aIter = maEntries.erase(aIter);
198 if (maEntries.empty())
205 static SystemDependentDataBuffer aSystemDependentDataBuffer(
"vcl SystemDependentDataBuffer aSystemDependentDataBuffer");
207 return aSystemDependentDataBuffer;
234 SAL_INFO(
"vcl",
"ImplGetDefaultWindow(): No AppWindow" );
239 catch (
const css::uno::Exception&)
272 for (sal_uInt32
i = 0;
i < nUnits;
i++)
274 std::pair<OUString, FieldUnit> aElement(
VclResId(SV_FUNIT_STRINGS[
i].
first), SV_FUNIT_STRINGS[
i].second);
286 for (sal_uInt32
i = 0;
i < nUnits; ++
i)
288 if (rEnglishMetricString == SV_FUNIT_STRINGS[
i].
first.mpId)
289 return SV_FUNIT_STRINGS[
i].second;
291 return FieldUnit::NONE;
301 size_t nUnits = rUnits.size();
303 for (
size_t i = 0;
i < nUnits; ++
i)
305 OUString aUnit(rUnits[
i].
first);
306 aUnit = aUnit.replaceAll(
" ",
"");
307 aUnit = aUnit.toAsciiLowerCase();
308 std::pair<OUString, FieldUnit> aElement(aUnit, rUnits[
i].second);
334bool ImplInitAccessBridge()
341 if (!HasAtHook() && !getenv(
"SAL_FORCE_IACCESSIBLE2"))
343 SAL_INFO(
"vcl",
"Apparently no running AT -> "
344 "not enabling IAccessible2 integration");
350 = css::accessibility::MSAAService::create(xContext);
351 SAL_INFO(
"vcl",
"got IAccessible2 bridge");
353 }
catch (css::uno::DeploymentException &) {
356 "got no IAccessible2 bridge");
396 assert(pSVData !=
nullptr);
402 if (pSVData->
mpWinData == &private_aImplSVWinData::get())
410 pSVData->
mpWinData = &private_aImplSVWinData::get();
417 mpWinData = &private_aImplSVWinData::get();
467 if (pSVData->
mpHelpData == &private_aImplSVHelpData::get())
475 pSVData->
mpHelpData = &private_aImplSVHelpData::get();
488 return private_aImplSVHelpData::get();
IMPL_LINK_NOARG(Animation, ImplTimeoutHdl, Timer *, void)
static SAL_DLLPRIVATE void LocaleSettingsChanged(ConfigurationHints nHint)
An auto-timer is a multi-shot timer re-emitting itself at interval until destroyed or stopped.
virtual void ConfigurationChanged(utl::ConfigurationBroadcaster *, ConfigurationHints) override
virtual SalSystem * CreateSalSystem()=0
virtual void SetText(const OUString &rStr) override
void reset(reference_type *pBody)
static VclPtr< reference_type > Create(Arg &&... arg)
A construction helper for VclPtr.
virtual void endUsage(basegfx::SystemDependentData_SharedPtr &rData)=0
virtual void flushAll()=0
virtual void startUsage(basegfx::SystemDependentData_SharedPtr &rData)=0
virtual void touchUsage(basegfx::SystemDependentData_SharedPtr &rData)=0
#define TOOLS_WARN_EXCEPTION(area, stream)
DECL_LINK(CheckNameHdl, SvxNameDialog &, bool)
void ImplDestroyHelpWindow(bool bUpdateHideTime)
#define LINK(Instance, Class, Member)
#define SAL_WARN_IF(condition, area, stream)
#define SAL_INFO(area, stream)
#define SAL_N_ELEMENTS(arr)
std::unique_ptr< sal_Int32[]> pData
std::locale Create(std::string_view aPrefixName, const LanguageTag &rLocale)
OUString get(TranslateId sContextAndId, const std::locale &loc)
std::shared_ptr< SystemDependentData > SystemDependentData_SharedPtr
Reference< XComponentContext > getProcessComponentContext()
constexpr OUStringLiteral first
FieldUnit EnglishStringToMetric(std::string_view rEnglishMetricString)
FieldUnitStringList maCleanUnitStrings
FieldUnitStringList maFieldUnitStrings
ImplSVCtrlData maCtrlData
ImplSVFrameData maFrameData
std::unique_ptr< DockingManager > mpDockingManager
std::unique_ptr< BlendFrameCache > mpBlendFrameCache
ImplSVHelpData * mpHelpData
css::uno::Reference< css::lang::XComponent > mxAccessBridge
VclPtr< WorkWindow > mpDefaultWin
ImplSVWinData * mpWinData
std::unique_ptr< SalSystem > mpSalSystem
std::unique_ptr< vcl::SettingsConfigItem > mpSettingsConfigItem
std::unordered_map< int, OUString > maPaperNames
VclPtr< WorkWindow > mpAppWin
VclPtr< HelpTextWindow > mpHelpWin
VclPtr< vcl::Window > mpFocusWin
ImplSVWinData * CreateSVWinData()
SalSystem * ImplGetSalSystem()
ImplSVData * ImplGetSVData()
void DestroySVWinData(ImplSVWinData *pData)
void DestroySVHelpData(ImplSVHelpData *pSVHelpData)
const std::locale & ImplGetResLocale()
vcl::Window * ImplGetDefaultWindow()
Returns either the application window, or the default GL context window.
BlendFrameCache * ImplGetBlendFrameCache()
ImplSVHelpData & ImplGetSVHelpData()
void SetSVHelpData(ImplSVHelpData *pSVHelpData)
void SetSVWinData(ImplSVWinData *pSVWinData)
const FieldUnitStringList & ImplGetFieldUnits()
DockingManager * ImplGetDockingManager()
OUString VclResId(TranslateId aId)
ImplSVHelpData * CreateSVHelpData()
const FieldUnitStringList & ImplGetCleanedFieldUnits()
vcl::Window * ImplGetDefaultContextWindow()
returns the default window created to hold the persistent VCL GL context.
basegfx::SystemDependentDataManager & ImplGetSystemDependentDataManager()
std::vector< std::pair< OUString, FieldUnit > > FieldUnitStringList
WinBits const WB_DEFAULTWIN