**
** \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
#include <gtkmm/box.h>
#include <synfigapp/main.h>
+#include "general.h"
+
#endif
/* === U S I N G =========================================================== */
//! \todo can we set dialog windows transient for all normal windows, not just the toolbox?
//! paragraph 3 of http://standards.freedesktop.org/wm-spec/1.3/ar01s07.html suggests we can
- set_transient_for(*App::toolbox);
+ // this seems to have bad effects on KDE, so leave it disabled by default
+ if(getenv("SYNFIG_TRANSIENT_DIALOGS"))
+ set_transient_for(*App::toolbox);
// Set up the window
//set_type_hint(Gdk::WINDOW_TYPE_HINT_UTILITY);
- set_title("Dock Dialog");
+ set_title(_("Dock Dialog"));
// Register with the dock manager
App::dock_manager->dock_dialog_list_.push_back(this);
is_deleting=true;
- DEBUGPOINT();
-
// Remove all of the dock books
for(;!dock_book_list.empty();dock_book_list.pop_front())
{
dock_book_list.front()->clear();
- // UGLY HACK
+ //! \fixme: UGLY HACK
// The following line really should be uncommented,
// but it causes crashes. Without it, a small
// memory hole is created--but at least it doesn't crash
// delete dock_book_list.front();
// Oddly enough, the following line should
- // theoreticly do the same thing after this
+ // theoretically do the same thing after this
// class is destroyed, but it doesn't seem to
- // caues a crash.
- manage(dock_book_list.front());
+ // cause a crash. It does, however, trigger this warning:
+ //
+ // A floating object was finalized. This means that someone
+ // called g_object_unref() on an object that had only a
+ // floating reference; the initial floating reference is not
+ // owned by anyone and must be removed with g_object_ref_sink().
+ //
+ // manage(dock_book_list.front());
}
// Remove us from the dock manager
}
delete widget_comp_select;
-
- DEBUGPOINT();
}
void
void
DockDialog::refresh()
{
- synfig::info("dock_book_list.size()=%d",dock_book_list.size());
+ // synfig::info("dock_book_list.size()=%d",dock_book_list.size());
//remove();
if(dock_book_list.empty())
//prepend_button->show();
//append_button->show();
- pannels_.clear();
+ panels_.clear();
if(dock_book_list.size()==1)
{
{
Gtk::Paned* parent(manage(is_horizontal?(Gtk::Paned*)new Gtk::HPaned:(Gtk::Paned*)new Gtk::VPaned));
- pannels_.push_back(parent);
+ panels_.push_back(parent);
- if(pannels_.size()<=dock_book_sizes_.size())
- pannels_.back()->set_position(dock_book_sizes_[pannels_.size()-1]);
- pannels_.back()->property_position().signal_changed().connect(
+ if(panels_.size()<=dock_book_sizes_.size())
+ panels_.back()->set_position(dock_book_sizes_[panels_.size()-1]);
+ panels_.back()->property_position().signal_changed().connect(
sigc::mem_fun(*this,&DockDialog::rebuild_sizes)
);
//parent->show();
for(next=dock_book_list.begin(),next++,iter=next++;next!=dock_book_list.end();iter=next++)
{
Gtk::Paned* current(manage(is_horizontal?(Gtk::Paned*)new Gtk::HPaned:(Gtk::Paned*)new Gtk::VPaned));
- pannels_.push_back(current);
+ panels_.push_back(current);
- if(pannels_.size()<=dock_book_sizes_.size())
- pannels_.back()->set_position(dock_book_sizes_[pannels_.size()-1]);
- pannels_.back()->property_position().signal_changed().connect(
+ if(panels_.size()<=dock_book_sizes_.size())
+ panels_.back()->set_position(dock_book_sizes_[panels_.size()-1]);
+ panels_.back()->property_position().signal_changed().connect(
sigc::mem_fun(*this,&DockDialog::rebuild_sizes)
);
{
unsigned int i=0;
dock_book_sizes_.clear();
- for(i=0;i<pannels_.size();i++)
+ for(i=0;i<panels_.size();i++)
{
- dock_book_sizes_.push_back(pannels_[i]->get_position());
+ dock_book_sizes_.push_back(panels_[i]->get_position());
}
}
DockDialog::set_dock_book_sizes(const std::vector<int>& new_sizes)
{
unsigned int i=0;
- for(i=0;i<pannels_.size() && i<new_sizes.size();i++)
+ for(i=0;i<panels_.size() && i<new_sizes.size();i++)
{
- pannels_[i]->set_position(new_sizes[i]);
+ panels_[i]->set_position(new_sizes[i]);
}
dock_book_sizes_=new_sizes;
//rebuild_sizes();