Line data Source code
1 : /* Copyright (C) 2007-2012 by George Williams */
2 : /*
3 : * Redistribution and use in source and binary forms, with or without
4 : * modification, are permitted provided that the following conditions are met:
5 :
6 : * Redistributions of source code must retain the above copyright notice, this
7 : * list of conditions and the following disclaimer.
8 :
9 : * Redistributions in binary form must reproduce the above copyright notice,
10 : * this list of conditions and the following disclaimer in the documentation
11 : * and/or other materials provided with the distribution.
12 :
13 : * The name of the author may not be used to endorse or promote products
14 : * derived from this software without specific prior written permission.
15 :
16 : * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17 : * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18 : * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
19 : * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 : * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 : * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22 : * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23 : * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24 : * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
25 : * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 : */
27 :
28 : #include "fontforgeui.h"
29 : #include "uiinterface.h"
30 :
31 : /* I don't care what window "owns" the X (or other UI) clipboard */
32 : /* as far as I am concerned they are all the same. I have an internal clip */
33 : /* and I export IT when needed, I don't need to figure out what window */
34 : /* currently has things. This makes my clipboard interface much simpler */
35 :
36 0 : static void ClipBoard_Grab(void) {
37 0 : GDrawGrabSelection(((FontView *) FontViewFirst())->gw,sn_clipboard);
38 0 : }
39 :
40 0 : static void ClipBoard_AddDataType(const char *mimetype, void *data, int cnt, int size,
41 : void *(*gendata)(void *,int32 *len), void (*freedata)(void *)) {
42 0 : GDrawAddSelectionType(((FontView *) FontViewFirst())->gw,sn_clipboard,
43 : (char *) mimetype, data, cnt, size,
44 : gendata,freedata);
45 0 : }
46 :
47 : /* Asks for the clip and waits for the response. */
48 0 : static void *ClipBoard_Request(const char *mimetype,int *len) {
49 0 : return( GDrawRequestSelection(((FontView *) FontViewFirst())->gw,sn_clipboard,
50 : (char *) mimetype,len));
51 : }
52 :
53 0 : static int ClipBoard_HasType(const char *mimetype) {
54 0 : return( GDrawSelectionHasType(((FontView *) FontViewFirst())->gw,sn_clipboard,
55 : (char *) mimetype));
56 : }
57 :
58 : struct clip_interface gdraw_clip_interface = {
59 : ClipBoard_Grab,
60 : ClipBoard_AddDataType,
61 : ClipBoard_HasType,
62 : ClipBoard_Request
63 : };
|