PDA

View Full Version : [linux prgramming] Eventi del mouse


peppedx
16-07-2004, 16:08
Devo sviluppare un programma che simuli (sotto X) la presenza di eventi provenienti dal mouse, ma nn so bene da dove partire, qualcuno mi può aiutare, anche indicandomi un programma di cui leggere il codice?
Devo lavorare a livello di XLib?

Grazie a tutti!:mc:

PGI
16-07-2004, 18:53
Sapere la lingua sarebbe di grande giovamento :D

Se hai un SDK Java (di solito nelle distibuzioni Linux ce n'è uno, vecchio come il mondo ma c'è):


class Applicazione1 {
public static void main(String[] argomenti) {
try {
java.awt.Robot robot = new java.awt.Robot();
robot.mouseMove(50, 50);
} catch(java.awt.AWTException e) {
System.out.println("Azz., robot non può essere creato");
return;
}
}
}


Robot ha un tot di metodi per simulare eventi di basso livello, tra cui tutto il necessario per trastullarsi col mouse :D.

Ciao.

peppedx
17-07-2004, 08:55
eh eh, mi piacerebbe molto poter lavorare in Java che è il linguaggio che uso normalmente ( e tutte le mie instllazioni hanno il SDK + recente installato!) il problema è che io devo gestire gli eventi del mouse a livello globale, non solo nella mia applicazione!
(il linguaggio è C)

PGI
17-07-2004, 11:30
Ops, pardon, avevo capito che dovessi simulare eventi del mouse, non intercettare gli eventi del mouse generati un po' da tutto.

Mason
17-07-2004, 12:29
effetivamente non ho capito cosa devi fare, se generare o prendere gli eventi mouse

cmq se sei sotto X le chiamate per gestire gli eventi tramite Xlib sono XNextEvent(3) e affini che tornano un XEvent, una struttura con una union di vari eventi.
per quel poco che ho visto gli eventi di X son piuttosto a basso livello, cioe con molti dettagli per la gestione delle finestre, tipo anche exposing , gerarchia delle finestre,ecc non molto mascherati, ecc.
altre man pages interessanti sono XMaskEvent XMotionEvent XButtonEvent.
io sinceramente eviterei le xlib, le ho viste poco ma mi sembrano un po troppo generiche.
se hai bisogno solo di librerie per la gestione del mouse in una finestra userei le sdl, anche se sono inderizzate sopratutto ad uso opengl(cmq qualcosa nella finestra devi mettercela,e se usi textarea o cose simili userei delle librerie con widgets), pero visto che gestiscono mouse senza widgets penso possano fare al caso tuo, sicuramene sono le piu famose in questo layer afaik
se invece pensi di utilizzare anche widgets allora puoi benissimo usare gtk qt fox wxwindows ecc

se invece devi gestirti proprio il mouse senza bisogno di un server su cui renderizzare allora penso che puoi usare ncurses, ma ho solo visto che ha un interfaccia per il mouse e non so dirti di piu,cmq dipende molto da quello che vuoi fare.

peppedx
17-07-2004, 19:45
scusatemi perchè credo di essermi spiegato abbastanza male....devo sostityire il mouse quindi devo generare gli eventi del mouse e metterli nella (se esiste) coda globale degli eventi, ecco perchè ho pensato a xlib!

Mason
18-07-2004, 12:11
non e che ne sappia molto cmq, per quel poco che ho trovato:

XSendEvent nelle man di X11
XTest http://nscp.upenn.edu/aix4.3html/x11/specs/pdf/xtest.PDF

questo prg potrebbe esserti utile(dovrebbe usare xtest) http://hoopajoo.net/projects/xautomation.html

peppedx
18-07-2004, 12:18
ancora devo leggere bene ma dopo una prima occhiata...Grazie assai!!!!!!!!!!!!!