[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:652] How to swap mouse-2 <-> mouse-3?
- X-ml-count: 652
- Subject: [MD:652] How to swap mouse-2 <-> mouse-3?
- From: "YAMAGUCHI, Shuhei" <yamagus@xxxxxxxxxxxxxxxxxx>
- Date: Sun, 05 Apr 1998 04:28:46 +0900 (JST)
- X-mailer: Mew version 1.93b26 on Emacs 20.2 / Mule 3.0 (MOMIJINOGA)
ネタ的にはmeadow-developと思うので、メインはそちらに移動します。
#一応mule-win32にもCc:してますけど。 ^^;
>>> In article <uzpi4a97i.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
>>> Miyashita Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxxxxxxxxxxxxxxxx> writes:
himi> mw32miscあたりで、もう一段階の抽象化をしたいところです。
himi> ## > って、わけで、誰か手伝って ^^;;;
himi>
himi> それと、Driverが対応していないと無理ってのが引っかかっているため、
himi> Meadowでは、ボタンを自動的にマップするのを有効にしてなかったんだと
himi> 思います。
IntelliMouse SDKを参考に、本体に少し手を入れてみました。
#でも、コード的にはSDKほとんどそのままなので、GPLというわけにはいかな
#いような…。 ^^;
Win95(4.00950a) + IntelliPoint 2.1Jで試しましたが、どうもSDKの解説とは
違う動きをします。
というのは、IntelliPointを検出することはできるのですが、Wheelサポート
の検出がうまくできていません。
具体的には、
・起動直後はWheelサポートが検出できない。
・コントロールパネルのマウスのプロパティを1度でも開くと検出できる。
です。
マウスのプロパティを開いた後はPOINT32.EXEが動いているのですが、その前
はこれが動いていないのが原因のようです。
#RunレジストリにはPOINT32.EXEが登録されているのですが、なぜか起動直後
#には動いていません。
#私のWin95が壊れかけているのではないかとも思うのですが、どなたか他にこ
#ういう現象にあっている方はいませんか?
この変な現象のため、とりあえず、IntelliPoint(MSWEEL.EXE)が動いているか
どうかとWheelサポートがあるかどうかの2段階にしてみました。
#NT4.0ではまだ試していませんが、一応コードは入れているつもり。 ^^;
でわでわ
--
yamagus@xxxxxxxxxxxxxxxxxx / やまぐち@ねっとらぴゅたの住人
yamagus@xxxxxxxxxxx / 山口 修平
PGP-Fingerprint: 25 0F 6F E1 57 AD 56 08 3A BC D0 9B 48 AF 31 7A
--- mw32term.c.orig Sat Feb 07 19:27:51 1998
+++ mw32term.c Sun Apr 05 00:02:45 1998
@@ -197,6 +197,9 @@
#ifdef W32_INTELLIMOUSE
static UINT w32_wheel_message = WM_MOUSEWHEEL;
+/* Indicate that wheel support is available or not. */
+Lisp_Object Vw32_wheel_support_available;
+Lisp_Object Vw32_intellipoint_running;
#endif
/* to prevent thread from operating messages. */
@@ -4536,6 +4539,10 @@
char *defaultvalue;
int argc = 0;
char** argv = 0;
+#ifdef W32_INTELLIMOUSE
+ HWND hwnd;
+ UINT w32_wheel_support_message;
+#endif
w32_focus_frame = w32_highlight_frame = 0;
@@ -4597,6 +4604,16 @@
#ifdef W32_INTELLIMOUSE
w32_wheel_message = RegisterWindowMessage("MSWHEEL_ROLLMSG");
+ w32_wheel_support_message = RegisterWindowMessage("MSH_WHEELSUPPORT_MSG");
+ hwnd = FindWindow("MouseZ", "Magellan MSWHEEL");
+ if (hwnd && w32_wheel_support_message)
+ {
+ Vw32_intellipoint_running = Qt;
+ if ((BOOL) SendMessage(hwnd, w32_wheel_support_message, 0, 0) == TRUE)
+ Vw32_wheel_support_available = Qt;
+ }
+ else if (GetSystemMetrics(SM_MOUSEWHEELPRESENT) == TRUE)
+ Vw32_wheel_support_available = Qt;
#endif
next_message_block_event = CreateEvent(0, TRUE, TRUE, NULL);
@@ -4853,6 +4870,15 @@
w32_lbutton_to_emacs_button = 0;
w32_mbutton_to_emacs_button = 2;
w32_rbutton_to_emacs_button = 1;
+
+#ifdef W32_INTELLIMOUSE
+ DEFVAR_LISP ("w32-wheel-support-available", &Vw32_wheel_support_available,
+ "IntelliPoint mouse driver has installed, and is running.");
+ Vw32_wheel_support_available = Qnil;
+ DEFVAR_LISP ("w32-intellipoint-running", &Vw32_intellipoint_running,
+ "IntelliPoint mouse driver has installed, and is running.");
+ Vw32_intellipoint_running = Qnil;
+#endif
#if 0
staticpro (&last_mouse_scroll_bar);
--- mw32term.h.orig Sat Feb 07 00:41:11 1998
+++ mw32term.h Sat Apr 04 23:52:47 1998
@@ -598,6 +598,9 @@
#ifndef WHEEL_PAGESCROLL
#define WHEEL_PAGESCROLL (0xffffffff)
#endif
+#ifndef SM_MOUSEWHEELPRESENT
+#define SM_MOUSEWHEELPRESENT 75
+#endif
#endif
#ifdef MEADOW
--- mw32misc.el.orig Sat Dec 27 11:27:01 1997
+++ mw32misc.el Sun Apr 05 00:44:01 1998
@@ -45,7 +45,9 @@
(error "Font not found")))))
(defun w32-mouse-operation-init ()
- (if (= (w32-get-system-metrics 43) 3)
+ (if (or (= (w32-get-system-metrics 43) 3)
+ w32-wheel-support-available
+ w32-intellipoint-running)
(progn
(setq w32-lbutton-to-emacs-button 0)
(setq w32-mbutton-to-emacs-button 1)