From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: GtkAda Scrollbars
Date: Mon, 30 Dec 2019 11:58:37 +0100
Date: 2019-12-30T11:58:37+01:00 [thread overview]
Message-ID: <qucl8v$62r$1@gioia.aioe.org> (raw)
In-Reply-To: ed5bb971-7024-194e-8f0d-ef36dd0e27cc@planet.nl
On 2019-12-30 11:09, L Dries wrote:
> Op 25-12-2019 om 17:49 schreef Dmitry A. Kazakov:
>> On 2019-12-24 08:36, L Dries wrote:
>>
>>> I am trying to create a program using a "drawingarea". In some cases
>>> the drawing is to large for the window so I want to use scrollbars
>>> but I can get these correct.
>>
>> Gtk_Drawing_Area must process the event "draw" in order to redraw
>> itself according to the allocation area and the current cairo context.
>> Moving sliders of the scrolled window would ultimately send "draw"
>> down to its drawing area child.
>>
>> For an example of using Gtk_Drawing_Area for drawing various shapes
>> see AICWL:
>>
>> http://www.dmitry-kazakov.de/ada/aicwl.htm
>>
>> The base type for all instruments is Gtk_Layered_Record derived from
>> Gtk_Drawing_Area_Record.
>>
>> Merry Christmas!
>>
> I cannot find any reference in this answer to the problem I have because
> for instance the scrollbars cannot move if even shown.
That is likely because it has the size less than the client area of the
scroll window. The parent widget queries its children for the desirable
size. See
Get_Request_Mode
Get_Preferred_Height
Get_Preferred_Height_For_Width
etc
You might wish to override them for your widget derived from drawing
area because the default behavior is that the parent tells the child
what the size must be. There are variations from any size, minimal size
up to fixed size. Finally, at the end of the size negotiation process
you get the signal "size_allocate" which tells the widget about its
final size (until first resize). There you can allocate memory, prepare
other size-dependent stuff etc.
See the Height-for-width Geometry Management section in
https://developer.gnome.org/gtk3/stable/GtkWidget.htm
for detailed information how the widget size is maintained.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
prev parent reply other threads:[~2019-12-30 10:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-24 7:36 GtkAda Scrollbars L Dries
2019-12-25 16:49 ` Dmitry A. Kazakov
2019-12-30 10:09 ` L Dries
2019-12-30 10:58 ` Dmitry A. Kazakov [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox