From 15318cad33835e4e2dc620d033e43cd930676cdd Mon Sep 17 00:00:00 2001 From: kergoth Date: Fri, 25 Jan 2002 22:14:26 +0000 Subject: Initial revision --- (limited to 'noncore/tools/calc2/binary/binaryimpl.cpp') diff --git a/noncore/tools/calc2/binary/binaryimpl.cpp b/noncore/tools/calc2/binary/binaryimpl.cpp new file mode 100644 index 0000000..ffc56ad --- a/dev/null +++ b/noncore/tools/calc2/binary/binaryimpl.cpp @@ -0,0 +1,110 @@ +/********************************************************************** +** Copyright (C) 2000 Trolltech AS. All rights reserved. +** +** This file is part of Qtopia Environment. +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See http://www.trolltech.com/gpl/ for GPL licensing information. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#include "binaryimpl.h" +#include + +class iXOR : public Instruction { +public: + iXOR():Instruction(){}; + ~iXOR(){}; + Data eval(Data num) { + Data result; + result.i = num.i ^ acc.i; + return result; + }; +}; +class iAND : public Instruction { +public: + iAND():Instruction(){}; + ~iAND(){}; + Data eval(Data num) { + Data result; + result.i = num.i & acc.i; + return result; + }; +}; +class iNOT : public Instruction { +public: + iNOT():Instruction(){}; + ~iNOT(){}; + Data eval(Data num) { + Data result; + result.i = ~ num.i; + return result; + }; +}; +class iOR : public Instruction { +public: + iOR():Instruction(){}; + ~iOR(){}; + Data eval(Data num) { + Data result; + result.i = num.i | acc.i; + return result; + }; +}; +class iLSH : public Instruction { +public: + iLSH():Instruction(){}; + ~iLSH(){}; + Data eval(Data num) { + Data result; + result.i = num.i << 1; + return result; + }; +}; +class iRSH : public Instruction { +public: + iRSH():Instruction(){}; + ~iRSH(){}; + Data eval(Data num) { + Data result; + result.i = num.i >> 1; + return result; + }; +}; + +void FormBinaryImpl::val0Clicked() { + engine->pushValue('0'); +} + +void FormBinaryImpl::val1Clicked() { + engine->pushValue('1'); +} + +void FormBinaryImpl::XORClicked() { + engine->pushInstruction(new iXOR()); +} +void FormBinaryImpl::ANDClicked() { + engine->pushInstruction(new iAND()); +} +void FormBinaryImpl::NOTClicked() { + engine->immediateInstruction(new iNOT()); +} +void FormBinaryImpl::ORClicked() { + engine->pushInstruction(new iOR()); +} +void FormBinaryImpl::LSHClicked() { + engine->immediateInstruction(new iLSH()); +} +void FormBinaryImpl::RSHClicked() { + engine->immediateInstruction(new iRSH()); +} -- cgit v0.9.0.2