DCX - Dialog Control Xtension
 
Version History
v3.1
  • New features
    1. general - changed /xdid & $xdid() to support named id's
    2. comboex - $xdid(dname,id,0).text now works with dropdown style controls as well as dropedit ones.
    3. dialog - changed /xdialog -d to accept named id's
    4. box/pager - changed /xdid -d to support named id's
    5. dialog - changed /xdialog -j to handle named id's
    6. - changed /xdialog -q to allow setting different cursors for different parts of the dialog, border etc.. added support code for these new cursors.
    7. general - added /dcx SetDCXSettings command, atm this only has two options "StaticColours" & "UpdateColours"
    8. - - StaticColours = /dcx SetDCXSettings StaticColours [1/0]
    9. - - - Enable/Disable static colours (faster drawing but doesn't update its self to changes in mIRC's colour scheme)
    10. - - UpdateColours = /dcx SetDCXSettings UpdateColours
    11. - - - Force dcx to update it' colour scheme even if using static colours.
    12. updown - changed /xdid -c to handle named id's
    13. webctrl - added $xdid().script to allow calling a script that returns a result.
    14. - var %result = $xdid(dname,id,scriptcommand).script
  • Syntax changes
  • Fixes and changes
    1. general - added help text to /xdid/$xdid/$dcx(GetTaskbarPos)/xdialog/$xdialog/xpop/$xpop/xpopup/$xpopup/$xmenubar
    2. - changed $dcx(Version) to show the compiled date/time too
    3. general - fixed bug in /xdid -Z where the SCROLLINFO mask wasn't set, causing GetScrollInfo() to always fail.
    4. divider - fixed bug in /xdid -l where controls were not being added correctly.
    5. dcxml - fixed bugs, should all work again
    6. dcxml - changed code to add richedit controls contents, so it now changes \c into ctrl-c & \b into ctrl-b & \r into ctrl-r, \u to ctrl-u, \i to ctrl-i, & \o to ctrl-o, this should really be replaced with better utf loading.
  • DCX Project
    1. dcxml - changed richedit code to convert \c to ctrl-k, \b to ctrl-b, \r to ctrl-r, \u to ctrl-u, \i to ctrl-i, & \o to ctrl-o
    2. general - changed some XXX::value's to be XXX_v instead.
    3. scripts - updated dc.xml, changed url's etc...
    4. - updated dcx_demo.mrc & fixed some issues i had with it.
    5. panel - added check to /xdid -l to not enough args.
    6. dcxml - added DCXML_ID_OFFSET to use instead of just using 2000U
    7. - changed code to add richedit controls contents, so it now changes \c into ctrl-c & \b into ctrl-b & \r into ctrl-r, this should really be replaced with better utf loading.
    8. - fixed bug in registerId() where mIRC_ID_OFFSET wasn't being added.
    9. - fixed bug in parseId() where wrong id value was returned.
    10. general - fixed bug in /xdid -Z where the SCROLLINFO mask wasn't set, causing GetScrollInfo() to always fail.
    11. dialog - changed parseComControlRequestEX() to return the control id in the error message when a control can't be found.
    12. divider - fixed bug in /xdid -l where controls were not being added correctly.
    13. project - added build all command to source control.
    14. dcxml - fixed bug in parseControl() where m_sParenttype was used instead of m_sType.
    15. - fixed bug in parseControl() where m_iParentID was used when it should have been m_iID.
    16. - fixed bug in parseStyle()/parseIcons() where the results of Attribute() calls were not checked for nullptr.
    17. project - added $(PHPDir) macro, defaults to c:\php
    18. gsl - updated to latest version on git
    19. dcxdocs - added more details to change list.
    20. - added /xdid -a +wyz info to listview.
    21. directshow - changed getProperty() to take a refString object.
    22. - changed /xdid -v handling to use const vars.
    23. - changed /xdid -a handling to only check the InitWindowlessVMR() result when it was actually called.
    24. string_support - changed _ts_strcpyn() to only check bounds in debug build.
    25. xpopup - changed parseMPopup() to use hashing if enabled.
    26. - changed getMenuByHash()/getMenuByName()/getMenuByHandle() to be noexcept.
    27. dcxdocs - changed the renderer to the latest via the X-UA-Compatible meta.
    28. - changed some links to point at github
    29. - added directshow's author & title properties.
    30. - added directshow's dshow event.
    31. - added note to treeview's /xdid -w command about -1 index.
    32. - added changes upto svn960
    33. - added directshow -v command
    34. - dded some files that were missing after transfer from svn
    35. - started work on updating the docs :)
    36. general - changed usage text for SetDCXSettings command.
    37. xpopup - fixed bug in /xpopup -c & -d where faulty logic was used (oops)
    38. general - added some extra addtok() tests for debug build.
    39. - updated dev rel to 48
    40. - updated todo list.
    41. - removed some commented code.
    42. - changed updateParentCtrl()/getWindowPosition() to be noexcept
    43. - fixed some small errors in controlFactory()->DcxControlTypes::WINDOW code.
    44. calendar - changed where trim() is called in MCN_GETDAYSTATE code.
    45. listview - misc style changes.
    46. dcxml - changed where some vars are initialized.
    47. webctrl - changed CallScript() to initialize ready_state & dispid vars
    48. general - updated version info.
    49. - misc style changes.
    50. - changed $dcx(Version) to show the compiled date/time too
    51. - changed eval()/tsEval()/iEval()/exec() to use the ts_XXX functions.
    52. - changed CopyToClipboard() to return a bool.
    53. - changed ParseLogfontToCommand() to use _ts_sprintf()
    54. - changed CreateGrayscaleIcon() to use Dcx::countof()
    55. - changed unfoldColor() to use _ts_atoi()
    56. - changed AddFileIcons() to only use wrappers when enabled.
    57. modules - disabled a compiler warning.
    58. - changed some constructors to clear vars for us.
    59. string support - reworked isInBounds()
    60. xpopups - changed /xmenubar -s to take an unsigned id.
    61. - added XPMC_MIN/XPMC_MAX to colour selection enum.
    62. - explicitly added XPMS_VERTICAL & XPMS_VERTICAL_REV to DrawItemBackground()
    63. - changed DrawItemSelection()/DrawItemCheckBox()/DrawItemText()/DrawItemIcon()/DrawItemSubArrow()/DrawGradient()/DrawVerticalBar() to take bool arguments instead of BOOL
    64. - explicitly added XPMS_GRADE/XPMS_GRADE_REV/XPMS_CUSTOM/XPMS_CUSTOMBIG/XPMS_VERTICAL/XPMS_VERTICAL_REV to DrawItemSeparator()
    65. - changed parseIdentifier() to use hashing if enabled.
    66. - added support for XPMS_BUTTON & XPMS_CUSTOMBIG to $xpop().style
    67. - added getMenuByHash() to lookup a menu based on the names hash.
    68. - changed getMenuByName() to call getMenuByHash() if hashing enabled.
    69. - changed XPopupMenuManager() default constructor to clear everything for us again.
    70. cla - changed LayoutCell::setBorder(const UINT nBorder) -> LayoutCell::setBorder(const int &nBorder)
    71. - changed LayoutCell::setBorder(const int &nBorder) to just call LayoutCell::setBorder(const RECT &rc)
    72. - misc style changes.
    73. xdock - changed signals formatted string to use %u instead of %d
    74. - improved the statusbar drawing code a little.
    75. dcxml - changed /dcxml to use hashing if enabled.
    76. - changed /dcxml to properly check the results of FirstChildElement() for a nullptr result.
    77. trayicon - changed signals to use %u in the formatting string instead of %d
    78. general - updated the dates
    79. - changed $dcx(GetSystemColor)/$dcx(ActiveWindow)/$xpop/xpop to use hashing if enabled.
    80. - fixed bug in /xSignal where trim() was used in the wrong place.
    81. - fixed bug in $dcx(ActiveWindow) where cbSize wasn't being set.
    82. - changed mIRCSubClassWinProc()->WM_SIZE to return unsigned numbers.
    83. gsl - updated to latest.
    84. general - removed is_Numeric struct as this is now in the string_support header.
    85. - added deleted functions to structs
    86. - added dcxNumber struct for testing. (dont use)
    87. trayicon - changed modifyIcon() to use Dcx::countof() instead of a fixed size
    88. listhelper - changed matchItemText() to avoid needing a static_cast
    89. richedit - got rid of some warnings.
    90. divider - added some casts.
    91. dialogcollection - changed the default constructor as = default wasn't initializing things.
    92. xdock - changed $xdock to use string hashing.
    93. - added some static_cast's
    94. tstring - moved all string support functions to a new header string_support.h
    95. - updated macros to use support functions where possible.
    96. - fixed small bug in puttok()
    97. gsl - updated again...
    98. box - improved how the enable/disable button is added.
    99. treeview - changed insertItem() to take a reference instead of a pointer.
    100. - changed matchItemText() to use DcxListHelper::matchItemText()
    101. - changed parsePath() to take a reference TString object instead of a pointer.
    102. general - added some static_cast's
    103. - added TiXmlElement *toXml()
    104. - changed toXml() to properly save the control styles too.
    105. - added DcxIconSizes enum to set standard easy to read icon sizes.
    106. - added NumToIconSize() helper function to allow easy conversion of any number to the enum DcxIconSizes
    107. refString - added __assume() usage to most operators to tell the compiler that m_data will never be null
    108. - misc style changes
    109. simpleString - misc style changes.
    110. gsl - updated to latest version.
    111. hashString - corrected comments.
    112. tinyxml - changed TiXmlDocument::LoadFile() to use unique_ptr.
    113. xdock - changed how InitUltraDock() initializes g_clrTreebarColours
    114. - changed $xdock().dockSide to only use one strcpy call.
    115. misc - changed isRegexMatch() to use a static_cast()
    116. - changed ParseCommandToLogfont() to use countof(lf->lfFaceName)
    117. - changed SystemTimeToMircTime() to correctly pass unsigned args to evalex()
    118. gsl - more updates...
    119. general - improved the testing a little in the debug Version command
    120. xstatusbar - changed $xstatusbar() to use string hashing if enabled.
    121. xtreebar - changed $xtreebar() to use string hashing if enabled.
    122. listview - changed xmlSetItem() to use make_unique()
    123. dcxml - changed parseItems() to avoid some errors in static checking.
    124. tinyxml - fixed some warnings in static checking.
    125. gsl - defined GSL_THROW_ON_CONTRACT_VIOLATION
    126. general - improved the testing done in the debug $dcx(Version) command.
    127. - changed $xdid(BrowseDialog) to use string hashing when enabled.
    128. - changed $xdid(FontDialog) to throw an error when GetObject() fails.
    129. - changed $xdid(Version) to have a debug & non-debug version.
    130. - changed readFile()/SaveDataToFile() to only use wrappers when enabled.
    131. xpopup - added m_clrLightBox to menu colours, this is simply the result of LightenColor(200, m_clrBox) to save us doing the calculation all the time.
    132. - improved the flow of DrawItem() a little.
    133. - changed DrawItemCheckBox() to reset pen after drawing.
    134. - improved the image draw quality for bitmaps in the menus.
    135. - changed /xpopup -c/-d/-i/-l/-p/-s/-t/-x/-R to throw an error if the number of args is wrong or an invalid menu name is used.
    136. general - changed is_Numeric to use std::integral_constant
    137. - added is_Numeric_v shortcut for is_Numeric::value
    138. - deleted older GSL files & changed to new ones without .h
    139. [controls][dialog] - changed all controls to use one CallDefaultProc() function defined in DcxWindow class.
    140. dialog - changed /xdialog -l/-t to use string hashing if enabled.
    141. - improved image quality when drawing a bitmapped dialog background.
    142. directshow - changed /xdid -c to use string hashing if enabled.
    143. listview - changed constructor to use AddStyles()
    144. - changed /xdid -W to use string hashing if enabled.
    145. - changed setHeaderStyle() to use string hashing if enabled.
    146. - changed isListViewStyle() to be noexcept
    147. - changed sortItemsEx() to use ts_strcmp()
    148. [panel][box] - changed /xdid -l to use string hashing if enabled.
    149. tab - changed /xdid -w to only use wrappers if DCX_USE_WRAPPERS is defined.
    150. webctrl - added SafeReleaseCom() function to help release com pointers.
    151. general - changed dcxLoadIcon() to throw an exception if the -P flag is used when the dll has been compiled without GDI+
    152. - added hashing versions of various functions.
    153. xpopup - changed menu constructor to hash the menu name allowing this hash to be used for all compares (big speed up :)
    154. general - added quotes to source control to allow it to work with paths containing spaces.
    155. - changed all dcx_hash(TString.to_chr()) calls to be std:hash<TString>{}(TString) calls as the std::hash overload uses the TString objects built in strlen function.
    156. xswitchflags - +1 not needed
    157. general - changed dcxHDCBitmap2Resource.getBitMap() to return a HBITMAP instead of HBITMAP &
    158. - changed SystemTimeToMircTime() to use a stString
    159. webctrl - changed /xdid -m to use the dcxVariant wrapper when enabled.
    160. xswitchflags - changed to use a 64bit bitmask where each bit maps to a char.
    161. general - added include cguid.h for webctrl
    162. webctrl - added CallScript() function to handle all calls to scripts in the html.
    163. - changed the script calling method to use eval() instead of execScript
    164. - added $xdid().script to allow calling a script that returns a result.
    165. general - added dcxVariant wrapper for VARIANT that calls VariantInit()/VariantClear() for us.
    166. - updated README.md
    167. - bumped dev build to 46.
    168. dcxml - changed the _ts_strncmp(...,16) calls to be _ts_strcmp()
    169. - changed all lstrcmpA() calls to be _ts_strcmp()
    170. - added string hash versions of most repetitive string compares.
    171. - fixed bug in parseItems() which incorrectly handled list controls & caused all following controls to not be handled correctly.
    172. - changed parseTemplate() to get attribute "name" before the loop.
    173. controls - changed parseInfoRequest() to take a refString szReturnValue.
    174. - added string hash versions of most repetitive string compares.
    175. general - changed mark command to use a refString for the return value.
    176. - disabled switch objects
    177. refString - changed [] operator to use ptrdiff_t
    178. general - changed /dcx setDCXSettings to use std::hash overload for TString.
    179. - changed $dcx(ColorDialog) to use a bool for retDefault, & to use std::hash overload for TString.
    180. - updated VisualCppTools beta in use.
    181. - updated sourcecontrol project files...
    182. tstring - added _ts_strcmp() function
    183. xtreebar - changed /xtreebar -w to only use wrappers when enabled via DCX_USE_WRAPPERS define.
    184. - changed $xtreebar().item to use stString
    185. mirclinker - changed isAlias() to take a TString arg, changed the code which calls this to reflect the change.
    186. general - added solution files for VS2015
    187. - added TODO.txt
    188. general - changed all const_hash() calls to dcx_hash()
    189. hashString - added std::hash for TString, const char *, & const wchar_t *
    190. - added crc32_helper() constexpr function, this function handles all compile time crc32 generation
    191. - added a wchar_t version of crc32_helper()
    192. - removed a lot of unused commented code.
    193. - added crc32_1byte() to handle all non-compile time crc32 generation.
    194. - added dcx_hash() function templates that simply call crc32_1byte()
    195. dcxml - changed parseCLA() to use string hashing when enabled.
    196. general - changed code to use std::max() & std::min() instead of the macros, macros are undefined now.
    197. dcxml - changed parseAttributes() to use _ts_strncmp()
    198. refstring - changed empty() to check for a nullptr too
    199. - changed clear() to check if string is empty() before clearing.
    200. stacker/statusbar/tab/toolbar/trackbar/updown - changed parseControlStyles() to use string hashing if enabled.
    201. dcxml - changed /dcxml -p/parseControl()/parseDialog() to use string hashing if enabled.
    202. - renamed g_resetcla to g_bResetCLA & made it a bool.
    203. - fixed bug in parseDialog() handling box type twice.
    204. refstring/simplestring - changed static_assert for type to remove const'ness first.
    205. pager/progressbar/richedit - changed parseControlStyles() to use string hashing if enabled.
    206. mwindow/pager/panel/progressbar/rebar/richedit/statusbar/tab/toolbar/trackbar - misc style changes
    207. progressbar - changed DrawClientArea() to use Auto()
    208. rebar - changed to use the DcxWindow::createImageList()
    209. richedit - changed constructor to initialize m_bIgnore... vars
    210. - changed the m_bIgnore... vars to be bool
    211. stacker - changed how m_vImageList is initialized.
    212. - changed $xdid().haschild/childid to only need a single string copy.
    213. - changed to use Gdiplus::
    214. statusbar - changed the constructor to initialize m_vParts.
    215. - changed deletePartInfo() to use eraseIfFound()
    216. - changed /xdid -w to use dcxIconResource if enabled.
    217. - changed to use DcxWindow::createImageList()
    218. - changed setPartInfo() to use gsl::owner.
    219. - changed getRect() to use gsl::not_null
    220. - changed getIcon() to return HICON
    221. tab - changed to use DcxWindow::createImageList()
    222. toolbar - changed /xdid -a to use TSTABCHAR
    223. - changed to use dcxException's
    224. - changed /xdid -w to use dcxIconResource if enabled.
    225. trackbar - changed DrawTrackBarPart() to use dcxHDCBitmapResource if enabled.
    226. button/calendar/comboex/datetime - change parseControlStyles() to use string hashing if enabled.
    227. calender - changed how m_MonthDayStates() is initialized.
    228. - changed /xdid -r to use to_<long>() instead of to_num()
    229. - changed MCN_GETDAYSTATE to use evalAliasT() & TSCOMMACHAR
    230. colorcombo/divider/ipaddress - misc style changes.
    231. comboex - changed how m_tsSelected is initialized.
    232. - changed class to use DcxListHelper.
    233. directshow - changed /xdid -a to set m_bLoop directly instead of using an if/else
    234. - changed how /xdid -v set stores the values.
    235. - changed getProperty() to use %ws with _snwprintf() instead of %lS
    236. listview - changed parseListviewExStyles() to use string hashing when enabled.
    237. dialog - misc style changes
    238. - added parseInfoRequest2() as a temp measure till everythings fixed to take the refString arg (parseInfoRequest() now just calls this)
    239. - added evalAliasT() as future replacements for evalAlias() & evalAliasEx() (work in progress)
    240. - changed to use Gdiplus::
    241. - changed var namedIds to m_NamedIds
    242. - changed var m_bDoGhostDrag to m_uGhostDragAlpha
    243. - added i_showError() to show error msg's, this may be removed/changed soon
    244. - changed parseBorderStyles()/parseBkgFlags()/parseFlashFlags()/parseTooltipFlags()/PreMultiply() to be noexcept
    245. - changed deleteControl() to use eraseIfFound()
    246. - changed /xdialog -x to not need a string any more.
    247. - changed /xdialog -z to use Dcx::find()
    248. - fixed bug in /xdialog -R where m_Region was checked for != nullptr when it should have been == nullptr
    249. - changed a lot of execAliasEx() calls to execAlias()
    250. - changed WM_DROPFILES/DrawCaret() to use stString
    251. - changed DrawDialog()/DrawCtrl() to use dcxHDCBitmap2Resource when enabled.
    252. - changed UnregisterDragList() to use eraseIfFound()
    253. - changed toXml() to do some nullptr checks.
    254. webctrl - changed SafeRelease() to be noexcept
    255. - changed constructor to make sure everything is initialized correctly.
    256. - changed constructor to use Auto()
    257. - changed constructor to use dcxBSTRResource when enabled.
    258. - commented out call to SafeRelease() in destructor as this was causing a double release exception & crash when some versions of IE were used. (this still needs investigated further)
    259. - changed all BSTR allocations to use dcxBSTRResource instead, when enabled.
    260. - changed Invoke() to use Auto()
    261. - changed DISPID_BEFORENAVIGATE2/DISPID_NEWWINDOW2 to use stString
    262. treeview - changed to use Gdiplus::
    263. - changed /xdid -Q/insertItem() to use dcx_testflag() to directly set the stored value.
    264. - changed sortItemEx() to use stString
    265. - fixed bug in NM_CLICK caused by the inappropriate use of dcx_testflag()
    266. - changed CDDS_ITEMPAINT to use CLR_INVALID instead of -1
    267. window - added createImageList() for use by all controls, should be used to replace control specific versions where possible.
    268. cla - misc style changes.
    269. - changed LayoutManager class to use = default constructor/destructor.
    270. - changed LayoutManager::setRoot() to use gsl::owner
    271. - changed LayoutManager::getRoot() to be noexcept
    272. - changed LayoutManager::AddCell() to use unique_ptr.
    273. - reworked some of the logic in AddCell() to be a bit simpler.
    274. - changed LayoutCellPane::addChild() to LayoutCell * addChild(gsl::owner<gsl::not_null<LayoutCell *>> p_Cell, const UINT nWeight)
    275. - changed LayoutCell::getType()/getClientRect()/getBorder()/getFirstChild()/getParent()/getNextSibling() to be noexcept
    276. simpleString - changed default constructor as static analysis complains about uninitialized memory.
    277. hashString - trying various different hashing methods...
    278. general - changed ColorDialog()/MsgBox() to use string hashing when enabled.
    279. [text][radio][list][line][edit][check][box] - changed parseControlStyles() to use string hashing when enabled.
    280. general - misc style changes.
    281. check - changed DrawClientArea() to use Auto()
    282. box - changed $xdid().inbox to use Auto()
    283. - added a check to toXml() for m_pLayoutManager being nullptr
    284. - changed some TCHAR buffers to be stString's
    285. general - misc style changes.
    286. link - changed /xdid -l a little.
    287. - changed how the constructor initializes the vars.
    288. line - changed DrawClientArea() to use Auto()
    289. image - changed to use Gdiplus::
    290. - changed DrawBMPImage() to use Auto()
    291. - changed DrawBMPImage() to use resource wrappers when enabled.
    292. - changed DrawClientArea() to use Auto()
    293. edit - changed /xdid -S to initialise iend to istart.
    294. - changed some TCHAR buffers to be stString's
    295. listhelper - changed matchItemText() to take a refString arg.
    296. list - changed matchItemText() to make sure the buffer was at least MIRC_BUFFER_SIZE_CCH in size.
    297. listview - misc style changes.
    298. - changed to use ListHelper.
    299. - changed parseControlStyles() to use hashing when enabled.
    300. - changed $xdid().sel to use TSCOMMACHAR
    301. - fixed a bug in $xdid().mouseitem where dcx_testflag() was used inappropriately.
    302. - changed /xdid -a to use TSTABCHAR
    303. - changed /xdid -k to use TSCOMMACHAR
    304. - added a check to /xdid -W for index being > 0
    305. - changed how NM_HOVER is reported.
    306. - changed some TCHAR buffers to be stString instead.
    307. - changed how LVN_ITEMCHANGED is reported. (still testing)
    308. - changed NM_RCLICK to be a little simpler.
    309. - changed CreatePbar() to use _ts_sprintf()
    310. [scroll][radio][list] - misc style changes.
    311. radio - changed DrawClientArea() to use Auto()
    312. list - changed class to use ListHelper
    313. - changed /xdid -c/-m to use TSCOMMACHAR
    314. - changed ParentMessage() for drag & drop to use stString
    315. - changed UpdateHorizExtent() to use Auto()
    316. text - changed DrawClientArea() to use Auto()
    317. - changed protected class data to private
    318. tinyxml - misc changes.
    319. xpopup - changed XPopupMenuWindow/XPopupMenuManager class to use default constructor/destructor.
    320. - changed parseIdentifier()/parseXPopIdentifier()/parseXMenuBarInfo() to take a const &refString<TCHAR, MIRC_BUFFER_SIZE_CCH> arg.
    321. - changed isPatched() to be a constexpr
    322. - changed parseTrackFlags() to be noexcept.
    323. - changed parseIdentifier() case 5 to use stString<MIRC_BUFFER_SIZE_CCH> instead of a TString.
    324. - changed deleteMenu()/deleteMenuItemData()/removeFromMenuBar() to use eraseIfFound()
    325. - changed LightenColor()/DarkenColor() to be noexcept.
    326. dcx - added make_bstr()/dcxBSTR_t/dcxBSTRResource to handle BSTR resources.
    327. - added make_filehandle()/dcxHandle_t/dcxFileHandleResource to handle HANDLE resources for files.
    328. - changed DcxResource to be constexpr
    329. - added dcxStringResource for testing, don't expect to use it.
    330. - added dcxHDCBitmap2Resource which handles an HDC & Bitmap resource pair.
    331. - changed dcxHDCBuffer to use dcxHDCBitmap2Resource instead of dcxHDCResource.
    332. - removed isFile()
    333. - changed mark() to take a const &refString<TCHAR, MIRC_BUFFER_SIZE_CCH> arg instead of a TCHAR *const.
    334. - added Dcx::setting_bStaticColours
    335. - changed Dcx::error() to use _ts_sprintf()
    336. - changed mark() to directly call SetVerbose() with the result of evalAliasEx()
    337. modules - changed DcxModule::load() to be a pure virtual.
    338. - changed the DcxModule, DcxGDIModule, DcxUXModule constructors to be = default
    339. shelldialogs - changed dcxPickIconDlg() to take a const reference
    340. - changed $dcx(PickIcon) to use stString<MAX_PATH +1> sIconPath.
    341. - changed FileDialog() to use an allocated make_unique() buffer.
    342. - changed FileDialog() to use string hashing when enabled.
    343. - changed FileDialog() to use _ts_strlen() instead of lstrlen()
    344. - changed BrowseDialog() to use TSTABCHAR
    345. controls - removed showErrorEx() & replaced it with a showError() template
    346. - added m_UserID var to contain ID - mIRC_ID_OFFSET
    347. - changed getUserID() to return m_UserID as a const reference.
    348. - changed /xdid -R +r to initialize radius to 20.
    349. - changed parseGlobalInfoRequest() to return a bool & take a const &refString<TCHAR, MIRC_BUFFER_SIZE_CCH> arg instead of TCHAR *const
    350. - changed $xdid().pid to use stString<257> when getting the class name.
    351. - changed controlFactory() for DcxControlTypes::WINDOW to use Dcx::countof()
    352. - changed showError() to use _ts_sprintf()
    353. - changed CommonMessage() for WM_DROPFILES to use stString<500> sFilename & stString<20> sRet.
    354. general - changed IsUsingGDI()/IsUnloadSafe()/IsThemedXP() to use dcx_truefalse()
    355. - changed /xdid to use TSCOMMACHAR
    356. - changed /xdid to return 1 on success instead of 3
    357. - added help text to /xdid/$xdid/$dcx(GetTaskbarPos)/xdialog/$xdialog/xpop/$xpop/xpopup/$xpopup/$xmenubar
    358. - changed /dcx WindowProps +t to use TSTABCHAR
    359. - changed /dcx SetmIRCCursors to use TSCOMMACHAR
    360. - added /dcx SetDCXSettings command, atm this only has two options "StaticColours" & "UpdateColours"
    361. - - StaticColours = /dcx SetDCXSettings StaticColours [1/0]
    362. - - - Enable/Disable static colours (faster drawing but doesn't update its self to changes in mIRC's colour scheme)
    363. - - UpdateColours = /dcx SetDCXSettings UpdateColours
    364. - - - Force dcx to update it' colour scheme even if using static colours.
    365. general - changed GetDirectXVersionViaFileVersions() to initialize all vars & to use Dcx::countof()
    366. - changed defines.h to include the new string stuff
    367. - added DCX_USE_HASHING define to enable the use of string hashes.
    368. - added the mIRC_PALETTE_SIZE define.
    369. - changed LOADINFO to use using instead of typedef.
    370. - changed dcx_strcpyn() to take a const reference.
    371. - changed dcx_ConRetState() to return a bool.
    372. hashString - added some comments
    373. simpleString - added some comments
    374. refString - added some comments
    375. - added two static_assert's
    376. mdialog - changed m_DeleteByDestroy to be bool.
    377. dcxml - changed alot of var names to avoid confusion. This also allowed me to clean up some functions & make them clearer.
    378. - changed the constructor & destructors to be = default.
    379. tstring - added a waring about needing VS 2015 or better to compile.
    380. - changed pair & tuple constructors to use references.
    381. - added some comments to constructors.
    382. - added templated version of find()/replace()/mreplace()
    383. - improved _ts_strlen()
    384. - added _ts_strnlen(), _ts_find(), _ts_strcpyn(), _ts_strncat(), _ts_strncmp()
    385. - replaced calls to strstr() with _ts_find()
    386. - added comments for numtok()
    387. - moved some code around to make it clearer.
    388. GSL - updated to the latest on git
    389. general - updated license.txt date to 2016
    390. - changed SystemTimeToMircTime() var ret to be sRet
    391. - changed dcx_round() a little.
    392. - changed ParseCommandToLogfont() to return a bool.
    393. - changed ParseCommandToLogfont() to use Auto().
    394. - changed dcxLoadIcon()/dcxLoadBitmap()/GetLastStatusStr() to specify the Gdiplus namespace where used.
    395. - changed CreateGrayscaleIcon() to initialize the var sz all in one line.
    396. - changed IsFile() to use dcxStringResource
    397. - added getmIRCPalette() overload with no args, this only fills the palette when its empty.
    398. - changed getmIRCPalette() (with args) to only fill the palette if its empty or static colours aren't being used.
    399. - changed DrawRotatedText() to use Auto()
    400. mirclinker - removed mIRCLinker:: from the start of functions.
    401. dialogcollection - changed the constructor/destructor to be = default.
    402. - changed deleteDialog() to use eraseIfFound()
    403. general - added refString.h, simpleString.h, hashString.h/cpp, switchObjects.h, ListHelper.h/cpp
    404. - refString.h -> refString class allows encapsulating a C-String to enforce length rules etc.. without making any additional allocations.
    405. - simpleString.h -> simpleString class wraps & allocates a C-String to enforce length rules etc..
    406. - hashString.h -> Includes various functions to change a C-String into a hash value.
    407. - switchObjects.h -> allows using objects in a special Switch() command.
    408. - ListHelper.h/cpp -> DcxListHelper class includes various common helper functions for DcxList.... controls.
    409. updown - changed /xdid -c to handle named id's
    410. - changed /xdid -c to check DcxControlTypes instead of getting the class name.
    411. Changed everything to require C++14 when compiling
    412. Dropped all support for < Windows7
    413. listview - added xSaveListview() function & started work on /xdid -S to allow saving a listviews contents.
    414. general - removed usage of AggressiveOptimize.h as it was breaking VS2015 code.
    415. - removed some commented code
    416. tstring - removed alternate code to TSTRING_PARTS & TSTRING_ITERATOR & TSTRING_TEMPLATES
    417. - removed code for < vs2015
    418. - removed some commented code.
    419. - changed _ts_sprintf() to always clear() the result first.
    420. xdock - changed to use dcxException.
    421. - changed to use SwitchBarPos::... where appropriate.
    422. - removed some old code.
    423. general - changed to use dcxException
    424. - removed some old code.
    425. - changed all CTRL_XXX defines to be UINT64's
    426. - added enum DcxAllowControls to maybe replace defines in future.
    427. - changed enum DcxControlTypes to be enum class DcxControlTypes
    428. - added dcxExtractIcon object to wrap calls to ExtractIconEx()
    429. - added dcxHDCBuffer as a possible replacement for CreateHDCBuffer()
    430. - changed enum SwitchBarPos to be a class
    431. - changed dcx_strncmp() to use a static_cast
    432. - rewrote GetHwndFromString(TString...) to do all the stuff the TCHAR version used to do...
    433. - commented out GetHwndFromString(TCHAR *..) as its not needed any more.
    434. - changed dcx_strcpyn() to be an inline function.
    435. - changed TGetWindowText() to only add 2 to the strlen at the start
    436. - added nullptr checks to isRegexMatch()/AddFileIcons()/MakeTextmIRCSafe()
    437. - rewrote AddFileIcons() to use dcxExtractIcon
    438. - changed FindOwner() to check if data is empty at the start.
    439. gsl - updated to latest files.
    440. - testing some gsl usage owner<> & not_null<>
    441. dialog - added NameToUserID() to convert a name into a UserID if it exists (returns zero on fail)
    442. colorcombo - changed setmIRCPalette() to use unique_ptr.
    443. comboex - added TString m_tsSelected to store currently selected item.
    444. - changed $xdid(dname,id,0).text to use m_tsSelected.
    445. - changed CBN_SELENDOK handling to set m_tsSelected.
    446. -- this allows $xdid(dname,id,0).text to work with dropdown style controls as well as dropedit ones.
    447. listview - added ItemToString() function to help with saving data.
    448. box - fixed bug in /xdid -c command where the correct addControl() call wasn't being used this caused subsequent calls to fail when using named id's
    449. xtreebar - changed the setitem callback to be for release build too now
    450. - changed setitem callback to have these args: $xtree_callback(<item type>,<wid>,<status>)
    451. xstatusbar - changed status_getImageList() to be noexcept.
    452. - removed some commented code
    453. tstring - changed zero size constructor to always allocate a minimal string anyway.
    454. dialog - changed iNamedId()/NameToID()/NameToUserID() to allow finding an id based on the name or the numerical id.
    455. - added deleteNamedID() which deletes the named id based on either the name or the numerical id.
    456. - changed deleteControl() to call deleteNamedID() as well
    457. general - changed some code to use the new dcxResource stuff (Testing this method out, may not keep)
    458. tstring - fixed bug in compare() routines where length limit was used when it shouldn't have been, this led to "5" == "50"
    459. general - added DCX_USE_WRAPPERS define to enable/disable using the resource wrapper classes.
    460. - added Dcx::dcxResource::pointer type.
    461. - added Dcx::dcxResource::element_type type.
    462. - added Dcx::dcxResource::return_type type.
    463. - changed controlFactory() to use a switch() statement.
    464. dialog - removed some commented code.
    465. - changed /xdialog -q to use getnexttok()
    466. - changed /xdialog -S to not use a POINT structure.
    467. - changed WM_SETCURSOR handling to allow setting the cursor for the whole dialog, not just the client area.
    468. general - changed dcx_strcpyn() to take a const reference for the size arg.
    469. bumped dev build to 43
    470. removed commented exceptions code.
    471. comboex/list/listview/treeview - changed controls to use a general DcxSearchTypes enum instead of repeating the same thing for each control.
    472. - changed matchItemText() to takes a TString ref object instead of a pointer.
    473. list - fixed bug in matchItemText() that caused all the match functions to be called.
    474. general - removed some commented code.
    475. box - changed DrawClientArea() to use the Auto() macro.
    476. list/treeview - changed $xdid().find to do a TCHAR compare instead of a string compare.
    477. tstring - added test code getnexttokas<type>() template to allow TStringObj.getnexttokas<int>() instead of TStringObj.getnexttok().to_<int>()
    478. dialog - removed some commented code.
    479. tstring - added literal operator for WCHAR strings L""_ts
    480. - removed try/catch from charToWchar(), function now throws an exception of allocation failure.
    481. - fixed memleak in constructors.
    482. - added ts_strlenA()/ts_strlenW() macros
    483. - added TString(const WCHAR *const cString, const size_t iLen) constructor & a char * equivalent.
    484. - changed WCHAR * & char * & TString & constructors to simply call the TString(const WCHAR/char *const cString, const size_t iLen) constructor.
    485. - added TString(const T (&cString)[N]) constructor.
    486. - changed TString(const TCHAR *const pStart, const TCHAR *const pEnd) constructor to be a template that just calls the appropriate TString(const WCHAR/char *const cString, const size_t iLen) constructor.
    487. - moved most constructors to the tstring.h file.
    488. - changed the operator[] code to have a debug version that has some extra checks & throws an exception & a release version that doesn't.
    489. - changed the iswm() template to be const noexcept
    490. - commented out the non-const version of c_str()
    491. - changed _ts_WildcardMatch() to be noexcept
    492. xpopupmenu - changed GetMenuAttributeFromXML() to return a TString. This allows us to get rid of some extra TString objects later.
    493. - changed convertMenu() so it doesn't call tsEval() on a seperator.
    494. tstring - added ts_strchr() macro
    495. - added numtok(TCHAR sepChar) to handle all single char separators.
    496. - made both numtok()'s noexcept.
    497. dcxml - changed mIRCEvalToUnsignedInt() to take a TString arg.
    498. tinyxml - changed some code to do nullptr checks
    499. toolbar - changed /xdid -a/-c to use the to_<>() template directly
    500. - changed /xdid -a to use a unique_ptr for DCXBUTTON.
    501. comboex - changed getItemRange() to use the single char version of numtok()
    502. tstring - changed all comparison operators & functions to be noexcept
    503. - changed the move assignment operator to be noexcept
    504. - changed find() to be noexcept
    505. - changed iterator typedef's to use using instead
    506. - changed isin()/isincs()/iswm()/countchar()/ishostmask() to be noexcept
    507. general - changed some typedef's to be using instead.
    508. xdock - changed some typedefs to be using
    509. - changed DockWindow() to allocate & set & push_back() the DCXULTRADOCK structure all in one go (planning on changing how this structure is allocated & stored soon)
    510. xpopup - made XPopupMenu() constructor a bit neater.
    511. - changed parseStyle()/setStyle()/setItemStyle()/setColor()/setDefaultColor()/setSubMenu()/setItemIcon()/getItemText()/getItemIcon()getItemDataBackup()/getmIRCPopup()/getmIRCMenuBar()/isPatched() be be noexcept.
    512. - changed some typedefs to be using instead.
    513. general - changed dcx_truefalse()/dcx_testflag() to be noexcept
    514. gsl - updated to latest
    515. general - changed modules to use VersionHelpers.h
    516. tinyxml - updated to use noexcept & deleted operators...
    517. tstring - added last() function which returns a pointer to the end of the string.
    518. - changed len()/length()/size() to return a reference.
    519. - added SPACECHAR/COMMACHAR/TABCHAR defines as single character versions of SPACE/COMMA/TAB
    520. - changed is_Numeric to check type isn't a pointer.
    521. - fixed bug in static string constructor where string length used was one character to long.
    522. - changed operator *() to use strchr() instead of strstr()
    523. - changed addtok() template to use SPACECHAR
    524. - added test code detailed below...
    525. - added constructors for pair_type & tuple_type.
    526. - added gettokenrange() which returns the start, end, & numtoks in a tuple_type.
    527. - added replacements for gettok()/getfirsttok() that use gettokenrange()
    528. - end test code
    529. - added _ts_isEmpty() function template to test if a string/container is empty (supports C Strings & any object with a empty() member function)
    530. tstring - changed new test versions of gettok() & getfirsttok() to be templates.
    531. dialog - changed SetVerbose()/getFocusControl() to be noexcept
    532. - changed some typedef's to be using's instead.
    533. - changed xdialog -R +p to use the single character versions of getfirsttok()/getnexttok()
    534. general - changed gettok()/getfirsttok()/getnexttok()/numtok() to be single character versions where possible.
    535. xdock - added specific deleted operators
    536. general - added some std::to_string() & std::to_wstring() overloads
    537. - added is_Numeric to Dcx namespace
    538. - changed some typedef's to be using's instead.
    539. - added numeric_cast() to Dcx namespace to handle casting anything to a number (if possible) can cast integrals, strings & objects that support implicit conversion to that type.
    540. cla - changed layoutcell to be a little neater.
    541. - changed layoutcellfill to use the layoutcell constructors.
    542. - changed layoutcellpane to use emplace_back() instead of push_back() in addChild()
    543. xmenu - added a deleted default constructor & copy constructor to XMenuBar
    544. - changed isPatched() to be a static function.
    545. general - added eraseIfFound() template function which removes an item from a container if its found, returns true on success.
    546. xdock - added UnDockWindowPtr() function to handle all the removal & deleting work for UnDockAll() & UnDockWindow()
    547. - changed status_deletePartInfo() to use eraseIfFound()
    548. xdock - made sure some vars were properly initialized.
    549. - changed SwitchBarPos() to handle MDI type.
    550. general - made sure some vars were properly initialized.
    551. xTrayIcon - changed GetHwnd() to be noexcept & to return a const reference.
    552. - changed AddIconId() to use emplace_back()
    553. - changed DeleteIconId() to use eraseIfFound()
    554. xdock - changed UnDockWindowPtr()/UnDockAll()/IsStatusbar()/UpdateLayout()/UpdatemIRC() to be noexcept.
    555. - changed FindDock()/GetDock()/isDocked() to be const functions.
    556. - changed DcxDock() constructor to initialize m_VectorDock.
    557. richedit - changed OnNCPaint() to use the Auto() macro.
    558. button - changed most BOOL vars to be bool.
    559. - changed constructor to not need ZeroMemory()
    560. - changed parseColorFlags()/getImageList()/setImageList() to be noexcept
    561. - changed createImageList() to set initial image list size to be countof(m_aBitmaps)
    562. divider - changed some flag checks to use dcx_testflag()
    563. - changed DrawXorBar()/Divider_OnLButtonDown/Up()/Divider_OnMouseMove() to use Auto()
    564. XSwitchFlags - changed member var flags to m_bFlags
    565. - changed member var flags_cap to m_bFlags_cap
    566. - changed constructor to initialize m_bFlags & m_bFlags_cap to false.
    567. - moved operator[] to include file.
    568. - changed m_bFlags & m_bFlags_cap to be private instead of protected.
    569. - added m_bFalse static var for isSet()'s use on failure.
    570. - changed de-constructor to be = default.
  • Documentation
    1. added /xdid -a +wyz info to listview.
    2. added /dcx SetDCXSettings docs.
    3. updated /xdialog -q docs to show all new flags for cursors.
    4. updated support links
    5. added $dcx(CountIcons,[filename])
    6. added listview /xdid -G
    7. added listview /xdid -H
    8. added webctrl $xdid().statusbar/statustext/script
    9. added note to updown /xdid -c to the effect that named id's can be used.
