livepatheffect-editor.h revision 0d00bc9f32167e81375a4be524572b27e2894ee4
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico/** @file
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico * @brief Live Path Effect editing dialog
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico */
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico/* Author:
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico * Johan Engelen <j.b.c.engelen@ewi.utwente.nl>
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico *
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico * Copyright (C) 2007 Author
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico * Released under GNU GPL. Read the file 'COPYING' for more information.
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico */
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#ifndef INKSCAPE_UI_DIALOG_LIVE_PATH_EFFECT_H
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#define INKSCAPE_UI_DIALOG_LIVE_PATH_EFFECT_H
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#include "ui/widget/panel.h"
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#include <gtkmm/label.h>
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#include <gtkmm/frame.h>
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#include "ui/widget/combo-enums.h"
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#include "live_effects/effect-enum.h"
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#include <gtkmm/liststore.h>
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#include <gtkmm/treeview.h>
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner#include <gtkmm/scrolledwindow.h>
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner#include <gtkmm/toolbar.h>
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner#include <gtkmm/buttonbox.h>
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerclass SPDesktop;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerclass SPLPEItem;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennernamespace Inkscape {
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennernamespace LivePathEffect {
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner class Effect;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner class LPEObjectReference;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico}
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNiconamespace UI {
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNiconamespace Dialog {
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoclass LivePathEffectEditor : public UI::Widget::Panel {
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicopublic:
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico LivePathEffectEditor();
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico virtual ~LivePathEffectEditor();
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico static LivePathEffectEditor &getInstance() { return *new LivePathEffectEditor(); }
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico void onSelectionChanged(Inkscape::Selection *sel);
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico virtual void on_effect_selection_changed();
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico void setDesktop(SPDesktop *desktop);
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoprivate:
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico sigc::connection selection_changed_connection;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico sigc::connection selection_modified_connection;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico void set_sensitize_all(bool sensitive);
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico void showParams(LivePathEffect::Effect& effect);
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico void showText(Glib::ustring const &str);
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico void selectInList(LivePathEffect::Effect* effect);
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico // void add_entry(const char* name );
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico void effect_list_reload(SPLPEItem *lpeitem);
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico // callback methods for buttons on grids page.
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico void onAdd();
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico void onRemove();
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico void onUp();
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico void onDown();
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico class ModelColumns : public Gtk::TreeModel::ColumnRecord
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico {
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico public:
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico ModelColumns()
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico {
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico add(col_name);
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico add(lperef);
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico add(col_visible);
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico }
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner virtual ~ModelColumns() {}
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico Gtk::TreeModelColumn<Glib::ustring> col_name;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico Gtk::TreeModelColumn<LivePathEffect::LPEObjectReference *> lperef;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico Gtk::TreeModelColumn<bool> col_visible;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico };
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico bool lpe_list_locked;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico //Inkscape::UI::Widget::ComboBoxEnum<LivePathEffect::EffectType> combo_effecttype;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico Gtk::Widget * effectwidget;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico Gtk::Label status_label;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico Gtk::Frame effectcontrol_frame;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico Gtk::Frame effectlist_frame;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico Gtk::HBox effectapplication_hbox;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico Gtk::VBox effectcontrol_vbox;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico Gtk::VBox effectlist_vbox;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico ModelColumns columns;
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico Gtk::ScrolledWindow scrolled_window;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Gtk::TreeView effectlist_view;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Glib::RefPtr<Gtk::ListStore> effectlist_store;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Glib::RefPtr<Gtk::TreeSelection> effectlist_selection;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner void on_visibility_toggled( Glib::ustring const& str );
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Gtk::HButtonBox toolbar_hbox;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Gtk::ToolButton button_add;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Gtk::ToolButton button_remove;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Gtk::ToolButton button_up;
0033c073cef3bdf51409b8f8b37914941f340257apenner Gtk::ToolButton button_down;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner SPDesktop * current_desktop;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner SPLPEItem * current_lpeitem;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner friend void lpeeditor_selection_changed (Inkscape::Selection * selection, gpointer data);
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner LivePathEffectEditor(LivePathEffectEditor const &d);
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner LivePathEffectEditor& operator=(LivePathEffectEditor const &d);
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner};
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner} // namespace Dialog
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner} // namespace UI
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner} // namespace Inkscape
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner#endif // INKSCAPE_UI_DIALOG_LIVE_PATH_EFFECT_H
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner/*
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Local Variables:
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner mode:c++
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner c-file-style:"stroustrup"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner indent-tabs-mode:nil
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fill-column:99
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner End:
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner*/
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner