home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
tvos200.zip
/
CHANGES.LOG
next >
Wrap
Text File
|
1995-04-25
|
6KB
|
121 lines
; -----------------------------------------------------------------------------
* Initial changes.
Source cleanup to allow compile of 90% on WatCOM.
Modules not compiling are: hardwrvr, tevent, tscreen and tmouse.
All header files (formerly in <compiler-dir>\INCLUDE\TVISION moved to the
project directory for TVISION.
; -----------------------------------------------------------------------------
* Modifying platform handling.
Removing all platform-specific references for screen, mouse etc handling to
the tHardwareInfo class; providing implementations for that class in separate
files:
hardwrvr.cpp: Shared code & code with minimal platform changes,
hardos2.cpp: OS/2 32-bits platform-specific stuff
hardnt.cpp: Windows NT platform-specific stuff
harddos.cpp: DOS and Extended DOS platform-specific stuff.
To really make things nice would entail a complete rewrite of the low-level
stuff, i.e. THWMouse, TMouse, TEvent, TEventQueue, THardwareInfo, TDisplay and
TScreen should be redesigned because at this point they're a mess. This would
probably break existing code, however, so that's not done. Also, the event
retrieval process should change: instead of calls to getKeyEvent and getMouse...
a single call to getEvent() should be used. This prevents the hassles with
"pending events" and the like for NT and OS/2, and would allow blocking in the
event loop to prevent 100% CPU load..
; -----------------------------------------------------------------------------
* Adding the files OS2STUFF.CPP and .H.
They contain helper functions for the OS/2 platform:
- the keyboard interface with limited diacritical support
- Current ms time function.
; -----------------------------------------------------------------------------
* Changed TSCREEN.CPP for platform code; added several #ifos2..
; -----------------------------------------------------------------------------
* tgroup.cpp: added C version of removeView()..
; -----------------------------------------------------------------------------
* Syserr.cpp: added C (OS/2) version of swapStatusLine()..
; -----------------------------------------------------------------------------
* ttypes.h:
Added #ifdef... lines around the definitions for Boolean and the types uint,
uchar etc. for compatibility with other libraries.
Changed the definition for ccIndex from int to short: ccIndex is streamed out
at some places, and int changes size from DOS to OS/2, causing streamed
desktops etc to become unreadable.
; -----------------------------------------------------------------------------
* *.asm:
Most assembler files are changed in the 32-bit part. The original used Borland
mangled names for the entrypoints, but since each C++ compiler has it's own
idea about mangling this was changed.
Now all 32-bits entrypoints are C functions that take a void* as the <this>
pointer. All C functions are preceded by asm. So, TView::exposed() becomes the
C function _asmExposed(void* this).
Some stupid functions are written as C functions; these are:
- swapst.asm
- tvcursor.asm
they are replaced by C versions in syserr.cpp and tvos2.cpp.
Not all assembler files are used; some stuff has C++ versions in tvos2.cpp
while I'm busy porting the assembler stuff in a more portable way..
; -----------------------------------------------------------------------------
* twindow.cpp: added ofFirstClick to the options of a TWindow.
when not present, this caused the following symptom: dragging a window that
was not active when the mouse was clicked on it's title bar would fail; the
window would be selected but wouldn't enter drag mode, because the call to
the focus() procedure would clear the event. By setting ofFirstClick the
event will persist so that it will be recognised as a 'drag' start.
; -----------------------------------------------------------------------------
* TVOS2.CPP: temporary workaround for some of the assembler modules.
This module contains some member functions that were present in the assember
modules. Some of there were hard to port, so I've wrought a C++ version of
them. I'm still busy porting the assembler parts in such a way that they can
be used with >1 compiler. Main problem here is name mangling: the assembler
modules all use Borland name mangling. Two problems exist:
1. How to call member functions implemented in assembly without having so
specify every compiler's mangled name in the assembler module?
My current workaround is: all 32-bits assembler functions are implemented as
non-member functions, which get a 'this' pointer explicitly passed. In the
class definition, the original member function calls the assembler version
inline, so no extra overhead is caused.
2. How must member functions be called FROM an assembler module?
Some of the assembler modules (for instance the writeView members and derived)
call non-assembler member functions. For instance the writeView member calls
THardwareInfo::cursorOff(). This name is mangled also, and one solution would
be to provide extern "C" functions that call the appropriate member function
for us (since most (all?) of them are static anyway). But this would cause
xtra overhead. I'm still thinking.
; -----------------------------------------------------------------------------
drivers.cpp, drawbuf.h: new cpyBytes member added.
cpyBytes() copies a length-determined string to the buffer, thereby
setting the attribute to a constant value.
; -----------------------------------------------------------------------------
* tcollect.cpp: default constructor for TNSCollection now sets delta to 5.
The default constructor set the delta member to zero initially. This causes
a problem when an element is inserted: it grows with 0 elements....
An assertion was put where the array is grown to make sure delta is non-0.