18#ifndef INKSCAPE_UI_DIALOG_FILTER_EFFECTS_H
19#define INKSCAPE_UI_DIALOG_FILTER_EFFECTS_H
21#include <glibmm/property.h>
22#include <gtkmm/gesture.h>
23#include <gtkmm/label.h>
24#include <gtkmm/treeview.h>
64class FileOrElementChooser;
111 class Columns :
public Gtk::TreeModel::ColumnRecord
123 Gtk::TreeModelColumn<Glib::ustring>
label;
124 Gtk::TreeModelColumn<int>
sel;
128 std::unique_ptr<UI::Widget::PopoverMenu>
create_menu();
136 int n_press,
double x,
double y);
152 std::unique_ptr<UI::Widget::PopoverMenu>
_menu;
154 std::unique_ptr<Inkscape::XML::SignalObserver>
_observer;
170 Gtk::TreeModelColumn<Inkscape::Filters::FilterPrimitiveType>
type_id;
171 Gtk::TreeModelColumn<Glib::ustring>
type;
172 Gtk::TreeModelColumn<Glib::ustring>
id;
187 int& natural_width)
const override;
192 int& natural_width)
const override;
196 int& natural_height)
const override;
201 int& natural_height)
const override;
209 ,
public Gtk::TreeView
219 void set_menu(sigc::slot<
void ()> dup, sigc::slot<
void ()> rem);
230 void snapshot_vfunc(Glib::RefPtr<Gtk::Snapshot>
const &snapshot)
override;
231 void css_changed(GtkCssStyleChange *change)
override;
233 void on_drag_end(Glib::RefPtr<Gdk::Drag>
const &drag,
bool delete_data);
236 int n_press,
double x,
double y);
238 int n_press,
double x,
double y);
244 std::vector<Geom::Point> &points,
245 const int ix,
const int iy);
247 const Gtk::TreeModel::iterator
find_result(
const Gtk::TreeModel::iterator&
start,
const SPAttr attr,
int& src_id,
const int pos);
248 int find_index(
const Gtk::TreeModel::iterator& target);
250 const Gtk::TreeModel::iterator&,
const SPAttr attr,
const int text_start_x,
251 const int x1,
const int y1,
const int row_count,
const int pos,
252 const Gdk::RGBA fg_color,
const Gdk::RGBA mid_color);
269 std::unique_ptr<Inkscape::XML::SignalObserver>
_observer;
327 class ColorMatrixValues;
328 class ComponentTransferValues;
329 class LightSourceControl;
Bin: widget that can hold one child, useful as a base class of custom widgets.
The set of selected SPObjects for a given document and layer model.
DialogBase is the base class for the dialog system.
void get_preferred_width_vfunc(Gtk::Widget &widget, int &minimum_width, int &natural_width) const override
void get_preferred_height_for_width_vfunc(Gtk::Widget &widget, int width, int &minimum_height, int &natural_height) const override
Glib::Property< void * > _primitive
void get_preferred_width_for_height_vfunc(Gtk::Widget &widget, int height, int &minimum_width, int &natural_width) const override
void get_preferred_height_vfunc(Gtk::Widget &widget, int &minimum_height, int &natural_height) const override
static constexpr int size_w
Glib::PropertyProxy< void * > property_primitive()
static constexpr int size_h
Gtk::TreeModelColumn< int > count
Gtk::TreeModelColumn< Glib::ustring > label
Gtk::TreeModelColumn< int > sel
Gtk::TreeModelColumn< SPFilter * > filter
void on_name_edited(const Glib::ustring &, const Glib::ustring &)
Glib::RefPtr< Gtk::Builder > _builder
void on_filter_selection_changed()
sigc::signal< void()> _signal_filter_changed
sigc::signal< void()> _signal_filters_updated
void select_filter_elements()
std::unique_ptr< Inkscape::XML::SignalObserver > _observer
void selection_toggled(Gtk::TreeModel::iterator iter, bool toggle)
bool is_selected_filter_active()
void update_selection(Selection *)
void select_filter(const SPFilter *)
Gtk::EventSequenceState filter_list_click_released(Gtk::GestureClick const &click, int n_press, double x, double y)
Gtk::CellRendererToggle _cell_toggle
std::unique_ptr< UI::Widget::PopoverMenu > _menu
bool filters_present() const
std::unique_ptr< UI::Widget::PopoverMenu > create_menu()
SPFilter * get_selected_filter()
void on_selection_toggled(const Glib::ustring &)
FilterEffectsDialog & _dialog
sigc::signal< void()> & signal_filters_updated()
Glib::RefPtr< Gtk::ListStore > _filters_model
void toggle_current_filter()
sigc::signal< void()> & signal_filter_changed()
Gtk::TreeModelColumn< Glib::ustring > type
Gtk::TreeModelColumn< Inkscape::Filters::FilterPrimitiveType > type_id
Gtk::TreeModelColumn< SPFilterPrimitive * > primitive
Gtk::TreeModelColumn< Glib::ustring > id
int get_inputs_count() const
void css_changed(GtkCssStyleChange *change) override
Called after gtk_widget_css_changed(): when a CSS widget node is validated & style changed.
int get_input_type_width() const
Gtk::TreeView parent_type
int find_index(const Gtk::TreeModel::iterator &target)
void select(SPFilterPrimitive *prim)
sigc::signal< void()> _signal_primitive_changed
SPFilterPrimitive * _drag_prim
void set_menu(sigc::slot< void()> dup, sigc::slot< void()> rem)
bool do_connection_node(const Gtk::TreeModel::iterator &row, const int input, std::vector< Geom::Point > &points, const int ix, const int iy)
FilterEffectsDialog & _dialog
Glib::RefPtr< Pango::Layout > _vertical_layout
sigc::signal< void()> & signal_primitive_changed()
void on_drag_end(Glib::RefPtr< Gdk::Drag > const &drag, bool delete_data)
int primitive_count() const
void on_motion_motion(double x, double y)
void sanitize_connections(const Gtk::TreeModel::iterator &prim_iter)
PrimitiveColumns _columns
std::unique_ptr< Inkscape::XML::SignalObserver > _observer
Gtk::EventSequenceState on_click_released(Gtk::GestureClick const &click, int n_press, double x, double y)
void set_inputs_count(int count)
sigc::connection _scroll_connection
Gtk::EventSequenceState on_click_pressed(Gtk::GestureClick const &click, int n_press, double x, double y)
SPFilterPrimitive * get_selected()
const Gtk::TreeModel::iterator find_result(const Gtk::TreeModel::iterator &start, const SPAttr attr, int &src_id, const int pos)
Glib::RefPtr< Gtk::ListStore > _model
void draw_connection(const Cairo::RefPtr< Cairo::Context > &cr, const Gtk::TreeModel::iterator &, const SPAttr attr, const int text_start_x, const int x1, const int y1, const int row_count, const int pos, const Gdk::RGBA fg_color, const Gdk::RGBA mid_color)
std::unique_ptr< UI::Widget::PopoverMenu > _primitive_menu
CellRendererConnection _connection_cell
void snapshot_vfunc(Glib::RefPtr< Gtk::Snapshot > const &snapshot) override
void on_primitive_selection_changed()
void set_attr(SPObject *, const SPAttr, const gchar *val)
~FilterEffectsDialog() override
Gtk::Box _settings_filter
Gtk::CheckButton & _cur_filter_btn
void update_color_matrix()
std::unique_ptr< Settings > _filter_general_settings
FilterModifier _filter_modifier
void selectionModified(Inkscape::Selection *selection, guint flags) override
Gtk::ScrolledWindow * _primitive_box
Gtk::Label * _cur_effect_name
Glib::RefPtr< Gtk::Builder > _builder
void set_filternode_attr(const UI::Widget::AttrWidget *)
std::unique_ptr< Settings > _settings
void update_settings_view()
Gtk::Label _empty_settings
ComponentTransferValues * _component_transfer_values
void update_filter_general_settings_view()
void documentReplaced() override
void set_attrs_locked(const bool)
void set_attr_direct(const UI::Widget::AttrWidget *)
Gtk::Button _add_primitive
Gtk::Box & _search_wide_box
void add_filter_primitive(Filters::FilterPrimitiveType type)
Gtk::Label _no_filter_selected
void set_child_attr_direct(const UI::Widget::AttrWidget *)
UI::Widget::ComboBoxEnum< Inkscape::Filters::FilterPrimitiveType > _add_primitive_type
void selectionChanged(Inkscape::Selection *selection) override
Gtk::ToggleButton * _show_sources
void convolve_order_changed()
friend class FileOrElementChooser
MultiSpinButton * _region_pos
Gtk::ScrolledWindow & _filter_wnd
void duplicate_primitive()
PrimitiveList _primitive_list
sigc::connection _cur_filter_toggle
UI::Widget::PopoverBin _popoverbin
void add_effects(Inkscape::UI::Widget::CompletionPopup &popup, bool symbolic)
Gtk::Box _settings_effect
DualSpinButton * _convolve_order
MultiSpinButton * _convolve_target
void init_settings_widgets()
void update_automatic_region(Gtk::CheckButton *btn)
MultiSpinButton * _region_size
bool _settings_initialized
void update_settings_sensitivity()
ColorMatrixValues * _color_matrix_values
MatrixAttr * _convolve_matrix
sigc::scoped_connection _resource_changed
Inkscape::UI::Widget::CompletionPopup _effects_popup
SPObject is an abstract base class of all of the document nodes at the SVG document level.
A base class for all dialogs.
TODO: insert short description here.
TODO: insert short description here.
Glib::RefPtr< Gtk::Builder > builder