-/* === S I N F G =========================================================== */
+/* === S Y N F I G ========================================================= */
/*! \file dockmanager.cpp
** \brief Template File
**
-** $Id: dockmanager.cpp,v 1.2 2005/01/12 07:03:42 darco Exp $
+** $Id$
**
** \legal
-** Copyright (c) 2002 Robert B. Quattlebaum Jr.
+** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007 Chris Moore
**
-** This software and associated documentation
-** are CONFIDENTIAL and PROPRIETARY property of
-** the above-mentioned copyright holder.
+** This package 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.
**
-** You may not copy, print, publish, or in any
-** other way distribute this software without
-** a prior written agreement with
-** the copyright holder.
+** This package is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
** \endlegal
*/
/* ========================================================================= */
#include <stdexcept>
#include "dockable.h"
#include "dockdialog.h"
-#include <sinfgapp/settings.h>
-#include <sinfgapp/main.h>
+#include <synfigapp/settings.h>
+#include <synfigapp/main.h>
#include <gdkmm/general.h>
#endif
using namespace std;
using namespace etl;
-using namespace sinfg;
+using namespace synfig;
using namespace studio;
/* === M A C R O S ========================================================= */
/* === P R O C E D U R E S ================================================= */
-class studio::DockSettings : public sinfgapp::Settings
+class studio::DockSettings : public synfigapp::Settings
{
DockManager* dock_manager;
-
+
public:
DockSettings(DockManager* dock_manager):dock_manager(dock_manager)
{
- sinfgapp::Main::settings().add_domain(this,"dock");
+ synfigapp::Main::settings().add_domain(this,"dock");
}
-
+
virtual ~DockSettings()
{
- sinfgapp::Main::settings().remove_domain("dock");
+ synfigapp::Main::settings().remove_domain("dock");
}
#define SCALE_FACTOR (1280)
- virtual bool get_value(const sinfg::String& key_, sinfg::String& value)const
+ virtual bool get_value(const synfig::String& key_, synfig::String& value)const
{
int screen_w(Gdk::screen_width());
int screen_h(Gdk::screen_height());
-
+
if(key_.size()>6 && String(key_.begin(),key_.begin()+6)=="dialog")try
{
- sinfg::String key(key_.begin()+7,key_.end());
- int separator=key.find_first_of('.');
- int id(atoi(sinfg::String(key.begin(),key.begin()+separator).c_str()));
- key=sinfg::String(key.begin()+separator+1,key.end());
-
+ synfig::String key(key_.begin()+7,key_.end());
+ synfig::String::size_type separator=key.find_first_of('.');
+ int id(atoi(synfig::String(key.begin(),key.begin()+separator).c_str()));
+ key=synfig::String(key.begin()+separator+1,key.end());
+
DockDialog& dock_dialog(dock_manager->find_dock_dialog(id));
-
+
if(key=="contents_size")
{
dock_dialog.rebuild_sizes();
return true;
}
}catch (...) { return false; }
- return sinfgapp::Settings::get_value(key_,value);
+ return synfigapp::Settings::get_value(key_,value);
}
- virtual bool set_value(const sinfg::String& key_,const sinfg::String& value)
+ virtual bool set_value(const synfig::String& key_,const synfig::String& value)
{
int screen_w(Gdk::screen_width());
int screen_h(Gdk::screen_height());
if(key_.size()>6 && String(key_.begin(),key_.begin()+6)=="dialog")
{
- sinfg::String key(key_.begin()+7,key_.end());
- int separator=key.find_first_of('.');
- int id(atoi(sinfg::String(key.begin(),key.begin()+separator).c_str()));
- key=sinfg::String(key.begin()+separator+1,key.end());
-
+ synfig::String key(key_.begin()+7,key_.end());
+ synfig::String::size_type separator=key.find_first_of('.');
+ int id(atoi(synfig::String(key.begin(),key.begin()+separator).c_str()));
+ key=synfig::String(key.begin()+separator+1,key.end());
+
DockDialog& dock_dialog(dock_manager->find_dock_dialog(id));
if(key=="contents_size")
{
try {
-
+
vector<int> data;
- int n=0;
+ String::size_type n=0;
String value_(value);
- while(value_.size() && (signed)value_.size()>n && n>=0){
+ while(value_.size() && value_.size()>n){
value_=String(value_.begin()+n,value_.end());
int size;
if(!strscanf(value_,"%d",&size))
data.push_back(size);
n=value_.find(" ");
- if((unsigned)n!=String::npos)
- n++;
-
+ if(n==String::npos)
+ break;
+ n++;
}
dock_dialog.set_dock_book_sizes(data);
}
catch(...)
{
- sinfg::error("Exception caught!!!");
+ synfig::error("Exception caught!!!");
return false;
}
return true;
return true;
}
}
- return sinfgapp::Settings::set_value(key_,value);
+ return synfigapp::Settings::set_value(key_,value);
}
-
+
virtual KeyList get_key_list()const
{
- sinfgapp::Settings::KeyList ret(sinfgapp::Settings::get_key_list());
+ synfigapp::Settings::KeyList ret(synfigapp::Settings::get_key_list());
std::list<DockDialog*>::const_iterator iter;
for(iter=dock_manager->dock_dialog_list_.begin();iter!=dock_manager->dock_dialog_list_.end();++iter)
while(!dockable_list_.empty())
{
Dockable* dockable(dockable_list_.back());
- sinfg::info("DockManager::~DockManager(): Deleting dockable \"%s\"",dockable->get_name().c_str());
- dockable_list_.pop_back();
+ // synfig::info("DockManager::~DockManager(): Deleting dockable \"%s\"",dockable->get_name().c_str());
+ dockable_list_.pop_back();
delete dockable;
}
}
DockManager::register_dockable(Dockable& x)
{
dockable_list_.push_back(&x);
- sinfg::info("DockManager::register_dockable(): Registered dockable \"%s\"",dockable_list_.back()->get_name().c_str());
+ // synfig::info("DockManager::register_dockable(): Registered dockable \"%s\"",dockable_list_.back()->get_name().c_str());
signal_dockable_registered()(&x);
}
{
x.detach();
dockable_list_.erase(iter);
- sinfg::info("DockManager::unregister_dockable(): \"%s\" has been Unregistered",x.get_name().c_str());
+ synfig::info("DockManager::unregister_dockable(): \"%s\" has been Unregistered",x.get_name().c_str());
return true;
}
}
}
Dockable&
-DockManager::find_dockable(const sinfg::String& x)
+DockManager::find_dockable(const synfig::String& x)
{
std::list<Dockable*>::iterator iter;
for(iter=dockable_list_.begin();iter!=dockable_list_.end();++iter)
if((*iter)->get_name()==x)
return **iter;
-
+
throw std::runtime_error("DockManager::find_dockable(): not found");
}
void
-DockManager::present(sinfg::String x)
+DockManager::present(synfig::String x)
{
try
{
for(iter=dock_dialog_list_.begin();iter!=dock_dialog_list_.end();++iter)
if((*iter)->get_id()==id)
return **iter;
-
+
throw std::runtime_error("DockManager::find_dock_dialog(int id)const: not found");
}