# perl -w
use strict;
use warnings;
use Win32::GUI();
use Win32::GUI::Scintilla;
# main Window
my $Window = new Win32::GUI::Window (
-name => "Window",
-title => "Scintilla test",
-pos => [100, 100],
-size => [400, 400],
) or die "new Window";
$Window->AddButton (
-name => "Test",
-text => "Test",
-pos => [0, 0],
-size => [100, 10],
);
# Create Scintilla Edit Window
# $Edit = new Win32::GUI::Scintilla (
# -parent => $Window,
# Or
my $Edit = $Window->AddScintilla (
-name => "Edit",
-pos => [0, 10],
-size => [$Window->ScaleWidth(), $Window->ScaleHeight()-10],
-text => "Test\n",
) or die "new Edit";
# Call Some method
$Edit->AddText ("add\n");
$Edit->AppendText ("append\n");
# Event loop
$Edit->Show();
$Window->Show();
Win32::GUI::Dialog();
$Window->Hide();
exit(0);
# Main window event handler
sub Window_Terminate {
# Call Some method
print "GetText = ---\n", $Edit->GetText(), "\n---\n";
print "GetLine(1) = ", $Edit->GetLine(1), "\n";
print "GetSelText = ", $Edit->GetSelText(), "\n";
print "GetTextRange(2) = ", $Edit->GetTextRange(2), "\n";
print "GetTextRange(2, 6) = ", $Edit->GetTextRange(2, 6), "\n";
return -1;
}
# Main window resize
sub Window_Resize {
if (defined $Window) {
my ($width, $height) = ($Window->GetClientRect)[2..3];
$Edit->Move (0, 10);
$Edit->Resize ($width, $height-10);
}
}
# Scintilla Event Notification
sub Edit_Notify {
my (%evt) = @_;
# print "Edit Notify = ", %evt, "\n";
}
sub Edit_Change {
print "Change!!!\n";
}
sub Edit_GotFocus {
print "GotFocus!!!\n";
}
sub Edit_LostFocus {
print "LostFocus!!!\n";
}