GUI/Maximum window dimensions: Difference between revisions
Gambas (imported from markhobley.yi.org) |
|||
Line 11: | Line 11: | ||
==== Tiling Window Managers ==== |
==== Tiling Window Managers ==== |
||
For a tiling window manager, the values calculated should represent the maximum height and width of the display area of the maximum size a window can be created (without scrolling). This would typically be a full screen window (minus any areas occupied by desktop bars), unless the window manager has restrictions that |
For a tiling window manager, the values calculated should represent the maximum height and width of the display area of the maximum size a window can be created (without scrolling). This would typically be a full screen window (minus any areas occupied by desktop bars), unless the window manager has restrictions that prevents the creation of a full screen window, in which case the values represent the usable area of a window that occupies the maximum permissible window size (without scrolling). |
||
== {{header|Gambas}} == |
== {{header|Gambas}} == |
Revision as of 21:22, 27 November 2010
The task is to determine the maximum height and width of a window that can fit within the physical display area of the screen without srolling. This is effectively the screen size (not the total desktop area, which could be bigger than the screen display area) in pixels minus any adjustments for window decorations and menubars.the idea is to determine the physical display parameters for the maximum height and width of the usable display area in pixels (without scrolling). The values calculated should represent the usable desktop area of a window maximized to fit the the screen.
Considerations
Multiple Monitors
For multiple monitors, the values calculated should represent the size of the usable display area on the monitor which is related to the task (ie the monitor which would display a window if such instructions were given).
Tiling Window Managers
For a tiling window manager, the values calculated should represent the maximum height and width of the display area of the maximum size a window can be created (without scrolling). This would typically be a full screen window (minus any areas occupied by desktop bars), unless the window manager has restrictions that prevents the creation of a full screen window, in which case the values represent the usable area of a window that occupies the maximum permissible window size (without scrolling).
Gambas
Overview
In gambas, the trick to determining the maximum window size that will fit on the screen is to create a form that is maximized and then query its dimensions from within a Form_Resize() event. Note that the form can be invisible during this process, and typically we would use the main modal window (FMain in this example).
Creating the form
From with the project create a form (FMain) with the following properties set:
<lang gambas> FMain.Maximized = True FMain.Visible = False ' The form can be invisible </lang>
From within the projectview, rightclick the FMain form and select Edit class from the contextmenu. This will display a form class file (FMain.class) as follows:
<lang gambas> PUBLIC SUB _new()
END
PUBLIC SUB Form_Open()
END </lang>
Adding the form resize event
We can now add a Form_Resize() event to the class file with the necessary code to obtain the screen dimensions as follows:
<lang gambas> PUBLIC SUB Form_Resize()
PRINT "The maximum window size that can be used is "; FMain.Width; " x "; FMain.Height
END
</lang>
Visual Basic
<lang vb>TYPE syswindowstru
screenheight AS INTEGER screenwidth AS INTEGER maxheight AS INTEGER maxwidth AS INTEGER
END TYPE
DIM syswindow AS syswindowstru
' Determine the height and width of the screen
syswindow.screenwidth = Screen.Width / Screen.TwipsPerPixelX syswindow.screenheight=Screen.Height / Screen.TwipsPerPixelY
' Make adjustments for window decorations and menubars</lang>