6 votes

Clic gauche et droit simultané avec le trackpad

Je tente de jouer à un jeu sur mon MacBook (The Settlers sous DOSBox) qui utilise quelque chose que le manuel appelle un "clic spécial": maintenir le bouton droit de la souris enfoncé et cliquer sur le bouton gauche de la souris.

Il semble impossible de le faire avec le trackpad. Mis à part brancher une souris externe, y a-t-il un moyen de simuler une telle entrée?

1voto

Gilean Points 6455

Il s'est avéré assez facile de patcher DOSBox pour permettre l'utilisation d'une touche du clavier en tant que bouton de souris. J'ai soumis un patch pour ajouter cette fonctionnalité au mappeur de touches.


Si vous voulez essayer cela, enregistrez ce qui suit dans un fichier texte appelé map-mouse-buttons.diff:

Index: src/gui/sdl_mapper.cpp
===================================================================
--- src/gui/sdl_mapper.cpp  (revision 3914)
+++ src/gui/sdl_mapper.cpp  (working copy)
@@ -32,6 +32,7 @@
 #include "dosbox.h"
 #include "video.h"
 #include "keyboard.h"
+#include "mouse.h"
 #include "joystick.h"
 #include "support.h"
 #include "mapper.h"
@@ -1497,6 +1498,20 @@
    KBD_KEYS key;
 };

+class CMouseButtonEvent : public CTriggeredEvent {
+public:
+   CMouseButtonEvent(char const * const _entry,Bit8u _button) : CTriggeredEvent(_entry) {
+       button=_button;
+   }
+   void Active(bool yesno) {
+       if (yesno)
+           Mouse_ButtonPressed(button);
+       else
+           Mouse_ButtonReleased(button);
+   }
+   Bit8u button;
+};
+   
 class CJAxisEvent : public CContinuousEvent {
 public:
    CJAxisEvent(char const * const _entry,Bitu _stick,Bitu _axis,bool _positive,CJAxisEvent * _opposite_axis) : CContinuousEvent(_entry) {
@@ -1708,6 +1723,15 @@
    return event;
 }

+static CMouseButtonEvent * AddMouseButtonEvent(Bitu x,Bitu y,Bitu dx,Bitu dy,char const * const title,char const * const entry,Bit8u button) {
+   char buf[64];
+   strcpy(buf,"mouse_");
+   strcat(buf,entry);
+   CMouseButtonEvent * event=new CMouseButtonEvent(buf,button);
+   new CEventButton(x,y,dx,dy,title,event);
+   return event;
+}
+
 static CJAxisEvent * AddJAxisButton(Bitu x,Bitu y,Bitu dx,Bitu dy,char const * const title,Bitu stick,Bitu axis,bool positive,CJAxisEvent * opposite_axis) {
    char buf[64];
    sprintf(buf,"jaxis_%d_%d%s",stick,axis,positive ? "+" : "-");
@@ -1866,6 +1890,15 @@
    AddKeyButtonEvent(PX(XO+2),PY(YO+4),BW,BH,".","kp_period",KBD_kpperiod);
 #undef XO
 #undef YO
+#define XO 5
+#define YO 8
+   /* Mouse Buttons */
+   new CTextButton(PX(XO+0),PY(YO-1),3*BW,20,"Mouse");
+   AddMouseButtonEvent(PX(XO+0),PY(YO),BW,BH,"L","left",0);
+   AddMouseButtonEvent(PX(XO+1),PY(YO),BW,BH,"M","middle",2);
+   AddMouseButtonEvent(PX(XO+2),PY(YO),BW,BH,"R","right",1);
+#undef XO
+#undef YO
 #define XO 10
 #define YO 8
    /* Joystick Buttons/Texts */

Ensuite, dans le terminal, vérifiez le code DOSBox le plus récent depuis Subversion:

svn co svn://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk dosbox-svn

Entrez dans le répertoire et appliquez le patch avec la commande patch:

cd dosbox-svn
patch -p0 < ../map-mouse-buttons.diff

(Cela suppose que le fichier de patch est enregistré dans le répertoire parent de dosbox-svn. Si ce n'est pas le cas, ajustez la commande en conséquence.)

Ensuite, suivez les instructions du fichier INSTALL pour construire votre nouvelle version de DOSBox. Fondamentalement, ce sont ces trois commandes:

./autogen.sh
./configure
make

Vous devrez peut-être installer diverses dépendances, ce qui peut être fait via Macports et des outils similaires.

1voto

Denis Rasulev Points 3363

Vous pouvez configurer le touchpad pour effectuer un clic droit en appuyant sur son coin inférieur droit (ou gauche). Si votre clic normal est effectué en touchant le touchpad (sans cliquer), alors vous pouvez réaliser ce tour de magie - appuyez sur le coin inférieur pour un clic droit et touchez le touchpad pour effectuer un clic normal = deux clics simultanément. entrez une description de l'image ici

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X