"filax's" BCF GUI is great - I suggest you get it

Miscellaneous Forums/General Discussion/"filax's" BCF GUI is great - I suggest you get it

This version (2.0) is free (currently version 2.07):
http://www.blitzbasic.com/toolbox/toolbox.php?tool=6


This one (3.1) costs:
http://www.blitzbasic.com/toolbox/toolbox.php?tool=5


If you have use for a GUI in your game then download the free version now (BCF 2.0) and start playing with it.


Now, I must admit, I was very wary of this as "filax" is French. I have a problem with foreign Blitzers due to language reasons - especially for this type of application. I nearly had a tantrum when I opened the documentation to find it was in French. However, I opened the 'Readme' and it was an English translation of the Documentation.

I cannot see any reason why someone could not totally love BCF 2.0 - it's free and it is nicely documented (English included). Plus, it comes with 20 examples to run.

You do have to faff about with it a bit as all the example code is in French.

I'll play around a bit with version 2.0, but I can definetley see me paying for the 3.1+ version.

One of the things I like about this GUI is it is not too 'modern' looking - ie, it will not look too out of place in a fantasy RPG-type game.

Right, best you go download it.

Nice one "filax" - buy yourself a pizza.


EDIT:
Just to clarify, considering some people may already have a freeware version. The current freeware version is 2.07.

Or some bacon.

Indeed.

Just a few pointers from myself to new users of it:

concerning the 'close' and 'minimise' options for:
BCF_CreateWindow(Px,Py,Tx,Ty,Style,Icon,Label$,Close,Minimize)
They seem to be transposed.

With regard to the same command - it seems the 'Icon' value cannot be null - ie the GUI seems to force you to have one of the 5 predefined icons at the top left of the window. To get around this (if like me you do not want any icons at all) - make a copy of the include file and then edit (for example '.WindIcon05' to the following:

.WindIcon05
Data 15
Data 15
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

Then just make sure you select the icon you want to use as a blank one - it no icon.

Mmm, there seems to be no option to disable the dragging of stuff - disabling the pointer does not help. I don't want the user to be able to necessarily move stuff around the screen. You can probably achieve this by editing the include - but, considering it is in French, it may be a bit of a chore.

In the meantime:
MyWindowposx=BCF_GetWindowX(MyWindow)
If MyWindowposx<>whatever Then MyWindowposx=whatever
MyWindowposy=BCF_GetWindowY(MyWindow)
If MyWindowposy<>whatever Then MyWindowposy=whatever
BCF_ChangeWindowPosition(MyWindow,MyWindowposx,MyWindowposy)
The user can still drag stuff, but at least it will return to where it came from when they let go of the mouse button.

EDIT - this is less bent:
If MyWindowposx<>whatever Or MyWindowposy<>whatever
	MyWindowposx=whatever
	MyWindowposy=whatever
	BCF_ChangeWindowPosition(MyWindow,MyWindowposx,MyWindowposy)
EndIf


what im still missing in EVERY GUI i've seen so far is:
- a PropertiesList
- a Listbox with sortable columns
- a Listbox with an iconic viewmode
and
- some kind of richtextbox for formated text

Ah, "OJay" - lured into my trap.

Hand this project over to me:
http://www.blitzbasic.com/gallery/view_pic.php?id=1186&gallery=hr&page=1

I know he saw that - he just skulked off to hide somewhere.


I think "filax" might be a crafty old fox. I am wondering if he has been crippling little bits of BCF 2.0 to encourage people to buy the full version. In the docs he says:

...good luck debugging it :)
which makes we wonder if he has been doctoring it.


There appears to be something wrong with the 'Gauges' in BCF. Setting both the 'Value' and 'Maximum Value' to 100 resultes in 101% - to get around that you have to either set the Value to the actual value -1 or just raise the Max Value by +1. However, this is visually obvious as it looks like the bar is at 99% even though it is reporting to the user that it is 100%.

EDIT:
Setting 'Value' to 0 and 'Maximum Value' to 100 results in 1% - so something is definetley not right here. Setting the Value to -1 results in 0% which is good, but the Gauge is showing a visual reading which is not good.

EDIT:
I think I have worked out the gauge problem - hard to explain but they do not report a 'real' value in relation to the gauge - they do it in blocks - like rounding a number up, but also using the value prior to rounding - ie, you have 2 outputs (a visual one and a numeric one - one is real the other is rounded).


