/* Changes made to Optima++ maintainence branch -------------------------------------------- Add new stuff at the front. */ 04 Dec 96 ckirie Bug Fixes: -- [v1.6 & v2.0] If you have source control turned on, and you are not using Visual SourceSafe (or its ilk) or ObjectCycle, you are not longer needlessly nagged about whether you want to put this project under source code control. If you _are_ using SourceSafe or ObjectCycle, you are nagged only once. Previousy, you could be nagged twice. Twice, that is. 28 Nov 96 ckirie Bug Fixes: -- (v2.0 & v1.6) Optima++ now explicitly prevents you from deleting WPCH.HPP (the local precompiled header file). Previously, it used to just crash. 20 Nov 96 ckirie Bug Fixes: -- Optima++ now guarantees that the timestamp of the generated WRES.H file is no later than that of the WXR file. This means that if you use Optima++ to generate project files, then WMAKE to build them (because you're on a build machine, say) you will be spared un- necessary rebuilding. 18 Nov 96 djp -- Worked around a Hebrew win95 bug which caused the editors to not work at all (wrote our own TabbedTextOut). 18 Nov 96 ckirie Bug Fixes: -- (v1.6/2.0) [PT-337586] You can now create "*" operator functions. Previously, Optima++ mangled the prototype so that you ended up with something like "Class1::operator int*(int)" rather than the correct "int Class1::operator *(int)". -- (v1.6/2.0) Resources Window: If you change the user defined resources, then close the window, the changes are now saved. Previously, they were lost unless you selected a different resource type first. 15 Nov 96 djp -- Server and Server Socket samples excluded from Developer. 13 Nov 96 Andy Quick Bug Fixes: -- Fixed problem in WSocket where Close did not work on an asynchronous socket after a SocketClose event was received. 12 Nov 96 D. Wellstood - when you have multiple targets, some with warnings and others with errors then when the error log opens it will open to a target that has errors - when the user requests that warnings not be shown in the target view property sheets we now generate -w0 on the compiler command line so that warnings are not generated. 09 Nov 96 ckirie Bug Fixes: -- [PT-354574] Optima++ now makes the main form visible when it creates a target from a template. Previously, it did not. 09 Nov 96 ckirie New Stuff: -- Optima++ now asks if you want to add a project to source control if it has to do some source control operation and you haven't already checked in the project. Bug Fixes: -- Optima++ now works with MKS SourceIntegrity again. 08 Nov 96 ckirie Bug Fixes: -- The "Save As" dialog: -- The dialog is now centered on the screen -- [PT-355041, 374527] If you type an invalid folder name (eg. "A->B" or "con"), Optima++ tells you the name is no good and keeps the dialog open. Previously, it would warn you but then go ahead and use the bad name anyway. 07 Nov 96 ckirie Bug Fixes: -- [PT-372648] If you save an untitled project, change any of the forms, then close the project without saving the changes, Optima++ no longer erases the form files (leaving you with a project that won't load). 06 Nov 96 djp -- setting very large selections in editors (> max short char size) could fail. fixed. 05 Nov 96 ckirie New Stuff: -- Source Control: -- We now store out the type of source control system in the project's WXU file. If you then load the project, but are configured for a different source control system (or none at all), Optima++ will alert you and offer to switch you back. For free. -- If you're using Visual SourceSafe, Optima++ now remembers enough information to automatically reconnect you to VSS when you open a project in which you have checked-in files. Previously, you were always prompted to log in. -- You no longer have to create Visual SourceSafe projects using the VSS Explorer. The first time you check in files for a given project, Optima++ displays a SourceSafe prompt which lets you create a new SourceSafe project. Bug Fixes: -- You can now use Optima++ to check in files to more than one Visual SourceSafe project (ever). Our whole VSS support was pretty broken until now. -- Optima++ no longer prompts you to log into Visual SourceSafe or ObjectCycle if you are working on an untitled project. (There's no point since Optima++ requires you to save your projects before doing any source control operation). -- Optima++ was passing a NULL window handle down to Visual SourceSafe functions which would sometimes cause them to fail. This has been fixed. 3 Oct 96 ckirie -- Fixed the bug that would sometimes cause Optima++ to crash down in the CLIB memory deallocator if you opened a project by picking the project name from the Optima++ File menu. 2 OCt 96 ckirie/Don H. -- Fixed the EventManager::EnumAllEvents() function so that it's now safe to delete the returned event in the called callback function. This was necessary in v2 to fix a problem where Optima++ would crash if you closed a project while an editor window was open. 01 October 96 Geno Coschi -- Dual interfaces generate two classes: a dispatch interface class that inherits from WOleDispatchHelper and a dual interface class that inherits from IDispatch. A custom interface that inherited from a dual interface was being generated so that it incorrectly inherited from the dispatch interface class. It now properly inherits from the dual interface class. 27 Sep 96 ckirie -- Previously, Optima++ did not always correctly handle the case where you rename the WXF file for a tab control's page. The symptom was that Optima++ would still try to load the tab control page using the old filename, which would fail. (A workaround is to edit the WXF file of the form that contains the tab control, and update the file path in the tab control by hand.) 23 Sep 96 D. Wellstood -- There are now file masks specified for the file open dialogs brought up by the browse buttons on the target view property sheets 19 Sep 96 ckirie -- [PT-340844] Updated the WProcess sample to keep it from crashing if you closed the sample while the NOTEPAD process was still running. (The sample doesn't let you close it). -- Previously, if you checked out a file, then undid the checkout without making changes to the file, Optima++ would not prompt you to check out the file when you made subsequent changes. Now it does. -- Optimized the code that is run when you close an editor to stop checking if the file has changed sooner. -- Fixed a bug that caused Optima++ to crash if you caused a file to be checked out by typing in an code editor. The bug was restricted to the case where your local copy of the file was different from the latest checked in version. This was related to the bug that caused Optima++ to ask you twice if you wanted to check out the file under the same circumstances. That bug has also been fixed. -- Fixed bug that caused Optima++ to crash if you loaded a project created by an older version of Optima++ and the target (WXT) file was checked in. The same bug would cause a crash if you did anything to cause the target file to be reloaded while the Files window was open. 18 Sep 96 ckirie -- (Form Wizard) F1 help for the list boxes that show options for the master/detail database dialogs now works. 16 Sep 96 ckirie -- Fixed the bug that caused duplicate items to show up in the Files window if you deleted the currently selected target. ===========================( Version 1.5 Frozen )======================== 16 Sep 96 ckirie -- Optima++ used to freeze if you added a new bitmap, cursor, or icon to a target in the Resources window that was not the 1st target listed. 16 Sep 96 ckirie -- The view windows are now updated when you do a "Get Latest Version", "Undo Checkout" or "Checkout" operation and your local copy of the file is different from the latest version. Previously, the view windows could be left pointers to classes/forms/targets that no longer existed. The symptoms were varied, but usually Optima++ would crash after the source control operation. -- Worked around the bug that kept Optima++ from reloading target (WXT) files correctly. The symptom was that the Classes window would contain no classes if you do a "Get Latest Version", "Undo Checkout" or "Checkout" operation and your local copy of the WXT file is different from the latest version. 16 Sept 96 ivan [1.5 and 2.0] -- the "Test Connection" button for non-ODBC data sources did not use options from the "Server" property page. Now it does; first, it will put up a message saying: "Test Connection will use the most recently applied property values. Would you like to apply outstanding property changes?" with a Yes/No/Cancel option. -- fixed a 256-byte buffer overrun in the saveload library 13 Sep 96 D. Wellstood [1.5 and 2.0] -- increased the size of the description field in the target wizard page where you select a target type. Before some text was being cut off. -- changed the "build process did not update ..." message to be a warning rather than an error. 11 Sep 96 D. Wellstood [1.5 and 2.0] -- Fixed bug where the wlibd DLL was loaded twice and would crash on exit if you had a project that built a library and had a target that depended on a DLL. 10 Sep 96 D. Wellstood [1.5 and 2.0] -- Fixed bug where the Optimizations page for a .cpp file in the target view would indicate that 'custom optimizations' were being used when no optimizations were being used. -- Fixed bug where changing an option on the Optimizations page for a .cpp file in the target view then selecting 'Use Default Options' would cause 2 radio buttons to be checked in the target view property sheet for that file. 09 Sept 96 ivan [1.5 and 2.0] -- Allow users to modify the class that will be used for any component. [this was not marking the form as dirty. now it does and it is on the build machine. Ported forward to 2.0] -- modified the database form wizard so that: - the grid object fits on the generated form, even in Master/Detail view - the grid is generated using WSExStaticEdge - the query is generated using WCLLocking as the concurrency level. -- the icon-setting gear had the icon sizes reversed (small icon went in the task list, large in the system menu). 07 Sept 96 ivan [1.5 ONLY, will be ported forward] -- Allow users to modify the class that will be used for any component. 04 Sept 96 ivan [2.0 and 1.5] -- Previously, if you set a form to disabled, when you reloaded, it was disabled at design-time. (similarly, transparent) -- Previously, if you deleted a form while it was selected in the object inspector, you would get a crash. -- previously, if you modified a query through the "Edit Query" or text popup menu items, the code wasn't regenerated and changes weren't reflected -- previously, the parameter wizard would mis-order pages for functions with many parameters (like the WDataWindow::Retrieve with 16 default arguments. -- Previously, if you assigned a WSocket to a socket that had already been connected, you would receive socket events twice, then three times, etc. -- removed the close event from WServerSocket as it never fires. 04 Sep 96 ckirie -- (Visual SourceSafe) For some reason, Visual SourceSafe is not always making local copies of files read-only, which was causing CheckIn and Get-Latest-Version operations to fail from Optima++'s point of view, even though to Visual SourceSafe everything is just fine. Optima++ now forces the file to be read-only. 04 Sep 96 ckirie -- Source control tweak: If you pick the "check in project" menu item, and you have an HPP file checked out, Optima++ used to tell you that you had never checked in the file (and ask if you want to check it in.) Now it just checks in the file like you'd expect. 04 Sep 96 ckirie -- Fixed the bug that prevented Optima++ from remembering which form is the main form in a target (the one that gets run initially). -- Fixed "MainForm" settings in the "Tab Control" and "WString" sample programs. Because they both had the main form incorrectly set to a tab form, neither program would run. 03 Sep 96 ckirie -- The width of the combo box on the code editor's bookmark toolbar was inadvertently not being resized when the window was resized. This bug-a-boo has been remedied. 03 Sep 96 ckirie -- (ObjectCycle) If you pick "Refresh Project" from the main Optima++ menu, the refreshed files are now marked as read-only. Previously, they were left read-write. Also, if the local copy of a file Optima++ was trying to refresh was read-only, the operation would fail (that's been fixed too). -- If you pick "Checkin Project", Optima++ now displays the name of the file it's checkin in on the status bar. -- Due to overwhelming demand, if you pick "Check in Project" from the main Optima++ menu, Optima++ will check in all the files that you currently have checked out. The new part is that Optima++ will then scan your target folders and display a list of files that _could_ be checked in, but aren't. It asks if you want to check them in right then and there. This change was made to simplify the process of checking in a new project. If you're using ObjectCycle, it can be as simple as saving the project, then picking "Check in Project". 03 Sep 96 John Dahms -- Optima would crash under NT 4.0 when the app being debugged/run terminated 30 Aug 96 ckirie -- Any dialogs that are opened by ObjectCycle or Visual Source Safe are now parented to the main Optima++ window. This prevents you from changing the source control system while the dialogs are open (which made Optima++ crash). -- Fixed the problem where Optima++ would leave backup files in the TEMPLATE\TARGETS folder if the target needed repairing (e.g. if it had been created with an older version of Optima++). Now Optima++ saves the target file if it was updated (which gets rid of the backup file). The main symptom of this problem is that you get a message telling you that "this target was not properly saved" when you create a target from that template. -- Some help IDs in the form wizard were being set before the controls were actually created. -- Fixed a long sought-after intermittent bug that caused Optima++ to crash if you changed you source control system from anything back to Generic. Many thanks to David Brandow for pointing the way. -- Fixed the bug that prevented the "Closing project, please wait" dialog that Optima++ usually shows if it takes more than about half a second to stop the compiler/linker. 30 Aug 96 John Dahms -- Messages from runtime libraries and EnterDebugger calls once again appear in a message box instead of just the debug log. 30 Aug 96 John Dahms -- When attaching to a running process, the debugger will wait for up to 5 seconds for that process to appear, before bringing up the "Choose a process to debug" dialog -- Allow double click on a process in the "Choose a process" dialog 30 Aug 96 John Dahms -- the Copy DLL option in Run Options now works if you specify a command line. 30 Aug 96 ckirie -- [PT-343474] The Files window is now refreshed if you add a file that is not directly built (e.g. *.H, *.HPP, *.TXT files). -- [PT-346232] If you pick "Check In Project" from the main Optima++ menu, the software now checks if your project needs saving and prompts you to save the project first. -- (Pro/Ent) New "FTP Client" sample 29 Aug 96 D. Wellstood -- Added a default file mask to the file dialog displayed when Optima can't find a file at load time and the user asks to try to find it. -- When the user finds a file that Optima could not be find at load time, Optima now correctly updates the project to contain the new location of the file. -- Before a background build Optima generates any files that need to be generated. For a large project this can be time consuming. Even if there is nothing to regenerate Optima may take some time to determine that all the files are up to date. Optima now displays an hour glass cursor during this wait. In a future release we will optimize the process so the wait is not so long. 29 Aug 96 danc -- Optima++ Developer no longer complains that it can't load the OPTRCS.DLL file. 29 Aug 96 ivan [2.0 and 1.5] **IMPORTANT** -- DataWindow typedefs and enums are now generated into a "NameSpace" class. This allows DataWindows to coexist with other OLE components on the form. Forms with datawindows have "PSDWELib_Types" added automatically to their list of base classes. If there is a conflict with another object, you can reference DataWindow types by explicitly scoping them (PSDWELib_Types::BORDERTYPE etc.) -- previously you couldn't close the property sheets for Classes without crashing -- updown controls didn't set the text initially, since the SetValue was generated before the SetBuddy. Further, we didn't generate SetValue if it was zero. Now both are fixed. -- Microsoft ClipArt and others would crash Optima++ because of an unintialized variable in DTOleObject -- form wizard -- "SQL SELECT" page had the picture off by one dialog unit -- BeginFetchData had the wrong event data -- now it is WBeginFetchDataEventData -- previously, you could coax Optima++ into generating bad code for menu separators by setting the NegotiateMenus property. now it is ignored for separators -- Menu items never appeared as default at run-time, only at design-time. Go figure. 28 Aug 96 John Dahms -- add error messages when service debugging fails 28 Aug 96 ckirie -- (Pro/Ent) New "HTTP Client" sample uploaded. 28 Aug 96 ckirie Source Control Bug Fixes: -- (ObjectCycle) Fixed an intermittent bug that could cause check-out, refresh, and get-latest-copy operations to fail if the stack just happened to contain the wrong bytes. The moral of this story: when calling open() with O_CREAT, don't omit the 3rd ("...") argument. 27 Aug 96 ckirie Source Control Bug Fixes: -- If Optima++ could not check out a file (for some reason), it now leaves the file as it was before you attempted to check it out. Previously, it erased the file and left you with a temporary file (usually has extension .?AA). -- If you checkout a number of files at once from the Files window, there used to be a possibility that Optima++ would start checking out the wrong files. This has been fixed. -- If you check out a file, then undo the checkout without actually changing the file, Optima++ no longer reloads the file (since nothing has changed). 27 Aug 96 D. Wellstood -- Fixed bug where Optima would GPF if you set any options on the target view property sheets. 27 Aug 96 ckirie Bug Fixes: -- Fixed a bug that caused Optima++ to crash if you tried to open the context menu for a spot on the component palette that doesn't have a component under it. -- Fixed the bug that caused Optima++ to save the target file when any of the files in the target needed saving. Now it saves the target file only when the target file actually needs it. If you had source control turned on, this bug used to cause Optima++ to unnecessarily prompt you to check out the target file if you made a change to one of the target's files. -- Fixed the bug that caused the resource (WXR) file to be saved out whenever the target (WXT) file had to be saved. The WXR file is now saved only as required. -- The user settings (WXU) file is now written out only when you explicitly save your projects. It used to be written out every time Optima++ checkpointed your project files. This should speed up the edit-build-run turnaround time a bit. -- Fixed a typo in the About box for the "First Impression" sample program. 26 Aug 96 ckirie Bug Fixes: -- Fixed the bug that prevented output from going to the Debug Log for loaded projects. Sample Programs: -- New "HTML Client" (Pro/Ent) Uses NetManage's HTML OCX -- Fixed "Masked Text Box" to be more user friendly (thanks Darwin) 26 Aug 96 ckirie Bug Fixes: -- Fixed a fix I made last week to mark the target file as dirty if the "main form" tag was missing from its target file. This turned out to be a poor idea especially if the target was a DLL and contained no forms (the WXT file was always marked dirty, which was stupid.) 26 Aug 96 John Dahms -- bug fix: if you set a breakpoint then did anything that would cause generated file names to change, the breakpoint would get messed up 26 Aug 96 ckirie Bug Fixes: -- [PT-346103] (ObjectCycle only) "Refresh Target" used to overwrite files that you had currently checked out and not refresh ones you hadn't (it was backwards.) -- If you pick "Refresh Target" from the Files window and your project contains unsaved changes, Optima++ now offers to save the changes. -- The WFilePath sample in v1.5 had the main form (incorrectly) set to a tab control page which prevented the sample from running. The main form is now set correctly. 26 Aug 96 John Dahms [1.5 and 2.0] -- added code that checks which DLLs an optima EXE relies on when downloading to the remote machine. It got very painful when Optima decided to download wcmdda10.dll, wcmdda15.dll, wcmdda20.dll, wcmpda10.dll, etc, etc -- Made a fix to the TCP/IP downloading code that sped it up by a factor of about 8. -- fixed painting problems in locals/watches window when the name field was too narrow. 23 Aug 96 ckirie Bug Fixes: -- [PT-342833] If you edit the precompiled header file for the first time, the Files window will now be updated. Previously, it still showed the shortcut to the shared header file. -- If you pick "Refresh Project" from the main Optima++ window, Optima++ now skips the files you currently have checked out. Previously, it refreshed them anyway (bad). If Optima++ can't tell if a file is checked out, it will ask. The same bug fix applies to picking "Get Latest Version" from the Files window. -- Fixed the bug that kept the file from being checked in if you checked in a file from the Files window, but you hadn't saved the project. -- Fixed the bug that caused Optima++ to emit bad RC files for projects that contained more than one targets that were not in subfolders of whereever the project file was. New Samples: -- "First Impression" (Pro/Ent) 22 Aug 96 ivan [2.0 only and 1.5] -- removed colour property pages for column headings as the colours are ignored -- split the MaskedTextBox property pages into General and Formatting -- previously, deleting a menu with the editor open crashed. -- "PasswordCharacter" property for text boxes now displays as '*' if the character is printable, otherwise a number (before, it always printed ascii values). If you try to set the password character by just typing * (no quotes), now it is accepted. Same for PromptCharacter of the masked text box. -- new when you delete a menu component with an open menu editor, we don't crash -- for VisualSpeller and other invisible-at-runtime compnonents, default to UseObjectExtents == TRUE so they look better -- now defer WSMaximize, WSMinimize, and WSSytemMenu; previously, setting maximize or minimize would change it at DT; turning off system menu would make it hard to close the form. -- now, commit editors when we copy to clipboard or to a template. previously, uncommited changes weren't saved. -- removed text property for masked textbox from the property sheet [PT-347051] MDI targets did not build [PT-347079] when saving to template or clipboard, weren't comitting [PT-338198] you could turn off visible for MDI children but it did nothing [PT-343664] removed mask textbox text property from property sheets [PT-344318] minimizing or maximizing a form at DT caused it to be the minimized/maximized size at RT. [PT-347280] if you had a non-standard font autosize didn't work [PT-347447] on the Server page of WTransaction, the LoginPassword now uses a password character. 22 Aug 96 ckirie Bug Fixes: -- Modified the recently added gear that checks the time stamps of generated files against that of the source WXF/WXC file. Optima++ now forces a file to be regenerated if its date is later than the WXF/WXC file. This still catches the case where you do a build on August 15, then refresh the August 8 copy of the WXF file (ie. Optima++ will force the CPP/HPP/RC files to be regenerated). New Samples: -- "Grid and Database" (Dev/Pro/Ent) -- "Formula One" (Pro/Ent) 22 Aug 96 ckirie Bug Fixes: -- Fixed the bug that caused the main Optima++ window to get the focus if you press CTRL+K in an editor to rebuild the file. Now the editor keeps the focus once the build status dialog closes. -- When you open the context menu in the Files window by pressing Shift+F10, the menu items are now correctly enabled and the popup menu is positioned near the first selected item. -- Added a separator before the source control items in the Files menu on the main Optima++ window. -- [PT-340507] The source control items in the main Optima++ Files menu are now enabled correctly. Internal Changes: -- Fixed FileUtil::IsValidPath() to work even under NT (thanks, John). 21 Aug 96 ckirie Source Control Bug Fixes: -- If you get the latest version of a file with ObjectCycle, the local copy of the file is now made read-only (and you get the lock icon in the Files window.) Previously it was not. -- Fixed an intermittent problem with the ObjectCycle support. Previously, source control operations would fail for a file if its name ever changed case anywhere within Optima++. We now force the names of all files stored in ObjectCycle to be lower case. -- Fixed a problem with our ObjectCycle support when your project has more than 1 targets. The symptom was that doing a "Refresh Project" could sometimes give you a message of the form "Optima++ could not refresh [targetName]" where [targetName] was the target name (e.g. "cube.exe" or "3dlib.lib"). -- "Refresh Project" now prompts you to save any uncommitted changes before it does the refresh. 21 Aug 96 General Bug Fixes: -- When saving a target as a template from the Targets window, the project (.WXP) file, the user settings (.WXU) file, and the shortcut to the WPCH.HPP file are no longer saved in the template (they're not needed.) -- Fixed a bug that caused Optima++ to crash at location 0x0009 if you had opened the Targets window, then had closed it (or if you had loaded a project in which you had previously done this), then did something that made Optima++ want to update the Targets window (which was no longer there). This evil bug could correspond to any number of UI actions. -- Fixed the bug that caused the default event handler prototypes for APPLIC.WXC to be reemitted every time you loaded certain targets. The symptom was that Optima++ would rebuild APPLIC.OBJ every time you loaded a project that was missing the "MainForm" tag in its target file. -- Fixed the bug that caused a crash if you picked "New/File" from the main Optima++ window and you didn't select a target, and your project contained more than one target. Source Control Bug Fixes: -- If you're using the Generic or RCS source control systems, the lock indicator in the Files window will now show up if the file is read-only. Previously, no lock indicators ever showed up. -- If you undo a checkout with ObjectCycle, the local copy of the file is now made read-only (and you get the lock icon in the Files window.) Previously it was not. -- Previously, Optima++ would try to disconnect from ObjectCycle a number of times with a null session handle. While there were no specific symptoms, this was probably not a good thing to do. -- If you checkout or undo a checkout or get the latest version for a file that is not a WXF, WXC, WXR, WXT, or WXP file, Optima++ now just does lets the operation go ahead. Previously, it gave you a nasty and unnecessary warning that it couldn't do whatever you asked and told you to close the project and to do it yourself. -- If an "undo checkout" operation fails, Optima++ now cleans up the temporary files and restores the files to their state immediately before you tried to undo the checkout. 21 Aug 96 Source Control Bug Fixes: -- Generated CPP/HPP/RC files now have the same timestamp as their source WXF/WXC files. This was done to fix the problem where files were not being regenertated if you had to refresh a file from outside Optima++. -- Fixed a typo in the message that starts "Optima++ [cannot] undo the checkout operation for ..." -- If you have read-only files that you have modified but have not checked out, and Optima++ checkpoints the project, you are no longer nagged about the files. You _are_ nagged when you do a full save of the project. -- If your project contains more than one read-only file that you have modified but have not checked out, the dialog that reminds you about this condition now lists the file names correctly. Previously, the same file name was displayed multiple times. General: -- If the timestamp on a WXF file does not match that for the generated CPP/HPP/RC files, the output files are regenerated anyway. -- Fixed the Error log window so that it doesn't keep making itself visible every time you run (unless you have errors). -- Fixed the dialog used by the "Clean" item in the main Optima++ menu to force the vertical scroll bar to appear. For some reason, the style to do that was being lost when the dialog was created. 19 Aug 96 ivan [2.0 only and 1.5] -- modified WDataObj.hpp so that CopyOnWrite and NullValue should be acquired; -- modified wwwindow.hpp so should SystemKeyDown is recognized -- now hide WGridTextBox, WGridComboBox, WGridMaskedTextBox, and WICursorProxyBase -- include dtwcent and dtwcpro in the docdll.dll build -- copy the dtwcent.??h and dtwcpro.??h to lexlib\doc -- the objects view was using the wrong images; now it uses MetaObject::GetIcon, the same as the tab-stop editor. -- if you turned off asynchronous, it would come back if you re-loaded the project [JS-220] Up to now, you couldn't set the selected range for a slider unless you turned on EnableSelRange; now it should work if you set the range then the style. [PT-340544] the tab order was wrong on the "Connect" page of the transaction object's property sheet [PT-338843] Progress bar used to revert to 50% if you set it to 0%, saved and loaded. [PT-329403] previously, we ignored the return value of the user's Create and Destroy event handlers for forms. Now they are returned from the generated base event handler. [PT-339939] Previously, if the "Snap To Grid" option was off, then "Shift+cursor key" would move by 4 pixels. now it moves by one DLU. [PT-338843] Previously, if you set the position of a progress bar to zero, it would zip back up to fifty when you reloaded the project. [PT-331827] If you instantiated a template that lined up with the original object in either the horizontal or vertical direction, the template was pasted over top of the original. 16 Aug 96 John Dahms [1.5] -- Allow breakpoints in dynamically loaded (LoadLibrary) DLLs (changes back-ported from 2.0) 16 Aug 96 John Dahms [1.5 and 2.0] -- fixed a bug that would not let you set a breakpoint in an EXE if there was also a DLL in the project. The EXE's target name ended up as g:\optima\projects\TheDLL\..\TheEXE\TheEXE.wxt. The ..\TheEXE confused the debugger. 14 Aug 96 ivan [1.5 and 2.0] -- dtwcpro and dtwcent were linking against the production wclass. changed to use the debug wclass -- generated Ole dt- dll's were using the pro wclass -- changed to the debug .dll's. -- previously, if you had a multi-targeted project, forms would only have the correct title in the Window menu if they were in the current target. now they always show the right title. -- previously, OLE objects did not work in forms in .dll's -- previously, OLE objects on separate forms could duplicate resource id's (commonly, 100). Now they use text-based id's and won't duplicate 13 Aug 96 New Sample Programs: -- VisualSpeller Updated Samples: -- Animation: The text in the about box was updated and the form is now resizable. -- Combo box: The proper icon has been restored. It had been lost just before releasing v1.0 (I think). -- Dialog Hooks: The sample now works under WinNT. Previously, the "customized" file open dialog was not customized at all. -- Debugging: The TimeFunction() class now uses WTimer::GetTickCount() rather than the less accurate clock() function. -- MDI: Fixed a big honking memory leak if you closed the program while multiple child windows were still lurking about. Also fixed the caption text of the child windows to be ever increasing ("Child 1", "Child 2", etc.) even if you close one of the lower numbered windows. Updated Templates: -- MDI: The old one leaked memory and didn't work worth beans. I don't want to embarass myself by being more specific. 13 Aug 96 ckirie Bug Fixes: -- If you load a v1.0/1.1 project whose user settings file has entries for invisible view windows, the view windows are now deleted when the project is loaded. Previously, they lurked around but were invisible. -- Optima++ no longer writes out absolute paths for targets in the WXT/WXU files. A recent change had inspired it to do so. -- Fixed the problem where Optima++ would refuse to acknowledge that the project file needed saving if you loaded a project but then had to tell Optima++ where the target was because it had moved. New Sample Programs: -- "Masked Text Box", "Masked Text Box and Database" -- "Grid", "Grid and Database" 09 Aug 96 ckirie Bug Fixes: -- When using PVCS, you're no longer prompted to enter a checkin message -- When using PVCS, you can now check in files. A typo in the OPT_PVCS.BAT file prevented that from working. -- The locked/unlock state indicators in the Files window were not working for PVCS-controlled files. Now they are. 08 Aug 96 djp -- Added non-text Intersolv drivers (Oracle, Sybase 10, etc.). 08 Aug 96 ckirie Bug Fixes: -- Optima++ now stops background building when you tell it to save your project (previously the engine was stopped only when you did as Save As operation). This fixes the problem where saving would very occasionally fail if a CPP file was being built when you saved the project. -- Fixed the Save As problem with console applications where you'd get a spurious dialog asking if it was ok to replace MAIN.CPP with some other MAIN.CPP with the same size and date. You would also run into this problem when creating a new console target from a template. -- Fixed a bug that always disabled background building after you did a Save As. -- The "Closing/saving project please wait" prompt only comes up if it takes more than about 1/2 second to stop any background builds before actually performing the close/save operation. -- Changed the edition string (Developer/Professional/Enterprise) in the splash window to uppercase to match all the other Powersoft products. -- Previously, adding a new icon, cursor, or bitmap file from the Resources window would not cause the Files window to be updated. Now it is. 08 Aug 96 ckirie Bug Fixes: -- If you load a resource file that does not contain a version info resource, Optima++ no longer generates bogus .RC files. 08 Aug 96 ckirie Bug Fixes: -- The auto-checkout feature now works for forms under Windows NT and Windows 95 (even if you install the Plus! pack and turn on the option to show windows as you move them). -- If you open a project that has no user settings (WXU) file, the main form is made visible by default. This was the v1.1 behavior which I broke recently. -- You are now automatically disconnected from your source control system when you close a project. This means that if you're using Visual SourceSafe or ObjectCycle that you will get another chance to log on (to select a different project). -- Beefed up error reporting for the SCC interface (Visual SourceSafe). 02 Aug 96 ckirie New Features: -- We now support Project & Target refreshes for any source control system that supports SCC. This includes Visual SourceSafe, MKS Source Integrity, and (I think) PVCS. Bug Fixes: -- Target folder refreshes were not causing the forms/classes to be reloaded. Now they are. -- Files under ObjectCycle control are now time stamped to match the date/time in the ObjectCycle database. -- When you get the latest version or un-checkout a file from the Files window, the file's displayed size & time are now updated. 02 Aug 96 ckirie New Features: -- "Refresh Project" item has been added to the main Optima++ window in the "File" menu. It refreshes all files in all target folders with the most recent version. (It does not change any files that you currently have checked out.) This feature is currently supported only for ObjectCycle, but I'm going to add it to the others RSN. -- New "Refresh Target" item in the File menu of the Files window. It refreshes files for the selected target. Same notes from above apply. Bug Fixes: -- If you use PVCS, RCS, or Generic source control systems, you will be able to use them under NT now. Previously, Optima++ always complained that it could not find the needed batch files. Also, the processing is faster under NT for these systems because Optima++ uses the command processor specified in the COMSPEC environment variable rather than using COMMAND.COM all the time. -- If, when you open a project, Optima++ can't find one of the target files and you elect to find it, the "Find Target File" dialog now actually lists the target files in the file list. Previously it did not. 01 Aug 96 ckirie Bug Fixes: -- You can now checkout target (WXT) and project (WXP) files while the project is loaded even if (this is the new bit) the local copy of the file doesn't match the latest checked in version. -- Drew some new bitmaps for database dialogs in the Form wizard. 01 Aug 96 ckirie New Features: -- Added the following RCS actions to the Files window: "Get Latest Version" -- Refresh the file "Undo Checkout" -- Unlock the file and replace it the latest version. Bug Fixes: -- You can now checkout form (WXF) and class (WXC) files while the target is loaded even if (this is the new bit) the local copy of the file doesn't match the latest checked in version. -- The developer edition no longer whines about a missing OPTRCS.DLL file if you have a registry entry left over from a previous installation of the Professional or Enterprise editions. -- Fixed a bug that sometimes caused Optima++ to crash when building projects. It was noticed only when using the command line switches to load and build. -- You can now check in multiple files at once. Previously, Optima++ would try to check the same file in over and over again. Which was probably not what you wanted. -- Our SCC support was not reporting the status of files that the service provider didn't know about or that were deleted. Now the status is reported correctly. -- Checkout was broken for SCC. Fixed. -- Previously, the userid, project path, aux project path and project name were not being stored in the registry for SCC systems. Now they are. -- Checkin for SCC now explicitly checks whether a file needs to be added to the SCC (as opposed to just checking it in). Previously, we relied on a return code to tell us which even SourceSafe didn't bother to return. Internal changes: -- Taught form and class files to reload themselves. -- Moved the target save/load code out of the Project class into the TargetInfo class where it has always belonged. 31 July 96 David Tian [1.5 and 2.0] -- Taught the setup program to recognize user's previous installed version of Optima and extract information from it. ie. It can pickup the user name, company name and all the install paths. -- If the previous installed version is older/different, setup program recommends the user to uninstall previous version first. 31 July 96 D. Wellstood [1.5 and 2.0] -- fixed bug where Optima would generate bad linker command files (.lmd) after you modified certain linker options. The generated .lmd files would contain too many oplib statements that would cause the linker to generate an error. They would also list the enterprise wclass library twice and not specify the professional wclass library 30 July 96 D. Wellstood [1.5 and 2.0] -- made config file changes support the Win32 SDK -- existing projects will be updated with these changes as they are loaded 29 July 96 ivan [1.5 and 2.0] -- previously, if you made modifications to any managed classes after doing a save-as, subsequent saves would silently fail -- added error messages if there are errors loading or saving managed classes -- changed reference card categories on datawindow -- now strip out leading spaces when building the reference card -- WToolBar showed up on the 1.5 component palette by accident. removed it. 29 Jul 96 ckirie Bug Fixes: -- Removed the old command line oriented Visual SourceSafe interface from OPTRCS.DLL. We no longer use the OPT_VSS.BAT file. -- Fixed the bug that disabled the auto-checkout feature for a file after you checked it in. -- If you have source control turned on, and make changes to form, class, target, resource, or project files without checking them out, Optima++ will now remind you that these changes are not going to be saved when you save the project. For code files, you are also warned when you close the editor. The warning dialog gives you the option of checking the files out now and then saving your changes. Internal changes: -- There's a new function on Project called ListFiles() which returns a vector of GenFile pointers, representing all the files the front end knows about. 27 Jul 96 djp -- PB DataWindow samples added to install. 26 Jul 96 ckirie New features: -- You can now checkout Optima++ resource files (WXR) even if the local copy does not match the latest checked in copy. -- The auto-checkout feature now works for file that are not directly built (eg. .HPP/.TXT files) Bug Fixes: -- The RCS support had been broken for those systems that use a batch file (Generic, PVCS, RCS) -- checkout didn't work. It's fixed. -- Non-generated code files now appear read-write in the editor. They used to be inadvertently shown as read-only. -- Got rid of the special "temp dir" erasing code and used the same folder deleting code the rest of Optima++ uses. This fixes the problem where Optima++ couldn't delete read-only files from temp directories. -- Fixed the bug that caused Optima++ to crash if you opened the Resources window, opened/created a new project, then tried to add a new image from the Resources window. -- Removed a duplicate Close event handler from the base View class. While no longer causing any actual harm, it was incorrect nonetheless. -- When you delete an image from the Resources window, you are asked to confirm the deletion of the selected files. Previously, the image gallery hid the selection when the prompt was up so you couldn't tell which files you were about to delete. Now the gallery keeps the selection even when the prompt is up. 25 Jul 96 ckirie User Interface changes: -- The checked in/checked out indicator is now displayed for all source control systems in the Files window. -- The "Check in" and "Check out" items in the Files window context menu have been moved from a sub menu into the main part of the context menu. -- There is a new menu item on the main Optima++ window called "Check In Project" which checks in any project files that are currently out. It does not not check in anything which you have not previously checked out. It's just a convenience feature that saves you from selecting files in the Files window and checking them in. -- (ObjectCycle & SCC) The login dialog is now defered until you open or create a project. Previously, the login dialog came up shortly after the splash window. -- If you try to check in a file while there are still unsaved changes, you are asked if it's ok to save the project (and then check out the file). Source Code Control: -- We can now use any source control system that supports Microsoft's Common Source Code Control interface (this include Visual SourceSafe.) -- You can now check out codefiles even if the check out operation causes you to get a newer copy of the code file (ie. the design environment now updates its in-memory information about the file). -- Taught the rest of the source control systems to tell if a file is currently checked out or not. -- Previously, if you changed the Source Control System settings, they wouldn't take effect until you restarted Optima++. Now the changes take effect immediately. -- Fixed a bug in the OPTRCS.DLL that prevented checkin/out from working with Visual SourceSafe if the current directory was not the one that contained the source files. -- Fixed a bug in the "Source Control Options" dialog that kept the check boxes from being correctly enableded when the dialog was opened. -- ObjectCycle logon dialog -- Pressing ESC now closes the dialog (same as pressing Cancel) -- The project name you type in the ObjectCycle logon dialog is no longer ignored. (It had been hardcoded to be "Optima"). If you leave the field blank, ObjectCycle will use the default project for your userid. -- If ObjectCycle won't let you log on because the values you typed in were no good, Optima++ reopens this dialog to give you another chance. -- You can now leave the Server field blank (means use the local server). -- Changed the order of the fields to match those in the PowerBuilder & ObjectCycle logon dialogs. Files window: -- Fixed the Files window so that it doesn't crash or get duplicate items when refreshed. The problem arose as a result of a WClass change and did not occur in v1.5 or earlier. -- If a file becomes checked out by the auto-checkout mechanism, and the Files window is open, the checked in/out indicator for that file is now updated. -- Sped up the gear that updates information for a given file (this is called every time a file gets built if the Files window is open.) Bug fixes: -- If you try to save a target in a folder which contains read-only files, Optima++ used to complain that it couldn't erase the folder. Now Optima++ saves the target successfully. 22 Jul 96 DTian -- changed the setup.rul of Run Time Environment to accout for disk Cluster size. 22 Jul 96 DTian -- Added the Win32SDK files to 1.5 and 2.0 Pro and Ent in setup.rul as well as the Win32 SDK Help icon. ( Know problem: SdComponentDialog2() does not update correctly ) -- Some minor bug fixes in setup.rul 20 Jul 96 DanP -- fixed a bad bug that's always been in the Optima code, but random luck made the compiler generate code which happened to just work. Added new variant of 'PostLexusCallBack' which accepts a function which takes NO parms (we were passing parmless functions, which were then being called with a parm). Hit many calls to PostLexusCallBack. 19 Jul 96 D. Wellstood -- The resource compiler know automatically uses the current code page to convert text in resources to unicode. 19 Jul 96 ckirie Files Window -- If a file is checked in or checked out, an extra icon appears to the left of the file's icon to show its state (in or out). Files that have never been checked in have a blank icon. If you do not have source code control (SCC) enabled, you get no extra icons. If you are using a SCC system that can't tell you whether or not a given file is checked in or out, you don't get any icons. Currently only ObjectCycle can provide this information. -- Fixed the problem where the source code control items in the context menu were not always enabled correctly. -- If you try to delete a read-only file, Optima++ now tells you so, and asks if it's really OK to go ahead and delete it. Optima++ can now delete read-only files, too. Previously, it just failed without any error messages. Other: -- Fixed the WASSERTion you'd sometimes get when opening the Source Control Options dialog. It was harmless but alarming. 18 Jul 96 ckirie ObjectCycle Support -- The ObjectCycle support has been completely rewritten. We no longer use the OCHOOK.DLL from the Watcom C 11.0. Instead we use a new DLL called OPTOC.DLL. Now I can start documenting everything. Optima developers take note: OPTOC.DLL is built when you run WMAKE in the LEXUS\OPTRCS folder. To do this, you will have to add a new variable to your MAKEINIT called "ocsdk" which is the full path to your local copy of the ObjectCycle SDK. To get the SDK, refresh the "ObjCycle" project (it's on the network in GROUPDIR\CPROJ). If you don't regularly build OPTOC.DLL or OPTRCS.DLL, don't worry -- the build machines will make these DLLs and put them in your LEXLIB tree. 16 Jul 96 ckirie Bug Fixes: General: -- Pressing F2 in an editor to jump to a called function's code now works if you're calling event handlers. -- If you rename a target file outside of Optima, then load a project, Optima prompts you to find the target file. Optima now remembers the new name/location of the target file (previously it did not). -- Fixed a typo in the can't-checkout-because-the-file-has-been-changed- since-you-last-refreshed message. -- Optima now works with Object Cycle again. Support had been broken because of changes to OCHOOK.DLL. Our Object cycle support is still "poor" to just plain "bad", something I hope to remedy in the coming days. OCHOOK.DLL: -- The code that retrieves error messages from ObjectCycle now works. Previously it caused the application to crash. -- Fixed a number of occurances where the message box caption and its content text were swapped for error messages. -- This DLL now uses the C runtime library DLLs -- If you enter bad information in the logon dialog, the dialog no longer closes (ie. you get another chance in case you simply mis- typed something). -- The OCInit() function now returns 1 if the logon was successful and 0 otherwise. Previously, it always returned 1 which caused all subsequent Checkin/Checkout operations to fail without any explanation if the logon actually failed. -- Added the "run win=4.0" option to the linker command only if the "lexlib_dir" variable is defined (ie. only if building for Optima). This makes sure the dialogs have the correct 3d look under Win95/NT. -- Fixed the bug where checking out a file wouldn't actually write out the file if the file didn't already exist. -- The OCCheckIn() function no longer ignores the object name parameter. Previously it did. -- The CheckIn dialog no longer ignores the contents of the "Comments" field. Previously it did. -- Removed (commented out) the unused "Locked" check box in the CheckIn dialog. 12 July 96 ckirie -- Cleaning a project now stops any background build activity before doing the actual cleaning. This fixes a problem where the clean would fail with a message like "Could not delete file xxxx". 11 July 96 ckirie -- If you close a project after closing a view window, that window will no longer be created the next time you load the project. Previously, the window was created, but invisible. -- Optima now prompts you to save outstanding changes if you try to shut down Windows (or log in as a different user) while Optima is still running. 11 July 96 ivan [2.0 and 1.5] -- previously, changing form properties would kill any combo boxes on the form. 10 July 96 ckirie -- Fixed the bug that prevented checkin/checkout operations from working for the following RCS systems if the full path to the Optima system folder contained a space: Generic, Watcom, PVCS, MKS RCS, and Visual Source Safe. 09 July 96 ckirie -- When pasting objects or instantiating an object template, the view windows are now refilled only once after the operation has finished. Previously, they were updated after each object was pasted which lead to a lot of flickering (and delay) if you were pasting more than one object. -- Fixed a memory leak from loading the CPP file prefix, HPP file prefix, Class contents, and Generated class contents for managed classes. Internal Changes: -- The WTimeFunction() & WMarkTime() macros now use the Windows high performace timer rather than GetTickCount(). The numbers you get back should now be more accurate than before. 08 July 96 ivan [1.1 and 1.5] -- Initial DT-support for native Transaction - if dtwcent.dll is installed, you are offered more choices than ODBC for DBMSName - generate a WNativeTransaction for non-ODBC DBMS's - stil to come: disable controls on the server page for non-ODBC - change property inspector to offer a drop down instead of a textbox for ODBC 08 July 96 ckirie -- Previously, the "Copy files" checkbox in the "Add Files" dialog had been ignored under NT. Now Optima pays attention. 07 July 96 ivan [1.1 and 1.5] -- Native DataWindow support: - modified SetEventHandlerList to pass in EventDispID as user data - added reference card categories (just *Methods and *Properties) -- picking an icon for a form now sets both small and large sizes -- previously, when you changed a combo box from drop down to simple then back to drop down, it would hide the drop down button. -- now when you have scroll bars on a simple combo box, they show up at design time if there are enough items -- transaction and query objects now call RemoveObject in the form's destroy event; this fixes a problem where opening a form and closing it would cause a crash on the second open. -- progress bar now defaults to 50 at design- and run-time. -- the tab control editor now uses monochrome bitmaps for its picture buttons. -- crufty menuedit.* was removed from the lexus.res file. the menu editor lives in dtwclass. -- now pressing F1 from the object inspector brings up help on the selected property or event -- pressing F1 in the Form Painter opens help on the active object. if none are selected, help on the form is displayed. -- previously, double clicking on the text area of a property in the object inspector would not apply the property change, although the new property was listed in the inspector -- previously if you had multiple objects selected and pressed an arrow key, nothing would happen unless one of them was active; in that case, only the active object was unselected. now, if any objects are selected you can press arrow keys to move the selection, and all objects are unselected first. -- previously, the form did not repaint when you changed the grid size or visibility. -- the column names in the drop down on the database page are now quoted if they contain non-identifier characters; previously, they were only quoted in the column dialog box. -- now we show an hourglass cursor when we are filling or refilling the reference card find page -- modified the text in the hint lines to be more conformant with the Window's help that it mimics: - ensure that all lines have a mnemnonic - ensure all lines are of the form "1. " (ie. two spaces) - ensure all lines end in "." - change "Pick a function to call" to "&Select a property or method to call." 05 July 96 Dave Wellstood -- when a target is running, the "most recently used" list of projects in the file menu is now disabled. You cannot load a new project while a current project is running. -- targets are now marked as dirty when the 'use default options' menu item is selected in the target view -- fixed bug where multi-target projects got more "TargetTwinFilesName" entries in their .wxt files each time the project was saved -- added gear to remove extra "TargetTwinFilesName" entries, caused by the above bug from existing targets -- fixed bug where the "twin files" list was not being loaded. This could have caused problems deleting files that represent dependent targets 05 July 96 ckirie -- Optima no longer crashes if you create a new file but do not add it to any target. -- Dragging files onto the Files window no longer causes duplicate items to show up. 05 July 96 ckirie Editor Update: -- Coalesced some registry code in GenEditor::InitGeneralEditor, removed unnecessary/redundant calls to set the status bar font, and to enable the toolbar buttons -- Defer the toolbar creation entirely if toolbars are turned off. This helps editor windows open faster. -- Sped up the toolbar creation code for editors somewhat (aprox 20%) Internal changes: -- Optima's WTimeFunction() now prints lines to the drainpipe formatted as follows: functionName( args ) { } // xxx ticks with 8 space indenting. There is also a new WMarkTime() macro that will print a debugging message showing how many milliseconds have elapsed since the function was entered. 04 July 96 D. Wellstood -- When you do a 'file build' Optima will no longer display errors generated by a different file during a previous build. 03 July 96 D. Wellstood -- Optimized the speed of adding files to a target. This increases the speed by about one third. 03 July 96 ckirie Editor Update: -- Pressing F1 is now a shortcut for opening the context menu and selecting the "Help on xxx" item. -- The accelerator for going back to the last user bookmark has been changed to Ctrl+Shift+M since its previous accelerator is commonly used for a much different function in other programs. -- Pressing F2 now takes you to the code corresponding to the function name in the selected text (or the text where the I-beam is). It is currently only available in big-edit mode. -- Fixed a typo in the editor menu where the words "Alt+Down" were run together. -- Ctrl+A is now the accelerator for "Select All", as recommended by the MSOffice style guide. -- Pressing Shift+F10 now opens the context menu (as it does in all other Windows editors/text boxes). -- New editors now pay attention to the "Show Bookmark Toolbar" setting. Previously, the toolbar was always visible for newly opened editors. -- Fixed the bug that crashed Optima if you had two small-mode editors opened, then made a change to one of them. 03 July 96 David Tian -- Change the Default install directory of SQLAny50 from C:\SQLAny50 to WINDISK\SQLAny50 02 July 96 ckirie -- Some of the UI controls in Optima windows had the background color hardcoded as white. This has been updated to use the system window color (WColorWhite->WColorWindow). * Bookmark drop-down combo box * View window drop-down combo boxes * Text in the Trace Log window * Icons in the Resources window 28 June 96 John Dahms -- Big Edit mode maintains a stable order for events - did it right this time (I hope) -- Changed Ins and Del accelerators in Watches window from Ins/Del to Ctrl+Ins/Ctrl+Del - Del was causing grief with in child dialogs. 28 June 96 ivan [1.1 ONLY] -- put native DataWindow OCX on the component palette 27 June 96 ckirie Files Window: -- Fixed the problem where shortcuts would show up with an incorrect image under Windows NT. -- Fixed the recently introduced problem under WinNT 3.51 where the names of files/folders were not being displayed. (It worked fine under Win95 & WinNT 4) -- Managed a speed up refreshing just a bit All View windows: -- We now process the EraseBackground event which should lead to less flicker when you resize one of the windows. 27 June 96 Geno Coschi -- the assignment operator generated for WOleDispatchHelper classes by the OLE Component Wizard now passes FALSE for the second argument of the Create() call -- methods of automation servers/OCXs that had arguments whose type was an enumeration were being passed as VT_INT arguments. This caused problems with some OCXs so they are now passed as VT_I4. -- some arguments to methods of automation servers/OCXs were being passed incorrectly with a type of VT_USERDEFINED 27 June 96 djp -- Added the tag word "Developer/Professional/Enterprise" (as appropriate) to the splash screen and about box. -- Install has changed to create a "VersionType" key in the registry marking the installation as a certain type. -- Add GetVersionType and GetVersionTypeStr functions to LRegistryKey class to find out at DT which version of Optima is installed. 26 June 96 ckirie Bug Fixes: -- Fixed the oft reported problem that the event code for pasted objects (or object templates) can contain the wrong class name in the code. The propellerheads in the crowd might be curious to know that this was fixed by substituting all occurances of the class name with a special tag. The tag is replaced with the appropriate class name when the object is pasted. Internal Machinations: -- The code to save an event/userfunction's code has been centralized in Event::SaveTheCode(). Previously, the same chunk of code appeared 4 times throughout the code. 25 June 96 John Dahms -- Big Edit mode maintains a stable order for events, rather than adding new events at the end. 25 June 96 David Tian Bug Fixes -- Installation of Optima 1.5 and 1.1 now takes cluster size of a FAT Drive into account when computing space required for setup. So the users are warned beforehand, not during the install. -- In the custom Dialog, do a BACK, then NEXT, the dialog will display properly. 25 June 96 ckirie Bug Fixes: -- Fixed a bug in the backup file code that prevented backup files from being deleted in multiple-target projects. The bug affected only those files that were not in the same folder as the project file. -- Fixed another bug in the backup file logic that prevented any warnings about backup files if you were loading a multiple target project and the first target did NOT contain any backup files. -- Optima now blocks attempts to rename objects to the empty string. -- Fixed a bug in the backup file reverting gear that prevented files from ever being reverted propertly (files are reverted if you load a project with backup files and then tell Optima that you do NOT want to recover the unsaved changes). 25 June 96 ckirie Bug Fixes: -- Burped the code that adds files to existing projects. It should be 20% - 50% faster, depending on how many files are already in the target. It is still pokey. -- Optima now displays a status window while adding files to an existing target. If we can't make it faster, at least it gives you something to look at. -- Changed the internal WTimeFunction() to use ::GetTickCount() which returns a more precice time than the CLibrary clock() function. 24 June 96 David Brandow Bug Fixes: -- Component palette now resizes when an item is added to it 24 June 96 ckirie Bug Fixes: -- You can now create a casting operator as a user function for a managed class. Previously, you'd get a message complaining that the operator's return type was not a valid operator. -- Fixed the function renaming code for managed classes so that you can now rename functions for which you have specified default arguments. For example, you can now rename: WBool clearAll( WObject *source = NULL, WEventData *event = NULL ); 21 June 96 Dave Wellstood -- Exposed more detailed optimization choices in the target view property sheets in the Professional and Enterprise versions of Optima. 21 June 96 ckirie User Interface Changes: -- The "Add File" dialog now contains a check box that says whether the files should be copied to the target folder. The box is checked by default, which is the version 1.0 behavior. Bug Fixes: -- [PT-314285] The Debug Log options dialog is no longer parented to the log window. This works around the problem that you can't see the whole dialog if the log window has "Always on Top" turned on. -- If you load a project, the "Always on Top" menu item is now checked if the window was always-on-top when you last closed the project. (The Always on Top setting was being restored correctly, but the menu item just wasn't being checked.) 20 June 96 ckirie -- Editing the code for the Application class no longer crashes Optima if you have the bookmark toolbar turned on and have elected to view read-only code. -- Fixed the bug that prevented the project file from being written out if you were doing a Save-As operation and the project file happened to be read-only. -- Fixed the recently introduced crash that happened if you picked "Add File" from the Files window without first clicking on an item in the tree view. -- Updated the error message you get if you drag some file onto a form painter. It now contains the correct product name. -- If you edit a read-only bitmap, icon, or cursor file, Optima now asks if you want to check them out (given that RCS support is turned on). 20 June 96 Geno Coschi -- fixed a problem where specifying a prefix in the OLE component wizard caused compilation errors during component generation -- generation of dual interface classes were missing the __stdcall attribute -- the return type of OLE methods that returned pointers to dispatch interfaces were incorrectly typed -- types of arguments and methods that were dispatch interfaces now use the dual class in the type if the dispatch interface is dual -- OLE component wizard was not listing all type libraries 20 June 96 ckirie User Interface changes: -- Sped up refreshing the Files window. Filling the file list is now done on a separate thread. -- The Files window now displays the number of objects (files/folders) and their combined size in the status bar. -- The dates and times are now formatted according to the default local date/time format. -- Clicking on column headings in detail layout now sorts the file list using that column as the sorting key. Click on the same heading again to sort in the opposite direction. Under the hood: -- Plugged a memory leak in the files window that prevented the C-library opendir() buffer from being deallocated. This leak happened every time the window was refilled. 12 June 95 djp - changed CTL-UP CTL-DOWN behaviour slightly to be more useful and understandable (match brace up and down). 12 June 96 gchow -- The event manager is not notified when a code file is added to the non-building code file list. This shortens the time it takes to open an editor window for a code file. 07 June 96 D. Wellstood -- Optimized the build engine GetFileObject function. It should run at least twice as fast now. This should be a big win for large projects -- I now start a background build when a project is loaded, a build macro is changed or build options are changed 07 June 96 ckirie RCS Support: -- If Optima can't load the ObjectCycle interface DLL, it now tells you why it can't load it. -- Fixed some problems that prevented the login dialog from being displayed when using ObjectCycle. 06 June 96 ckirie RCS Support changes: -- [PT-318761] Resources window, version information pane: if you scroll the list view while the editing text box is open, the text box is now closed automatically. 05 June 96 ckirie RCS Support changes: -- Added (batch file) support for Microsoft's Visual Source Safe -- If you try to checkout a file for which changes have been made since you got your copy of the file, Optima will refuse to check it out, and will tell you to close Optima, check the file out, then reload the project. This is a workaround for the situation where checking out a file actually brings down a new version which is out of sync with the in-memory copy of the file. -- Added "Source Controls Options" to the Options menu in the main Optima window. From here you can turn off the source control console window & the prompting at the end of each command. You also go here to tell Optima what kind of source control system you want to use (no more mucking around in REGEDIT). -- You check out a file from Optima, check it back in, then try to change it, Optima will now ask if you to check it out the second time. -- The RCS menu items now appear in the context menu of the Files window (in addition to that window's menu bar). Bug Fixes: -- User-defined resources are now displayed for loaded projects. Previously, they were not, and they also had a tendancy to be removed from targets. -- Previously, if you tried to create a new file using the name of an existing file, Optima would crash. Instead, it warns you that the file exists and asks if you really want to overwrite it. -- If you add a new class to a project but enter an illegal class name, Optima now alerts the user and refuses to accept the class name. Previously, it would accept the name and as a result, emit bad code. Under the hood: -- If a backup file is inadertently marked read-only, Optima can now delete it. Previously it did not. -- I removed the RCS-related functions from the EventManager class. They were never being called. -- Moved the menu resources for the Files window out of VIEWMEN.MEN into FILEVW.MEN 05 June 96 ivan -- **IMPORTANT** We no longer read the CurrentVersion registry key, instead it is hardcoded into the Optima.exe. Thus you can have (at the moment) three Optima's on a machine -- 1.0, 1.1, and 1.5. In debug mode, it checks an environment variable OPTIMA_VERSION, so you can have a reference Optima (1.5Ref) and a test Optima. 05 June 96 John Dahms -- breakpoints in the CPP prefix were not being saved/loaded 30 May 96 ckirie Optima now supports the following RCS systems: MKS RCS, MKS Source Integrity, Object Cycle, PVCS, WPROJ, and generic (if you can do it from a batch file, you can edit a batch file to run whatever commands you want). Optima supports two commands: check in, and check out. It does not support: branch numbers, checkin messages, any kind of RCS administration, any kind of project concept (eg. no "refresh", no "checkall"). It does not display what files are checked out. In other words, we have the same functionality as the Watcom C/C++ IDE. To enable the support, add a new registry value in the Optima registry tree (under the appropriate version) called "RCSType". Its value must be one of: "RCS", "SourceIntegrity", "PVCS", "ObjectCycle", "Watcom", or "Generic". You must copy the following files from \LEXLIB\TOOLS\SYSTEM into your Optima system folder: OPTRCS.DLL, WSIHOOK.DLL, OPT_GEN.BAT, OPT_PVCS.BAT, OPT_RCS.BAT, OPT_WAT.BAT, and OCHOOK.DLL. When you're running Optima, and you do something that would change a read-only file, Optima will ask you if you want to check it out. You can explicitly check files in/out from the Files window; there are two new menu items there under the Files menu for doing this. This change has been made to versions 1.1 and 1.5. 24 May 96 John Dahms -- Debugger window position settings weren't being loaded from the .wxu file so the debugger didn't remember squat. 24 May 96 John Dahms -- Fixed a bug that could cause Optima to hang with the build status dialog up and saying "Starting Program..." 23 May 96 Dan Cummins -- Adjusted build numbering scheme. The build number is now a function of how many fixes have been made to the maintainence branch 21 May 96 John Dahms Bug fixes -- Optima restores itself when the application hits a breakpoint -- Errors in a breakpoint condition were not reported properly -- An error in a breakpoint "code patch" crashed Optima++ -- The breakpoint dialog took a LONG time to appear while the app was running -- Fixed a bug in enumEvents that caused it to kick out if you had a target with no forms and no managed classes. One symptom was that breakpoints wouldn't work in that target.