Features of patch 04

Back Up Next

Rewritted makefiles.
Support for VC 6.0  with namespace
Support for STL string or old for VC and BCB, default for BCB STL string.
Full support for all new common controls, and enhanced existing common.
New classes TMonthCalendar, TPageScroller, TIPAddress
commctrl.dll a lot of new structures and functions, new function GetVersion() to find version of commctrl.dll
imagelist.h new class TImageListDrawParam and new functions.
Listview updated to support version 4.7/4.71 of commctrl.dll
Added richedit version 2.0 support.
New classes TSystemTime and TFileTyme.
Added support for new HTMLHelp. (not finished)
Added EnterIdle() in mdichild.cpp -> bug with MDIChild menu messages
propsht.h fixed defines for ID_APPLY,ID_NEXT, ID_BACK, ID_FINISH
dc.h - new function DrawTextEx(...).
docking.h add virtual GetGripGadget()
gadget.h enhanced TFlatHandleGadget ( better drawing of flat grip)
buttoongadget Added void PaintBorder(TDC& dc); and virtual void PaintFace(TDC& dc, TRect& rect);
GlyphButton  -   Some helper functions now virtual.
TTextGadget - now paint 3d disable text for Win 95/NT 4.0
TGadgetWindow   - changes in two functions:
static void EnableFlatStyle(uint type = FlatDefault)
virtual uin GetFlatStyle();
New enumerator TFlatStyle has defined:
    NonFlatNormal,     - Non flat
    FlatStandard,         - Standard Win95 look
    FlatGrayButtons,    - Not implemented jet
    FlatHotText,          - Hot text
    FlatSingleDiv,        - Single grip divider
    FlatDefault,            - Automatic type selection
FlatStandard - have to be present always
FlatHotText, FlatSingleDiv, FlatGrayButtons can be or`ed.
Example:
    EnableFlatStyle() -> to automatically select proper style
    EnableFlatStyle(TGadgetWindow::FlatHotText) -> Not flat only Hot Buttons
    EnableFlatStyle(TGadgetWindow::FlatStandard|TGadgetWindow::FlatHotText) -> Flat with Hot Buttons
TCellArray  added StretchBlit(), and added parameter rop in BltBlt()
New class TButtonTextGadget
picker.h New classes TPickerCell, TColorCell, TBitmapCell, TTextCell, TGridPicker, TPopupPicker, TColorPicker, TPickerGadget, TColorPickerGadget and TBitmapPickerGadget
popupgad.h  - New classes TPopupButtonGadget and TPopupMenuGadget.
flatctrls.h New flat controls TFlatComboBox,TFlatEdit, TFlatListBox and TGadgetComboBox,TGadgetEdit, TGadgetListBox    for using in TGadgetWindow.
TSystemTime   Default Constructor now only memset() data.
BUG BUG in TListWindow  -  Bug in RedrawItems
TUIFace Added ( actually finished) support for Text. In Borland version was implemented only bitmap drawing.
TModule  - New functionality: Now exist list loaded DLLs, added parameter in TModule constructor to add DLL into list or not.
New function:
     static TModule* FindResModule(TResId id, LPCTSTR type); - Searches for resource in all loaded and registered modules, and return module wich contain specified resource.
All resource-load functions from TModule if failed resource loading uses FindResModule() to find resource in other             module.
TTime    Added support TSystemTime and TFileTime.
TDate - default format dd/mm/yyyy, there are several additions, but them not feezed now, and may be changed.
New macros  DECLARE_SIGNATURE0, DECLARE_SIGNATURE1 - DECLARE_SIGNATURE12
wincls.h     Changes in template TResource<T, const char* type> now it declaration: TResource<T, long type>
Why? Because new ANSI C++ standard forbid use char* because it isn't constant. And VC 6.0 not support char*.
Actually all windows resources usually just integer numbers.
TModule* Module  Global name Module was changed for VC compilation to gModule. And this major change. VC 6.0 has problem with ::Module as default argument in function, optimal solution I think renaming ::Module to gMidule.
As defined in module.h:
#if defined(BI_COMP_BORLANDC) && !defined(BI_NEW_GMODULE)
    extern TModule* Module;
#    define gModule ::Module
#else
    extern TModule* gModule;
#endif
You don't need change ::Module to gModule if you uses Borland, but for VC you must. You can use gModule in all cases, and compile the same code with BC++ and VC++.
eventhan.cpp Now with diagnostic build OWL diagnostic message function not report for very frequently sent messages:
WM_MOUSEMOVE
WM_NCMOUSEMOVE
WM_NCHITTEST
WM_SETCURSOR
WM_CTLCOLORBTN
WM_CTLCOLORDLG
WM_CTLCOLOREDIT
WM_CTLCOLORLISTBOX
WM_CTLCOLORMSGBOX
WM_CTLCOLORSCROLLBAR
WM_CTLCOLORSTATIC
WM_ENTERIDLE
WM_CANCELMODE
WM_COMMAND_ENABLE
0x0118 (WM_SYSTIMER - caret blink)
New diagnostic support:
a) In diagnostic version from System Menu you can open Diagnostic window, and see diagnostic messages and change diagnostic group parameters .
b) New macro VALIDPTR(p), VERIFY(p), VERIFYX(p,msg), DIAG_REDIRECT(g,s), TRACE_FUNCTION(f), TRACE_FUNCTIONP(f,p), TRACE_FUNCTIONX(g,f), TRACE_FUNCTIONXP(g,f,p);
Added delay loading for ole32.dll, oleauto.dll, shell.dll libraries, a little speed loading of application.
TComboBox::GetDroppedControlRect - Fixed bug, suggeted bu Luigi Bianchi
checklst.h - Added user value into TCheckListItem
COUNTOF(ar)  - Added array check in COUNTOF(ar)  macro -> see defs.h
Persistent stream - Fixed bug (Suggestionby Greg Chicare)
Fixing OWL Versioning
#define OWLInternalVersion 0x06000400L  // Internal version OWL build with
#define OWLVersion 0x0604                         // Version building with: XX.XX
OCF: In test fase I found several problems in OCF, and currently I work to fix this.
Revised: December 04, 1999.


Copyright © 1998-2001 Yura Bidus. All rights reserved.