Emettere segnale gtk : cursore

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
dyrkpw
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 369
Iscrizione: sabato 22 marzo 2008, 12:59

Emettere segnale gtk : cursore

Messaggio da dyrkpw »

Scusate una domanda, un po' rapida ed imprecisa : sto scrivendo un programmino in c con le gtk...ho la necessità di cliccare su certe coordinate che fornirei io ad un' ipotetica funzione atta proprio a questo.
Problema : come spiegarlo all' OS?

Possibile soluzione : basterebbe, in linea teorica, emettere il segnale "clicked" ?

Potreste rispondere : "provaci!" , ma ho la vaga impressione che non sia così semplice. Se almeno mi dite di sì, è giustificato lo studio dei segnali e la scrittura del codice  ;D

P.S Il programma , almeno per ora, deve funzionare su Winzoz

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sto scrivendo un programmino per un' amico : si tratta sostanzialmente di un programma per il click automatico, dopo un certo tempo, su una certa finestra, diversa da quella del programmino in questione.
Per il momento sono riuscito a ricavare le coordinate della finestra che mi interessa : quando l'utente clicca sul tasto "scegli" la finestra principale del programmino va in icona ed al suo posto appare una finestra trasparente opaca popup fullscreen, attraverso la quale può cliccare impunemente su qualsiasi altra finestra presente sul desktop, anche sulle x, senza correre il rischio di chiudere alcun programma, dato che il segnale viene ricevuto solo dalla finestra trasparente.

Una volta ricevuto questo dato , dopo questo famoso lasso di tempo, devo portare il cursore sulle coordinate scelte e simulare il click. Riesco a spostare il cursore senza problemi, ma ancora non so come simulare il click.
Oltretutto mi trovo su winzoz, non so che inventarmi.

Per questo parlavo di OS : magari c'è qualche API già predisposta di winzoz per tale scopo (anceh se mi rendo conto che questo forum non sia il luogo più adatto dove chiedere  Grin).
D'altra parte, volevo solo sapere se , a livello anche solo teorico, l'idea di lanciare un segnale "clicked" potrebbe funzionare a tale scopo.
Ultima modifica di dyrkpw il giovedì 3 febbraio 2011, 22:23, modificato 1 volta in totale.
io sono ciò che sono non solo per merito di ciò che siamo tutti:
Io non sono te, tu non sei me, ma entrambi siano noi.
Avatar utente
dyrkpw
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 369
Iscrizione: sabato 22 marzo 2008, 12:59

Re: Emettere segnale gtk : cursore

Messaggio da dyrkpw »

up
io sono ciò che sono non solo per merito di ciò che siamo tutti:
Io non sono te, tu non sei me, ma entrambi siano noi.
Avatar utente
dyrkpw
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 369
Iscrizione: sabato 22 marzo 2008, 12:59

Re: Emettere segnale gtk : cursore

Messaggio da dyrkpw »

ultimo tentativo  :'(
io sono ciò che sono non solo per merito di ciò che siamo tutti:
Io non sono te, tu non sei me, ma entrambi siano noi.
Avatar utente
sfregiato
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 669
Iscrizione: mercoledì 10 giugno 2009, 14:37

Re: Emettere segnale gtk : cursore

Messaggio da sfregiato »

dyrkpw ha scritto: Scusate una domanda, un po' rapida ed imprecisa : sto scrivendo un programmino in c con le gtk...ho la necessità di cliccare su certe coordinate che fornirei io ad un' ipotetica funzione atta proprio a questo.
Ciao, magari dai qualche dettaglio in più:

esempio: c'è un widget che riceve il segnale? Oppure descrivi il funzionamento del programma (cosa deve fare), così che si possa pensare ad un'idea.
Avatar utente
crisixk
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1402
Iscrizione: domenica 17 maggio 2009, 1:15
Località: Pontedera - Pisa
Contatti:

Re: Emettere segnale gtk : cursore

Messaggio da crisixk »

