This Phase 1 bid is for a design specification and a prototype only.
The following description is for the complete multi phase project.
The product is a Microsoft Visual Studio 2005 Integration Package (using Visual Studio SDK) which will allow the user (a developer) to have control over the placement of code windows when opened.
Problem: Standard Visual Studio opens code windows in either a) the currently selected tab group if "Tabbed documents" is selected or b) cascading style if "Multiple documents" is selected.
Desired behavior with product installed: If "Tabbed documents" is selected then ".h" files will open in the left tab group and ".cpp" files will open in the right tab group. If "Multiple documents" is selected then ".h" files will open in the left half of the MDI workspace and ".cpp" files will be opened in the right half of the MDI workspace.
If "Tabbed documents" is selected and only 1 tab group currently exists and a .cpp file is opened then a 2nd tab group is opened the the .ccp file is opened there.
If a document other than a .h or .cpp file is opened then it will follow normal VS2005 convention, i.e. open in the current selected tab group. If "Multiple documents" and doc is a text file then open in the left as if it were a .h file. If open doc is a resource file (i.e. dialog template) then follow normal VS open window semantics, i.e. allow it to open normally.
When installed there should be an option under Tools/Options to enable/disable the feature.
There should also be an install/uninstall routine.
The completed product will include all source code and Visual Studio Solution/Project files. It should build without warning/error upon opening the solution in Visual Studio.
This Phase 1 bid is for a design specification and a prototype only.
Phase II
Phase II of the CodeWinPos project. Document management for code window placement with Tab Groups selected.
See CodeWinPos Phase I for overall project specification. Following is details for Phase II;
DocumentOpened event. If 1 tab group is open: If .h file is opened nothing special is done. It opens in the single tab group. If .cpp/.c file is opened then the .h file is opened in left tab group and then a 2nd tab group is opened for the .cpp file. If no .h file is found then the .c/.cpp is opened in the single tab group.
If 2 tab groups are open: If .h file is opened it goes to left tab group. .cpp/.c files go to 2nd tab group.
If more than 2 tab groups are open: .h and .c/.cpp files are opened in the left 2 groups as above.
The placing of the code window need only occur when the document is opened, i.e. "DocumentOpened Event". Once code documents are opened and placed appropriately they are free to be moved about the workspace as normal with VS. If/when other events occur in the VS workspace that would cause the code document(s) to be moved then they should do so;
Example: if the solution explorer is unopened or otherwise docked outside of the MDI workspace and a .h file is opened then it would be left justified in the MDI workspace. If the solution explorer is later brought into the left side of the MDI workspace then the .h file (and any others) are adjusted by VS as normal.
Phase I Status: Done.
Phase II Status: To be done. This is the current project to bid on.
Phase III: MDI Windows Management. Similar to tabbed document views as specified above but for Multiple Documents rather than tabbed. Status: Not yet bid.
Message to eBuddies: As you can see I added additional specs for Phase II. I don't think this adds more work, just further clarifying. Let me know how it looks to you. - Mike.
Uninstall removed from Phase II since it's already done in Phase I via Control Panel/Add/Remove Programs.
Phase III
CodeWinPos Phase III - the final phase of the CodeWinPos project. See CodeWinPos Phases I & II for complete specification.
Phase III implements Phase I & II functionality for "Multiple Documents" Option setting (no tab groups).
When "Multiple Documents" Option is selected .h files are opened on the "left" and .cpp/.c files are opened on the "right". Left and right are defined as follows: "Left" shall be 50% of the width of the available workspace, "Right" is 50% of same on the right side. The height of both should be almost 100% of available height of the workspace, but a small percentags shall be left at the bottom of the workspace which is room for minimized window icons to display. This "buffer" shall be a fixed hard coded value either as a percentage or the # of pixels at the coders discretion.
messages:
Phase I.
Original posted deadline set by mikem2007 for the future date of Monday Mar 19, 2007 5:46:34 PM EDT (14 days).
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,824,948 on Saturday Mar 3, 2007 11:26:41 AM EDT
Top Coder!
(Auto-posted by Rent A Coder.) Buyer invited eBuddies to bid on this project on 3/3/2007 11:26:41 AM.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,833,611 on Sunday Mar 4, 2007 4:54:02 AM EDT
Top Coder!
A bid in the amount of $0 (USD ) was posted by eBuddies (the coder).
* The bid was (later) accepted by mikem2007 (the buyer).
Estimated development time: approximatively 3 days. Costs: 1/8 of 400 = 50 as previously discussed.
We are looking forward working with you!
Regards, Christian, Project Management.
Reply
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,836,354 on Sunday Mar 4, 2007 12:26:27 PM EDT
eBuddies, as you should see I accepted your bid. But I want to inform you that RAC's payment processing displayed an error page to me when I submitted my payment information. The status shows that the $0 is in escrow but I question whether that is true or not. I have emailed the RAC facilitator and have asked for instructions.
I suggest that you do not proceed until I and RAC get this resolved, hopefully soon.
Thankyou, Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,843,972 on Monday Mar 5, 2007 5:50:12 AM EDT
Top Coder!
Hello Mike,
Indeed there are some problems in your project's proceedings into the next phase. We are waiting for further news about this issue. In our vision this should be solved in time so we don't have anything to worry about.
Looking forward hearing from you.
Regards, Christian.
Reply
To: mikem2007 and eBuddies Alert # 984,486 on Monday Mar 5, 2007 5:46:34 PM EDT
Alert: Buyer accepted bid/ completed escrow
eBuddies (the coder), Per the detailed email you were sent, mikem2007 (the buyer) has accepted your bid for $0 on posting # 10,833,611 and has completed the escrowing process.
You can now start work. Please contact mikem2007 (the buyer) via the site to get the project off "on the right foot". The current deadline is 14 days.
Monday Mar 5, 2007 5:46:34 PM EDT
Project phase change: All funds have been escrowed. Waiting for work to be completed by eBuddies (the coder).
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,854,276 on Monday Mar 5, 2007 5:47:43 PM EDT
Ok, I believe I got the payment transaction through.
I look forward to seeing your work!
Thankyou, Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,858,260 on Tuesday Mar 6, 2007 3:32:19 AM EDT
Top Coder!
Greetings Mike,
Thank you for choosing us we will post our first status report today.
Christian.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,859,591 on Tuesday Mar 6, 2007 6:06:41 AM EDT
Top Coder!
Heya again,
Just before creating the actual project we need several informations that you may consider important:
1.) Project Name;
2.) What do you think about adding a menu item to your IDE's Tools section instead of inserting it into the options cathegory? This because its more accessible like that. You don't have to open options menu each time you want to enable / disable the extension.
Lets us know what do you think about these issues.
Thanks, Christian, Project Management.
Reply
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,866,187 on Tuesday Mar 6, 2007 2:20:36 PM EDT
1) CodeWinPos.
2) Actually I prefer it in the Options dialog.
Thank you!
Mike
Reply
Tuesday Mar 6, 2007 5:46:34 PM EDT
During a 24 hour grace-period that follows the escrowing of funds, a coder may choose to decline a project for any reason, without penalty. This 24 hour period expired at 3/6/2007 5:46:34 PM and the coder may no longer exercise it. (Full information on the 24-hour grace period is located in the Seller contract).
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,890,342 on Thursday Mar 8, 2007 5:34:19 AM EDT
Top Coder!
Hey Mike,
Current Status:
- Show a message on the screen if the integration package is enabled.
- Options Property page with enable/disable button thats toggles the addons functionality.(We actually had alot of additional work to do here because we had to create a new Class Library Project that represents the client area of our property page and had to attach it to the project)
- Install/Uninstall Microsoft Installer module is under development, it is coded already but we have to wait for Microsoft to provide us a valid PLK for the product. This PLK key is essential because the addon must pass the PLK Load test to run.(PLK=Public License Key). We are able to run the code because we have the DLK(Developer License Key) that every project creator/builder has in order to be able to debug the application.
Now, we have the source for the above stated features but we can't offer you any release binaries because of the presented PLK problem). For more information about PLKS please check:
http://msdn2.microsoft.com/en-us/library/bb164583(VS.80).aspx
We have posted an application to Microsoft for the PLK, we really hope it won't take too long for them to respond.
If you wish to compile and build the application yourself let us know and we will upload the source files. Be sure to have Visual Studio SDK( and Visual Studio 2005) installed in C:\Program Files\ because of directory dependencies.
Looking forward hearing from you about the upcommings.
Regards, Christian, Project Management.
Reply
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,892,279 on Thursday Mar 8, 2007 9:18:34 AM EDT
Sounds good. Couple things:
"- Show a message on the screen if..."
Please describe this message, is it a pop up dialog, or a message on the status line or somewhere, or what? I wouldn't want to see a pop up dialog requiring a 'Click Ok" each time I start up VS.
I understand the PLK issue - I knew that would be the case.
I just realized I have one additional requirement for this project. I need to make sure it works with 2 other vs integration packages. 1) ViEmu and 2) WorkSpaceWhiz. Both of these addons have free trials available for you to download and install.
www.viemu.com & www.workspacewhiz.com
If this additional requirement adds significant time to the project I understand let me know.
I don't need to see the source yet, I can wait till phase 1 is done.
Thank you!
Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,894,518 on Thursday Mar 8, 2007 12:39:36 PM EDT
Top Coder!
Hey Mike,
Our intention in phase one was to demonstrate that we are able to gain full to the VS Shell through the EnvDTE(/80) namespace's objects, to create the deployment application(setup program) and to get your project "on the road". In addition we intend to include a .doc file with your project's description regarding package file structure and module based functionality presentation.
Further implementation of the integration package covering document window management will be done in the follow up phases.
Concerning the message box window, its role is to show that the property page project(as previously mentioned this is a separate project) is correctly responding to the enable/disable user commands. This messagebox will be removed in the future.
We meant by prototype the basis of your project, as you can probably presumed we are unable to include the advanced functionalities that your final project requires because this is just phase 1, the first step. Of course step by step the rest of the features will be coded.
The compatibility with the other 2 packages can be done as a bonus to your basic bid request.
We will upload shortly the source we have coded so far along with the project's description doc file to finish this first phase.
Note: As preaviously mentioned this phase shouldn't have taken more than 3 business days.
Regards, Christian - Project Management.
Reply
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,896,208 on Thursday Mar 8, 2007 2:16:45 PM EDT
All sounds good.
Can you provide an outline of what will be accomplished in each of the remaining 7 phases? Even if the understanding is that they may change, I'd like to see a breakdown of each phase up front.
Thank you,
Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,905,804 on Friday Mar 9, 2007 7:10:36 AM EDT
Top Coder!
Hey Mike,
In our vision the best solution would be to adopt instead of 7 additional phases a 3 phase process not just because of its simplicity of understanding but also because we must avoid the gaps between steps( since they are different project they need additional time to launch, rac acceptance etc).
Here is how we thought this could be done:
1st Phase: Software Deployment, Basics - This is the current project.
2nd Phase: Document Tabbed Windows Management. Creating a new vertical tab if we have both .h and .cpp files opened. For additional files that will be opened the code will behave as specified in your bid request.
3rd Phase: MDI Windows Management. Similar to tabbed document views as specified in your bid request.
Development Costs:
1st Phase: $0 - Status: Completed; 2nd Phase: $0 - Status: Comming Soon; 3rd Phase: $0 - Status: Comming Soon;
We received the PLK from Microsoft today so we attached the ready to run installer binaries also along with the full source code.
PS: Please don't forget to post a mark and a buyer message qualifying our work because it would really help us here on RAC.
Thank you,
Christian, Project Management.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,905,814 on Friday Mar 9, 2007 7:11:34 AM EDT
Top Coder!
Attached File (863.87 kb)
Software Package.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,905,820 on Friday Mar 9, 2007 7:12:52 AM EDT
Top Coder!
Attached File
Status report: Work reported complete
Reply
Friday Mar 9, 2007 7:12:53 AM EDT
Project phase change: All Work (or part of the work) was completed by eBuddies (the coder). Waiting for mikem2007 (the buyer) acceptance.
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,908,338 on Friday Mar 9, 2007 10:06:48 AM EDT
Great. Sounds good. I'll review your work over the weekend and get back to you.
Thank you Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,910,415 on Friday Mar 9, 2007 11:56:26 AM EDT
Top Coder!
Your welcome Mike,
Should you have any question we are here to help.
Regards, Christian. Reply
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,912,203 on Friday Mar 9, 2007 2:22:55 PM EDT
Ok it looks good. I loaded the .sln and browsed the sources, I found where the public key is stored, I've built the CodeWinPos/Setup project and installed it, it works as advertised.
Great.
I will proceed to release the 1st phase payment to you and create a private auction for Phase II.
Thank you!
Mike
Reply
Friday Mar 9, 2007 2:32:42 PM EDT
Project phase change: 100% of work was accepted by mikem2007 (the buyer). eBuddies (the coder) account has been credited. mikem2007 (the buyer) has legally certified that the contract is now 100% fulfilled by eBuddies (the coder), and released them from any further contractual obligation on this project. However, one or both parties may still wish to correspond to discuss the possibility of future projects.
Friday Mar 9, 2007 2:32:42 PM EDT
mikem2007 (the buyer) accepted 100% of work and released $0 from escrow to eBuddies (the coder)
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,912,318 on Friday Mar 9, 2007 2:32:42 PM EDT
* I hereby certify and legally confirm that eBuddies has completed 100% of this project to my complete and total satisfaction. I "Accept 100% of the work as complete" (per the Rent a Coder Custom Software Buyer Agreement) and authorize Rent A Coder to release payment to the coder in the amount of $0 USD. * I further GUARANTEE that the coder has sent me all deliverables (onsite) that correspond to the aforemonetioned portion of the project, and that they have been fully and vigorously reviewed and tested to my complete satisfaction. * I further GUARANTEE that this is not an advanced payment. I understand and agree that if it is, then not only may I lose all of my funds in exchange for nothing, but that this is a violation of my Seller's agreement and I may be ejected permanently from the site. * I understand and legally agree that under NO CIRCUMSTANCES will I EVER be able to get these funds back. I formally and irrevocably release ALL claim to said funds, from this point in time (3/9/2007 2:32:42 PM EDT), onwards.
Reply
Friday Mar 16, 2007 10:59:26 AM EDT
Project phase change: 100% of work completed and accepted. eBuddies (the coder) has been paid.
Monday Mar 19, 2007 5:46:34 PM EDT
Original posted deadline expired. It was set by mikem2007 back on Saturday Mar 3, 2007 11:05:23 AM EDT for 14 days.
Phase II.
A bid in the amount of $0 (USD ) was posted by eBuddies (the coder). * The bid was (later) accepted by mikem2007 (the buyer).
Greetings Mike,
Thanks for you comment on our work, we are really happy to see how great this first phase was.
Please note that in order to uninstall the software you should go to the add/remove programs and simply remove it. Like this Windows will authomatically call the uninstaller and remove all project files and registry entries.
We posted our bid with this comment to allow you to start the second phase.
Thanks, Christian - Project Management.
Reply
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,930,584 on Sunday Mar 11, 2007 10:54:55 AM EDT
Oh ok I missed that about uninstall. Ok. I'll modify the bid directly.
Reply
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,930,612 on Sunday Mar 11, 2007 10:58:54 AM EDT
Ok I've removed the uninstall req from the Phase II auction. I await your further comments or bid.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,938,719 on Monday Mar 12, 2007 2:38:46 AM EDT
Top Coder!
The strange thing is that we posted the bid in our previous comment. Did you encounter some problems regarding its visibility or something?
Thanks, Christian - Project Management.
Reply
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,941,824 on Monday Mar 12, 2007 8:47:13 AM EDT
Oh I didn't see the bid. I'll accept it now.
Reply
To: mikem2007 and eBuddies Alert # 996,605 on Monday Mar 12, 2007 8:48:27 AM EDT
Alert: Buyer accepted bid/ completed escrow
eBuddies (the coder), Per the detailed email you were sent, mikem2007 (the buyer) has accepted your bid for $0 on posting # 10,928,329 and has completed the escrowing process.
You can now start work. Please contact mikem2007 (the buyer) via the site to get the project off "on the right foot". The current deadline is 14 days.
Monday Mar 12, 2007 8:48:38 AM EDT
Project phase change: All funds have been escrowed. Waiting for work to be completed by eBuddies (the coder).
Tuesday Mar 13, 2007 8:48:38 AM EDT
During a 24 hour grace-period that follows the escrowing of funds, a coder may choose to decline a project for any reason, without penalty. This 24 hour period expired at 3/13/2007 8:48:38 AM and the coder may no longer exercise it. (Full information on the 24-hour grace period is located in the Seller contract).
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 10,976,140 on Wednesday Mar 14, 2007 7:53:01 AM EDT
Top Coder!
Greetings Mike,
Our main focus at the moment is the TabGroup management feature which is a quite complex part of the project. We will post a test version when we finish.
Regards, Christian - Project Management.
Reply
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 10,976,294 on Wednesday Mar 14, 2007 8:09:56 AM EDT
Ok
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 11,010,654 on Friday Mar 16, 2007 4:41:32 AM EDT
Top Coder!
Status report: Non-Technical Description:
After many hours of extensive research we came to the conclusion that the only way to open a new tab window(the one that contains multiple tabs) is to syntesize mouse input that performs that action just like a real user would. We tried to search for a development tool that is able to open new tab windows but we came to the conclusion that Microsoft decided not to implement that feature in their extensibility SDK.
We are still working on this.
Technical Description:
Our first idea was to enumerate Visual Studio's windows hierarchy in order to find specific window handles that may be in our interest. We found out with Microsoft Spy++ that the tab window class name is "EzMdiContainer" and its parent's class name is "MdiClient", just as in the case of an ordinary desktop program's MDI user interface.
At this stage we divided our development team into 2 separate teams. One team tried to code the software programatically and the other one artificially by syntezing mouse input. Unfortunately the first team found out that the IDE's windows are exposed to integration packages via COM API and it's impossible to manipulate them with normal Win32 API functions. Therefore we reached to the conclusion that the best way to do this would be to simulate mouse imputs or to request the user to open a new tab. Since we consider that requesting the user to do something is quite odd, we decided to implement this feature by syntesizing mouse input.
Please let us know your ideas about these issues.
Regards, Christian.
Reply
By mikem2007 with 3 ratings From Austin, Texas in United States (see local date/time) Posting # 11,014,886 on Friday Mar 16, 2007 11:29:15 AM EDT
I do not like the idea of simulating mouse input. At this point I do not want to go in that direction. I think we should look at using the COM api.
I have a consulant on hand that offers this advice;
-- Begin consultant remarks ---
(With the VS SDK) ... you get a bunch of header and IDL files which correspond to the VS interfaces, which are all based around COM.
I had a look at it myself, and although the functionality is there for the VS user (right click on a tab, and it shows "detach to new tab group"), I couldn't find anything in the SDK that provided access to either that command, or the list of tab groups, or the list of tabs in a tab group, etc... there are many areas in VS which are not actually exposed, so it wasn't too surprising.
This doesn't mean it's not available somehow. More research should help with this. I'd suggest looking at the system Window's, the Text Manager, the View's, and trying to relate all of this somehow. Documentation is poor, so one has to look, read, experiment with things, etc...
There was an add-in for Visual Studio which provided colored tabs and combining the .h and .cpp tabs of a single class in a single tab. I had a look at it, and it didn't seem to really access the internal tabs (it just overdrew something on top of the standard tabs view), but having a look at this could provide some extra avenue for research. The source is freely available: http://www.zero-one-zero.com/vs/.
Somewhere where one could ask and actually get some help would be the VS extensibility forum: http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=57&SiteID=1. MS guys lurk there, and everybody is trying to get VS to do something weird. I've had success asking there some times (other times, I haven't and had to really dig deeper myself, including tracing through VS's assembly code, etc...).
I wouldn't do mouse ops simulation by any means, but that's just me. I definitely wouldn't include something like that in ViEmu, as it's sure to cause a lot of support headaches - although I understand it may be a good solution for someone who really needs it and who is aware of the way it works.
-- End consultant remarks ---
As I said I'd like to explore the COM apis. In the interim and in order to continue moving forward with Phase II I'd suggest that you could have one team explore the COM api and have the other team skip the part where you have to open the 2nd tab. If only 1 tab is open then files just open there. But if there is a 2nd tab open then perform the required placement i.e. .cpp in 2nd tab.
How does this sound to you?
Thanks, Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent) From Oradea, Bihor in Romania (see local date/time) Posting # 11,026,795 on Saturday Mar 17, 2007 5:56:10 AM EDT
Top Coder!
Hey Mike, Thank you for trying to help us by investing in a consultant's idea. We really appreaciate your intention and your consultant's efforts. Unfortunately we already know about the issues he stated in his comment: - The zero-one-zero website has a software called VSTABS that indeed puts a new tab window on top of the default one. We have performed an exhaustive study on the open source mfc code shipped along with the software but all we were able to find out from the code is that its nothing more than a custom application that redraws the tab window as your consultant said. We must confess that this software was our primary source of inspiration from the start. Unfortunately COM interaction its limited to the CWindowImpl
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,027,636 on Saturday Mar 17, 2007 8:36:07 AM EDT
You are now to the point that I got myself when I tried to implement this. I could not find any interface in the DTE object to the tab groups nor to even control window position/size during the documentopened event. I tried to do this as an addin with the same problem.
2 things;
1) is it easier if you don't have to open the 2nd tab group? If only 1 tab group is open then don't worry about the 2nd. If we have the 2nd then use it for .cpp?
2) What about the standard MDI interface? Are you finding anything that would make it easier to do this with only the MDI (non tabbed) option? In other words; I tried doing this in an addin. There are members in the DTE ActiveWindow for width,height,left,right but when I set these they have no effect. Does this work in a VSIP package?
I think I understand your hesitation about using undocumented COM apis but, isn't this type of thing done all the time by many developers? I'm ok knowing that if we find a solution via undocumented COM api that MS may break it in the future if they change the api.
I see your post on MSDN. I posted this whole problem on MSDN a couple months back but didn't receive any replies.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,034,453 on Sunday Mar 18, 2007 5:11:46 AM EDT
Top Coder!
Note: This is an update to our previous message;
In our vision its impossible to create a new tab group via COM API because of the followings:
-Supposing Tab Window is implemented like a COM object with factory objects for creating instances and all other features we use to find at these typed of objects. Visual Studio in this context by definition in COM terms is a COM container that's using the factory object (all this after performing COM specific initialization and connection) load an instance of the specified COM object.
Using COM technology we can turn our integration package into COM container and load an instance of the needed COM object. This is a wrong solution because the IDE itself must contain the newly created COM object. In order to achieve this we must "tell" via COM Interop to the Visual Studion Container "make yourself usefull, create another Tab Group and handle its messaging". The problem is that the only way to do this is to get Visual Studio's source code and extend the TabWindow COM object's method list with a "AddNewTabGroup" method.(assuming that TabWindow COM object even exists because Microsoft said that they don't offer any access to the tab windows because it's part of the standard UI)
In our opinion MDI won't be a problem because we already have a couple of methods to try (including but not limited to win32 api calls since we have coded an algorithm to get the necessary window handles).
Summing up we strongly believe that the best solution would be to enable our integration package's functionality only if 2 or more tab windows are open (assuming we have tabbed windows selected) and reopen the necessary cpp document views when the new tab group is created.
Christian.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,037,022 on Sunday Mar 18, 2007 11:19:22 AM EDT
Yes, that sounds good.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,037,313 on Sunday Mar 18, 2007 11:52:14 AM EDT
Yes, that sounds good. Please proceed.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,060,486 on Tuesday Mar 20, 2007 8:45:39 AM EDT
How's it going?
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,076,380 on Wednesday Mar 21, 2007 8:28:00 AM EDT
Top Coder!
Hey Mike,
Phase 2 of the project is going well, we just need to run more debugging and performance tests on it.
We will tell you more about the test results tomorrow.
Regards,
eBuddies
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,090,469 on Thursday Mar 22, 2007 7:04:50 AM EDT
Top Coder!
Attached File
(938.96 kb)
Test Version.
Please note the followings:
1.) Install/Open/Use this software if and only if TabbedDocuemnts is selected in the Tools->Options menu of the IDE.
2.) Full functionaly is provided. The Integration package tracks files as they are opened(even if the IDE implicitly opens them trying to restore its previous state before closing).
3.) When the user/IDE opens a new tab group, all .cpp files from the left tab group are moved to the newly created tab group as specified in the bid request and previous comments.
4.) All other file types have normal behaviour.
5.) When creating another another tab group allways do this by right clicking a .cpp file since its a nonsense to perform this action on a .h file while using this addon.
6.) When you enable the addon all files are reopened in a single tab group( this is vital since there is no possible way to predict how EnumWindows will enumerate opened tab groups).
7.) The uninstaller works in 2 ways: Add/Remove Programs -> Remove, or run the installer package once more and choose the uninstall feature.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,100,950 on Thursday Mar 22, 2007 7:07:04 PM EDT
Looks good. It looks like the core functionality is in place. I am seeing a few bugs or issues. You say "Test Version" so I assume you are aware but I'll list everything I've seen;
(The number in parens refers to your previous message)
Regarding (2) Upon opening an existing .sln it looked like VS opened a number of files (which were open from last session) and then the CodeWinPos closed them, but none were reopened.
There appears to be a bug or two involving cases where tab groups are added and removed. Delete the left tab group (leaving only 1) then add a 2nd again. CodeWinPos appears to be confused. Add a 3rd, 4th delete 1 or 2.
Regarding (5) I agree with you that "it's nonsense" but I can see that it is an easy mistake to make. The consequence of doing this is that all the currently opened .cpp files are closed - a nasty little mistake that's easy to make. Can't this be fixed in a more reasonable way? I.e. without leaving files closed that were open?
Regarding (6) that is not what I'm seeing. I'm seeing that all open documents are closed but not reopened.
Regarding (1) What happens in this case? Shouldn't CodeWinPos (Phase II) simply do nothing in this case? Is that what you meant? I did not try it in MDI mode without knowing what might happen.
(3) Now I'm seeing that when I have 1 group open with .h and .cpp files then I create the 2nd group, only the selected .cpp is moved to the 2nd group and the other .cpps were closed and not reopened. I closed VS and tried this again - same thing.
If 1 tab group is open and there are multiple .cpp files in it but no .h files then you create the 2nd tab group - all files are closed except the one that was selected. CodeWinPos should simply do nothing since there are no .h files to fill the left group.
Overall I'd say you have the basic functionality in place. Just need to clean up a few bugs.
Let me know what you think about all these issues.
Thanks,
Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,107,786 on Friday Mar 23, 2007 9:00:49 AM EDT
Top Coder!
Attached File
(939.64 kb)
Status report: Hey Mike,
Update version 1.1 :
1.) "There appears to be a bug or two involving cases where tab groups are added and removed. Delete the left tab group (leaving only 1) then add a 2nd again. CodeWinPos appears to be confused. Add a 3rd, 4th delete 1 or 2." - Fixed.
2.) "Regarding (5) I agree with you that "it's nonsense" but I can see that it is an easy mistake to make. The consequence of doing this is that all the currently opened .cpp files are closed - a nasty little mistake that's easy to make. Can't this be fixed in a more reasonable way? I.e. without leaving files closed that were open?" - This bug is because the addon couldnt reopen previously opened documents - See point (6).
3.) "If 1 tab group is open and there are multiple .cpp files in it but no .h files then you create the 2nd tab group - all files are closed except the one that was selected. CodeWinPos should simply do nothing since there are no .h files to fill the left group."
- Again the "OpenDocument". See point (6).
4.)
"If 1 tab group is open and there are multiple .cpp files in it but no .h files then you create the 2nd tab group - all files are closed except the one that was selected. CodeWinPos should simply do nothing since there are no .h files to fill the left group."
For some reason your Visual Studio doesn't want to correctly execute the "opendocument" code.
5.)
"Regarding (1) What happens in this case? Shouldn't CodeWinPos (Phase II) simply do nothing in this case? Is that what you meant? I did not try it in MDI mode without knowing what might happen."
CodeWinPos Phase II is able to operate only in TabbedDocuments mode and shouldn't be used with windowed documents at all because it's not designed to work in that situation. The final program will be able to change it's behaviour depending on the currently selected document visualization method.
6.)
"Regarding (2) Upon opening an existing .sln it looked like VS opened a number of files (which were open from last session) and then the CodeWinPos closed them, but none were reopened."
and
"Regarding (6) that is not what I'm seeing. I'm seeing that all open documents are closed but not reopened."
This is also because of the "OpenDocument" code's malfunction on your system.
We want you to test the updated version of CodeWinPos and build using your Visual Studio the "ReOpen" Project. This is a simple project that reopens all document windows when you click its toolbar button. We are sure you will be able to find the button labeled "ReOpen" somewhere near solution explorer's and other tool window's buttons.
Please test CodeWinPos and ReOpen on multiple PCs and let us know the results along with the system informations(VS version , whether VS SDK is installed or not, processor, RAM memory, etc.) of the computers that hosted the tests. The funny thing is that we have tested CodeWinPos on 2 separate computers were we have Visual Studio installed and the reopen feature worked flawlessly.
Looking forward hearing from you.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,108,144 on Friday Mar 23, 2007 9:33:39 AM EDT
I uninstalled CodeWinPos and installed the new version and I'm seeing the same problem - windows are closed but not reopened as described earlier.
To further clarify the problem; it's only the initial windows that aren't reopened. Once I get past the initial stage then CodeWinPos works correctly - as I open more .h/.cpp files they're opened correctly.
I built the ReOpen project but I see no setup.exe or setup.msi. I only see .dlls. I do not know how to install it. Please advise how to install ReOpen after building it.
I have VS2005 installed on two PCs, one at home and one at work. I won't be at work until Monday so I can only test at home till then.
Both PCs are WindowsXP Sp2, VS2005 Sp1, VS2005 SDK Feb 2007, Pentium Core 2 3+ghz, 2gb ram, 200+gb disk.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,119,161 on Saturday Mar 24, 2007 5:11:07 AM EDT
Top Coder!
Hey Mike,
The pecularity of this situation comes from the fact that we aren't getting these reopen errors hence don't really know where to start.
You said that you are constantly getting this reopen error when VS loads its previous state before closing. What about the situation when you have both .cpp and .h files in the first tab group and you create a new tab group? Are the cpp files reopened correctly in the right tab group as they should?
We definitively have some sort of communication problem, in our opinion the best thing to do would be to set up a real time chat session on Yahoo, Skype, RAC Chat and debug CodeWinPos together.
Regarding the "ReOpen" Project all you have to do is press F5(start debugging) and VS will do everything for you. When the newly created instance of VS is loaded open a new project with alot of .h .cpp files and press the ReOpen Button from VS User Interface(see last comment). This project is just good to test what goes wrong on your computer, we will brief you in detail after test completion.
Regards,
Christian - Project Management.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,119,236 on Saturday Mar 24, 2007 5:21:54 AM EDT
Top Coder!
Attached File
(939.13 kb)
Hey again,
We coded this version specifically to test what happens in the reopen function on your pc. Messageboxes will be displayed if errors are encountered in the ReOpenDocument code.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,122,154 on Saturday Mar 24, 2007 12:24:14 PM EDT
Hello. I just tried several things. Yes a chat session might be a good idea.
"You said that you are constantly getting this reopen error when VS loads its previous state before closing."
Actually it happens any time that multiple code windows should be reopened;
1) When opening a project and multiple code windows are opened from previous session. The windows are closed and none are reopened.
2) If I have multiple .h and .cpp files open then create the 2nd tab group. Only one .cpp file is reopened. The .hs are left in the 1st tab group but only the selected .cpp file is reopened in the 2nd tab group - the others are left closed.
I had 2 or 3 other VSIPs installed. I tried removing the other VSIPs I had installed. No difference.
I've tried the ReOpen project as you requested F5. I'm not exactly sure how this is supposed to work or what I'm supposed to do but here's what I did;
I debug ReOpen with F5. I then open a project with several .h/.cpp files in the debugged VS/ReOpen process. With no code windows open I click the "ReOpen All Windows" Tool button. Nothing happens. I then open several .h/.cpp files and click on the ReOpen Tool button. Then all code windows are closed and none are reopened. No messageboxes are displayed. Nothing interesting in the Output window.
I tried ReOpen with CodeWinPos enabled and disabled.
I also uninstalled CodeWinPosos. No difference same behavior for ReOpen.
Chat session? I am in USA Central time zone currently in daylight savings time so I am GMT -5 hours. What about you? I can chat today, tomorrow, Monday. If you are in Romania UTC/GMT+2 then that makes you 7 hours ahead of me. Pick a day/time for chat and I'll go grab a chat account somewhere. Recommend one if you have a preference.
Thanks,
Mike
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,130,104 on Sunday Mar 25, 2007 12:37:00 PM EDT
Top Coder!
Attached File
(1,102.55 kb)
Hey Mike,
Thank you very much for your patience while testing CodeWinPos, your help was essential in finding out what was the problem this time.
The main issues that lead us to confusion is the fact that we don't have VS 2005 SP1 installed on our development workstations. You see Microsoft has made a major change in ProjectItem.Open(VsViewKind) method because previously COMException was thrown in some cases when it shouldn't. (Please visit:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=113924
for more info)
Normally in a c++ project, new document windows should open when a simple call to ProjectItem.Open is performed but this behaviour was changed in SP1. One has to call 2 additional statements to make this action: set the visible(bool) member to true(boolean true) and activate the window using Activate().
The bottom line of this is that Microsoft did not fix the ProjectItem.Open method in Sp1 and it works even worse then in previous versions. Now for Opening documents we use "DTE2.ItemOperations.OpenFile" method.
CodeWinPos should work properly now.
We did our best in trying to finish this part of the project before the deadline, and if the attached version of the program works as expected then we can report "Work Complete".
Thank you for your patience,
eBuddies.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,131,759 on Sunday Mar 25, 2007 2:05:27 PM EDT
Yes it appears to work correctly now. Great.
Since I aleady extended the deadline I would like to test CodeWinPos for a couple of days before I accept it and release funds to you. I am using it daily so I should uncover any issues within a couple of days.
Let me know if this is acceptable to you.
Thanks very much,
Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,139,451 on Monday Mar 26, 2007 3:14:24 AM EDT
Top Coder!
Hey Mike,
We will report work complete now because in our opinion the best is to test the software's final version. Further extensions may interact with the currently implemented functionality and may cause unexpected behaviour.
We strongly believe that we should avoid working sequentially, you can test CodeWinPos while we code the third phase anyway and we will fix any bugs you may find.
Regards.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,139,492 on Monday Mar 26, 2007 3:19:36 AM EDT
Top Coder!
Attached File
Status report: Work reported complete
Reply
Monday Mar 26, 2007 3:19:37 AM EDT
Project phase change: All Work (or part of the work) was completed by eBuddies (the coder). Waiting for mikem2007 (the buyer) acceptance.
Monday Mar 26, 2007 8:48:38 AM EDT
Original posted deadline expired. It was set by mikem2007 back on Friday Mar 9, 2007 3:17:38 PM EDT for 14 days.
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,143,235 on Monday Mar 26, 2007 9:21:26 AM EDT
Ok. I now have CodeWinPos Phase II installed on both my home and office pc's and it's working as advertised. It's working well. Only thing thing I've seen so far is that; when I create the 2nd tab group if a .h file is selected that .h file is moved to the 2nd tab group. Can this be prevented?
I've created the Phase III project and invited you. I just realized that I made one error on the project, I'll edit it as soon as I'm able to do so. Right now it's locked up "pending approval". I classified it as a small business project "less than $0 where as it should be larger so as to include the agreed upon price of $0
I'll most likely approve phase II and release funds to you in the next day or two.
Thanks, good work and look forward to getting the final phase.
Mike
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,153,373 on Tuesday Mar 27, 2007 12:05:54 AM EDT
As I mentioned before I have a friend who is somewhat familiar with what you and I are working on and I've been getting his opinions along the way. Below I'm including a recent note from him with what might be helpful to automatically create that 2nd tab group.
I realize of course that you are very familiar with this area of the VSIP interface at this point and that you may well be aware of all the info he suggests. I only forward it to you in case there is a nugget of info there that you ar not aware of and might be a clue to get that 2nd tab group created.
Begin forwarded message---
The second one is that I've been able to investigate the tab-groups and related commands issues, and I think I have a workable idea on how to implement the functionality you're after. The only thing I really want to implement in ViEmu are ^Wv (for vertical splitting) and better ^W hjkl, which are currently pretty bad, and I'm not going to implement it right away, but I will share my discoveries with you so that you can send the info to your developer and you may get a solution according to your needs in that area.
Ok, first thing is I tried to determine the commands underlying the UI operations "New Horizontal Tab Group", "New Vertical Tab Group", "Move to Previous Tab Group" and "Move to Next Tab Group". I set a watch on the commands and could identify them according to the following list:
"New Horizontal Tab Group" - Window.TileHorizontally
"New Vertical Tab Group" - Window.TileVertically
"Move to Previous Tab Group" - Window.MovetoPreviousTabGroup"
"Move to Next Tab Group" - Window.MovetoNextTabGroup"
These commands can be executed by hand by typing them in the QuickFind combobox prepended with ">", and from macros/add-ins by calling the DTE.ExecuteCommand function.
One extra limitation I found out about is that VS does not allow having both horizontal and vertical tab groups at the same time (pretty stupid if I have to say so). If you open a vertically split tab group, then all subsequent tab groups must be vertically split too, and the same happens horizontally.
BTW, I did all the tests using the non-MDI window model of VS.
Ok, now to detecting tab groups. As I told you, there is no interface to actually access the tab groups, but I found a way this information can be "inferred". The global DTE object (the one through which most access to the environment is done) can be asked for a collection of objects called "Windows". This collection contains all windows in the environment, including document and tool windows (output window, solution explorer, etc...). If you walk the DTE.Windows collection, you can ask each window about its type, to tell the document ones from the non-document ones. You get a Window object for each open file, not only one for each tab-group, and as you probably know, actually both document and tool windows can coexist in the same tab group.
Also, you have to be sure to skip the windows with the "Visible" attribute set to "false".
How would you detect the tab groups? By comparing the coordinates of the windows, you could tell which ones are in the same tab group, as their coordinates will be almost the same. They won't be exactly, numerically the same, because VS does some ugly things with the positioning of these windows. I believe these windows, internally, have the full MDI-client window frame (title bar, etc...), and VS hides it by setting their coordinates to -something relatively to the parent's position, and making them clip against the parent. Since tool windows don't have this problem, they seem to be positioned in a more reasonable way with regards to their parent. To determine which document/tool windows belong to the same tab group, I would round their x,y coordinates to the closest multiple of 16 or so, remove the ones which result in a zero-width or zero-height area, and match them to the other present windows. That will leave you with the windows grouped according to the tab group.
Finally, in order to obtain your behavior, there are some details that still need specification (ie, if you want your add-in to automatically open a new tab group or not, whether you want CPPs always in the same tab group, etc...), but the idea should be clear. One point to take into account is that, if you open a file (using the DTE "File.OpenFile" command), it will open in the currently selected tab group. Also, if you do "File.OpenFile" in a currently open file, focus will be transfered to that tab. So, in order to open the .H automatically in a secondary tab group when opening a .CPP is detected, I would do the following steps:
1) Determine the current tab-group structure using the above described heuristic
2) Transfer focus to one of the tabs in that tab group
3) Call DTE.ExecuteCommand("File.OpenFile") for the corresponding .H file, which will be opened in that tab group
4) Call OpenFile again on the .CPP file in order to send the focus back to the CPP (or call the Activate() method in its corresponding Window object)
The final part would involve detecting when a file is opened. You can hook into DTE.WindowEvents or DTE.DocumentEvents from the add-in or macro, and use one of the following events:
DocumentOpening from DocumentEvents (http://msdn2.microsoft.com/en-us/library/aa300817(VS.71).aspx)
WindowActivated from WindowEvents (http://msdn2.microsoft.com/en-us/library/aa301255(VS.71).aspx)
You could use other events, but these are the two most likely ones.
I hope this is of help and that you can get the functionality implemented. Let me know how it works out :)
End forwarded message---
Thanks for your consideration,
Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,172,474 on Wednesday Mar 28, 2007 7:45:28 AM EDT
Top Coder!
Attached File
(940.17 kb)
Hey Mike,
We have implemented the requested upgrades to phase 2:
- The new tab group now is authomatically opened when needed.
- The .h file is correctly handled.
Please proceed with phase 3 in order to begin the third and final phase. No worries we will continuosly upgrade and debug the project regardless in which stage of the development process the bugged feature was implemented.
Please also note that we would really like you to post a mark on phase 2 before accepting it.
Thanks.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,173,013 on Wednesday Mar 28, 2007 8:38:02 AM EDT
No src in that last zip file.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,183,790 on Thursday Mar 29, 2007 2:51:02 AM EDT
Top Coder!
Attached File
(996.96 kb)
Source included.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,186,956 on Thursday Mar 29, 2007 8:58:37 AM EDT
Tabs Option: I saw a potential bug yesterday. I had CodeWinPos enabled, had 2 tab groups and several .h/.cpp files in each. I then closed the solution (A) and opened a different solution (B). Then I closed solution (B) and opened solution (A) again. This time when I opened (A) CodeWinPos churned through all the windows, closed them, reopened them but failed to create the 2nd tab group.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,210,490 on Friday Mar 30, 2007 2:35:22 PM EDT
Top Coder!
Status Report:
We are now focused on making Phase II bug free.
There are a lot of possibilities and events that may occur while you are closing and opening windows, solutions or new projects, creating or destroying TabGroups. Now we are eliminating the last bugs that are left in Phase II. Hopefully by tomorrow we will have a test version.
Regards,
eBuddies.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,210,618 on Friday Mar 30, 2007 2:42:30 PM EDT
Sounds good. I plan to be working through the weekend.
I'm currently using the latest Phase III bits. If you'd like me to switch back to Phase II let me know. Otherwise I'll grab the new Phase II as soon as you post it. Please try to remember to include source with each upload. I like to review the diffs.
Thanks,
Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,221,808 on Saturday Mar 31, 2007 11:04:57 AM EDT
Top Coder!
Attached File
(154.85 kb)
Test Version.
It should work now.
There are still a few bugs, but these are VisualStudio bugs, let me explain:
After you open the solution it should work perfect.
The bug we do know about is:
- When you open a solution Visual Studio CREATES the windows that were last opened in that solution. We have code that needs to be executed when a new document window is created.
But sometimes when you open a solution Visual Studio does not trigger the "WindEv_WindowCreated" method.
After the solution is opened it all works perfect even if the method was or was not called.
Please tell us how it works for you.
ps. Once Visual Studio triggers the method "WindEv_WindowCreated" it will never open it wrong.
So once i have played a little with visual studio and opened and created random window into the "broken solution" Visual Studio fixed itself and never opened a solution without triggering the event for WindowCreated.
A log file is generated in "C:\Log" when you run Visual Studio and the extension is enabled. If you find any bugs send us the log file and we will try to figure it out.
Regards,
eBuddies.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,221,912 on Saturday Mar 31, 2007 11:15:23 AM EDT
Top Coder!
Attached File
(942.68 kb)
I only sent u the source code in the previous comment here are the executables.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,222,364 on Saturday Mar 31, 2007 11:54:12 AM EDT
Got it and will be using it through the weekend.
Thanks,
Mike
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,231,359 on Sunday Apr 1, 2007 11:13:00 AM EDT
Attached File
(0.48 kb)
Just saw a bug.
Opened VS first time today. Opened a solution. No documents opened automatically. (VS seems to have a problem with this so I don't know it's a problem with CodeWinPos).
First I opened a .cpp file. It opened in a single tab group as predicted. Next I opened a .h file. It looked like it opened a 2nd tab group but it immediately closed and left both .h and .cpp file in 1 tab group.
I created the 2nd tab group and it's working correctly.
log file attached.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,244,056 on Monday Apr 2, 2007 8:39:04 AM EDT
Top Coder!
Attached File
(1,248.95 kb)
Hey Mike,
"First I opened a .cpp file. It opened in a single tab group as predicted. Next I opened a .h file. It looked like it opened a 2nd tab group but it immediately closed and left both .h and .cpp file in 1 tab group. " -Bug Fixed, thank you for the log file.
CodeWinPos Mdi module was improved.
Regards,
eBuddies.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,244,286 on Monday Apr 2, 2007 9:02:19 AM EDT
Got it and working with it today. So, do you think this is a finaly Phase II candidate? Or do you think there still may be a small problem or two?
Thanks,
Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,247,981 on Monday Apr 2, 2007 12:55:30 PM EDT
Top Coder!
Hey Mike,
We fixed every bug we met so far and yes in our opinion the latest posted version is a very good candidate for phase 2. Moreover it contains 100% functionality from phase 3 also ready for your testing.
The truth is that we don't really know what should we do now since we already reported work complete several days ago, we could try reporting again if you consider that everything is ok and ready for your approval.
No matter how we will proceed please don't forget to rate our work. Thanks.
Regards,
Christian - Project Management.
Reply
Monday Apr 2, 2007 1:58:23 PM EDT
Project phase change: 100% of work was accepted by mikem2007 (the buyer). eBuddies (the coder) account has been credited. mikem2007 (the buyer) has legally certified that the contract is now 100% fulfilled by eBuddies (the coder), and released them from any further contractual obligation on this project. However, one or both parties may still wish to correspond to discuss the possibility of future projects.
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,248,840 on Monday Apr 2, 2007 1:58:23 PM EDT
* I hereby certify and legally confirm that eBuddies has completed 100% of this project to my complete and total satisfaction. I "Accept 100% of the work as complete" (per the Rent a Coder Custom Software Buyer Agreement) and authorize Rent A Coder to release payment to the coder in the amount of $0 USD.
* I further GUARANTEE that the coder has sent me all deliverables (onsite) that correspond to the aforemonetioned portion of the project, and that they have been fully and vigorously reviewed and tested to my complete satisfaction.
* I further GUARANTEE that this is not an advanced payment. I understand and agree that if it is, then not only may I lose all of my funds in exchange for nothing, but that this is a violation of my Seller's agreement and I may be ejected permanently from the site.
* I understand and legally agree that under NO CIRCUMSTANCES will I EVER be able to get these funds back. I formally and irrevocably release ALL claim to said funds, from this point in time (4/2/2007 1:58:23 PM EDT), onwards.
Reply
Monday Apr 2, 2007 1:58:23 PM EDT
mikem2007 (the buyer) accepted 100% of work and released $0 from escrow to eBuddies (the coder)
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,248,912 on Monday Apr 2, 2007 2:02:57 PM EDT
As you can see I've approved phase II and released the funds to you. Great job. Now on to finish phase III. I'll begin using MDI option right away and let you know how it's going.
Thanks,
Mike
Reply
Monday Apr 9, 2007 8:48:38 AM EDT
Extended deadline #1 (of 1) expired. It was set by mikem2007 back on Sunday Mar 25, 2007 10:13:44 AM EDT for 28 days.
Wednesday Apr 18, 2007 11:24:40 PM EDT
Project phase change: 100% of work completed and accepted. eBuddies (the coder) has been paid.
Phase III.
Original posted deadline set by mikem2007 for the future date of Wednesday Apr 11, 2007 2:39:41 PM EDT (14 days).
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,143,519 on Monday Mar 26, 2007 9:47:34 AM EDT
Top Coder!
(Auto-posted by Rent A Coder.) Buyer invited eBuddies to bid on this project on 3/26/2007 9:47:34 AM.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,172,518 on Wednesday Mar 28, 2007 7:49:11 AM EDT
Top Coder!
A bid in the amount of $0 (USD ) was posted by eBuddies (the coder).
* The bid was (later) accepted by mikem2007 (the buyer).
Hey Mike,
Here's our bid for Phase III.
Regards,
Christian - Project Management.
Reply
To: mikem2007 and eBuddies
Alert # 1,028,763 on Wednesday Mar 28, 2007 2:39:41 PM EDT
Alert: Buyer accepted bid/ completed escrow
eBuddies (the coder),
Per the detailed email you were sent, mikem2007 (the buyer) has accepted your bid for $0 on posting # 11,172,518 and has completed the escrowing process.
You can now start work. Please contact mikem2007 (the buyer) via the site to get the project off "on the right foot". The current deadline is 14 days.
Wednesday Mar 28, 2007 2:39:41 PM EDT
Project phase change: All funds have been escrowed. Waiting for work to be completed by eBuddies (the coder).
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,183,821 on Thursday Mar 29, 2007 2:55:09 AM EDT
Top Coder!
Attached File
(940.34 kb)
Phase III First test version:
- Check the mdi documents option and test CodeWinPos please.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,184,314 on Thursday Mar 29, 2007 3:47:40 AM EDT
Top Coder!
Attached File
(940.18 kb)
Hey Mike,
Our previous post's attachment contains a bug that we have fixed in this version.
Please ignore our earlier message.
Thanks,
Christian - Project Management.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,186,854 on Thursday Mar 29, 2007 8:48:10 AM EDT
src please?
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,186,952 on Thursday Mar 29, 2007 8:57:49 AM EDT
MDI Option: Initial test looks good. One comment: the windows are slightly too wide. Both left/right windows encroach slightly into the left/right workspace border. Also where the windows meet in the middle they are slightly overlapping.
Tabs Option: I saw a potential bug yesterday. I had CodeWinPos enabled, had 2 tab groups and several .h/.cpp files in each. I then closed the solution (A) and opened a different solution (B). Then I closed solution (B) and opened solution (A) again. This time when I opened (A) CodeWinPos churned through all the windows, closed them, reopened them but failed to create the 2nd tab group.
I'll be using it today which will provide further testing.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,189,158 on Thursday Mar 29, 2007 11:54:34 AM EDT
I'm working with MDI Option today. It's been working fine. Then out of the blue it stopped working - both .h and .cpp files stopped being opened in the correct place/size. There were opened with very narrow width and not left nor right justified, just in the middle somewhere.
I closed all windows and reopened some. Problem still existed.
I changed from MDI to Tabs and back. Problem still existed.
I killed VS and restarted and set to MDI. Problem went away. CodeWinPos started working again.
I opened many documents, all in solution. Problem not showing itself again.
Not sure how to reproduce it at this point.
Reply
Thursday Mar 29, 2007 2:39:41 PM EDT
During a 24 hour grace-period that follows the escrowing of funds, a coder may choose to decline a project for any reason, without penalty. This 24 hour period expired at 3/29/2007 2:39:41 PM and the coder may no longer exercise it. (Full information on the 24-hour grace period is located in the Seller contract).
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,194,610 on Thursday Mar 29, 2007 3:45:45 PM EDT
Attached File
(304.47 kb)
I'm at home now (I was at the office when I posted previous messages today).
I just installed Phase III and set MDI option.
It's working except that it is not getting the width correct. It's acting as if there is a tool open on the right side of the workspace. (I've attached a screen shot to illustrate)
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,210,382 on Friday Mar 30, 2007 2:28:01 PM EDT
Top Coder!
Status Report:
Now we are focused on clearing all possible bugs on Phase II of the project, and then we will debug Phase III of any bugs that we can find.
Thank you for helping us debugging the extension. It is very important for you to work with the extension constantly because some bugs appear only after a random period of time (like the one you sent to us
"I'm working with MDI Option today. It's been working fine. Then out of the blue it stopped working - both .h and .cpp files stopped being opened in the correct place/size")It never happened to us so we can only guess were the bug could be we have modified the extension and hopefully fixed the problem. In a few days from now we should have a test version that in our opinion will be exactly what you have asked for.
Thank you,
eBuddies.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,210,439 on Friday Mar 30, 2007 2:32:39 PM EDT
I agree. Let's focus on Phase II and get that finalized so that I can release the $$$ to you.
Further communication/testing/downloads should occur on the Phase II project.
Thanks,
Mike
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,249,118 on Monday Apr 2, 2007 2:17:29 PM EDT
I'm using the lastest bits you posted me this morning.
With the MDI option I'm still seeing the problem where the width of the 2 windows (.h/.cpp) is not 100% of available workspace. Identical to the .jpg I posted the other day on this phase III project.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,249,155 on Monday Apr 2, 2007 2:19:18 PM EDT
2 minor bugs:
When I switch from tabs to MDI, it opened all existing docs in cascading style.
When I switch from MDI to tabs it failed to create the 2nd tab group.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,267,022 on Tuesday Apr 3, 2007 4:04:54 PM EDT
Top Coder!
Hey Mike,
We are working on it, by tomorrow we will have a test version that has this bugs fixed.
eBuddies.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,283,162 on Wednesday Apr 4, 2007 4:02:52 PM EDT
Top Coder!
Attached File
(1,064.21 kb)
" 2 minor bugs:
When I switch from tabs to MDI, it opened all existing docs in cascading style.
When I switch from MDI to tabs it failed to create the 2nd tab group." -Fixed.
Please let us know if there are any changes when you use Mdi Option, if the Windows do not use 100% of the available workspace, and if you have discovered new bugs while we fixed these.
Thank you,
eBuddies.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,285,301 on Wednesday Apr 4, 2007 8:21:08 PM EDT
Attached File
(495.41 kb)
When switching between MDI and Tabs it works.
MDI option:
1) With no tool windows docked; still seeing a small gap on the right side of workspace.
2) With tool windows docked; it's not calculating the available width correctly. Width of left(.h)/right(.cpp) windows should be
(total width of workspace - total width of all vertically docked tool windows) / 2
See 2 attached screen shots.
Thanks,
Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,290,089 on Thursday Apr 5, 2007 5:40:00 AM EDT
Top Coder!
Attached File
(1,001.91 kb)
Hey Mike,
We have sucessfully removed the small space that shouldn't be there. The problem was that we had a docked solution explorer hidden so that it showed just a thin bar with the width equal to the unwanted space.
Regarding the docking of several windows into the workspace, you see Visual Studio does a really strange thing there that we discovered just yesterday: if you have 1 or more docked tool windows whether they are in visible form or not the IDE still substracts their size from the MDIContainer.
In our vision a solution to this problem would be to let the windows show as they should without any tool windows since these windows' position may change dynamically and screw the whole thing up.
Please let us know what do you think about these problems, attached to this message you will find a new test version that eliminates that small space.
Regards,
Christian.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,294,275 on Thursday Apr 5, 2007 11:25:40 AM EDT
Ok yes I see what you are talking about. I wasn't aware of the AutoHide option on the tool windows but I see it now. And I see why you had the small space on the right.
I can see that Microsoft has once again made things difficult.
Ideally I think the best solution for the MDI option is that new windows would open to 1/2 of visible width. Meaning if a tool window is docked visible that width is subtracted. If a tool window is hidden (with only the small vertical column visible) then *that* width is subtracted. Once code windows are opened, I do not expect CodeWinPos to react when tool windows are moved, redocked or resized. After all the point of the MDI option is that the user takes control of his windows.
If you cannot do this, then let me work with it a few days and figure out how I'd like to compromise.
Thanks,
Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,298,680 on Thursday Apr 5, 2007 3:13:16 PM EDT
Top Coder!
We are working on it Mike and we will know if it works or not by tomorrow.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,302,128 on Thursday Apr 5, 2007 10:43:16 PM EDT
Attached File
(182.88 kb)
I'm working away this evening, using MDI option. CodeWinPos is doing it's thing perfectly. Suddenly I open one more window (BackTest.cpp) and the height and width are wrong.
I shutdown VS and restarted and it's working correctly again.
It appears that your log file is no longer being written to. I'm happy to have that in place if you like.
See attached screen shot.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,302,719 on Friday Apr 6, 2007 12:08:23 AM EDT
"I'm working away this evening, using MDI option. CodeWinPos is doing it's thing perfectly. Suddenly I open one more window (BackTest.cpp) and the height and width are wrong. I shutdown VS and restarted and it's working correctly again."
I've had it happen 2 or 3 times this evening while working. The width and height are suddenly smaller than they should be.
I haven't yet figured out what I'm doing that might be causing it.
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,305,415 on Friday Apr 6, 2007 5:19:05 AM EDT
Top Coder!
Attached File
(999.45 kb)
Status report: Hey Mike,
We are really sorry for missleading you about Microsoft VS, we were the ones who commited a small error that influenced the whole process.
While using Win32 API EnumWindows we didn't make sure that the resulting window is indeed in the current process, therefore when you tried the software it most probably analysed the wrong window while spacing the newly opened documents. VS never considers hidden docked windows as visible normal ones. Our apologises again.
In our opinion this version is a very good release candidate thus please test it as if it were the final version. Source code is also provided in the attachment.
Thanks,
Christian.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,308,193 on Friday Apr 6, 2007 10:01:22 AM EDT
Ok I've got your latest upload and am using it today in MDI mode.
Did you address the last bug I reported;
"I'm working away this evening, using MDI option. CodeWinPos is doing it's thing perfectly. Suddenly I open one more window (BackTest.cpp) and the height and width are wrong. I shutdown VS and restarted and it's working correctly again."
I'll find out if it's still happening today/tomorrow.
Thanks
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,311,157 on Friday Apr 6, 2007 1:24:18 PM EDT
One last tweak I'd like to make to the MDI Option spec. It should be easy: instead of only putting .h files on the left side, put every thing on the left except .c,.cpp files. That means other text files as well as resource editor windows on the left.
In pseudo code:
Hey Mike,
"Other text files as well as resource editor windows on the left."
We changed our code so that any type of document is now opened to the left (except ".c" or ".cpp").
CodeWinPos does not change the behaviour of the tool windows that are created with the resource documents.
About the other bug "Suddenly I open one more window (BackTest.cpp) and the height and width are wrong." -Fixed, it was probably because you had 2 visual studios opened.
Regards,
eBuddies.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,314,310 on Friday Apr 6, 2007 5:10:34 PM EDT
Ok. All looks good. Great job on this whole project. I am very pleased with your work.
Give me a few days to test fully and I'll get back to you.
Thank you!
Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,353,236 on Tuesday Apr 10, 2007 10:14:55 AM EDT
Top Coder!
Attached File
Status report: Work reported complete
Reply
Tuesday Apr 10, 2007 10:14:56 AM EDT
Project phase change: All Work (or part of the work) was completed by eBuddies (the coder). Waiting for mikem2007 (the buyer) acceptance.
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,353,350 on Tuesday Apr 10, 2007 10:23:58 AM EDT
Top Coder!
Hey Mike,
Unfortunately we were forced to report work complete in order to avoid not being able to do so because of various network attacks RAC suffered these days.
Should you have any other questions don't hesitate to post them. It was a pleasure working for you.
Please don't forget to post a rating for our work on your project.
Thanks again,
Regards,
Christian and Radu, Project Mangement - eBuddies Team.
Reply
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,353,581 on Tuesday Apr 10, 2007 10:39:17 AM EDT
* I hereby certify and legally confirm that eBuddies has completed 100% of this project to my complete and total satisfaction. I "Accept 100% of the work as complete" (per the Rent a Coder Custom Software Buyer Agreement) and authorize Rent A Coder to release payment to the coder in the amount of $0 USD.
* I further GUARANTEE that the coder has sent me all deliverables (onsite) that correspond to the aforemonetioned portion of the project, and that they have been fully and vigorously reviewed and tested to my complete satisfaction.
* I further GUARANTEE that this is not an advanced payment. I understand and agree that if it is, then not only may I lose all of my funds in exchange for nothing, but that this is a violation of my Seller's agreement and I may be ejected permanently from the site.
* I understand and legally agree that under NO CIRCUMSTANCES will I EVER be able to get these funds back. I formally and irrevocably release ALL claim to said funds, from this point in time (4/10/2007 10:39:17 AM EDT), onwards.
Reply
Tuesday Apr 10, 2007 10:39:19 AM EDT
Project phase change: 100% of work was accepted by mikem2007 (the buyer). eBuddies (the coder) account has been credited. mikem2007 (the buyer) has legally certified that the contract is now 100% fulfilled by eBuddies (the coder), and released them from any further contractual obligation on this project. However, one or both parties may still wish to correspond to discuss the possibility of future projects.
Tuesday Apr 10, 2007 10:39:19 AM EDT
mikem2007 (the buyer) accepted 100% of work and released $0 from escrow to eBuddies (the coder)
By mikem2007 with 3 ratings
From Austin, Texas in United States (see local date/time)
Posting # 11,353,702 on Tuesday Apr 10, 2007 10:46:52 AM EDT
Ok well thanks a whole lot. I'm very pleased with the job, and I've indicated so on your rating.
I don't know whether there is a buyer rating for you to post on me, but I hope you'll do so as well.
Thanks again. Look forward to working with you again.
Mike
Reply
Wednesday Apr 11, 2007 2:39:41 PM EDT
Original posted deadline expired. It was set by mikem2007 back on Monday Mar 26, 2007 9:14:44 AM EDT for 14 days.
Wednesday Apr 18, 2007 11:24:40 PM EDT
Project phase change: 100% of work completed and accepted. eBuddies (the coder) has been paid.
if (.c || .cpp) {
put on right
} else {
put on left
}
Let me know,
Thanks,
Mike
Reply
By eBuddies with 4 ratings averaging 10 (Excellent)
From Oradea, Bihor in Romania (see local date/time)
Posting # 11,313,384 on Friday Apr 6, 2007 3:38:06 PM EDT
Top Coder!
Attached File
(1,066.88 kb)