Hello Kavya,
variants are useful to create different layouts of a GUI component. So, yes, you can manage within a project multiple designs of one and the same GUI component and switch the design if necessary. See also Managing variants.
The rotation, however, is a problematic aspect. If there is no GPU in the target system able to perform the rotation, this will impact the performance of the GUI application. To avoid this, Embedded Wizard provides the attribute ScreenOrientation. This attribute affects how image and font resources are generated and stored in the target system. In this manner, the resources are already prepared for the desired rotation so the HW (e.g. 2D accelerators) can access and copy the images or font glyphs directly without applying any additional rotation steps.
With ScreenOrientation you are thus able to select the desired orientation without any performance disadvantages. The selection, however, is static and can't change at the runtime. Thus if your question "Is there any possibility to achieve this within a solution ..." asks for the possibility to manage two different rotations within one binary in the target system, the answer is 'no', or at least 'yes, but with performance impact'.
If your target system contains a 3D GPU (it is e.g. OpenGL ES 2.0 compatible), orientation can be configured at the runtime. Otherwise you can modify the default implementation provided in the Build Environment so that when copying the graphical contents rendered by the GUI application, you take care of an additional rotation step. In other words, Embedded Wizard renders into an off-screen frame buffer without any rotation and then at the end of the screen update you copy the pixel from the off-screen buffer to the final frame buffer by taking in account the desired rotation. You implement for this purpose two for-loops to iterate over the pixel from the off-screen buffer and copy them to the frame buffer.
If your question "Is there any possibility to achieve this within a solution ..." asks for the possibility to manage two different rotations within one Embedded Wizard project, the answer is 'yes'. In such case, you would need two Profile members in your project. One Profile for the Landscape orientation and the second profile for the Portrait orientation. The desired orientation is configured for each Profile by using its ScreenOrientation attribute. For example, you configure the Landscape profile with orientation Normal and the Portrait profile with orientation Rotated_90.
Now, you can create all the GUI components needed in your project (e.g. menus, dialogs, screens, etc.). You design the components consequently for the Landscape layout. Then you override each GUI component by a new variant and adapt the size and the layout of the component to be Portrait. Finally you configure the attribute VariantCond of each variant to correspond to the name of the Profile representing the Portrait layout.
When you generate code for the profile Landscape, the variants are not taken in account. Thus, from the generated code you can create a binary for the Landscape layout. When you select the Portrait profile for code generation, the variants are active and override the layout of all GUI components to be Portrait. From the generated code you can create a binary for the Portrait layout. So from one and the same Embedded Wizard project you can create two binaries for two different layouts/rotations.
So far the technical backgrounds and the possibilities. Does it help you further?
Best regards
Paul Banach