From: <ra...@me...> - 2005-08-28 23:28:53
|
Scintilla is a very powerfull source code editor,=20 I am trying to test the Perl wrapper by Laurent Rocher, below is the starting code from the Win32::GUI::Scintilla docs, The only problem now I am having is how to activate the Folding and how to use it, can anyone please post code on how to display the folding margine and symbols etc. I see in the module functions for folding but can not figure out how. use Win32::GUI; use Win32::GUI::Scintilla; # main Window $|=3D1; $Window =3D new Win32::GUI::Window ( -name =3D> "Window", -title =3D> "Scintilla test", -pos =3D> [100, 100], -size =3D> [400, 400], ) or die "new Window"; # Create Scintilla Edit Window # $Edit =3D new Win32::GUI::Scintilla ( # -parent =3D> $Window, # Or =20 $Edit =3D $Window->AddScintilla ( -name =3D> "Edit", -pos =3D> [0, 0], -size =3D> [400, 400], -text =3D> "Test\n", ) or die "new Edit"; # Call Some method $Edit->AddText ("add\n"); $Edit->AppendText ("append\n"); # Event loop =20 $Window->Show(); Win32::GUI::Dialog(); # Main window event handler sub Window_Terminate { # Call Some method print "GetText =3D ", $Edit->GetText(), "\n"; print "GetSelText =3D ", $Edit->GetSelText(), "\n"; print "GetTextRange(2) =3D ", $Edit->GetTextRange(2), "\n"; print "GetTextRange(2, 6) =3D ", $Edit->GetTextRange(2, 6), "\n"; return -1; } # Main window resize sub Window_Resize { if (defined $Window) { ($width, $height) =3D ($Window->GetClientRect)[2..3]; $Edit->Move (0, 0); $Edit->Resize ($width, $height); } }=20 # Scintilla Event Notification sub Edit_Notify { my (%evt) =3D @_; print "Edit Notify =3D ", %evt, "\n"; } |
From: Jason P. <ma...@cc...> - 2005-08-29 03:14:39
|
ra...@me... wrote: > Scintilla is a very powerfull source code editor, > I am trying to test the Perl wrapper by Laurent Rocher, > below is the starting code from the Win32::GUI::Scintilla docs, > The only problem now I am having is how to activate the Folding > and how to use it, can anyone please post code on how to display > the folding margine and symbols etc. I see in the module functions > for folding but can not figure out how. > > use Win32::GUI; > use Win32::GUI::Scintilla; # main Window > $|=1; > > $Window = new Win32::GUI::Window ( > -name => "Window", > -title => "Scintilla test", > -pos => [100, 100], > -size => [400, 400], > ) or die "new Window"; # Create Scintilla Edit Window > > # $Edit = new Win32::GUI::Scintilla ( > # -parent => $Window, > # Or > > $Edit = $Window->AddScintilla ( > -name => "Edit", > -pos => [0, 0], > -size => [400, 400], > -text => "Test\n", > ) or die "new Edit"; # Call Some method > > $Edit->AddText ("add\n"); > $Edit->AppendText ("append\n"); # Event loop > > $Window->Show(); > Win32::GUI::Dialog(); # Main window event handler > > sub Window_Terminate { > # Call Some method > print "GetText = ", $Edit->GetText(), "\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) { > ($width, $height) = ($Window->GetClientRect)[2..3]; > $Edit->Move (0, 0); > $Edit->Resize ($width, $height); > } > } > > # Scintilla Event Notification > sub Edit_Notify { > my (%evt) = @_; > print "Edit Notify = ", %evt, "\n"; > } I had been toying with this in the past, and you are right, it Is a very powerful editor. I had never actually bothered to make use of the _Notify until you mentioned it, and realized that it is completely useless as it is *never* fired. I am having serious problems even locating where such an event is so much as setup. There are some definitions for COMMAND and NOTIFY constants possibly usable by Win32::GUI::Hook, but I tesetd them manually and got no result. I would suggest contacting Laurent Rocher (lrocher_cpan_org). While I am not currently making use of it, I can point out an issue I have had in the past, in the event you have also run into such a "feature". : When saving a file, all lines have a single space inserted at the beginning. Jason P. |
From: Jeremy W. <jez...@ho...> - 2005-08-30 08:25:08
|
>I had never actually bothered to make use of the _Notify until you >mentioned it, and realized that it is completely useless as it is *never* >fired. I am having serious problems even locating where such Interesting - I'm getting the event firing. This control only works under OEM - so maybe that's the problem? I have the following code in my _Notify handler: sub Editor_Notify { my (%evt) = @_; if ($evt{-code} == Win32::GUI::Scintilla::SCN_MARGINCLICK) { if ($evt{-margin} == 2) { # Manage Folder $Editor->FolderEvent(%evt); # caret visible $Editor->ScrollCaret(); } } I think most (if not all) of this code came from one of the examples. Cheers, jez. |
From: Jason P. <ma...@cc...> - 2005-08-30 13:48:33
Attachments:
ed_test.pl
|
Jeremy White wrote: > >> I had never actually bothered to make use of the _Notify until you >> mentioned it, and realized that it is completely useless as it is >> *never* fired. I am having serious problems even locating where such > > > Interesting - I'm getting the event firing. This control only works > under OEM - so maybe that's the problem? Hmm.... Well, I'm not using NEM in my code... could this be yet another classic 5.8 vs 5.6? I've attached my test code for you to test one your end if you get a second. Jason P. |
From: Jeremy W. <jez...@ho...> - 2005-08-30 14:05:22
|
>Hmm.... >Well, I'm not using NEM in my code... could this be yet another classic 5.8 >vs 5.6? Looks like it is - just tried it under 5.8.7 and 5.6.1 - works fine under 5.6, but not 5.8. >I've attached my test code for you to test one your end if you get a >second. Ok - running under 5.6 I get the following output when typing the word 'hello' in the editor: sciViewer Notify = -code2007 sciViewer Notify = -code2013 sciViewer Notify = -code2013 sciViewer Notify = -code2013 sciViewer Notify = -code2013 sciViewer Notify = -foldLevelNow0-position0-modificationType1040-line0-linesAdde d0-foldLevelPrev0-code2008-length1 sciViewer Notify = -foldLevelNow0-position0-modificationType17-line0-linesAdded0 -foldLevelPrev0-code2008-length1 sciViewer Notify = -ch104-code2001 sciViewer Notify = -foldLevelNow0-position0-modificationType20-line0-linesAdded0 -foldLevelPrev0-code2008-length0 sciViewer Notify = -code2007 sciViewer Notify = -code2013 sciViewer Notify = -foldLevelNow0-position1-modificationType1040-line0-linesAdde d0-foldLevelPrev0-code2008-length1 sciViewer Notify = -foldLevelNow0-position1-modificationType17-line0-linesAdded0 -foldLevelPrev0-code2008-length1 sciViewer Notify = -ch101-code2001 sciViewer Notify = -foldLevelNow0-position0-modificationType20-line0-linesAdded0 -foldLevelPrev0-code2008-length1 sciViewer Notify = -code2007 sciViewer Notify = -code2013 sciViewer Notify = -foldLevelNow0-position2-modificationType1040-line0-linesAdde d0-foldLevelPrev0-code2008-length1 sciViewer Notify = -foldLevelNow0-position2-modificationType17-line0-linesAdded0 -foldLevelPrev0-code2008-length1 Cheers, jez. |