index 743ce02395784cb6ebbed8950366a7e6c6fdd18a..ccffb2a67d78be6356540bf913328b11d05dcca2 100644 (file)
-/**
- * \brief Filter Effects dialog
- *
- * Authors:
+/** @file
+ * @brief Filter Effects dialog
+ */
+/* Authors:
* Nicholas Bishop <nicholasbishop@gmail.com>
* Nicholas Bishop <nicholasbishop@gmail.com>
+ * Rodrigo Kumpera <kumpera@gmail.com>
*
* Copyright (C) 2007 Authors
*
*
* Copyright (C) 2007 Authors
*
#ifndef INKSCAPE_UI_DIALOG_FILTER_EFFECTS_H
#define INKSCAPE_UI_DIALOG_FILTER_EFFECTS_H
#ifndef INKSCAPE_UI_DIALOG_FILTER_EFFECTS_H
#define INKSCAPE_UI_DIALOG_FILTER_EFFECTS_H
+#include <memory>
+
#include <gtkmm/adjustment.h>
#include <gtkmm/alignment.h>
#include <gtkmm/box.h>
#include <gtkmm/adjustment.h>
#include <gtkmm/alignment.h>
#include <gtkmm/box.h>
#include <gtkmm/frame.h>
#include <gtkmm/liststore.h>
#include <gtkmm/menu.h>
#include <gtkmm/frame.h>
#include <gtkmm/liststore.h>
#include <gtkmm/menu.h>
+#include <gtkmm/notebook.h>
#include <gtkmm/sizegroup.h>
#include <gtkmm/treeview.h>
#include "attributes.h"
#include <gtkmm/sizegroup.h>
#include <gtkmm/treeview.h>
#include "attributes.h"
-#include "dialog.h"
+#include "ui/widget/panel.h"
#include "sp-filter.h"
#include "ui/widget/combo-enums.h"
#include "ui/widget/spin-slider.h"
#include "sp-filter.h"
#include "ui/widget/combo-enums.h"
#include "ui/widget/spin-slider.h"
class DualSpinButton;
class MultiSpinButton;
class DualSpinButton;
class MultiSpinButton;
-class FilterEffectsDialog : public Dialog {
+class FilterEffectsDialog : public UI::Widget::Panel {
public:
public:
- FilterEffectsDialog(Behavior::BehaviorFactory behavior_factory);
+ FilterEffectsDialog();
~FilterEffectsDialog();
~FilterEffectsDialog();
- static FilterEffectsDialog *create(Behavior::BehaviorFactory behavior_factory)
- { return new FilterEffectsDialog(behavior_factory); }
+ static FilterEffectsDialog &getInstance()
+ { return *new FilterEffectsDialog(); }
void set_attrs_locked(const bool);
void set_attrs_locked(const bool);
+protected:
+ virtual void show_all_vfunc();
private:
class SignalObserver;
private:
class SignalObserver;
Gtk::TreeModelColumn<int> sel;
};
Gtk::TreeModelColumn<int> sel;
};
- class CellRendererSel : public Gtk::CellRenderer
- {
- public:
- CellRendererSel();
-
- Glib::PropertyProxy<int> property_sel()
- {
- return _sel.get_proxy();
- }
- protected:
- virtual void get_size_vfunc(Gtk::Widget&, const Gdk::Rectangle*,
- int*, int*, int*, int*) const;
- virtual void render_vfunc(const Glib::RefPtr<Gdk::Drawable>& win, Gtk::Widget& w,
- const Gdk::Rectangle& bg_area, const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area, Gtk::CellRendererState flags);
- private:
- const int _size;
- Glib::Property<int> _sel;
- };
-
static void on_activate_desktop(Application*, SPDesktop*, FilterModifier*);
static void on_activate_desktop(Application*, SPDesktop*, FilterModifier*);
+ static void on_deactivate_desktop(Application*, SPDesktop*, FilterModifier*);
void on_document_replaced(SPDesktop*, SPDocument*)
{
update_filters();
void on_document_replaced(SPDesktop*, SPDocument*)
{
update_filters();
void update_selection(Selection *);
void on_filter_selection_changed();
void update_selection(Selection *);
void on_filter_selection_changed();
+ void on_name_edited(const Glib::ustring&, const Glib::ustring&);
+ void on_selection_toggled(const Glib::ustring&);
+
void update_filters();
void update_filters();
- void filter_list_button_press(GdkEventButton*);
void filter_list_button_release(GdkEventButton*);
void add_filter();
void remove_filter();
void filter_list_button_release(GdkEventButton*);
void add_filter();
void remove_filter();
Gtk::TreeView _list;
Glib::RefPtr<Gtk::ListStore> _model;
Columns _columns;
Gtk::TreeView _list;
Glib::RefPtr<Gtk::ListStore> _model;
Columns _columns;
- CellRendererSel _cell_sel;
+ Gtk::CellRendererToggle _cell_toggle;
Gtk::Button _add;
Glib::RefPtr<Gtk::Menu> _menu;
sigc::signal<void> _signal_filter_changed;
Gtk::Button _add;
Glib::RefPtr<Gtk::Menu> _menu;
sigc::signal<void> _signal_filter_changed;
SPFilterPrimitive* get_selected();
void select(SPFilterPrimitive *prim);
SPFilterPrimitive* get_selected();
void select(SPFilterPrimitive *prim);
+ void remove_selected();
int primitive_count() const;
protected:
int primitive_count() const;
protected:
std::auto_ptr<SignalObserver> _observer;
};
std::auto_ptr<SignalObserver> _observer;
};
- FilterEffectsDialog();
void init_settings_widgets();
// Handlers
void init_settings_widgets();
// Handlers
void set_attr_direct(const AttrWidget*);
void set_child_attr_direct(const AttrWidget*);
void set_attr_direct(const AttrWidget*);
void set_child_attr_direct(const AttrWidget*);
+ void set_filternode_attr(const AttrWidget*);
void set_attr(SPObject*, const SPAttributeEnum, const gchar* val);
void update_settings_view();
void set_attr(SPObject*, const SPAttributeEnum, const gchar* val);
void update_settings_view();
+ void update_filter_general_settings_view();
void update_settings_sensitivity();
void update_color_matrix();
void update_settings_sensitivity();
void update_color_matrix();
+ void update_primitive_infobox();
- // Filter effect selection
- FilterModifier _filter_modifier;
+ // Primitives Info Box
+ Gtk::Label _infobox_desc;
+ Gtk::Image _infobox_icon;
// View/add primitives
Gtk::VBox _primitive_box;
// View/add primitives
Gtk::VBox _primitive_box;
- PrimitiveList _primitive_list;
UI::Widget::ComboBoxEnum<NR::FilterPrimitiveType> _add_primitive_type;
Gtk::Button _add_primitive;
// Bottom pane (filter effect primitive settings)
UI::Widget::ComboBoxEnum<NR::FilterPrimitiveType> _add_primitive_type;
Gtk::Button _add_primitive;
// Bottom pane (filter effect primitive settings)
- Gtk::VBox _settings_box;
+ Gtk::Notebook _settings_tabs;
+ Gtk::VBox _settings_tab2;
+ Gtk::VBox _settings_tab1;
Gtk::Label _empty_settings;
Gtk::Label _empty_settings;
+ Gtk::Label _no_filter_selected;
+ bool _settings_initialized;
class Settings;
class MatrixAttr;
class ColorMatrixValues;
class LightSourceControl;
Settings* _settings;
class Settings;
class MatrixAttr;
class ColorMatrixValues;
class LightSourceControl;
Settings* _settings;
+ Settings* _filter_general_settings;
Glib::RefPtr<Gtk::SizeGroup> _sizegroup;
// Color Matrix
Glib::RefPtr<Gtk::SizeGroup> _sizegroup;
// Color Matrix
bool _locked;
bool _attr_lock;
bool _locked;
bool _attr_lock;
+ // These go last since they depend on the prior initialization of
+ // other FilterEffectsDialog members
+ FilterModifier _filter_modifier;
+ PrimitiveList _primitive_list;
+
FilterEffectsDialog(FilterEffectsDialog const &d);
FilterEffectsDialog& operator=(FilterEffectsDialog const &d);
};
FilterEffectsDialog(FilterEffectsDialog const &d);
FilterEffectsDialog& operator=(FilterEffectsDialog const &d);
};