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