Suggestions for BlitzPlus
BlitzPlus Forums/BlitzPlus Programming/Suggestions for BlitzPlus
There are my suggestions for making BlitzPlus a better language:
-Use the gadget height to determine the height of the ComboBox dropdown list.
-Add toolbar separators. Only a very simple program would have a toolbar without these.
-Improve the open and save file dialogs. PureBasic lets you list multiple file types, and has a command to tell you which file type was selected.
-Add a panel style with no background, for OpenGL rendering.
-Add multiple statusbar areas. Only a very simple program would have a single statusbar area.
-Add columns to the ListBox gadget.
-Add an ImageButton gadget, that can have the image changed (for making a color pick button).
-Add a drop-down toolbar button style.
-Add commands to delete/insert menu items (A "recent files" menu is an example where this would be used).
-Add tab key support to switch to the next gadget.
-Add a hyperlink gadget.
-Add a listbox style where whole row is selected.
-Add a window repaint event.
-menu icons.
-create a window that is hidden. This one is very important, because my application opens a bunch of windows all over the place, and looks very unprofessional.
Is this language still being updated? Will any of these features be implemented soon? Thanks.
Wow, IBasicPro has everything that I had time to check for, and it can compile DLL's. I compiled a dll and ran it from BlitzPlus, and it was able to return a string without all the PureBasic global variable nonsense.
-create a window that is hidden. This one is very important, because my application opens a bunch of windows all over the place, and looks very unprofessional.
1) Get the height of the desktop.
2) Define your windows with a Y coordinate greater than your desktop height.
3) Move them into view when you need them.
It works for me.
-Add an ImageButton gadget, that can have the image changed (for making a color pick button).
You can do this already using a colored panel. I did this in Fontext, but I agree that ImageButtons should be standard.
Edit: Realized why my code will not work in most cases.
1) Get the height of the desktop.
2) Define your windows with a Y coordinate greater than your desktop height.
3) Move them into view when you need them.
It works for me.
I tried that. It causes visual glitches on some machines. And it's not like adding a 'hidden' flag is anything hard to do.
Also, on all machines, your suggestion will cause the window to appear in the task bar, and then disappear.
If you want to create a hidden window can't you just use HideGadget?
.
Also (with nView I think it is) a user can force windows on to the desktop (regardless of positioning them outside). So the WS_VISIBLE flag should indeed be optional.
HideGadget needs the gadget to have already been created. Doing this:
window = CreateWindow("Invisible Window", 0,0,100,100)
HideGadget window
causes the window to flash on the screen depending on when it appears and when redraw kicks in. It's easier to just set the window 'very very small' or 'off-screen'...
window=CreateWindow("UltraTiny",0,0,1,1)
HideGadget window
window2=CreateWindow("OffScreen",-10,-10,10,10)
; then later on
ShowGadget window
;and
SetGadgetShape window2,0,0,100,100
Beaker, how did you use a panel to make a color button? No matter what order I create them in, a panel placed over a button gets drawn under the button.
You can't use a panel as 'drawcanvas' for a standard button to place an image on that button.. what he meant was putting an image on that panel, where that image is an image of a complete button.
btw: Canvas all the way.. you can only pre-set a panel by loading an image, you can't create an image and 'upload' it to a panel... (bummer!) Hence: use a canvas.
Canvases use DirectX surfaces. DirectX surfaces can get messed up if other DirectX programs are used. So for a professional application, a "home-made" control doesn't cut it.
I actually meant using SetPanelColor(), but what CS_TBL said still stands.
more commands for B+ toolbar :
herehttp://ed.folio.free.fr/download/B+%20Advance%20Toolbar.jpg
Thanks for that. I will add that in.
I've actually got a huge set of extended styles, (real) new gadgets, and functions for BlitzPlus. Maybe one day I will wrap them all up in one package.
Wow, there are so many missing libs, and even a missing include file in that package.
I can't find the ImageListSize() command anywhere. It doesn't seem to be an API function.
Here's the status of the wishlist:
Request Implementation
================== ==================
"Hidden" window style none
Combobox height none
ToolbarSeparators implemented by BR
Open/Save dialogs PureBasic hack
OpenGL panels Requires messy hack To detect repaint event
Statusbar boxes PureBasic hack
ListBox columns PureBasic hack
ImageButton gadget WinAPI can be used
Dropdown toolbar none
Delete/Insert menus none
Tab gadget cycle implemented by BR
Hyperlink gadget none
window repaint event messy hack
menu icons none
Sorry Aero I forgot to update the DECLS file.
I'll fix it
Now that Mark has implemented toolbar separators, there is probably no need, but thanks for posting that.
Of course, there is a bug in B+ 1.41, and the toolbar separator spacing is additively distorted with each separator. I'm sure they will fix it quickly.