Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: luca1202 - 13 Luglio 2010, 13:46:57

Titolo: [risolto]integrazione notifiche ubuntu
Inserito da: luca1202 - 13 Luglio 2010, 13:46:57
salve dopo molto tempo di assenza torno a lavorare in gambas e mi sono trovato subito difronte ad una questione da cui non sò come uscire...

se io volessi far generare al mio programma in gambas una notifica sfruttando quelle di ubuntu come potrei fare?? esiste un modo per farlo nativamente o devo per forza ricorrere ad un programma esterno?
Titolo: Re: integrazione notifiche ubuntu
Inserito da: leo72 - 13 Luglio 2010, 14:28:08
Non so se le notifiche di Ubuntu bypassano quelle standard del desktop oppure sono solo modifiche, cmq penso potresti usare la classe Balloon (http://gambasdoc.org/help/comp/gb.form/balloon).
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Ceskho - 13 Luglio 2010, 14:47:35
salve dopo molto tempo di assenza torno a lavorare in gambas e mi sono trovato subito difronte ad una questione da cui non sò come uscire...

se io volessi far generare al mio programma in gambas una notifica sfruttando quelle di ubuntu come potrei fare?? esiste un modo per farlo nativamente o devo per forza ricorrere ad un programma esterno?

Dovresti vedere se esiste un modo per interrogare i moduli interni di Ubuntu. Forse qui non siamo il posto più idoneo. Dovresti chiedere o al forum di ubuntu-it oppure chiedere a qualche programmatore direttamente.

In alternativa c'è il metodo di Leo ma ha due pecche particolari:

1) I baloon sono poco integrati graficamente con l'ambiente desktop
2) Funzionano solo con le qt, purtroppo.
Titolo: Re: integrazione notifiche ubuntu
Inserito da: luca1202 - 13 Luglio 2010, 14:51:44
ok grazie per i suggerimenti.

ho visto che effettivamente i baloon non sono molto integrati... proverò a rivolgermi al forum di ubuntu per vedere se qualcuno mi sà dare una dritta.
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Ceskho - 13 Luglio 2010, 14:57:59
ok grazie per i suggerimenti.

ho visto che effettivamente i baloon non sono molto integrati... proverò a rivolgermi al forum di ubuntu per vedere se qualcuno mi sà dare una dritta.


Puoi pure aspettare Pixel che sicuramente ne saprà più di noi. Comunque chiedi al forum e magari facci sapere perchè può sempre interessarci  ;)
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Pixel - 13 Luglio 2010, 14:59:56
installa libnotify-bin
apri un terminale e prova a digitare: 
Codice: [Seleziona]
notify-send "pippo"
e premi invio
Se è quello che desideri è sufficiente prevederlo come dipendenza del tuo software e passare con shell le notifiche del caso.

Ciao
Titolo: Re: integrazione notifiche ubuntu
Inserito da: luca1202 - 13 Luglio 2010, 15:04:17
installa libnotify-bin
apri un terminale e prova a digitare: 
Codice: [Seleziona]
notify-send "pippo"
e premi invio
Se è quello che desideri è sufficiente prevederlo come dipendenza del tuo software e passare con shell le notifiche del caso.

Ciao
questa soluzione mi sembra ottima!!

come faccio a fare si che venga vista come dipendenza?? lo fa in automatico quando genero, ad esempio, l'installer .deb?
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Pixel - 13 Luglio 2010, 15:10:10
Con Gambas3 puoi con il 2 non mi sembra, comunque è sufficiente controllare la presenza di tale libreria

Codice: [Seleziona]
dpkg -l | grep libnotify-bin

se ti viene restituito l'output è presente altrimenti no e quindi deve essere installata.
Nel dubbio metterei semplicemente in "testa" al programma un bel comando "gksu apt-get install libnotify-bin" specificando ovviamente all'utente che non gli vai ad installare nulla di anomalo.
In alternativa dopo che hai creato il deb del progetto lo riapri e metti il pacchetto come dipendenza a mano.
Vedi tu come preferisci procedere. :)
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Ceskho - 13 Luglio 2010, 15:16:31
Nel dubbio metterei semplicemente in "testa" al programma un bel comando "gksu apt-get install libnotify-bin" specificando ovviamente all'utente che non gli vai ad installare nulla di anomalo.

:nono: è bruttissimo questo.....mica tutti hanno ubuntu.

E' molto più "elegante" controllare la presenza della libreria e segnalarlo all'avvio o scrivendolo nel terminale. Oppure non metti niente e lo scrivi nella pagina download del tuo software
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Pixel - 13 Luglio 2010, 15:19:54
OT
:nono: è bruttissimo questo.....mica tutti hanno ubuntu.
È vero, molti usano Kubuntu :rotfl:

Citazione
E' molto più "elegante" controllare la presenza della libreria e segnalarlo all'avvio o scrivendolo nel terminale. Oppure non metti niente e lo scrivi nella pagina download del tuo software
È molto più "elegante" riaprire il sorgente e metterlo come dipendenza :D
Titolo: Re: integrazione notifiche ubuntu
Inserito da: luca1202 - 13 Luglio 2010, 15:42:35
ok capito!!

