///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2011-2012 Statoil ASA, Ceetron AS // // ResInsight 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 3 of the License, or // (at your option) any later version. // // ResInsight 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 at // for more details. // ///////////////////////////////////////////////////////////////////////////////// #include "RiuCursors.h" #include #include //================================================================================================== /// /// /// /// //================================================================================================== //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RiuCursors::RiuCursors() { m_cursors[FILTER_BOX] = cursorFromFile(":/Cursors/curFilterBox.bmp", 10, 10); m_cursors[NORMAL] = cursorFromFile(":/Cursors/curNormal.bmp", 10, 10); m_cursors[PAN] = cursorFromFile(":/Cursors/curPan.bmp"); m_cursors[WALK] = cursorFromFile(":/Cursors/curWalk.bmp"); m_cursors[ZOOM] = cursorFromFile(":/Cursors/curZoom.bmp"); m_cursors[ROTATE] = cursorFromFile(":/Cursors/curRotate.bmp"); m_cursors[PICK] = cursorFromFile(":/Cursors/curPick.bmp", 10, 10); m_cursors[PICK_ROTPOINT]= cursorFromFile(":/Cursors/curPickRotPoint.bmp", 10, 10); m_cursors[PICK_GOTO] = cursorFromFile(":/Cursors/curPickGoto.bmp", 10, 10); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- QCursor RiuCursors::get(CursorIndex cursorIdx) { // Create our single instance in a local static variable static RiuCursors myStaticInstance; return myStaticInstance.m_cursors[cursorIdx]; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- QCursor RiuCursors::cursorFromFile(const QString& fileName, int hotspotX, int hotspotY) { QImage image(fileName); if (image.width() == 0 || image.height() == 0) { return QCursor(); } QRgb maskClr = image.pixel(0, 0); //QImage imgMask = image.createMaskFromColor(maskClr, Qt::MaskInColor); QImage imgMask = image.createHeuristicMask(true); QBitmap bmMask = QBitmap::fromImage(imgMask, Qt::ThresholdDither | Qt::AvoidDither); QBitmap bitmap = QBitmap::fromImage(image, Qt::ThresholdDither | Qt::AvoidDither); return QCursor(bitmap, bmMask, hotspotX, hotspotY); }