🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #1905

Re: [gtk] ¿Conocer ancho de la barra de scroll de una ScrolledWindow?

#1905
From: Pere Pujal i Carabantes
Date: Sun, 17 Jul 2005 10:36
84 lines
5033 bytes
Hola Gorka!

El 17-07-2005
Gorka Olaizola va escriure en 
es.comp.os.linux.programacion:
 
> El d�a Sat, 16 Jul 2005 19:22:15 +0000 (UTC), Pere Pujal i Carabantes <"ppujal A R R O B A"@airtel.net> escribi�:
> >
> > Si es para ajustar al ancho, la barra horizontal la puedes dejar en auto.
> > en cuanto a la vertical s�lo va a parpadear si no es necesaria, y por lo
> > que leo de tu primer mensaje s� lo es.
> >
> Eso es lo que estoy planteando ahora. Como una barra casi siempre va a ser
> imprescindible la pongo en always y la otra en never. As� parece ir bien en
> casi todos los casos y es mejor que poner las dos en modo always.

> > En cualquier caso podr�as controlar el ratio de la imagen original x/y,
> > contrastarlo con el de la ventana y actuar en consecuencia.
> >
> El problema es que al calcular el ratio se calcula sin el tama�o de la
> barra, con el tama�o total de la ventana, y al ampliar la imagen siempre
> queda por debajo de la barra y como est� en autom�tico, la barra sale para
> poder desplazarse a esos pocos p�xeles de m�s. Necesitar�a saber el tama�o
> de la ventana sin los p�xeles que ocupar�a la barra para que no salga, pero
> no puedo saberlos ya que no tengo acceso al objeto de la barra y tampoco s�
> si la barra est� activa o no.

Creo que no me he explicado bi�n:
Supongamos que tienes una imagen cargada en la ventana que haga Xancho por
Yalto.
Si la ventana mide menos en alguna de las dos dimensiones y las barras
estan en auto, tendr�s una o las dos barras.
Sabiendo esto, ya sabes qu� barra tienes en la pantalla.

Ahora cargemos una imagen nueva:
Si tienes una imagen de 800 de ancho por 600 de alto el ratio ser�a
800/600=1,3333
Supongamos que la barra hace 32 como dices m�s abajo, aunque en el tema
que uso hacen 19.
Ahora supongamos que tenemos las barras en auto y que sabemos cuales 
estan visibles, por lo que podemos restarlas o no a las medidas que
nos d� la ventana. Nota tambi�n que para ventanas grandes el valor de
las barras afecta poco en la relaci�n anchoxalto


1) Si la ventana hace 1032X900 y sabemos que la barra vertical est� visible
el ratio ser� 1,1111 (1032-32)/19

1,1111<1,33333

Sabes que si escalas la imagen al ancho de la ventana no va a salir la barra 
vertical porque la relaci�n ancho/alto es menor, por tanto puedes poner
la barra vertical en never y la horizontal en auto. 

2) Si hace 1032x700 ser� 1,42857
1,42857>1,33333
Caso inverso, si ajustas al ancho saldr� la barra vertical, por tanto
pones la barra vertical en always y la horizontal en auto. 




> Si la barra est� activa el tama�o de "page_size" ya contiene la resta del
> tama�o de la barra. Si no est� activa "page_size" es el tama�o total de la
> ventana sin la resta del tama�o de la barra.



> Otra posibilidad que creo que tengo es sacar el ancho de la ventana que me
> da el tama�o sin la resta del tama�o de las barras, y restarle un n�mero
> fijo, por ejemplo 32, que seguramente es m�s que el tama�o que adquiere la
> barra. No es una salida �ptima pero puede servir.

Mucho m�s sencillo s� lo es, ya conoces eso de keep it simple :)

Si quieres saber el tama�o de las barras, una simpla resta entre el ancho
de la ventana con la barra vertical en never y el ancho con la barra en 
always te lo da.
Con que lo hagas una vez al inicio del programa te llega, adem�s tiene la
ventaja de que es el ancho real del tema que se est� usando en esos momentos


Salut
Pere
Technical Details
Message-ID: <slrnddkd5d.a7t.ppujalARROBA@hola.fou.net>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!newshub.sdsu.edu!peer01.west.cox.net!cox.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!antonio.escomposlinux.org!antares.escomposlinux.org!mainake.escomposlinux.org!escomposlinux.org!news-5.escomposlinux.org!not-for-mail
References: <slrnddf3od.7t9.gorka@conn.helvete.escomposlinux.org> <slrnddfs6m.a4a.ppujalARROBA@hola.fou.net> <slrnddhqbc.ef8.gorka@conn.helvete.escomposlinux.org> <slrnddinj7.a7t.ppujalARROBA@hola.fou.net> <slrnddjc88.lqp.gorka@conn.helvete.escomposlinux.org>

Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,618dedc3322e40ae
X-Google-Attributes: gidf86c8,public
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!newshub.sdsu.edu!peer01.west.cox.net!cox.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!antonio.escomposlinux.org!antares.escomposlinux.org!mainake.escomposlinux.org!escomposlinux.org!news-5.escomposlinux.org!not-for-mail
From: Pere Pujal i Carabantes <"ppujal A R R O B A"@airtel.net>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: [gtk] ¿Conocer ancho de la barra de scroll
 de una ScrolledWindow?
Date: Sun, 17 Jul 2005 10:36:29 +0000 (UTC)
Organization: hola
Lines: 84
Message-ID: <slrnddkd5d.a7t.ppujalARROBA@hola.fou.net>
References: <slrnddf3od.7t9.gorka@conn.helvete.escomposlinux.org> <slrnddfs6m.a4a.ppujalARROBA@hola.fou.net> <slrnddhqbc.ef8.gorka@conn.helvete.escomposlinux.org> <slrnddinj7.a7t.ppujalARROBA@hola.fou.net> <slrnddjc88.lqp.gorka@conn.helvete.escomposlinux.org>
Reply-To: Pere Pujal i Carabantes <ppujal A R R O B A@airtel.net>
NNTP-Posting-Host: 19.red-83-49-154.pooles.rima-tde.net
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8bit
X-Trace: news-5.escomposlinux.org 1121596804 30223 83.49.154.19 (17 Jul 2005 10:40:04 GMT)
X-Complaints-To: mainake@escomposlinux.org
NNTP-Posting-Date: Sun, 17 Jul 2005 10:40:04 +0000 (UTC)
User-Agent: slrn/0.9.8.1 (Debian)