Guiliani  Version 2.5 revision 7293 (documentation build 13)
GUIClipboard.h
1/*
2* Copyright (C) TES Electronic Solutions GmbH,
3* All Rights Reserved.
4* Contact: info@guiliani.de
5*
6* This file is part of the Guiliani HMI framework
7* for the development of graphical user interfaces on embedded systems.
8*/
9
10#ifndef GUICLIPBOARD__H_
11#define GUICLIPBOARD__H_
12
13#include "eC_String.h"
14
15#include "GUIComponentManager.h"
16
17#if (defined(eC_TARGET_CPU_X86) ||defined(eC_TARGET_CPU_X64)) && defined(eC_TARGET_ENV_LINUX)
18#define LINUX_DESKTOP
19#endif
20
21// For clipboard access under linux X11 desktop
22#if defined(LINUX_DESKTOP)
23#include "GUIThread.h"
24#include <X11/Xmu/Atoms.h> // XrmOptionDescRec, Atoms, ...
25
26// GUIThread for handle copy to clipboard
27class CClipboardThread : public CGUIThread
28{
29public:
30 CClipboardThread();
31
32 void Execute(void * pArg);
33
35 void SetClipboardString(const eC_String & kStr);
36private:
38 int SetX11Clipboard(Display * pkDisplay,
39 Window * kWindow,
40 XEvent xeEvent,
41 Atom * pxaProperty, Atom xaTarget,
42 unsigned char * pucText, unsigned long ulLength, unsigned long * pulPosition,
43 unsigned int * puiContext);
44
45 eC_String m_kStrClipboard; // String with content for clipboard
46};
47#endif
48
50#define GET_CLIPBOARD CGUIComponentManager::GetInstance().GetClipboard()
51
53
78{
79 friend class CGUIComponentManager;
80
81public:
84 static void CreateInstance();
85
88 static void DeleteInstance();
89
93 void PutString(const eC_String& kStr);
94
98 eC_String GetString() const;
99
103
104private:
107
109 virtual ~CGUIClipboard(void);
110
114 CGUIClipboard(const CGUIClipboard& kSource);
115
118 CGUIClipboard& operator=(const CGUIClipboard& kSource);
119
120#if defined(LINUX_DESKTOP)
122 int GetX11Clipboard(Display * pkDisplay,
123 Window kWindow,
124 XEvent xeEvent,
125 Atom sel, Atom xaTarget,
126 unsigned char ** ppucText, unsigned long * pulLength,
127 unsigned int * uiContext) const;
128#endif
129
130private:
133 eC_String m_kClipboardString;
134
135#if defined(LINUX_DESKTOP)
136 Display * m_pkDisplay; // X11 display pointer
137
138 Window m_kWindow; // X11 window
139
140 CClipboardThread * m_pkSetX11ClipboardThread; // Handle copy to X11 clipboard
141#endif
142};
143#endif
A simple Clipboard wrapper.
Definition: GUIClipboard.h:78
eC_String GetString() const
void PutString(const eC_String &kStr)
static void CreateInstance()
void ClearClipboard()
static void DeleteInstance()
central component-manager
Definition: GUIComponentManager.h:62
This is the base class for Guiliani threads.
Definition: GUIThread.h:85
virtual void Execute(void *pArg)=0