/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#ifndef __com_sun_star_document_MacroExecMode_idl__
#define __com_sun_star_document_MacroExecMode_idl__


module com { module sun { module star { module document {

/** Specify whether a macro can be executed.

    @since OOo 1.1.2
*/
published constants MacroExecMode
{
    /** A macro should not be executed at all.
    */

    const short NEVER_EXECUTE = 0;

    /** Execute macros from secure list quietly.

        <p>
        If a macro is not in the list a confirmation for it executing will
        appear.
        </p>
    */

    const short FROM_LIST = 1;

    /** Execute any macro, macros signed with trusted certificates and macros
        from secure list are executed quietly.

        <p>
            If the macro is neither in secure list nor signed a conformation
            will be requested.
        </p>
    */

    const short ALWAYS_EXECUTE = 2;

    /** Use configuration to retrieve macro settings. In case a user
        confirmation is required a dialog is output.
    */

    const short USE_CONFIG = 3;


    /** A macro should be executed always no conformation should be provided.
    */

    const short ALWAYS_EXECUTE_NO_WARN = 4;

    /** Use configuration to retrieve macro settings. Treat cases when user
        confirmation required as rejected.
    */

    const short USE_CONFIG_REJECT_CONFIRMATION = 5;

    /** Use configuration to retrieve macro settings. Treat cases when user
        confirmation required as approved.
    */

    const short USE_CONFIG_APPROVE_CONFIRMATION = 6;

    /** Execute only macros from secure list. Macros that are not from the list
        are not executed.
    */
    const short FROM_LIST_NO_WARN = 7;

    /** Execute only macros from secure list or macros that are signed by
        trusted certificates.

        <p> If the macro is neither in secure list nor signed it will not be
            executed.
        </p>

        <p> If the macro is signed with unknown certificate a warning will
            appear. The macro either will not be executed or if the warning
            allows conformation, it will be executed after user agrees.
        </p>
    */
    const short FROM_LIST_AND_SIGNED_WARN = 8;

    /** Execute only macros from secure list or macros that are signed by
        trusted certificates. No warning/conformation should be shown.
    */
    const short FROM_LIST_AND_SIGNED_NO_WARN = 9;

};


}; }; }; };

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