dyrkpw ha scritto: Scusate una domanda, un po' rapida ed imprecisa : sto scrivendo un programmino in c con le gtk...ho la necessità di cliccare su certe coordinate che fornirei io ad un' ipotetica funzione atta proprio a questo.
Problema : come spiegarlo all' OS?

Possibile soluzione : basterebbe, in linea teorica, emettere il segnale "clicked" ?

Potreste rispondere : "provaci!" , ma ho la vaga impressione che non sia così semplice. Se almeno mi dite di sì, è giustificato lo studio dei segnali e la scrittura del codice  ;D

P.S Il programma , almeno per ora, deve funzionare su Winzoz
ciao dyrkpw  :D
Problema : come spiegarlo all' OS?
utilizzando la libreria GTK+ ....  (rotfl)


ecco un esempio pratico e funzionante:

Codice: Seleziona tutto

#include <gtk/gtk.h>


    static
    void ciao ( GtkWidget*      widget,
                GdkEventButton* event,
                gpointer        user_data)
{
    g_print ( "Ciao!! %s! \n",(gchar*)user_data );
    g_print (" widget: %p in position: %f - %f \n", widget, event->x, event->y );

    return;
}


    static
    gboolean
    delete_event ( GtkWidget*    widget,
                   GdkEvent *    event,
                   gpointer      data )
{
    gtk_main_quit ();
    return FALSE;
}


    int
    main ( int   argc,
           char* argv[] )
{
    GtkWidget *window;

    gtk_init (&argc, &argv);


    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

    gtk_window_set_title (GTK_WINDOW (window), "Esempio");

    gtk_container_set_border_width (GTK_CONTAINER (window), 10);

    gtk_window_set_default_size ( GTK_WINDOW (window), 150, 150);


    gtk_widget_set_events ( window, GDK_BUTTON_PRESS_MASK );

    g_signal_connect ( window, "delete-event",
                        G_CALLBACK (delete_event), NULL );

    g_signal_connect ( window, "button_press_event",
                        G_CALLBACK (ciao), (gpointer)"hola!" );


    gtk_widget_show (window);

    gtk_main ();

    return 0;
}
creo una finestra window, faccio in modo che possa ricevere il segnale "button_press_event", a questo collego una funzione che oltre al puntatore al widget collegato(window) riceverà anche un GdkEventButton*, dal quale ricavo la posizione all'interno della finestra del mio cursore ...

bye bye ...  :P
Avvolte cio' che si crea per facilitarci la vita, ci libera dal ragionare ed insieme ci imprigiona in una sorta di limbo nel quale la coscienza è solo un limite, uno spreco di risorse e tempo. Cosa fa' la mia mano ?
... s'impara un passo alla volta ...
Avatar utente
dyrkpw
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 369
Iscrizione: sabato 22 marzo 2008, 12:59

Re: Emettere segnale gtk : cursore

Messaggio da dyrkpw »

Grazie crisixk :) ma lo ammetto, mi sono spiegato male.

Sto scrivendo un programmino per un' amico : si tratta sostanzialmente di un programma per il click automatico, dopo un certo tempo, su una certa finestra, diversa da quella del programmino in questione.
Per il momento sono riuscito a ricavare le coordinate della finestra che mi interessa : quando l'utente clicca sul tasto "scegli" la finestra principale del programmino va in icona ed al suo posto appare una finestra trasparente opaca popup fullscreen, attraverso la quale può cliccare impunemente su qualsiasi altra finestra presente sul desktop, anche sulle x, senza correre il rischio di chiudere alcun programma, dato che il segnale viene ricevuto solo dalla finestra trasparente.

Una volta ricevuto questo dato , dopo questo famoso lasso di tempo, devo portare il cursore sulle coordinate scelte e simulare il click. Riesco a spostare il cursore senza problemi, ma ancora non so come simulare il click.
Oltretutto mi trovo su winzoz, non so che inventarmi.

