/* -*- 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 . */ module com { module sun { module star { module frame { /** special interface to support sub-toolbars in a controller implementation.

This interface is normally used to implement the toolbar button/sub- toolbar function feature. It exchanges the function of the toolbar button, that opened the sub-toolbar, with the one that has been selected on the sub-toolbar.

@see com::sun::star::frame::ToolbarController @since OOo 2.0 */ interface XSubToolbarController : com::sun::star::uno::XInterface { /** if the controller features a sub-toolbar. @return `TRUE` if the controller offers a sub toolbar, otherwise `FALSE`.

Enables implementations to dynamically decide to support sub-toolbars or not.

*/ boolean opensSubToolbar(); /** provides the resource URL of the sub-toolbar this controller opens. @return name of the sub-toolbar this controller offers. A empty string will be interpreted as if this controller offers no sub-toolbar. */ string getSubToolbarName(); /** gets called to notify a controller that a sub-toolbar function has been selected. @param aCommand a string which identifies the function that has been selected by a user. */ void functionSelected( [in] string aCommand ); /** gets called to notify a controller that it should set an image which represents the current selected function.

Only the controller instance is able to set the correct image for the current function. A toolbar implementation will ask sub-toolbar controllers to update their image whenever it has to update the images of all its buttons.

*/ void updateImage(); }; }; }; }; }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */