Attached you will find the next version (v0.01) of my GUI Builder
(gb).
Be warned - it is far from perfect.
Many Thanks to Aldo for his Graphics Code and it's support for mouse
events.
What's new (over what Aldo released):
- More Objects supported
(Radiobutton,Checkbox,Groupbox,Combobox,Listbox
and Progressbar are new)
- Objects can now be sized by eight grabbers instead of one
- Unlimited Undo
- Object(s) can be Copied and Pasted
- Autosave feature saves current design every x seconds
- Can use button clicks to size and move object(s) by given amount
- Align groups of objects
- Adjust width and/or height of group of objects
- Set Spacing between groups of objects
- Design can be saved and reloaded
- Basic properties for Window and Objects can be changed through
Popup Dialog window
My Environment:
Two PCs : 200Mhz, 64Meg Pentium - Win95
333Mhz, 64Meg PentiumII - Win95
Perl : Activestate Build 518
Win32::GUI: Build 434
Note: Need to make change to GUI.pm file to support submenus (See
"GUI.pm Change" below).
Basic Setup and Use:
Install Win32::API (if you haven't already)
Unzip 'zip' file in an empty directory. Open a DOS Window and
type:
perl gb
The "GUI Builder" window should come to life.
Click File->New In the "Window Properties" Window change what you
like
then click "OK". The "Name:" field contain the variable associated
with the window (ie. $Win).
When you click "OK" a blank design window appears.
Click on one of the objects from the toolbar and it's related
property
window will appear. Fill in the text when appropriate and click
OK.
Move the mouse over into the design area to place the object.
Right Clicking the object will bring up a menu.
Working with a group of objects:
Left click and hold down in an open area to the top left of a
group
of objects. Drag the mouse down to the bottom right of the group
of
objects - a red box will appear around the objects. There are
now
several things you can do with the objects by right clicking in
the
red box. If you left click, hold down and drag in the red box,
you
can move the objects around on the screen. Clicking outside the
red
box cancels the select mode.
Known Bugs:
Black Draw - After a period of time or a number of objects/clicks,
the
screen will draw lines and objects in a thick black color. The
design
can be saved at this point (File->Save) so you won't loose
anything.
After saving, shutdown, restart gb and reload your design. I don't
know if this the fault of 'gb' or Win32::GUI.
Click of Death - Occasionally clicking in the design area will
cause
gb do die completely (make sure the autosave feature is turned on).
Font and Color settings don't work - haven't put much effort into
getting them working right - next version.
Objects can be sized smaller than related text making them look
strange - I'll fix this in the next version.
A started playing with a list of recently opened files to appear
under
the 'File' menu, but I haven't finished the code so it may not work
remember all the files that it should.
GUI.pm Change:
To support Sub-menus, change GUI.pm, line 451 (for build 434)
--- from -----
$M->{$parent}->SetMenuItemInfo(
-submenu => $M->{$parent."_SubmenuButton"}
);
--- to -------
$M->{$parent}->Change(
-submenu => $M->{$parent."_SubmenuButton"}
);
--------------
Need Help With:
(most important)
Length of Text is not being calculated correctly. Result: text on
objects like buttons is not centered and width of objects like
label
are longer than they need to be.
Full support for Tabs (I anticipate many options under
File->Preferences which I would need to group under different
tabs).
Would like to know how I can put graphics on a button (for the
buttons
in the 'Sizing' and 'Movement' groupboxes).
Support for Keyboard events (Key pressed, Key released, etc)
Better Rendering of the Radiobutton. I need the 'arc' function to
do a better job of drawing the radio button. If anybody wants to
send me the code for drawing a better radio button or if Aldo has
time to implement the arc function that would be good.
Please send comments or questions back to this mailing list.
Enjoy - David Hiltz
gb0.01.zip
begin:vcard
n:hiltz;david
x-mozilla-html:FALSE
adr:;;;;;;
version:2.1
email;internet:[EMAIL PROTECTED]
title:whatever
x-mozilla-cpt:;0
fn:david hiltz
end:vcard