Hello!

Inspiré(e) de prendre part à la discussion ? Ou de poser une question ou demander de l’aide ?

Alors bienvenues dans les grands sujets des forums de La Bulle : m’inscrire.

Cette partie du forum n’est pas compatible avec les bloqueurs publicitaires

Félicitations à vous, de préférer les accès payants plutôt que la gratuité par la publicité, c’est honnorable et cohérent de votre part. Malheureusement, l’accès payant par micropaiement (qui serait d’environ 1 cent pour 20 pages consultées) n’est pour l’instant pas encore mis en place, et l’accès gratuit sans publicité, est réservé aux membres actif(ve)s du forum. En attendant, si vous souhaitez poursuivre votre visite chez nous, vous pouvez ajouter le site à votre liste blanche, ou encore mieux, désactiver le bloqueur partout. Pour ajouter le site à votre liste blanche, pour Firefox (similaire pour les autres navigateurs), rendez‑vous en bas à gauche de la fenêtre de votre navigateur, et cliquez sur le menu comme dans l’exemple de l’image ci‑dessous, puis rechargez la page, en appuyant sur F5.

[Ada][GtkAda] Utilisation de Gtk.Application : inhibiter le comportement ?
Auteur Message
Beau Parleur
Beau Parleur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 320
Ven 26 Jan 2018 18:40
Message [Ada][GtkAda] Utilisation de Gtk.Application : inhibiter le comportement ?
Bonjour, bonjour à tous, bonjour Hibou.

Je suis passé ressemant de Ada 2012 à 2016, et la même migration pour GtkAda, je cherche simplement comment inhibiter le comportement par défaut sur Windows, enfin avec Ma machine, concernant la prise en charge des argument de ligne de commande.

En effet, je programme sur GNU/Linux, debian en l'occurence, 9.3 pour être précis et sur Windows10 avec GtkAda 2016 de AdaCore, je n'obtiens pas le même comportement.

Du coup j'ai lu plus en avant la codumentation mais je ne trouve ce que je cherche.

Merci pour votre lecture.

J'utilise un Widget Application et celui- ci me force sur Windows à traiter les argument de ligne de commande en interne à (je sais pas quoi d'ailleurs parce que j'ai plus de Gtk.Main.init ni de Gtk.Main.Main "donc c'est pas dans la main loop.) bref.

Je cherche un moyen pour inhibiter cette "feature".

Merci pour votre aide.
Profil
Beau Parleur
Beau Parleur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 320
Ven 26 Jan 2018 19:26
Message Re: [Ada][GtkAda] Utilisation de Gtk.Application : inhibiter le comportement ?
youpiiii !

J'ai trouvé une astuce, j'ai mis le flag application sur Open.

J'ai déclarer une procédure vide connectés avec le signal Activate et ma procédure Activate connectés avec le signal open.

Si ça ce trouve il n'y a même pas besoin de connecté activate en ce cas.

Merci.
Si vous avez plus d'info merci.

(A woais mais même problème pour les options).

Comment fais-je ? Arf .... !
Profil
Beau Parleur
Beau Parleur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 320
Ven 26 Jan 2018 21:16
Message Re: [Ada][GtkAda] Utilisation de Gtk.Application : inhibiter le comportement ?
Ouais !

J'ai trouvé aussi,

j'utilise d'abord une GtkAdaApplication, mais peut-être avec une Gtk_Application ça marche également mais autrement.

Ensuite le flag glib.application c'est command_line et le flag gtkada de mon gtkada_application open

je connecte le signal activate à une procédure nulle.
je connecte le signal open à une procédure nulle.
Et je connecte le signal command-line à la fonction cmd_line.

Code : (
Mon object est une interface GM instruments contenant une Application GtkAda.)

Source ada : 

procedure Initialize(Gm_Interface : in out Gm_Interface_Pointer;
State : out Glib.Gint;
Works : access Work_Array;
Verbose, Auto_Play, In_Loop, Help, Ignore : in Boolean) is

Argc : constant Gint := 0;
Argv : GNAT.Strings.String_List(1..0);-- := (others => new String ' (""));
begin

Put("Freeing Gm_Interface...");
Free(Gm_Interface);
Put_Line(" Done.");
Gm_Interface := new Gm_Interface_Record;
Gm_Interface.Works := Works.all'Unrestricted_Access;
Put_Line("Gm_Interface created.");
Gm_Interface.App :=
Gtkada.Application.Gtk_Application_New
(
Locale_To_Utf8(GApplication_Id),
G_Application_Handles_Command_Line,
Gtkada_Application_Handles_Open
);
App_User_Callback.Connect
(Gm_Interface.App, "activate",
App_User_Callback.To_Marshaller(Not_Activate'Access),
Gm_Interface);
App_User_Callback.Connect
(Gm_Interface.App, "open",
App_User_Callback.To_Marshaller(not_open'Access),
Gm_Interface);
App_User_Return_Callback.Connect
(Gm_Interface.App, "command-line",
App_User_Return_Callback.To_Marshaller(Cmd_line'Access),
Gm_Interface);
State := 0;
State := Run(Gm_Interface.App, Argc, Argv);
exception
when others =>
State := 1;
raise;
end Initialize;
Profil
cron