| Text-Editor-Vip documentation | Contained in the Text-Editor-Vip distribution. |
Text::Editor::Vip::CommandBlock - Allows grouping of do and undo commands
use Text::Editor::Vip::CommandBlock my $undo_block = new Text::Editor::Vip::CommandBlock ( $buffer , "\$buffer->Insert(\"$stringified_text_to_insert\", $use_smart_indentation) ;", ' #' , "# undo for \$buffer->Insert(\"$stringified_text_to_insert\", $use_smart_indentation)", ' ' ) ;
Text::Editor::Vip::CommandBlock allows grouping of undo blocks by automatically manipulating and decrementing the do and undo stack prefix. See DoUndoRedo.pm
Creates a new instance of Text::Editor::Vip::CommandBlock. See SYNOPSIS for and example.
new takes five arguments:
See DoUndoRedo.pm to understand how this is used
This sub is automatically called by perl when a command block goes out of scope. This sub will decrement the do/undo stack level.
This sub is private and should only be called by perl.
Khemir Nadim ibn Hamouda CPAN ID: NKH mailto:nadim@khemir.net http:// no web site
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
| Text-Editor-Vip documentation | Contained in the Text-Editor-Vip distribution. |
package Text::Editor::Vip::CommandBlock; use strict; use warnings ; use Text::Editor::Vip::Buffer::DoUndoRedo ; BEGIN { use Exporter (); use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); $VERSION = 0.01; @ISA = qw (Exporter); @EXPORT = qw (); @EXPORT_OK = qw (); %EXPORT_TAGS = (); } #-------------------------------------------------------------------------------
#---------------------------------------------------------------------------- sub new {
my ($class, $buffer, $do, $do_prefix, $undo, $undo_prefix) = @_; $do ||= '' ; $do_prefix ||= '' ; $undo ||= '' ; $undo_prefix ||= '' ; PushUndoStep($buffer, $do, $undo) ; IncrementUndoStackLevel($buffer, $do_prefix, $undo_prefix) ; my $this = bless ( { BUFFER => $buffer, DO_PREFIX => $do_prefix, UNDO_PREFIX => $undo_prefix} , ref ($class) || $class ); return ($this); } #------------------------------------------------------------------------------- sub DESTROY {
my $this = shift ; DecrementUndoStackLevel($this->{BUFFER}, $this->{DO_PREFIX}, $this->{UNDO_PREFIX}) ; } #------------------------------------------------------------------------------- 1 ;