Hello,   OOP macro File : https://github.com/code34/oop.h Today i wanna share with you my gui editor. This is the link https://github.com/minipopov/GuiEditor   Why new editor?   -Based on layer with ctrlGroup -You could use your own style control directly from mission -You could export HPP (with EVH link for oop user) -You could export OOP file which is load on createDialog and delete variable on closeDialog -OOP file will contain all functions associate with your dialog. You could set from editor a name for each control which is the name of variable inside class and add init function   Press F1 in mission you will see all shortcut. Let's talk about other thing.   In initPlayerLocal.sqf you could set OOP_GuiEditor_ListControl which is an array of control avaible. You could remove all, add yours. The only thing that you have to do for add your control is to fill the file styles/customStyle.hpp with your style.   Let's create together a new simple dialog. I named it shop with idd 8600. I create a simple dialog with 1 layer. Inside my layer i would create 1 LB which i named "itemList" and 2 button btnClose, btnOK. On my LB i check in event "Init" "OnLBSelChanged". Screenshot:http://prntscr.com/i2r1zj   Let's look hpp file generated:   Have a look for people who doesn't use OOP. All Event call static function to OOP class that you don't have. You need to change the call AND remove onLoad/unLoad event on display. Hpp contain string to reimport later your dialog   Now let's generate oop class     First there is standard function Init that it executed at openning your display. For ours BUTTONS We have 2 buttons on our hpp, so 2 functions btnAction_btnOK and btnAction_btnClose. They are call on click   For Listbox We have Init function that you could call like this ["static",["onLBSelChanged_itemList", _whateveryouwant] call oo_shop. You could passed to the function anything you wan't and do your job... We have this function cause we check Init There is onLBSelChanged_itemList that is called on selected element on LB. EVH functions are auto fill.   Now in-game how to use that? Just by using createDialog "shop", this gonna call our constructor function and get/set all controls, exec standard init. How to delete all vars & clear memory? closeDialog 0; Gonna set all variable to nil and clear memory   Hope that i don't let but inside my code ^^. We're on beta version but, it's seems work well