From: DrPi <314@drpi.fr>
Subject: Re: GtkAda question
Date: Wed, 14 Apr 2021 22:23:08 +0200 [thread overview]
Message-ID: <60774f2d$0$12700$426a74cc@news.free.fr> (raw)
In-Reply-To: <s5612r$1c9l$1@gioia.aioe.org>
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.
>
next prev parent reply other threads:[~2021-04-14 20:23 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox