Reformat and clean up the automake files
[synfig.git] / synfig-studio / trunk / src / synfigapp / inputdevice.cpp
index 0919e2a..4a513a6 100644 (file)
@@ -2,7 +2,7 @@
 /*!    \file inputdevice.cpp
 **     \brief Template File
 **
-**     $Id: inputdevice.cpp,v 1.2 2005/01/12 04:08:32 darco Exp $
+**     $Id$
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
@@ -35,6 +35,8 @@
 #include <ETL/stringf>
 #include "main.h"
 
+#include "general.h"
+
 #endif
 
 /* === U S I N G =========================================================== */
@@ -54,7 +56,7 @@ class DeviceSettings : public Settings
 public:
        DeviceSettings(InputDevice* input_device):
                input_device(input_device) { }
-               
+
 
        virtual bool get_value(const synfig::String& key, synfig::String& value)const
        {
@@ -85,13 +87,19 @@ public:
 
                        return true;
                }
-               
+               if(key=="bgcolor")
+               {
+                       Color c(input_device->get_background_color());
+                       value=strprintf("%f %f %f %f",(float)c.get_r(),(float)c.get_g(),(float)c.get_b(),(float)c.get_a());
+
+                       return true;
+               }
+
                return Settings::get_value(key, value);
        }
-       
+
        virtual bool set_value(const synfig::String& key,const synfig::String& value)
        {
-                       DEBUGPOINT();
                if(key=="state")
                {
                        input_device->set_state(value);
@@ -120,14 +128,23 @@ public:
                        input_device->set_foreground_color(synfig::Color(r,g,b,a));
                        return true;
                }
-               
+               if(key=="bgcolor")
+               {
+                       float r=0,g=0,b=0,a=1;
+                       if(!strscanf(value,"%f %f %f %f",&r,&g,&b,&a))
+                               return false;
+                       input_device->set_background_color(synfig::Color(r,g,b,a));
+                       return true;
+               }
+
                return Settings::set_value(key, value);
        }
-       
+
        virtual KeyList get_key_list()const
        {
                KeyList ret(Settings::get_key_list());
                ret.push_back("color");
+               ret.push_back("bgcolor");
                ret.push_back("state");
                ret.push_back("bline_width");
                ret.push_back("blend_method");
@@ -172,14 +189,14 @@ InputDevice::InputDevice(const synfig::String id_, Type type_):
                        state_="normal";
                        break;
        }
-       
+
        device_settings=new DeviceSettings(this);
        Main::settings().add_domain(device_settings,"input_device."+id_);
 }
 
 InputDevice::~InputDevice()
 {
-       Main::settings().remove_domain("input_device."+id_);    
+       Main::settings().remove_domain("input_device."+id_);
        delete device_settings;
 }