1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- // Copyright (C) 2002-2012 Nikolaus Gebhardt
- // This file is part of the "Irrlicht Engine".
- // For conditions of distribution and use, see copyright notice in irrlicht.h
- #pragma once
- #include "IOSOperator.h"
- namespace irr
- {
- class CIrrDeviceLinux;
- //! The OSOperator provides OS-specific methods and information.
- class COSOperator : public IOSOperator
- {
- public:
- // constructor
- #if defined(_IRR_COMPILE_WITH_X11_DEVICE_)
- COSOperator(const core::stringc &osversion, CIrrDeviceLinux *device);
- #endif
- COSOperator(const core::stringc &osversion);
- ~COSOperator();
- COSOperator(const COSOperator &) = delete;
- COSOperator &operator=(const COSOperator &) = delete;
- //! Get the current OS version as string.
- const core::stringc &getOperatingSystemVersion() const override;
- //! Copies text to the clipboard
- //! \param text: text in utf-8
- void copyToClipboard(const c8 *text) const override;
- //! Copies text to the primary selection
- //! This is a no-op on some platforms.
- //! \param text: text in utf-8
- void copyToPrimarySelection(const c8 *text) const override;
- //! Get text from the clipboard
- //! \return Returns 0 if no string is in there, otherwise an utf-8 string.
- const c8 *getTextFromClipboard() const override;
- //! Get text from the primary selection
- //! This is a no-op on some platforms.
- //! \return Returns 0 if no string is in there, otherwise an utf-8 string.
- const c8 *getTextFromPrimarySelection() const override;
- //! Get the total and available system RAM
- /** \param totalBytes: will contain the total system memory in Kilobytes (1024 B)
- \param availableBytes: will contain the available memory in Kilobytes (1024 B)
- \return True if successful, false if not */
- bool getSystemMemory(u32 *Total, u32 *Avail) const override;
- private:
- core::stringc OperatingSystem;
- #if defined(_IRR_COMPILE_WITH_X11_DEVICE_)
- CIrrDeviceLinux *IrrDeviceLinux;
- #endif
- #ifdef _IRR_WINDOWS_API_
- mutable core::stringc ClipboardBuf;
- #endif
- #ifdef _IRR_COMPILE_WITH_SDL_DEVICE_
- // These need to be freed with SDL_free
- mutable char *ClipboardSelectionText = nullptr;
- mutable char *PrimarySelectionText = nullptr;
- #endif
- };
- } // end namespace
|