Still, I am having tons of fun playing with this.

There is an error in the 'BCF_MsgInputBox$(Title$,Label$)' documentation.

Example 1 :

Rep$=MsgInputBox$("Information","BCF is cooool")

If Rep$="Vive BCF" then
Print "You’re so right :)"
endif

Example 2 :

Rep#=MsgInputBox$("Object Rotation","0.05")
TurnEntity MonObjet,Rep#,Rep#,Rep#

These don't work as they don't have the BCF prefix - 'MsgInputBox$' should be 'BCF_MsgInputBox$'.

There may be other examples that have this error.


Aurora 3D Max The #1 3D engine for BlitzMax Powered by Ogre The industry standard high grade 3D engine five years in the making - Dx9/OGL Update 4 Released 20/04/2006
So good it has Skidracer running scared, deleting topics and generally frailing his limbs about in a comical fashion.
Aurora Net - The Ultimate 3D engine for the ultimate language, C# is out now. Out Now
Pro version - Click here to buy now! 40 GBP
Lite Version - Click here to buy now! 20 GBP
Official Forums
Online Docs
Official Website
Promotion
Until now till midnight, Aurora PRO for BLITZMAX will be avaiaible for the same price as Aurora Lite.
Just buy the lite version and you'll recieve the full pro version with BlitzNet Optica, Max AVI and more.

You'll also recieve full updates as if you paid for the pro version.
Copies Sold Today:4

The BCF GUI is in French - so you get things like 'Valider' and 'Annuler' instead of 'Confirm' and 'Cancel'.

In the include file there is:

; --------------------------------
; Innitialisation de la GUI
; --------------------------------
Function BCF_InitBCF(Style=4,Langage=1)



Langage=1 being French and Langage=2 being English - however, this does not totally globally change the language. For example to change 'Annuler' to 'Cancel', you will have to also hand amend these sections (only one entry per section):

; ------------------------------------------
; Selection du type de requester
; ------------------------------------------

and

; ------------------------------------------
; Creation du body du requester
; ------------------------------------------



There isn't much else to do as most of it is done with '; Innitialisation de la GUI' section.

Remember to look for 'Valider' too.

There is other French in there too - such as:
BCF_MsgBox("Alerte !","Le lecteur "+Drive$+" ne répond pas",0)


There isn't too much to amend and considering the code is 6000+ lines - your fastest way of finding text is to search for '"' (a single quote) - believe me - it is the quickest way (and most accurate).

In fact, be careful when editing the language - I just spotted that 'Valider' can mean more than one thing in BCF ('Confirm' and 'Open') - I assumed it just meant 'confirm' but Babel Fish says it means 'To validate' which is a bit open-ended.


EDIT:
Here are a couple to look out for:

'Oui' - means 'Yes'
'Non' - means 'Not' according to Babel Fish - but I think it means 'No' in relation to BCF.

Both only appear once.

In fact, apart from 'BCF_MsgBox("Alerte !","Le lecteur "+Drive$+" ne répond pas",0)', which I have already mentioned, I don't think there is any more French to take out.

What is the skinning like on the GUI? For games, this is very important! How easy is it to customize the look and feel.

Worth mentioning: this is an add-on for B3D and B2D, not BMax.

...But Filax also has a bmax GUI lib, called 'iGlass'.

I have always like Filax's stuff... he is very smart and aside from a few language issues (it seems puki caught more than I did) I have no probs with BCF... I did note a slowdown on stupider machines (ie: my Athlon 64 ran it great... my wifes P3 had issues with mouselag)

Yeh, the latest version is only like £15.00 - not exactly an expense.

Are you mad?! £15 is like, 7 pints!

Yeh, but when you are a millionaire it is like annoying little pennies.

puki: please visit my site and hit the PayPal button. :)

For anyone experiencing mouse lag try this (espescially nvidia users)

Go to your driver properties and change "Frames to render ahead from 3 (default) to 0 and magically the lag is gone :)

This works for any DX program that experiences lag using a hardware mouse cursor.

Later,

Allan

Nice one "Hammy".

Excellent!!! It works!!! only a slight jitter during Sacred gameplay on her machine... Tyhanks Hambone!