un'altra cosa: ho messo il comando ed effettivamente ora mi genera le notifiche solo che dopo averla generata il mio programma si pianta completamente... ho sbagliato qualcosa?

questa è l'istruzione che ho inserito
Codice: [Seleziona]
SHELL "notify-send \"" & path & " \" " 
ovviamente path è la variabile che contiene quello che deve comparire nella notifica
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Pixel - 13 Luglio 2010, 15:46:22
dopo il comando SHELL hai messo il comando WAIT?

Codice: gambas [Seleziona]
SHELL "notify-send \"" & path & " \" "
WAIT
Titolo: Re: integrazione notifiche ubuntu
Inserito da: luca1202 - 13 Luglio 2010, 16:02:49
no nient altro!
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Pixel - 13 Luglio 2010, 16:05:22
no nient altro!

Appunto, metti il comando wait.
Titolo: Re: integrazione notifiche ubuntu
Inserito da: luca1202 - 13 Luglio 2010, 16:14:16
stesso medesimo risultato :hatecomputer:
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Ceskho - 13 Luglio 2010, 16:20:18
stesso medesimo risultato :hatecomputer:

Hai provato con i processi? Tieni presente che WAIT blocca il software finchè l'azione non è andata a buon fine e si è conclusa. Per sapere come usare i processi fai una ricerca sul forum. E' un argomento abbondantemente trattato.
Titolo: Re: integrazione notifiche ubuntu
Inserito da: luca1202 - 13 Luglio 2010, 16:34:52
stesso medesimo risultato :hatecomputer:

Hai provato con i processi? Tieni presente che WAIT blocca il software finchè l'azione non è andata a buon fine e si è conclusa. Per sapere come usare i processi fai una ricerca sul forum. E' un argomento abbondantemente trattato.
fatto con i processi... stesso risultato!!  :hard:
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Ceskho - 13 Luglio 2010, 16:36:12
Hai provato a leggere la pagina man della libreria? Magari c'è qualche parametro da passare che ti è sfuggito.
Titolo: Re: integrazione notifiche ubuntu
Inserito da: luca1202 - 13 Luglio 2010, 16:47:49
queste sono le opzione che riporta la man
Codice: [Seleziona]
OPTIONS
       -u, --urgency=LEVEL Specifies the urgency level  (low,  normal,  criti‐
       cal).

       -t, --expire-time=TIME
              Specifies  the  timeout  in  milliseconds at which to expire the
              notification.

       -i, --icon=ICON[,ICON...]
              Specifies an icon filename or stock icon to display.

       -c, --category=TYPE[,TYPE...]
              Specifies the notification category.

          Help options:

       -?, --help
              Show this help message

       -h, --hint=TYPE:NAME:VALUE
              Specifies basic extra data to pass. Valid types are int, double,
              string and byte.

ho provato con l'expire time e la urgency ma non cambia niente

il codice all'interno della classe che visualizza la notifica è
Codice: [Seleziona]
PUBLIC SUB _new(path AS String)
 
  SHELL "notify-send \"" & path & " \" "
  WAIT

END
ho provato sia con che senza WAIT ma senza differenze
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Pixel - 13 Luglio 2010, 16:59:34
prova con questo codice:
Codice: gambas [Seleziona]

PUBLIC SUB _new(path AS String)
 
  SHELL "notify-send " & path

END
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Ceskho - 13 Luglio 2010, 17:03:05
Prova con

Codice: gambas [Seleziona]
PUBLIC SUB _new(path AS String)
 
  SHELL "notify-send \"" & path & "\""
  WAIT

END
Titolo: Re: integrazione notifiche ubuntu
Inserito da: luca1202 - 13 Luglio 2010, 17:06:27
prova con questo codice:
Codice: gambas [Seleziona]

PUBLIC SUB _new(path AS String)
 
  SHELL "notify-send " & path

END

la sintassi del comando è errata perchè il parametro da passare alla notifica deve essere tra virgolette, infatti provando ad eseguire dice che il numero di argomenti non è valido

@Ceskho: non va neanche con il tuo comando
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Pixel - 13 Luglio 2010, 17:20:35
la sintassi del comando è errata perchè il parametro da passare alla notifica deve essere tra virgolette, infatti provando ad eseguire dice che il numero di argomenti non è valido

