다음 위로 이전 목차 리눅스 프로그래머를 위한 가이드

9.1 마우스 프로그래밍 (Mouse programming)

마우스는 시리얼(serial) 포트에 연결되거나 직접 AT 버스에 연결되어지고 마우스의 다른 타입들은 마우스 프로그래밍을 더 어렵게 만드는 다른 종류의 자료를 보낸다. 그러나, Andrew Haylett는 친절하게도 당신 자신의 프로그램에 그의 마우스 루틴(routine)를 사용할 수 있도록 그의 selection 프로그램에 관대한 저작권을 부여했다. 이 가이드(guide)에 포함된 COPYRIGHT 주의문을 가진 selection-1.8의 pre-release를 찾을 수 있다. X11은 이미 편안한 마우스 API를 제공함으로 Andrew의 루틴은 non-X11 응용프로그램에서만 사용되어진다.
당신은 selection 패키지로 부터 mouse.c와 mouse.h 모듈들만 필요하다. 마우스 이벤트를 얻기 위해 기본적으로 ms_init()와 get_ms_event()를 호출해야만 한다. ms_init는 다음의 10개의 아규먼트(argument)가 필요하다.:

  1. int acceleration
    은 가속화(acceleration) 요소(factor)이다. delta 픽셀(pixel)보다 더 많이 마우스를 움직인다면, 움직임은 이 값에 따라 더 빠르게 된다.
  2. int baud
    마우스를 사용하는 bps 비율(rate)이다(일반적으로 1200).
  3. int delta
    이것은 가속화(acceleration)를 시작하기 전에 마우스를 움직여야하는 픽셀(pixel)의 수이다.
  4. char *device
    마우스 장치의 이름이다(예, /dev/mouse)
  5. int toggle
    는 DTR,RTS 또는 DTR과 RTS 마우스 모뎀 라인(mouse modem lines)을 모두를 초기화 값으로 토글(toggle)한다(일반적으로 0).
  6. int sample
    마우스의 해상도(resolution)(dpi) (일반적으로 100).
  7. mouse_type mouse
    마우스에 대해 P_MSC (Mouse Systems Corp.)처럼 마우스와 연결된 식별자(identifier)
  8. int slack
    slack이 -1이면 화면의 가장자리 너머로 마우스를 이동하고자 하는 시도는 마우스를 가장자리에 남겨둘 것임을 의미하는 wraparound를 위한 slack의 양.
  9. int maxx
    현재 단말기의 x 방향 해상도. 디폴트 폰트, 한문자는 10픽셀(pixel) 폭(wide)을 가진 overall x 화면(screen) 해상도(resolution)는 10*80-1이다.
  10. int maxy
    현재 단말기의 y 방향 해상도. 디폴트 폰트, 한문자는 12픽셀(pixel) 높이(high)를 가진 overall y 화면(screen) 해상도(resolution)는 12*25-1이다.

get_ms_event()는 단지 struct ms_event에 대한 포인터만을 필요로 한다. get_ms_event()가 -1을 반환한다면, 에러가 발생한 것이다. 성공시 0을 반환하고 strucr ms_event는 실제 마우스 상태를 포함할 것이다.


이전:9 I/O 포트 프로그래밍 (Programming I/O ports) 다음:9.2 모뎀 프로그래밍 (Modem Programming)
[수퍼브가] [컴퓨터게임] [잡다한것들]

Copyright (c) 1996,1997 by Euibeom.Hwang & SangEun.Oh All Rights Reserved

Email To:Webmaster , Another address
LAST UPDATE Dec 17,1997
Created Dec 17,1997