Guiliani  Version 2.6 revision 7293 (documentation build 12)
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#elif (defined(eC_TARGET_CPU_X86) || defined(eC_TARGET_CPU_X64)) && defined(eC_TARGET_ENV_WIN32)
20#define WINDOWS_DESKTOP
21#endif
22
23// For clipboard access under linux X11 desktop
24#if defined(LINUX_DESKTOP)
25#include "GUIThread.h"
26#include <X11/Xmu/Atoms.h> // XrmOptionDescRec, Atoms, ...
27
28// GUIThread for handle copy to clipboard
29class CClipboardThread : public CGUIThread
30{
31public:
32 CClipboardThread();
33
34 void Execute(void * pArg);
35
37 void SetClipboardString(const eC_String & kStr);
38private:
40 int SetX11Clipboard(Display * pkDisplay,
41 Window * kWindow,
42 XEvent xeEvent,
43 Atom * pxaProperty, Atom xaTarget,
44 unsigned char * pucText, unsigned long ulLength, unsigned long * pulPosition,
45 unsigned int * puiContext);
46
47 eC_String m_kStrClipboard; // String with content for clipboard
48};
49#endif
50
52#define GET_CLIPBOARD CGUIComponentManager::GetInstance().GetClipboard()
53
55
80{
81 friend class CGUIComponentManager;
82
83public:
86 static void CreateInstance();
87
90 static void DeleteInstance();
91
95 void PutString(const eC_String& kStr);
96
100 eC_String GetString() const;
101
105
106private:
109
111 virtual ~CGUIClipboard(void);
112
116 CGUIClipboard(const CGUIClipboard& kSource);
117
120 CGUIClipboard& operator=(const CGUIClipboard& kSource);
121
122#if defined(LINUX_DESKTOP)
124 int GetX11Clipboard(Display * pkDisplay,
125 Window kWindow,
126 XEvent xeEvent,
127 Atom sel, Atom xaTarget,
128 unsigned char ** ppucText, unsigned long * pulLength,
129 unsigned int * uiContext) const;
130#endif
131
132private:
135 eC_String m_kClipboardString;
136
137#if defined(LINUX_DESKTOP)
138 Display * m_pkDisplay; // X11 display pointer
139
140 Window m_kWindow; // X11 window
141
142 CClipboardThread * m_pkSetX11ClipboardThread; // Handle copy to X11 clipboard
143#endif
144};
145#endif
A simple Clipboard wrapper.
Definition: GUIClipboard.h:80
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