1
/*****************************************************************************
3
* utouch-frame - Touch Frame Library
5
* Copyright (C) 2011 Canonical Ltd.
7
* This program is free software: you can redistribute it and/or modify it
8
* under the terms of the GNU General Public License as published by the
9
* Free Software Foundation, either version 3 of the License, or (at your
10
* option) any later version.
12
* This program is distributed in the hope that it will be useful, but
13
* WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* General Public License for more details.
17
* You should have received a copy of the GNU General Public License along
18
* with this program. If not, see <http://www.gnu.org/licenses/>.
20
****************************************************************************/
22
#ifndef UTOUCH_FRAME_FRAME_H_
23
#define UTOUCH_FRAME_FRAME_H_
29
#include "utouch/frame.h"
30
#include "v2/property.h"
31
#include "v2/typedefs.h"
38
class UFFrame : public UFFrame_, public Property<UFFrameProperty> {
41
UFFrame(const SharedWindow& window, const SharedUFFrame& prev);
43
UFTouch* CopyTouch(UFTouchId touchid, UFTouchState new_state) const;
44
bool IsTouchOwned(UFTouchId touchid);
45
void UpdateTouch(const SharedUFTouch& touch);
47
UFStatus GetPreviousTouchValue(const UFTouch* touch, UFAxisType type,
49
UFStatus GetPreviousTouchProperty(const UFTouch* touch,
50
UFTouchProperty property, void* value) const;
51
UFStatus GetTouchByIndex(unsigned int index, ::UFTouch* touch) const;
52
UFStatus GetTouchById(UFTouchId touch_id, ::UFTouch* touch) const;
53
void ReleasePreviousFrame();
55
UFFrame(const UFFrame&) = delete;
56
UFFrame& operator=(const UFFrame&) = delete;
61
std::vector<SharedUFTouch> touches_array_;
62
std::map<UFTouchId, unsigned int> touches_map_;
68
#endif // UTOUCH_FRAME_FRAME_H_