diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/form/component/DatabaseImageControl.idl | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'offapi/com/sun/star/form/component/DatabaseImageControl.idl')
-rw-r--r-- | offapi/com/sun/star/form/component/DatabaseImageControl.idl | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/offapi/com/sun/star/form/component/DatabaseImageControl.idl b/offapi/com/sun/star/form/component/DatabaseImageControl.idl new file mode 100644 index 000000000..11c90358b --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseImageControl.idl @@ -0,0 +1,106 @@ +/* -*- 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_form_component_DatabaseImageControl_idl__ +#define __com_sun_star_form_component_DatabaseImageControl_idl__ + +#include <com/sun/star/awt/UnoControlImageControlModel.idl> + +#include <com/sun/star/form/DataAwareControlModel.idl> + +#include <com/sun/star/form/XImageProducerSupplier.idl> + + + + module com { module sun { module star { module form { module component { + + +/** specifies the model of a control used for displaying images stored in a database. + + <p>As every com::sun::star::form::DataAwareControlModel, an image control + can be bound to a database field. This means that for instance with every record change, the content + of the database field is taken, interpreted as image, and displayed in the control.<br> + Unlike other more text-based controls, it does not interpret the content of the field as text or double, + but as binary stream (see com::sun::star::sdb::XColumn::getBinaryStream()).</p> + + <p>Usually, an image control model can be bound to binary columns only, namely + com::sun::star::sdbc::DataType::BINARY, + com::sun::star::sdbc::DataType::VARBINARY, + com::sun::star::sdbc::DataType::LONGVARBINARY, + com::sun::star::sdbc::DataType::OTHER, + com::sun::star::sdbc::DataType::LONGVARCHAR</p> + + </p> + + <p>Note that besides taking the image to be displayed from the bound field, there is another option. The + com::sun::star::awt::UnoControlImageControlModel::ImageURL property specifies + the URL of an image to be displayed. If this property is changed from outside, the respective file + is loaded and set as image source.</p> + + <p>In a usual data form, the scenario will be as follows: + <ul><li>There is a DatabaseImageControl as part of the document model, which acts as + control model for a com::sun::star::form::control::ImageControl.</li> + + <li>The control is a com::sun::star::awt::XImageConsumer for the + com::sun::star::awt::XImageProducer supplied by the model.</li> + + <li>Whenever the form's cursor is positioned on a new record, the column the control + model is bound to is examined for a binary data stream. This stream is set as source + at the image producer, which notifies it's consumers, which leads to the control + displaying the image.</li> + + <li>When the user by some interaction tells the control to contain a new image, this is + exchanged by URL. For example, implementations of the control service may allow the user + to browse for image. After this, the URL of the image is set as + com::sun::star::awt::UnoControlImageControlModel::ImageURL + property at the model.<br> + Now the control loads the image determined by the property value, and starts producing + a new data stream, which is displayed by the control (which is a consumer for this stream).<br> + From now on, the control and thus the database record counts as modified. If the cursor of the + form is moved further, the modified record is saved, means the content of the image pointed to + by com::sun::star::awt::UnoControlImageControlModel::ImageURL + is saved into the column.</li> + </ul> + </p> + */ +published service DatabaseImageControl +{ + service com::sun::star::awt::UnoControlImageControlModel; + + service com::sun::star::form::DataAwareControlModel; + + /** supplies the caller with a com::sun::star::awt::XImageProducer. + + <p>Other components can register as com::sun::star::awt::XImageConsumer + at this producer. Then they will be notified of any change in the image to be displayed.</p> + */ + interface com::sun::star::form::XImageProducerSupplier; + + + /** indicates if it is possible to change the image being displayed. + */ + [property] boolean ReadOnly; + +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |