Es posible utilizar macros. La siguiente es una solución.
donde las macros se adjuntan a una nueva barra de herramientas definida por el usuario. los
Los elementos de la barra de herramientas se pueden utilizar para cambiar de forma incremental
Valores de rojo, verde y azul para el color de la fuente.
También sería posible escribir valores utilizando InputBox
en las macros en lugar de cambiar de forma incremental
valores.
Las instrucciones de instalación siguen. Es recomendable seguir
Estrictamente como la forma de definir / trabajar con macros en
OpenOffice no es muy intuitivo.
comienzo Impresionar . Crear una presentación vacía o abrir
alguna presentación existente
Copie el código al final de esta respuesta al portapapeles.
Cree una macro para aumentar el valor de Rojo en 20:
menú Herramientas / Macros / Organizar macros / OpenOffice.org Basic /.
Luego expanda a "Mis macros / Estándar /" para que se seleccione "Estándar".
Pulse el botón "Nuevo".
Haga clic derecho en la pestaña en la esquina inferior izquierda y seleccione "Cambiar nombre" y escriba "RedUp".
Haga clic en el área de edición (para establecer el foco allí),
seleccionar todo ( Ctrl + UNA ) y pegar en el código.
Cambiar la linea con changeValue(0, 0, 0)
a changeValue(20, 0, 0)
. Esta
Es para aumentar el valor de rojo en 20.
Haga clic derecho en la pestaña en la parte inferior izquierda y seleccione: Insertar / Módulo BÁSICO.
Repita el paso 3 cinco veces para que haya 6 módulos en total:
Module name changeValue line
----------------------------------------------
RedUp changeValue( 20, 0, 0)
RedDown changeValue( -20, 0, 0)
GreenUp changeValue( 0, 20, 0)
GreenDown changeValue( 0, -20, 0)
BlueUp changeValue( 0, 0, 20)
BlueDown changeValue( 0, 0, -20)
Crear nueva barra de herramientas: menú Herramientas / Personalizar / pestaña Barras de herramientas / presionar el botón Nuevo / & lt; denominarlo "Barra de herramientas de color" & gt; / OK
Entonces
Agregar / OpenOffice.org Macros / Mis macros / Estándar / RedUp / & lt; seleccione "Principal" & gt; / Agregar / Cerrar / Modificar / Cambiar nombre / Rojo arriba / Aceptar.
(Nota: si "Main" no está seleccionado, se producirá un error de script más tarde porque "changeValue" está seleccionado de forma predeterminada).
Repita para los 5 otros. Reorganizar el orden de los elementos en la barra de herramientas para que igual
El orden se mantiene como en la tabla de arriba.
Finalmente presione OK para cerrar el diálogo.
Ahora el color de fondo del texto seleccionado puede ser
¡Cambiado y el resultado se verá casi de inmediato! (la
la selección debe ser borrada ya que invierte el color.)
Si desea aplicar el color actual a algún otro texto
luego agregue un séptimo elemento a la barra de herramientas donde se encuentra la línea changeValue
es: changeValue(0, 0, 0)
. O bien, pulse una tecla arriba y una
Abajo para un color (que no es demasiado cercano a 0 o 255.)
El color actual también se recuerda en todo el programa.
Se reinicia cuando el valor RGB se almacena en un archivo de configuración. UNA
La ruta de muestra al archivo de configuración es:
C:\Documents and Settings\peterm\Application Data\OpenOffice.org\3\user\prefs\settings.ini
Si algo sale mal entonces settings.ini
solo puede ser
eliminado Será recreado la próxima vez que esta característica sea
usado.
Lo he probado con OpenOffice 3.2.0, en-GB, pero lo espero
Trabajar con OpenOffice 3.1.
El código (la línea con changeValue (0, 0, 0) necesita ser cambiado):
REM ***** OOoBasic. <http://en.wikipedia.org/wiki/StarOffice_Basic> *****
Global RedDecimal as Long
Global BlueDecimal as Long
Global GreenDecimal as Long
Sub Main
rem Default values if settings have not been stored yet.
RedDecimal = 210
GreenDecimal = 100
BlueDecimal = 40
changeValue(0, 0, 0)
End Sub
sub changeValue(aRedChange, aGreenChange, aBlueChange)
ReadSettings
RedDecimal = newChannelValue(RedDecimal, aRedChange)
GreenDecimal = newChannelValue(GreenDecimal, aGreenChange)
BlueDecimal = newChannelValue(BlueDecimal, aBlueChange)
WriteSettings
dim document as object
document = ThisComponent.CurrentController.Frame
dim dispatcher as object
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem Set font (foreground) colour. Note that lines for background colour
rem are outcommented - it does not work in Impress, but it does work
rem in Calc.
dim args3(0) as new com.sun.star.beans.PropertyValue
rem args3(0).Name = "BackgroundColor"
args3(0).Name = "Color"
args3(0).Value = RedDecimal * 256 * 256 + GreenDecimal * 256 + BlueDecimal
rem dispatcher.executeDispatch(document, ".uno:BackgroundColor", "", 0, args3())
dispatcher.executeDispatch(document, ".uno:Color", "", 0, args3())
End Sub
rem *************************************************************************
Function newChannelValue(aStartValue as Long, aChange as Long) as Long
Dim toReturn as Long
toReturn = aStartValue + aChange
If toReturn > 255 Then
toReturn = 255
End If
If toReturn < 0 Then
toReturn = 0
End If
newChannelValue = toReturn
End Function
rem *************************************************************************
Sub WriteSettings
SubstService = CreateUnoService("com.sun.star.util.PathSubstitution")
UserPath = SubstService.substituteVariables("$(user)", true)
PrefFile = UserPath + "/prefs/settings.ini"
f1 = FreeFile()
Open PrefFile for output as #f1
Print #f1, RedDecimal
Print #f1, GreenDecimal
Print #f1, BlueDecimal
Close #f1
End Sub
rem *************************************************************************
Sub ReadSettings
SubstService = CreateUnoService("com.sun.star.util.PathSubstitution")
UserPath = SubstService.substituteVariables("$(user)", true)
PrefFile = UserPath + "/prefs/settings.ini"
If FileExists(PrefFile) Then
f1 = FreeFile()
Open PrefFile for Input as #f1
dim redStr as String
dim greenStr as String
dim blueStr as String
Line Input #f1, redStr
Line Input #f1, greenStr
Line Input #f1, blueStr
Close #f1
RedDecimal = CInt(redStr)
GreenDecimal = CInt(greenStr)
BlueDecimal = CInt(blueStr)
Else
WriteSettings
End If
End Sub