Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

mlview-tree-editor.h

Go to the documentation of this file.
00001 /*This file is part of MlView
00002  *
00003  *MlView is free software; you can redistribute it and/or modify it under the terms of 
00004  *the GNU General Public License as published by the Free Software Foundation; either version 2, 
00005  *or (at your option) any later version.
00006  *
00007  *MlView is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
00008  *without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00009  *See the GNU General Public License for more details.
00010  *
00011  *You should have received a copy of the GNU General Public License along with MlView; 
00012  *see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00013  *
00014  *
00015  *Copyright 2001-2002 Dodji Seketeli
00016  */
00017 
00025 #ifndef __MLVIEW_TREE_EDITOR_H__
00026 #define __MLVIEW_TREE_EDITOR_H__
00027 
00028 #include <gnome.h>
00029 #include <libxml/tree.h>
00030 #include "mlview-node-type-picker.h"
00031 #include "mlview-settings-builder.h"
00032 #include "mlview-app-context.h"
00033 #include "mlview-xml-document.h"
00034 
00035 #ifdef __cplusplus
00036 extern "C"{
00037 #endif /*__cplusplus*/
00038 
00039         /*common macros to comply with the GtkObject typing system.*/
00040 #define MLVIEW_TYPE_TREE_EDITOR (mlview_tree_editor_get_type())
00041 #define MLVIEW_TREE_EDITOR(object) (GTK_CHECK_CAST((object),MLVIEW_TYPE_TREE_EDITOR,MlViewTreeEditor))
00042 #define MLVIEW_TREE_EDITOR_CLASS(klass) (GTK_CHECK_CLASS_CAST((klass),MLVIEW_TYPE_TREE_EDITOR,MlViewTreeEditorClass))
00043 #define MLVIEW_IS_TREE_EDITOR(object) (GTK_CHECK_TYPE((object),MLVIEW_TYPE_TREE_EDITOR))
00044 #define MLVIEW_IS_TREE_EDITOR_CLASS(klass) (GTK_CHECK_CLASS_TYPE((klass),MLVIEW_TYPE_TREE_EDITOR))
00045 
00046         /*common class and instance definitions*/
00047         typedef struct _MlViewTreeEditor MlViewTreeEditor ;
00048         typedef struct _MlViewTreeEditorClass MlViewTreeEditorClass ;
00049         typedef struct _MlViewTreeEditorPrivate MlViewTreeEditorPrivate ;
00050 
00051 
00052 /*====================================================================
00053  *The structure representing
00054  *the MlViewTreeEditor object.
00055  *===================================================================*/
00056         struct _MlViewTreeEditor
00057         {
00058                 GtkVBox vbox ;
00059                 MlViewTreeEditorPrivate *private ;
00060         };
00061 
00062 /*==================================================
00063  *some other structures
00064  *=================================================*/
00065 
00071 enum WhereInTheNodeBitmap {
00072         NODE_NAME = 1,
00073         NODE_ATTRIBUTE_NAME = 1 << 1,
00074         NODE_ATTRIBUTE_VALUE = 1 << 2,
00075         NODE_CONTENT = 1 << 3 ,
00076         NODE_ALL_PARTS = NODE_NAME | NODE_ATTRIBUTE_NAME | NODE_ATTRIBUTE_VALUE | NODE_CONTENT
00077 };
00078 
00079 /*==========================================================
00080  *Exported methods:
00081  *==========================================================*/
00082 
00083         guint mlview_tree_editor_get_type (void) ;
00084 
00085         GtkWidget * 
00086         mlview_tree_editor_new (MlViewAppContext * a_app_context) ;
00087 
00088         void 
00089         mlview_tree_editor_destroy (GtkObject *a_object);
00090 
00091         guint 
00092         mlview_tree_editor_edit_xml_doc (MlViewTreeEditor *a_editor,
00093                                          MlViewXMLDocument *a_xmldoc, 
00094                                          gchar * a_doc_name);
00095 
00096         void 
00097         mlview_tree_editor_update_visual_node (MlViewTreeEditor *a_tree_editor, 
00098                                                GtkCTreeNode * a_visual_node) ;
00099 
00100         void
00101         mlview_tree_editor_update_visual_xml_node (MlViewTreeEditor *a_tree_editor,
00102                                                    xmlNode * a_node) ;
00103 
00104         gint 
00105         mlview_tree_editor_add_child_node (MlViewTreeEditor *a_tree_editor, 
00106                                            GtkCTreeNode *a_parent_node, 
00107                                            xmlNodePtr a_xml_node) ;
00108 
00109         xmlNode * 
00110         mlview_tree_editor_insert_sibling_node (MlViewTreeEditor *a_tree_editor,
00111                                                 GtkCTreeNode *a_sibling_node,
00112                                                 xmlNodePtr a_xml_node, 
00113                                                 gboolean previous) ;
00114 
00115         void 
00116         mlview_tree_editor_cut_node(MlViewTreeEditor *a_tree_editor,
00117                                     GtkCTreeNode *a_visual_node) ;
00118 
00119         void 
00120         mlview_tree_editor_create_new_xml_doc (MlViewTreeEditor *a_tree_editor,
00121                                                MlViewXMLDocument * a_xml_doc) ;
00122 
00123         GtkCTreeNode * 
00124         mlview_tree_editor_set_root_element (MlViewTreeEditor *a_tree_editor,
00125                                              xmlNodePtr) ;
00126 
00127         GtkCTree * 
00128         mlview_tree_editor_get_visual_tree (MlViewTreeEditor * a_tree_editor) ;
00129 
00130         GtkCTreeNode * 
00131         mlview_tree_editor_get_current_selected_node (MlViewTreeEditor * a_tree_editor) ;
00132 
00133         void 
00134         mlview_tree_editor_paste_node_as_child (MlViewTreeEditor *a_tree_editor, 
00135                                                 GtkCTreeNode * a_visual_parent_node) ;
00136 
00137         void 
00138         mlview_tree_editor_paste_node_as_sibling (MlViewTreeEditor *a_tree_editor, 
00139                                                   GtkCTreeNode * a_visual_sibling_node, 
00140                                                   gboolean a_previous) ;
00141 
00142         xmlDocPtr 
00143         mlview_tree_editor_get_xml_document (MlViewTreeEditor *a_tree_editor) ;
00144 
00145         void 
00146         mlview_tree_editor_set_node_type_picker (MlViewTreeEditor* a_tree_editor, 
00147                                                  MlViewNodeTypePicker * a_node_type_picker) ;
00148 
00149         MlViewNodeTypePicker * 
00150         mlview_tree_editor_get_node_type_picker (MlViewTreeEditor *a_tree_editor) ;
00151 
00152         void 
00153         mlview_tree_editor_add_child_node_interactive (MlViewTreeEditor *a_tree_editor) ;
00154 
00155         void 
00156         mlview_tree_editor_insert_sibling_node_interactive (MlViewTreeEditor *a_tree_editor) ;
00157 
00158         void  
00159         mlview_tree_editor_insert_next_sibling_node_interactive (MlViewTreeEditor *a_tree_editor) ;
00160 
00161         void 
00162         mlview_tree_editor_insert_prev_sibling_node_interactive (MlViewTreeEditor *a_tree_editor) ;
00163 
00164         void 
00165         mlview_tree_editor_copy_node (MlViewTreeEditor *a_tree_editor, 
00166                                       GtkCTreeNode * a_visual_node, 
00167                                       gboolean a_recursive) ;
00168 
00169         GtkCTreeNode * 
00170         mlview_tree_editor_find_xml_node_that_contains_str (MlViewTreeEditor * a_tree_editor, const gchar * a_str, 
00171                                                             const enum WhereInTheNodeBitmap a_where_in_node_bitmap,
00172                                                             const gboolean a_start_after) ;
00173 
00174         GtkCTreeNode * 
00175         mlview_tree_editor_find_xml_node_that_contains_str_interactive (MlViewTreeEditor *a_tree_editor) ;
00176 
00177         void 
00178         mlview_tree_editor_set_xml_document_path (MlViewTreeEditor * a_tree_editor, gchar * a_file_path) ;
00179 
00180         void 
00181         mlview_tree_editor_set_application_context (MlViewTreeEditor * a_tree_editor,
00182                                                          MlViewAppContext *a_app_context) ;
00183         MlViewAppContext * 
00184         mlview_tree_editor_get_application_context (MlViewTreeEditor *a_tree_editor) ;
00185         
00186         void 
00187         mlview_tree_editor_expand_tree_to_depth (MlViewTreeEditor * a_editor,
00188                                                       gint a_depth) ;
00189         void 
00190         mlview_tree_editor_update_contextual_menu (MlViewTreeEditor * a_tree_editor,
00191                                                    GtkMenu ** a_menu_ptr) ;
00192 
00193         void  
00194         mlview_tree_editor_update_child_node_added (MlViewTreeEditor * a_tree_editor,
00195                                                     xmlNode *a_parent_node, xmlNode *a_added_node) ;
00196 
00197         void 
00198         mlview_tree_editor_update_node_cut (MlViewTreeEditor *a_tree_editor, xmlNode *a_parent_node,
00199                                                  xmlNode *a_cut_node) ;
00200         
00201         void 
00202         mlview_tree_editor_update_node_pasted (MlViewTreeEditor *a_tree_editor, 
00203                                                xmlNode *a_parent_node,
00204                                                xmlNode *a_pasted_node) ;
00205 
00206         void 
00207         mlview_tree_editor_update_sibling_node_inserted (MlViewTreeEditor * a_tree_editor,
00208                                                          xmlNode * a_sibling_node,
00209                                                          xmlNode * a_inserted_node,
00210                                                          gboolean a_previous) ;
00211 
00212 /*===============================================================
00213  *The structure representing the class of all the MlViewTreeEditor objects.
00214  *==============================================================*/
00215         struct _MlViewTreeEditorClass{
00216                 GtkVBoxClass parent_class ;
00217 
00218                 /*============================
00219                  *signal handlers definitions
00220                  *===========================
00221                  */
00222                 void (*tree_changed) (MlViewTreeEditor *a_editor, gpointer a_data) ;
00223 
00224                 /*mark signals... not used*/
00225                 void (*mark_set_to_node) (MlViewTreeEditor *a_editor, 
00226                                           GtkCTree * a_visual_tree, 
00227                                           GtkCTreeNode *a_visual_node, 
00228                                           gpointer a_user_data) ;
00229 
00230                 void (*mark_removed_from_node) (MlViewTreeEditor *a_editor, 
00231                                                 GtkCTree * a_visual_tree, 
00232                                                 GtkCTreeNode *a_node, 
00233                                                 gpointer a_user_data) ;
00234                 /*copy/cut/paste signals*/
00235                 void (*node_cut) (MlViewTreeEditor *a_editor, 
00236                                   GtkCTreeNode *a_visual_node, 
00237                                   gpointer a_user_data) ;
00238 
00239                 void (*node_pasted) (MlViewTreeEditor *a_editor, 
00240                                      GtkCTreeNode *a_visual_node, 
00241                                      gpointer a_user_data) ;
00242 
00243                 void (*node_added) (MlViewTreeEditor *a_editor, 
00244                                     GtkCTreeNode *a_visual_node,  
00245                                     gpointer a_user_data) ;
00246 
00247                 void (*node_selected) (MlViewTreeEditor *a_editor, 
00248                                        GtkCTreeNode *a_visual_node, 
00249                                        gpointer a_user_data) ;
00250 
00251                 void (*node_unselected) (MlViewTreeEditor *a_editor, 
00252                                          GtkCTreeNode *a_visual_node, 
00253                                          gpointer a_user_data) ;
00254         };
00255         
00256 
00257 #ifdef __cplusplus
00258 }
00259 #endif /*__cplusplus*/
00260 
00261 #endif /*__MLVIEW_TREE_EDITOR_H__*/

Generated on Sat Jul 6 09:57:36 2002 for Gnome-MlView by doxygen1.2.16