home *** CD-ROM | disk | FTP | other *** search
/ PCNET 2006 September - Disc 1 / PCNET_CD_2006_09.iso / shareware / autoit-v3-setup.exe / Examples / Helpfile / _GUICtrlListViewCopyItems.au3 < prev    next >
Encoding:
Text File  |  2006-06-17  |  6.2 KB  |  181 lines

  1. #include <GuiConstants.au3>
  2. #include <GuiListView.au3>
  3.  
  4. Opt ("GUIOnEventMode", 1)
  5. Opt ('MustDeclareVars', 1)
  6.  
  7. Dim $listview, $listview2, $Btn_MoveLeft, $Btn_MoveRight, $Btn_Exit1, $Btn_Exit2, $msg, $GUI1, $GUI2
  8. Dim $Btn_CopyRight, $Btn_CopyLeft
  9. Dim $OptionsMenu, $OptionsItem1, $OptionsItem2, $separator1, $OptionsItem3, $OptionsItem4
  10. Dim $Dock = 1, $Dock_Location = 1, $x1, $x2, $y1, $y2
  11.  
  12. $GUI1 = GUICreate("GuiListView Copy Items", 300, 220, 10, 10)
  13. $OptionsMenu = GUICtrlCreateMenu("Options")
  14. $OptionsItem1 = GUICtrlCreateMenu("Docking", $OptionsMenu)
  15.  
  16. $OptionsItem2 = GUICtrlCreateMenuItem("Docked", $OptionsItem1)
  17. $separator1 = GUICtrlCreateMenuItem("", $OptionsItem1)
  18. $OptionsItem3 = GUICtrlCreateMenuItem("Side By Side", $OptionsItem1)
  19. $OptionsItem4 = GUICtrlCreateMenuItem("Top And Bottom", $OptionsItem1)
  20. GUICtrlSetState($OptionsItem2, $GUI_CHECKED)
  21. GUICtrlSetState($OptionsItem3, $GUI_CHECKED)
  22. GUICtrlSetOnEvent($OptionsItem2, "_SetDocking")
  23. GUICtrlSetOnEvent($OptionsItem3, "_SetDockSideBySide")
  24. GUICtrlSetOnEvent($OptionsItem4, "_SetDockTopAndBottom")
  25.  
  26. GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
  27. GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
  28. GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
  29.  
  30. $listview = GUICtrlCreateListView("col1|col2|col3", 5, 5, 150, 185, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
  31. _GUICtrlListViewSetColumnWidth ($listview, 0, 60)
  32. GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
  33. GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
  34. GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_CHECKBOXES, $LVS_EX_CHECKBOXES)
  35.  
  36. $Btn_MoveRight = GUICtrlCreateButton("Move", 175, 35, 90, 20)
  37. GUICtrlSetOnEvent($Btn_MoveRight, "_MoveRight")
  38.  
  39. $Btn_CopyRight = GUICtrlCreateButton("Copy", 175, 60, 90, 20)
  40. GUICtrlSetOnEvent($Btn_CopyRight, "_CopyRight")
  41.  
  42. $Btn_Exit1 = GUICtrlCreateButton("Exit", 175, 140, 90, 25)
  43. GUICtrlSetOnEvent($Btn_Exit1, "_Exit")
  44.  
  45. $GUI2 = GUICreate("Right/Bottom Window", 300, 220, 315, 10)
  46.  
  47. GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
  48. GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
  49. GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
  50.  
  51. $Btn_MoveLeft = GUICtrlCreateButton("Move", 175, 55, 90, 20)
  52. GUICtrlSetOnEvent($Btn_MoveLeft, "_MoveLeft")
  53.  
  54. $Btn_CopyLeft = GUICtrlCreateButton("Copy", 175, 80, 90, 20)
  55. GUICtrlSetOnEvent($Btn_CopyLeft, "_CopyLeft")
  56.  
  57. $Btn_Exit2 = GUICtrlCreateButton("Exit", 175, 160, 90, 25)
  58. GUICtrlSetOnEvent($Btn_Exit2, "_Exit")
  59.  
  60. $listview2 = GUICtrlCreateListView("col1|col2|col3", 5, 25, 150, 185, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
  61. _GUICtrlListViewSetColumnWidth ($listview2, 0, 60)
  62. GUICtrlSendMsg($listview2, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
  63. GUICtrlSendMsg($listview2, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
  64. GUICtrlSendMsg($listview2, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_CHECKBOXES, $LVS_EX_CHECKBOXES)
  65.  
  66. GUICtrlCreateListViewItem("line1|data1|more1", $listview)
  67. GUICtrlCreateListViewItem("line2|data2|more2", $listview)
  68. GUICtrlCreateListViewItem("line3|data3|more3", $listview)
  69. GUICtrlCreateListViewItem("line4|data4|more4", $listview)
  70. GUICtrlCreateListViewItem("line5|data5|more5", $listview)
  71.  
  72. GUISetState(@SW_SHOW, $GUI2)
  73. GUISetState(@SW_SHOW, $GUI1)
  74.  
  75. While 1
  76.     If $Dock Then _KeepWindowsDocked()
  77.     Sleep(10)
  78. WEnd
  79.  
  80. Func _SetDocking()
  81.     If BitAND(GUICtrlRead($OptionsItem2), $GUI_CHECKED) = $GUI_CHECKED Then
  82.         GUICtrlSetState($OptionsItem2, $GUI_UNCHECKED)
  83.         $Dock = 0
  84.     Else
  85.         GUICtrlSetState($OptionsItem2, $GUI_CHECKED)
  86.         $Dock = 2
  87.     EndIf
  88.     If $Dock Then _KeepWindowsDocked()
  89. EndFunc   ;==>_SetDocking
  90.  
  91. Func _SetDockSideBySide()
  92.     If BitAND(GUICtrlRead($OptionsItem3), $GUI_CHECKED) = $GUI_CHECKED Then
  93.         GUICtrlSetState($OptionsItem3, $GUI_UNCHECKED)
  94.         GUICtrlSetState($OptionsItem4, $GUI_CHECKED)
  95.         $Dock_Location = 2
  96.     Else
  97.         GUICtrlSetState($OptionsItem3, $GUI_CHECKED)
  98.         GUICtrlSetState($OptionsItem4, $GUI_UNCHECKED)
  99.         $Dock_Location = 1
  100.         If $Dock Then $Dock = 2
  101.     EndIf
  102.     If $Dock Then _KeepWindowsDocked()
  103. EndFunc   ;==>_SetDockSideBySide
  104.  
  105. Func _SetDockTopAndBottom()
  106.     If BitAND(GUICtrlRead($OptionsItem4), $GUI_CHECKED) = $GUI_CHECKED Then
  107.         GUICtrlSetState($OptionsItem4, $GUI_UNCHECKED)
  108.         GUICtrlSetState($OptionsItem3, $GUI_CHECKED)
  109.         $Dock_Location = 1
  110.     Else
  111.         GUICtrlSetState($OptionsItem4, $GUI_CHECKED)
  112.         GUICtrlSetState($OptionsItem3, $GUI_UNCHECKED)
  113.         $Dock_Location = 2
  114.         If $Dock Then $Dock = 2
  115.     EndIf
  116.     If $Dock Then _KeepWindowsDocked()
  117. EndFunc   ;==>_SetDockTopAndBottom
  118.  
  119. Func _KeepWindowsDocked()
  120.     Local $p_win1 = WinGetPos($GUI1)
  121.     Local $p_win2 = WinGetPos($GUI2)
  122.     If $Dock_Location == 1 Then
  123.         If (($p_win1[0] <> $x1 Or $p_win1[1] <> $y1) And BitAND(WinGetState($GUI1), 8) Or $Dock = 2) Then
  124.             $x1 = $p_win1[0]
  125.             $y1 = $p_win1[1]
  126.             $x2 = $p_win1[2] + $x1
  127.             $y2 = $y1
  128.             WinMove($GUI2, "", $x2, $y2)
  129.             $Dock = 1
  130.         ElseIf (($p_win2[0] <> $x2 Or $p_win2[1] <> $y2) And BitAND(WinGetState($GUI2), 8)) Then
  131.             $x2 = $p_win2[0]
  132.             $y2 = $p_win2[1]
  133.             $x1 = $p_win2[0] - $p_win1[2]
  134.             $y1 = $y2
  135.             WinMove($GUI1, "", $x1, $y1)
  136.         EndIf
  137.     Else
  138.         If (($p_win1[0] <> $x1 Or $p_win1[1] <> $y1) And BitAND(WinGetState($GUI1), 8) Or $Dock = 2) Then
  139.             $x1 = $p_win1[0]
  140.             $y1 = $p_win1[1]
  141.             $x2 = $x1
  142.             $y2 = $p_win1[3] + $y1
  143.             WinMove($GUI2, "", $x2, $y2)
  144.             $Dock = 1
  145.         ElseIf (($p_win2[0] <> $x2 Or $p_win2[1] <> $y2) And BitAND(WinGetState($GUI2), 8)) Then
  146.             $x2 = $p_win2[0]
  147.             $y2 = $p_win2[1]
  148.             $x1 = $x2
  149.             $y1 = $p_win2[1] - $p_win1[3]
  150.             WinMove($GUI1, "", $x1, $y1)
  151.         EndIf
  152.     EndIf
  153. EndFunc   ;==>_KeepWindowsDocked
  154.  
  155. Func _CopyRight()
  156.     _GUICtrlListViewCopyItems ($listview, $listview2)
  157. EndFunc   ;==>_CopyRight
  158.  
  159. Func _MoveRight()
  160.     _GUICtrlListViewCopyItems ($listview, $listview2, 1)
  161. EndFunc   ;==>_MoveRight
  162.  
  163. Func _CopyLeft()
  164.     _GUICtrlListViewCopyItems ($listview2, $listview)
  165. EndFunc   ;==>_CopyLeft
  166.  
  167. Func _MoveLeft()
  168.     _GUICtrlListViewCopyItems ($listview2, $listview, 1)
  169. EndFunc   ;==>_MoveLeft
  170.  
  171. Func _Exit()
  172.     Exit
  173. EndFunc   ;==>_Exit
  174.  
  175. Func SpecialEvents()
  176.     Select
  177.         Case @GUI_CtrlId = $GUI_EVENT_CLOSE
  178.             Exit
  179.     EndSelect
  180. EndFunc   ;==>SpecialEvents
  181.