comp.lang.ada
 help / color / mirror / Atom feed
* GtkAda question
@ 2021-04-12 21:45 DrPi
  2021-04-13  9:53 ` Blady
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: DrPi @ 2021-04-12 21:45 UTC (permalink / raw)


Hi,

Anyone using Glib.Key_File package ?
I have not been able to use it successfully.
Looking at the package source code, there are missing functions.
Save_To_File() is one of them. Hard to save parameters without this 
function ;)

Note : I'm using Community GtkAda 2020.

Regards,
Nicolas

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-12 21:45 GtkAda question DrPi
@ 2021-04-13  9:53 ` Blady
  2021-04-13 11:07   ` DrPi
  2021-04-13 22:00 ` Gautier write-only address
  2021-04-18  9:34 ` DrPi
  2 siblings, 1 reply; 16+ messages in thread
From: Blady @ 2021-04-13  9:53 UTC (permalink / raw)


Le 12/04/2021 à 23:45, DrPi a écrit :
> Hi,
> 
> Anyone using Glib.Key_File package ?
> I have not been able to use it successfully.
> Looking at the package source code, there are missing functions.
> Save_To_File() is one of them. Hard to save parameters without this 
> function ;)
> 
> Note : I'm using Community GtkAda 2020.

Hello Nicolas,

You may use this code proposal:

    function Save_To_File
      (Key_File : G_Key_File;
       File     : String;
       Error    : Glib.Error.GError := null)
       return Boolean;

    function Save_To_File
      (Key_File : G_Key_File;
       File     : String;
       Error    : Glib.Error.GError := null)
       return Boolean
    is
       function Internal
         (Key_File : G_Key_File;
          File     : String;
          Error    : Glib.Error.GError)
          return Gboolean;
       pragma Import (C, Internal, "g_key_file_save_to_file");
    begin
       return Boolean'Val (Internal (Key_File, File & ASCII.NUL, Error));
    end Save_To_File;

If ok you even may send a pull request to AdaCore:
https://github.com/AdaCore/gtkada/pulls
or an issue:
https://github.com/AdaCore/gtkada/issues

HTH, Pascal.



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-13  9:53 ` Blady
@ 2021-04-13 11:07   ` DrPi
  2021-04-13 11:55     ` Dmitry A. Kazakov
  0 siblings, 1 reply; 16+ messages in thread
From: DrPi @ 2021-04-13 11:07 UTC (permalink / raw)


Le 13/04/2021 à 11:53, Blady a écrit :
> Le 12/04/2021 à 23:45, DrPi a écrit :
>> Hi,
>>
>> Anyone using Glib.Key_File package ?
>> I have not been able to use it successfully.
>> Looking at the package source code, there are missing functions.
>> Save_To_File() is one of them. Hard to save parameters without this 
>> function ;)
>>
>> Note : I'm using Community GtkAda 2020.
> 
> Hello Nicolas,
> 
> You may use this code proposal:
> 
>    function Save_To_File
>      (Key_File : G_Key_File;
>       File     : String;
>       Error    : Glib.Error.GError := null)
>       return Boolean;
> 
>    function Save_To_File
>      (Key_File : G_Key_File;
>       File     : String;
>       Error    : Glib.Error.GError := null)
>       return Boolean
>    is
>       function Internal
>         (Key_File : G_Key_File;
>          File     : String;
>          Error    : Glib.Error.GError)
>          return Gboolean;
>       pragma Import (C, Internal, "g_key_file_save_to_file");
>    begin
>       return Boolean'Val (Internal (Key_File, File & ASCII.NUL, Error));
>    end Save_To_File;
> 
That's what I've written (and use).
However, I think the use of Error is incorrect in all Key_File functions.
I will investigate further.

> If ok you even may send a pull request to AdaCore:
> https://github.com/AdaCore/gtkada/pulls
> or an issue:
> https://github.com/AdaCore/gtkada/issues
> 
Sure. Will do when finished.

Thanks,
Nicolas

  HTH, Pascal.
