Kameleon
04-06-2009, 09:52 AM
Hi guys, I thought I'd already posted this here but I guess I did not... It's something quite simple but at least for me it came quite handy. Once in a while I pick this up and add some new stuff, but don't wait for me on that :P Cheers and I hope this is of use to some of you.
macroScript UnhideObjectbyLayer
category:"K Scripts"
(
dotNet.loadAssembly "MaxCustomControls.dll"
local hForm = dotNetObject "MaxCustomControls.MaxForm"
hForm.Size = dotNetObject "System.Drawing.Size" 250 400
hForm.MaximizeBox=False
hForm.MinimizeBox=False
hForm.Text = "Unhide by Layer"
hForm.ShowInTaskbar = False
local lstView = dotNetObject "System.Windows.Forms.ListView"
lstView.Dock = (dotNetClass "System.Windows.Forms.DockStyle").Fill
lstView.View= (dotNetClass "System.Windows.Forms.View").Details
lstView.MultiSelect = False
lstView.FullRowSelect = True
lstView.Sorting = (dotnetclass "System.Windows.Forms.SortOrder").Ascending
lstView.Columns.Add "Layers" 140
lstView.Columns.Add "Active" 50
local mPanel = dotnetobject "System.Windows.Forms.Panel"
mPanel.Size = dotNetObject "System.Drawing.Size" 150 40
mPanel.Dock = (dotnetclass "System.Windows.Forms.DockStyle").Bottom
local btnUnhide = dotNetObject "System.Windows.Forms.Button"
btnUnhide.Size = dotNetObject "System.Drawing.Size" 60 22
btnUnhide.Location = dotNetObject "System.Drawing.Point" ((hForm.Size.Width/2)-30) 10
btnUnhide.Text = "Unhide"
local lstViewItems=#()
for i=0 to LayerManager.count-1 do
(
layer=LayerManager.getLayer i
append lstViewItems layer.name
)
for i=1 to lstViewItems.count do
(
cLayer=LayerManager.getLayer (i-1)
cLayer=cLayer.current
if cLayer==true then lstViewItems[i]= dotNetObject "System.Windows.Forms.ListViewItem" #(lstViewItems[i], "X")
else lstViewItems[i]= dotNetObject "System.Windows.Forms.ListViewItem" #(lstViewItems[i], "-")
)
fn btnUnhide_Click sender args =
(
layer=undefined
if lstView.SelectedItems.Count!=0 then
(
for i=0 to LayerManager.count-1 do
(
layer=layerManager.getLayer i
layer_name=layer.name
if layer_name==lstView.SelectedItems.Item[0].Text then exit
)
layer.nodes &arr_nodes
for i in arr_nodes do unhide i
hForm.Dispose()
)
)
fn hForm_SizeChanged sender args =
(
btnUnhide.Location = dotNetObject "System.Drawing.Point" ((hForm.Size.Width/2)-30) 10
)
dotnet.addEventHandler btnUnhide "Click" btnUnhide_Click
dotnet.addEventHandler hForm "SizeChanged" hForm_SizeChanged
lstView.Items.AddRange lstViewItems
mPanel.Controls.Add btnUnhide
hform.Controls.Add lstView
hform.Controls.Add mPanel
hForm.ShowModeless()
)
macroScript UnhideObjectbyLayer
category:"K Scripts"
(
dotNet.loadAssembly "MaxCustomControls.dll"
local hForm = dotNetObject "MaxCustomControls.MaxForm"
hForm.Size = dotNetObject "System.Drawing.Size" 250 400
hForm.MaximizeBox=False
hForm.MinimizeBox=False
hForm.Text = "Unhide by Layer"
hForm.ShowInTaskbar = False
local lstView = dotNetObject "System.Windows.Forms.ListView"
lstView.Dock = (dotNetClass "System.Windows.Forms.DockStyle").Fill
lstView.View= (dotNetClass "System.Windows.Forms.View").Details
lstView.MultiSelect = False
lstView.FullRowSelect = True
lstView.Sorting = (dotnetclass "System.Windows.Forms.SortOrder").Ascending
lstView.Columns.Add "Layers" 140
lstView.Columns.Add "Active" 50
local mPanel = dotnetobject "System.Windows.Forms.Panel"
mPanel.Size = dotNetObject "System.Drawing.Size" 150 40
mPanel.Dock = (dotnetclass "System.Windows.Forms.DockStyle").Bottom
local btnUnhide = dotNetObject "System.Windows.Forms.Button"
btnUnhide.Size = dotNetObject "System.Drawing.Size" 60 22
btnUnhide.Location = dotNetObject "System.Drawing.Point" ((hForm.Size.Width/2)-30) 10
btnUnhide.Text = "Unhide"
local lstViewItems=#()
for i=0 to LayerManager.count-1 do
(
layer=LayerManager.getLayer i
append lstViewItems layer.name
)
for i=1 to lstViewItems.count do
(
cLayer=LayerManager.getLayer (i-1)
cLayer=cLayer.current
if cLayer==true then lstViewItems[i]= dotNetObject "System.Windows.Forms.ListViewItem" #(lstViewItems[i], "X")
else lstViewItems[i]= dotNetObject "System.Windows.Forms.ListViewItem" #(lstViewItems[i], "-")
)
fn btnUnhide_Click sender args =
(
layer=undefined
if lstView.SelectedItems.Count!=0 then
(
for i=0 to LayerManager.count-1 do
(
layer=layerManager.getLayer i
layer_name=layer.name
if layer_name==lstView.SelectedItems.Item[0].Text then exit
)
layer.nodes &arr_nodes
for i in arr_nodes do unhide i
hForm.Dispose()
)
)
fn hForm_SizeChanged sender args =
(
btnUnhide.Location = dotNetObject "System.Drawing.Point" ((hForm.Size.Width/2)-30) 10
)
dotnet.addEventHandler btnUnhide "Click" btnUnhide_Click
dotnet.addEventHandler hForm "SizeChanged" hForm_SizeChanged
lstView.Items.AddRange lstViewItems
mPanel.Controls.Add btnUnhide
hform.Controls.Add lstView
hform.Controls.Add mPanel
hForm.ShowModeless()
)
