474414919c
This change implements internal infrastructure to pass zoom gestures from low-level sources to the consuming GUI widgets. The API follows the established begin-update-update-...-end event convention that is used on various platforms. The API should be enough to support bouth touchpad and touchscreen gestures, as long as the underlying low-level source exposes enough information. The hardware drivers usually expose touchpad gestures already recognized whereas touchscreen gestures come as a set of moving touchpoints and application needs to figure out their meaning itself. Many toolkits recognize both and offer a unified higher-level interface that can be used by us. Change-Id: I529afcc60459455616de0145fe20077a4dcf3983 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138787 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
/* -*- 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/.
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <vcl/dllapi.h>
|
|
|
|
enum class GestureEventZoomType
|
|
{
|
|
Begin,
|
|
Update,
|
|
End
|
|
};
|
|
|
|
class VCL_DLLPUBLIC GestureEventZoom
|
|
{
|
|
public:
|
|
sal_Int32 mnX = 0;
|
|
sal_Int32 mnY = 0;
|
|
|
|
GestureEventZoomType meEventType = GestureEventZoomType::Begin;
|
|
|
|
// The difference of between the current gesture scale and the scale at the beginning of the
|
|
// gesture.
|
|
double mfScaleDelta = 0;
|
|
|
|
GestureEventZoom() = default;
|
|
|
|
GestureEventZoom(sal_Int32 nX, sal_Int32 nY, GestureEventZoomType eEventType,
|
|
double fScaleDelta)
|
|
: mnX(nX)
|
|
, mnY(nY)
|
|
, meEventType(eEventType)
|
|
, mfScaleDelta(fScaleDelta)
|
|
{
|
|
}
|
|
};
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|