Per questo parlavo di OS : magari c'è qualche API già predisposta di winzoz per tale scopo (anceh se mi rendo conto che questo forum non sia il luogo più adatto dove chiedere  ;D).
D'altra parte, volevo solo sapere se , a livello anche solo teorico, l'idea di lanciare un segnale "clicked" potrebbe funzionare a tale scopo.
io sono ciò che sono non solo per merito di ciò che siamo tutti:
Io non sono te, tu non sei me, ma entrambi siano noi.
Avatar utente
crisixk
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1402
Iscrizione: domenica 17 maggio 2009, 1:15
Località: Pontedera - Pisa
Contatti:

Re: Emettere segnale gtk : cursore

Messaggio da crisixk »

:o

non ne capisco il senso ....

non fai prima a ricavare attraverso il focus il processo relativo alla finestra cliccata e attraverso questo gestire la finestra?

Inoltre se vuoi una migliore funzionalità del tuo programma ti consiglio di lasciar perdere GTK+, a meno che tu voglia creare un software portabile ... se resti su win ti becchi solo i difetti di GTK+, difetti relativi ovviamente al suo rapporto con WIN.

:-\
Avvolte cio' che si crea per facilitarci la vita, ci libera dal ragionare ed insieme ci imprigiona in una sorta di limbo nel quale la coscienza è solo un limite, uno spreco di risorse e tempo. Cosa fa' la mia mano ?
... s'impara un passo alla volta ...
Avatar utente
dyrkpw
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 369
Iscrizione: sabato 22 marzo 2008, 12:59

Re: Emettere segnale gtk : cursore

Messaggio da dyrkpw »

Il fatto è che per ora conosco solo le gtk e questo programmino col tempo sta diventando un impiccio (ora come ora sono assorbito da arduino :) ).


cosa intendi con :
crisixk ha scritto:
non fai prima a ricavare attraverso il focus il processo relativo alla finestra cliccata e attraverso questo gestire la finestra?

?


Per quanto riguarda il senso....esistono già programmi che svolgono la funzione di autoclick. Il punto è che al mio amico servono funzioni aggiuntive ( il padre gestisce un videonoleggio..la macchina però è vecchia e dopo il ritiro di una ventina di dvd si "sfasa" e i dvd restano bloccati all' interno della macchina per motivi prettamente meccanici. L'unica maniera, al momento, per risolvere il problema è cliccare ogni tot di tempo o di ritiri su "reset" : ovviamente la macchina è comandata da un pc xD) ed è per questo che sto reinventando la ruota.
Ultima modifica di dyrkpw il venerdì 4 febbraio 2011, 14:50, modificato 1 volta in totale.
io sono ciò che sono non solo per merito di ciò che siamo tutti:
Io non sono te, tu non sei me, ma entrambi siano noi.
Avatar utente
crisixk
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1402
Iscrizione: domenica 17 maggio 2009, 1:15
Località: Pontedera - Pisa
Contatti:

Re: Emettere segnale gtk : cursore

Messaggio da crisixk »

...... con le poke informazioni che ho non mi vengono idee ....... se il problema è meccanico perché il click? Se hai un'azienda metti anche in conto di aggiustare i tuoi macchinari ogni tanto oppure cambiarli ...  (ot)

vabbhe, buona fortuna ....  (b2b)
Avvolte cio' che si crea per facilitarci la vita, ci libera dal ragionare ed insieme ci imprigiona in una sorta di limbo nel quale la coscienza è solo un limite, uno spreco di risorse e tempo. Cosa fa' la mia mano ?
... s'impara un passo alla volta ...
camilla112
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 267
Iscrizione: mercoledì 13 gennaio 2010, 13:04

Re: Emettere segnale gtk : cursore

Messaggio da camilla112 »

la butto la, poi magari ti leggi la documentazione della GTK: hai pensato di usare la funzione

Codice: Seleziona tutto

g_signal_emit_by_name
oppure (sono anni che non programmo con le GTK)

Codice: Seleziona tutto

g_signal_emit
?
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti