⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 action.cpp

📁 配合linux窗口管理器使用
💻 CPP
字号:
/* Idesk -- Action.cpp * * Copyright (c) 2002, Chris (nikon) (nikon@sc.rr.com) * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: *  *      Redistributions of source code must retain the above copyright *      notice, this list of conditions and the following disclaimer. *       *      Redistributions in binary form must reproduce the above copyright *      notice, this list of conditions and the following disclaimer in the *      documentation and/or other materials provided with the distribution. *       *      Neither the name of the <ORGANIZATION> nor the names of its *      contributors may be used to endorse or promote products derived from *      this software without specific prior written permission. * * (See the included file COPYING / BSD ) */#include "Action.h"Action::Action() : shift(false), control(false), alt(false), left(none),            middle(none), right(none) {}Action::Action(bool s, bool c, bool a, Click l, Click m, Click r){    shift = s;    control = c;    alt = a;    left = l;    middle = m;    right = r;}//input what keys/mouse buttons have been pressed as the current actionbool Action::isOccuring(Action current){    //Action can only work if there is at least one mouse button    if (left == none && middle == none && right == none)        return false;    //else        bool returnBool;    //cout << "ME      :: "; print();    //cout << "CURRENT :: "; current.print();        //if shift is set to true then current.shift must be true    //same for control and alt    returnBool = (!shift || current.shift) &&                      (!control || current.control) &&                    (!alt || current.alt);        //if left is set to none, then no checking is necessary    //if left is set to a click then current.left must be set to the    //same or higher number of clicks    returnBool &= ((left == none) ||    ((left == hold) && (current.left == hold)) ||    ((left == singleClk) && ((current.left == singleClk) ||                                (current.left == doubleClk) ||                                (current.left == tripleClk))) ||    ((left == doubleClk) && ((current.left == doubleClk) ||                                (current.left == tripleClk))) ||    ((left == tripleClk) &&  (current.left == tripleClk)));        returnBool &= ((middle == none) ||    ((middle == hold) && (current.middle == hold)) ||    ((middle == singleClk) && ((current.middle == singleClk) ||                                (current.middle == doubleClk) ||                                (current.middle == tripleClk))) ||    ((middle == doubleClk) && ((current.middle == doubleClk) ||                                (current.middle == tripleClk))) ||    ((middle == tripleClk) &&  (current.middle == tripleClk)));    returnBool &= ((right == none) ||    ((right == hold) && (current.right == hold)) ||    ((right == singleClk) && ((current.right == singleClk) ||                                (current.right == doubleClk) ||                                (current.right == tripleClk))) ||    ((right == doubleClk) && ((current.right == doubleClk) ||                                (current.right == tripleClk))) ||    ((right == tripleClk) &&  (current.right == tripleClk)));    return returnBool;}void Action::clear(){    shift = false;    control = false;    alt = false;    left = none;    middle = none;    right = none;}void Action::print(){    cout << "Action: " << ( shift ? " shift " : "" )                       << ( control ? " control " : "" )                       << ( alt ? " alt " : "" )                       << " Left = " << left                       << " Middle = " << middle                       << " Right = " << right << endl;}void Action::setButton(int button, Click c){    switch (button)    {        case 0:            left = c;            break;        case 1:            middle = c;            break;        case 2:            right = c;            break;    }}Click Action::getButton(int button){    Click returnClk;    switch (button)    {        case 0:            returnClk = left;            break;        case 1:            returnClk = middle;            break;        case 2:            returnClk = right;            break;    }    return returnClk;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -