¿Cómo acceder rápidamente a la edición de color en OpenOffice 3.1?

3

¿Hay alguna manera de editar rápidamente un color en OpenOffice?

Sé que los colores se pueden cambiar en Tools -> Colors -> OpenOffice.org -> Colors, pero me gustaría cambiar los colores de una manera más instantánea. Estoy tratando de crear una presentación en Impress y a menudo necesito probar rápidamente algunos colores no estándar (para ajustar el color de la fuente en comparación con el fondo). En este momento debo ir al cuadro de diálogo mencionado anteriormente, modificar los valores RGB, hacer clic en "Cambiar", hacer clic en Aceptar y manualmente volver a seleccionar ese color del cuadro de diálogo Color de fuente. El color no se actualiza automáticamente después de confirmar los cambios.

¿Alguien sabe cómo cambiar los colores (colores de fuente, colores de fondo) sobre la marcha y / o hacer que el cambio de un color de paleta en particular se aplique instantáneamente?

Neo
fuente
Primero, puede querer seguir adelante y actualizarse a OO 3.2 (si es posible) en caso de que las cosas hayan cambiado.
Brian Knoblauch
@Neo: He actualizado la respuesta. En el paso 5 faltaba algo debido a un error de formato.
Peter Mortensen

Respuestas:

1

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.

  1. comienzo Impresionar . Crear una presentación vacía o abrir alguna presentación existente

  2. 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".

  3. 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.

  4. 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)
    
  5. 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

  6. 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).

  7. 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.

  8. 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
Peter Mortensen
fuente