> 
> 
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-13 11:07   ` DrPi
@ 2021-04-13 11:55     ` Dmitry A. Kazakov
  2021-04-13 21:36       ` DrPi
  0 siblings, 1 reply; 16+ messages in thread
From: Dmitry A. Kazakov @ 2021-04-13 11:55 UTC (permalink / raw)


On 2021-04-13 13:07, DrPi wrote:

> That's what I've written (and use).
> However, I think the use of Error is incorrect in all Key_File functions.
> I will investigate further.

Handling GError is tricky. You must call Error_Free on it if returned 
not null.

Why on Earth you even use Key_File? It is much simpler to parse manually 
in Ada.

If you are stage IV lazy, there is GtkRecentManager that handles 
key-value pairs transparently to the application.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-13 11:55     ` Dmitry A. Kazakov
@ 2021-04-13 21:36       ` DrPi
  2021-04-14  6:11         ` Dmitry A. Kazakov
  0 siblings, 1 reply; 16+ messages in thread
From: DrPi @ 2021-04-13 21:36 UTC (permalink / raw)


Le 13/04/2021 à 13:55, Dmitry A. Kazakov a écrit :
> On 2021-04-13 13:07, DrPi wrote:
> 
>> That's what I've written (and use).
>> However, I think the use of Error is incorrect in all Key_File functions.
>> I will investigate further.
> 
> Handling GError is tricky. You must call Error_Free on it if returned 
> not null.
>
Yes, I've read this in the Gtk documentation.

Is there a good GtkAda documentation (with examples) somewhere ?
I've found a french tutorial. Very instructive but incomplete and a 
little bit outdated.
I also read Test code in GtkAda repository. Again, useful but very 
incomplete.

> Why on Earth you even use Key_File? It is much simpler to parse manually 
> in Ada.
When I need a functionality I start to look at what already exists.
Key_File is what I need. Why rewrite it myself ?
And I currently don't have the knowledge to write it myself.

> 
> If you are stage IV lazy, there is GtkRecentManager that handles 
> key-value pairs transparently to the application.
> 
Sorry, I don't know what "stage IV lazy" mean .
I'm learning Ada at home, on my spare time. And lazy I am. For sure ;)

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-12 21:45 GtkAda question DrPi
  2021-04-13  9:53 ` Blady
@ 2021-04-13 22:00 ` Gautier write-only address
  2021-04-14 19:27   ` DrPi
  2021-04-18  9:34 ` DrPi
  2 siblings, 1 reply; 16+ messages in thread
From: Gautier write-only address @ 2021-04-13 22:00 UTC (permalink / raw)


If I search for "Glib.Key_File" on the Web, the first hit is:
  https://developer.gnome.org/glib/stable/glib-Key-value-file-parser.html
So perhaps you want to parse and write ".ini-like config files" as mentioned there?

In that case you may be interested by this:
  https://sourceforge.net/projects/ini-files/

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-13 21:36       ` DrPi
@ 2021-04-14  6:11         ` Dmitry A. Kazakov
  2021-04-14 10:21           ` Emmanuel Briot
  2021-04-14 20:23           ` DrPi
  0 siblings, 2 replies; 16+ messages in thread
From: Dmitry A. Kazakov @ 2021-04-14  6:11 UTC (permalink / raw)


On 2021-04-13 23:36, DrPi wrote:
> Le 13/04/2021 à 13:55, Dmitry A. Kazakov a écrit :
>> On 2021-04-13 13:07, DrPi wrote:
>>
>>> That's what I've written (and use).
>>> However, I think the use of Error is incorrect in all Key_File 
>>> functions.
>>> I will investigate further.
>>
>> Handling GError is tricky. You must call Error_Free on it if returned 
>> not null.
>>
> Yes, I've read this in the Gtk documentation.
> 
> Is there a good GtkAda documentation (with examples) somewhere ?

No that I know. BTW, that would not be documentation, rather tutorial, 
book etc. GtkAda is only bindings. You would not expect it to cover Gtk 
topics.

> I've found a french tutorial. Very instructive but incomplete and a 
> little bit outdated.
> I also read Test code in GtkAda repository. Again, useful but very 
> incomplete.

Use Gtk tutorials and then translate that knowledge back to GtkAda, it 
is more or less straightforward.

>> Why on Earth you even use Key_File? It is much simpler to parse 
>> manually in Ada.
> When I need a functionality I start to look at what already exists.
> Key_File is what I need. Why rewrite it myself ?

