Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Made by GreenHouse! for the FearlessRevolution Forum.
- -- Version 1.02
- -- https://fearlessrevolution.com/viewtopic.php?f=14&t=20159
- -- Changelog [1.01]:
- ---- Changed scale of the Form to fit properly on other resolutions (Can't really fully test it myself, but it should fit properly.)
- -- Changelog [1.02]:
- ---- Moved the Clean Table option to the Edit menu.
- ---- User can now use Alt+E (Edit) + C to open the form. Then again C to clean the table.
- ---- Added a Cancel button to the form
- ---- Added ability to close the form by hitting the Escape key
- ---- Removed min/maximize buttons from the form
- delOptions = {'delSymbols','delAdvOptions','delComments','delStructs'}
- delCaptions = {'Symbols','Advanced Options','Comments','Structures'}
- chkDelBoxes = {}
- local function FindForm(name)
- for i = 0,GetFormCount()-1 do
- local form = GetForm(i)
- if form.ClassName == name then return form end
- end
- end
- function CloseCleaner()
- frmClean.Hide()
- end
- function Escaper(key)
- if key == VK_ESCAPE then CloseCleaner() end
- return key
- end
- regSettings = getSettings('GreenH')
- for key,val in pairs(delOptions) do
- if #regSettings[val..'Active'] == 0 then regSettings[val..'Active'] = 1 end --If it doesn't exist, then create and set to default
- _G[val..'Active'] = tonumber(regSettings[val..'Active']) --Then load the saved setting
- end
- frmClean = createForm(false)
- frmClean.Width = 300
- frmClean.Height = 120
- frmClean.Caption = 'Table Cleaner'
- frmClean.Position = 'poMainFormCenter'
- frmClean.BorderStyle = 'bsToolWindow'
- frmClean.OnClose = CloseCleaner
- frmClean.OnShow = function()
- for key,val in pairs(delOptions) do
- checkbox_setState(chkDelBoxes[key],_G[val.."Active"])
- end
- end
- for key,val in pairs(delOptions) do
- chkDelBoxes[key] = createCheckBox(frmClean)
- chkDelBoxes[key].Left = 5
- chkDelBoxes[key].Top = 5 + (20*(key-1))
- chkDelBoxes[key].Height = 20
- chkDelBoxes[key].AutoSize = true
- chkDelBoxes[key].Name = val
- chkDelBoxes[key].Caption = "Delete "..delCaptions[key]
- chkDelBoxes[key].OnChange = function(sender)
- _G[sender.Name.."Active"] = checkbox_getState(sender)
- regSettings.Value[sender.Name..'Active'] = checkbox_getState(sender)
- end
- chkDelBoxes[key].OnKeyUp = function(sender,key) return Escaper(key) end
- end
- btnClean = createButton(frmClean)
- btnClean.Left = 5
- btnClean.Top = 90
- btnClean.Width = 80
- btnClean.Name = 'btnClean'
- btnClean.Caption = '&Clean'
- btnClean.OnKeyUp = function(sender,key) return Escaper(key) end
- btnClean.OnClick = function()
- AddressList.disableAllWithoutExecute() --Force Disable All Scripts
- if delSymbolsActive == 1 then
- local MemBrwsr = FindForm('TMemoryBrowser')
- MemBrwsr.miUserdefinedSymbols.doClick()
- SymbHndlr = FindForm('TfrmSymbolhandler')
- local list = SymbHndlr.ListView1.Items
- for i = SymbHndlr.ListView1.Items.Count-1,0,-1 do
- unregisterSymbol(SymbHndlr.ListView1.Items[i].Caption)
- end
- SymbHndlr.Close()
- end
- if delAdvOptionsActive == 1 then
- FindForm('TAdvancedOptions').lvCodelist.Items.Clear()
- end
- if delCommentsActive == 1 then
- local Cmnts = FindForm('TComments')
- Cmnts.Memo1.Clear()
- MainForm.CommentButton.Font.Style = ''
- end
- if delStructsActive == 1 then
- if getStructureCount() ~= 0 then
- for i = getStructureCount()-1,0,-1 do
- getStructure(i).removeFromGlobalStructureList()
- end
- end
- end
- end
- btnCancelClean = createButton(frmClean)
- btnCancelClean.Left = 90
- btnCancelClean.Top = 90
- btnCancelClean.Width = 80
- btnCancelClean.Caption = 'Cancel'
- btnCancelClean.OnClick = CloseCleaner
- btnCancelClean.OnKeyUp = function(sender,key) return Escaper(key) end
- if CleanerMenuItem == nil then
- local parent = getMainForm().Menu.Items[1]
- CleanerMenuItem = createMenuItem(parent)
- CleanerMenuItem.Caption = '&Clean Table'
- CleanerMenuItem.OnClick = function() frmClean.Show() end
- CleanerMenuItem.Name = 'ghCleanTable'
- CleanerMenuItem.Shortcut = 'Ctrl+Q'
- parent.add(CleanerMenuItem)
- end
Advertisement
Add Comment
Please, Sign In to add comment