/****************************************************************************** Copyright (C) 2013 by Hugh Bailey This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ******************************************************************************/ #include "qt-wrappers.hpp" #include #include #include #if !defined(_WIN32) && !defined(__APPLE__) #include #endif static inline void OBSErrorBoxva(QWidget *parent, const char *msg, va_list args) { char full_message[4096]; vsnprintf(full_message, 4095, msg, args); QMessageBox::critical(parent, "Error", full_message); } void OBSErrorBox(QWidget *parent, const char *msg, ...) { va_list args; va_start(args, msg); OBSErrorBoxva(parent, msg, args); va_end(args); } void QTToGSWindow(WId windowId, gs_window &gswindow) { #ifdef _WIN32 gswindow.hwnd = (HWND)windowId; #elif __APPLE__ gswindow.view = (id)windowId; #else gswindow.id = windowId; gswindow.display = QX11Info::display(); #endif } uint32_t TranslateQtKeyboardEventModifiers(Qt::KeyboardModifiers mods) { int obsModifiers = INTERACT_NONE; if (mods.testFlag(Qt::ShiftModifier)) obsModifiers |= INTERACT_SHIFT_KEY; if (mods.testFlag(Qt::AltModifier)) obsModifiers |= INTERACT_ALT_KEY; #ifdef __APPLE__ // Mac: Meta = Control, Control = Command if (mods.testFlag(Qt::ControlModifier)) obsModifiers |= INTERACT_COMMAND_KEY; if (mods.testFlag(Qt::MetaModifier)) obsModifiers |= INTERACT_CONTROL_KEY; #else // Handle windows key? Can a browser even trap that key? if (mods.testFlag(Qt::ControlModifier)) obsModifiers |= INTERACT_CONTROL_KEY; if (mods.testFlag(Qt::MetaModifier)) obsModifiers |= INTERACT_COMMAND_KEY; #endif return obsModifiers; }