]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MLIB/Marco/ImagenAnimada.php
Se agrega a la clase MLIB_PDF_Tabla y MLIB_PDF_Tabla_Estilo la posibilidad de
[mecon/meconlib.git] / lib / MLIB / Marco / ImagenAnimada.php
1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
3                                     mlib
4 -------------------------------------------------------------------------------
5 This file is part of mlib.
6
7 mlib is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2 of the License, or (at your option)
10 any later version.
11
12 mlib is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
15  
16 You should have received a copy of the GNU General Public License; if not,
17 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
18 Boston, MA  02111-1307  USA
19 -------------------------------------------------------------------------------
20 Creado: Mon Apr 14 16:23:22 2003
21 Autor:  Martin Marrese <mmarre@mecon.gov.ar>
22 -------------------------------------------------------------------------------
23 $Id$
24 -----------------------------------------------------------------------------*/
25
26 require_once 'MLIB/HTML/Image.php';
27
28 define('MLIB_MARCO_IMAGENANIMADA_DIR_GENERAL', '/MLIB/images');
29
30 /**
31  * Clase para el manejo de la animacion de las imagenes. Utilizada 
32  * principalmente en la barra de secciones
33  *
34  * @access public
35  */
36 class MLIB_Marco_ImagenAnimada {
37     /**
38      * Nombre del archivo imagen.
39      *
40      * @var    string $imgComun
41      * @access private
42      */
43     var $_imgComun = '';
44
45     /**
46      * Nombre del archivo imagen.
47      *
48      * @var    string $imgMouseOn
49      * @access private
50      */
51     var $_imgMouseOn = '';
52
53     /**
54      * Nombre del archivo imagen.
55      *
56      * @var    string $imgSelect
57      * @access private
58      */
59     var $_imgSelect = '';
60
61     /**
62      * Indica si la imagen esta seleccionada.
63      *
64      * @var    bool $seleccionada
65      * @access protected
66      */
67     var $_seleccionada = false;
68
69     /**
70      * Indica si está habilitado el link.
71      *
72      * @var    bool $habilitada
73      * @access protected
74      */
75     var $_habilitada = true;
76
77     /**
78      * Link a donde apunta la imagen.
79      *
80      * @var    string $link
81      * @access protected
82      */
83     var $_link = '';
84
85     /**
86      * Nombre de la imagen
87      *
88      * @var    string $nombre
89      * @access protected
90      */
91     var $_nombre = '';
92
93     /**
94      * Gets Seleccionada.
95      *
96      * @return bool
97      * @access public
98      */
99     function getSeleccionada()
100     {
101         return $this->_seleccionada;
102     }
103     /**
104      * Sets Seleccionada.
105      *
106      * @param  bool $seleccionada Seleccionada.
107      *
108      * @return void
109      * @access public
110      */
111     function setSeleccionada($seleccionada)
112     {
113         $this->_seleccionada = $seleccionada;
114     }
115
116     /**
117      * Gets Habilitada.
118      *
119      * @return bool
120      * @access public
121      */
122     function getHabilitada()
123     {
124         return $this->_habilitada;
125     }
126     /**
127      * Sets Habilitada.
128      *
129      * @param  bool $habilitada Habilitada.
130      *
131      * @return void
132      * @access public
133      */
134     function setHabilitada($habilitada)
135     {
136         $this->_habilitada = $habilitada;
137     }
138
139     /**
140      * Gets Link.
141      *
142      * @return string
143      * @access public
144      */
145     function getLink()
146     {
147         return $this->_link;
148     }
149     
150     /**
151      * Sets Link.
152      *
153      * @param  string $link Link.
154      *
155      * @return void
156      * @access public
157      */
158     function setLink($link)
159     {
160         $this->_link = $link;
161     }
162
163     /**
164      * Gets Nombre.
165      *
166      * @return string
167      * @access public
168      */
169     function getNombre()
170     {
171         return $this->_nombre;
172     }
173
174     /**
175      * Sets Nombre.
176      *
177      * @param  string $nombre Nombre.
178      *
179      * @return void
180      * @access public
181      */
182     function setNombre($nombre)
183     {
184         $this->_nombre = $nombre;
185     }
186
187     /**
188      * Texto alternativo.
189      */
190     var $_alt = '';
191
192     /**
193      * Constructor. 
194      * Recibe como parametro el nombre del archivo que contiene la imagen.
195      *
196      * @param  string $imagenComun Nombre del archivo imagen.
197      * @param  string $imagenMouseOn Imagen alterna con el mouse por arriba
198      * @param  string $imagenSelect Imagen alterna cuando esta seleccionada la seccion
199      * @param  string $directorio Directorio en donde se encuentran las imagenes
200      * @param  string $nombre Nombre de la imagen animada.
201      * @param  string $link Link.
202      * @param  string $alt  Texto alternativo para la imagen.
203      *
204      * @return void
205      * @access public
206      */
207     function MLIB_Marco_ImagenAnimada($imagenComun, $imagenMouseOn = '', 
208             $imagenSelect = '', $directorio = '', $nombre = '', $link = '', 
209             $alt = '') 
210     {
211         if ($imagenComun !== '') {
212             $this->_imgComun = $this->_calcularImagen($imagenComun, $directorio);
213             if ($imagenMouseOn !== '') {
214                 $this->_imgMouseOn = $this->_calcularImagen($imagenMouseOn, $directorio);
215             }
216             else {
217                 $this->_imgMouseOn = $this->_calcularImagen($imagenComun, $directorio, '_f2');
218             }
219             if ($imagenSelect !== '') {
220                 $this->_imgSelect = $this->_calcularImagen($imagenSelect, $directorio);
221             }
222             else {
223                 $this->_imgSelect = $this->_calcularImagen($imagenComun, $directorio, '_f3');
224             }
225         }
226         $this->_nombre = $nombre;
227         $this->_link   = $link;
228         $this->_alt    = $alt ? $alt : $nombre;
229     }
230
231     /**
232      * Funcion que devuelve un string con el html a imprimir en pantalla.
233      *
234      * @return string
235      * @access public
236      */
237     function toHtml() 
238     {
239         $src  = $this->getSeleccionada() ? $this->_imgSelect : $this->_imgComun;
240         $img  = new MLIB_HTML_Image($src, $this->_alt, array('name' => $this->_nombre, 'border' => 0));
241         $html = $img->toHtml();
242         if ($this->getHabilitada()) {
243             if ($this->getSeleccionada()) {
244                 $prepend = '<a href="'.$this->getLink().'">';
245             } else {
246                 $prepend = '<a href="'.$this->getLink().'" onMouseOut="MM_swapImgRestore()"
247                     onMouseOver="MM_displayStatusMsg(\''.$this->_nombre.'\');
248                     MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imgMouseOn.'\',1);
249                     return document.MM_returnValue"
250                     MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imgMouseOn.'\',1)>';
251             }
252             $html = $prepend . $html . '</a>';
253         }
254         return $html;
255     }
256
257     /**
258      * @param  string $imagen Nombre de la imagen.
259      * @param  string $directorio Directorio.
260      * @param  string $modificador Modificador que indica una variante de la imagen.
261      *
262      * @return string
263      * @access protected
264      */
265     function _calcularImagen($imagen, $directorio, $modificador = '') 
266     {
267         if ($modificador !== '') {
268             $pos = strrpos($imagen, '.');
269             $ext = substr($imagen, $pos);
270             $nom = substr($imagen, 0, $pos);
271             $imagen = "$nom$modificador$ext";
272         }
273         if (is_readable("{$_SERVER['DOCUMENT_ROOT']}$directorio/$imagen")) {
274             return "$directorio/$imagen";
275         }
276         else {
277             return MLIB_MARCO_IMAGENANIMADA_DIR_GENERAL . "/$imagen";
278         }
279     }
280 }
281
282 ?>