xsharp.eu • VO GUI windows
Page 1 of 2

VO GUI windows

Posted: Tue Jul 11, 2017 12:10 am
by TrevorLE
Hi there guys

We have a lot of VO GUI windows in our apps and which have the old style square sharp edge button and control styles. Any new windows we do in winforms, but we have 1000+ of the old windows so as you can imagine not something we can easily convert. We are going through windows gradually and re-coding them when we can, but I am looking at ways to make the existing windows look more modern without having to re-code them in winforms if at all possible as a medium term solution.

I recall there was a setup with a manifest file at one stage that could give the windows nicer XP style buttons which we never did and I am not sure if this still applies and would work in Vulcan / X#.

I am wondering if we have any options here to make the window controls look more modern?

any suggestions will be appreciated.

thanks in advance
Trevor

VO GUI windows

Posted: Tue Jul 11, 2017 12:29 pm
by Chris
Hi Trevor!

Please unzip and put the attached .rc file in your project's folder, also copy in the same place the cctl6.man file from VO (it should be in the Appwiz fodler).

Next, from the context menu on the project item in the Solution Explorer select Add Existing and pick the manifest.rc file.

Build & run, now the manifest should be in effect. Is this what you were looking for?

Chris

VO GUI windows

Posted: Tue Jul 11, 2017 10:05 pm
by TrevorLE
Chris

Thanks for that - I have added the manifest.rc to my project and placed the cctl6.man file in the root folder of my solution. It re-compiled fine, but I don't notice any difference to my buttons.

I have attached a sample screen shot from the running app with a small window with standard pushbuttons. I was hoping to get a more modern, softer looking button in this case.

Is there something I am missing here?

thanks for the assist!
cheers
Trevor

VO GUI windows

Posted: Wed Jul 12, 2017 11:53 am
by Chris
Hi Trevor,

Hmm, that's strange, no of course it shouldn't look like that. Can you please test with the attached small app I prepared? I just created a simple mdi app in VO showing a datawindow, ported it to x# and added the manifest, it now looks ok on my machine. Does this show better in your machine that the screenshot you posted? If it does, then maybe something went wrong when adding the manifest to your project, could you send it to have a look? If this still doesn't look any better, then the problem lies elsewhere and we need to investigate, maybe some environmental option.

Chris

VO GUI windows

Posted: Wed Jul 12, 2017 12:12 pm
by FFF
Chris,
attached the view on my 8.1/64 machine, identical called from Xide as from VS. Is that as it should be?
View.PNG
View.PNG (9.48 KiB) Viewed 726 times
Never bothered with these "style" questions, so i grab the opportunity ;)

K.

VO GUI windows

Posted: Wed Jul 12, 2017 12:24 pm
by Chris
Hi Karl,

Hard to tell. The way MS changes the UI makes it difficult to tell which is a new and which is a very old version :-)
Try to remove the manifest, how does it look now?

Chris

VO GUI windows

Posted: Wed Jul 12, 2017 1:25 pm
by FFF
Chris,
removed the rc (BTW, would be nice, if one could "comment" it out in the ide), the look certainly changes, see screenshot.
View_without_Manifest.PNG
View_without_Manifest.PNG (10.05 KiB) Viewed 726 times
But i think, Trevor was after that "button with rounded edges" look MS had had once, can't remember when ;).
FWIW, the "with manifest" looks for me like W95 forms did... And what a bunch of code got produced to get these nice "3-D"-look - only to dump it now again ;(

K.

VO GUI windows

Posted: Wed Jul 12, 2017 1:35 pm
by wriedmann
Hi Karl,

the manifest defines what version of the common controls are to be used - v4 vs v6. And so they define the basic look.
If you compare the both versions of the application under different versions of the operating system (AFAIK the major difference is in Windows 7), with different settings, they are very different.
With the right settings and the manifest, the pushbuttons in Windows 7 show mouse-over effects, whereas without manifest there is no mouse-over effect. And with the manifest you had the rounded windows corners, and windows with shadows.

Windows 8.x and Windows 10 AFAIK don't have this big difference because Microsoft has returned to a flat look to save computer ressources. But the aspect of the entire application changes, and there are some other differences. A combobox with the manifest opens larger than designed when the contents are longer, but with manifest this box opens only as designed.

So IMHO the manifest is an absolute must, but even with it the look is less modern that with WinForms (so I expect a big step forward when moving to X# and a mixed GUI, maybe with Roberts WinForms based GUI classes).

Wolfgang

VO GUI windows

Posted: Wed Jul 12, 2017 1:37 pm
by Chris
Hi Karl,

I know, every time I happen to open my WinXP virtual machines, I remember how nice looking were the buttons, windows etc in it and shiver when comparing it to what we have today..

Btw, I think it should be possible with putting different settings in the .man file to produce different looking results. But I don't have much experience in this area, maybe someone else can step in?

Chris

VO GUI windows

Posted: Wed Jul 12, 2017 1:45 pm
by wriedmann
Hi Chris,
I think it should be possible with putting different settings in the .man file to produce different looking results.
AFAIK this is the only setting:

Code: Select all

<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
that influences the application look. The manifest file is important for other things too, like to demonstrate to compatibility to newer operating systems (otherwise your application will think to be used with Windows 8 even when used in Windows 10):

Code: Select all

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
    <application> 
        <!-- Windows 10 --> 
        <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
        <!-- Windows 8.1 -->
        <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
        <!-- Windows Vista -->
        <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> 
        <!-- Windows 7 -->
        <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
        <!-- Windows 8 -->
        <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
    </application> 
</compatibility>
Other options would include the side-by-side use of COM components, or the requirement of elevated rights.

Wolfgang