muhammadfredo
04-18-2012, 06:40 AM
I tried create slider on treeview using (dotNetObject "button") inside plugin doesnt work at all. but when I create inside dialog it works.
heres plugin code:
plugin modifier 'slider'
name:"slider"
classID:#(0x1e11866d, 0x3f9028db)
(
rollout test "Test"
(
local slideH, slideW=7, slideOffset=10, slideIndex
local nodeTree
local pressed=false, val
local Ccolor = dotnetclass "system.drawing.color"
local slide=dotNetObject "button"
dotNetControl treeView "system.windows.forms.treeView" height:200 width:150 align:#center
fn MouseDown e=
(
val=slide.width-e.x
pressed=true
)
fn MouseUp=
(
slide.width=slideW
pressed=false
)
fn mousemove e=
(
if pressed do
(
if slide.width < 7 do slide.width=7;
if slide.width > 107 then
(
slide.width=107
)else(slide.width=val+e.x)
)
)
fn createSlide=
(
slide.backColor=(dotNetClass "system.drawing.color").blue
slide.height=slideH; slide.width=7
slide.location.x=slideOffset; slide.location.y=(slideH*slideIndex)+1
treeView.controls.add slide
dotnet.addEventHandler slide "MouseDown" MouseDown
dotnet.addEventHandler slide "MouseUp" MouseUp
dotnet.addEventHandler slide "mousemove" mousemove
slide.flatStyle=slide.flatStyle.flat
slide.backColor=slide.backColor.blue
slide.flatappearance.mouseoverbackcolor = Ccolor.green
slide.flatappearance.mousedownbackcolor = Ccolor.red
slide.flatappearance.bordercolor = Ccolor.yellow
)
fn removeSlide= --fungsi untuk meremove slideLabel
(
try(treeView.controls.Remove slide)catch()
)
on treeView mousedown e do
(
local mouseBtn=e.Button --detect mouse button
--get treeview node and get y position of treeview node
nodeTree=(treeView.GetNodeAt e.location); slideIndex=(((e.y)/16.0)as integer)
removeSlide()
if mouseBtn==mouseBtn.Left and nodeTree!=undefined and nodeTree.Parent!=undefined do
(
createSlide()
)
)
on test open do
(
--populate treeview
uiFn.dotNetTreePopulate treeView obj:(for o in objects where o.parent==undefined collect o)
clearlistener()
slideH=treeView.ItemHeight
-- treeView.focus()
)
)
)
and heres the createdialog code:
try(destroydialog test)catch()
rollout test "Test"
(
local slideH, slideW=7, slideOffset=10, slideIndex
local nodeTree
local pressed=false, val
local Ccolor = dotnetclass "system.drawing.color"
local slide=dotNetObject "button"
dotNetControl treeView "system.windows.forms.treeView" height:200 width:150 align:#center
fn MouseDown e=
(
val=slide.width-e.x
pressed=true
)
fn MouseUp=
(
slide.width=slideW
pressed=false
)
fn mousemove e=
(
if pressed do
(
if slide.width < 7 do slide.width=7;
if slide.width > 107 then
(
slide.width=107
)else(slide.width=val+e.x)
)
)
fn createSlide=
(
slide.backColor=(dotNetClass "system.drawing.color").blue
slide.height=slideH; slide.width=7
slide.location.x=slideOffset; slide.location.y=(slideH*slideIndex)+1
treeView.controls.add slide
dotnet.addEventHandler slide "MouseDown" MouseDown
dotnet.addEventHandler slide "MouseUp" MouseUp
dotnet.addEventHandler slide "mousemove" mousemove
slide.flatStyle=slide.flatStyle.flat
slide.backColor=slide.backColor.blue
slide.flatappearance.mouseoverbackcolor = Ccolor.green
slide.flatappearance.mousedownbackcolor = Ccolor.red
slide.flatappearance.bordercolor = Ccolor.yellow
)
fn removeSlide= --fungsi untuk meremove slideLabel
(
try(treeView.controls.Remove slide)catch()
)
on treeView mousedown e do
(
local mouseBtn=e.Button --detect mouse button
--get treeview node and get y position of treeview node
nodeTree=(treeView.GetNodeAt e.location); slideIndex=(((e.y)/16.0)as integer)
removeSlide()
if mouseBtn==mouseBtn.Left and nodeTree!=undefined and nodeTree.Parent!=undefined do
(
createSlide()
)
)
on test open do
(
--populate treeview
uiFn.dotNetTreePopulate treeView obj:(for o in objects where o.parent==undefined collect o)
clearlistener()
slideH=treeView.ItemHeight
-- treeView.focus()
)
)
createdialog test
please help :(
heres plugin code:
plugin modifier 'slider'
name:"slider"
classID:#(0x1e11866d, 0x3f9028db)
(
rollout test "Test"
(
local slideH, slideW=7, slideOffset=10, slideIndex
local nodeTree
local pressed=false, val
local Ccolor = dotnetclass "system.drawing.color"
local slide=dotNetObject "button"
dotNetControl treeView "system.windows.forms.treeView" height:200 width:150 align:#center
fn MouseDown e=
(
val=slide.width-e.x
pressed=true
)
fn MouseUp=
(
slide.width=slideW
pressed=false
)
fn mousemove e=
(
if pressed do
(
if slide.width < 7 do slide.width=7;
if slide.width > 107 then
(
slide.width=107
)else(slide.width=val+e.x)
)
)
fn createSlide=
(
slide.backColor=(dotNetClass "system.drawing.color").blue
slide.height=slideH; slide.width=7
slide.location.x=slideOffset; slide.location.y=(slideH*slideIndex)+1
treeView.controls.add slide
dotnet.addEventHandler slide "MouseDown" MouseDown
dotnet.addEventHandler slide "MouseUp" MouseUp
dotnet.addEventHandler slide "mousemove" mousemove
slide.flatStyle=slide.flatStyle.flat
slide.backColor=slide.backColor.blue
slide.flatappearance.mouseoverbackcolor = Ccolor.green
slide.flatappearance.mousedownbackcolor = Ccolor.red
slide.flatappearance.bordercolor = Ccolor.yellow
)
fn removeSlide= --fungsi untuk meremove slideLabel
(
try(treeView.controls.Remove slide)catch()
)
on treeView mousedown e do
(
local mouseBtn=e.Button --detect mouse button
--get treeview node and get y position of treeview node
nodeTree=(treeView.GetNodeAt e.location); slideIndex=(((e.y)/16.0)as integer)
removeSlide()
if mouseBtn==mouseBtn.Left and nodeTree!=undefined and nodeTree.Parent!=undefined do
(
createSlide()
)
)
on test open do
(
--populate treeview
uiFn.dotNetTreePopulate treeView obj:(for o in objects where o.parent==undefined collect o)
clearlistener()
slideH=treeView.ItemHeight
-- treeView.focus()
)
)
)
and heres the createdialog code:
try(destroydialog test)catch()
rollout test "Test"
(
local slideH, slideW=7, slideOffset=10, slideIndex
local nodeTree
local pressed=false, val
local Ccolor = dotnetclass "system.drawing.color"
local slide=dotNetObject "button"
dotNetControl treeView "system.windows.forms.treeView" height:200 width:150 align:#center
fn MouseDown e=
(
val=slide.width-e.x
pressed=true
)
fn MouseUp=
(
slide.width=slideW
pressed=false
)
fn mousemove e=
(
if pressed do
(
if slide.width < 7 do slide.width=7;
if slide.width > 107 then
(
slide.width=107
)else(slide.width=val+e.x)
)
)
fn createSlide=
(
slide.backColor=(dotNetClass "system.drawing.color").blue
slide.height=slideH; slide.width=7
slide.location.x=slideOffset; slide.location.y=(slideH*slideIndex)+1
treeView.controls.add slide
dotnet.addEventHandler slide "MouseDown" MouseDown
dotnet.addEventHandler slide "MouseUp" MouseUp
dotnet.addEventHandler slide "mousemove" mousemove
slide.flatStyle=slide.flatStyle.flat
slide.backColor=slide.backColor.blue
slide.flatappearance.mouseoverbackcolor = Ccolor.green
slide.flatappearance.mousedownbackcolor = Ccolor.red
slide.flatappearance.bordercolor = Ccolor.yellow
)
fn removeSlide= --fungsi untuk meremove slideLabel
(
try(treeView.controls.Remove slide)catch()
)
on treeView mousedown e do
(
local mouseBtn=e.Button --detect mouse button
--get treeview node and get y position of treeview node
nodeTree=(treeView.GetNodeAt e.location); slideIndex=(((e.y)/16.0)as integer)
removeSlide()
if mouseBtn==mouseBtn.Left and nodeTree!=undefined and nodeTree.Parent!=undefined do
(
createSlide()
)
)
on test open do
(
--populate treeview
uiFn.dotNetTreePopulate treeView obj:(for o in objects where o.parent==undefined collect o)
clearlistener()
slideH=treeView.ItemHeight
-- treeView.focus()
)
)
createdialog test
please help :(