v3.0
  • New features
  • Syntax changes
  • Fixes and changes
  • DCX Project
    1. Dropped all support for mIRC < v7
  • Documentation
v2.0
  • New features
  • Syntax changes
  • Fixes and changes
  • DCX Project
    1. Changed everything to be utf only
  • Documentation
v1.4.1
  • New features
    1. treeview - added some error reports to /xdid commands when the path can't be parsed.
    2. treeview - - added per item marking via
    3. - /xdid -A N N N ... [TAB] [+FLAGS] [INFO]
    4. - +M flag will mark text
    5. flags can be added to this to allow for other 'per item' info tagging
    6. treeview - added $xdid(path).markeditem to retrieve marked text
    7. listview - added error reports to /xdid -a for when a group id is used & groups aren't enabled or the group id is invalid.
    8. listview - added some error reports to /xdid -q for when groupview isn't enabled or the group already exists.
    9. xpopup - now able to create menus using dcxml
    10. /dcxml -p [MENUNAME] [DATASET] [FILE]
    11. - eg. //dcxml -p popupName mypopup $qt(G:\C++\DCX\dcx_zip\dc.xml) | xpopup -s popupName + 300 400
    12. listview/treeview - added "E" search mode to $xdid().find for exact match. much faster as it isnt processed
    13. xpopup - added /xmenubar -s [ID] to simulate a click on a menu item ID
    14. controls - alpha, shadow, noformat, hgradient, & vgradient made into global styles for all controls (they still only affect the same controls tho)
    15. controls - added `utf8` style to enable using utf8 text within the control.
    16. listview - added /xdid -A +M, just like treeview
    17. - eg. /xdid -A [DNAME] [ID] [ROW] [COL] [+FLAGS] [INFO]
    18. listview - added $xdid(ROW, COL).marked
    19. list - changed to allow setting the normal text colour via xdid -C +t
    20. listview - made $xdid(dname,id).gnum functional, returns the total number of groups.
    21. listview - added $xdid(dname,id,N).gid returns the groupid for the specified item. Result can be -2 (no group), -1 (group callback, should never happen), or 0+ (group id)
    22. list - added /xdid -A [dname] [id] [N] +T [C] text[C]text... this allows adding a tokenized list to the list control.
    23. xstatusbar - added support for mIRC formatted text (/xstatusbar -t.. +f ...) same as with statusbar.
    24. xstatusbar - added `utf8` style support to /xstatusbar -A
    25. listview - added xml loading support similar to that in treeview via xdid -a [DNAME] [ID] [N] 0 +x 0 0 0 0 0 0 [DATASET] [FILENAME]
    26. which will insert the specified dataset at the specified [N] position.
    27. the xml data is stored like this:
    28. <dcxml>
    29. <listview_data>
    30. <lvitem text="itemtext" icon="N" overlayicon="N" stateicon="N" tooltip="tooltip text" autosize="1|0" autosizeheader="1|0" autosizemax="1|0" textbold="1|0" textunderline="1|0" textcolor="RGB value" backgroundcolor="RGB value" group="N" indent="N"/>
    31. <lvitem text="sometext">
    32. <lvsubitem text="subitemtext" icon="N" overlayicon="N" autosize="1|0" autosizeheader="1|0" autosizemax="1|0" textbold="1|0" textunderline="1|0" textcolor="RGB value" backgroundcolor="RGB value" indent="N"/>
    33. </lvitem>
    34. </listview_data>
    35. </dcxml>
    36. autosize, autosizeheader, & autosizemax are mutually exclusive.
    37. group, tooltip, & stateicon can only be used with <lvitem>'s not <lvsubitem>'s
    38. treeview - added `stateclick` callback event this event returns `stateclick [ID] [STATE] [PATH]`
    39. general - added an `enabled/disabled` signal when the switchbar/toolbar/treebar are enabled/disabled from the view menu & ONLY from view menu.
    40. xtreebar - added /xtreebar -c +hHzZ
    41. - +h - Change the hottrack text colour
    42. - +H - Change the hottrack background colour.
    43. - +z - Change the highlight text colour.
    44. - +Z - Change the highlight background colour.
    45. rebar - added /xdid -A to add per-item text marking
    46. rebar - added $xdid().markeditem to retrieve it
    47. dcxml - Fetching id attributes now first checks for a valid integer, otherwise tries to evaluate the attribute value. This allows you to do id="%toolbarId" or id="$myToolBarId".
    48. control - added $xdid().styles property to get the styles of the control
    49. comboex - added -A flag to set properties of items as in listview, it is now possible to set a mark for every item in the comboex
    50. comboex - added return event to react on return key
    51. divider - added 'position' and 'isvertical' properties
    52. divider - added 'dragbegin', 'dragfinish' and 'drag' events
    53. listview - added /xdid -a [NAME] [ID] [SWITCH] [N] [INDENT] +w [#ICON] [#STATE] [#OVERLAY] [#GROUPID] [COLOR] [BGCOLOR] [ITEM TEXT]
    54. - where [ITEM TEXT] is [+FLAGS] [TABLE NAME] [N|N1-N2|name]
    55. - added /xdid -a [NAME] [ID] [SWITCH] [N] [INDENT] +y [#ICON] [#STATE] [#OVERLAY] [#GROUPID] [COLOR] [BGCOLOR] [ITEM TEXT]
    56. - where [ITEM TEXT] is [+FLAGS] [@windowname] [N|N1-N2]
    57. - added /xdid -a [NAME] [ID] [SWITCH] [N] [INDENT] +z [#ICON] [#STATE] [#OVERLAY] [#GROUPID] [COLOR] [BGCOLOR] [ITEM TEXT]
    58. - where [ITEM TEXT] is [+FLAGS] [DIALOG] [ID] (N|N1-N2)
    59. - [+FLAGS] is a combination of
    60. - + No Flags specified. [N] provided, add a single item as text only.
    61. - +a item(s) contain all the flags & icon info etc.. for the item(s) to be added from [INDENT] onwards.
    62. - +A add all items starting at N
    63. - +n [N1-N2] numeric range supplied. Add all items in range. (can't be used with +A)
    64. - - - N1 must be > 0
    65. - - - N2 can't be 0, but can be a negative.
    66. - +i [name] single named item to be added. (cant be used with +n or +A)
    67. xdock - added $xdock(mIRC).switchBarHwnd/toolBarHwnd/treeBarHwnd
  • Syntax changes
    1. treeview - "0" is now a valid item index at the end of a path when adding, adds to very top (just like how -1 adds to very bottom) if searching/retrieving item, 0 points to first child (same as using 1)
    2. toolbar - changed /xdid -c to allow you to specify flags to be removed instead of removing any not specified.
    3. toolbar - added some new colouring options to buttons, these are set via /xdid -c with the flags:
    4. - +B - Buttons Colour.
    5. - +h - Text Colour when Highlighted.
    6. - +H - Buttons Colour when Highlited. (TBSTATE_MARKED & TBSTYLE_FLAT)
    7. - +m - Buttons background colour when marked. (TBSTATE_MARKED)
    8. - +T - Buttons Colour when hottracked.
    9. listview - - changed $xdid().marked to $xdid().markeditem
    10. xtreebar - changed /xtreebar -w [IMAGE_INDEX] [+FLAGS] [FILE_INDEX] [FILENAME] to take a [FILE_INDEX] of -1 as meaning `load all icons in file to imagelist at position [IMAGE_INDEX]`
    11. listview/treeview - added support for -1 icon file index to /xdid -w, loads all icons in file.
    12. divider - $xdid().position no longer retrieves alignment
    13. divider - fixed /xdid -v so it accepts min/max boundaries
    14. divider - /xdid -v now shows an error message when it fails
    15. listview - changed numeric range supplied with /xdid -a from N1-N2 to N1,N2, as this allows the negative numbers for N2.
  • Fixes and changes
    1. treeview - fixed path parsing bug caused by parsePath() & correctTargetItem() together, meaning the /xdid commands couldnt work on the first item.
    2. treeview - added some error reports to /xdid commands when the path can't be parsed.
    3. treeview - major revamp of the way paths are passed
    4. treeview - search functionality slightly reworked
    5. treeview - added error messages to some functions which previously failed quietly (ie. missing parameters, etc)
    6. treeview - /xdid -n now guards against cloning of parent node into child node
    7. treeview - /xdid -m now guards against moving of parent node into child node
    8. box - changed background drawing again. Should fix transparent controls in boxes showing the boxes parents background instead of the boxes.
    9. box - fixed the background drawing again, it really is fixed now honest.
    10. xpopup - fixed vertical gradient menus from not drawing correctly when scrolling is involved. (also added a whole bunch of experimental code and old code in case something breaks)
    11. toolbar - changed /xdid -a to set I_IMAGENONE when an icon isn't specified.
    12. toolbar - added some error reports to /xdid -w
    13. xdock - fixed a bug where you could only dock only window to a host, then every subsequent try got `Unable to find destination window` error.
    14. treeview - fixed comment for mouseitem since no path is required
    15. text - fixed redraw on text change issue
    16. listview - fixed crash on adding an item with an invalid group.
    17. check - fixed double sclick events.
    18. listview - changed /xdid -q to delete the text buffer after inserting the group.
    19. listview - changed /xdid -q group already exists error to show the group id.
    20. xpopup - fixed bug with /xpop -a where mii.fMask was checked for null, not mii.hSubMenu
    21. dcxml - changed some error messages
    22. dcxml - fixed 'FindNextSibling' on dialog to search for only dialogs
    23. listview - fixed /xdid -a crash with dev build (strange one)
    24. listview - fixed $xdid().find for non-report view.
    25. xpopup - no longer supports utf8 text in menus. Will add a way to switch this on again at some point.
    26. treeview - removed debug output for /xdid -A +M
    27. general - fixed memleak bug in DCXErrorEX() caused by missing va_end() call.
    28. link - changed to use the xdid -f set font when it exists, instead of always the default gui font.
    29. xpopup - changed DrawItemText() to check if the first char of the text is $chr(12) & enable utf8 support for that item if it is. (only way i could thing of to allow per-item utf8 atm)
    30. xpopup - changed /xpop -a to allow for tabs within label (but disables unimplemented 'command' feature. it can still be implemented by using the mirc way of doing things and using : instead of tab)
    31. xdock - fixed bug with /xdock -b +o on mIRC 6.30+ where it would always fail.
    32. button/progressbar - changed to use wide text when calculating rect needed.
    33. listview - removed the debug output from $xdid().gtext
    34. treeview - added some more error checking to /xdid -S
    35. treeview - fixed /xdid -S bug where it didn't save the dataset.
    36. xpopup - fixed drawing issue with custom menus when "/mpopup mircbar 1" is used
    37. listview - added a non-Vista version of $xdid().gnum
    38. listview - fixed a bug in xml loading which set the tooltip to the wrong item.
    39. treeview - fixed parsePath() to handle adding items that are `last item + 1` (needs lots of testing incase this broke something else)
    40. xpopup - fixed drawing of submenus for XPopup menus
    41. general - changed /xdid -R +p to check that atleast 3 points are given.
    42. listview - changed /xdid -a to only apply flags as they are needed.
    43. listview - changed /xdid -j to only apply valid listview states.
    44. treeview - changed insertItem()'s checking of state icon to check for > -1, this fixes the \`no state checkbox\` problem. Also fixed the same thing in xmlInsertItems()
    45. (x)statusbar - added some (5 pixels) spacing to right of icons.
    46. text/box - changed to disable all default borders on creation.
    47. calendar - fixed bug with daystate information not being parsed correctly, thanks ook for pointing it out
    48. xtreebar - added fix/workaround for mIRC's problems with some text passed to $xtreebar_callback() alias.
    49. xpopup - fixed $xpopup().colors not returning the 11th colour.
    50. xdock - fixed /xdock <flag> <hwnd> +B .... to correctly allow the scrollbar to show without leaving a huge gap. (this flag is only intended for when docking to channel/status/query/dcc chat windows.)
    51. xpopup - added fix for dialog menus not evaluating the menus correctly.
    52. xdock - changed checking for scrollbar when +B flag is used, this fixes the overlap problem when used with maximized mdi windows.
    53. dialog - added a fix for the crash condition caused by using /dialog -x within the callback alias without a /timer. /dialog -x no longer works within the callback.
    54. dialog - changed /dialog -x within the callback event to call a timed /xdialog -x & close the dialog.
    55. xtreebar - changed /xtreebar -T error message to correctly show the alias name.
    56. dcxml - Icon images were starting at 1 instead of 0 when indexmin was not specified.
    57. dcxml - the caption attribute would default to "(null)" if it wasn't specified and the element had no text. Particularly annoying on the item elements.
    58. - i.e <control type="toolbar"><item icon="1" /></control> would fill "(null)" as the toolbar button text.
    59. dcxml - can now specify gradient fill colours (again!) gradientstart="" gradientend=""
    60. dcxml - progressbar colours are now set correctly.
    61. treeview - fixed a bug in -m where an endless loop occured
    62. divider - changed some error msgs to use this->getUserID()
    63. trackbar - fixed #686, missing controlid from callback
    64. dialog - removed /xdialog -k command, why was it even here? It's not a dialog command.
    65. treeview - fixed senseless selchange events when destroying the control
    66. toolbar - fixed a bug where the extended arrows style was set wrong
    67. dcxml - fixed that identifiers were not executed on src-attribute of an icon definition if only one icon should be loaded
    68. xpopup - fixed the Server->Recent Servers and Favorites mIRC menus to work when the mircbar is costumized with /xpopup (bug #693)
    69. dialog - changed /xdialog -V to set the Vista glass offsets as well as the fake ones for pre vista.
    70. dcxml - fixed /dcxml -d crash on non-existant file.
    71. - changed /dcxml -d to now use IsFile() function that handles relative paths & "" etc.. for it.
    72. windowprops - changed WindowProps +i to return an error when no index or filename are supplied.
  • DCX Project
    1. general - moved all shell dialog functionality (ColorDialog, OpenDialog, SaveDialog, BrowseDialog, FontDialog, MsgBox and PickIcon) into ShellDialogs.cpp
    2. general - added ShellDialogs.cpp to project.
    3. general - changed the post compile upx to use --ultra-brute
    4. dcx_tools - added code to check for multiple dcx.dll's being loaded. worth keeping? any improvements needed?
    5. treeview - return value of insertItem changed to void
    6. treeview - getItemCount() renamed to getChildCount()
    7. treeview - parsePath() rewritten from scratch, now takes less parameters and returns HTREEITEM
    8. treeview - removed alot of unecessary HTREEITEM variables for hParent and hAfter
    9. treeview - correctTargetItem() removed
    10. treeview - getPath() rewritten from scratch, takes less parameters and simpler and returns TString.
    11. treeview - getPath() renamed to getPathFromItem()
    12. treeview - removed getPathFromVector()
    13. treeview - restructured a bunch of commands/info requests so it fails earlier, simplified nested if cases as much as possible and grouped variable declarations to the top of functions segments
    14. treeview - renamed alot of variables so they made more sense
    15. treeview - added various trims when checking for "root" path
    16. treeview - added lots of comments to code
    17. treeview - formatting changes
    18. treeview - changed some things to be const's.
    19. dialog - added redrawWindow() to WM_EXITSIZEMOVE to help with the buffered redraw bug during resize.
    20. general - moved FileDialog() into ShellDialogs.cpp
    21. general - moved dcxDialogs() into misc.cpp
    22. xpopup - removed XPopupMenu::XPopupMenuProc (wasnt used anywhere?)
    23. xpopup - added XPopupMenuManager::getMenuByHandle() but commented. probably wont need
    24. xpopup - changed XPopupMenuItem::DrawVerticalBar() to use CreateHDCBuffer().
    25. toolbar - changed parseButtonStateFlags(), parseButtonStyleFlags(), parseImageListFlags(), getImageList(), autoPosition() to take a const arg.
    26. toolbar - changed parseButtonStyleFlags() to use a switch()
    27. toolbar - changed drawing to create & destroy the font for each item.
    28. toolbar - some misc formatting changes.
    29. box - changed parseLayoutFlags() to take a const arg.
    30. tstring - changed to_wchr() to detect invalid chars & use CP_ACP convertion. This means accents etc.. will work again but you can't mix utf8 text in with them.
    31. xpopup - added XPopupMenu.parseStyle() instead of manually parsing in XPopupMenuManager
    32. xpopup - to get/set colors, now uses static const for numbers (names starting with XPMC_*)
    33. xpopup - made XPopupMenu.m_vpMenuItem public (was too lazy to make this properly)
    34. xpopup - xpopupmenu.getColor() now supports SELECTEDTEXT color
    35. dcxml - rewrote small part of /dcxml -d now uses XSwitchFlags rather than TString.find()
    36. divider - removed InitDivider() and UnInitDivider()
    37. divider - removed DIVIDERCLASSNAMEW, DIVIDERCLASSNAMEA, DIVIDERCLASSNAME
    38. general - added DCXErrorEX(), which removes the need to create a TString to print error messages
    39. general - changed a whole bunch of things to use DCXErrorEX()
    40. xpopup - - added a TODO upon LoadDLL() to check if next item text is "&Window"
    41. general - Added dev build number into dll version
    42. tstring - changed to_wchr() to take a bool arg that enables utf8 convertion.
    43. general - changed the mIRC_DrawText() functions to take a tryutf8 bool argument.
    44. dialog - changed redraw on size to not use buffered draw when dialog is composited.
    45. listview - streamlined /xdid -a a little.
    46. general - added ctrlDrawText() to DcxControl which draws the text depending on the controls shadow etc.. settings.
    47. general - changed some mIRCDebug() calls to DCXError()
    48. dialog/tab - changed a mIRCDebug() to be a showError()
    49. tab/box/line/list/text - changed to use ctrlDrawText()
    50. list - changed wm_drawitem to properly set bParsed.
    51. general - moved ZeroMemory() in XSwitchFlags to prevent crash when an invalid switch is specified.
    52. general - changed XSwitchFlags::isSet() to be const.
    53. general - changed XSwitchFlags::operator [] to be const.
    54. xpopup - uncommented getMenuByHandle()
    55. xpopup - added isCustomMenu() function.
    56. xpopup - changed xmenubar to use isCustomMenu()
    57. panel - change background drawing to fill in again.
    58. listview - changed $xdid().gnum to use a for() loop.
    59. dcxml - changed parseCLA() to take a const argument.
    60. statusbar - changed /xdid -t to not use ZeroMemory()
    61. xstatusbar - changed -t to not use ZeroMemory().
    62. treeview - removed some duplicate code from /xdid -z
    63. treeview - added comment about TreeView_SortChildrenCB() not recursing.
    64. general - changed IsFile() to unquote the filename.
    65. general - changed dcxwindow class to use the styles macros.
    66. general - added function AddFileIcons(), this adds all icons in a file to an imagelist.
    67. general - added error check to dcxLoadIcon() for a negative file index.
    68. tstring - changed trim() to return a TString
    69. general - changed a whole bunch of things to make use of TString.trim() change
    70. general - fixed some missed TString.trim() calls.
    71. calendar - added comment about possible error. Have a look at this twig.
    72. general - added x64 builds to vs2005 (for testing etc..)
    73. general - added shlwapi.lib to link libs for vs2005 & vs2008
    74. general - changed pcre.lib to only be linked when DCX_USE_PCRE is defined. Modified vs2005 & vs2008 to reflect this.
    75. general - changed the vs2008 project to exclude the upx by default.
    76. general - fixed vs2003 files
    77. general - cleaned up vs2005 files
    78. > removed LIBCMT
    79. > removed pcre7.2 imports
    80. > excluded upx on release post-build
    81. > fixed imports on some builds (they werent consistant)
    82. xpopup - changed getIemSize() & DrawItem() to use a temp tstring var instead of getting the name twice.
    83. dialog - added error check to result of mirc's wm_initpopup handeling before doing our own.
    84. xpopup - fixed bug (twice) where an TString object was passed to wsprintf() instead of using to_chr().
    85. general - changed CreateHDCBuffer() to calc the bitmap size required from the old hdc's bitmap if a RECT isnt specified.
    86. general - changed CreateHDCBuffer() to copy more settings from the old hdc & to BltBit() copy the old hdc contents to the buffer.
    87. general - changed mIRC_DrawText() to use CreateHDCBuffer() to buffer the drawing & maybe avoid some flicker (being tested, code not final for this yet).
    88. general - commented out the SaveDC()/RestoreDC() code within mIRC_DrawText()
    89. general - added a mIRCLinker class managing the complete access to mIRC and updated all classes to use it
    90. general - added Dcx class for global access to get more object oriented access to all the global variables and functions, therefor many of the globals have been gone
    91. general - added DcxModule class and sub classes to get a better system into all of this extensions
    92. general - added a property sheet to dcx for a $(mIRCDir) returning the mirc application directory, used to copy the dcx.dll to there, after compilation (project vs2k8 only)
    93. control - added a toXml function and implemented it for most of the controls, used to get a dcxml from a dialog with only one command (not ready yet)
    94. control - added getPosition, getStyles and getBorderStyles methods to easily retrieve the propertys
    95. dcxml - added toXml function for later use
    96. listview - start working on bugfix for bug 598, not ready yet
    97. dcxml - added a xsd schema file for dcxml (working on that)
    98. comboex - removed the ES_AUTOHSCROLL style from comboex because of problems, needs testing
    99. mdialog - changed some things to fix a bug on closing the parent dialog
    100. xdock - added all UltraDock things into the DcxDock class
    101. general - added DCX_DEBUG define back again, used it to remove all debug code from release builds
    102. general - added DCX_DEBUG_OUTPUT define to help with this.
    103. general - added dwmapi.h to includes
    104. general - added WINVER defines for windows7 & IE8
    105. general - moved DWMWINDOWATTRIBUTE to allow including dwmapi.h without conflict
    106. mIRCLinker - changed eval() to use lstrcmp()
    107. mIRCLinker - changed exec() to use lstrlen()
    108. general - added dcxGetWindowRect() function which calls DwmGetWindowAttribute() under vista+ (atm i use __in & __out in the args let me know if this causes problems in compilers other than vs2008)
    109. general - added _INTEL_DLL_ define to export dll functions when using the Intel C++ compiler as it seems to have problems with the lib.def file.
    110. - NB: Intel C++ V11 Compiler causes some oddities in code when full opt is used, reasons unknown at this time.
    111. general - changed dev build number to 9
    112. dll - added DllMain() function to stop multiple copies of dcx.dll being loaded at the same time.
    113. dialog - changed flags = flags + "letter" to flags += 'letter' in WM_MOUSEWHEEL
    114. dialog - added check to disable vista style dialogs under vista when aero is enabled untill vista+ code is writen.
    115. general - changed lots of d = d.trim() back to d.trim() again, and other similar assigns.
    116. dll - added GetFullPathNameWUx() for use by PickIcon() as PickIconDlg() requires the full path name. (This function is windows 2000+)
    117. dialog - changed xdialog -R to use dcxGetWindowRect()
    118. dialog - changed DcxDialog::WindowProc() to use a shorter InSendMessageExUx() check.
    119. box/check/radio - changed /xdid -t to avoid using a temp string.
    120. xpopup - added comment about vista & windows 7
    121. dialog - changed DcxDialog::parseCommandRequestEX() to use rge TString::vprintf() function.
    122. listview - started rewriting /xdid -a to allow adding items on mass from hashtables/@windows/other controls.
    123. - added DcxListView::massSetItem() thats used by all other functions (except xml ones) to add items & subitems.
    124. - added DcxListView::parseMassItemFlags() to change the item flags string to a bitmask.
    125. - added DcxListView::hashLoadListview() to add items from a hashtable based on given flags.
    126. - added DcxListView::winLoadListview() to add items from a @window based on given flags.
    127. - added DcxListView::ctrlLoadListview() to add items from a dcx dialog control based on given flags.
    128. tstring - changed TString::mid(int pos, int n) to TString::mid(const pos, int n)
    129. listview - replaced hashLoadListview() & winLoadListview() with xLoadListview() which handles hashtabled & @window loading.
    130. - xLoadListview() may support adding other loading methods in the future as it takes mIRC functions as args which it then uses to load data etc...
    131. - added error reports to xLoadListview()
    132. - added parseText2Item() function which is used to build the command line for adding items that are text only.
    133. general - changed ChangeHwndIcon() to use TString.trim() correctly. (missed it in previous changes for .trim())
    134. xpopup - changed XPopupMenuItem::XPopupMenuItem() to use TString.trim() correctly. (missed it in previous changes for .trim())
    135. listview - changed xLoadListview() to disable/enable redraw while adding items, to speed things up.
    136. tstring - changed TString.trim() to return a TString & refrence to *this, no copy/new object needed.
    137. general - fixed Dcx::errorex(), wasn't calling va_end()
    138. - changed Dcx::mark() to take const args.
    139. - changed DcxDWMModule::isAero(), DcxModule::isUseable(), mIRCLinker::isDebug(), mIRCLinker::isVersion(), mIRCLinker::isOrNewerVersion(), mIRCLinker::getSwitchbar(), mIRCLinker::getToolbar(), mIRCLinker::getTreebar(), mIRCLinker::getTreeview(), mIRCLinker::getTreeImages(), mIRCLinker::getTreeFont(), mIRCLinker::getMDIClient(), mIRCLinker::getHWND(), mIRCLinker::getVersion(), mIRCLinker::getMainVersion(), mIRCLinker::getSubVersion() to be a const function.
    140. - changed mIRCLinker::setTreeFont() to use DeleteFont() macro.
    141. - rewrote mIRCLinker::evalex() & mIRCLinker::execex() & mIRCLinker::signalex().
    142. - changed ParseLogfontToCommand() to use flags += instead of flags += "."
    143. - changed ParseLogfontToCommand() to correctly replace the old font before deleting.
    144. - changed mIRCLinker::signal() & signalex() to take const args.
    145. controls - rewrote DcxControl::evalAliasEx() rewrote DcxControl::execAliasEx()
    146. - changed DcxControl::getPosition() to use the MapWindowRect() macro.
    147. - changed DcxControl::getPosition() to be a const function.
    148. dialog - changed DcxDialog::DcxDialog() to take const args.
    149. - changed DcxDialogCollection::markDialog() to take const args.
    150. - rewrote DcxDialog::evalAliasEx() & DcxDialog::execAliasEx().
    151. - added DcxDialog::execAlias()
    152. - added DcxDialog::evalAlias()
    153. dcx_demo - fixed the icl file and the dcxml file (bug #731)
    154. general - changed several MapWindowPoints() to MapWindowRect() (when were these changed? I'm sure i had these as this macro alrdy)
    155. - changed Dcx::unload() to use the GetWindowFont() & SetWindowFont() & DeleteFont() macros. (again I'm sure i had this set previously)
    156. - rewrote Dcx::errorex() to use a TString instead of a fixed buffer size.
    157. dialog - changed CreateVistaStyle() to support Vista+ as well as pre vista.
    158. - fixed toXml() to avoid allocating a TString object that's never deleted.
    159. - changed toXml() to take the TString arg as a const.
    160. dwmmodule - changed how the dwm functions are stored & accessed so they are now part of the module & special dcx functions are used to accesses them.
    161. - changed all other code to use these new functions instead of the pointers directly.
    162. - changed isAero() to be an inline function.
    163. general - changed all remaining ScreenToClient() calls to MapWindowPoints()
    164. treeview - changed cloneItem() to set byte 0 of itemtext to 0 instead of doing lstrcpy("\0") (wtf?)
    165. - removed some unneeded TString objects.
    166. general - changed DcxControl::WindowProc() to make more sense at the end when calling DefWindowProc().
    167. - changed DcxControl::CommonMessage() handling to always mark WM_CONTEXTMENU as handled, this stops lots of rclick events being generated in parent controls.
    168. - changed DcxControl::getStyles(), cleaned up the code abit.
    169. - rewrote DcxControl::getBorderStyles() to use a TString object from the start.
    170. - changed DcxControl::toXml(), cleaned up the code abit.
    171. treeview - changed NM_CLICK, NM_DBLCLK, NM_RCLICK handling, cleaned up the code abit.
    172. - changed NM_RCLICK to return TRUE & stop rclick events in parent controls.
    173. general - fixed some Initialize miss spellings.
    174. - changed some GetWindowText()'s to TGetWindowText() instead. (mostly to avoid fixed buffer sizes.)
    175. - changed ChangeHwndIcon() to avoid using an unneeded TString object.
    176. box - changed the DrawClientArea() code to draw the background like it used too before someone moved it.
  • Documentation
    1. - moved version number right under sitenav at the top of the pages
    2. - removed unnecessary cells between page content/menus and header
    3. - aligned left and right menus
    4. - applied some of andy's style changes (zero'd left and right page margins, links to irc channels)
    5. - fixed stupid flag +HHHHHHHHH? on listview /xdid -a
    6. - changed the line distance between pink "DCX does not support" and blue "XPopup (special)"
    7. - changed the Note's above GDI+ so Note isnt repeated 3 times
    8. - removed a <br /> in "Callback Alias Events"
    9. - removed a <br /> in the Note from Callback Alias Events
    10. - added a <br /> before the <span class="version> (twig: tweaked to use div instead of <span> so padding works and we dont need to print more <br>s)
    11. - added some blank lines in the Credits
    12. - changed the Notes for \$dcx(ColorDialog)
    13. - changed the height in archive.php for iframe to 400px
    14. - restructured the syntax on /xtreebar -w to be less confusing and added examples
    15. - restructured the syntax on $dcx(FontDialog) to be less confusing
    16. - changed the dialog name in /dcx Mark
    17. - changed "Statusbar" to "StatusBar" in XStatusBar page
    18. - fixed incorrect spelling of Referrence in dcxml page
    19. - changed 'M' param in $xdid(listview).find to 'COLUMN'
    20. - added note for treeview /xdid -a to allow 0 to be at the top of branch
    21. - added notes for treeview /xdid -m and /xdid -n
    22. - moved part of description to note for treeview /xdid -t
    23. - reworded treeview /xdid -u
    24. - reworded parts of treeview 'paths' section
    25. - documented /xdialog -t clickthrough feature (with experimental note)
    26. - added documentation for /dcxml -p (its like dcxml docs but in the xpopup page. rather ugly)
    27. - added a note to treeview .find identifier, describing how to escape specials characters
v1.4.0
  • New features
    1. added DCXML
    2. added /xtreebar to modify mIRCs treebar
    3. added /xstatusbar to dock a statusbar into mIRC's main window
    4. added XMenuBar to modify mIRCs menubar
    5. added a dialog callback called 'zlayershow'
    6. added /xdid -V for listview which scrolls list to make an item visible
    7. added /xdid -P for (rich)edit to paste clipboard content
    8. added +o flag for /xdock -b to use the old style treebar docking
    9. added /xdialog -P to use xpopup commands on dialog menus
    10. added +t flag to /xdid -i for image control to tile the image
    11. added /xdid -w for stacker to add images to internal imagelist
    12. added /xdid -y for stacker which clears the internal image list
    13. added /xdid -o for image control to offset picture
    14. added general 'noformat' style to disable support for mIRC formatted text in some controls
    15. added /xdid +k -1 for statusbar to reset color
    16. added +f flag to /xdid �t for statusbar to display formatted mIRC text
    17. added +c flag to /xdid �t for statusbar to create child controls
    18. added text support to line control
    19. added /xdid -a for text control to append text
    20. icon loading supports +a flag to show associated filetype icon if icon fails to load from specified file
    21. added animate styles to /xdid -h and /xdid �s
    22. /xdid -R +f can now be combined with the +R flag so image is resized to control size before applying region
    23. added 'alpha' support to treeview
    24. added 'alpha' support to trackbar
    25. added $xdid().isloaded property to directshow to determine if a file is loaded
    26. added +b flag to /xdock -n to disable scrollbars
    27. added $xdid().fname for directshow to get loaded filename
    28. added $xdid().fname for image to get loaded filename
    29. added 'closable' style for tab control to add X button on tab items
    30. added 'gradient' style for tab for gradient item background
    31. added 'closetab' event for tab control when the close button is clicked
    32. added +a flag to /xdid -a for directshow which specifies audio only
    33. added 'noheadersort' style to listview
    34. added /xpopup -R rounded style and ability to set transparency level
    35. added $xpopup().isrounded
    36. added $xpopup().alpha
    37. added $dcx(PickIcon, index filename) to open an icon selector on XP+
    38. added $xdid().wname for docked @window control to retrieve window name
    39. added 'SelectedText' colour (index 11) to xpopup menus
    40. added +r flag for /xdid -C to set border colour
    41. added +b flag for /xdid -R to set control alpha blending level
    42. added +v flag for /xdialog -b to set vista styled dialog (2k+) (WARNING: uses extremely high processing power on older machines)
    43. /xdialog -t now allows setting of alpha value and transparent colour
    44. added /xdialog -V to adjust the vista aero glass area
    45. added $dcx(ActiveWindow) to retrieve properties of the currently active window within operating system
    46. added /xdid -v for tab control which moves an item to a new position
    47. added /xdid -l for edit to change readonly state
    48. added $xdid().isreadonly to edit control
    49. added xdid -r for text control to clear text
    50. added 'returndefault' style to ColorDialog
    51. added 'draglist' style to list control
    52. added callbacks itemdragbegin, itemdragcancel, itemdrag, itemdragfinish to list control
    53. added 'dragline' style to list control
    54. added support for a background image via /xdid -G for treeview
    55. added 'selected' and 'deselected' events to listview
    56. added 'selchange' event to treeview
    57. added 'showsel' and 'noshowsel' to /xdock -F +s styles (now moved to /xtreebar +s)
    58. added 'sizing' event to tab control
    59. added /dcx WindowProps +r to simulate a right click
    60. added $xtreebar().item to retrieve text from mIRC Treebar
    61. changed statusbar /xdid -l to accept percentage values as valid widths. values without the % symbol are considered fix widths
    62. added 'noauto' style to statusbar
    63. added 'noauto' style to rebar
    64. allowed divier to host all control types
    65. added 'showsel' style to edit
    66. allowed statusbar to host all control types
    67. added 'keydown' event to listview
    68. added general style 'hidden' to all controls except mdialog and mwindow
    69. added 'alpha' style to tab
    70. added /xdid -y to enable/disable keydown events for button being held down
    71. added listview /xdid -W This command lets you change the viewing mode
    72. added overlay icon support to treeview and listview
    73. added $xdid(listview).columnorder to get the order of the columns
    74. added listview +m flag to /xdid -n to allow manual width specification for all widths at once
    75. added dialog callback 'isverbose' which is sent as soon as a dialog is marked
    76. added listview /xdid -o to allow user to change column order
    77. added VALUE to sclick, rclick and mousebar as they were in docs (but not included in code)
    78. when space is pressed and checkboxes enabled, stateclick event will be triggered
    79. 'nospace' is accepted as a return value for 'keydown' to prevent the user from using the spacebar to change checkbox values
    80. added $xdid(tab).mouseitem
    81. added $xdid(toolbar).dropdownpoint
    82. added $xdid().textcolor
    83. added $xdid().textbgcolor
    84. added $xdid().bgcolor
    85. added ability to load from hash tables for listview via /xdid -a
    86. added ability to load from hash tables for treeview via /xdid -a
    87. added ability to load from hash tables and files for list via /xdid -A
    88. added 'multicol' style which allows a multi column list
    89. added 'hsbar' style to list which enabled the horizontal scrollbar
    90. added list /xdid -m command to configure 'multicol'
    91. added /xdialog -S
    92. added mIRC formatted text support to list
    93. added 'noformat' style to disable mIRC text formatting to list
    94. added $xdid(list).find support
    95. added comboex 'hscroll' style which enables the horizontal scroll bar
    96. changed /xpopup -s to support an optional hwnd argument that allows the popup to be opened relative to a specific window
    97. treeview - added /xdid -S to save contents to file
    98. directshow - added $xdid().state
    99. general - added /xdid -C +g/G flags to set gradients
    100. added hgradient and vgradient styles to various controls
    101. added /xtreebar -T to enable DCX controlled drawing of the mIRC TreeBar
    102. added /xtreebar -c to change TreeBar colors
    103. added /xtreebar -w to change TreeBar icons
    104. added infotips style to xtreebar
    105. added xtreebar styles balloon and noballoon (see note)
    106. changed /xdid to support `/xdid [cmd] id-id [options]` and `/xdid [cmd] id,id-id [options]` just like mIRC does with /did
    107. added /xstatusbar -f
    108. added `check` style and `checkchange` event to box
    109. added /xdialog -S to resize client area
    110. added 'check' style and 'checkchange' event to box
    111. added /xdialog -S
    112. added /xpopup -M
    113. added $xpopup().marked
    114. added $xdid().selected to listview
    115. added events: close (calendar hidden), open (calendar shown), change (date/time changed) to datetimepicker
    116. added event 'showtip' to trackbar
    117. added +f flag for dcxLoadIcon() functions (which affects many controls) to allow loading of filetype icon
    118. added BrowseDialog
  • Syntax changes
    1. updated dcx_tools.mrc to include /xstatusbar, /xtreebar and /xmenubar aliases. please update your scripts!
    2. moved statusbar and treeview commands from /xdock to /xstatusbar and /xtreebar
    3. changed stacker /xdid -a to support image indexes
    4. changed listview /xdid -a to include OVERLAY, COLOR and BGCOLOR (for subitems)
    5. changed listview /xdid -j to include COLOR and BGCOLOR (optional parameters)
    6. changes to icon loading commands such as /xdid -w to support icon flags which affect most controls
    7. changed /xpopup -i to support flags
    8. /xtray now supports (and hence requires) icon flags
    9. changed $xdock(mIRC) switchBarSize, toolBarSize and treeBarSize to return 'x y w h' instead of just 'w h'
    10. changed statusbar /xdid -l to take widths instead of border offsets
    11. moved /xdock -G to /dcx GhostDrag
    12. changed $xstatusbar properties; 'isStatusBar' to 'visible', 'statusText' to 'text', 'statusParts' to 'parts' and 'statusTooltip' to 'tooltip'
    13. modified (rich)edit /xdid -S to make END parameter optional (to change caretpos)
    14. mwindow now accepts HWND as well as @window name for docking
    15. the 'changing' callback event for dialogs now include sizing, moving or both to determine which event occurred and the dialog sizes.
    16. /dcx xSignal changed to support optional flags +dst (xdock, xstatusbar, xtray)
    17. changed treeview and listview /xdid -w to allow setting an icon as an overlay icon. READ NOTES!
    18. listview /xdid -l now supports optional parameter OVERLAY
    19. changed [N] to be an optional parameter in $xdid(listview).hwidth so all widths are returned
    20. $xdid(lv).text parameter NSUB is now 1-based index
    21. $xdid(lv).icon parameter NSUB is now 1-based index
    22. $xdid(lv).seltext parameter NSUB is now 1-based index
    23. $xdid(lv).seltext NSUB is now optional, returns first column by default
    24. listview /xdid -n parameter COL is now 1-based index
    25. listview /xdid -v parameter COL is now 1-based index
    26. modified treeview /xdid -j to support overlays
    27. added header ID to listview 'trackbegin' event
    28. switched EVENT and DCXStatusBar parameters in XStatusBar signals
    29. dialog 'close' event has been broken up into 'close' and 'scclose' to provide better control
    30. made $xdid(listview, N, NSUB).text NSUB parameter optional (returns first column by default)
    31. listview events stateclick/sclick/dclick/rclick/rdclick/hover/selected/deselected SUBITEM index is now 1-based indexes
    32. listview event labelbegin now provides N and NSUB
    33. colorcombo /xdid -c now accepts 0 to clear selection (thanks andy for idea)
    34. moved VALUE param to the end of events (no syntax changes required)
    35. OpenDialog and SaveDialog now also return the full pathname
  • Fixes and changes
    1. added check for correct flags prefix '+' in image control xdid -i
    2. added /xdid -Z as a temporary fix until the -Z listview problem is fixed
    3. changed WM_CTLCOLOR message parsing so they work correctly when a background brush is not set (fixed /xdid -C bug)
    4. changed AdjustMDIRect() to reserve space for docked dialogs only if they are visible. This has a side effect in that dialogs docked within the init event never have the visible flag set so show up wrong, This is fixed by using a timer
    5. changed /xdialog -x to send WM_CLOSE instead of using DestroyWindow()
    6. changed /xdid -T to use ListView_SetInfoTip()
    7. added fix for 1px images being stretched
    8. changed $xdid().text to use a 1-based index for parameter N
    9. fixed directshow $xdid().currentpos
    10. changed directshow /xdid -a to InvalidateRect() after loading media
    11. fixed listview bold/underline/etc flags being misapplied to subitems
    12. fixed /xdid -a stacker check for numtok
    13. image fixed background updating when transparent.
    14. fixed /dcx WindowProps check for -FLAG to +FLAG
    15. fixed the box border style when no text is supplied
    16. changed listview /xdid -a to check for nPos < 0 rather than == -1
    17. changed stacker WM_DRAWITEM to only set back mode to TRANSPARENT when doing non-formatted text rendering
    18. changed statusbar /xdid -t to check for an invalid part and give an error
    19. changed statusbar /xdid -v to give an error when an invalid part is supplied
    20. changed mdialog to set back to OrigID in destroy, instead of setting to ID
    21. /xdid -h and /xdid -s now update CLA immediately
    22. changed GetHwndFromString() to allow supplying an HWND (allows mdialog/mwindow to dock via the hwnd)
    23. changed /xdialog -d to remove the control from the internal list when its an embedded dialog/window
    24. changed object delete code to set parent differently (this fixes most but not all of the undocking problems)
    25. changed /xdid -J to use LoadImage(IMAGE_CURSOR) and get a non-shared cursor handle (this allows us to delete the cursor and fixed the graphics corruption bug)
    26. changed /xdid -J to check if file exists
    27. changed /xdialog -q to check file exists
    28. changed WM_SETCURSOR code to check if the cursor to set is the same as the current before trying to set
    29. changed pager /xdid -d to remove mdialog or mwindow control from the internal list
    30. changed edit /xdid -j to set the ES_PASSWORD style before getting the char, allowing the XP style to be used instead of always setting to *
    31. small change to some xpopup if's to use a TString compare instead of doing a gettok as well
    32. added a buffer delete to IsFile() to cover the case where the search fails after having found the file the first time
    33. changed /xpopup -b to check a file exists and give an error if it doesnt
    34. changed /xpopup -b to accept 'none' or $null as a file name to remove current image
    35. changed /xpopup -i to check a file exists and give an error if it doesnt
    36. changed $xpopup().style to support 'vertical' and 'verticalrev' styles
    37. changed dcxLoadIcon() to use GDI+ when +P is supplied. this allows it to load any GDI+ supported image format as an icon
    38. changed dcxLoadBitmap() to use GDI+ when it can to load the image. this allows all bitmap loading commands to load any GDI+ supported format
    39. fixed incorrect coordinates of toolbar dropdown
    40. changed ChangeHwndIcon() to avoid doing things twice when small and large icons are the same
    41. changed /xpopup -b to trim() the filename
    42. fixed rebar wasn't returning the results from child controls
    43. changed directshow /xdid -a to check for a min of 4 args
    44. added a check for at least 4 args in subitems to listview /xdid -a
    45. changed listview /xdid -t to use the autoSize() function
    46. added check for directx 9 to directshow /xdid -a
    47. fixed trackbar thumb image rendering when selected
    48. changed /xdialog -j to only redraw the whole dialog if an ID isnt specified
    49. changed /xdock -A to halt on error
    50. fixed bug where button text would be forgotten when other buttons were deleted
    51. all dcx controls automatically redraw themselves upon theme change
    52. fixed /xdock -u requiring flags
    53. added background color drawing to panel via /xdid -C
    54. added directshow $xdid().volume to get current volume
    55. added directshow /xdid -V to set volume
    56. added directshow events rbdown, rbup and rclick
    57. fixed xpopup bug in DrawItemCheckBox() where pen was deleted without first being removed from HDC
    58. fixed duplicate sclick event when clicking on an unselected tab
    59. fixed treeview bug when moving an item to an empty parent
    60. fixed listview $xdid().pbar to work correctly
    61. added code to fix listview font changes per subitem
    62. added code to make sure listview has focus before doing a label edit. No longer need to force focus first
    63. changed ghost drag to use the set alpha level after a drag instead of 255
    64. changed button background drawing a little
    65. changed pbar/image background drawing to only do parents background when transparent
    66. fixed tab bug where incorrect button ID was shown in sclick event
    67. fixed xpopup menu corruption when MDI client (channel) window is maximized then restored
    68. modified checkbox so correct $xdid().state value can be used during sclick event
    69. changed /xdialog -x to only send WM_CLOSE to modal dialogs
    70. added WM_CLOSE check for escape being pressed. Fixes divider being destroyed bug
    71. fixed listview pbars within items scrolling oddly when horizontal scroll is used
    72. changed /xdialog -t alpha and /xdialog -t transparentcolor to accept 'none'
    73. fixed bug with /xtray -i loading the wrong icon index
    74. changed /xdid -U to remove focus from control correctly
    75. changed how the panel and box controls are registered, which fixes the 'no tooltips' and 'label edit' bugs
    76. changed dcxSignal boolean into a finegrained struct
    77. changed mIRCSignalDCX() to require a boolean parameter
    78. changed SystemTimeToMircTime() to use mIRCevalEX()
    79. xtray and xstatusbar signals are now sent by default, but xdock signals are still disabled
    80. fixed calendar 'select' callback for single select
    81. fixed calendar $xdid().value returning 0 for single select
    82. added spaces between names in Version and changed '&' to 'and'
    83. added initImageList() for listview to make icon adding code cleaner
    84. added token count checking to /xdid -j
    85. ColorDialog, OpenDialog, SaveDialog, FontDialog and MsgBox. They no longer support modeless owners due to FindOwner()
    86. fixed /xdid -a so it adds to end if N out of range (thanks andy)
    87. fixed $xdid(listview).sel from appending unecessary comma at the end of list
    88. fixed /xdid -Z, but only for report view
    89. /xpopup -R +a 255 no longer causes a minor flicker when it tries to set opacity even when not supposed to
    90. fixed isverbose bug, missing ','
    91. fixed a small delete bug in listview xdid -o
    92. changed /xdid -c/-d/-o to take item number 0 as meaning the last item in list
    93. changed activateSelectedTab() to not activate or redraw an inactive tab when sizing
    94. changed ExecuteLayout() to use SWP_NOACTIVATE | SWP_NOREDRAW | SWP_NOOWNERZORDER
    95. changed getFont() to return an HFONT and to use the GetWindowFont() macro
    96. changed getAnimateStyles() to check for a valid + flags char and to use a switch() statement
    97. changed listview/treeview regex search to allow for multiple matches to pattern
    98. fixed mIRC_DrawText() not vertically centering text when DT_VCENTER was used
    99. changed mIRC_DrawText() to reset font weight to original weight on a ctrl+o
    100. added check to DrawDialogBackground() for temp hdc being NULL
    101. changed treeview item select code to stop bkg image being skewed when an item is expanded
    102. changed /xdid Invalid ID error to reflect that it is an xdid error
    103. changed treeview drawing a little when transparent. Now only sets noredraw when WS_EX_TRANSPARENT
    104. treeview - changed /xdid -a to mask out the dcx flags as these were messing up the overlay and state icons.
    105. treeview - changed parsePath() to return the item handle instead of TVI_xxx values (needed for xml saving).
    106. dialog - added workaround for richedit not redrawing correctly in buffered redraw (WM_SIZE)
    107. xdock - now supports treebar class in mIRC v6.30
    108. text - fixed redraw bug when control is enabled/disabled and formatted text is being used.
    109. xdock - changed AdjustRect() to correctly position treeview within treebar when statusbar is on.
    110. xtreebar - fixed style `ident` to be `indent`
    111. box - fixed mem leak in $xdid().inbox
    112. statusbar/xstatusbar - added check to -l command to stop the % parts adding up to > 100%
    113. toolbar - fixed /xdid -q bug where the command id was used but the TBIF_BYINDEX flag was specified.
    114. toolbar - changed /xdid -c and -i to use the TBIF_BYINDEX flag.
    115. xtreebar - added check for valid - char in switch.
    116. xtreebar - improved the handling of a non-winsdk compile.
    117. xtreebar - added an enum for all the /xtreebar -s styles.
    118. xtreebar - changed invalid style error to return the style in question.
    119. xtreebar - changed /xtreebar -c to check for a valid + char in flags.
    120. xtreebar - changed the image list we create in /xtreebar -w to use the icon sizes in the default list instead of 16x16 (this is still the default if the sizes cant be found)
    121. xpopup - changed /xpopup -l to accept `default` in place of an RGB value
    122. xpopup - changed $xpopup() to support the mirc and mircbar menus.
    123. xpopup - changed /xpopup -p to accept `default` as a colour value.
    124. xpopup - changed XPopupMenu::DrawGradient() to reduce the width by `dy` just like it reduces the height. This stops the right hand border being drawn over.
    125. xpopup - fixed bug where $xpopup().ismenu would always return $false
    126. dialog - fixed a bug in parseComControlRequestEX() where p_Control wasnt checked for NULL.
    127. listview - changed $xdid().mouseitem to return the subitem as well.
    128. edit - changed text handling code to support wide chars.
    129. xpopup - added monitor offset to menus opened by xpopup -s (requires testing)
    130. toolbar - fixed /xdid -c for first button.
    131. richedit - fixed link event not triggering
    132. richedit - fixed crash on link event
    133. richedit - fixed crash for $xdid().text on single line (need to add multi line number range check)
    134. richedit - added line number checks to $xdid(N).text to ensure it is within a valid range (0 < N < line count)
    135. xpopup - changed /xpopup -s to adjust menu position on the assumption that the x & y are relative to the client rect when an hwnd is supplied.
    136. ipaddress - commented out unecessary /xdid -r code
    137. (rich)edit - added code to /xdid -S to move caret to selected text
    138. button redraws after icon is set
    139. fixed tooltip hwnd wasnt correctly initialized to NULL
    140. changed CreateHDCBuffer() to copy the Pen, Brush, Layout & Font too
    141. added getting of the GetThemeColor() function from uxtheme
    142. button/text/ipaddress - changed the handling of `tooltips` style to report an error if tooltips havent been enabled for the dialog
    143. text - changed /xdid -t to use InvalidateParentRect()
  • DCX Project
    1. added VS2008 project files
    2. removed commented code
    3. added TGetWindowText() function which gets the window text as a TString
    4. fix possible memleak with treeview setImageList()
    5. moved some mIRC HWND's into mIRCLink
    6. changed $dcx(GetSystemColor), $dcx(ColorDialog), $dcx(FontDialog) and $dcx(GetTaskbarPos) to avoid an unneeded copy to set the return value
    7. made parseListviewExStyles() and createImageList() static functions
    8. added dcxDock class which handles behaviour
    9. changed UltraDock to use new dcxDock class
    10. added TreebarDock using dcxDock class, which takes the same flags as UltraDock
    11. changed /xdock -b to use the new TreebarDock by default
    12. moved the drawing code for images to DrawBMPImage() and DrawGDIImage()
    13. updated dcx_tools.mrc /xdock alias to pass along $2-
    14. added DrawItemImage() for stacker to render the items image
    15. added mIRC_DrawText() function which draws a mIRC string using mIRC control codes
    16. changed IsFile() to do a file search before saying it can't access a file (allows it to find files in the system PATH)
    17. moved a whole bunch of functions out of misc.cpp and into mircFunctions.cpp or windowFunctions.cpp
    18. changed dcx_tools.mrc /return calls to /returnex
    19. added defines to TString such as SPACE, TAB, COMMA
    20. changed all controls to have an improved parseInfoRequest() that uses a TString prop instead of doing lots of gettoks
    21. changed some to_num() calls to to_int() when the number was typed as an int
    22. changed the $xpopup().style to use a switch statement instead of the ifs
    23. fixed statusbar $xdid().tooltip using gettok(3) when it should have been gettok(4)
    24. changed DrawParentsBackground() to only use dhwnd if it is not null
    25. changed WM_CTLCOLOR messages to set the background mode as TRANSPARENT and return a HOLLOW_BRUSH when the control hass WS_EX_TRANSPARENT set. this improves the look of some controls abit (exp radio or check)
    26. changed box to use a TString object from right after GetWindowText()
    27. changed to be always transparent
    28. moved DCXML out of dialog into its own section
    29. moved some defines to before the includes in defines.h to allow testing out the _SECURE_SCL 0 in the release builds
    30. toolbar changed to use MapWindowPoints() instead of ClientToScreen() and ScreenToClient()
    31. added NULL check to unregistreDefaultWindowProc()
    32. fixed memory leak in BitmapRegion()
    33. uncommented file access check from ChangeHwndIcon()
    34. changed some ifs in BitmapRegion() to make the meaning clear
    35. added a RGN_DATA count check before final create region
    36. fixed memory leak in background bitmap drawing
    37. changed all cursor code as needed to delete the LoadImage() cursor.
    38. fixed a small memory leak in BitmapRegion() when CreateDIBSection() fails.
    39. changed dcxLoadIcon() and ChangeHwndIcon() to take a flags argument
    40. Initialized some stacker vars to NULL
    41. changed radio WM_PAINT to set the text colours as set with xdid -C
    42. changed check WM_PAINT to set the text colours as set with xdid -C
    43. changed $xpopup().style to use a switch() instead of lots of ifs
    44. changed parseTrackFlags() to use a switch() instead of lost of ifs
    45. changed updateLayout() to return true/false to tell if it does anything or not
    46. changed button drawing code to check HDC is non-NULL before drawing bitmap
    47. fixed small memory leak in button bitmap drawing
    48. made getAnimateStyles() public
    49. added resizeBitmap() function. this resizes the supplied bitmap to matched the supplied RECT. if the resize works the old bitmap is deleted and the new one returned, otherwise the old bitmap is returned
    50. changed isPatched() function to be a const function
    51. added GetDXVersion() via getdxver.cpp. this is a function supplied by MS in its tutorials for getting the DirectX version. (dll needs to link with version.lib now)
    52. changed LoadDLL() to check for DirectX9 and set a variable if its found
    53. changed IsUsingDirectX function to check for DirectX version, function now replies with either the dx version or $false if no dx was found
    54. fixed small possible memory leak in trackbar custom drawing
    55. added showError() function to replace all other error display functions
    56. changed some error return codes to be 0 (halt)
    57. changed WM_HELP event to set itself as handled
    58. changed updateParentCtrl() to be a little bit faster when parent is dialog
    59. added CommonMessage() function to DcxControl class to handle WM_xxx messages that are common to all controls, like WM_HELP. DLL about 10k smaller
    60. changed SetupAlphaBlend() to pass on the client rect to DrawParentsBackground()
    61. changed to use TBSTYLE_xxx
    62. added WM_PRINTCLIENT to all controls, needed for AnimateWindow() and new transparency/alpha code
    63. changed DrawParentsBackground() to work in a manner similar to Vista's DrawThemeParentBackgroundEx()
    64. added getting DrawThemeParentBackgroundEx() from uxtheme.dll on Vista
    65. streamlined updateParentCtrl() function for new parent rendering method
    66. added DrawThemeParentBackgroundEx() usage on Vista to DrawParentsBackground()
    67. removed an unneeded updateParentCtrl() call in button control
    68. changed stacker item drawing code to move the right hand edge within the border
    69. added code to free uxtheme.dll on dll unload
    70. updated CreateGrayscaleIcon() to new code from The Code Project that supports 32bpp
    71. added InvalidateParentRect() which invalidates a controls area on its parent
    72. Tstring changed some compare operators to be constants
    73. Tstring changed the char[] operator to be const
    74. added DCX_USE_WINSDK to defines.h as a way to disable code dependant on the Windows SDK (Vista)
    75. fixed copyright from 2006 to 2006-2007
    76. added some comment sections to defines.h (getting real messy!)
    77. DLL now gets GetThemeBackgroundRegion() and GetWindowTheme() function pointers from uxtheme.dll
    78. added IsVistaStyle() function
    79. changed button background drawing to only be done within the WM_PAINT event
    80. added mIRCevalEX() which takes a formatted eval string
    81. changed themed drawing to Open/CloseThemeData() instead of doing GetWindowTheme() to help maintain the correct region
    82. streamlined listview/treeview sortItemsEx() and matchItemText()
    83. added SetupOSCompatibility()/FreeOSCompatibility() functions to handle getting function pointers
    84. changed AnimateWindow()/FlashWindowEx()/InSendMessageEx()/GetWindowInfo() calls to be function pointers. hopefully this should fix the win98 compatibility problems
    85. added getting DwmIsCompositionEnabled() function pointer. it is used to determine if user is on on Vista and if Aero is enabled
    86. added WINVER >= 0x600 checks to includes for theme stuff when compiling as Vista
    87. added WM_DWMCOMPOSITIONCHANGED define
    88. updated shadow code to match latest v03 from code project
    89. now disables shadows when on Vista and Aero is enabled
    90. lots of little changes/fixes for things only noticed with the Intel compiler
    91. made error messages look consistent across project
    92. created new dcx_demo.mrc that uses DCXML and showcases most of the controls
    93. added CreateHDCBuffer()/DeleteHDCBuffer() to create a temp HDC for buffered drawing
    94. changed some image SelectObject() calls to macros for the types
    95. most controls now use GDI+ to draw where possible
    96. added comment for CTLF_ALLOW_DOCK
    97. moved $shell alias from dcx_tools.mrc to dcx.mrc (which has a bunch of broken demos anyways)
    98. changed all SetWindowLong(.. GWL_WNDPROC,..) calls to be SetWindowLongPtr()
    99. added test code to listview NM_CLICK to allow selecting subitems (NEEDS TESTING, SUBJECT TO CHANGE/REMOVAL)
    100. added listview LVN_GETINFOTIP message handling to set tooltips
    101. changed treeview /xdid -w to only gettok the flags once
    102. added listview /xdid -r comment
    103. added SetVerbose() to dialog
    104. added IsVerbose() to dialog
    105. added error checking to treeview TNV_GETINFOTIP and TVN_SELCHANGED
    106. added note about this->getExStyle() in listview mode at top of source file
    107. listview grid style now redraws properly when scrolling
    108. changed default colour values to CLR_NONE
    109. added m_clrBackground var for bkg colour (colour of m_hBackBrush)
    110. added file access error to /xdid -J
    111. added file access error to /xdialog -q
    112. changed file access error report to return the file name too for directshow, stacker, treeview and image
    113. added invalid item error reports to listview /xdid -B/-c/-d/-j/-k/-l/-v/-T
    114. added redrawBufferedWindow() function to redraw a dialog without flicker (atm not for use by child controls, may fix/change this)
    115. changed WM_SIZE to use redrawBufferedWindow() instead of redrawWindow()
    116. added check for WS_EX_COMPOSITED to redrawBufferedWindow()
    117. added notes about redrawBufferedWindow() and Vista style/Composited
    118. changed mIRCeval() and mIRCevalEX() to take a maxlen var which contains the size of the result buffer
    119. changed tstring numtok() to return 0 when string is empty, instead of 1
    120. made getAnimateStyles() arg a const
    121. changed box and panel controls to use CS_PARENTDC
    122. changed LayoutManager::updateLayout() to return a BOOL
    123. changed drawing a little
    124. changed box/panel CLA to only force a redraw on wm_size when it actually does something
    125. changed CreateHDCBuffer() to take a const rect arg
    126. changed dshow properties enum
    127. added DCX_USE_BOOST define to defines.h to enable using the Boost libraries for regex features
    128. direct show - disabled the long-double conversion warnings
    129. treeview - changed the values of all the dcx TVIS_xxx defines to take them out of the range of the state and overlay icons.
    130. divider - included AggressiveOptimize.h
    131. xdock - added DcxDock::status_getTextLength() to return an items text length.
    132. xdock - changed some cmd args into constants
    133. xstatusbar - changed the part set/get text cmds to use an allocated buffer of the right size, instead of a static size.
    134. general - changed DrawCtrlBackground() to draw a gradient using the colours set by /xdid -C when the control has either the hgradient or vgradient style.
    135. box - changed to use DrawCtrlBackground() instead of FillBkg()
    136. general - changed some CLR_NONE refrences to CLR_INVALID
    137. general - changed DrawCtrlBackground() to FillRect() with COLOR_3DFACE when controls disabled.
    138. text - improved drawing a little, now uses COLOR_GRAYTEXT when control is disabled.
    139. tstring - added a new constructor which takes a buffer size to allocate.
    140. general - changed timeout check to check for != 1 instead of == 0
    141. general - misc macro usage changes.
    142. general - made some TString function args consts.
    143. general - moved DirectX checking out of the LoadDLL() function to speed up loading. check is now moved into a DXSetup() function which is called by $dcx(IsUsingDirectX) or when a file is loaded into a directshow control and DX9 hasnt already been found.
    144. xtreebar - changed /xtreebar command to always do a RedrawWindow() at the end.
    145. general - changed the xpopup class setup to use the already defined WNDCLASSEX
    146. general - changed the xpopup owner window to be of type HWND_MESSAGE on XP+
    147. xpopup - added XPopupMenu::setDefaultColor() to allow resetting a specified colour to its default.
    148. general - added macro dcxRegisterClass() to register most of the dcx classes
    149. TString - changed TString.to_wchr() to support utf8 encoding.
    150. general - changed mIRC_DrawText() to support utf8 encoded text.
    151. general - added getting DrawThemeEdge() function pointer from uxtheme.dll
    152. general - changed DcxControl::controlFactory() and all controls to throw an exception when unable to create the window.
    153. general - changed DrawCtrlBackground() to draw themed background (trying to fix some drawing bugs whem themed, may reverse this if its not helping)
    154. xdock - added function UnDockAll(). Its only called during cleanup atm.
    155. moved declaration of VectorOfXPopupMenu to top of file
    156. datetimepicker - updated link for msdn docs
    157. toolbar - removed some commented debug code.
    158. treeview - $xdid().text (& others i expect) were unable to get the first item. This was caused by correctTargetItem() returning FALSE when TVI_ROOT was passed.
    159. xpopup - getMenuByName() can now search special menus (can be turned off by boolean parameter)
    160. trackbar - option was undefined when not using winsdk.
    161. tstring - added comment about deprecated function in TString.sprintf()
    162. xpopup - changed parseTrackFlags() to take a const arg.
    163. changed /xpopup -x to use a switch() instead of a series of ifs
    164. changed $xpopup().exstyle to return all the styles instead of just one.
    165. shortened $xpopup().isrounded
    166. changed XSwitchFlags to be a class, and cleaned up the flag switches in code
    167. added comments to code when /xdid -r has no code (to say it was to prevent invalid flag message)
  • Documentation
    1. fixed errors in dcxdoc
    2. reworded stuff
    3. cleaned up some arrays so they look more consistant
    4. fixed docs to work with php5 when short_open_tag is Off
    5. updated dcxvsmdx page
    6. fixed year of copyright to be dynamically generated by php (andy)
    7. removed a duplicate dcx_inc.php in /doc
    8. updated license files to 2007
    9. removed v1.4 comment (no such version yet)
    10. added writeDcxLoadIcon() to handle documentation for controls which use dcxLoadIcon
    11. added array_insert()
    12. fixed description for tab control
    13. fixed description of /xdialog -b +o
    14. fixed descriptions for /xdid -f CHARSET
    15. added a note for listview /xdid -Z
    16. fixed tutorial example missing a close-brace in xpopup page
    17. removed unecessary parameters in /xtray -d
    18. removed 'alpha' from events
    19. changed global style message to exlude embedded dialog/window controls
    20. added a note to comboEx styles to state the height is required for the dropdown
    21. uncommented multiple examples for $dcx(ColorDialog)
    22. moved some args to be arranged in alphabetical order
    23. fixed some broken wiki tags
    24. added xtreebar.php and xstatusbar.php
    25. removed "selstart" from statusbar properties (copy paste remnant)
    26. fixed grammar and reworded writing to be easier to understand on xdock page
    27. removed alot of unnecessary array declarations in $xdock properties
    28. added a note for all docking commands about dialogs within the INIT event
    29. fixed incorrect table tagging in credits section
    30. added notes about docking during dialog INIT in all /xdock docking functions
    31. moved part of image /xdid -o description to notes
    32. moved change log below callback section on index page
    33. renamed VALUE to PARAM on index page
    34. fixed a bug in /format_xcmd_header which caused examples with '0' values to be ignored
    35. updated 'owner' style description/notes for ColorDialog, OpenDialog, SaveDialog, FontDialog and MsgBox. They no longer support modeless owners because of FindOwner()
    36. updated return value to $null for OpenDialog, SaveDialog and FontDialog
    37. fixed description for ICON in listview /xdid -l
    38. fixed description for 'notrack' in listview trackbegin
    39. added diagonal examples to /xdialog -a, /xdid -h and /xdid -s
    40. added operating system note to /xdialog -a, /xdid -h and /xdid -s
    41. fixed section heading in xpopup page for Special menus and Xpopup item path
    42. fixed description for /xpopup -b only supporting BMP when GDI+ is not available
    43. fixed description for /xpopup -d, as it also removes menus with items in it
    44. fixed edit keyup and keydown events to include example
    45. fixed keyup typo
    46. cleaned /xdid -Z for richedit notes array
    47. updated list of controls available for /xdialog -c
    48. updated list of controls which box, divider, pager, panel, rebar and statusbar support
    49. changed the format which box, divider, pager, panel, rebar and statusbar list supported controls
    50. a list of these controls can be found at http://dcx.scriptsdb.org/controls.xls
    51. updated main page PARAM = $4-
    52. removed /xdid -l NSUB being 0-based index when it isnt
    53. added comment to 'editlabel' style in listview
    54. changed note for listview grid style
    55. removed +h copy paste remnant from note in listview /xdid -t (thanks hkr)
    56. fixed xdialog 'close' details and added 'scclose' events
    57. reworded parts of XTray Signals section
    58. added notes to dialog (embedded) control page and xdialog about closing docked dialogs within the close event
    59. added notes to dialog (embedded) control page and /xdialog about closing docked dialogs within the close event
    60. edited /xdialog -g comment about BMP files
    61. fixed stacker /xdid -a example and parameters
    62. added example for listview /xdid -j
    63. fixed listview seltext/pbar/keydown example
    64. commented out box checkchange event
    65. added error checking to see if examples exist when a command is set
    66. updated format_parameters() so it doesnt accept '0' as '__args'
    67. fixed ALOT of things in the docs such as missing parameters, outdated examples, inconsistancies with examples (big thanks to andy for spotting em out)
    68. moved directshow /xdid -V so its in alphabetical order
    69. removed a few redundant notes
    70. added missing examples for many events on numerous control pages
    71. fixed C:\mIRC\ error not displaying on a few pages, simply changed it to C:/mIRC/
    72. added note to listview labelbegin event
    73. reworded some events for scroll and trackbar
    74. added some notes for 'dl_progress' for webctrl
    75. renamed IS_ENABLED to ENABLED for webctrl events
    76. updated /xdid -Z on /xdid page
    77. removed /xdid -Z on listview page
    78. removed duplicate entry for /xpopup -R
    79. removed unnecessary MENU declaration from /xpopup -R and useless note
    80. added operating system requirement to /xpopup -R +a
    81. fixed typo with trackbar tooltips style
    82. added a wiki tag [os]
    83. changed output html for changes.htm a bit so its not all in 1 line
    84. changed `&amp;` to `and` in changes.htm
    85. added dcxml documentation
    86. documented `check` and `checkchange` features in box
    87. fixed /xdid -m tabstop stuff for list
    88. fixed /xdid -R descriptions for +f
    89. updated dcx_inc.php comment for array_insert()
    90. updated dcx_inc.php comment for array_insert()
    91. fixed list /xdid -m tabstop stuff
    92. fixed /xdid -R descriptions for +f
    93. listview /xdid -j, fixed STATE/+FLAGS inconsistancy
    94. toolbar /xdid -a fixed incomplete wiki tag
    95. fixed section labelling for dcx vs mdx and CLA pages
    96. changed 'Index' to 'Home' in left menu
    97. added hkr to helpers in Credits
    98. removed useless "cell text is optional" notes from statusbar -v and -t commands
    99. cleaned up /xdid -y for statusbar
    100. added some margin space between left menu and main content
    101. put some padding for links in left menu so it has more of a ladder hierarchy
    102. removed translated docs
    103. removed additional div in SECTION label so css can have more effect on text
    104. fixed SECTION_INTRO on treeview page
    105. dcxdoc_print_description() now accepts null as $caption
    106. fixed SECTION_GENERAL problem with tutorials page
    107. added new line break to dialog notes
    108. fixed extremely stupid ie7 case insensitive anchor bug (eg. /xdid -T would link to /xdid -t)
    109. updated comment for dcxLoadIcon() flag +a
    110. added dcxLoadIcon() flags to stacker /xdid -w
    111. fixed grammar mistakes on Open/Save/Color/Font/Msg dialogs
v1.3.7
  • New features
    1. added $xpopup().isPatched
    2. added /xdialog -z, $xdialog().zlayer and $xdialog().zlayercurrent. Useful for creating tab-like pages for configuration dialogs and wizard type screens
    3. added $dcx(IsUnloadSafe)
    4. added new +x flag to /xdialog -b to enable composite rendering on XP+
    5. added $xdid(listview).columns
    6. added /xdid -i +s flag to set selection color for treeview
    7. added $dcx(IsUsingGDI)
    8. added $dcx(IsUsingDirectX)
    9. added alpha style for many controls
    10. added DirectShow
    11. added Stackerv
    12. added DateTimePicker
    13. added wordwrap support to transparent on text control
    14. added DCXML (still experimental)
    15. added $xdid(dname,id).alpha to tell if a control has the alpha style or not.
    16. added $xdock(mIRC).toolBarPos
    17. added $xdock(mIRC).treeBarPos
    18. added /xdialog -R dname +s which adds a shadow effect to the dialog
    19. added XTray
    20. added /xpopup -m mirc to patch mIRC allowing xpopup to work on mIRC 6.20
    21. added /xdock -F to set the treebar font, colors and styles
    22. added shadow style for many controls
    23. added support for combining regions via flags using /xdid -R and /xdialog -R
    24. added transparent global style
    25. added ghost drag for main mirc window via /xdock -G
    26. added ghost drag /xdialog -R dname +g
    27. added $xdid().range and .value to calendar
    28. modified $xdid(list).sel to include optional parameter N
    29. modified $xdid(listview).sel to include a new optional parameter N
    30. LoadDLL() now displays information related to dcx upon loadup if /debug is used in mIRC
  • Fixes and changes
    1. *** IMPORTANT *** image - changed /xdid -i to include flags
    2. *** IMPORTANT *** treeview - changed /xdid -a to include parameter for background color
    3. *** IMPORTANT *** calendar - changed calendar $xdid().selected to .value
    4. dialog - added max tooltip width of 400, this enables multiline tooltips by using $crlf in text.
    5. list - fixed memleak in $xdid().sel when n is not > 0
    6. progressbar - fixed a bug where some vars werent cleared on object creation.
    7. richedit - fixed memleak in $xdid().seltext
    8. image - fixed resizing bug
    9. added a check for invalid filename when loading icons
    10. list - changed $xdid().sel to limit the results length to 900
    11. listview - changed $xdid().sel to limit the results length to 900
    12. webcontrol - added error message to xdid -j when control isnt in ready state
    13. made WS_CLIPCHILDREN style apply to all controls
    14. webcontrol - changed it to be WS_CLIPSIBLINGS should help with some rendering issues
    15. xdock - changed DockWindow() to make parent window WS_CLIPCHILDREN and WS_CLIPSIBLINGS. this should help with rendering glitches
    16. changed gdiplus.dll to be a late loading dll to allow us to try and loading it without the dcx.dll failing to load completely. (this needs to be added to vs2003 project file)
    17. listview - fixed xdid -j bug where lviDcx wasnt checked for NULL
    18. listview - changed xdid -a to always add an lviDcx
    19. listview - removed duplicate code in xdid -a
    20. image - added setting the smoothing mode for gdi+ to aliased
    21. added error message to xdialog -R when a region couldnt be created
    22. Improved background rendering abit
    23. tab - added quick fix for tab closing when escape is pressed
    24. toolbar - fixed imagelist bug which caused display corruption
    25. tab - sclick now works for active item, and rclick work for inactive tabsv
    26. box - changed the drawing code abit to show the parents background abit better outside the box bounds
    27. fixed bug where tab control wasnt passing on child controls result codes
    28. richedit - fixed mem leak in $xdid().text
    29. $xdid().num on RichEdit now returns the real ammount of lines instead of always returning 1
    30. button - fixed BS_DEFPUSHBUTTON style not working
    31. listview - fixed rendering problem where item wouldnt be updated after being selected if a background picture was set
    32. listview - fixed /xdid -r bug that crashed mIRC
    33. toolbar - added error message for invalid flags symbol to xdid -w
    34. list - fixed mwheel support
    35. listview - fixed bug where you couldnt use /xdid -v on a listview item with a progressbar without it thinking it was a progressbar command, even if it was for a different subitem
    36. calander/datetime - fixed a bug where a TString object was used directly in an wsprintf instead of doing to_chr()
    37. readded quickfix for richedit excessive selchange
    38. changed calendar $xdid().selected to return 2 values even if not MULTI select
    39. changed Image to have auto image resize TRUE by default (this would break less scripts)
    40. renamed $xdock() functins to start with lower case (it was inconsistant with other property functions)
  • Dcx code
    1. changed dcxSetWindowTheme() to actually pass on the args to the theme dll
    2. set load->mKeep to TRUE
    3. changed some function args to be const
    4. dialog - changed tooltip hwnd check to use IsWindow() instead of != NULL
    5. dialog - added safeToCloseAll() function to dialogcollection.
    6. dialog - changed getName(), getAliasName() and getParentName() to return const refrences to the TString objects instead of new objects.
    7. dialog - small change to getDialogByName() to cast the TString object for compare.
    8. changed $xdid().pos, $xdid().dpos and $xdid().mouse to use MapWindowPoints() instead of ScreenToClient()
    9. dialog - rewrote DrawParentsBackground() to avoid creating an HDC unless it needs to, left commented old code in for refrence as this routine will need changed when/if we start giving ctrls bitmap backgrounds.
    10. dialog - changed $xdialog().mouse to use MapWindowPoints()
    11. dialog - changed DrawDialogBackground() to use client areas offsets instead of just zero.
    12. dialog - improved MakeShadow() by pre-calculating one of the PreMultiply() numbers instead of doing it within 2 loops.
    13. listview - changed $xdid().columns to use lstrcpyn() instead of wsprintf() when result is zero
    14. progressbar - changed WM_ERASEBKGND to render parents bkg when transparent
    15. image - changed /xdid -w to use MapWindowPoints()
    16. text - changed /xdid -w to use MapWindowPoints()
    17. added an extra error report to ChangeHwndIcon()
    18. changed ret() define to limit the copy to 900
    19. added an IsFile() check to dcxLoadBitmap()
    20. changed some parseGlobalInfoRequest() results to avoid buffer overflows
    21. changed defines.h to enable GDIPlus v1.1 specific stuff
    22. richedit - moved some vars in constructor
    23. statusbar - small change to $xdid().parts loop
    24. added IsFile() function to see if a file can be accessed or not
    25. added GetLastStatusStr() function to get string that go with GDIPlus error responses
    26. changed LoadDll() to place dll into non-gdi+ mode if GdiplusStartup() fails
    27. webcontrol - changed to use TString.to_wchr() where applicable
    28. listview - changed the constructor to insure that this control isnt WS_CLIPCHILDREN
    29. removed commented includes and constructors in most controls
    30. added new build called Development. This build is for dev releases and is the same as Release build except that it defines DCX_DEV_BUILD
    31. added a check for the avalibility of gdiplus.dll that sets a flag when the dll cant be loaded and displays a warning
    32. changed debug messages that rely on /debug on in mIRC to use a define DCX_DEBUG which can be easily switched to output nothing for the release builds
    33. tstring - added to_float() function to return the string as a double floating point number
    34. added DCXDebug(Cmd, Msg), similar to DCXError(Cmd, Msg)
    35. added DCX_USE_GDIPLUS define to control linking with gdiplus.lib (affects image and stacker controls)
    36. changed controlFactory() ctrl mask to be 64bit
    37. disabled the #4995 warning (name was marked as #pragma depricated)
    38. xdock - changed the rest of $xdock() to use a switch()
    39. changed SwitchbarPos() so it can be reused for the diff windows
    40. improved the prop handling a bit
    41. added dcxDrawShadowText() function and changed controls that support the shadow style to use it
    42. changed SetLayeredWindowAttributes to be an optional function pointer which is only used if its avail
    43. added WM_COMPAREITEM forwarding
    44. changed DrawParentsBackground() to use themes when it can, and to recurse when the parent its transparent
    45. added AggressiveOptimize.h to project
    46. changed mapfile code to detect mIRC 6.20 or 6.21+
    47. box - changed EnumBoxChildren() to only disable controls that are direct children of the box, not grandchildren
    48. tstring - changed to use CopyMemory()
    49. pager - removed WM_COLORDLG handling
    50. tstring - added to_wchr()
    51. change `sclick` and `rclick` callback events to be sent on mouseup
    52. box - commented BN_CLICKED message out
    53. text - fixed mem leak in wm_paint when transparent
    54. text - fixed styles when transparent, was hardcoded to be left
    55. tab - moved var to outside while loop in xdid -r code
    56. added DrawCtrlBackground() which handles drawing of a controls background
    57. changed DrawDialogBackgroundBitmap() to DrawDialogBackground(), now also handles background brush
    58. listview - added LVN_DELETEALLITEMS handling to listview to insure we always get an LVN_DELETEITEM message
    59. added getBgBitmap(), getBgTransparentCol(), and DrawDialogBackgroundBitmap() functions to dialog class
    60. changed /xdialog -g to call redrawWindow() instead of InvalidateRect()
    61. added getParentCtrl() and updateParentCtrl() functions to DcxControl class
    62. added AggressiveOptimize.h and some misc changes to compiler setting for VS2005 for a smaller dll size
    63. changed most controls to use dcxLoadIcon instead of ExtractIconEx()
    64. updated SystemTimeToMircTime() to include time
    65. listviews/treeview - changed regex search to handle commas in the text or regex pattern
    66. moved MircTimeToSystemTime() and SystemTimeToMircTime() to misc.cpp
    67. fixed typo in dcxdatetime.h checking wrong #IFNDEF
    68. changed alot of TString object = string; to TString object(string);
    69. changed treeviews getPathFromVector() to be a static function
    70. added checks to /xdock docking commands for window already being docked elsewhere
    71. added a check for invalid SYSTEMTIME values for SystemTimeToMircTime()
    72. fixed bug with List tbitem where it returns too many items
  • Dcx Documentation
    1. fixed dcxdoc quirk with dialog events given the ID 4
    2. removed a fixed string comparison for SECTION_INTRO
    3. added note for gdi+ loading multiple formats for image
    4. added note for gdi+ on index for where to download it
    5. added example to /xdid -R
    6. moved xpopup events upwards
    7. reworded and fixed example for /mpopup
    8. updated Dcx vs Mdx
    9. removed anchor from subcategory for changes.htm
    10. removed note for /xdid -i for image about only loading BMP files
    11. added CShadowHwnd to credits
    12. new logo
    13. altered documentation style sheet
    14. altered some quirks in dcx_inc.php
    15. fixed general typos and copy/paste errors found in the forums
    16. reworded recommendation in calendar and datetime intro
    17. added a little drawing bug notice to calendar intro
    18. removed link to dcx_old docs
    19. fixed up intro for calendar
    20. added note for calendar /xdid -m
    21. lower-cased first letter of all $xdock() functions
v1.3.6
  • New Features
    1. *IMPORTANT* added docking support! update your dcx_tools.mrc with the one supplied in the zip to include /xdock and $xdock
    2. *IMPORTANT* added /xdialog -T to create tooltips. must be done before using tooltips in your control!
    3. added pager control
    4. added "tooltips" style for button, ipaddress, pbar, richedit, updown, check, edit, image, link, radio, and text controls.
    5. added "balloon" style to listview and treeview (used with "tooltips" style)
    6. added new command /xdid -T to set the tooltip text for all controls which support the "tooltips" style.
    7. added $dcx(MsgBox)
    8. added caretpos property to edit and richedit control
    9. added gradient style to ProgressBars. use /xdid -c to set the start colour.
    10. added hover event to listview (only when hottrack is enabled)
    11. added /xdialog -w for setting icons to dialogs
    12. added dclick event to button control.
    13. added the ability to set the editbox contents in comboex control via /xdid -a
    14. added /xdialog -R to set a dialog regions (uses BitmapRegion() by David Gallardo Llopis)
    15. treeview, toolbar and tab tooltips now support tab characters
    16. added dclick event to listview even without an item selection
    17. added lbup and lbdown events for button
    18. added /dcx xSignal command to enable/disable the DCX signal (disabled by default).
    19. added sending of DCX signal for window resizing. See /dcx xSignal and XDock Signals for more information
    20. changed /xdialog -t command parameters to allow setting an alpha transparency level and transparent color
    21. added $xdialog().parent for docked dialogs (only works if they have been Mark'd before docking)
    22. added "changing" callback event which can be used to stop a dialog being moved and/or sized by returning either "nosize" or "nomove" or "nochange"
    23. "nosize" no longer works for the "sizing" event
    24. added listview /xdid -n dname +s 0 flag to set column width to min required to show everything. (without enabling auto sizing)
    25. added autosize flags +a (autosize) +h (autoheadersize) +m (max size, max(autosize,autoheadersize)) to listviews /xdid -a command flags.
    26. added greyscale icon flag to button, listview, and toolbar controls
    27. added grayscale icon support to link, image, treeview, tab, statusbar, rebar, dialog, and comboex
    28. added rdclick event for right button double clicks on listview items.
    29. and some undocumented/reserved stuff for next release :)
  • Fixes and Changes
    1. *IMPORTANT* changed /xdid -w syntax for many controls to be consistant (uses flags similar to /xdid -c)
    2. *IMPORTANT* changed message handling for all controls, should be much simpler and faster now :) (needs alot of retesting)
    3. *IMPORTANT* only use /xdialog -x to close marked dialogs within callback aliases. avoid using /dialog -x if possible.
    4. removed all auto resize flags from listviews /xdid -t command, as these don't work.
    5. reimplemented /xdid -r so it could be used with other commands
    6. changed m_tsToolTip to now be part of dcxcontrol.
    7. fixed richedit control was allocating memory for unneeded buffers for calllAliasEx() and never freeing them.
    8. changed xpopup does not work message slightly
    9. fixed richedit to use COLOR_WINDOWTEXT rather than a hardcoded black
    10. removed debug message when setting auto hyperlinking
    11. ignore repeats in richedit
    12. changed if-case flow to prevent valid /xdid calls from being classified as invalid
    13. changed a loop in function unfoldColor() to use mod for speed
    14. changed FindOwner() to use TString.
    15. fixed position of caret for richedit being reset when focus is set
    16. changed edit and richedit's $xdid().num to return 1 for single line controls.
    17. fixed bug with mwheel not ever showing down
    18. fixed bug in listview, forgot to add parseListviewExStyles() to second creator. (fixes fullrow select etc.. problems)
    19. changed listview sclick, rclick, dclick callbacks to also include subitem number
    20. moved code for comboex constructors into a single ConstructComboEx() function.
    21. fixed notheme not working correctly on comboex.
    22. changed tab controls "childid" info request to be an else if instead of just if
    23. fixed colorcombo selection not showing.
    24. changed WM_MEASUREITEM handling to support more ownerdraw controls in the future.
    25. fixed bug with box "bottom" style applying "none" instead
    26. moved RemStyles() and AddStyles() to misc.cpp
    27. added workaround for comboex edit box click lockup.
    28. fixed treeview item ordering bug.
    29. changed /xdid -c and /xdid -B to ensure the treeview item is visible.
    30. button control now shows text in COLOR_BTNTEXT instead of black and disabled button text in COLOR_GRAYTEXT
    31. /xdid -r for ipaddress doesnt need at least 1 parameter anymore
    32. changed LoadBitmap() to dcxLoadBitmap() to avoid confusion with built in function.
    33. added a check for parameter count for statusbar /xdid -k
    34. changed some instances of hard tab strings into soft tabs
    35. alot of box control custom draw changes
    36. improved the handling on transparency in box controls abit.
    37. added iswm() to TString.
    38. made "Dialogs" globally accessible through dcxDialogs()
    39. removed /clearall from /demo in dcx_demo.mrc
    40. added function mIRCSignal() to contain arguments
    41. changed some manual signal calls to use mIRCSignal()
    42. added function GetHwndFromString() to get dialog hwnds
    43. added va_end(args) to a few misc commands.
    44. added TString.to_num() and TString.to_int() functions
    45. fixed listview /xdid -n bug where column count wasn't 0 based.
    46. changed richedit's loadmIRCPalette() to not need lstrcpy().
    47. added autoSize() function to listview to size columns.
    48. fixed TString gettok(n,M,seps) bug (this also fixes the xpopups submenu items problem)
    49. fixed memory leak with CreateGrayscaleIcon()
    50. fixed memory leak with imagelists in toolbar
    51. initialised "m_bBitmapText" for button which is a child of another control
    52. added a macro to stop "unreferenced formal parameters" from being treated as an error in release build
    53. fixed uninitialised warning for Toolbar::setImageList()
    54. added TString.find()
    55. fixed memory leak with imagelists in listview
    56. fixed statusbar $xdid().text always returning text to first part.
    57. fixed statusbar $xdid().parts not working.
    58. fixed statusbar /xdid -y invalidating the image list.
    59. changed dll load function to check all functions before setting XPPlus, returns error if any aren't set correctly.
    60. added setting XPPlus to FALSE if the theme dll can't load.
    61. removed some testing code in dialog
    62. added control type to /xdid command error message
    63. added incRef(), decRef(), getRefCount() to dialog's along to checks to xdialog -x, to avoid closing a dialog with its own callback event. (still crashes with /dialog -x though)
    64. you can now use /xdialog -x within a callback (it handles timers for you)
    65. added WM_THEMECHANGED handling to box control.
    66. changed box control so it doesn't get the sys colour twice.
    67. richedit now supports xp themes (using CRichEditThemed class by Patchou)
    68. and MUCH MUCH MUCH ... MUCH MUCH more!
  • DCX Doc
    1. removed downloads archive link from left menu
    2. updated dcx vs mdx page a bit (thanks Chrystoffer)
    3. thanks Andy for the help with dcxdoc for the Pager control
    4. added dclick to button events (thanks Andy)
    5. added the BSD license disclaimer
    6. changed wiki tag formatting code to be easier to maintain and more flexible
    7. added filesize to archive information
    8. added [n] and [f] wiki tags for dcxdoc (were missing and docs didnt process them)
    9. fixed typo in treeview dcxdoc
    10. updated num dcxdoc for edit and richedit
    11. fixed some confusing text in radio dcxdoc
    12. added gradient to pbar
    13. updated /xdid -c for pbar
    14. commented out support for [i]property[/i] tags in dcxdoc
    15. fixed xhtml validation for list of changes
    16. added valid css banner
    17. formatted some stuff in treeview doc
    18. changed the way dcxdoc generates files (easier to add new pages)
    19. reorganised dcxdoc functionality
    20. fixed some incorrectly labelled headings
    21. changed "XPopup Menus" link on left menu to "XPopup"
    22. small wiki tag changes to treeview
    23. fixed a whole bunch of [ID] confusion in various files
    24. fixed title bug "DCX DCX vs MDX"
    25. fixed various "WebControl" and "WebCtrl" inconsistancies
    26. cleaned up dcxdoc syntax generation
    27. added support for multiple examples in dcxdoc
    28. increased font size in dcxdoc by 1 point
    29. removed some manual "note" styles to use the proper wiki
    30. made the note on (docked) dialog intro more noticable and clear.
    31. added a note for "close" event on dialogs being sent twice
    32. download.php links to latest stable version correctly
    33. skips stable version in archive list
    34. removed link to index.htm for "DCX Controls" menu heading
    35. dcxdoc can now support multiple return values
    36. removed Webnet from dcxdoc credits, added forums and moved websites up over IRC
    37. added tutorials to dcxdoc
    38. added [code] wiki
    39. modified xpopup dcxdoc to use [code]
    40. removed old wiki code and some commented out headers
    41. removed old docs from repository
    42. moved alot of stuff from dcxdoc index page to dcx.htm, xdialog.htm and xdid.htm
v1.3.5
  • DCX Changes
    1. fixed bug that caused mIRC to crash when changing text in a listview when no progressbar exists
    2. fixed a bug where edit ctrl /xdid -o wouldnt accept 1 word
    3. added 'vertical' and 'verticalrev' styles to xpopup menus
    4. got calendar select date event working properly
    5. fixed a bug causing /xdid -Q not to update removal of bold and underline from treeview item
    6. added $xdid().mouseitem for toolbar
    7. changed the way /xdialog -g background image options work
    8. fixed crash on /dll -u when dcx dialogs open.
    9. fixed grid scroll redraw issue (flickers alot though)
    10. added $xdid().dname to dialog control to retrieve its original dialog name
    11. fixed ipaddress mouse click crash.
    12. re-enabled ipaddress rclick and edit events.
    13. added sclick event to ipaddress controls.
    14. fixed corruption of toolbar button text when one is deleted (tooltip text still goes missing though)
    15. fixed button in tab crash.
    16. fixed edit control with text causing crash in tab and panel.
    17. added activate and deactivate events when dialog is activated and deactivated.
    18. keydown event no longer sends repeated keys (edit control)
    19. added arrow keys and caps lock to $dialog().key
    20. fixed GetTaskbarPos() bug where memory was never freed.
    21. added lbup event to image control
    22. removed same control checks from tab/panel, was causing a loop leading to stack overflow.
    23. fixed 2 memory leaks in calendar control.
    24. fixed xdid -U lockup, fixing this also solved many others.
    25. added 'rounded' style to box control.
    26. fixed webctrl activate crash bug.
    27. fixed comboex delete crashbug.
    28. /xdialog -d and /xdid -d (for panel/box) now removes control from internal list as well as destroying it.
    29. added mwheel event
    30. added /xdialog -j [id] support for individual control redraw
    31. added $xdialog().alias to retrieve alias function name
    32. added a check for existing alias upon marking
    33. made errors on marking more verbose
    34. fixed problem with listview extended styles being misapplied, causing listview to not appear when borderselect style is used
    35. added ability to set and retrieve tooltip background and text colors for toolbar.
    36. fixed toolbar bug that caused /xdid -c to always fail with invalid args error.
    37. added italics to treeview item styles
    38. added italic item support to listview
    39. fixed a bug with /xdid -k for richedit not applying background color to new text
    40. added balloon style to toolbar to be used with tooltips style to enable balloon tooltips.
  • DCX Project
    1. removed "alias ttop" from dcx_demo.mrc (thanks TheShadowOne)
    2. general code reformatting in listview
    3. moved ExStyle to parseControlStyles for listview
    4. added function for grayscaling icons (incomplete)
    5. added dcx_VS2005.sln to compile under Visual Studio 2005
    6. added addtok() to tstring class
    7. added UNICODE listview declarations to define.h so there is no longer a need to edit internal Visual Studio files
    8. added sanity check to WindowProc for props existance.
    9. removed duplicate WS_CLIPCHILDREN style
    10. merged the 3 copies WM_MEARSUREITEM code into one.
    11. added sprintf function to TString.
    12. changed error responses to use TString.
    13. changed WM_DELETEITEM and WM_DRAWITEM messages to not use GetDlgItem().
    14. added check to panels WM_NOTIFY and WM_COMMAND messages to stop messages from itself.
    15. added code to attempt to get "mIRCN" mapfile when dll is loaded on mIRC V6.2+, otherwise old "mIRC" mapfile is used.
    16. removed alot of unneeded buffers used with callAliasEx().
    17. removed some commented out code.
    18. added checks for blocking messages.
    19. added code to add/remove WS_EX_CONTROLPARENT to parent controls as children are added/removed.
    20. starting to clean up code to make it more consistant
    21. fixed a few error message inconsistencies and typos
    22. removed some unecessary comments, includes, and variables
    23. added Ook to Version credits
    24. added an error message when /xdialog commands are invalid
    25. added invalid command message for /xdid
    26. changed some error messages to make them more consistant
    27. added check for WS_TABSTOP style in child before enabling WS_EX_CONTROLPARENT in parent control.
    28. moved listview extended styles parsing to its own function.
    29. fixed TBN_GETINFOTIP event in toolbar, was handled incorrectly.
    30. fixed TBN_DELETING event in toolbar, was deleting the wrong buttons data.
    31. removed a whole bunch of redundant assignments to variables to improve speed slightly
    32. removed some unreachable code
    33. added extra checks for uninitialised variables
    34. fixed a code flow bug in trackbar upon drawing the thumb when using bitmaps
    35. fixed bug in TString.istok() function which caused it to miss the last token.
  • DCX Doc
    1. fixed a typo with /xdid -n for listview
    2. removed an unnecessary flag from /xpopup -i example in dcxdoc
    3. added daystate style and event to calendar control
    4. TODO: still a bug with dcxdoc where dialog events ID's are not 0
    5. added a few more people to the credits list
    6. added download.php
    7. included a reference to the version on changes.htm
    8. added an archive page
    9. incremented dcxdoc version to 1.3.5
    10. shifted some menu items for dcxdoc
    11. main download link now points to archive page
    12. added zipster to credits for testing
    13. changed the way some links worked for credits (tutorials)
    14. added link to EinsteinXXL's CLA tutorial
    15. added some comments at the end of long switch cases to make it easier to notice where they end
    16. fixed an error with /xpopup -x
    17. formatting of changes can now be structured to include categories
    18. added Ook to dcxdoc title
    19. script batch file now pauses to display output
    20. changed some credits titles
    21. updated screenshot for listview and treeview
    22. removed direct links to translation docs
v1.3.4
  1. modified dcx.mrc to include an image control which displayed an icon
  2. changed output of $xdid().hwnd from hex to decimal
  3. fixed a bug with bmp transparency for image control
  4. fixed a bug with background drawing for image control when no background color is set
  5. added update background image when dialog resized
  6. added $xdid().selrange to trackbar
  7. trackbar now flickers less
  8. added /xdid -g for trackbar to set images
  9. added /xdid -o for trackbar to set opacity color
  10. added 'transparent' style to text
  11. box now looks consistant with group box static controls
  12. (hopefully) fixed deletion of docked dialog bug causing mirc to crash (thanks HAPM)
  13. added 'none' style but removed 'squared' style for box control
  14. updated /xdid -C dcxdoc, +k flag no longer applies to box control border
  15. box control now draws text colors for enabled and disabled appropriately
  16. /xdid -k command for button control now only works for bitmap buttons to load bitmap images and set transparency color (Read function note for further details)
  17. moved some functionality of /xdid -k to /xdid -c for changing button control caption color
  18. fixed a bug causing toolbar separators not to apply hidden state when added
  19. added $dcx(IsThemedXP)
  20. added 'transparent' style to box control
  21. fixed bug with OpenDialog/SaveDialog functions returning error messages as values
  22. Added $xdialog(Name).ismarked to see if the name is marked already.
  23. fixed a richedit bug crashing on rapid doubleclicking
  24. fixed a bug with $xdialog().focusid when deleting a control with focus
  25. added lbdown, sclick, lbup, dclick and rclick events to box ctrl
  26. fixed tab focus into children of panel, rebar, box and docked dialog controls
  27. added event tracking to calendar (selchange, select, sclick)
  28. fixed bug to allow docked dialogs/@windows to be tabbed into as containers
  29. updated FontDialog dcxdoc to make more sense
  30. fixed a typo in dcxdoc /xdid -q incorrect, its meant to be /xdid -J for changing control cursors
  31. fixed grammatical errors with dcxdoc
  32. updated DCX vs MDX page (feel free to tell us when to change this, this page stands at a "super low never look at it until someone says something about it" priority)
  33. documented trackbar selrange features
  34. fixed dcxdoc typo for pbar
  35. added a note to dcxdoc stating the case sensitivity of script commands
  36. added missing example for sizing event on dialog dcxdoc
  37. fixed documentation for OpenDialog/SaveDialog Styles
  38. added note for dialog dcxdoc close event
  39. fixed error with dcxdoc for dialog events having wrong ID for example
  40. added /xdid -r to dcxdoc for comboex (missing)
  41. removed dclick event from calendar control (it just never occurred), and updated sclick event description
v1.3.3
  1. added ability to change background color of trackbar (NOTE: there is a API bug to be aware of)
  2. implemented selchange and link events to richedit
  3. added /xdid -n to richedit to toggle automatic url hyperlinking
  4. added sclick and lbup events to richedit
  5. fixed a bug with richedit not accepting return keypresses when using multiline style
  6. fixed richedit $xdid().text bug not returning manually entered text
  7. added 'themechanged' event to dialog
  8. added /xdid -B to begin label editing mode on listview and treeview controls (NOTE: listview requires focus to begin editing)
  9. added progress bars to listview
  10. fixed dcxdoc errors (thanks dJabba, PYERO)
  11. fixed up events parameter values styling in dcxdoc
  12. minor adjustments to listview dcxdoc
  13. added dJabba and PYERO to dcxdoc credits
v1.3.2
  1. Added /xdialog -t, and updated /xdialog -g to support background images
  2. Added /xdid -w to image control
  3. Added $xdid().font global function to retrieve the font in use with a control
  4. Fixed a bug causing FONTNAME to be an optional field with /xdid -f
  5. Fixed a bug causing /xdid -j to not work on edit ctrl
  6. Added $dcx(FontDialog)
  7. Added /xdid -t to panel
  8. Added link to old dcxdoc on 'latest changes' description
  9. Changed /xdid -q to /xdid -Q for treeview item style changing command
  10. Implemented sclick event for treeview and listview when mouse clicked on no item
  11. Added quickfixes to ipaddress and comboex, to be drawn correctly when created with "disabled" style
  12. Added a quickfix for treeview icon 0 still showing first icon (will work as long as you dont use more than 10000 icons)
  13. Fixed typos, grammatical mistakes, inconsistancies, and missing features in dcxdoc with list ctrl dcxdoc (thanks elizio, dJabba, and MiSsInGnO)
  14. Added another tutorial link to cla page
  15. Fixed some styling
  16. Added /xdid -w to link control in dcxdoc, which was missing
  17. Fixed up example in /xdid -f dcxdoc to include CHARSET
  18. Readded Mpdreamz back to credits! oops! =P
  19. Changed contact irc network from IrcSuper to Americhat (stupid Shiek) =P
  20. Added a link to j0x's tutorial (french only)
  21. Fixed example with /xdid -C (rgb not showing)
v1.3.1
  1. rewriting documentation, if you find any errors or inconsistancies with the old documentation, please post a message <a href="http://dcx.scriptsdb.org/forum/showthread.php?tid=171">here</a>
  2. fixed focus using tabbing on edit controls on dialog (box tabbing and focus still being researched)
  3. changed treeview and listview rclick events so it would fire even without an item being selected
  4. added a callback sclick when /xdid -c is called for comboex
  5. fixed a bug causing filters on Open/Save dialogs to be defaulted to "All Files"
  6. added /xdid -m switch to button control to allow text on bitmap buttons
  7. fixed a typo where /xdid -d wouldnt work for comboex
  8. added /xdid -o for pbar to make text vertical
  9. added/reimplemented dragbegin, dragfile, dragfinish events to comboex, dialog, listview, treeview, edit and listbox controls
  10. fixed a bug causing some listview items to ignore certain flags upon adding
  11. added GetTaskbarPos to retreive position of taskbar
  12. added /xdid -j to listview to change flags
  13. fixed box corner bug with colored background
  14. fixed bug that didnt let first toolbar button tooltip to be changed
  15. fixed a bug with /xdid -f not redrawing the control when the font is changed back to default
v1.3.0
  1. fixed a display bug where text would be drawn off a button when too long
  2. added a pbar property $xdid().text
  3. added ability to set no text on a button using /xdid -t
  4. added keydown, keyup and return to richedit
  5. link font is now the system default GUI font
  6. fixed /xdid -C +k for box control not using the specified color
  7. added return and rclick event to richedit
  8. added /xdid -c to copy content to clipboard for edit and richedit ctrls
  9. added owner style to OpenDialog, SaveDialog and ColorDialog
  10. changed -C to -S for selecting text ranges in edit and richedit ctrls (this would of solved the coloring bug on these controls too)
  11. included a check on /udcx to see if it was called from a menu to prevent a crash on unload. please update your dcx_tools.mrc
v1.2.7 and v1.2.8 reimplementation
  1. removed a debug output "Dialog WM_LBUTTONDOWN" when clicking on the dialog
  2. changed $dcx(GetSystemColor), please view documentation on changes to syntax
  3. added /xdid -o to overwrite a line for listbox ctrl
  4. added a style to the list control vsbar allowing it to be scrolled when overflowing
  5. added keydown and keyup events to edit ctrl
  6. added $dcx(ColorDialog), slightly changed syntax
  7. implemented $dcx(OpenDialog) and $dcx(SaveDialog)
  8. added selstart, selend, sel, seltext properties to edit ctrl
  9. added selstart, selend, sel, seltext properties to richedit ctrl
  10. fixed a bug in /xdid -d for tab ctrl where no page would be selected after deleting current page
  11. fixed a problem with box and link ctrls where cursor command /xdid -J wouldn't apply
  12. implemented /xdid -U for removing focus from a control. (will not work if there is only one control on the dialog)
  13. added nocut, nocopy and nopaste return values to prevent cut, copy and paste events for edit ctrl
  14. richedit editable by default
  15. added a style readonly to richedit
  16. added /xdid -Z for zooming richedit ctrls
  17. Please note that selchange (richedit) and dropfile events are missing.<br /> They will be reimplemented in the near future.
17/02/2006
  1. Added /xdid -q and -m to the Listview for Group Support (XP+)
  2. Corrected the height of the colorcombo which is now the same as the comboex
  3. Fixed help file typos
16/02/2006
  1. Added cursor stuff to the DLL via /xdialog -q and /xdid -J
15/02/2006
  1. Added /xdialog -j
  2. Fixed richedit /xdid -k switch
  3. Fixed a drawing glitch on the box control
14/02/2006
  1. Added the +ah flags to the /xdid -t command for listview headers
  2. Added /xdid -n to listview to resize header individually after they've been created
  3. Added $xdid().hwidth, .htext and .hicon to the listview
  4. Changed the range values of the trackbar to 32 bit values
  5. Fixed the fact that an undock dialog/@window was displayed when undocked even though it was hidden just before
  6. Fixed $xdid().tooltip on treeview that returned corrupted data
11/02/2006
  1. Fixed a bug related to XPopup menus not showing properly after merger
02/02/2006
  1. Merged XPopup to the DLL
01/02/2006
  1. Added missing /xdid -d doc for the box control even though the function existed
  2. Added $xdid().tooltip to the toolbar control
  3. Fixed control deletion bug with "ghost" controls and invalid IDs, crashes, etc.
  4. Fixed potential problems with image lists on certain controls (not reported, but found by me)
  5. Fixed typos in the help file
  6. Fixed the TAB that made button text disappear bug
  7. Fixed the $xdid().icon treeview bug
31/01/2006
  1. Added /xdid -o on the treeview to change the toltip text of an item
  2. Added the $xdid().mouseitem to the treeview control
  3. Added a Note to /xdid -p
  4. Added /xdid -k to richedit to change background color
  5. Added /xdialog -x which kills a dialog instead of triggering the close state
  6. Added the nosize return possibility in the sizing dialog event
  7. Fixed the $xdid().sel index being wrong on the comboex
  8. Fixed the link control refresh bug after /xdid -t
  9. Fixed $xdid().find in several controls generating a mIRC error when used with a $null value for matchtext
  10. Fixed /xdid -l for icon size not working for treeview
  11. Fixed /xdid -u not clearing selection in listview
  12. Fixed the header events not being sent when a listview was on a panel control (stupid API inconsistency here!)
  13. Modified the close event notice. A MUST READ
23/01/2006
  1. Added /xdid -v to change a celle text on statusbar
  2. Added the dialog name in some error messages
  3. Changed the updown $xdid().pos to $xdid().value
  4. Fixed a typo in the scroll "vertical" style preventing is from working
  5. Corrected typos in the help file
11/01/2006
  1. Added /xdialog -f to flash dialog windows
  2. Reduced the height of the colorcombo control
09/01/2006
  1. Added $xdid()ispass to the edit control
  2. Added /xdid -j to the edit control to trigger password mode
  3. Fixed a toolbar icon list bug
  4. Fixed the ready state of the webctrl when created, it now browses to about:blank
  5. Fixed the rebar refresh problem linked to CLA
08/01/2006
  1. Fixed the WebCtrl GPF Bug that afflicted it so hard only on certain machines
  2. Added scrollend event to the listview
  3. Added $xdid().tbitem to listview (Mpdreamz :P)
  4. Added $xdid().mouseitem to listview (Mpdreamz :P)
  5. Increased the maximum limit of text in the edit control
  6. Fixed typos in the help file and added docs on some features and styles
07/01/2006
  1. Added $xdialog().id to retrieve the Nth used id in a dialog
  2. Added $xdid().type to retrieve the type of the control
  3. Added hrclick event for headers in the listview
  4. Added $xdid().inbox to the box control that gives the interior client area that clears the box border + text
  5. Added sclick, lbup, lbdown, lbdclick and dclick events to the panel
  6. Added /xdid -q to change the tooltip on a toolbar button
  7. Added the squared style to the box
  8. Added $xdid().childid on tab and rebar
  9. Added dialog docking on panel and box controls
  10. Added xdid -d on panel and box controls to delete child controls
  11. Replaced the noresize and noparentalign styles by noauto in the toolbar which combines both together
  12. Changed the box so that the text background color is now the line color and text color can be different from line
  13. Fixed a Richedit coloring bug
  14. Fixed xdid -t on the listview
  15. Fixed Image control refresh bug
  16. Fixed the /xdid -c and selection bug in the colorcombo
  17. Fixed a bug with the $xdid().find in the comboex
  18. Fixed a bug where header events were not triggered when the listview was on a divider
  19. Fixed the /xdid -j treeview bug
  20. Fixed typos in the help file
03/01/2006
  1. Added /xdid -j on trackbar (Only works with XP themes disabled)
  2. Added $xdid().dpos giving position relative to dialog
  3. Changed $xdid().pos giving position relative to parent (which can also be the dialog)
  4. Fixed /xdid -f for the richedit
  5. Fixed $xdid().pid bug
  6. Fixed the Edit $xdid().text not returning correct value in the "edit" event
  7. Fixed CLA GPF bug
17/12/2005
  1. Added ans extra parameter to the /xdid -j of the treeview for the selected icon
  2. Corrected the $xdid().seltext not working properly on the treeview
16/12/2005
  1. Fixed Comboboxex edit control not supporting more than the combo width of characters.
15/12/2005
  1. Rebuilt the box control to make it custom which reduces problems and makes it support colors for the line
  2. Changed the box style rjustify to right and added the bottom style
  3. Added $xdid().tooltip to treeview
  4. Added /xdid -i for the toolbar to change the button icon
  5. Fixed toolbar dropdown event bug
14/12/2005
  1. Converted the box control to a CONTAINER control like the PANEL so people can use the CLA with it's controls inside
  2. Added $xdialog().key general property
  3. Added $xdid().pid general property
  4. Added lbup, lbdown, lbdblclk, rbup, rbdown, rbdblclk, mbup, mbdown, mbdblclk events to dialog
11/12/2005
  1. Corrected the mIRC Controls not working properly when the dialog is marked bug
10/12/2005
  1. Added sclick and rclick events on some controls where it was missing and useful.
  2. Added $xdialog().mouse and $xdid().mouse
  3. Added the W and H to the sizing dialog event
  4. Added $xdid().icon to Toolbar, ListView, TreeView and Tab controls
09/12/2005
  1. Added /xdid -c to change button color/styles on toolbar
08/12/2005
  1. Moved /xdid -l to /xdid -j on treeview
  2. Added /xdid -l to change icon size on treeview
  3. Added /xdid -g to change item height on treeview
  4. Added /xdid -u to change toolbar button size
  5. Added /xdid -v to change toolbar button text
  6. Corrected a bug in the /xdid -p no refreshing the child controls
07/12/2005
  1. Corrected typos in the edit and richedit control help
  2. Corrected a bug in the toolbar /xdid -l that did not refresh the bar buttons
06/12/2005
  1. Corrected the /xdid -x | /xdialog -b border bugs
  2. Corrected a bug in the /xdid -p not refreshing the control properly
05/12/2005
  1. Added the $xdialog().mouseid which returns over which control ID the mouse is.
  2. Added the focus and focusout dialog events which indicate when a control has focus or when it loses it.
  3. Added the $xdialog().focusid which returns which control has the focus.
  4. Corrected the box control repainting child controls' border bugs
04/12/2005
  1. Added /xdid -Z vertical scrolling function that can be used in any control
  2. Added an extra parameter [CHARSET] to the /xdid -f font command
  3. Added font change support on the progressbar
  4. Added +es switched to a treeview item being added
  5. Added mouse events mouse, mouseenter and mouseleave
  6. Reverted the Image control to BMP only because of problems with the GDI+ lib, so only BMPs are supported now with a color for transparency
  7. Corrected a drawing bug with the Image control when it was resized using the CLA
03/12/2005
  1. Added $xdialog().ismenu
  2. Added the /xdid -F focus on control
  3. Added error messages for commands that create other controls when the ID is already used : /xdialog -c : Control with ID "4" already exists
  4. Added /xdid -t/-u on the edit and richedit to load from/save to a file
  5. Corrected the $xdid().num and .state on the listview
  6. Corrected the box control repainting child controls bugs
  7. Corrected the $xdid().text from edit not returning the correct value
29/11/2005
  1. Added $xdid().text property to the toolbar
  2. Corrected a bug with the @window not properly setting it's control ID when docked
  3. Added $xdid().hwnd general control property
28/11/2005
  1. Added the Web control
  2. Added the DCX vs MDX comparison page
27/11/2005
  1. Added @window docking support on the panel control
  2. Added omitted updown control styles from help
26/11/2005
  1. Added the IP Adress control
  2. Added the Updown control
  3. Corrected a GPF in the Cell Layout Algorithm (CLA) when supplied a bad cell path: now issues an error message
  4. Corrected the transparency/flat toolbar bug when a child control of a panel
25/11/2005
  1. Fixed panel child controls not returning events for some controls
  2. Fixed bug related to toolbar button click GPF
  3. Fixed icon bug on listview
  4. Added information on icon space and [INDENT] param in N.B.s in listview doc
  5. Modified list of accessible controls by tab and divider controls to generic resizeable controls to prevent problems
  6. Fixed hsclick/hdclick events in listview missing in tab/divider/rebar child listviews
  7. Fixed the stateclick state bug by returning the correct state value in the event
  8. Added size 24 icons to the toolbar icon size command
24/11/2005
  1. Added tracking event on the trackbar
  2. Changed the sclick event of the toolbar
  3. Rebar's /xdid -q feature has been disabled until I find a way to achieve this if it's possible
23/11/2005
  1. Added Regular Control: Image; with support for PNG, JPG, GIF, BMP and transparency.
  2. Added Edit Events: return, edit
  3. Added missing feature to get text of combo editbox in $xdid().text
  4. Added /xdid -v t the divider to set the bar position
  5. Fixed $xdialog().nextid bug
  6. Fixed the /xdid -p bug not working on docked @window and dialog
  7. Corrected typos in the help file
21/11/2005
  1. Added Regular Control: Link
  2. Corrected typos in the help file
17/11/2005
  1. Added Regular Control: Listbox
  2. Rewrote my test dialog separating each control into a single command for quick enabling/disabling of a particular control
16/11/2005
  1. Resolved a listview /xdid -a where N=0 end insertion did not work for icon, smallicon and list styles
13/11/2005
  1. Added Regular Control: scrollbar
  2. Added multiple ID support for /xdid
  3. Added /xdialog -g, /xdid -C color commands
  4. Corrected a treeview checkbox style bug preventing checkboxes to be used in the treeview
11/11/2005
  1. Added Regular Controls: edit, text
  2. Corrected typos in help
  3. Removed some debug messages not used
10/11/2005
  1. Fixed the panel control not being created properly and acting as a divider
  2. Added Regular controls : Line, Box, Radio and Check
  3. Corrected a bug in the toolbar/statusbar/rebar controls not being asserted their top/bottom/left/right automatic positions in the panel control
  4. Corrected rebar band release display bug
09/11/2005
  1. Activated /xdid and $xdid for docked @windows and dialogs
  2. Added the default style for the button
  3. Added general control styles: tabstop, group, disabled
  4. Changed help files in styles section
02/11/2005
  1. Added a notice for switches +mn of the /xdialog -b command
14/10/2005
  1. Corrected a GPF bug when the DLL was unload via /dll -u and a DCX dialog is opened
10/10/2005
  1. Changed labeltip to tooltip in Listview styles
  2. Added /xdid -f font command to the richedit control
  3. Added /xdid -M global control command linked with $xdid().mark to store additional information per control
  4. Added toolbar AutoStretch buttons feature linked with /xdid -m
  5. Added demo dialog which needs to be completed
  6. Added change rebar event
  7. Added an important note to /xdialog -l
09/10/2005
  1. Added Tab Control
  2. Corrected Typos in help files
08/10/2005
  1. Added Panel Control
07/10/2005
  1. Relaxed compilation options hopefully to resolve the $dll unable to open dcx.dll problems
  2. Added the /xdialog -l command
  3. Added a new section - Cell Layout Algorithm
20/09/2005
  1. Added Event Management in the divider control for subcontrols
  2. Corrected the WIDTH param in the rebar not taken into account on band creation
19/09/2005
  1. Added the custom made divider control (not fully functional yet, misses event handling of child controls)
  2. Corrected typos in the help file
17/09/2005
  1. Added option to set separator width in toolbar in /xdid -a notes
  2. Corrected .selext and .text comboex bugs
16/09/2005
  1. Corrected a bug in my TString support lib also related to the richedit bug
  2. Added multiline selection in listview + $xdid .selnum and modified .sel prop
  3. Added more listview optional control styles
  4. Added top, noresize, noparentalign statusbar styles
  5. Added dialog events, endsize, min, max, restore, beginmove, moving, endmove
14/09/2005
  1. Added /xdid -l to ListView + TreeView to change icon
  2. Added /xdid -v to ListView
  3. Corrected explanation for the progressbar "digital mode"
13/09/2005
  1. Corrected a treeview itempath bug
11/09/2005
  1. Corrected typo in Mark Command
7/09/2005
  1. Corrected a toolbar tooltip bug
  2. Corrected the toolbar font not being applied
  3. Correctd help typos
  4. Let me kwow if anyone has problems with the Release DLL
5/09/2005
  1. Completed RichEdit control
  2. Added .isid and .nextid $xdialog properties
  3. Corrected typos in help file
  4. Help file now being translated into French, Swedish, Portuguese and Finnish. Looking for translators for Spanish and Italian.
4/09/2005
  1. Added the Button control
  2. Documented help event in all controls
  3. Corrected a few typos in the help file
3/09/2005
  1. Added $xdid .find prop to ListView
  2. Rebuilt the /xdid -z of TreeView with more sorting options
  3. /xdid -f Font change switch completed
2/09/2005
  1. Added /xdid -g, -i and -z switches to ListView
  2. Added .tooltip prop to statusbar
1/09/2005
  1. Added -v switch to treeview to change itemtext
  2. Finished code base adaptation
31/08/2005
  1. Added -j switch on toolbar to set button min and max width
28/08/2005
  1. Mark function parameters changed
  2. Added Text on the Progressbar control
  3. Added 3 events on progressbar, sclick, rclick and mousebar
  4. Typos in help files
25/08/2005
  1. Recoded the whole base of the framework for better evolution in the futur
  2. Need to convert old code to new franework, not hard but time consuming
23/08/2005
  1. Added Colorcombo control completed
  2. Started RichEdit control, but far from finished
21/08/2005
  1. Major Changes
  2. DCXControl was transfered to /xdialog -c
  3. Added several /xdialog switches
  4. Moved Animate to /xdialog
  5. Added several Rebar /xdid switches
  6. Added rebar events
  7. Added COLOR support for rebar band text
  8. Corrected help file documentation and typos
18/08/2005
  1. Added more child controls on rebar
  2. Activated events on child controls on rebar
  3. Added /xdid switches for rebar control
16/08/2005
  1. Dialog events with beginsize and sizing
  2. Added rebar functionnality ( more to come )
  3. Corrected a toolbar GPF bug
  4. Added some event support for child controls on rebar
14/08/2005
  1. Changed the pbar /xdid -mf switch to -mg
  2. Started Rebar Control (really incomplete)
  3. Corrected help file typos
13/08/2005
  1. Added /xdialog and $xdialog functions
  2. Added -b switch to /xdialog for border/style mods on dialogs
  3. Added -x general switch to /xdid
  4. Finally resolved mIRCs trick in disabling dialog resizing, now functional without needing an extra control (hint: positioner).
  5. Added Item number returned in $4 in sclick, stateclick, rclick and dclick events of listview
06/08/2005
  1. Added Trackbar control
  2. Added documentation warning in @window doc
  3. Updated DLL Documentation with HTML fixes and corrections of all kinds
02/08/2005
  1. Bug Fixes
01/08/2005
  1. Added @window docking
  2. Added Animate Dialog Function
  3. Added Toolbar Control
  4. Debugging/Cleaning of debug echos (If you see some more debug text, please let me know)
31/07/2005
  1. Added ComboEx Control
  2. Added Listview more stuff
26/07/2005
  1. Added ListView (really not finished)
24/07/2005
  1. Added Statusbar control
17/07/2005
  1. Added treeview /xdid switches
16/07/2005
  1. Changed the progressbar /xdid -s switch to -u
  2. Added /xdid global switches, -behps
  3. Added $xdid() global props, .enabled, .visible, .pos
  4. Added treeview $xdid() properties
14/07/2005
  1. Added all the treeview events
  2. Added a couple -X switches to the treeview control
13/07/2005
  1. Changed the progressbar /xdid -b switch to -k
  2. Added start of treeview control (rest is coming)
Contact © 2005-2022 Last Updated: 19th November, 22

Valid XHTML 1.0 Transitional Valid CSS!