Article View: es.comp.os.linux.programacion
Article #1905Re: [gtk] ¿Conocer ancho de la barra de scroll de una ScrolledWindow?
From: Pere Pujal i Carabantes
Date: Sun, 17 Jul 2005 10:36
Date: Sun, 17 Jul 2005 10:36
84 lines
5033 bytes
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-mailReferences:
<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)