Re: Gtk2, Glade et la souris

Page principale

Répondre à ce message
Auteur: Patrice Karatchentzeff
Date:  
À: GUILDE
Sujet: Re: Gtk2, Glade et la souris
Le 10 mars 2009 09:43, Patrice Karatchentzeff
<patrice.karatchentzeff@???> a écrit :

[...]

> Je découvre un peu Gtk2 via Glade et je cherche comment associer à un
> widget « Entry » une propriété qui me mettrait automatiquement dedans
> le copier d'une sélection d'une souris sous X...
>
> Il y a bien une tripotée de signaux associés mais j'ai au mieux des
> clipboards et j'ai l'impression que c'est le truc de copier-coller des
> bureaux genre GNOME et KDE.


Voilà ma solution (au moins provisoire) :

Je sais communiquer entre le copier-coller X et Gtk2 (et dans les deux
sens) mais je suis moyennement satisfait de la solution :

#!/usr/bin/perl

use strict;
use warnings;

use Gtk2 '-init';
use Gtk2::GladeXML;

my $mouse_copy = "";

my $glade = Gtk2::GladeXML->new("/home/pk/trans.glade");
$glade->signal_autoconnect_from_package('main');

my $top = $glade->get_widget("window1");
my $trad = $glade->get_widget('entry1');

$top -> signal_connect('event', \&print_mouse_selection_to_entry);

$top->show();
Gtk2->main;

###########

sub print_mouse_selection_to_entry {
my $clipboard1 = Gtk2::Clipboard->get(Gtk2::Gdk->SELECTION_PRIMARY);
$mouse_copy = $clipboard1 -> wait_for_text;
$trad -> set_text("$mouse_copy") if defined ( "$mouse_copy" );
}

sub on_window1_delete_event {
Gtk2->main_quit;
}

Ça fonctionne mais cela suppose qu'un signal soit émis pour le
rafraîchissement donc a minima de passer la souris sur l'appli... or,
je voudrai vraiment pouvoir travailler en interactif avec par exemple
un éditeur de texte d'un côté et cet appli en parallèle avec le focus
sur l'éditeur de texte... il faudrait un signal - ou un truc made in
Gtk2 genre une constante toujours vraie - pour passer dans la boucle
d'événement en permanence...

Bon, je suis conscient que l'on sort du cadre de la liste mais merci
quand même si quelqu'un a une idée...

PK

PS : en fait, c'est sympa glade mais ça n'empêche pas d'avoir une
bonne culture de Gtk2 pour faire quelque chose de potable... je
pensais pouvoir prendre l'outil en main en 5 mn mais dès que l'on sort
d'un truc à deux balles, il faut bien comprendre les mécanismes
internes de Gtk2... et la doc de Gtk2 n'est pas très accessible (et
c'est même totalement imbitable pour une prise en main).

PPS : Tk est plus simple mais je reconnais que Gtk2 fait beaucoup
beaucoup de trucs... et le côté séparation du travail chiant
(grahisme) et code de glade est vraiment séduisant.

-- 
      |\      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:p.karatchentzeff@free.fr
     |,4-  ) )-,_. ,\ (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'\_)