/* * Copyright (C) 2013-2015 Canonical, Ltd. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License version 3, as published by * the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY, * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . */ #include "debughelpers.h" #include #include // Unity API #include const char *touchPointStateToString(Qt::TouchPointState state) { switch (state) { case Qt::TouchPointPressed: return "pressed"; case Qt::TouchPointMoved: return "moved"; case Qt::TouchPointStationary: return "stationary"; case Qt::TouchPointReleased: return "released"; default: return "UNKNOWN!"; } } QString touchEventToString(const QTouchEvent *ev) { QString message; switch (ev->type()) { case QEvent::TouchBegin: message.append("TouchBegin "); break; case QEvent::TouchUpdate: message.append("TouchUpdate "); break; case QEvent::TouchEnd: message.append("TouchEnd "); break; case QEvent::TouchCancel: message.append("TouchCancel "); default: message.append("TouchUNKNOWN "); } for (int i=0; i < ev->touchPoints().size(); ++i) { const QTouchEvent::TouchPoint& touchPoint = ev->touchPoints().at(i); message.append( QString("(id:%1, state:%2, scenePos:(%3,%4), pos:(%5,%6)) ") .arg(touchPoint.id()) .arg(touchPointStateToString(touchPoint.state())) .arg(touchPoint.scenePos().x()) .arg(touchPoint.scenePos().y()) .arg(touchPoint.pos().x()) .arg(touchPoint.pos().y()) ); } return message; } QString mirSurfaceAttribAndValueToString(MirSurfaceAttrib attrib, int value) { QString str; switch (attrib) { case mir_surface_attrib_type: str = QString("type=%1").arg(mirSurfaceTypeToStr(value)); break; case mir_surface_attrib_state: str = QString("state=%1").arg(mirSurfaceStateToStr(value)); break; case mir_surface_attrib_swapinterval: str = QString("swapinterval=%1").arg(value); break; case mir_surface_attrib_focus: str = QString("focus=%1").arg(mirSurfaceFocusStateToStr(value)); break; case mir_surface_attrib_dpi: str = QString("dpi=%1").arg(value); break; case mir_surface_attrib_visibility: str = QString("visibility=%1").arg(mirSurfaceVisibilityToStr(value)); break; default: str = QString("type'%1'=%2").arg((int)attrib).arg(value); } return str; } const char *mirSurfaceTypeToStr(int value) { switch (value) { case mir_surface_type_normal: return "normal"; case mir_surface_type_utility: return "utility"; case mir_surface_type_dialog: return "dialog"; case mir_surface_type_overlay: return "overlay"; case mir_surface_type_freestyle: return "freestyle"; case mir_surface_type_popover: return "popover"; case mir_surface_type_inputmethod: return "inputmethod"; default: return "???"; } } const char *mirSurfaceStateToStr(int value) { switch (value) { case mir_surface_state_unknown: return "unknown"; case mir_surface_state_restored: return "restored"; case mir_surface_state_minimized: return "minimized"; case mir_surface_state_maximized: return "maximized"; case mir_surface_state_vertmaximized: return "vertmaximized"; case mir_surface_state_fullscreen: return "fullscreen"; default: return "???"; } } const char *mirSurfaceFocusStateToStr(int value) { switch (value) { case mir_surface_unfocused: return "unfocused"; case mir_surface_focused: return "focused"; default: return "???"; } } const char *mirSurfaceVisibilityToStr(int value) { switch (value) { case mir_surface_visibility_occluded: return "occluded"; case mir_surface_visibility_exposed: return "exposed"; default: return "???"; } } const char *mirTouchActionToStr(MirTouchAction action) { switch (action) { case mir_touch_action_up: return "up"; case mir_touch_action_down: return "down"; case mir_touch_action_change: return "change"; default: return "???"; } } using namespace unity::shell::application; const char *applicationStateToStr(int state) { switch (state) { case ApplicationInfoInterface::Starting: return "starting"; case ApplicationInfoInterface::Running: return "running"; case ApplicationInfoInterface::Suspended: return "suspended"; case ApplicationInfoInterface::Stopped: return "stopped"; default: return "???"; } } QString mirTouchEventToString(MirTouchEvent const* event) { const int pointerCount = mir_touch_event_point_count(event); QString string("MirTouchInputEvent("); for (int i = 0; i < pointerCount; ++i) { if (i > 0) { string.append(","); } MirTouchAction touchAction = mir_touch_event_action(event, i); QString touchStr = QString("(id=%1,action=%2,x=%3,y=%4)") .arg(mir_touch_event_id(event, i)) .arg(mirTouchActionToString(touchAction)) .arg(mir_touch_event_axis_value(event, i, mir_touch_axis_x)) .arg(mir_touch_event_axis_value(event, i, mir_touch_axis_y)); string.append(touchStr); } string.append(")"); return string; } const char *mirTouchActionToString(MirTouchAction touchAction) { switch (touchAction) { case mir_touch_action_up: return "up"; break; case mir_touch_action_down: return "down"; break; case mir_touch_action_change: return "change"; break; default: return "???"; break; } }