I doubt anybody needs g_key_file. For start, it loads all file into the 
memory. Surely you do not want that if there are lots of parameters and 
settings. Or, put it this way, if you can load/store your parameters 
object, then there are better means than *.ini files.

If you cannot then you need some cashing infrastructure to avoid massive 
I/O (and potential data loss). A typical solution for the latter would 
be a persistent storage, maybe, backed by a DB, like SQLite or a custom 
written storage. Or things like GtkRecentManager [*] and Windows registry.

> And I currently don't have the knowledge to write it myself.

You do not know Ada text I/O or Ada stream attributes?

> I'm learning Ada at home, on my spare time. And lazy I am. For sure ;)

Even more reasons to write it yourself all in Ada [**].

----
* Note that GtkRecentManager suffers the potential problems I mentioned. 
You may experience corruption of *.xbel files (the equivalent to *.ini, 
but in XML) because it is poorly designed.

** I see in another response that it is already done in Ada. Though I 
never used it, I am certain it is better designed and written than 
g_key_file.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-14  6:11         ` Dmitry A. Kazakov
@ 2021-04-14 10:21           ` Emmanuel Briot
  2021-04-14 19:28             ` DrPi
  2021-04-14 20:23           ` DrPi
  1 sibling, 1 reply; 16+ messages in thread
From: Emmanuel Briot @ 2021-04-14 10:21 UTC (permalink / raw)


> ** I see in another response that it is already done in Ada. Though I 
> never used it, I am certain it is better designed and written than 
> g_key_file.

Another candidate is `GNATCOLL.Config` if you already have gnatcoll has a dependency in your project.

https://github.com/AdaCore/gnatcoll-core/blob/master/src/gnatcoll-config.ads

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-13 22:00 ` Gautier write-only address
@ 2021-04-14 19:27   ` DrPi
  2021-04-14 20:40     ` Dmitry A. Kazakov
  0 siblings, 1 reply; 16+ messages in thread
From: DrPi @ 2021-04-14 19:27 UTC (permalink / raw)


Le 14/04/2021 à 00:00, Gautier write-only address a écrit :
> If I search for "Glib.Key_File" on the Web, the first hit is:
>    https://developer.gnome.org/glib/stable/glib-Key-value-file-parser.html
> So perhaps you want to parse and write ".ini-like config files" as mentioned there?
That's it.
To be more precise, I need to save and retrieve few data like window 
position and size.
> 
> In that case you may be interested by this:
>    https://sourceforge.net/projects/ini-files/
> 
I'll have a look at it.

Thanks.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-14 10:21           ` Emmanuel Briot
@ 2021-04-14 19:28             ` DrPi
  0 siblings, 0 replies; 16+ messages in thread
From: DrPi @ 2021-04-14 19:28 UTC (permalink / raw)


Le 14/04/2021 à 12:21, Emmanuel Briot a écrit :
>> ** I see in another response that it is already done in Ada. Though I
>> never used it, I am certain it is better designed and written than
>> g_key_file.
> 
> Another candidate is `GNATCOLL.Config` if you already have gnatcoll has a dependency in your project.
> 
> https://github.com/AdaCore/gnatcoll-core/blob/master/src/gnatcoll-config.ads
GNATCOLL is not a dependency of my project but I'll have a look at it.

Thanks

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-14  6:11         ` Dmitry A. Kazakov
  2021-04-14 10:21           ` Emmanuel Briot
@ 2021-04-14 20:23           ` DrPi
  2021-04-14 21:05             ` Dmitry A. Kazakov
  1 sibling, 1 reply; 16+ messages in thread
From: DrPi @ 2021-04-14 20:23 UTC (permalink / raw)


Le 14/04/2021 à 08:11, Dmitry A. Kazakov a écrit :
> On 2021-04-13 23:36, DrPi wrote:
>> Le 13/04/2021 à 13:55, Dmitry A. Kazakov a écrit :
>>> On 2021-04-13 13:07, DrPi wrote:
>>>
>>>> That's what I've written (and use).
>>>> However, I think the use of Error is incorrect in all Key_File 
>>>> functions.
>>>> I will investigate further.
>>>
>>> Handling GError is tricky. You must call Error_Free on it if returned 
>>> not null.
>>>
>> Yes, I've read this in the Gtk documentation.
>>
>> Is there a good GtkAda documentation (with examples) somewhere ?
> 
> No that I know. BTW, that would not be documentation, rather tutorial, 
> book etc. GtkAda is only bindings. You would not expect it to cover Gtk 
> topics.
> 
>> I've found a french tutorial. Very instructive but incomplete and a 
>> little bit outdated.
>> I also read Test code in GtkAda repository. Again, useful but very 
>> incomplete.
> 
> Use Gtk tutorials and then translate that knowledge back to GtkAda, it 
> is more or less straightforward.
> 
That's what I do. But there are things specific to GtkAda that are not 
always easy to find. For example, GtkAda makes use of Gint data types. 
You have to use Glib.To_Gint() function to do the conversion. You also 
have to use Glib.Convert.Locale_To_UTF8() function to be able to use 
Strings with non ASCII characters. It is almost impossible to find this 
by yourself.

>>> Why on Earth you even use Key_File? It is much simpler to parse 
>>> manually in Ada.
>> When I need a functionality I start to look at what already exists.
>> Key_File is what I need. Why rewrite it myself ?
> 
> I doubt anybody needs g_key_file. For start, it loads all file into the 
> memory. Surely you do not want that if there are lots of parameters and 
> settings. Or, put it this way, if you can load/store your parameters 
> object, then there are better means than *.ini files.
> 
> If you cannot then you need some cashing infrastructure to avoid massive 
> I/O (and potential data loss). A typical solution for the latter would 
> be a persistent storage, maybe, backed by a DB, like SQLite or a custom 
> written storage. Or things like GtkRecentManager [*] and Windows registry.
> 
I only need to store and retrieve few data like window position and 
size. Key_File is made for this.

>> And I currently don't have the knowledge to write it myself.
> 
> You do not know Ada text I/O or Ada stream attributes?
Not yet (except Put_Line() of course).

> 
>> I'm learning Ada at home, on my spare time. And lazy I am. For sure ;)
> 
> Even more reasons to write it yourself all in Ada [**].
> 
This could be a good exercise.

> ----
> * Note that GtkRecentManager suffers the potential problems I mentioned. 
> You may experience corruption of *.xbel files (the equivalent to *.ini, 
> but in XML) because it is poorly designed.
> 
> ** I see in another response that it is already done in Ada. Though I 
> never used it, I am certain it is better designed and written than 
> g_key_file.
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-14 19:27   ` DrPi
@ 2021-04-14 20:40     ` Dmitry A. Kazakov
  2021-04-17 19:58       ` DrPi
  0 siblings, 1 reply; 16+ messages in thread
From: Dmitry A. Kazakov @ 2021-04-14 20:40 UTC (permalink / raw)


On 2021-04-14 21:27, DrPi wrote:
> Le 14/04/2021 à 00:00, Gautier write-only address a écrit :
>> If I search for "Glib.Key_File" on the Web, the first hit is:
>>    
>> https://developer.gnome.org/glib/stable/glib-Key-value-file-parser.html
>> So perhaps you want to parse and write ".ini-like config files" as 
>> mentioned there?
> That's it.
> To be more precise, I need to save and retrieve few data like window 
> position and size.

I [mis]use Gtk_Recent_Manager for the purpose.

See the package Gtk.Recent_Manager_Keys. It has

    function Restore
             (  Key     : UTF8_String;
                Default : UTF8_String;
                Manager : Gtk_Recent_Manager := Get_Default
             )  return UTF8_String;

    procedure Store
              (  Key     : UTF8_String;
                 Value   : UTF8_String;
                 Manager : Gtk_Recent_Manager := Get_Default
              );

This is basically all what you need.

On top of that you set something like:

    function Restore (Key : String; Default : GInt) return GInt is
    begin
       return GInt'Value (Restore (Key, GInt'Image (Default)));
    exception
       when others =>
          return GInt (Default);
    end Restore;

Then you restore the window geometry simply as:

    Window.Resize (Restore ("width", 200), Restore ("height", 100));
    Window.Move (Restore ("x", 0), Restore ("y", 0));

[You would add some sanity checks, of course]

The advantage is that the recent manager is sort of standard in GTK, it 
is maintained by GTK on per user basis. All GTK applications share the 
same *.xbel file.

The rest is disadvantages. The file is in XML, you can find your keys 
there. E.g. stored x position of max_home_automation looks like this:

   <bookmark href="x" added="2021-04-10T09:30:03Z" 
modified="2021-04-10T11:10:10Z" visited="2021-04-10T09:30:05Z">
     <title>1677</title>
     <desc>stored value for x</desc>
     <info>
       <metadata owner="http://freedesktop.org">
         <mime:mime-type type="application/octet-stream"/>
         <bookmark:applications>
           <bookmark:application name="max_home_automation.exe" 
exec="&apos; max_home_automation.exe%u&apos;" 
modified="2021-04-10T11:10:10Z" count="114"/>
         </bookmark:applications>
       </metadata>
     </info>
   </bookmark>

Quite a lot of junk to store one puny value. As all GTK it is kind of 
buggy, you may experience data losses. But otherwise it is simple for 
keeping geometry and other settings there.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-14 20:23           ` DrPi
@ 2021-04-14 21:05             ` Dmitry A. Kazakov
  2021-04-17 19:56               ` DrPi
  0 siblings, 1 reply; 16+ messages in thread
From: Dmitry A. Kazakov @ 2021-04-14 21:05 UTC (permalink / raw)


On 2021-04-14 22:23, DrPi wrote:
> Le 14/04/2021 à 08:11, Dmitry A. Kazakov a écrit :

>> Use Gtk tutorials and then translate that knowledge back to GtkAda, it 
>> is more or less straightforward.
>>
> That's what I do. But there are things specific to GtkAda that are not 
> always easy to find. For example, GtkAda makes use of Gint data types. 
> You have to use Glib.To_Gint() function to do the conversion.

I never used it. But this is not GtkAda, this is GLib that uses GInt 
where a non-existent in C Boolean type would be appropriate.

> You also 
> have to use Glib.Convert.Locale_To_UTF8() function to be able to use 
> Strings with non ASCII characters.

No, you don't and this is not GtkAda either. Normally you never need to 
convert anything. You just assume everything UTF-8 and you are good.

When you use some specific encoding, you convert that to UTF-8 first. I 
use Ada means for that rather than GLib.Convert, but not with GTK stuff. 
GTK is already UTF-8.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-14 21:05             ` Dmitry A. Kazakov
@ 2021-04-17 19:56               ` DrPi
  0 siblings, 0 replies; 16+ messages in thread
From: DrPi @ 2021-04-17 19:56 UTC (permalink / raw)


Le 14/04/2021 à 23:05, Dmitry A. Kazakov a écrit :
> On 2021-04-14 22:23, DrPi wrote:
>> Le 14/04/2021 à 08:11, Dmitry A. Kazakov a écrit :
> 
>>> Use Gtk tutorials and then translate that knowledge back to GtkAda, 
>>> it is more or less straightforward.
>>>
>> That's what I do. But there are things specific to GtkAda that are not 
>> always easy to find. For example, GtkAda makes use of Gint data types. 
>> You have to use Glib.To_Gint() function to do the conversion.
> 
> I never used it. But this is not GtkAda, this is GLib that uses GInt 
> where a non-existent in C Boolean type would be appropriate.
> 
>> You also have to use Glib.Convert.Locale_To_UTF8() function to be able 
>> to use Strings with non ASCII characters.
> 
> No, you don't and this is not GtkAda either. Normally you never need to 
> convert anything. You just assume everything UTF-8 and you are good.
> 
> When you use some specific encoding, you convert that to UTF-8 first. I 
> use Ada means for that rather than GLib.Convert, but not with GTK stuff. 
> GTK is already UTF-8.
> 
Ok.
I'll start a new thread on this subject.
Thanks.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-14 20:40     ` Dmitry A. Kazakov
@ 2021-04-17 19:58       ` DrPi
  0 siblings, 0 replies; 16+ messages in thread
From: DrPi @ 2021-04-17 19:58 UTC (permalink / raw)


Le 14/04/2021 à 22:40, Dmitry A. Kazakov a écrit :
> On 2021-04-14 21:27, DrPi wrote:
>> Le 14/04/2021 à 00:00, Gautier write-only address a écrit :
>>> If I search for "Glib.Key_File" on the Web, the first hit is:
>>> https://developer.gnome.org/glib/stable/glib-Key-value-file-parser.html
>>> So perhaps you want to parse and write ".ini-like config files" as 
>>> mentioned there?
>> That's it.
>> To be more precise, I need to save and retrieve few data like window 
>> position and size.
> 
> I [mis]use Gtk_Recent_Manager for the purpose.
> 
> See the package Gtk.Recent_Manager_Keys. It has
> 
>    function Restore
>             (  Key     : UTF8_String;
>                Default : UTF8_String;
>                Manager : Gtk_Recent_Manager := Get_Default
>             )  return UTF8_String;
> 
>    procedure Store
>              (  Key     : UTF8_String;
>                 Value   : UTF8_String;
>                 Manager : Gtk_Recent_Manager := Get_Default
>              );
> 
> This is basically all what you need.
> 
> On top of that you set something like:
> 
>    function Restore (Key : String; Default : GInt) return GInt is
>    begin
>       return GInt'Value (Restore (Key, GInt'Image (Default)));
>    exception
>       when others =>
>          return GInt (Default);
>    end Restore;
> 
> Then you restore the window geometry simply as:
> 
>    Window.Resize (Restore ("width", 200), Restore ("height", 100));
>    Window.Move (Restore ("x", 0), Restore ("y", 0));
> 
> [You would add some sanity checks, of course]
> 
> The advantage is that the recent manager is sort of standard in GTK, it 
> is maintained by GTK on per user basis. All GTK applications share the 
> same *.xbel file.
> 
> The rest is disadvantages. The file is in XML, you can find your keys 
> there. E.g. stored x position of max_home_automation looks like this:
> 
>   <bookmark href="x" added="2021-04-10T09:30:03Z" 
> modified="2021-04-10T11:10:10Z" visited="2021-04-10T09:30:05Z">
>     <title>1677</title>
>     <desc>stored value for x</desc>
>     <info>
>       <metadata owner="http://freedesktop.org">
>         <mime:mime-type type="application/octet-stream"/>
>         <bookmark:applications>
>           <bookmark:application name="max_home_automation.exe" 
> exec="&apos; max_home_automation.exe%u&apos;" 
> modified="2021-04-10T11:10:10Z" count="114"/>
>         </bookmark:applications>
>       </metadata>
>     </info>
>   </bookmark>
> 
> Quite a lot of junk to store one puny value. As all GTK it is kind of 
> buggy, you may experience data losses. But otherwise it is simple for 
> keeping geometry and other settings there.
> 
Thanks for the explanations.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: GtkAda question
  2021-04-12 21:45 GtkAda question DrPi
  2021-04-13  9:53 ` Blady
  2021-04-13 22:00 ` Gautier write-only address
@ 2021-04-18  9:34 ` DrPi
  2 siblings, 0 replies; 16+ messages in thread
From: DrPi @ 2021-04-18  9:34 UTC (permalink / raw)


Le 12/04/2021 à 23:45, DrPi a écrit :
> Hi,
> 
> Anyone using Glib.Key_File package ?
> I have not been able to use it successfully.
> Looking at the package source code, there are missing functions.
> Save_To_File() is one of them. Hard to save parameters without this 
> function ;)
> 
> Note : I'm using Community GtkAda 2020.
> 
> Regards,
> Nicolas

After looking at existing implementations pointed in the answers, I 
decided to implement one myself as an exercise (as suggested by Dmitry).
Thanks to all for your help.

Nicolas

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2021-04-18  9:34 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-12 21:45 GtkAda question DrPi
2021-04-13  9:53 ` Blady
2021-04-13 11:07   ` DrPi
2021-04-13 11:55     ` Dmitry A. Kazakov
2021-04-13 21:36       ` DrPi
2021-04-14  6:11         ` Dmitry A. Kazakov
2021-04-14 10:21           ` Emmanuel Briot
2021-04-14 19:28             ` DrPi
2021-04-14 20:23           ` DrPi
2021-04-14 21:05             ` Dmitry A. Kazakov
2021-04-17 19:56               ` DrPi
2021-04-13 22:00 ` Gautier write-only address
2021-04-14 19:27   ` DrPi
2021-04-14 20:40     ` Dmitry A. Kazakov
2021-04-17 19:58       ` DrPi
2021-04-18  9:34 ` DrPi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox