/*! \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-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
if(key=="contents_size")
{
try {
-
+ int width, height;
+ Gtk::IconSize::lookup(Gtk::IconSize(4),width,height);
vector<int> data;
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))
break;
size=size*screen_h/SCALE_FACTOR;
+
+ // prevent errors like this, by allowing space for at least the dockable's icon:
+ // ** CRITICAL **: clearlooks_style_draw_box_gap: assertion `height >= -1' failed
+ if (size < height + 9) size = height + 9;
+
data.push_back(size);
n=value_.find(" ");
- if(n!=String::npos)
- n++;
-
+ if(n==String::npos)
+ break;
+ n++;
}
dock_dialog.set_dock_book_sizes(data);
}
while(!dockable_list_.empty())
{
Dockable* dockable(dockable_list_.back());
- synfig::info("DockManager::~DockManager(): Deleting dockable \"%s\"",dockable->get_name().c_str());
+ // 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);
- synfig::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);
}