/* COUNTDOWN LIVE - by Mattias Buelens File: TreeView.js Desc: Class for working with tree-view controls Original from Script Editor by Matty, rewritten by myself */ var TV_FIRST = 0x1100; var TVI_FIRST = -0xFFFF; var TVI_LAST = -0xFFFE; var TVI_ROOT = -0x10000; var TVI_SORT = -0xFFFD; var TVIF_CHILDREN = 0x40; var TVIF_HANDLE = 0x10; var TVIF_IMAGE = 0x2; var TVIF_INTEGRAL = 0x80; var TVIF_PARAM = 0x4; var TVIF_SELECTEDIMAGE = 0x20; var TVIF_STATE = 0x8; var TVIF_TEXT = 0x1; var TVGN_CARET = 0x9; var TVGN_CHILD = 0x4; var TVGN_DROPHILITE = 0x8; var TVGN_FIRSTVISIBLE = 0x5; var TVGN_LASTVISIBLE = 0xA; var TVGN_NEXT = 0x1; var TVGN_NEXTVISIBLE = 0x6; var TVGN_PARENT = 0x3; var TVGN_PREVIOUS = 0x2; var TVGN_PREVIOUSVISIBLE = 0x7; var TVGN_ROOT = 0x0; var TVM_DELETEITEM = (TV_FIRST + 1); var TVM_ENSUREVISIBLE = (TV_FIRST + 20); var TVM_EXPAND = (TV_FIRST + 2); var TVM_GETCOUNT = (TV_FIRST + 5); var TVM_GETIMAGELIST = (TV_FIRST + 8); var TVM_GETISEARCHSTRINGW = (TV_FIRST + 64); var TVM_GETITEMHEIGHT = (TV_FIRST + 28); var TVM_GETITEMRECT = (TV_FIRST + 4); var TVM_GETITEMSTATE = (TV_FIRST + 39); var TVM_GETITEMW = (TV_FIRST + 62); var TVM_GETNEXTITEM = (TV_FIRST + 10); var TVM_GETVISIBLECOUNT = (TV_FIRST + 16); var TVM_HITTEST = (TV_FIRST + 17); var TVM_INSERTITEMW = (TV_FIRST + 50); var TVM_SELECTITEM = (TV_FIRST + 11); var TVM_SETIMAGELIST = (TV_FIRST + 9); var TVM_SETITEMW = (TV_FIRST + 63); var TVN_FIRST = (-400); var TVN_LAST = (-499); var TVN_SELCHANGEDW = (TVN_FIRST-51); var TVN_SINGLEEXPAND = (TVN_FIRST-15); var TreeView = function(hWnd, sCtrlId) { //Get the control handle switch(arguments.length) { case 0: return false; //PlusWnd and CtrlId given case 2: hWnd = hWnd.GetControlHandle(sCtrlId); } //Array which stores the elements in the root hRootItems = []; return { fromObject : function(obj, hParent, fCallback) { if(typeof obj !== "object") return false; hParent = (typeof hParent === "number") ? hParent : TVI_ROOT; fCallback = (typeof fCallback === "function") ? fCallback : function() { }; //Is the object an array? if('splice' in obj && 'join' in obj) { //Add the different trees to the root for(var i=0; i