[RESUELTO] Macro para mostrar una barra de herramientas
[RESUELTO] Macro para mostrar una barra de herramientas
Hola.
Estoy preparando LibreOffice para la escuela y quiero mostrar determinadas barras de herramientas con los botones más adecuados a cada franja de edad.
Gracias a vosotros he conseguido un botón para que muestre el text escrito por los chavales en "letra de palo" (arial+mayúsculas) y letra ligada (font Abecedario).
Ahora quiero que el usuario alumno pueda seleccionar mediante una barra con cinco botones (educación infantil/ciclo inicial/ciclo medio/ciclo superio/maestros), las barras de herramientas que visualizará. Por ejemplo: una niña de 5 años tendrá en la barra los botones de crear documento nuevo, abrir, guardar, imprimir, letra de palo y letra ligada, insertar una imagen y salir. en cambio, un maestro visualizará las barras estándard y de formato.
Tengo una macro que oculta todas las barras de herramientas, excepto el menú principal (fichero, edita, visualiza...). A continuación pensaba visualizar las barras oportunas mediante una macro de combinación de teclas. Pero, al contrario que con lo de aplicar un estilo a un párrafo -de letra de palo o de letra ligada-, esta vez no me deja guardar la macro en el mòdulo. Es decir: puedo guardar ciertas secuencias de teclas, pero no Visualizar/Barras de herramientas y la barra que preciso.
No es posible una tal combinación de teclas? Hay alguna otra manera de mostrar la barra de herramientas, por ejemplo, mediante alguna función?
Muchas gracias por la atención
Joan
Estoy preparando LibreOffice para la escuela y quiero mostrar determinadas barras de herramientas con los botones más adecuados a cada franja de edad.
Gracias a vosotros he conseguido un botón para que muestre el text escrito por los chavales en "letra de palo" (arial+mayúsculas) y letra ligada (font Abecedario).
Ahora quiero que el usuario alumno pueda seleccionar mediante una barra con cinco botones (educación infantil/ciclo inicial/ciclo medio/ciclo superio/maestros), las barras de herramientas que visualizará. Por ejemplo: una niña de 5 años tendrá en la barra los botones de crear documento nuevo, abrir, guardar, imprimir, letra de palo y letra ligada, insertar una imagen y salir. en cambio, un maestro visualizará las barras estándard y de formato.
Tengo una macro que oculta todas las barras de herramientas, excepto el menú principal (fichero, edita, visualiza...). A continuación pensaba visualizar las barras oportunas mediante una macro de combinación de teclas. Pero, al contrario que con lo de aplicar un estilo a un párrafo -de letra de palo o de letra ligada-, esta vez no me deja guardar la macro en el mòdulo. Es decir: puedo guardar ciertas secuencias de teclas, pero no Visualizar/Barras de herramientas y la barra que preciso.
No es posible una tal combinación de teclas? Hay alguna otra manera de mostrar la barra de herramientas, por ejemplo, mediante alguna función?
Muchas gracias por la atención
Joan
Última edición por JoanC el Dom Feb 09, 2014 1:38 pm, editado 1 vez en total.
LibreOffice 4.2.
xubuntu
xubuntu
Re: Macro para mostrar una barra de herramientas
Hola JoanC.....
Me parece que la consulta no es clara.
¿Deseas por ejemplo ocultar o mostrar una barra de herramientas?, por ejemplo: tal vez mostrar u ocultar la barra de herramientas "Standard".
¿algo como esto?
Saludos, Federico.
Me parece que la consulta no es clara.
¿Deseas por ejemplo ocultar o mostrar una barra de herramientas?, por ejemplo: tal vez mostrar u ocultar la barra de herramientas "Standard".
¿algo como esto?
Saludos, Federico.
- Adjuntos
-
- Mostrar_Ocultar.odt
- Mostrar/Ocultar barra
- (11.06 KiB) Descargado 410 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Macro para mostrar una barra de herramientas
Hola, FORNELASA.
Tienes razón: no se entiende mucho lo que pretendo. Voy a ir poco a poco y especificando tanto como pueda.
A grandes rasgos pretendo un entorno (entiéndase barras con iconos) para 4 niveles educativos diferentes y los maestros:
Los de Ciclo Inicial añadirían en su barra los iconos de Página completa/Anchura de página y los de formato: estilo de título/color de letra/añadir una imagen...
Así con todos los ciclos, hasta llegar a los maestros que utilizarían las barras de herramients Estándard y Formato.
Mi idea es que, al empezar, aparezca el menú de niveles educativos (usuarios: Infantil/Inicial/Medio/Superior).
El alumno pulsaría el botón correspondiente y aparecerían las barras de herramientas correspondientes.
Por lo tanto, mi pregunta se centra aquí: esconder las barras de herramientas que no procedan y mostrar las pertinentes, de manera automatizada.
Pongo una imagen de cómo se veria el menú principal (siempre visible, para poder cambiar a cualquier nivel), el menú para Educación infantil, una barra de visualización y un texto donde se aprecia la letra de palo -línea superior- y la letra ligada -línea inferior-.
Para mostrar una barra de herramientas, usando una macro, me he topado con un problema. Inicialmente pensé en lo siguiente:
Luego me he dado cuenta de que cuando aparecen según qué elementos de la barra de menú, no guarda la macro. Quizás cuando en el menú hay más opciones...
Por ello no puedo realizar mi idea inicial: un menú de botones que, al ser pulsados, presentasen las barras de cada nivel, y ocultasen las anteriores.
Esta tarde estaba pensando si sería posible arrancar el LibreOffice cargando una plantilla en la que estuvieran directamente las barras de un solo nivel educativo. Ya crearía un lanzador para cada uno...
Espero no haber confundido más todavía...
Tienes razón: no se entiende mucho lo que pretendo. Voy a ir poco a poco y especificando tanto como pueda.
A grandes rasgos pretendo un entorno (entiéndase barras con iconos) para 4 niveles educativos diferentes y los maestros:
- Educación Infantil
- Ciclo Inicial
- Ciclo Medio
- Ciclo Superior.
- Maestros
Los de Ciclo Inicial añadirían en su barra los iconos de Página completa/Anchura de página y los de formato: estilo de título/color de letra/añadir una imagen...
Así con todos los ciclos, hasta llegar a los maestros que utilizarían las barras de herramients Estándard y Formato.
Mi idea es que, al empezar, aparezca el menú de niveles educativos (usuarios: Infantil/Inicial/Medio/Superior).
El alumno pulsaría el botón correspondiente y aparecerían las barras de herramientas correspondientes.
Por lo tanto, mi pregunta se centra aquí: esconder las barras de herramientas que no procedan y mostrar las pertinentes, de manera automatizada.
Pongo una imagen de cómo se veria el menú principal (siempre visible, para poder cambiar a cualquier nivel), el menú para Educación infantil, una barra de visualización y un texto donde se aprecia la letra de palo -línea superior- y la letra ligada -línea inferior-.
Para mostrar una barra de herramientas, usando una macro, me he topado con un problema. Inicialmente pensé en lo siguiente:
- Alt-V (menú Ver)
- B (Barras de herramientas)
- 1 (1.- Educación Infantil, que es el nombre de la barra de herramientas que tengo. El 1 aparece subrayado en mi lista de barras de herramientas).
Luego me he dado cuenta de que cuando aparecen según qué elementos de la barra de menú, no guarda la macro. Quizás cuando en el menú hay más opciones...
Por ello no puedo realizar mi idea inicial: un menú de botones que, al ser pulsados, presentasen las barras de cada nivel, y ocultasen las anteriores.
Esta tarde estaba pensando si sería posible arrancar el LibreOffice cargando una plantilla en la que estuvieran directamente las barras de un solo nivel educativo. Ya crearía un lanzador para cada uno...
Espero no haber confundido más todavía...
LibreOffice 4.2.
xubuntu
xubuntu
Re: Macro para mostrar una barra de herramientas
Bien, parece que ahí vamos.
Mas preguntas:
1) ¿Viste el archivo que envié en mi post previo?
2) ¿Tus barras de herramientas son "barras personalizadas"?
3) ¿O son las barras propias del programa (como por ejemplo la barra "Formateo") a las cuales les quitaste o agregaste iconos?
Saludos, Federico.
Mas preguntas:
1) ¿Viste el archivo que envié en mi post previo?
2) ¿Tus barras de herramientas son "barras personalizadas"?
3) ¿O son las barras propias del programa (como por ejemplo la barra "Formateo") a las cuales les quitaste o agregaste iconos?
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Macro para mostrar una barra de herramientas
Caramba, FORNELASA, tienes razón: ¡leí precipitadamente!
Cuando escribiste: "¿algo como esto?" pensé que te referías a lo que habías escrito en la línea anterior (¿Deseas por ejemplo ocultar o mostrar...). ¡Y ahora me doy cuenta de que habías enviado un archivo!
He abierto el archivo y eso es lo que quiero: mostrar/esconder las barras de herramientas.
Veo tu macro y lo simple que es. ¡Bravo! Como tu sugieres, al preguntar si son barras del programa, ¿puedo saber el nombre de mis barras de herramientas? ¡Qué emoción! Si es así, ya le veo casi la solución a mi problema...
Joan
Cuando escribiste: "¿algo como esto?" pensé que te referías a lo que habías escrito en la línea anterior (¿Deseas por ejemplo ocultar o mostrar...). ¡Y ahora me doy cuenta de que habías enviado un archivo!
He abierto el archivo y eso es lo que quiero: mostrar/esconder las barras de herramientas.
Veo tu macro y lo simple que es. ¡Bravo! Como tu sugieres, al preguntar si son barras del programa, ¿puedo saber el nombre de mis barras de herramientas? ¡Qué emoción! Si es así, ya le veo casi la solución a mi problema...
Joan
LibreOffice 4.2.
xubuntu
xubuntu
Re: Macro para mostrar una barra de herramientas
sí podemos saberlo.
ahorita no estoy en el foro, escribo desde el móvil pero en cuando pueda escribo la macro para obtener los nombres de las barras de herramientas.
saludos.
ahorita no estoy en el foro, escribo desde el móvil pero en cuando pueda escribo la macro para obtener los nombres de las barras de herramientas.
saludos.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Macro para mostrar una barra de herramientas
Si creamos una barra de herramientas nueva personalizada y le asignamos por ejemplo el nombre "mibarra", por alguna razón que desconozco "internamente" Writer le asigna un sinonimo similar a "custom_toolbar_2137", nos toca entonces detectar que "custom_toolbar_XXXX" pertenece a "mibarra".
Esta macro muestra en una hoja de Writer todos los nombres de barra existentes.
Saludos, Federico.
Esta macro muestra en una hoja de Writer todos los nombres de barra existentes.
Código: Seleccionar todo
Sub ObtenerNombres
Dim oCursor As Object
Set oCursor = ThisComponent.Text.CreateTextCursor()
Dim oProv As Object
Set oProv = createUnoService("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
Dim oMat As Object
Set oMat = oProv.getUIConfigurationManager("com.sun.star.text.TextDocument" )
Dim oArray()
oArray = oMat.getUIElementsInfo(3)
Dim n As Integer
For n = LBound(oArray) To UBound(oArray)
Dim Items()
Items = oArray(n)
Dim m As Integer
For m = LBound(Items) To UBound(Items)
ThisComponent.Text.InsertString oCursor, Items(m).Name & ": " & Items(m).Value, False
ThisComponent.Text.InsertControlCharacter oCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False
Next
Next
End Sublo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Macro para mostrar una barra de herramientas
Muchas gracias, Federico.
Tus respuestas lo han logrado. Cuando escribiste que se podia mostrar, y mientras esperaba -¡qué nervios!-, busqué alguna manera de poder saber cómo se identificaban las barras de menú. Encontré un script, aquí, en donde contaba la forma un tanto aleatoria de identificar a los elementos.
Entonces me puse a "esconder" mis barras y a mostrarme el orden (creo) de disposición en la zona de barras, y la URL del recurso (barra en este caso).
Con ello comprendí que el orden de disposición (la letra i del código), podia variar a cada aparición, pero no el RESOURCEURL. Ese número era el que me servía para identificar mi barra, entre sesión y sesión. Es lo que en tu correo escribes como: private:resource/toolbar/custom_toolbar_68e465d3, donde el último número es el que LibreOffice asigna "aleatoriamente", pero que luego mantiene siempre.
Ahora mismo he terminado con el trabajo y tiene un aspecto muy cercano a lo que pretendía.
Por lo tanto te quiero mostrar mi más profundo agradecimiento, Federico
, por la rapidez de tus correos, por lo acertado de tus respuestas y por haberme ayudado en un resultado que va a repercutir en muchos alumnos (en mi escuela asisten 372) y quizas en alumnos de otras escuelas, si se sienten interesados en mi distribución Linux.
Ahora pienso que si alguien se plantea un problema parecido al mío, voy a dejar un ejemplo de cómo hago desaparecer las barras que no me interesan y cómo hago aparecer las que quiero:
Reitero mi agradecimiento, Federico
Joan
Tus respuestas lo han logrado. Cuando escribiste que se podia mostrar, y mientras esperaba -¡qué nervios!-, busqué alguna manera de poder saber cómo se identificaban las barras de menú. Encontré un script, aquí, en donde contaba la forma un tanto aleatoria de identificar a los elementos.
Entonces me puse a "esconder" mis barras y a mostrarme el orden (creo) de disposición en la zona de barras, y la URL del recurso (barra en este caso).
Código: Seleccionar todo
Sub Esconde_menus()
Dim doc As Object
Dim frame As Object
Dim lmgr As Object
Dim LayoutElements
Dim i As Integer
doc = ThisComponent
frame = doc.CurrentController.Frame
lmgr = frame.LayoutManager
LayoutElements = lmgr.getElements
for i = 0 to UBound(LayoutElements, 1)-1
lmgr.hideElement(LayoutElements(i).ResourceURL)
print i
print LayoutElements(i).ResourceURL
next i
End Sub
Ahora mismo he terminado con el trabajo y tiene un aspecto muy cercano a lo que pretendía.
Por lo tanto te quiero mostrar mi más profundo agradecimiento, Federico
Ahora pienso que si alguien se plantea un problema parecido al mío, voy a dejar un ejemplo de cómo hago desaparecer las barras que no me interesan y cómo hago aparecer las que quiero:
Código: Seleccionar todo
REM Mostrar menú d'infantil
Sub Barras_Infantil()
Dim doc As Object
Dim frame As Object
Dim lmgr As Object
Dim LayoutElements
doc = ThisComponent
frame = doc.CurrentController.Frame
lmgr = frame.LayoutManager
LayoutElements = lmgr.getElements
REM Esconde las barras que no necesito ver
REM La Estándard de Maestros
lmgr.hideElement("private:resource/toolbar/custom_toolbar_23eaad1b")
REM La de Formato de Maestros
lmgr.hideElement("private:resource/toolbar/custom_toolbar_69d22a22")
REM La de Navegación de Maestros
lmgr.hideElement("private:resource/toolbar/custom_toolbar_5b6cc745")
REM La de Ciclo Inicial
lmgr.hideElement("private:resource/toolbar/custom_toolbar_281d5bac")
REM La de Ciclo Medio
lmgr.hideElement("private:resource/toolbar/custom_toolbar_37cdefa6")
REM La de Ciclo Superior
lmgr.hideElement("private:resource/toolbar/custom_toolbar_33ecfa0f")
REM La de Formato de Ciclo Superior
lmgr.hideElement("private:resource/toolbar/custom_toolbar_573265b6")
REM Muestra la barra de Educación Infantil
lmgr.showElement("private:resource/toolbar/custom_toolbar_68e465d3")
End Sub
Joan
LibreOffice 4.2.
xubuntu
xubuntu
Re: [RESUELTO] Macro para mostrar una barra de herramientas
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: [RESUELTO] Macro para mostrar una barra de herramientas
Gracias por compartir la solución

+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas