| Conglomerate Programmer's Reference Manual |
|---|
CongCommand —
#define DEBUG_COMMAND_LIFETIMES struct CongCommand; #define CONG_COMMAND (obj) #define CONG_COMMAND_CLASS (klass) #define IS_CONG_COMMAND (obj) GType cong_command_get_type (void); CongCommand* cong_command_construct (CongCommand *command, CongDocument *doc, const gchar *description, const gchar *consolidation_id); CongCommand* cong_command_private_new (CongDocument *doc, const gchar *description, const gchar *consolidation_id); CongDocument* cong_command_get_document (CongCommand *command); const gchar* cong_command_get_description (CongCommand *command); const gchar* cong_command_get_consolidation_id (CongCommand *command); void cong_command_undo (CongCommand *command); void cong_command_redo (CongCommand *command); void cong_command_merge (CongCommand *dst, CongCommand *src); gboolean cong_command_has_ever_been_undone (CongCommand *cmd); void cong_command_add_modification (CongCommand *cmd, CongModification *modification); void cong_command_add_node_make_orphan (CongCommand *cmd, CongNodePtr node); void cong_command_add_node_add_after (CongCommand *cmd, CongNodePtr node, CongNodePtr older_sibling); void cong_command_add_node_add_before (CongCommand *cmd, CongNodePtr node, CongNodePtr younger_sibling); void cong_command_add_node_set_parent (CongCommand *cmd, CongNodePtr node, CongNodePtr adoptive_parent); void cong_command_add_node_set_text (CongCommand *cmd, CongNodePtr node, const gchar *new_content); void cong_command_add_node_set_attribute (CongCommand *cmd, CongNodePtr node, xmlNs *ns_ptr, const gchar *name, const gchar *value); void cong_command_add_node_remove_attribute (CongCommand *cmd, CongNodePtr node, xmlNs *ns_ptr, const gchar *name); void cong_command_add_selection_change (CongCommand *cmd, const CongLocation *new_logical_start, const CongLocation *new_logical_end); void cong_command_add_cursor_change (CongCommand *cmd, const CongLocation *new_location); void cong_command_add_set_dtd_ptr (CongCommand *cmd, xmlDtdPtr dtd_ptr); void cong_command_add_set_clipboard (CongCommand *cmd, const gchar *clipboard_source); void cong_command_add_node_recursive_delete (CongCommand *cmd, CongNodePtr node); void cong_command_for_each_location (CongCommand *cmd, CongUpdateLocationCallback callback, gpointer user_data); void cong_command_add_delete_range (CongCommand *cmd, CongRange *range); void cong_command_add_delete_selection (CongCommand *cmd); void cong_command_add_insert_text_at_cursor (CongCommand *cmd, const gchar *string); void cong_command_add_nullify_cursor (CongCommand *cmd); void cong_command_add_nullify_selection (CongCommand *cmd); CongNodePtr cong_command_add_xml_frag_data_nice_split2 (CongCommand *cmd, const CongLocation *loc); void cong_command_add_merge_adjacent_text_nodes (CongCommand *cmd); void cong_command_add_merge_adjacent_text_children_of_node (CongCommand *cmd, CongNodePtr node); gboolean cong_command_can_add_reparent_selection (CongCommand *cmd, CongNodePtr new_parent); CongNodePtr cong_command_add_reparent_selection (CongCommand *cmd, CongNodePtr node); CongNodePtr cong_command_add_node_split3 (CongCommand *cmd, CongNodePtr node, int c0, int c1); void cong_command_add_remove_tag (CongCommand *cmd, CongNodePtr node); void cong_command_add_set_cursor_to_first_text_descendant (CongCommand *cmd, CongNodePtr node); void cong_command_add_set_external_dtd (CongCommand *cmd, const gchar *root_element, const gchar *public_id, const gchar *system_id); gboolean cong_command_add_required_sub_elements (CongCommand *cmd, CongNodePtr node);
#define CONG_COMMAND(obj) G_TYPE_CHECK_INSTANCE_CAST (obj, CONG_COMMAND_TYPE, CongCommand)
| obj : |
#define CONG_COMMAND_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, CONG_COMMAND_TYPE, CongCommandClass)
| klass : |
#define IS_CONG_COMMAND(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, CONG_COMMAND_TYPE)
| obj : |
CongCommand* cong_command_construct (CongCommand *command, CongDocument *doc, const gchar *description, const gchar *consolidation_id);
TODO: Write me
| command : | |
| doc : | |
| description : | |
| consolidation_id : | |
| Returns : |
CongCommand* cong_command_private_new (CongDocument *doc, const gchar *description, const gchar *consolidation_id);
Should only be called by the internals of CongDocument; if you wish to create a CongCommand you should call cong_document_begin_command() instead.
| doc : | The CongDocument upon which the command is to act. |
| description : | Human-readable, translated name for this command, as it will appear in the undo/redo history widget |
| consolidation_id : | A string ID (or NULL) for this command to allow multiple similar commands to be consolidated into a single command. For example, multiple characters being typed at the keboard can be merged into a single "Typing" command. |
| Returns : | the new CongCommand |
CongDocument* cong_command_get_document (CongCommand *command);
TODO: Write me
| command : | |
| Returns : |
const gchar* cong_command_get_description (CongCommand *command);
| command : | a command |
| Returns : | the human-readable description of this command |
const gchar* cong_command_get_consolidation_id
(CongCommand *command);Gets the ID (or NULL) of the command used for consolidating multiple similar operations into a single entry in the undo/redo history
| command : | The relevant CongCommand |
| Returns : | a constant string, or NULL if no merging is to occur |
void cong_command_undo (CongCommand *command);
Undoes the command. All modifications contained within the command are undone from the document (in reverse order), the document's "is-modified" flag is set to whatever it was when the command was created.
| command : | a command |
void cong_command_redo (CongCommand *command);
Redoes a command that has previously been undone. Replays all the modifications on the document in order from start to finish.
| command : |
void cong_command_merge (CongCommand *dst, CongCommand *src);
Takes all of the modifications from src and places them on the end of dst. Only to be used by the internals of the undo/redo management
| dst : | The CongCommand into which the modifications are to be added |
| src : | The CongCommand from which the modifications are to be taken |
gboolean cong_command_has_ever_been_undone
(CongCommand *cmd);A function used by the command consolidation/merging system. If you undo then redo a command, further similar operations should get separate entries in the undo/redo histroy, rather than being merged.
| cmd : | |
| Returns : | A gboolean, answering the question "has this command ever been undone?" |
void cong_command_add_modification (CongCommand *cmd, CongModification *modification);
TODO: Write me
| cmd : | |
| modification : |
void cong_command_add_node_make_orphan
(CongCommand *cmd,
CongNodePtr node);TODO: Write me
| cmd : | |
| node : |
void cong_command_add_node_add_after (CongCommand *cmd, CongNodePtr node, CongNodePtr older_sibling);
TODO: Write me
| cmd : | |
| node : | |
| older_sibling : |
void cong_command_add_node_add_before
(CongCommand *cmd,
CongNodePtr node,
CongNodePtr younger_sibling);TODO: Write me
| cmd : | |
| node : | |
| younger_sibling : |
void cong_command_add_node_set_parent
(CongCommand *cmd,
CongNodePtr node,
CongNodePtr adoptive_parent);TODO: Write me
| cmd : | |
| node : | |
| adoptive_parent : |
void cong_command_add_node_set_text (CongCommand *cmd, CongNodePtr node, const gchar *new_content);
TODO: Write me
| cmd : | |
| node : | |
| new_content : |
void cong_command_add_node_set_attribute
(CongCommand *cmd,
CongNodePtr node,
xmlNs *ns_ptr,
const gchar *name,
const gchar *value);TODO: Write me
| cmd : | |
| node : | |
| ns_ptr : | |
| name : | |
| value : |
void cong_command_add_node_remove_attribute
(CongCommand *cmd,
CongNodePtr node,
xmlNs *ns_ptr,
const gchar *name);TODO: Write me
| cmd : | |
| node : | |
| ns_ptr : | |
| name : |
void cong_command_add_selection_change
(CongCommand *cmd,
const CongLocation *new_logical_start,
const CongLocation *new_logical_end);TODO: Write me
| cmd : | |
| new_logical_start : | |
| new_logical_end : |
void cong_command_add_cursor_change (CongCommand *cmd, const CongLocation *new_location);
TODO: Write me
| cmd : | |
| new_location : |
void cong_command_add_set_dtd_ptr (CongCommand *cmd, xmlDtdPtr dtd_ptr);
TODO: Write me
| cmd : | |
| dtd_ptr : |
void cong_command_add_set_clipboard (CongCommand *cmd, const gchar *clipboard_source);
| cmd : | |
| clipboard_source : |
void cong_command_add_node_recursive_delete
(CongCommand *cmd,
CongNodePtr node);TODO: Write me
| cmd : | |
| node : |
void cong_command_for_each_location (CongCommand *cmd, CongUpdateLocationCallback callback, gpointer user_data);
TODO: Write me
| cmd : | |
| callback : | |
| user_data : |
void cong_command_add_delete_range (CongCommand *cmd, CongRange *range);
Utility function to add a series of modifications to the given command.
Deletes the given range within the document (can include multiple nodes). Updates cursor and selection accordingly.
| cmd : | |
| range : | a range within the document; both start and end must have the same parent, so that proper nesting is maintained |
void cong_command_add_delete_selection
(CongCommand *cmd);Utility function to add a series of modifications to the given command.
Deletes the current selection within the document, updating cursor and selection accordingly.
| cmd : |
void cong_command_add_insert_text_at_cursor
(CongCommand *cmd,
const gchar *string);Utility function to add a series of modifications to the given command.
Inserts the given text at the cursor, moving the cursor to the end of the inserted text.
| cmd : | |
| string : | a UTF-8 string |
void cong_command_add_nullify_cursor (CongCommand *cmd);
TODO: Write me
| cmd : |
void cong_command_add_nullify_selection
(CongCommand *cmd);TODO: Write me
| cmd : |
CongNodePtr cong_command_add_xml_frag_data_nice_split2 (CongCommand *cmd, const CongLocation *loc);
TODO: Write me
| cmd : | |
| loc : | |
| Returns : |
void cong_command_add_merge_adjacent_text_nodes
(CongCommand *cmd);Utility function to add a series of modifications to the given command.
Searches the entire document, looking for text nodes adjacent to other text nodes, merging them together.
| cmd : |
void cong_command_add_merge_adjacent_text_children_of_node
(CongCommand *cmd,
CongNodePtr node);Utility function to add a series of modifications to the given command.
Searches direct children of the given node, looking for text nodes adjacent to other text nodes, merging them together.
| cmd : | |
| node : |
gboolean cong_command_can_add_reparent_selection
(CongCommand *cmd,
CongNodePtr new_parent);TODO: Write me
| cmd : | |
| new_parent : | |
| Returns : |
CongNodePtr cong_command_add_reparent_selection (CongCommand *cmd, CongNodePtr node);
Utility function to add a series of modifications to the given command.
Splits the selected nodes as necessary and adds as a child of the input node
| cmd : | |
| node : | |
| Returns : |
CongNodePtr cong_command_add_node_split3 (CongCommand *cmd, CongNodePtr node, int c0, int c1);
Utility function to add a series of modifications to the given command.
Splits a text or comment node into 3 nodes, and returns a pointer to the middle one
| cmd : | |
| node : | |
| c0 : | |
| c1 : | |
| Returns : | the middle node of the three newly-created nodes |
void cong_command_add_remove_tag (CongCommand *cmd, CongNodePtr node);
Utility function to add a series of modifications to the given command.
Removes the given node from the tree, moving all of its children into the space it occupied.
| cmd : | |
| node : | a node |
void cong_command_add_set_cursor_to_first_text_descendant
(CongCommand *cmd,
CongNodePtr node);TODO: Write me
| cmd : | |
| node : |
void cong_command_add_set_external_dtd
(CongCommand *cmd,
const gchar *root_element,
const gchar *public_id,
const gchar *system_id);Utility function to add a series of modifications to the given command.
Sets an external DTD on the document, or removes it if NULL is given
| cmd : | a command |
| root_element : | the root element of the document |
| public_id : | |
| system_id : |
gboolean cong_command_add_required_sub_elements
(CongCommand *cmd,
CongNodePtr node);
| cmd : | |
| node : | |
| Returns : |
| << Part III. Undo/Redo System | CongCommandHistory >> |