comp.lang.ada
 help / color / mirror / Atom feed
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


      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