SplitView
Cabecera
#include <gui/splitview.h>
Funciones
SplitView* | splitview_horizontal (void) |
SplitView* | splitview_vertical (void) |
void | splitview_view (...) |
void | splitview_textview (...) |
void | splitview_webview (...) |
void | splitview_tableview (...) |
void | splitview_splitview (...) |
void | splitview_panel (...) |
void | splitview_pos (...) |
real32_t | splitview_get_pos (...) |
void | splitview_visible0 (...) |
void | splitview_visible1 (...) |
void | splitview_minsize0 (...) |
void | splitview_minsize1 (...) |
Las SplitView
son vistas divididas en dos partes, donde en cada una de ellas emplazamos otra vista o un panel. La línea divisoria es desplazable, lo que permite redimensionar ambas mitades, repartiendo el tamaño total del control entre ambos descendientes. En ¡Hola SplitView! tienes un ejemplo de uso (Listado 1), (Figura 1).
- Utiliza splitview_horizontal para crear una vista arriba/abajo.
- Utiliza splitview_vertical para crear una vista izquierda/derecha.
1 2 3 4 5 6 7 8 9 10 11 |
SplitView *split1 = splitview_vertical(); SplitView *split2 = splitview_horizontal(); Panel *panel = i_left_panel(); View *view = view_create(); TextView *text = textview_create(); view_size(view, s2df(400, 200)); textview_size(text, s2df(400, 200)); splitview_panel(split1, panel); splitview_view(split2, view, FALSE); splitview_textview(split2, text, FALSE); splitview_splitview(split1, split2); |

1. Añadir controles
Tenemos varias funciones para añadir contenido al SplitView
. La primera llamada emplazará la vista o panel en la lado izquierdo o superior. La segunda llamada lo hará en el lado derecho o inferior. Sucesivas llamadas generarán un error, ya que cada vista soporta un máximo de dos descendientes.
- Utiliza splitview_view para añadir una vista.
- Utiliza splitview_textview para añadir una vista de texto.
- Utiliza splitview_webview para añadir una vista web.
- Utiliza splitview_tableview para añadir una tabla.
- Utiliza splitview_splitview para añadir un SplitView anidado (Figura 2).
- Utiliza splitview_panel para añadir un panel.

2. Posicionando el divisor
- Utiliza splitview_pos para establecer la posición del divisor.
- Utiliza splitview_get_pos para obtener la posición del divisor.
La posición inicial del divisor, así como el tamaño del SplitView
se calculará en función del Dimensionado natural de los controles hijo (Figura 3).

El divisor tendrá diferentes comportamientos cuando el SplitView
cambie de tamaño, en función del parámetro split_mode_t de splitview_pos:
- ekSPLIT_NORMAL: La posición del divisor siempre se mantendrá constante con respecto al tamaño del
SplitView
. Es decir, un valor 0.3 significa que la vista izquierda siempre ocupará 1/3 del tamaño total y la derecha 2/3. Para ello indicar un valor entre 0 y 1 en el parámetropos
. - ekSPLIT_FIXED0: Los cambios de tamaño del
SplitView
siempre dejarán al hijo izquierdo/superior con un tamaño constante. - ekSPLIT_FIXED1: El hijo derecho/inferior mantendrá su tamaño.
La proporción o el valor fijo del divisor cambiarán si el usuario lo arrastra con el ratón, pero no lo hará el modo de funcionamiento.
3. Tamaño mínimo del divisor
- Utiliza splitview_minsize0 para establecer el tamaño mínimo del hijo izquierdo/superior.
- Utiliza splitview_visible0 para ocultar completamente el hijo izquierdo/superior.
Es posible que los controles hijos impongan restricciones de tamaño mínimo que impidan desplazar el divisor más allá de estos límites. No obstante, es posible establecer mínimos desde el propio SplitView
. También es posible ocultar completamente uno de los descendientes. En este caso la barra divisora desaparecerá, utilizando todo el espacio del SplitView
para el descendiente visible.
splitview_horizontal ()
Crea un SplitView con división horizontal.
SplitView* splitview_horizontal(void);
Retorna
La nueva vista.
splitview_vertical ()
Crea un SplitView con división vertical.
SplitView* splitview_vertical(void);
Retorna
La nueva vista.
splitview_view ()
Añade una vista al SplitView.
void splitview_view(SplitView *split, View *view, const bool_t tabstop);
split | El SplitView. |
view | La vista. |
tabstop |
|
Observaciones
Ver Añadir controles.
splitview_textview ()
Añade una vista de texto al SplitView.
void splitview_textview(SplitView *split, TextView *view, const bool_t tabstop);
split | El SplitView. |
view | La vista de texto. |
tabstop |
|
Observaciones
Ver Añadir controles.
splitview_webview ()
Añade una vista web al SplitView.
void splitview_webview(SplitView *split, WebView *view, const bool_t tabstop);
split | El SplitView. |
view | La vista Web. |
tabstop |
|
Observaciones
Ver Añadir controles.
splitview_tableview ()
Añade una vista de tabla al SplitView.
void splitview_tableview(SplitView *split, TableView *view, const bool_t tabstop);
split | El SplitView. |
view | La vista tabla. |
tabstop |
|
Observaciones
Ver Añadir controles.
splitview_splitview ()
Añade un SplitView (hijo) al SplitView.
void splitview_splitview(SplitView *split, SplitView *view);
split | El SplitView. |
view | El SplitView descendiente. |
Observaciones
Ver Añadir controles.
splitview_panel ()
Añade un panel al SplitView.
void splitview_panel(SplitView *split, Panel *panel);
split | El SplitView. |
panel | El panel. |
Observaciones
Ver Añadir controles.
splitview_pos ()
Establece la posición y modo del divisor.
void splitview_pos(SplitView *split, const split_mode_t mode, const real32_t pos);
split | El SplitView. |
mode | El modo de comportamiento. |
pos | La nueva posición del divisor. |
Observaciones
splitview_get_pos ()
Obtiene la posición actual del divisor.
real32_t splitview_get_pos(const SplitView *split, const split_mode_t mode);
split | El SplitView. |
mode | La unidad en la que queremos el resultado. |
Retorna
La posición del divisor.
Observaciones
splitview_visible0 ()
Muestra/oculta el descendiente izquierdo/superior.
void splitview_visible0(SplitView *split, const bool_t visible);
split | El SplitView. |
visible | Mostrar u ocultar. |
Observaciones
Ver Tamaño mínimo del divisor.
splitview_visible1 ()
Muestra/oculta el descendiente derecho/inferior.
void splitview_visible1(SplitView *split, const bool_t visible);
split | El SplitView. |
visible | Mostrar u ocultar. |
Observaciones
Ver Tamaño mínimo del divisor.
splitview_minsize0 ()
Establece el tamaño mínimo del descendiente izquierdo/superior.
void splitview_minsize0(SplitView *split, const real32_t size);
split | El SplitView. |
size | El tamaño mínimo. |
Observaciones
Ver Tamaño mínimo del divisor.
splitview_minsize1 ()
Establece el tamaño mínimo del descendiente derecho/inferior.
void splitview_minsize1(SplitView *split, const real32_t size);
split | El SplitView. |
size | El tamaño mínimo. |
Observaciones
Ver Tamaño mínimo del divisor.