|
Packit |
98cdb6 |
/* testdnd.c
|
|
Packit |
98cdb6 |
* Copyright (C) 1998 Red Hat, Inc.
|
|
Packit |
98cdb6 |
* Author: Owen Taylor
|
|
Packit |
98cdb6 |
*
|
|
Packit |
98cdb6 |
* This library is free software; you can redistribute it and/or
|
|
Packit |
98cdb6 |
* modify it under the terms of the GNU Library General Public
|
|
Packit |
98cdb6 |
* License as published by the Free Software Foundation; either
|
|
Packit |
98cdb6 |
* version 2 of the License, or (at your option) any later version.
|
|
Packit |
98cdb6 |
*
|
|
Packit |
98cdb6 |
* This library is distributed in the hope that it will be useful,
|
|
Packit |
98cdb6 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
98cdb6 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
98cdb6 |
* Library General Public License for more details.
|
|
Packit |
98cdb6 |
*
|
|
Packit |
98cdb6 |
* You should have received a copy of the GNU Library General Public
|
|
Packit |
98cdb6 |
* License along with this library; if not, write to the
|
|
Packit |
98cdb6 |
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
Packit |
98cdb6 |
* Boston, MA 02111-1307, USA.
|
|
Packit |
98cdb6 |
*/
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
#include "config.h"
|
|
Packit |
98cdb6 |
#include "gtk/gtk.h"
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* Target side drag signals */
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* XPM */
|
|
Packit |
98cdb6 |
static const char * drag_icon_xpm[] = {
|
|
Packit |
98cdb6 |
"36 48 9 1",
|
|
Packit |
98cdb6 |
" c None",
|
|
Packit |
98cdb6 |
". c #020204",
|
|
Packit |
98cdb6 |
"+ c #8F8F90",
|
|
Packit |
98cdb6 |
"@ c #D3D3D2",
|
|
Packit |
98cdb6 |
"# c #AEAEAC",
|
|
Packit |
98cdb6 |
"$ c #ECECEC",
|
|
Packit |
98cdb6 |
"% c #A2A2A4",
|
|
Packit |
98cdb6 |
"& c #FEFEFC",
|
|
Packit |
98cdb6 |
"* c #BEBEBC",
|
|
Packit |
98cdb6 |
" .....................",
|
|
Packit |
98cdb6 |
" ..&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ...&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&.&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&&.&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&&&.&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&&&&.&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&&&&&.&&&@&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&&&&&&.*$%$+$&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&&&&&&&.%$%$+&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&&&&&&&&.#&#@$&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&&&&&&&&&.#$**#$&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&&&&&&&&&&.&@%&%$&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&&&&&&&&&&&.&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
" ..&&&&&&&&&&&&.&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
"................&$@&&&@&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&+&&#@%#+@#@*$%$+$&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&+&&#@#@&&@*%$%$+&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&+&$%&#@&#@@#&#@$&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&@#@@$&*@&@#@#$**#$&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&&&&&@%&%$&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&$#@@$&&&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&+&$+&$&@&$@&&$@&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&+&&#@%#+@#@*$%&+$&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&+&&#@#@&&@*%$%$+&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&+&$%&#@&#@@#&#@$&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&@#@@$&*@&@#@#$#*#$&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&&&&&&&$%&%$&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&$#@@$&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&+&$%&$$@&$@&&$@&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&+&&#@%#+@#@*$%$+$&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&+&&#@#@&&@*#$%$+&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&+&$+&*@&#@@#&#@$&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&$%@@&&*@&@#@#$#*#&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&&&&&&&&&$%&%$&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&$#@@$&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&+&$%&$$@&$@&&$@&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&+&&#@%#+@#@*$%$+$&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&+&&#@#@&&@*#$%$+&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&+&$+&*@&#@@#&#@$&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&$%@@&&*@&@#@#$#*#&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&&&&&&&&&&&&&$%&%$&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.",
|
|
Packit |
98cdb6 |
"...................................."};
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* XPM */
|
|
Packit |
98cdb6 |
static const char * trashcan_closed_xpm[] = {
|
|
Packit |
98cdb6 |
"64 80 17 1",
|
|
Packit |
98cdb6 |
" c None",
|
|
Packit |
98cdb6 |
". c #030304",
|
|
Packit |
98cdb6 |
"+ c #5A5A5C",
|
|
Packit |
98cdb6 |
"@ c #323231",
|
|
Packit |
98cdb6 |
"# c #888888",
|
|
Packit |
98cdb6 |
"$ c #1E1E1F",
|
|
Packit |
98cdb6 |
"% c #767677",
|
|
Packit |
98cdb6 |
"& c #494949",
|
|
Packit |
98cdb6 |
"* c #9E9E9C",
|
|
Packit |
98cdb6 |
"= c #111111",
|
|
Packit |
98cdb6 |
"- c #3C3C3D",
|
|
Packit |
98cdb6 |
"; c #6B6B6B",
|
|
Packit |
98cdb6 |
"> c #949494",
|
|
Packit |
98cdb6 |
", c #282828",
|
|
Packit |
98cdb6 |
"' c #808080",
|
|
Packit |
98cdb6 |
") c #545454",
|
|
Packit |
98cdb6 |
"! c #AEAEAC",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ==......=$$...=== ",
|
|
Packit |
98cdb6 |
" ..$------)+++++++++++++@$$... ",
|
|
Packit |
98cdb6 |
" ..=@@-------&+++++++++++++++++++-.... ",
|
|
Packit |
98cdb6 |
" =.$$@@@-&&)++++)-,$$$$=@@&+++++++++++++,..$ ",
|
|
Packit |
98cdb6 |
" .$$$$@@&+++++++&$$$@@@@-&,$,-++++++++++;;;&.. ",
|
|
Packit |
98cdb6 |
" $$$$,@--&++++++&$$)++++++++-,$&++++++;%%'%%;;$@ ",
|
|
Packit |
98cdb6 |
" .-@@-@-&++++++++-@++++++++++++,-++++++;''%;;;%*-$ ",
|
|
Packit |
98cdb6 |
" +------++++++++++++++++++++++++++++++;;%%%;;##*!. ",
|
|
Packit |
98cdb6 |
" =+----+++++++++++++++++++++++;;;;;;;;;;;;%'>>). ",
|
|
Packit |
98cdb6 |
" .=)&+++++++++++++++++;;;;;;;;;;;;;;%''>>#>#@. ",
|
|
Packit |
98cdb6 |
" =..=&++++++++++++;;;;;;;;;;;;;%###>>###+%== ",
|
|
Packit |
98cdb6 |
" .&....=-+++++%;;####''''''''''##'%%%)..#. ",
|
|
Packit |
98cdb6 |
" .+-++@....=,+%#####'%%%%%%%%%;@$-@-@*++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-&-@$$=$=......$,,,@;&)+!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" =+-++-+++-+++++++++!++++!++++!+++!++!+++= ",
|
|
Packit |
98cdb6 |
" $.++-+++-+++++++++!++++!++++!+++!++!+.$ ",
|
|
Packit |
98cdb6 |
" =.++++++++++++++!++++!++++!+++!++.= ",
|
|
Packit |
98cdb6 |
" $..+++++++++++++++!++++++...$ ",
|
|
Packit |
98cdb6 |
" $$=.............=$$ ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" "};
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* XPM */
|
|
Packit |
98cdb6 |
static const char * trashcan_open_xpm[] = {
|
|
Packit |
98cdb6 |
"64 80 17 1",
|
|
Packit |
98cdb6 |
" c None",
|
|
Packit |
98cdb6 |
". c #030304",
|
|
Packit |
98cdb6 |
"+ c #5A5A5C",
|
|
Packit |
98cdb6 |
"@ c #323231",
|
|
Packit |
98cdb6 |
"# c #888888",
|
|
Packit |
98cdb6 |
"$ c #1E1E1F",
|
|
Packit |
98cdb6 |
"% c #767677",
|
|
Packit |
98cdb6 |
"& c #494949",
|
|
Packit |
98cdb6 |
"* c #9E9E9C",
|
|
Packit |
98cdb6 |
"= c #111111",
|
|
Packit |
98cdb6 |
"- c #3C3C3D",
|
|
Packit |
98cdb6 |
"; c #6B6B6B",
|
|
Packit |
98cdb6 |
"> c #949494",
|
|
Packit |
98cdb6 |
", c #282828",
|
|
Packit |
98cdb6 |
"' c #808080",
|
|
Packit |
98cdb6 |
") c #545454",
|
|
Packit |
98cdb6 |
"! c #AEAEAC",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" .=.==.,@ ",
|
|
Packit |
98cdb6 |
" ==.,@-&&&)-= ",
|
|
Packit |
98cdb6 |
" .$@,&+;;;;%>*- ",
|
|
Packit |
98cdb6 |
" $,-+)+++%%;;'#+. ",
|
|
Packit |
98cdb6 |
" =---+++++;%%%;%##@. ",
|
|
Packit |
98cdb6 |
" @)++++++++;%%%%'#%$ ",
|
|
Packit |
98cdb6 |
" $&++++++++++;%%;%##@= ",
|
|
Packit |
98cdb6 |
" ,-++++)+++++++;;;'#%) ",
|
|
Packit |
98cdb6 |
" @+++&&--&)++++;;%'#'-. ",
|
|
Packit |
98cdb6 |
" ,&++-@@,,,,-)++;;;'>'+, ",
|
|
Packit |
98cdb6 |
" =-++&@$@&&&&-&+;;;%##%+@ ",
|
|
Packit |
98cdb6 |
" =,)+)-,@@&+++++;;;;%##%&@ ",
|
|
Packit |
98cdb6 |
" @--&&,,@&)++++++;;;;'#)@ ",
|
|
Packit |
98cdb6 |
" ---&)-,@)+++++++;;;%''+, ",
|
|
Packit |
98cdb6 |
" $--&)+&$-+++++++;;;%%'';- ",
|
|
Packit |
98cdb6 |
" .,-&+++-$&++++++;;;%''%&= ",
|
|
Packit |
98cdb6 |
" $,-&)++)-@++++++;;%''%), ",
|
|
Packit |
98cdb6 |
" =,@&)++++&&+++++;%'''+$@&++++++ ",
|
|
Packit |
98cdb6 |
" .$@-++++++++++++;'#';,........=$@&++++ ",
|
|
Packit |
98cdb6 |
" =$@@&)+++++++++++'##-.................=&++ ",
|
|
Packit |
98cdb6 |
" .$$@-&)+++++++++;%#+$.....................=)+ ",
|
|
Packit |
98cdb6 |
" $$,@-)+++++++++;%;@=........................,+ ",
|
|
Packit |
98cdb6 |
" .$$@@-++++++++)-)@=............................ ",
|
|
Packit |
98cdb6 |
" $,@---)++++&)@===............................,. ",
|
|
Packit |
98cdb6 |
" $-@---&)))-$$=..............................=)!. ",
|
|
Packit |
98cdb6 |
" --&-&&,,$=,==...........................=&+++!. ",
|
|
Packit |
98cdb6 |
" =,=$..=$+)+++++&@$=.............=$@&+++++!++!. ",
|
|
Packit |
98cdb6 |
" .)-++-+++++++++++++++++++++++++++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++++++++++++++++++++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!+++!!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" .+-++-+++-+++++++++!++++!++++!+++!++!++!. ",
|
|
Packit |
98cdb6 |
" =+-++-+++-+++++++++!++++!++++!+++!++!+++= ",
|
|
Packit |
98cdb6 |
" $.++-+++-+++++++++!++++!++++!+++!++!+.$ ",
|
|
Packit |
98cdb6 |
" =.++++++++++++++!++++!++++!+++!++.= ",
|
|
Packit |
98cdb6 |
" $..+++++++++++++++!++++++...$ ",
|
|
Packit |
98cdb6 |
" $$==...........==$$ ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" ",
|
|
Packit |
98cdb6 |
" "};
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
GdkPixbuf *trashcan_open;
|
|
Packit |
98cdb6 |
GdkPixbuf *trashcan_closed;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gboolean have_drag;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
enum {
|
|
Packit |
98cdb6 |
TARGET_STRING,
|
|
Packit |
98cdb6 |
TARGET_ROOTWIN
|
|
Packit |
98cdb6 |
};
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
static GtkTargetEntry target_table[] = {
|
|
Packit |
98cdb6 |
{ "STRING", 0, TARGET_STRING },
|
|
Packit |
98cdb6 |
{ "text/plain", 0, TARGET_STRING },
|
|
Packit |
98cdb6 |
{ "application/x-rootwindow-drop", 0, TARGET_ROOTWIN }
|
|
Packit |
98cdb6 |
};
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
static guint n_targets = sizeof(target_table) / sizeof(target_table[0]);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
void
|
|
Packit |
98cdb6 |
target_drag_leave (GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkDragContext *context,
|
|
Packit |
98cdb6 |
guint time)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
g_print("leave\n");
|
|
Packit |
98cdb6 |
have_drag = FALSE;
|
|
Packit |
98cdb6 |
gtk_image_set_from_pixbuf (GTK_IMAGE (widget), trashcan_closed);
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gboolean
|
|
Packit |
98cdb6 |
target_drag_motion (GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkDragContext *context,
|
|
Packit |
98cdb6 |
gint x,
|
|
Packit |
98cdb6 |
gint y,
|
|
Packit |
98cdb6 |
guint time)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
GtkWidget *source_widget;
|
|
Packit |
98cdb6 |
GList *tmp_list;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
if (!have_drag)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
have_drag = TRUE;
|
|
Packit |
98cdb6 |
gtk_image_set_from_pixbuf (GTK_IMAGE (widget), trashcan_open);
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
source_widget = gtk_drag_get_source_widget (context);
|
|
Packit |
98cdb6 |
g_print ("motion, source %s\n", source_widget ?
|
|
Packit |
98cdb6 |
G_OBJECT_TYPE_NAME (source_widget) :
|
|
Packit |
98cdb6 |
"NULL");
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
tmp_list = context->targets;
|
|
Packit |
98cdb6 |
while (tmp_list)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
char *name = gdk_atom_name (GDK_POINTER_TO_ATOM (tmp_list->data));
|
|
Packit |
98cdb6 |
g_print ("%s\n", name);
|
|
Packit |
98cdb6 |
g_free (name);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
tmp_list = tmp_list->next;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gdk_drag_status (context, context->suggested_action, time);
|
|
Packit |
98cdb6 |
return TRUE;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gboolean
|
|
Packit |
98cdb6 |
target_drag_drop (GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkDragContext *context,
|
|
Packit |
98cdb6 |
gint x,
|
|
Packit |
98cdb6 |
gint y,
|
|
Packit |
98cdb6 |
guint time)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
g_print("drop\n");
|
|
Packit |
98cdb6 |
have_drag = FALSE;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_image_set_from_pixbuf (GTK_IMAGE (widget), trashcan_closed);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
if (context->targets)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
gtk_drag_get_data (widget, context,
|
|
Packit |
98cdb6 |
GDK_POINTER_TO_ATOM (context->targets->data),
|
|
Packit |
98cdb6 |
time);
|
|
Packit |
98cdb6 |
return TRUE;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
return FALSE;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
void
|
|
Packit |
98cdb6 |
target_drag_data_received (GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkDragContext *context,
|
|
Packit |
98cdb6 |
gint x,
|
|
Packit |
98cdb6 |
gint y,
|
|
Packit |
98cdb6 |
GtkSelectionData *data,
|
|
Packit |
98cdb6 |
guint info,
|
|
Packit |
98cdb6 |
guint time)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
if ((data->length >= 0) && (data->format == 8))
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
g_print ("Received \"%s\" in trashcan\n", (gchar *)data->data);
|
|
Packit |
98cdb6 |
gtk_drag_finish (context, TRUE, FALSE, time);
|
|
Packit |
98cdb6 |
return;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_drag_finish (context, FALSE, FALSE, time);
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
void
|
|
Packit |
98cdb6 |
label_drag_data_received (GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkDragContext *context,
|
|
Packit |
98cdb6 |
gint x,
|
|
Packit |
98cdb6 |
gint y,
|
|
Packit |
98cdb6 |
GtkSelectionData *data,
|
|
Packit |
98cdb6 |
guint info,
|
|
Packit |
98cdb6 |
guint time)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
if ((data->length >= 0) && (data->format == 8))
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
g_print ("Received \"%s\" in label\n", (gchar *)data->data);
|
|
Packit |
98cdb6 |
gtk_drag_finish (context, TRUE, FALSE, time);
|
|
Packit |
98cdb6 |
return;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_drag_finish (context, FALSE, FALSE, time);
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
void
|
|
Packit |
98cdb6 |
source_drag_data_get (GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkDragContext *context,
|
|
Packit |
98cdb6 |
GtkSelectionData *selection_data,
|
|
Packit |
98cdb6 |
guint info,
|
|
Packit |
98cdb6 |
guint time,
|
|
Packit |
98cdb6 |
gpointer data)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
if (info == TARGET_ROOTWIN)
|
|
Packit |
98cdb6 |
g_print ("I was dropped on the rootwin\n");
|
|
Packit |
98cdb6 |
else
|
|
Packit |
98cdb6 |
gtk_selection_data_set (selection_data,
|
|
Packit |
98cdb6 |
selection_data->target,
|
|
Packit |
98cdb6 |
8, (guchar *) "I'm Data!", 9);
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* The following is a rather elaborate example demonstrating/testing
|
|
Packit |
98cdb6 |
* changing of the window hierarchy during a drag - in this case,
|
|
Packit |
98cdb6 |
* via a "spring-loaded" popup window.
|
|
Packit |
98cdb6 |
*/
|
|
Packit |
98cdb6 |
static GtkWidget *popup_window = NULL;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
static gboolean popped_up = FALSE;
|
|
Packit |
98cdb6 |
static gboolean in_popup = FALSE;
|
|
Packit |
98cdb6 |
static guint popdown_timer = 0;
|
|
Packit |
98cdb6 |
static guint popup_timer = 0;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gint
|
|
Packit |
98cdb6 |
popdown_cb (gpointer data)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
popdown_timer = 0;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_widget_hide (popup_window);
|
|
Packit |
98cdb6 |
popped_up = FALSE;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
return FALSE;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gboolean
|
|
Packit |
98cdb6 |
popup_motion (GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkDragContext *context,
|
|
Packit |
98cdb6 |
gint x,
|
|
Packit |
98cdb6 |
gint y,
|
|
Packit |
98cdb6 |
guint time)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
if (!in_popup)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
in_popup = TRUE;
|
|
Packit |
98cdb6 |
if (popdown_timer)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
g_print ("removed popdown\n");
|
|
Packit |
98cdb6 |
g_source_remove (popdown_timer);
|
|
Packit |
98cdb6 |
popdown_timer = 0;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
return TRUE;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
void
|
|
Packit |
98cdb6 |
popup_leave (GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkDragContext *context,
|
|
Packit |
98cdb6 |
guint time)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
if (in_popup)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
in_popup = FALSE;
|
|
Packit |
98cdb6 |
if (!popdown_timer)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
g_print ("added popdown\n");
|
|
Packit |
98cdb6 |
popdown_timer = gdk_threads_add_timeout (500, popdown_cb, NULL);
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gboolean
|
|
Packit |
98cdb6 |
popup_cb (gpointer data)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
if (!popped_up)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
if (!popup_window)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
GtkWidget *button;
|
|
Packit |
98cdb6 |
GtkWidget *table;
|
|
Packit |
98cdb6 |
int i, j;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
popup_window = gtk_window_new (GTK_WINDOW_POPUP);
|
|
Packit |
98cdb6 |
gtk_window_set_position (GTK_WINDOW (popup_window), GTK_WIN_POS_MOUSE);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
table = gtk_table_new (3,3, FALSE);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
for (i=0; i<3; i++)
|
|
Packit |
98cdb6 |
for (j=0; j<3; j++)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
char buffer[128];
|
|
Packit |
98cdb6 |
g_snprintf(buffer, sizeof(buffer), "%d,%d", i, j);
|
|
Packit |
98cdb6 |
button = gtk_button_new_with_label (buffer);
|
|
Packit |
98cdb6 |
gtk_table_attach (GTK_TABLE (table), button, i, i+1, j, j+1,
|
|
Packit |
98cdb6 |
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
|
|
Packit |
98cdb6 |
0, 0);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_drag_dest_set (button,
|
|
Packit |
98cdb6 |
GTK_DEST_DEFAULT_ALL,
|
|
Packit |
98cdb6 |
target_table, n_targets - 1, /* no rootwin */
|
|
Packit |
98cdb6 |
GDK_ACTION_COPY | GDK_ACTION_MOVE);
|
|
Packit |
98cdb6 |
g_signal_connect (button, "drag_motion",
|
|
Packit |
98cdb6 |
G_CALLBACK (popup_motion), NULL);
|
|
Packit |
98cdb6 |
g_signal_connect (button, "drag_leave",
|
|
Packit |
98cdb6 |
G_CALLBACK (popup_leave), NULL);
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_widget_show_all (table);
|
|
Packit |
98cdb6 |
gtk_container_add (GTK_CONTAINER (popup_window), table);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
gtk_widget_show (popup_window);
|
|
Packit |
98cdb6 |
popped_up = TRUE;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
popdown_timer = gdk_threads_add_timeout (500, popdown_cb, NULL);
|
|
Packit |
98cdb6 |
g_print ("added popdown\n");
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
popup_timer = FALSE;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
return FALSE;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gboolean
|
|
Packit |
98cdb6 |
popsite_motion (GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkDragContext *context,
|
|
Packit |
98cdb6 |
gint x,
|
|
Packit |
98cdb6 |
gint y,
|
|
Packit |
98cdb6 |
guint time)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
if (!popup_timer)
|
|
Packit |
98cdb6 |
popup_timer = gdk_threads_add_timeout (500, popup_cb, NULL);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
return TRUE;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
void
|
|
Packit |
98cdb6 |
popsite_leave (GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkDragContext *context,
|
|
Packit |
98cdb6 |
guint time)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
if (popup_timer)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
g_source_remove (popup_timer);
|
|
Packit |
98cdb6 |
popup_timer = 0;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
void
|
|
Packit |
98cdb6 |
source_drag_data_delete (GtkWidget *widget,
|
|
Packit |
98cdb6 |
GdkDragContext *context,
|
|
Packit |
98cdb6 |
gpointer data)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
g_print ("Delete the data!\n");
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
void
|
|
Packit |
98cdb6 |
test_init (void)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
if (g_file_test ("../gdk-pixbuf/libpixbufloader-pnm.la",
|
|
Packit |
98cdb6 |
G_FILE_TEST_EXISTS))
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
g_setenv ("GDK_PIXBUF_MODULE_FILE", "../gdk-pixbuf/gdk-pixbuf.loaders", TRUE);
|
|
Packit |
98cdb6 |
g_setenv ("GTK_IM_MODULE_FILE", "../modules/input/immodules.cache", TRUE);
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
int
|
|
Packit |
98cdb6 |
main (int argc, char **argv)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
GtkWidget *window;
|
|
Packit |
98cdb6 |
GtkWidget *table;
|
|
Packit |
98cdb6 |
GtkWidget *label;
|
|
Packit |
98cdb6 |
GtkWidget *pixmap;
|
|
Packit |
98cdb6 |
GtkWidget *button;
|
|
Packit |
98cdb6 |
GdkPixbuf *drag_icon;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
test_init ();
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_init (&argc, &argv);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
|
Packit |
98cdb6 |
g_signal_connect (window, "destroy",
|
|
Packit |
98cdb6 |
G_CALLBACK (gtk_main_quit), NULL);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
table = gtk_table_new (2, 2, FALSE);
|
|
Packit |
98cdb6 |
gtk_container_add (GTK_CONTAINER (window), table);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
drag_icon = gdk_pixbuf_new_from_xpm_data (drag_icon_xpm);
|
|
Packit |
98cdb6 |
trashcan_open = gdk_pixbuf_new_from_xpm_data (trashcan_open_xpm);
|
|
Packit |
98cdb6 |
trashcan_closed = gdk_pixbuf_new_from_xpm_data (trashcan_closed_xpm);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
label = gtk_label_new ("Drop Here\n");
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_drag_dest_set (label,
|
|
Packit |
98cdb6 |
GTK_DEST_DEFAULT_ALL,
|
|
Packit |
98cdb6 |
target_table, n_targets - 1, /* no rootwin */
|
|
Packit |
98cdb6 |
GDK_ACTION_COPY | GDK_ACTION_MOVE);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
g_signal_connect (label, "drag_data_received",
|
|
Packit |
98cdb6 |
G_CALLBACK( label_drag_data_received), NULL);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1,
|
|
Packit |
98cdb6 |
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
|
|
Packit |
98cdb6 |
0, 0);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
label = gtk_label_new ("Popup\n");
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_drag_dest_set (label,
|
|
Packit |
98cdb6 |
GTK_DEST_DEFAULT_ALL,
|
|
Packit |
98cdb6 |
target_table, n_targets - 1, /* no rootwin */
|
|
Packit |
98cdb6 |
GDK_ACTION_COPY | GDK_ACTION_MOVE);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_table_attach (GTK_TABLE (table), label, 1, 2, 1, 2,
|
|
Packit |
98cdb6 |
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
|
|
Packit |
98cdb6 |
0, 0);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
g_signal_connect (label, "drag_motion",
|
|
Packit |
98cdb6 |
G_CALLBACK (popsite_motion), NULL);
|
|
Packit |
98cdb6 |
g_signal_connect (label, "drag_leave",
|
|
Packit |
98cdb6 |
G_CALLBACK (popsite_leave), NULL);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
pixmap = gtk_image_new_from_pixbuf (trashcan_closed);
|
|
Packit |
98cdb6 |
gtk_drag_dest_set (pixmap, 0, NULL, 0, 0);
|
|
Packit |
98cdb6 |
gtk_table_attach (GTK_TABLE (table), pixmap, 1, 2, 0, 1,
|
|
Packit |
98cdb6 |
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
|
|
Packit |
98cdb6 |
0, 0);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
g_signal_connect (pixmap, "drag_leave",
|
|
Packit |
98cdb6 |
G_CALLBACK (target_drag_leave), NULL);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
g_signal_connect (pixmap, "drag_motion",
|
|
Packit |
98cdb6 |
G_CALLBACK (target_drag_motion), NULL);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
g_signal_connect (pixmap, "drag_drop",
|
|
Packit |
98cdb6 |
G_CALLBACK (target_drag_drop), NULL);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
g_signal_connect (pixmap, "drag_data_received",
|
|
Packit |
98cdb6 |
G_CALLBACK (target_drag_data_received), NULL);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
/* Drag site */
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
button = gtk_button_new_with_label ("Drag Here\n");
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_drag_source_set (button, GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
|
|
Packit |
98cdb6 |
target_table, n_targets,
|
|
Packit |
98cdb6 |
GDK_ACTION_COPY | GDK_ACTION_MOVE);
|
|
Packit |
98cdb6 |
gtk_drag_source_set_icon_pixbuf (button, drag_icon);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
g_object_unref (drag_icon);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_table_attach (GTK_TABLE (table), button, 0, 1, 1, 2,
|
|
Packit |
98cdb6 |
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
|
|
Packit |
98cdb6 |
0, 0);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
g_signal_connect (button, "drag_data_get",
|
|
Packit |
98cdb6 |
G_CALLBACK (source_drag_data_get), NULL);
|
|
Packit |
98cdb6 |
g_signal_connect (button, "drag_data_delete",
|
|
Packit |
98cdb6 |
G_CALLBACK (source_drag_data_delete), NULL);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_widget_show_all (window);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
gtk_main ();
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
return 0;
|
|
Packit |
98cdb6 |
}
|