function gui:OnClicked(func) table.insert(self.funcs,func) end function gui:OnReleased(func) table.insert(self.funcs2,func) end function gui:OnEnter(func) table.insert(self.funcs3,func) end function gui:OnExit(func) table.insert(self.funcs4,func) end function gui:OnUpdate(func) table.insert(self.funcs5,func) end function gui:OnDragStart(func) table.insert(self.func8,func) end function gui:OnDragging(func) table.insert(self.func6,func) end function gui:OnDragEnd(func) table.insert(self.func7,func) end function gui:WhileHovering(func) table.insert(self.func9,func) end function gui:OnMouseMoved(func) table.insert(self.func10,func) end function gui:getChildren() return self.Children end function gui:LClicked() return self.lclicked end function gui:RClicked() return self.rclicked end function gui:MClicked() return self.mclicked end function gui:Clicked() return (self.lclicked or self.rclicked) end function gui:Hovering() return self.hovering end function gui:FreeConnections() self.funcs={function(b,self) if b=="l" then self.LRE=true end end,function(b,self) if b=="r" then self.RRE=true end end,function(b,self) if b=="m" then self.MRE=true end end} self.funcs2={function(b,self) if b=="l" then self.LRE=false end end,function(b,self) if b=="r" then self.RRE=false end end,function(b,self) if b=="m" then self.MRE=false end end} self.funcs3={function(self) self.HE=true end} self.funcs4={function(self) self.HE=false end} self.funcs5={function(self) self.x=(self.Parent.width*self.scale.pos.x)+self.offset.pos.x+self.Parent.x self.y=(self.Parent.height*self.scale.pos.y)+self.offset.pos.y+self.Parent.y self.width=(self.Parent.width*self.scale.size.x)+self.offset.size.x self.height=(self.Parent.height*self.scale.size.y)+self.offset.size.y end} end function gui:LClick() for i=1,#self.funcs do self.funcs[i]("l",self) end end function gui:RClick() for i=1,#self.funcs do self.funcs[i]("r",self) end end function gui:MClick() for i=1,#self.funcs do self.funcs[i]("m",self) end end function gui:LRelease() for i=1,#self.funcs2 do self.funcs2[i]("l",self) end end function gui:RRelease() for i=1,#self.funcs2 do self.funcs2[i]("r",self) end end function gui:MRelease() for i=1,#self.funcs2 do self.funcs2[i]("m",self) end end