[general]
changed getUserID()/parseColorFlags() to return a const UINT
renamed the DcxControl::getPosition() function to getWindowPosition() to avoid conflicts with several controls that have there own function with this name.
changed getBackClrBrush()/getBackColor()/getTextColor()/getStartGradientColor()/getEndGradientColor()/getRefCount()/getID()/getHwnd() to return a const reference.
added mIRC enhanced SendMessage() error MIRCF_ERR_DISABLED

[dialog]
changed parseLayoutFlags() to return a const UINT
changed updateLayout() to return a const bool
changed getCursor()/getToolTip()/getRefCount()/getEventMask()/getBgBitmap()/getBgTransparentCol()/IsVistaStyle()/GetVistaHDC()/GetVistaHWND()/GetVistaOffsets()/GetVistaBitmap()/getNamedIds()/IsVerbose() to return a const reference.
changed isIDValid() to return a const bool

[xdock]
removed first loop from AdjustRect() as its unneeded.

[button]
changed parseColorFlags() to return a const UINT
changed getImageList() to return a const refrence

[comboex]
changed getImageList() to be a const function.

[cla]
added some error handling to updateLayout() for when hdwp is NULL.

[box]
changed parseLayoutFlags() to return a const UINT

[list]
changed getDragListId() to return a const refrence.
[modules]
changed isAero()/isVista()/isWin7()/isWin8() to retuen const references.

[xpopup]
changed getmIRCPopup()/getmIRCMenuBar()/isCustomMenu() to be const functions.
changed parseTrackFlags() to return a const UINT
changed getItemText()/getItemIcon()/getMenuHandle()/IsRounded()/IsAlpha() to return a const reference.
[general]
changed some lstrycpyn()'s to dcx_strcpyn()

[cla]
added parseLayoutFlags() to LayoutManager class
added AddCell() to LayoutManager class (replaces code in dialog/panel/box
changed the LayoutCell constructors to be abit smaller & avoid duplicate code.
added size() & empty() functions to LayoutCell
changed LayoutCellPane::addChild() to use empty() instead of size() == 0
changed LayoutCellPane::addChild() to increase the m_iCount var for each child added.
changed LayoutManager::updateLayout() to use the new empty() function.
changed LayoutManager::updateLayout() to use m_iCount with BeginDeferWindowPos()
added sanity check to LayoutManager::parsePath() for k being < 1

[dialog][panel][box]
removed parseLayoutFlags()
changed /xdid -l to use LayoutManager::AddCell()

[panel]
added a NULL check to /xdid -d
removed an unneeded NULL check from /xdid -l clear
[trayicons]
improved the DcxTrayIcon deconstructor a little, now uses a copy of the vector instead of a TString.

[dcxml]
changed some TString.left( 1 ) calls to TString[ 0 ]
[tstring]
big rewrite, weeee
changed deleteWString() to deleteTempString()
added <stdexcept> include
added define INCLUDE_MIRC_EXTRAS to include/exclude some not often used function.
added ts_atoi()/ts_atoi64()/ts_atof()/ts_itoa()/ts_tolower() wrappers for unicode/non-unicode compiles
added allocstr_bytes(const size_t size, size_t iActual)/allocstr_cch(const size_t size, size_t iActual) overloads that return the size allocated in iActual instead of setting the m_buffersize directly.
added swap(TString &second) function, this swaps the contents of `this` object with `second`
added a move constructor (C++11)
changed `TString &operator = (const TString &tString)` to be `TString &operator = (TString tString)` as this allows the use of swap()
added `TString &operator += (const int num)` to allow adding numbers to the string as text (TString t(text); t += 10; t == text10) (this operator may be removed or changed, opinions??)
added `friend TString operator +(const TString & tString, const TCHAR *cString)` to allow TString t = obj + "text" etc..
added `const size_t &size()` function to return the buffer size allocated.
added extra function (unused in dcx) isnum()/inincs()/countchar()/ishostmask()/tolower()/toupper()
added to_addr() function that converts the string into an ip.
changed to_int() to use ts_atoi()
changed to_num() to use ts_atoi64()
changed to_float() to use ts_atof()
changed rfc_tolower()/rfc_toupper() to return a char.
changed the default constructor to call the TString(const UINT tsSize) constructor.
changed most ts_strcpy()/ts_strcpyn()/ts_strcat() calls to throw a std::logic_error when it fails. Opinions on the use of this exception? should we use something else?
changed TString(const UINT tsSize) constructor to zero the whole m_buffersize.
changed deleteTempString() to zero m_savedcurrenttok & m_savedpos
changed all operator ='s to use swap()
changed all `TString::operator +( ... )` & `TString::operator *( const int &N )` to check if `this` has any contents before trying to copy.
changed all `TString::operator +=( ... )` to use swap()
changed `TString::operator *=( ... )` to use swap()
changed `TString::operator []( long int N )` to use m_buffersize instead of ts_strlen() for size.
changed `charToWchar()` to use NormalizeString() (as this is Vista+ only its only for testing & will likely be removed in release code)
[general]
changed mIRC_DrawText() to use mreplace() instead of multiple replace() calls
changed mIRC_DrawText() to call DrawText() with a string length of -1, fixes incorrectly positioned coloured text in some cases.

[trayicon]
small change to use the result of trayIcons->idExists(id) directly.

[xpopup]
changed XMenuBar::removeFromBar() to check m_vpMenuBar.empty() instead of size() == 0
removed some commented code.
changed XPopupMenuManager::deleteMenu() to check for m_vpMenuBar.empty()
changed XPopupMenuManager::clearMenus() to have a C++11 version & to call m_vpMenuBar.clear()

[tstring]
added clear() function that resets all internal counters & zeros allocated mem.
added shrink_to_fit() function that shrinks the buffer size to the smallest size that will hole all the string (while still being a multiple of 16)
changed `TString::TString(const TCHAR *pStart, const TCHAR *pEnd)` constructor to use ts_strcpyn() with a length of size +1 to allow for zero byte.
removed NULL checks from deleteString() & deleteTempString()
changed deltok()/`TString & TString::operator *=( const int &N )` to use clear() instead of deleteString() when N == 0
changed `size_t TString::findtok(const TCHAR * cToken, const unsigned int N, const TCHAR * sepChars) const` to include the var `count` in the for loop's scope.
rewrote sub()/i_remove()/i_replace()/gettok()/getfirsttok()/getnexttok()/deltok()/instok()/addtok()/puttok()/trim()/strip()/mid()/right()/tvprintf() to be smaller, & allow throwing an error without messing up our allocations.
changed numtok() to use ts_strlen()
fixed possible mem leak in charToWchar()
[general]
bumped dev build to 30

[xpopup]
forgot to include files in previous commit, oops

[tstring]
rewrote instok() again to be abit smaller.