floating-behavior.cpp revision 88203f7fac722a3539389dbc0e580176f3458653
/**
* \brief A floating dialog implementation.
*
* Author:
* Gustav Broberg <broberg@kth.se>
*
* Copyright (C) 2007 Authors
*
* Released under GNU GPL. Read the file 'COPYING' for more information.
*/
#include "floating-behavior.h"
#include "dialog.h"
#include "application/application.h"
#include "application/editor.h"
#include "inkscape.h"
#include "desktop.h"
#include "dialogs/dialog-events.h"
#include "interface.h"
#include "prefs-utils.h"
#include "verbs.h"
namespace Inkscape {
namespace UI {
namespace Dialog {
namespace Behavior {
{
hide();
_d->set_has_separator(false);
signal_delete_event().connect(sigc::mem_fun(_dialog, &Inkscape::UI::Dialog::Dialog::on_delete_event));
_dialog.retransientize_suppress = false;
}
{
delete _d;
}
Behavior *
{
return new FloatingBehavior(dialog);
}
inline void FloatingBehavior::set_position(Gtk::WindowPosition position) { _d->set_position(position); }
inline void FloatingBehavior::set_size_request(int width, int height) { _d->set_size_request(width, height); }
inline void FloatingBehavior::size_request(Gtk::Requisition& requisition) { _d->size_request(requisition); }
inline void FloatingBehavior::set_default_response(int response_id) { _d->set_default_response(response_id); }
Glib::SignalProxy1<bool, GdkEventAny *> FloatingBehavior::signal_delete_event () { return _d->signal_delete_event(); }
Glib::SignalProxy1<void, int> FloatingBehavior::signal_response () { return _d->signal_response(); }
void
{
hide();
}
void
{
show();
}
void
FloatingBehavior::onShutdown() {}
void
{
gint transient_policy = prefs_get_int_attribute_limited ( "options.transientpolicy", "value", 1, 0, 2);
#ifdef WIN32 // FIXME: Temporary Win32 special code to enable transient dialogs
transient_policy = 2;
else
return;
#endif
if (!transient_policy)
return;
if (_dialog.retransientize_suppress) {
/* if retransientizing of this dialog is still forbidden after
* previous call warning turned off because it was confusingly fired
* when loading many files from command line
*/
// g_warning("Retranzientize aborted! You're switching windows too fast!");
return;
}
if (dialog_win)
{
/*
* This enables "aggressive" transientization,
* i.e. dialogs always emerging on top when you switch documents. Note
* however that this breaks "click to raise" policy of a window
* manager because the switched-to document will be raised at once
* (so that its transients also could raise)
*/
// without this, a transient window not always emerges on top
}
}
// we're done, allow next retransientizing not sooner than after 120 msec
}
} // namespace Behavior
} // namespace Dialog
} // namespace UI
} // namespace Inkscape
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :