<?xml version="1.0"?>
<!--
 This example is from an old Win32::GUI 0.655 sample. It has been entirely converted to use NEM.
-->
<GUI
xmlns="http://www.numeninest.com/Perl/WGX"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.numeninest.com/Perl/WGX http://www.numeninest.com/Perl/WGX/win32-gui-xmlbuilder.xsd">
	<Cursor name='Cursor' file='harrow.cur'/>
	<Class name='C' icon='exec:$Win32::GUI::XMLBuilder::ICON' cursor='$self->{Cursor}'/>
	<WGXPre>my $dblclick = 0;</WGXPre>
	<WGXMenu name='M'>
		<Button name='Options' text='&amp;Options'>
			<Item name='Indent' text='Set &amp;indent...' onClick='sub {
				$self->{Window}->Disable();
				$self->{IndentVal}->Text($self->{TV}->Indent());
				$self->{IndentWin}->Show();
				$self->{IndentVal}->SetFocus();
				$self->{IndentVal}->Select(0, length($self->{IndentVal}->Text()));
				return 1;
			}'/>
			<Item name='Font' text='Choose &amp;font...' onClick='sub {
				$self->{Window}->Disable();
				my @font = GUI::ChooseFont();
				if($font[0] eq "-name") {
					undef $TreeviewFont;
					$TreeviewFont = new GUI::Font(@font);
					$self->{TV}->SetFont($TreeviewFont);
				}
				$self->{Window}->Enable();
				$self->{Window}->SetForegroundWindow();
			}'/>
			<Item name='HasLines' text='&amp;Lines' checked='1' onClick='sub {
				my $checked = !$self->{HasLines}->Checked;
				printf "TV.Style is: %08X\n", $self->{TV}->GetWindowLong(-16);
				$self->{TV}->Change(-lines => $checked);
				printf "TV.Style after -lines => %d is: %08X\n", $checked, $self->{TV}->GetWindowLong(-16);
				$self->{HasLines}->Checked($checked);
			}'/>
			<Item name='HasRootLines' text='&amp;Root lines' checked='1' onClick='sub {
				my $checked = !$self->{HasRootLines}->Checked;
				printf "TV.Style is: %08X\n", $self->{TV}->GetWindowLong(-16);
				$self->{TV}->Change(-rootlines => $checked);
				printf "TV.Style after -rootlines => %d is: %08X\n", $checked, $self->{TV}->GetWindowLong(-16);
				$self->{HasRootLines}->Checked($checked);
			}'/>
			<Item name='HasButtons' text='&amp;Buttons' checked='1' onClick='sub {
				my $checked = !$self->{HasButtons}->Checked;
				printf "TV.Style is: %08X\n", $gui->{TV}->GetWindowLong(-16);
				$self->{TV}->Change(-buttons => $checked);
				printf "TV.Style after -buttons => %d is: %08X\n", $checked, $self->{TV}->GetWindowLong(-16);
				$self->{HasButtons}->Checked($checked);
			}'/>
			<Item name='HasImages' text='I&amp;mage' checked='1' onClick='sub {
				if ($self->{HasImages}->Checked) {
					$self->{HasImages}->Checked(0);
					$self->{TV}->SetImageList(0);
				} else {
					$self->{HasImages}->Checked(1);
					$self->{TV}->SetImageList($self->{IL});
				}
			}'/>
			<Item seperator='1'/>
			<Item name='Exit' text='E&amp;xit' onClick='sub { $self->{Window}->PostQuitMessage(0); }'/>
		</Button>
	</WGXMenu>
	<Window name='Window' 
		dim='100, 100, 300, 200'
		text='Win32::GUI TEST - TreeView'
		menu='$self->{M}'
		class='$self->{C}'
		onTerminate='sub { $_[0]->PostQuitMessage(0); }'
	>
		<ImageList name='IL' width='16' height='16'>
			<Item bitmap='node.bmp'/>
			<Item bitmap='node_sel.bmp'/>
		</ImageList>
		<TreeView name='TV'
			text='hello world!'
			lines='1'
			rootlines='1'
			buttons='1'
			visible='1'
			imagelist='$self->{IL}'
			onNodeClick='sub {
				my %N = $_[0]->GetItem($_[1]);
				print "Clicked node $N{-text} (checkbox is ".($_[0]->ItemCheck($_[1]) ? "on" : "off").")\n";
				return 1;
			}'
			onExpand='sub {
				my %N = $_[0]->GetItem($_[1]);
				print "Expanded node $N{-text}\n";
				$dblclick = 1;
				return 1;
			}'
			onCollapse='sub {
				my %N = $_[0]->GetItem($_[1]);
				print "Collapsed node $N{-text}\n";
				$dblclick = 1;
				return 1;
			}'
			onDblClick='sub {
				if(!$dblclick) {
					my($x, $y) = Win32::GUI::GetCursorPos();
					print "Double click at $x, $y\n";
					my $node = $_[0]->SelectedItem();
					if($node) {
						$_[0]->ItemCheck($node, !$_[0]->ItemCheck($node));
						my %t = $_[0]->GetItem($node);
						foreach my $k (keys %t) {
							print "$k => $t{$k}\n";
						}
					}
				} else {
					print "got Collapse/Expand, ignoring DblClick\n";
					$dblclick = 0;
				}
				return 1;
			}'
		>
			<Item name='TV1' text='ROOT' image='0' selectedimage='1'>
				<Item name='TV2' text='SUB 2' image='0' selectedimage='1' bold='1'/>
				<Item name='TV3' text='SUB 1' image='0' selectedimage='1' selected='1'/>
			</Item>
		</TreeView>
	</Window>
	<Window name='IndentWin'
		dim='110, 110, 200, 100'
		text='Treeview Indent'
		show='0'
		onTerminate='sub {
			$self->{IndentWin}->Hide();
			$self->{Window}->Enable();
			$self->{Window}->SetForegroundWindow();
		}'
	>
		<Label
			height='20' width='100' align='center' text='Indent Value: '
		/>
		<Textfield name='IndentVal'
			height='20' left='100' width='exec:$self->{IndentWin}->ScaleWidth()-100'
		/>
		<Button
			top='20' height='exec:$self->{IndentWin}->ScaleHeight()-20' text='Set'
			onClick='sub {
				$self->{TV}->Indent($self->{IndentVal}->Text());
				$self->{IndentWin}->Hide();
				$self->{Window}->Enable();
				$self->{Window}->SetForegroundWindow();
			}'
		/>
	</Window>
</GUI>