Como acessar rapidamente a edição de cores no OpenOffice 3.1?

3

Existe alguma maneira de editar rapidamente uma cor no OpenOffice?

Eu sei que as cores podem ser alteradas em Tools -> Colors -> OpenOffice.org -> Colors , mas eu gostaria de mudar as cores de uma forma mais instantânea. Eu estou tentando criar uma apresentação no Impress e muitas vezes preciso testar rapidamente algumas cores não-padrão (para ajustar a cor da fonte em comparação com o plano de fundo). Neste momento eu preciso ir para o diálogo acima mencionado, alterar os valores RGB, clicar em "Alterar", clicar em OK e manualmente selecionar novamente essa cor na caixa de diálogo Cor da fonte. A cor não é atualizada automaticamente após confirmar as alterações.

Alguém sabe como alterar cores (cores de fontes, cores de plano de fundo) rapidamente e / ou para aplicar instantaneamente a mudança de uma determinada cor de paleta?

    
por Neo 15.02.2010 / 18:57

1 resposta

1

É possível usar macros. O seguinte é uma solução onde macros são anexadas a uma nova barra de ferramentas definida pelo usuário. o itens na barra de ferramentas podem ser usados para alterar valores de vermelho, verde e azul para a cor da fonte.

Também seria possível digitar valores usando InputBox nas macros, em vez de alterar incrementalmente o valores.

Siga as instruções de instalação. É aconselhável seguir eles estritamente como a maneira de definir / trabalhar com macros em O OpenOffice não é muito intuitivo.

  1. Inicie o Impress . Crie uma apresentação vazia ou abra alguma apresentação existente.

  2. Copie o código no final desta resposta para a área de transferência. Crie uma macro para aumentar o valor de Red por 20: menu Ferramentas / Macros / Organizar macros / OpenOffice.org Basic /. Em seguida, expanda para "Minhas Macros / Padrão /" para que "Padrão" seja selecionado. Pressione o botão "Novo".

  3. Clique com o botão direito do mouse na aba no canto inferior esquerdo, selecione "Renomear" e digite "RedUp". Clique na área de edição (para definir o foco lá), selecione all ( Ctrl + A ) e cole no código. Altere a linha com changeValue(0, 0, 0) para changeValue(20, 0, 0) . este é para aumentar o valor de Red em 20.

    Clique com o botão direito na aba no canto inferior esquerdo e selecione: Insert / BASIC Module.

  4. Repita o passo 3 cinco vezes para que haja 6 módulos ao todo:

    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. Criar nova barra de ferramentas: menu Ferramentas / Personalizar / guia Barras de ferramentas / pressionar o botão Novo / < nome da "Barra de ferramentas de cores" > / OK

  6. Então Adicionar / OpenOffice.org Macros / Minhas Macros / Padrão / RedUp / < selecione "Principal" > / Adicionar / Fechar / Modificar / Renomear / Vermelho Acima / OK. (Nota: se "Principal" não estiver selecionado, um erro de script acontecerá mais tarde, porque "changeValue" é selecionado por padrão.)

  7. Repita para os outros 5. Reorganize a ordem dos itens na barra de ferramentas para que o mesmo a ordem é mantida como na tabela acima.

  8. Por fim, pressione OK para fechar a caixa de diálogo.

Agora, a cor de primeiro plano do texto selecionado pode ser mudou e o resultado foi visto quase que imediatamente! a seleção deve ser apagada, pois inverte a cor.)

Se você deseja aplicar a cor atual a outro texto em seguida, adicione um item 7 à barra de ferramentas onde a linha changeValue é: changeValue(0, 0, 0) . Ou alternativamente pressione um Up e um Abaixo uma cor (que não está muito perto de 0 ou 255).

A cor atual também é lembrada em todo o programa reinicia como o valor RGB é armazenado em um arquivo de configurações. UMA caminho de amostra para o arquivo de configurações é:

C:\Documents and Settings\peterm\Application Data\OpenOffice.org\user\prefs\settings.ini

Se algo der errado, então settings.ini pode ser excluído. Será recriado na próxima vez que esse recurso for usado.

Eu testei com o OpenOffice 3.2.0, en-GB, mas espero para trabalhar com o OpenOffice 3.1.

O código (a linha com changeValue (0, 0, 0) precisa ser alterada):

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
    
por 28.02.2010 / 22:19