187 lines
5.6 KiB
C++
187 lines
5.6 KiB
C++
// ScreenResources.cc for Fluxbox Window Manager
|
|
// Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org)
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
// copy of this software and associated documentation files (the "Software"),
|
|
// to deal in the Software without restriction, including without limitation
|
|
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
// and/or sell copies of the Software, and to permit persons to whom the
|
|
// Software is furnished to do so, subject to the following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be included in
|
|
// all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
// DEALINGS IN THE SOFTWARE.
|
|
|
|
// holds screen resource handling
|
|
|
|
#include "Screen.hh"
|
|
#ifdef HAVE_CSTRING
|
|
#include <cstring>
|
|
#else
|
|
#include <string.h>
|
|
#endif
|
|
|
|
using std::string;
|
|
|
|
namespace FbTk {
|
|
|
|
template <>
|
|
string FbTk::Resource<FbTk::MenuTheme::MenuMode>::getString() const {
|
|
switch (*(*this)) {
|
|
case FbTk::MenuTheme::DELAY_OPEN:
|
|
return string("Delay");
|
|
case FbTk::MenuTheme::CLICK_OPEN:
|
|
return string("Click");
|
|
}
|
|
return string("Delay");
|
|
}
|
|
|
|
template <>
|
|
void FbTk::Resource<FbTk::MenuTheme::MenuMode>::setFromString(const char *str) {
|
|
if (strcasecmp(str, "Delay") == 0)
|
|
*(*this) = FbTk::MenuTheme::DELAY_OPEN;
|
|
else if (strcasecmp(str, "Click") == 0)
|
|
*(*this) = FbTk::MenuTheme::CLICK_OPEN;
|
|
else
|
|
setDefaultValue();
|
|
}
|
|
|
|
template<>
|
|
string FbTk::Resource<BScreen::FollowModel>::getString() const {
|
|
switch (m_value) {
|
|
case BScreen::FOLLOW_ACTIVE_WINDOW:
|
|
default:
|
|
return string("Follow");
|
|
break;
|
|
case BScreen::FETCH_ACTIVE_WINDOW:
|
|
return string("Current");
|
|
break;
|
|
case BScreen::SEMIFOLLOW_ACTIVE_WINDOW:
|
|
return string("SemiFollow");
|
|
break;
|
|
case BScreen::IGNORE_OTHER_WORKSPACES:
|
|
return string("Ignore");
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
template<>
|
|
void FbTk::Resource<BScreen::FollowModel>::
|
|
setFromString(char const *strval) {
|
|
if (strcasecmp(strval, "Follow") == 0)
|
|
m_value = BScreen::FOLLOW_ACTIVE_WINDOW;
|
|
else if (strcasecmp(strval, "Current") == 0 ||
|
|
strcasecmp(strval, "CurrentWorkspace") == 0 ||
|
|
strcasecmp(strval, "Fetch") == 0)
|
|
m_value = BScreen::FETCH_ACTIVE_WINDOW;
|
|
else if (strcasecmp(strval, "SemiFollow") == 0)
|
|
m_value = BScreen::SEMIFOLLOW_ACTIVE_WINDOW;
|
|
else if (strcasecmp(strval, "Ignore") == 0)
|
|
m_value = BScreen::IGNORE_OTHER_WORKSPACES;
|
|
else
|
|
setDefaultValue();
|
|
}
|
|
|
|
template<>
|
|
string FbTk::Resource<FbTk::GContext::LineStyle>::getString() const {
|
|
switch(m_value) {
|
|
case FbTk::GContext::LINESOLID:
|
|
return "LineSolid";
|
|
break;
|
|
case FbTk::GContext::LINEONOFFDASH:
|
|
return "LineOnOffDash";
|
|
break;
|
|
case FbTk::GContext::LINEDOUBLEDASH:
|
|
return "LineDoubleDash";
|
|
break;
|
|
};
|
|
return "LineSolid";
|
|
}
|
|
|
|
template<>
|
|
void FbTk::Resource<FbTk::GContext::LineStyle>
|
|
::setFromString(char const *strval) {
|
|
|
|
if (strcasecmp(strval, "LineSolid") == 0 )
|
|
m_value = FbTk::GContext::LINESOLID;
|
|
else if (strcasecmp(strval, "LineOnOffDash") == 0 )
|
|
m_value = FbTk::GContext::LINEONOFFDASH;
|
|
else if (strcasecmp(strval, "LineDoubleDash") == 0)
|
|
m_value = FbTk::GContext::LINEDOUBLEDASH;
|
|
else
|
|
setDefaultValue();
|
|
}
|
|
|
|
template<>
|
|
string FbTk::Resource<FbTk::GContext::JoinStyle>::getString() const {
|
|
switch(m_value) {
|
|
case FbTk::GContext::JOINMITER:
|
|
return "JoinMiter";
|
|
break;
|
|
case FbTk::GContext::JOINBEVEL:
|
|
return "JoinBevel";
|
|
break;
|
|
case FbTk::GContext::JOINROUND:
|
|
return "JoinRound";
|
|
break;
|
|
};
|
|
return "JoinMiter";
|
|
}
|
|
|
|
template<>
|
|
void FbTk::Resource<FbTk::GContext::JoinStyle>
|
|
::setFromString(char const *strval) {
|
|
|
|
if (strcasecmp(strval, "JoinRound") == 0 )
|
|
m_value = FbTk::GContext::JOINROUND;
|
|
else if (strcasecmp(strval, "JoinMiter") == 0 )
|
|
m_value = FbTk::GContext::JOINMITER;
|
|
else if (strcasecmp(strval, "JoinBevel") == 0)
|
|
m_value = FbTk::GContext::JOINBEVEL;
|
|
else
|
|
setDefaultValue();
|
|
}
|
|
|
|
template<>
|
|
string FbTk::Resource<FbTk::GContext::CapStyle>::getString() const {
|
|
switch(m_value) {
|
|
case FbTk::GContext::CAPNOTLAST:
|
|
return "CapNotLast";
|
|
break;
|
|
case FbTk::GContext::CAPBUTT:
|
|
return "CapButt";
|
|
break;
|
|
case FbTk::GContext::CAPROUND:
|
|
return "CapRound";
|
|
break;
|
|
case FbTk::GContext::CAPPROJECTING:
|
|
return "CapProjecting";
|
|
break;
|
|
};
|
|
return "CapNotLast";
|
|
}
|
|
|
|
template<>
|
|
void FbTk::Resource<FbTk::GContext::CapStyle>
|
|
::setFromString(char const *strval) {
|
|
|
|
if (strcasecmp(strval, "CapNotLast") == 0 )
|
|
m_value = FbTk::GContext::CAPNOTLAST;
|
|
else if (strcasecmp(strval, "CapProjecting") == 0 )
|
|
m_value = FbTk::GContext::CAPPROJECTING;
|
|
else if (strcasecmp(strval, "CapRound") == 0)
|
|
m_value = FbTk::GContext::CAPROUND;
|
|
else if (strcasecmp(strval, "CapButt" ) == 0)
|
|
m_value = FbTk::GContext::CAPBUTT;
|
|
else
|
|
setDefaultValue();
|
|
}
|
|
} // end namespace FbTk
|