2 Copyright (C) 1994, 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006,
3 2007, 2009 Free Software Foundation, Inc.
6 Andrew Borodin <aborodin@vmail.ru>, 2009.
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
23 * \brief Source: mouse managing
25 * Events received by clients of this library have their coordinates 0 based
31 #include <sys/types.h>
34 #include "lib/global.h"
37 #include "tty-internal.h" /* mouse_enabled */
39 #include "key.h" /* define sequence */
41 /*** global variables ****************************************************************************/
43 Mouse_Type use_mouse_p
= MOUSE_NONE
;
44 gboolean mouse_enabled
= FALSE
;
45 const char *xmouse_seq
;
47 /*** file scope macro definitions ****************************************************************/
49 /*** file scope type declarations ****************************************************************/
51 /*** file scope variables ************************************************************************/
53 /*** file scope functions ************************************************************************/
54 /* --------------------------------------------------------------------------------------------- */
56 /* --------------------------------------------------------------------------------------------- */
57 /*** public functions ****************************************************************************/
58 /* --------------------------------------------------------------------------------------------- */
61 show_mouse_pointer (int x
, int y
)
64 if (use_mouse_p
== MOUSE_GPM
)
65 Gpm_DrawPointer (x
, y
, gpm_consolefd
);
69 #endif /* HAVE_LIBGPM */
72 /* --------------------------------------------------------------------------------------------- */
81 use_mouse_p
= MOUSE_GPM
;
83 #endif /* HAVE_LIBGPM */
85 case MOUSE_XTERM_NORMAL_TRACKING
:
86 case MOUSE_XTERM_BUTTON_EVENT_TRACKING
:
87 define_sequence (MCKEY_MOUSE
, xmouse_seq
, MCKEY_NOACTION
);
97 /* --------------------------------------------------------------------------------------------- */
113 conn
.eventMask
= ~GPM_MOVE
;
114 conn
.defaultMask
= GPM_MOVE
;
118 mouse_d
= Gpm_Open (&conn
, 0);
121 use_mouse_p
= MOUSE_NONE
;
124 mouse_enabled
= TRUE
;
127 #endif /* HAVE_LIBGPM */
129 case MOUSE_XTERM_NORMAL_TRACKING
:
130 /* save old highlight mouse tracking */
131 printf (ESC_STR
"[?1001s");
133 /* enable mouse tracking */
134 printf (ESC_STR
"[?1000h");
137 mouse_enabled
= TRUE
;
140 case MOUSE_XTERM_BUTTON_EVENT_TRACKING
:
141 /* save old highlight mouse tracking */
142 printf (ESC_STR
"[?1001s");
144 /* enable mouse tracking */
145 printf (ESC_STR
"[?1002h");
148 mouse_enabled
= TRUE
;
156 /* --------------------------------------------------------------------------------------------- */
164 mouse_enabled
= FALSE
;
173 case MOUSE_XTERM_NORMAL_TRACKING
:
174 /* disable mouse tracking */
175 printf (ESC_STR
"[?1000l");
177 /* restore old highlight mouse tracking */
178 printf (ESC_STR
"[?1001r");
182 case MOUSE_XTERM_BUTTON_EVENT_TRACKING
:
183 /* disable mouse tracking */
184 printf (ESC_STR
"[?1002l");
186 /* restore old highlight mouse tracking */
187 printf (ESC_STR
"[?1001r");
196 /* --------------------------------------------------------------------------------------------- */