Uhm... non capisco.. se apri un terminale e spari il comando "secco" non pone nessun problema :-\
Titolo: Re: integrazione notifiche ubuntu
Inserito da: ealmuno - 13 Luglio 2010, 19:48:29
È molto più "elegante" riaprire il sorgente e metterlo come dipendenza :D
Ora spieghi come fare  :-[ :P
Titolo: Re: integrazione notifiche ubuntu
Inserito da: fsurfing - 13 Luglio 2010, 20:11:20
secondo me siete tutti fusi dal caldo!

Codice: gambas [Seleziona]


   PUBLIC  SUB _new(path AS String) 
     
dim comando as string

comando=  "notify-send " & path

    SHELL comando
     
   END 
Titolo: Re: integrazione notifiche ubuntu
Inserito da: luca1202 - 13 Luglio 2010, 20:31:48
secondo me siete tutti fusi dal caldo!

Codice: gambas [Seleziona]


   PUBLIC  SUB _new(path AS String) 
     
dim comando as string

comando=  "notify-send " & path

    SHELL comando
     
   END 

scrivendo solo "notify-send" & path non va bene perchè il primo parametro (quello che compare nella notifica per intenderci) deve essere scritto tra virgolette!! se infatti provo ad eseguirlo cosi mi dice per l'appunto che il numero di argomenti non è valido.

ho provato a scriverlo come suggerito da fsurfing in modo che ci fossero anche le virgolette e continua bloccarsi come prima.... non riesco veramente a capire!! mi viene il dubbio che il problema possa essere prima!
Titolo: Re: integrazione notifiche ubuntu
Inserito da: milio - 13 Luglio 2010, 20:48:37

prova a chidere con gli apici:

Codice: gambas [Seleziona]
PUBLIC SUB Form_Open()
DIM txt AS String

  txt = "Ciao"
  SHELL "notify-send '" & txt & "'"
 
END

Titolo: Re: integrazione notifiche ubuntu
Inserito da: milio - 13 Luglio 2010, 21:03:07
Comunque penso che tutti i suggerimenti che ti hanno dato i nostri amici prima di me andavano bene...

Il tuo problema penso che sia questo:
tu dichiari il metodo _new(path as String)
Quindi, presumendo che sia un form, quando richiami il form in questo modo: FMain.Show() ti genera l'errore Not enough arguments.
Cosi' come l'hai scritta tu dovresti crearti un modulo/classe di avvio, e...
Codice: gambas [Seleziona]
PUBLIC SUB Main()
DIM X AS FMain

  X = NEW FMain("Ciao")
  X.Show()
 
 
END

Titolo: Re: integrazione notifiche ubuntu
Inserito da: luca1202 - 13 Luglio 2010, 21:07:57
facendo diverse prove, e grazie all'ausilio del debugger, ho visto che in realtà il problema non è li... è da un'altra parte!!

i vostri suggerimenti erano giusti, infatti la notifica funziona correttamente, intanto grazie a tutti poi vi faccio sapere appena trovo il problema!
Titolo: Re: integrazione notifiche ubuntu
Inserito da: fsurfing - 13 Luglio 2010, 21:08:05
a me il codice funziona benissimo cosi su un evento button
Codice: gambas [Seleziona]

PUBLIC SUB Button1_Click()
  DIM path AS String
  DIM comando AS String  
      path = "Pippo"
    comando = "notify-send " & path
      
   SHELL comando  

END


ma la variabile path cosa rappresenta?

SUPPLIC SUB _new è relativo a un aclasse o a un form?

il nome di variabile phat in alcuni oggetti è una parola riservata percui potrebbe essere li il problema
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Pixel - 13 Luglio 2010, 22:18:37
facendo diverse prove, e grazie all'ausilio del debugger, ho visto che in realtà il problema non è li... è da un'altra parte!!

i vostri suggerimenti erano giusti, infatti la notifica funziona correttamente, intanto grazie a tutti poi vi faccio sapere appena trovo il problema!
Te possino.... >:(

Ovviamente scherzo ;D
Titolo: Re: integrazione notifiche ubuntu
Inserito da: Pixel - 13 Luglio 2010, 22:28:09
È molto più "elegante" riaprire il sorgente e metterlo come dipendenza :D
Ora spieghi come fare  :-[ :P

Per quanto riguarda Debian/Ubuntu

Dopo che hai creato il pacchetto deb, ti posizioni nella directory che contiene i file generati da Gambas e da terminale dai il seguente comando

Codice: [Seleziona]
dpkg-source -x nomepacchetto.dsc

Verrà creata una directory con il "pacchetto" esploso, all'interno trovi una directory chiamata "debian" che contiene una serie di file, tu devi aprire con un editor quello che si chiama "control", all'inizio troverai una serie di informazioni tra cui l'elenco dei pacchetti dipendenza per il funzionamento del programma, aggiungi quello che vuoi salvi ed esci.
Sempre da terminale dai questo comando

Codice: [Seleziona]
debuild binary

et voilà ;D

Ovviamente sono stato molto grossolano nella descrizione, se vuoi approfondire l'argomento della creazione dei pacchetti ti consiglio "la guida del Manteiner Debian" (ti consiglio anche una cassa di aspirine per il mal di testa :rotfl:)
Titolo: Re: integrazione notifiche ubuntu
Inserito da: luca1202 - 15 Luglio 2010, 17:13:39
è confermato che il problema stava da un'altra parte :hard:

le notifiche funzionano a dovere!!
thanks ;)
Titolo: Re:[risolto]integrazione notifiche ubuntu
Inserito da: vuott - 23 Settembre 2016, 10:01:23
E' possibile utilizzare le risorse esterne del API di Libnotify:

http://www.gambas-it.org/wiki/index.php?title=Far_mostrare_sulla_Scrivania_i_messaggi_della_specifica_Desktop_Notifications_mediante_le_funzioni_esterne_del_API_di_Libnotify