Suggestions for BlitzPlus

BlitzPlus Forums/BlitzPlus Programming/Suggestions for BlitzPlus

JoshK(Posted 2005) [#1]
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.


JoshK(Posted 2005) [#2]
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.


Kevin_(Posted 2005) [#3]
-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.


Beaker(Posted 2005) [#4]
-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.


Picklesworth(Posted 2005) [#5]
Edit: Realized why my code will not work in most cases.


JoshK(Posted 2005) [#6]
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.


JoshK(Posted 2005) [#7]
Also, on all machines, your suggestion will cause the window to appear in the task bar, and then disappear.


MattVonFat(Posted 2005) [#8]
If you want to create a hidden window can't you just use HideGadget?


Difference(Posted 2005) [#9]
.


Snarty(Posted 2005) [#10]
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.


NetGamer(Posted 2005) [#11]
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



JoshK(Posted 2005) [#12]
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.


CS_TBL(Posted 2005) [#13]
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.


JoshK(Posted 2005) [#14]
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.


Beaker(Posted 2005) [#15]
I actually meant using SetPanelColor(), but what CS_TBL said still stands.


Red(Posted 2005) [#16]
more commands for B+ toolbar : here

http://ed.folio.free.fr/download/B+%20Advance%20Toolbar.jpg


JoshK(Posted 2005) [#17]
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.


JoshK(Posted 2005) [#18]
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.


JoshK(Posted 2005) [#19]
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



Red(Posted 2005) [#20]
Sorry Aero I forgot to update the DECLS file.
I'll fix it


JoshK(Posted 2005) [#21]
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.