/*************************************************************************** * CT Environment Variable Implementation * * -------------------------------------------------------------------- * * Copyright (C) 1999, Gary Meyer <gary@meyer.net> * * -------------------------------------------------------------------- * * 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. * ***************************************************************************/ // Do not introduce any TQt or KDE dependencies into the "CT"-prefixed classes. // I want to be able to reuse these classes with another GUI toolkit. -GM 11/99 #include "ctvariable.h" using namespace std; CTVariable::CTVariable(string tokStr, string _comment) { if (tokStr.substr(0,2) == "#\\") { tokStr = tokStr.substr(2,tokStr.length() - 2); enabled = false; } else enabled = true; int spacepos(0); spacepos = tokStr.find_first_of(" ="); variable = tokStr.substr(0,spacepos); value = tokStr.substr(spacepos+1,tokStr.length()-spacepos-1); comment = _comment; initialVariable = variable; initialValue = value; initialComment = comment; initialEnabled = enabled; } CTVariable::CTVariable(const CTVariable &source) : variable(source.variable), value(source.value), comment(source.comment), enabled(source.enabled), initialVariable(""), initialValue(""), initialComment(""), initialEnabled(true) { } void CTVariable::operator = (const CTVariable& source) { variable = source.variable; value = source.value; comment = source.comment; enabled = source.enabled; initialVariable = ""; initialValue = ""; initialComment = ""; initialEnabled = true; return; } ostream& operator << (ostream& outputStream, const CTVariable& source) { if (source.comment != string("")) outputStream << "# " << source.comment << "\n"; if (!source.enabled) outputStream << "#\\"; outputStream << source.variable << "=" << source.value << "\n"; return outputStream; } void CTVariable::apply() { initialVariable = variable; initialValue = value; initialComment = comment; initialEnabled = enabled; } void CTVariable::cancel() { variable = initialVariable; value = initialValue; comment = initialComment; enabled = initialEnabled; } bool CTVariable::dirty() const { return ((variable != initialVariable) || (value != initialValue) || (comment != initialComment) || (enabled != initialEnabled)); }