15#ifndef SEEN_OBJECTS_PANEL_H
16#define SEEN_OBJECTS_PANEL_H
18#include <gtkmm/treerowreference.h>
41class EventControllerKey;
42class EventControllerMotion;
55namespace Widget {
class ImageToggler; }
101 bool isDummy(Gtk::TreeModel::ConstRow
const &row)
const {
return !
getRepr(row); }
135 class TreeViewWithCssChanged;
153 void _activateAction(
const std::string& layerAction,
const std::string& selectionAction);
157 bool toggleVisible(Gdk::ModifierType state, Gtk::TreeModel::Row row);
158 bool toggleLocked (Gdk::ModifierType state, Gtk::TreeModel::Row row);
161 Gtk::EventSequenceState
on_click(Gtk::GestureClick
const &gesture,
162 int n_press,
double x,
double y,
165 unsigned keyval,
unsigned keycode, Gdk::ModifierType state);
166 bool on_window_key(Gtk::EventControllerKey
const &controller,
167 unsigned keyval,
unsigned keycode, Gdk::ModifierType state,
171 void on_motion_motion(Gtk::EventControllerMotion
const *controller,
double x,
double y);
175 void _handleEdited(
const Glib::ustring& path,
const Glib::ustring& new_text);
179 bool select_row( Glib::RefPtr<Gtk::TreeModel>
const & model, Gtk::TreeModel::Path
const & path,
bool b );
181 Glib::RefPtr<Gdk::ContentProvider>
on_prepare(Gtk::DragSource &controller,
double x,
double y);
183 void on_drag_end(Glib::RefPtr<Gdk::Drag>
const &drag,
bool delete_data);
185 bool on_drag_drop(Glib::ValueBase
const &value,
double x,
double y);
The set of selected SPObjects for a given document and layer model.
DialogBase is the base class for the dialog system.
A panel that displays objects.
UI::Widget::PopoverBin _popoverbin
std::vector< Gtk::Widget * > _watching
Gtk::SearchEntry2 & _searchBox
void _activateAction(const std::string &layerAction, const std::string &selectionAction)
Special context-aware functions - If nothing is selected or layers-only mode is active,...
void documentReplaced() override
Glib::RefPtr< Gdk::ContentProvider > on_prepare(Gtk::DragSource &controller, double x, double y)
std::map< SPBlendMode, Glib::ustring > _blend_mode_names
bool hasDummyChildren(Gtk::TreeModel::ConstRow const &row) const
Return true if this row has dummy children.
void layerChanged(SPObject *obj)
Happens when the layer selected is changed.
Glib::RefPtr< Gtk::TreeStore > _store
Glib::RefPtr< Gtk::Builder > _builder
Gtk::Box _buttonsSecondary
bool toggleLocked(Gdk::ModifierType state, Gtk::TreeModel::Row row)
Sets sensitivity of items in the tree.
Gtk::TreeView::Column * _eye_column
void selectionChanged(Selection *selected) override
bool toggleVisible(Gdk::ModifierType state, Gtk::TreeModel::Row row)
Sets visibility of items in the tree.
std::unique_ptr< ObjectWatcher > root_watcher
ObjectWatcher * getWatcher(Inkscape::XML::Node *node)
Get the object watcher from the xml node (reverse lookup), it uses a ancesstor recursive pattern to m...
Inkscape::PrefObserver _watch_object_mode
Gtk::Scale & _opacity_slider
Gtk::TreeView::Column * _lock_column
void selectRange(Gtk::TreeModel::Path start, Gtk::TreeModel::Path end)
bool _show_contextmenu_icons
void on_drag_end(Glib::RefPtr< Gdk::Drag > const &drag, bool delete_data)
Gtk::TreeView::Column * _blend_mode_column
bool selectCursorItem(Gdk::ModifierType state)
Select the object currently under the list-cursor (keyboard or mouse)
bool on_tree_key_pressed(Gtk::EventControllerKey const &controller, unsigned keyval, unsigned keycode, Gdk::ModifierType state)
Handles keyboard events on the TreeView.
Gtk::EventSequenceState on_click(Gtk::GestureClick const &gesture, int n_press, double x, double y, EventType type)
Handles mouse button click events.
std::unique_ptr< ModelColumns > _model
Inkscape::UI::Widget::ImageToggler * _item_state_toggler
sigc::scoped_connection layer_changed
Gtk::CellRendererText * _text_renderer
bool on_window_key(Gtk::EventControllerKey const &controller, unsigned keyval, unsigned keycode, Gdk::ModifierType state, EventType type)
Gtk::TreeModel::RowReference _hovered_row_ref
bool removeDummyChildren(Gtk::TreeModel::Row row)
If the given row has dummy children, remove them.
Gdk::RGBA _hovered_row_old_color
UI::Widget::ColorNotebook * _color_selector
std::shared_ptr< Colors::ColorSet > _colors
std::vector< SPWeakPtr< SPObject > > _prev_range
SPItem * _getCursorItem(Gtk::TreeViewColumn *column)
sigc::scoped_connection _idle_connection
void on_drag_begin(Glib::RefPtr< Gdk::Drag > const &drag)
bool showChildInTree(SPItem *item)
Apply any ongoing filters to the items.
Gtk::Popover & _object_menu
bool cleanDummyChildren(Gtk::TreeModel::Row row)
void desktopReplaced() override
Called when the desktop has certainly changed.
ObjectsPanel()
Constructor.
Gtk::TreeRow _clicked_item_row
void _handleTransparentHover(bool enabled)
Gdk::RGBA _hovered_row_color
bool colorTagPopup(int x, int y, Gtk::TreeModel::Row row)
Gtk::TreeModel::Path _initial_path
bool select_row(Glib::RefPtr< Gtk::TreeModel > const &model, Gtk::TreeModel::Path const &path, bool b)
Take over the select row functionality from the TreeView, this is because we have two selections (lay...
void _searchActivated()
User pressed return in search box, process search query.
SPObject * getObject(Inkscape::XML::Node *node)
Get the object from the node.
void _handleEdited(const Glib::ustring &path, const Glib::ustring &new_text)
Handle a successful item label edit.
UI::Widget::PrefCheckButton & _setting_layers
sigc::scoped_connection _tree_style
void on_motion_motion(Gtk::EventControllerMotion const *controller, double x, double y)
ObjectWatcher * unpackToObject(SPObject *item)
This both unpacks the tree, and populates lazy loading.
bool on_drag_drop(Glib::ValueBase const &value, double x, double y)
Signal handler for "drag-drop".
bool isDummy(Gtk::TreeModel::ConstRow const &row) const
Gtk::TreeView::Column * _color_tag_column
TreeViewWithCssChanged & _tree
Inkscape::XML::Node * getRepr(Gtk::TreeModel::ConstRow const &row) const
Get the XML node which is associated with a row.
SPItem * getItem(Gtk::TreeModel::ConstRow const &row) const
Get the item which is associated with a row.
Gtk::ScrolledWindow _scroller
ObjectWatcher * getRootWatcher() const
std::vector< Gtk::Widget * > _watchingNonTop
bool _translucency_enabled
std::optional< Gtk::TreeRow > getRow(SPItem *item) const
Gtk::TreeView::Column * _name_column
UI::Widget::PrefCheckButton & _setting_track
Gdk::DragAction on_drag_motion(double x, double y)
Signal handler for "drag-motion".
friend class ObjectWatcher
void on_motion_enter(double x, double y)
Handles mouse movements.
std::vector< Gtk::Widget * > _watchingNonBottom
std::map< SPBlendMode, Gtk::CheckButton * > _blend_items
void _generateTranslucentItems(SPItem *parent)
Gtk::Popover & _settings_menu
Gtk::TreeViewColumn * _drag_column
bool blendModePopup(int x, int y, Gtk::TreeModel::Row row)
Interface for refcounted XML nodes.
Base class for visual SVG elements.
SPObject is an abstract base class of all of the document nodes at the SVG document level.
A notebook with RGB, CMYK, CMS, HSL, and Wheel pages.
A base class for all dialogs.
static char const *const parent
Inkscape::XML::Node * node
EventType
The type of a CanvasEvent.
std::unique_ptr< Preferences::PreferencesObserver > PrefObserver
SPStyle enums: named public enums that correspond to SVG property values.