]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetListingsParams.cpp
Remove color dependency of framed note, fix bug 3598
[lyx.git] / src / insets / InsetListingsParams.cpp
index 6c41db8b0fb0e54ffb1b51b5900c49ffc4f87b72..473538475ce773b5a2d77170e136f497383425c1 100644 (file)
@@ -28,6 +28,9 @@ using std::string;
 using std::exception;
 using lyx::support::trim;
 using lyx::support::isStrInt;
+using lyx::support::prefixIs;
+using lyx::support::suffixIs;
+using lyx::support::getVectorFromString;
 
 namespace lyx
 {
@@ -398,13 +401,13 @@ void parValidator::validate(std::string const & par) const
 
 
 InsetListingsParams::InsetListingsParams() :
-       inline_(false), status_(InsetCollapsable::Open), params_()
+       inline_(false), params_(), keys_(0), status_(InsetCollapsable::Open)
 {
 }
 
 
 InsetListingsParams::InsetListingsParams(string const & par, bool in, InsetCollapsable::CollapseStatus s)
-       : inline_(in), status_(s)
+       : inline_(in), params_(), keys_(0), status_(s)
 {
        // this will activate parameter validation.
        fromEncodedString(par);
@@ -557,5 +560,30 @@ void InsetListingsParams::fromEncodedString(string const & in)
 }
 
 
+bool InsetListingsParams::isFloat() const
+{
+       return find(keys_.begin(), keys_.end(), "float") != keys_.end();
+}
+
+
+string InsetListingsParams::getParamValue(string const & param) const
+{
+       // is this parameter defined?
+       if (find(keys_.begin(), keys_.end(), param) == keys_.end())
+               return string();
+       // if so, search for it
+       vector<string> pars = getVectorFromString(separatedParams(), "\n");
+       for (vector<string>::iterator it = pars.begin(); it != pars.end(); ++it)
+               if (prefixIs(*it, param + "=")) {
+                       string par = it->substr(param.size() + 1);
+                       if (prefixIs(par, "{") && suffixIs(par, "}"))
+                               return par.substr(1, par.size() - 2);
+                       else
+                               return par;
+               }
+       // if param= is not found, should be something like float, return ""
+       return string();
+}
+
 
 } // namespace lyx