1/*
2 * Author:      William Chia-Wei Cheng (bill.cheng@acm.org)
3 *
4 * Copyright (C) 2001-2009, William Chia-Wei Cheng.
5 *
6 * This file may be distributed under the terms of the Q Public License
7 * as defined by Trolltech AS of Norway and appearing in the file
8 * LICENSE.QPL included in the packaging of this file.
9 *
10 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING
11 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
12 * PURPOSE.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
13 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
14 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
15 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
16 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 *
18 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/cutpaste.e,v 1.21 2011/05/19 16:46:22 william Exp $
19 */
20
21#ifndef _CUTPASTE_E_
22#define _CUTPASTE_E_
23
24#define CBI_TGIF 0
25#define CBI_UTF8 1
26#define CBI_TEXT 2
27
28typedef struct tagSetCutBufferInfo {
29   int tgif_valid;
30   int utf8_valid;
31   int text_valid;
32   struct DynStrRec tgif_dyn_str;
33   struct DynStrRec utf8_dyn_str;
34   struct DynStrRec text_dyn_str;
35} SetCutBufferInfo;
36
37extern int	copyingToCutBuffer;
38extern int	pastingFile;
39
40extern char	gszFilesIniFile[MAXPATHLENGTH];
41extern char	*gpszRecentFilesSec;
42extern char	*gpszRecentFilesCountKey;
43
44extern int	cutBufferIsTgifObj;
45extern int	cutBufferIsUTF8;
46extern struct DynStrRec	dsCutBuffer;
47
48extern Time	startSelectionOwnershipTime;
49extern Time	endSelectionOwnershipTime;
50extern int	startSelectionOwnershipTimeValid;
51extern int	endSelectionOwnershipTimeValid;
52
53extern SetCutBufferInfo	gSetCutBufferInfo;
54
55#ifdef _INCLUDE_FROM_CUTPASTE_C_
56#undef extern
57#define extern
58#endif /*_INCLUDE_FROM_CUTPASTE_C_*/
59
60extern int	WriteBufToCutBuffer ARGS_DECL((char *buf, int buf_sz,
61		                               int buf_is_simple_string,
62		                               int buf_is_utf8_string,
63		                               SetCutBufferInfo*));
64extern void	ClearSelection ARGS_DECL((void));
65extern int	CopyToCutBuffer ARGS_DECL((void));
66extern int	CopyPlainTextAsObject ARGS_DECL((void));
67extern void	CutToCutBuffer ARGS_DECL((void));
68extern unsigned int	PasteString ARGS_DECL((char*, int highlight,
69			                       int record_cmd));
70extern void	AssignNewObjIds ARGS_DECL((struct ObjRec *));
71extern void	FreeSelectionOrCutBuffer ARGS_DECL((char*, int nFromSelection));
72extern char	* FetchSelectionOrCutBuffer ARGS_DECL((int *pnLen,
73		                                       int *pnFromSelection));
74extern int	PasteFromCutBuffer ARGS_DECL((void));
75extern int	PasteFromFile ARGS_DECL((void));
76extern char	* GetTextBytesFromSelection ARGS_DECL((int compound_text,
77		                                       unsigned long*));
78extern int	PasteCompoundText ARGS_DECL((void));
79extern int	CopyDoubleByteString ARGS_DECL((void));
80extern int	PasteDoubleByteString ARGS_DECL((void));
81extern void	CleanUpCutBuffer ARGS_DECL((void));
82
83extern void	SetIntPropertyMask ARGS_DECL((long lWhich, int nValue,
84		                              char *pszValue, long *plMask,
85		                              long *plSkip,
86		                              struct PropertiesRec *pProp));
87extern void	SetFontPropertyMask ARGS_DECL((int nDoubleByte, int nFont,
88		                               int nStyle, long *plMask,
89		                               long *plSkip,
90		                               struct PropertiesRec *pProp));
91extern void	SetCTMPropertyMask ARGS_DECL((struct XfrmMtrxRec *ctm,
92		                              long *plMask, long *plSkip,
93		                              struct PropertiesRec *pProp));
94extern void	SetTextPropMask ARGS_DECL((struct ObjRec *, long *plMask,
95		                           long *plSkip,
96		                           struct PropertiesRec *pProp));
97extern void	CleanUpProperties ARGS_DECL((void));
98extern void	InitProperties ARGS_DECL((void));
99extern void	DoGetProperty ARGS_DECL((int index));
100extern EditAttrInfo	*CreateGetPropertyInfo ARGS_DECL((void));
101extern void	CopyProperties ARGS_DECL((int nPrompt));
102extern void	SaveProperties ARGS_DECL((void));
103extern void	PasteProperties ARGS_DECL((int nPrompt));
104extern void	RestoreProperties ARGS_DECL((void));
105
106extern void	BackupCopiedProperties ARGS_DECL((void));
107extern void	RestoreCopiedProperties ARGS_DECL((void));
108extern int	EditIniSection ARGS_DECL((char *pszTitle, char *pszSection,
109		                          char *pszIniFile, AfterLoopFunc*));
110extern char	*SelectFromIniSection ARGS_DECL((char *pszTitle,
111		                                 char *pszSection,
112		                                 char *pszIniFile));
113
114extern void	FreeRecentFilesListing ARGS_DECL((KeyValInfo*, int));
115extern KeyValInfo	*RecentFilesListing ARGS_DECL((int *pnEntries));
116extern void	OpenARecentlyUsedFile ARGS_DECL((int file_index));
117extern void	AddARecentlyUsedFile ARGS_DECL((char *path));
118extern int	InitRecentFiles ARGS_DECL((void));
119extern void	CleanUpRecentFiles ARGS_DECL((void));
120
121extern int	CreateSimpleStringObj ARGS_DECL((char*));
122extern void	SaveSimpleStringObj ARGS_DECL((FILE*, struct ObjRec *));
123extern void	ReadSimpleStringObj ARGS_DECL((FILE*, char*, struct ObjRec **));
124extern void	FreeSimpleStringObj ARGS_DECL((struct ObjRec *));
125
126extern void	ReplaceGraphic ARGS_DECL((void));
127
128extern void	ImportMultipageTextFile ARGS_DECL((void));
129extern void	SetMarginsForImportMultipageTextFile ARGS_DECL((void));
130extern void	ToggleWordWrapDuringImportMultipageTextFile ARGS_DECL((void));
131extern int	RefreshImportMutipageTextFileMenu ARGS_DECL((TgMenu*));
132extern TgMenu	*CreateImportMutipageTextFileMenu ARGS_DECL((TgMenu*, int X,
133				int Y, TgMenuInfo*, int status_str_xlated));
134
135extern void	CleanUpCutPaste ARGS_DECL((void));
136extern int	InitCutPaste ARGS_DECL((void));
137
138#ifdef _INCLUDE_FROM_CUTPASTE_C_
139#undef extern
140#ifndef _NO_RECURSIVE_EXTERN
141#define extern extern
142#endif /* ~_NO_RECURSIVE_EXTERN */
143#endif /*_INCLUDE_FROM_CUTPASTE_C_*/
144
145#endif /*_CUTPASTE_E_*/
146