- Home
- General Usage
- DCX Controls
- DCX Features
- About DCX
|
DCX |
This DLL lets you add new controls to mIRC dialogs as well as change other features like the visual style, position etc...
DCX does not support mIRC controls (NOT EVEN mIRC TABS), nor anything related to mIRC normal dialogs except it's menus. DCX does not work like MDX so please read the manual and see dcx.mrc and dcx_tools.mrc for examples.
XPopup (special mIRC menus) need to be patched to work on mIRC v6.2! Custom menus still work normally.
The DLL creates the controls directly on the mIRC dialog and you use clone functions defined by /xdid and $xdid which behave like the regular /did
and $did to interact with the controls.
The event handling in the DLL is supported by a callback alias supplied by the user when the dialog is marked before adding DCX controls. The callback alias is called from within the DLL to ask for info (if you want to modify the default behavior in the DLL thus the "callback" type) and will supply the user with the events and parameters of these events.
Every function in this DLL returns a value if used with the $dll identifier. D_OK [function]: [message] if successful, D_ERROR [function]: [message] otherwise.
Note: Mandatory parameters are expressed in [SQUARE] brackets and optional parameters in (ROUNDED) brackets.
Note: We strongly suggest you load the dcx_tools.mrc file included in the zip as it contains the necessary /xdialog, /xdid, /xdock, /xtray, /xstatusbar, /xtreebar and /xmenubar aliases and identifiers needed to use the DLL.
Note: Function calls, styles, and references to anything DCX related are all case sensitive!
|
GDI+ |
For advanced support for images (such as extra file formats and drawing routines), Microsoft has released a library called GDI+. This is included in Windows XP, however older versions of Windows may not have this.
Use $dcx(IsUsingGDI) to check whether or not you have GDI+ support on your computer. If you do not, you can download it here.
|
Callback Alias Events |
Overview
Every DCX Control fires events upon user action on the control. These events are sent to an alias specified when the dialog is Marked.
Why are the events not sent like regular on *:DIALOG: events?
Well for one thing, mIRC events are linear and static in the way that you cannot return any value to the event manager, to modify the default behavior of the event. Using callback support with an alias enables this type of interaction.
Callback Event Data
Format: [NAME] [EVENT] [ID] [PARAM]
Parameters: |
NAME |
$1 = Name of the dialog that the event came from. |
EVENT |
$2 = Name of the event (eg. sclick, dclick, ...) |
ID |
$3 = ID of the control that fired the event. |
PARAM |
$4- = Additional information, event specific (usually $null, except specified otherwise in documentation) |
| Note. Some control events support return values to change their default behaviour. When returning special values during certain events, such as nosize for sizing, interact with the DLL and modify the default event behavior. The events that support a return value will have a description of what the return value does when returned. |
|
Latest Changes |
If you notice any inconsistancies or errors with the documentation, please put a post on the forum on this thread!
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
|
|