50 #include <com/sun/star/accessibility/MSAAService.hpp>
52 #include <config_features.h>
62 struct private_aImplSVData :
63 public rtl::Static<ImplSVData, private_aImplSVData> {};
65 struct private_aImplSVHelpData :
66 public rtl::Static<ImplSVHelpData, private_aImplSVHelpData> {};
69 struct private_aImplSVWinData :
70 public rtl::Static<ImplSVWinData, private_aImplSVWinData> {};
75 return &private_aImplSVData::get();
102 typedef ::std::map< basegfx::SystemDependentData_SharedPtr, sal_uInt32 > EntryMap;
107 std::unique_ptr<AutoTimer> maTimer;
113 SystemDependentDataBuffer(
const char* pDebugName)
114 :
basegfx::SystemDependentDataManager(),
117 maTimer->SetTimeout(1000);
118 maTimer->SetInvokeHandler(
LINK(
this, SystemDependentDataBuffer, implTimeoutHdl));
121 virtual ~SystemDependentDataBuffer()
override
129 EntryMap::iterator aFound(maEntries.find(rData));
131 if(aFound == maEntries.end())
133 if(maTimer && !maTimer->IsActive())
138 maEntries[rData] = rData->calculateCombinedHoldCyclesInSeconds();
145 EntryMap::iterator aFound(maEntries.find(rData));
147 if(aFound != maEntries.end())
149 maEntries.erase(aFound);
156 EntryMap::iterator aFound(maEntries.find(rData));
158 if(aFound != maEntries.end())
160 aFound->second = rData->calculateCombinedHoldCyclesInSeconds();
164 void flushAll()
override
181 EntryMap::iterator aIter(maEntries.begin());
183 while(aIter != maEntries.end())
192 aIter = maEntries.erase(aIter);
196 if (maEntries.empty())
203 static SystemDependentDataBuffer aSystemDependentDataBuffer(
"vcl SystemDependentDataBuffer aSystemDependentDataBuffer");
205 return aSystemDependentDataBuffer;
232 SAL_INFO(
"vcl",
"ImplGetDefaultWindow(): No AppWindow" );
237 catch (
const css::uno::Exception&)
270 for (sal_uInt32
i = 0;
i < nUnits;
i++)
272 std::pair<OUString, FieldUnit> aElement(
VclResId(SV_FUNIT_STRINGS[
i].
first), SV_FUNIT_STRINGS[
i].second);
285 size_t nUnits = rUnits.size();
287 for (
size_t i = 0;
i < nUnits; ++
i)
289 OUString aUnit(rUnits[
i].
first);
290 aUnit = aUnit.replaceAll(
" ",
"");
291 aUnit = aUnit.toAsciiLowerCase();
292 std::pair<OUString, FieldUnit> aElement(aUnit, rUnits[
i].second);
318 bool ImplInitAccessBridge()
325 if (!HasAtHook() && !getenv(
"SAL_FORCE_IACCESSIBLE2"))
327 SAL_INFO(
"vcl",
"Apparently no running AT -> "
328 "not enabling IAccessible2 integration");
334 = css::accessibility::MSAAService::create(xContext);
335 SAL_INFO(
"vcl",
"got IAccessible2 bridge");
337 }
catch (css::uno::DeploymentException &) {
340 "got no IAccessible2 bridge");
380 assert(pSVData !=
nullptr);
386 if (pSVData->
mpWinData == &private_aImplSVWinData::get())
394 pSVData->
mpWinData = &private_aImplSVWinData::get();
400 mpHelpData = &private_aImplSVHelpData::get();
401 mpWinData = &private_aImplSVWinData::get();
451 if (pSVData->
mpHelpData == &private_aImplSVHelpData::get())
459 pSVData->
mpHelpData = &private_aImplSVHelpData::get();
472 return private_aImplSVHelpData::get();
ImplSVHelpData & ImplGetSVHelpData()
#define LINK(Instance, Class, Member)
VclPtr< HelpTextWindow > mpHelpWin
std::unique_ptr< SalSystem > mpSalSystem
VclPtr< vcl::Window > mpFocusWin
const FieldUnitStringList & ImplGetCleanedFieldUnits()
void SetSVWinData(ImplSVWinData *pSVWinData)
#define DECL_LINK(Member, ArgType, RetType)
std::unique_ptr< vcl::SettingsConfigItem > mpSettingsConfigItem
css::uno::Reference< css::lang::XComponent > mxAccessBridge
void DestroySVHelpData(ImplSVHelpData *pSVHelpData)
ImplSVHelpData * CreateSVHelpData()
BlendFrameCache * ImplGetBlendFrameCache()
ImplSVCtrlData maCtrlData
std::locale Create(const char *pPrefixName, const LanguageTag &rLocale)
ImplSVHelpData * mpHelpData
std::unique_ptr< BlendFrameCache > mpBlendFrameCache
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
basegfx::SystemDependentDataManager & ImplGetSystemDependentDataManager()
#define SAL_N_ELEMENTS(arr)
vcl::Window * ImplGetDefaultContextWindow()
returns the default window created to hold the persistent VCL GL context.
ImplSVData * ImplGetSVData()
An auto-timer is a multi-shot timer re-emitting itself at interval until destroyed or stopped...
SalSystem * ImplGetSalSystem()
#define TOOLS_WARN_EXCEPTION(area, stream)
virtual SalSystem * CreateSalSystem()=0
FieldUnitStringList maCleanUnitStrings
VclPtr< WorkWindow > mpAppWin
static void LocaleSettingsChanged(ConfigurationHints nHint)
void reset(reference_type *pBody)
const std::locale & ImplGetResLocale()
virtual void ConfigurationChanged(utl::ConfigurationBroadcaster *, ConfigurationHints) override
DockingManager * ImplGetDockingManager()
ImplSVFrameData maFrameData
#define SAL_INFO(area, stream)
void SetSVHelpData(ImplSVHelpData *pSVHelpData)
virtual void SetText(const OUString &rStr) override
static VclPtr< reference_type > Create(Arg &&...arg)
A construction helper for VclPtr.
void DestroySVWinData(ImplSVWinData *pData)
Reference< XComponentContext > getProcessComponentContext()
std::vector< std::pair< OUString, FieldUnit > > FieldUnitStringList
IMPL_LINK_NOARG(Animation, ImplTimeoutHdl, Timer *, void)
WinBits const WB_DEFAULTWIN
ImplSVWinData * CreateSVWinData()
FieldUnitStringList maFieldUnitStrings
OUString VclResId(const char *pId)
std::unique_ptr< DockingManager > mpDockingManager
OUString get(const char *pContextAndId, const std::locale &loc)
const FieldUnitStringList & ImplGetFieldUnits()
constexpr OUStringLiteral first
vcl::Window * ImplGetDefaultWindow()
Returns either the application window, or the default GL context window.
std::unordered_map< int, OUString > maPaperNames
void ImplDestroyHelpWindow(bool bUpdateHideTime)
ImplSVWinData * mpWinData
std::shared_ptr< SystemDependentData > SystemDependentData_SharedPtr
VclPtr< WorkWindow > mpDefaultWin