xml-tree.h revision b37e9d4a26014aa56265ce1e239e53eb9827ae5c
/** @file
* @brief XML tree editing dialog for Inkscape
*/
/* Copyright Lauris Kaplinski, 2000
*
* Released under GNU General Public License.
*
* This is XML tree editor, which allows direct modifying of all elements
* of Inkscape document, including foreign ones.
*
*/
#ifndef SEEN_DIALOGS_XML_TREE_H
#define SEEN_DIALOGS_XML_TREE_H
#include <gtkmm/textview.h>
#include <gtkmm/separatortoolitem.h>
#include <gtkmm/scrolledwindow.h>
#include "ui/dialog/desktop-tracker.h"
#include "message.h"
struct SPDesktop;
struct SPObject;
struct SPXMLViewAttrList;
struct SPXMLViewContent;
struct SPXMLViewTree;
}
/**
* A dialog widget to view and edit the document xml
*
*/
XmlTree ();
~XmlTree ();
/**
* Is invoked by the desktop tracker when the desktop changes.
*/
/**
* Is invoked when the documnet changes
*/
/**
* Select a node in the xml tree
*/
/**
* Sets the XML status bar when the tree is selected.
*/
void tree_reset_context();
/**
* Sets the XML status bar, depending on which attr is selected.
*/
/**
* Is the selected tree node editable
*/
/**
* Callback to close the add dialog on Escape key
*/
/**
* Select a node in the xml tree
*/
/**
* Set the attribute list to match the selected node in the tree
*/
/**
* Find the current desktop selection
*/
/**
* Select the current desktop selection
*/
/**
* Callback for a node in the tree being selected
*/
/**
* Callback when no node in the tree is selected
*/
/**
* Callback when a node is moved in the tree
*/
static void after_tree_move(GtkCTree *tree, GtkCTreeNode *node, GtkCTreeNode *new_parent, GtkCTreeNode *new_sibling, gpointer data);
/**
* Callback for when attribute selection changes
*/
/**
* Callback for when attribute list values change
*/
/**
* Enable widgets based on current selections
*/
void on_tree_unselect_row_disable();
void on_tree_unselect_row_hide();
void on_attr_unselect_row_disable();
void on_attr_unselect_row_clear_text();
void onNameChanged();
void onCreateNameChanged();
/**
* Callbacks for changes in desktop selection and current document
*/
void on_desktop_selection_changed();
static void _set_status_message(Inkscape::MessageType type, const gchar *message, GtkWidget *dialog);
/**
* Callbacks for toolbar buttons being pressed
*/
void cmd_new_element_node();
void cmd_new_text_node();
void cmd_duplicate_node();
void cmd_delete_node();
void cmd_raise_node();
void cmd_lower_node();
void cmd_indent_node();
void cmd_unindent_node();
void cmd_delete_attr();
void cmd_set_attr();
/**
* Can be invoked for setting the desktop. Currently not used.
*/
/**
* Flag to ensure only one operation is perfomed at once
*/
/**
* Status bar
*/
/**
* Signal handlers
*/
/**
* Current document and desktop this dialog is attached to
*/
/* XmlTree Widgets */
};
}
}
}
#endif
/*
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:fileencoding=utf-8:textwidth=99 :