IGlass GUI for blitzmax - VI

BlitzMax Forums/BlitzMax Programming/IGlass GUI for blitzmax - VI

Scott Shaver(Posted 2005) [#1]
Starting fresh Thread

Links to previous threads:

http://www.blitzbasic.com/Community/posts.php?topic=46725 IGlass GUI for blitzmax - I

http://www.blitzbasic.com/Community/posts.php?topic=47927 IGlass GUI for blitzmax - II

http://www.blitzbasic.com/Community/posts.php?topic=50160 IGlass GUI for blitzmax - III

http://www.blitzbasic.com/Community/posts.php?topic=50689 IGlass GUI for blitzmax - IV

http://www.blitzbasic.com/Community/posts.php?topic=51146 IGlass GUI for blitzmax - V


Filax(Posted 2005) [#2]
Note to the customer's ....

When you change your email adress, please tell me ! why ?
because i have other to do :) than send the same email 500
times ...

Cheers :)


Matt McFarland(Posted 2005) [#3]
*says with full curiousity and not rhetorically* Who are you Scott and what do you have to do with Iglass? :)

I heart IGlass..


SillyPutty(Posted 2005) [#4]
sorry filax :(

I have changed my email addy

erick.grove _at_ gmail.com


Filax(Posted 2005) [#5]
Hi Deux :) what your order registered email ? i dont find
Eric Deux in my database :)


Scott Shaver(Posted 2005) [#6]
*says with full curiousity and not rhetorically* Who are you Scott and what do you have to do with Iglass? :)



I have nothing to do with iGlass other than being a user of it. I seem to have a hard time dealing with really long threads and since filax just released a new version I thought it would be a good time to start another one. Sorry this upsets everyone, at least I waited until there were over a hundred msgs this time.


SillyPutty(Posted 2005) [#7]
Filax

My Name is Erick Grove :) ericgrove _at_ tiscali.co.za


BeppeZ(Posted 2005) [#8]
filax

I have just received the new version of IGlass 1.5.3, but, when I tryed to compile some examples, such as IGlass_Demo.bmx, I noticed that the execution was really slower than version 1.5.2 compiled under BlitzMax 1.10. The machine where I make BlitzMax development hasn't changed so I'am wondering what has happened. If you have any idea I would appreciate.
Thanks in advance.


Filax(Posted 2005) [#9]
??? Absolutly not ! I haven't change anything about
graphics drawing ! and the kernel have not change.

I have juste made other stuff and recompiled the module.

You can see the different changes in the VERSION.TXT

??? MAybe try with other graphicsdriver like directx vs opengl

Maybe mark have change some graphics stuff , i don't know !

But personaly ... If I had seen FPS drop's I would not have releasing ! your situation is strange ?


Kanati(Posted 2005) [#10]
haven't people been complaining about a horrible slowdown since 1.12 came out? probably having to do with the auto garbage collection?


BeppeZ(Posted 2005) [#11]
filax

If I use "SetGraphicsDriver GLMax2DDriver()" everything runs better.

I also reinstalled version 1.10 of BMax. It's faster, expecially in full-screen modes. Maybe Mark has really changed something ... I'll make some more tries tomorrow.

Thank you for your support and for your great IGlass GUI.


Cartman(Posted 2005) [#12]
Is anyone else having problems with getting the updates? I'm sure filax is sending them out, however my hotmail account and my comcast one are both stripping out random emails that contain attachments. This is becomming annoying when I need to get these updates. Anyone have any suggestions?


Smokey(Posted 2005) [#13]
I agree, updates via email is terrible and i'm on ppp so..
I rather download it via a web site instead of email

Filax can you just put a link of the upgrate and email people with the link for the upgrate.


Filax(Posted 2005) [#14]
No ! because, there is a longtime i had made update with link :

Result the download link spread on IRC ....

When you give me correct email adress, or hotmail adress, or
if your mail box is not full :) there is no problem to get
the updates :)

Maybe a software to get update like games ?


NoBoDo(Posted 2005) [#15]
Maybe a login page that verifies the userid/password against a database to verify they are registered users before allowing the download from a secured website folder?

Perhaps even use an installer that uses a webservice on a website to verify the install?

A binary sent in an email is easier to spread across the internet than a download link. You can secure download links .


Cartman(Posted 2005) [#16]
We need to do something, because I am still having trouble getting updates. And I don't want to continue to ask filax to keep sending them to me. I never let my inbox get more than half full btw, so that's not the issue. A login page would be fine with me.


Filax(Posted 2005) [#17]
Ok ... I search another solution.


seyhajin(Posted 2005) [#18]
Hi all,

I just remonted the post for call the IGlass studio (GUI Editor) as Open Source now, for download visit my new website :) http://www.seyhajin.com

Good coding to all !


Scott Shaver(Posted 2005) [#19]
filax, I just found a little problem. I have a custom button on the screen and then I add a tab to the screen which overlaps the button. when the mouse is in the tab but over the position of the button the button's tooltip gets displayed.



BTW, are you going to add support in your input fields to handle variable width fonts? I know you were having trouble figureing out how to handle the mouse clicks in the field. Here is some code from my little gui experiment that shows how to handle the issue.




Filax(Posted 2005) [#20]
Thanks for tooltips bug scott ! :)

I'll look for the inputbox a little bit later, because i'm
finishing my new library ! the release coming.

But i'll fix button tooltips this day ! promise.


Sean Doherty(Posted 2005) [#21]
filax,

I modified the game play mouse to be a target as follows:

[X]

However, the center of the target (the x in this case) is not at the center of the mouse. Instead, as you would expect the upper left corner of the target is the mouse x and y coordinates. Is there an easy way to fix this? Is there a way to disable rendering of the mouse?

Thanks


Filax(Posted 2005) [#22]
In windowed mode ? the mouse ?


Sean Doherty(Posted 2005) [#23]
Full screen and I am refering to the IGlass mouse.


Sean Doherty(Posted 2005) [#24]
Ok, I found the mouse code. It doesn't look like there is anyway to hide the mouse without actually changing the code or passing a mouse pointer that is the same color as the background.

You may want to think about adding a Mouse.Hide() and Mouse.Show() command? Jyst a thought...


Sean Doherty(Posted 2005) [#25]
I having a bit of an issue with the rendering of my IGlass tabs. The following is an image of the problem:

www.FreelanceGames.com/Files/Issue.jpg

The tabs seem to display correctly until I play the game and then return to the options menu. I am thinking that there is some state not being reset? Anyone?


tonyg(Posted 2005) [#26]
Filax, running IGlass examples in 1.14 causes...
Unable to convert from TImage to Int
obviously due to the changes.
First error occurs in inc_scheme.bmx line 532


Filax(Posted 2005) [#27]
Don't panic :) mark have made changes :) i'm working on :)

Sean Doherty : Iglass have now a new state :
IGL_MouseState=IGL_MouseOff Don't display the mouse now :)

But for the tab rendering ?? don't understand ! Maybe a
setcolor or setblend must be reinitialised ?

Scott Shaver : I'm trying to recreate tooltip bug,but ... ?
can you post an simple example ?

For the moment:

---------------
Version 1.5.4 :
---------------

- Fixed for blitzmax 1.14 release.
- Fixed for strict mode and superstrict mode !

- The mouse have a new state now ! IGL_MouseState=IGL_MouseOff look the example : IGlass_Mouse.bmx


Scott Shaver(Posted 2005) [#28]
Tooltip problem code. This is in the 1.5.1 version I assume the problem still exists.

Strict 

Framework BRL.GlMax2D

Import BRL.freetypefont
Import BRL.System
Import BRL.Basic
Import BRL.pngloader
Import BRL.Retro
Import pub.igl

?Win32
	SetGraphicsDriver(GLMax2DDriver())
?

Include "./IGlass1.5.1/IGL_Classe/Inc_IGlass.bmx"

Graphics 800,600,32,60 'NOSYNC
IGL_InitGUI(1)

Global PlayBtnCurr:IGL_CustomButton = IGL_CustomButton.Create(IGL_MasterWindow,"",0,0,36,36,"./interface/play/curr_btn_norm.png","./interface/play/curr_btn_norm.png","./interface/play/curr_btn_norm.png",False)
PlayBtnCurr.ToolTip="Show/Hide Current Equipment"
Global VCTab:IGL_Tab = IGL_Tab.Create(IGL_MasterWindow,"Character|Weapons|Armor|Spells|Inventory",10,10,350,440)

While Not KeyDown(KEY_ESCAPE)
	Cls
	IGL_RefreshGui()
	Flip
	FlushMem()
Wend 
IGL_ClearGui()
End




Filax(Posted 2005) [#29]
I believe you don't panic :)

But the problem is :

When gadget are on the same window it's a Z order problem !


SillyPutty(Posted 2005) [#30]
hey filax, did you get my updated email addy ?

Do you have another solution to get updates, for us registered users ?


Filax(Posted 2005) [#31]
Can you remember me your registered name ? i'll search if
i have made changes.

No , for the moment i have not solution (not enought time !!)
but i rename attached file .ZIP to .ZOP like that, this stupid
ISP don't reject mail.

I have send the 1.5.4 version. Check your mail box


SillyPutty(Posted 2005) [#32]
My name is Erick Grove

I changed my email addy to erick.grove _at_ gmail.com
my email was ericgrove@...

Thanks


tonyg(Posted 2005) [#33]
Thanks for 1.54 Filax. Much appreciated.


Filax(Posted 2005) [#34]
Deux : You email adress was correctly updated, don't panic :)

Tonyg : Nothing ! it's a little bit normal :)


SillyPutty(Posted 2005) [#35]
Thanks, but i have still not gotten updates in quite a while.


Filax(Posted 2005) [#36]
???? I have send an email there is 3 hours ? do you receive ?


Sin of Nature(Posted 2005) [#37]
Fast update, thanks. Great support. :)

Sin


Filax(Posted 2005) [#38]
It's quick update :) only to make IGass compatible bmax 1.14


SillyPutty(Posted 2005) [#39]
no, no emails at all, i bet gmail is blocking it :(


Filax(Posted 2005) [#40]
can you give me another adress ? like hotmail ?


SillyPutty(Posted 2005) [#41]
ok filax

try this one

erick.grove _ at_ hotmail.com


Filax(Posted 2005) [#42]
Do you receive ? if it's good i'll use this adress for the future.


SillyPutty(Posted 2005) [#43]
nope, nothing. ARGH


Filax(Posted 2005) [#44]
????????

What can i do ?! i'll send you a temporary link..


SillyPutty(Posted 2005) [#45]
yes please.


Filax(Posted 2005) [#46]
Email send to : ericgrove@...

Reply me when it done.


Filax(Posted 2005) [#47]
Eric ... I'm tired with your email !!! :)

MY ISP say :

ericgrove@...
The following TO addresses are unknown
(check them then return the message):


SillyPutty(Posted 2005) [#48]
dude, I gave you the email above :)

erick.grove_at_hotmail.com replace the _at_ with @


Filax(Posted 2005) [#49]
lol :) i do !!


SillyPutty(Posted 2005) [#50]
Still no email :(


Filax(Posted 2005) [#51]
I think you have a problem ...

I don't know what can i do !


Scott Shaver(Posted 2005) [#52]
filax can I forward it to him from the update I received?


Filax(Posted 2005) [#53]
Yes if you want ! If you are able to send an email to him... :)


SillyPutty(Posted 2005) [#54]
I give up, seriously.

Hotmail sucks, I sent a message to it from my gmail account and I dont get anything.

Cant you forward the temp download link to erick.grove@... ?


Scott Shaver(Posted 2005) [#55]
I tried both your hotmail and gmail accounts, take a look


SillyPutty(Posted 2005) [#56]
your mail came through to my gmail account no problem.

Thanks Scott. :)


Sean Doherty(Posted 2005) [#57]
filax,

Why don't you just create a web site with a user name and password. Once the person has downloaded their version of the software then you could lock out their username until the next release. If they loose there software you could manually unlock for one download or day.

Also you could store the zip file in a database so I cannot be indirectly accesed without going through business logic.

Just a thoght...


Filax(Posted 2005) [#58]
You are right !

The only problem is :) to have a web site with secure access :)

But i'm thinking to a stuff... Juste be patient :)

I'm alone to assume correctly support for many products :)


Scott Shaver(Posted 2005) [#59]
Filax, is there a way to force the activated item in a list box to be on screen? I add items to the end of the list and when I do that I want the last item to be active and displayed.


Scott Shaver(Posted 2005) [#60]
never mind I figured it out

Function ConsoleAdd(msg:String)
	consoleList.CreateItem(msg,"")
	consoleList.ActivateItemNumber(consoleList.TotalItemNumber);
	consoleList.Scrollbar_Vertical.Value = consoleList.Scrollbar_Vertical.Maximum;
End Function



Chroma(Posted 2005) [#61]
Sean...how do you create a website with a username and password access for members?


Scott Shaver(Posted 2005) [#62]
This is how you do it for Apache:

http://www.javascriptkit.com/howto/htaccess.shtml
http://httpd.apache.org/docs/1.3/howto/auth.html

Here is how to migrate an .htaccess file to IIS:

http://support.microsoft.com/kb/324064/EN-US/


Sean Doherty(Posted 2005) [#63]
Chroma,

There are many ways to secure a site. On the .Net side, it is probably best to store the exe in a database that can only be accessed once the user has logged into the site.

You could create a form in Asp or Asp.net which sets a session variable once the user has logged into the site. Then redirect them to a page that verifies that the session has been set and provide a link to a function that downloads the exe.

Anyone with web development experience should able to provide this functionality.


MarkAM(Posted 2005) [#64]
Filax,

Is there a way to revert to a standard windows cursor. I am working in window mode and neither the IGlass or windows cursor will show on the windows title bar of the BM window.

Ideally, I would like to modify the BM window to border with no title bar and create the whole window interface in IGlass .. anyone know how?


Progi1984(Posted 2005) [#65]
When will be the future version of iglass ? what do you prepare ?

Quand sera la nouvelle version de IGlass ? que nous prépare tu ?


Filax(Posted 2005) [#66]
For the moment nothing ! i made a little break because
i'm re-writing TerraEd and it's not a small job :)

I can't be everywhere everytime :) i have only one brain
and 10 fingers :)

MarkAM : I don't know i can remove blitzmax title bar !


kiami(Posted 2006) [#67]
I have three very basic questions about iGlass, I hope this is a right place. I bought iGlass long time ago, but I didn't have time to use it until recently. Here are my questions.

1 - why iGlass mouse goes under my graphic output screen? For example, just pick iGlass menu example and draw a rectangle. Mouse goes under the rectangle. How to avoid that, it messes up my mouse interaction with game screen.

2 - Can I draw the above rectangle in a window?

3 - Does anybody knows a simple game example for iGlass with codes? I am not looking for iGlass demo, I am looking for an example to see its performance and actual usage in a game setting, or in a situation where actual game graphic is drawn? I want to see how one screen goes to another (Through 'hide' method and so on).

Thanks in advance.


kiami(Posted 2006) [#68]
It seems to me neither iGlass or MaxGUI is fit YET to be used for real game environment. However, both are excellent for application programming provided that a MySQL connectng module for BlitzMAX comes out. But I like BlitzMax to be used for Game programming and data structures being used instead of databases for storage. As a rockie, I will go on without GUI.


Filax(Posted 2006) [#69]
medi: Yes you can draw a rectangle in a window but the rectangle must be a gadget like button etc because
you must get the X and Y position of the windows
containing the rectangle.

If you want to see an example a game using IGlass
try my Asteroid Game (look my showcase)

For the mouse pointer it's not an Iglass problem but
a Bmax stuff, when the cursor is released outside the
window the windows pointer appear.


amonite(Posted 2006) [#70]
@medi, when using Iglass for one of my game i used to work on, i decided to use several while/wend loops to handle the different game menues as well as to handle memory freeing issues and it appeared to work rather well (never used hide/show methods though). Not shure if it is the right way of doing so for i consider myself being still a rockie when it comes to coding ...
Filax 's game (Filaxteroid) is a very good example on how you could use Iglass IMO.

good Iglass coding & wish you a happy new year :) !!


Filax(Posted 2006) [#71]
You have IMO with Filaxteroid ? strange... The better method
to build interface with IGlass is : Create all gadgets at
program start and Hide/show when needed.


kiami(Posted 2006) [#72]
OK, I checked Filaxtroid. I shouldn't put my opinion in a universal manner. I am sure my statement comes from my lack of knowledge or experience. So, I will take your suggestions.

For the moment, I am coding "fast" to reach the AI part of what I have in mind. I moved to GUI a week ago to explore my options. I will seperate my project to two parts and I will try iGlass again by secondary periority. Unfortunately, as I am working on a strategy game on a map, mouse is essential, and I need to see how can I change the game state by mouse in GUI environment.

About the Filaxtroid, the ship's engine output is fantastic.

I still believe a simple iGlass game code example is necessary. I got only the game excecutable. System programmers don't want to make their products an "adventure game", do they? Sometimes to find BlitzMAX's methods I go through lots of material to find out how it works - just like playing game. And, is indeed, is enjoyable - a world full of "scarcity".


Filax(Posted 2006) [#73]
medi : If i understand you want to make your game under an
Iglass window ? i'm right ?


Scott Shaver(Posted 2006) [#74]
*** Help ***

I'm converting from bmax 1.10 and iglass 1.5.1 to bmax 1.14 and iglass 1.5.4.

the following code won't compile

Strict 

Framework BRL.GlMax2D

Import pub.igl

?Win32
	SetGraphicsDriver(GLMax2DDriver())
?MacOS			
	Import "BMaxMacWindows.m"
?

Include "./IGlass_1.5.4/IGL_Classe/Inc_IGlass.bmx"

Local AbilFrame:IGL_Frame=IGL_Frame.Create(False,"Final Ability Scores",10,170,130,140)


it thinks the IGL_Frame.Create method is returning an int instead of an IGL_Frame object.


Scott Shaver(Posted 2006) [#75]
never mind it is the False I was passing in ans the parent that caused the problem.


kiami(Posted 2006) [#76]
filax - yes, without losing performance. At least not to make mouse run slow. Since the game is not real-time, a nice moving mouse is acceptable. AI part may make the program slow, but that would be my fault.


Filax(Posted 2006) [#77]
Hum hum ... I think it's not possible to make your game under
a window because Iglass have not canvas ! but you can make
your game in full screen and you can make iglass windows
to make toolbars or display informations.


kiami(Posted 2006) [#78]
Yes, but as I mentioned, the mouse goes under the grahics that my code produces. In response, you sent, this is BlitzMax problem. That seems true, and that is why I found the same behavior with BlitzGUI. The mouse pointer goes under the rectangle too. Such a mouse behavior is counter ppoductive for strategy games, which heavily rely on mouse pointers for player.

It is possible that I be totally missing something, I would be glad to learn. If Iam not, I still admire and love and promote BlitzMax related products. They are amzing pieces of art of engineering.


Scott Shaver(Posted 2006) [#79]
If I'm understanding your problem correctly the issue is that you are not drawing your graphics as part of the iGlass system. Your loop ends up being something like this:

1> clear the screen
2> draw the iglass components
3> draw the iglass mouse
4> draw you graphics

clearly then you are drawing over the iglass stuff (thus the mouse pointer in under your graphics). You have to make an iglass widget, that draws what you want, that you add to the screen via the iglass system. This is exactly what I had to do for my maps in QuestMaster and the SAS Map Editor programs. I created an iglass widget that knows how to display my maps.


kiami(Posted 2006) [#80]
Filax & Scott - now I see what you are saying. I saw SAS codes (igmodes and mapprop). To use iGlass system to have my graphic widget, I have to have a relative good understanding of iGlass classes. For that, I have to spend many weeks. Although that is educational to do, but I don't think that move is appropriate for my level now.

What I said:"It is possible that I be totally missing something", is both true and false - not a digital concept just an Hegelian concept, because both true and false will crash computer. I was wrong because I didn't think that using widget is an option. I was right because those who want to use BlitzMax, don't want to write their own graphic and game engines, so it doesn't make sense to put the same amount of engineering time.

So, I will wait until next evelutionary epoch in BlitzMax community, or when I gain more knowledge. The latter one will be slow, because I have limited time on investing in game programming skill. BlitzX began with BlitzPLus, now it has evolved to BlitzMAX. Hopefully, this trend continues for many years ahead.


Booticus(Posted 2006) [#81]
Hey its been a while since I've usd the iGlass GUI stuff, but I'm enjoying getting back into it. I noticed on Scott's screenshot above, hes using a different font! Scott, how are you doing this? Is there a "setIglassfont" sort of command I'm not seeing? Or are you doing it manually in the iglass code? Let me know. Im glad to be back using iGlass. I bought the MAXGui...but not quite used to how it does things. So I'm coming home to iGlass! Great product still Filax!!! Also, any additional themes? Especially Seyhajin's iglass studio theme. Thats pretty slick!


Booticus(Posted 2006) [#82]
Is there a way to pass the IGL_CustomButton function images instead of file locations for loading the highlight, select and unselect images?

Create:IGL_CustomButton(Parent:Object,Caption:String,Px:Int,Py:Int,Tx:Int,Ty:Int,Highlight:String,Unselect:String,Select:String,Border:Byte=False)


I already have the images loaded in my program and just want to reuse them.


Filax(Posted 2006) [#83]
Hi :

Look inside the file : Inc_Button.bmx and copy the method
Function Create:IGL_CustomButton(xxx)

To a new one , example
Function Create:IGL_CustomButtonFromBuffer(xxx)

And modify lines



to accept buffer.


Scott Shaver(Posted 2006) [#84]

I noticed on Scott's screenshot above, hes using a different font! Scott, how are you doing this?


Find a font file you want to use and copy it over the iglass.fon and iglass.ttf files in the IGL_Classe directory and then recompile your project. Make sure Quick Build isn't on the first time you recompile. You have to be careful with the font you choose. IGlass wasn't coded to handle variable width fonts, so they can cause some strange effects.

Sorry it took so long to respond, I've been sick.


Booticus(Posted 2006) [#85]
Thanks to both of you Filax and Scott for the help! Feel better Scott!


Matt McFarland(Posted 2006) [#86]
Filax, please send updated iGlass to contact@...

tonechild address is deleted!!!!


Filax(Posted 2006) [#87]
Ok Matt :)


Cartman(Posted 2006) [#88]
Hi all,
I'm trying to figure out how to do a fade between screens in my game. Something similar to what's done in this article:
http://www.blitzmax.com/Community/posts.php?topic=50798

I'm using IGL_ClearBackground() and IGL_InitBackground() at the point of the gamestates changing. I've implemented code like this:

For Local i# = 0.0 To 1.0 Step 0.005
If CheckAnyKeyPressed() Then Exit
varAlpha :+ i# / 50
SetAlpha varAlpha
IGL_RefreshGui()
Delay 20
Flip
Next

But nothing happens. Any suggestions? Thanks
-Keith
www.piddlepup.com


gellyware(Posted 2006) [#89]
Filax,

Please consider adding the following:

1) Right click button events
2) Text boxes

Thanks,

C.


Filax(Posted 2006) [#90]
Cartman : You must use alpha method to change GUI alpha

MyButton.Alpha=0.5


Lucid : Ok, but not for the moment, i'm very very very busy.


N(Posted 2006) [#91]
2) Text boxes


IGlass doesn't have text boxes?


Filax(Posted 2006) [#92]
Iglass have input textbox, but not multiline edit box.


Sin of Nature(Posted 2006) [#93]
Quick question. As you may have noticed, Seyhajin has not got time to continue the excellent iGlass Studio editor he was working on. He's kindly made it open source, and I was wondering if anyone else is working on it (other than myself)? Just incase they wanted to combine efforts.

It's taking a little longer than planned to get a release out due to the fact I'm in the middle of moving house but I'm hoping to get a beta 0.8 release soon.

Also, are there any IGlass Mac users out there? If so, I could do with one to compile and check it under a Mac once the Beta is ready.

Sin


Scott Shaver(Posted 2006) [#94]
I work on a Mac and have an iGlass license so I can help out when you are ready.


Sin of Nature(Posted 2006) [#95]
Thanks muchly Scott. :)


Filax(Posted 2006) [#96]
Enjoy guys ! :)


Booticus(Posted 2006) [#97]
Hi all. I upgraded to Bmax 1.16....and now IGlass gives me grief. When I compile my app which works before, I get:

"Compile Error: Unable to convert from 'Timage' to 'Int'"

and it directs me to the file "Inc_Scheme.bmx" and the line:
IGL_DrawImage(IGL_MouseNormalCursor.IGL_MouseImage,IGL_MouseX+3,IGL_MouseY+1,IGL_BlackColor,IGL_MouseNormalCursor.IGL_MouseFrameNumber)

So to be safe, I uninstalled Bmax and reinstalled, and then reinstalled IGlass. Am I screwing up somewhere simple? Anyone have any suggestions? Did I miss an update of IGlass somewhere?

Filax, can you email me the latest build of IGlass at mroberti@...?


Thanks in advance for any help guys!


Booticus(Posted 2006) [#98]
Found the problem. I lost my copy of 1.54! So I emailed Filax for a new copy. Sorry to pull a stupid maneuver!


Filax(Posted 2006) [#99]
Iglass work perfectly with 1.16


Booticus(Posted 2006) [#100]
Yes it does.

"Found the problem. I lost my copy of 1.54!"

You emailed me a copy of the newest IGlass and its all fixed!

Sorry!


Filax(Posted 2006) [#101]
glad to help you :)


Blitzogger(Posted 2006) [#102]
I tried the demo out. However some of the demos run at 1 fps. Game Menus and Animation example run the fastest for me. Any ideas?


Filax(Posted 2006) [#103]
Graphic Card ? Computer to slow ? Blitzmax ? Gfx Drivers ?

I don't use magic lines of codes :) but only blitzmax 2D
commands.


Sin of Nature(Posted 2006) [#104]
Quick question. In IGlass, is there any way to swap to a different tab without clicking on the tab? For example, if the user clicks on a button gadget, can you make the tab gadget swap to a different tab. Cant seem to get this to work and cant seem to find anything in the docs on it.

The following example does a comparison on the tab name

If MyTab0.SelectedITem="Option Tab 1" then
Print "This is the tab number 1"
Endif

So I tried the following:

MyTab0.SelectedITem="Option Tab 2"

Hoping that would trigger IGlass to swap the tabs (it was a long shot).

Any help appreciated. :)

Sin

[UPDATE]
Looking through the Inc_Tab.bmx file, I see there's a function called ActivateTab(Caption). Will give that a try. :)


Scott Shaver(Posted 2006) [#105]
I don't remember what is it but I think there is an ActivateTabe function or something like that.

edit:
IGL_Tab Type
' --------------------------------------
' Method : Activate tab from the caption
' --------------------------------------
Method ActivateTab(Caption:String)


Sin of Nature(Posted 2006) [#106]
Cheers Scott, just found it myself. :D


Filax(Posted 2006) [#107]
:) Thanks scott for support :)))


VP(Posted 2006) [#108]
Filax, if you can find some webhosting with PHP and MySQL capability it's easy to set up SubDreamer Light, integrate it with SMF forum and you then have a very secure method of validating user logins and providing them the ability to download iGlass updates.

If you need some help with this, I am happy to spare you some time.


Gavin Beard(Posted 2006) [#109]
what version is iglass up to? i'm on 1.5.4????


Sin of Nature(Posted 2006) [#110]
Another quickie. I'm assuming the close button at the top right of a window, calls window.killwindow() funtion in the background ie. it kill all gadgets who has that window as a parent?

Assuming the answer is yes, (Tell me if it isnt the case to stop a massive memory leak in my program) brings me onto the question. Is there any way of detecting that someone has clicked on the close button of a window before it destroys the window? ie. If you wanted to add a "Are you sure?" window.

The only way I can see if the close button has been destroyed is to see if the variable has turned into a null. For example:

Global MyWindow01:IGL_Window
MyWindow01=IGL_Window.Create("Window 01",50,50,450,350,True,False,True)
MyWindow01.KillWindow()

If MyWindow01 = Null Then
; Window has been destroyed
Endif

But thats too late. Any ideas anyone? (without hacking the Inc_Window.bmx file) :D

Sin


Filax(Posted 2006) [#111]
There is simple way due to object (i like it :) )

If MyWindow01.Button_Close.ClickGadget() Then
End
endIf

You can test :

Button_Minimize
Button_Lock

I am astonished to see that people still use Iglass:)


Sin of Nature(Posted 2006) [#112]
IGlass is a nice gui maker. :)

Ok, that would allow me to run the code on clicking the close button, but I'm assuming that there would be no way of stopping the KillWindow function activating? If I was to have a "Are you sure you want to close the window?", how would I stop the window being destroyed if they answered no?

I'm guessing that this isnt possible but thought I'd ask.

Sin


Filax(Posted 2006) [#113]
Yes it's a little bit difficult to trap the window close
button. But a simple way ? Why not remove close button and
put a simple 'CLOSE' push button ?


Sin of Nature(Posted 2006) [#114]
Yeah, it was for IGlass Studio update. The problem is that if a user knocks the close button whilst working in the editor, it instantly kills the window with no warning. Its not a major issue, just would be annoying for the user. Was just trying to make the editor as friendly as possible. No matter, 1 less thing to code. :D

Cheers

Sin


Filax(Posted 2006) [#115]
just a quick hack :

Backup Inc_Windows.bmx

and line number : 338

replace

' ------------------------
' Window button close test
' ------------------------
If Button_Close<>Null Then
If Button_Close.ClickGadget() Then
Select IGL_MessageBox("Warning","Do you want to close this window ?",2,2)
Case 1
KillWindow()
EndSelect
EndIf
EndIf

by

' ------------------------
' Window button close test
' ------------------------
If Button_Close<>Null Then
If Button_Close.ClickGadget() Then
Select IGL_MessageBox("Warning","Do you want to close this window ?",2,2)
Case 1
KillWindow()
EndSelect
EndIf
EndIf


Sin of Nature(Posted 2006) [#116]
Thanks, will add that. :D

Sin


Filax(Posted 2006) [#117]
I hope that help you :)


Sin of Nature(Posted 2006) [#118]
Another quick question for any IGlass coders. Is it possible to determine which window is currently in focus without clicking left mouse button? Do you use a global variable or have a function which determines the currently active window?

Any help appreciated,

Sin


Kuron(Posted 2006) [#119]
filax: i emailed ya with a new email addy that should allow attachments now

(please don't post that addy on the forums)

Thanks.


Filax(Posted 2006) [#120]
I do !

Sin of nature :

Use the function :
IGL_MouseOnWindow:IGL_Window(CheckTitleOnly:Byte=False)

This function return window object look inside Inc_Window.bmx

I think made a little quick fix for slider to keep the cursor
selected even if the mouse is outside the zone.


Sin of Nature(Posted 2006) [#121]
Hi,

Thats the command I'm trying to avoid. I have a strange bug in IGlass Studio that keeps returning null using that command when the mouse is quite clearly on the window. I seem to need an additional left mouse click to activate it, then the routine works. I'm assuming its the IGlass Studio code(not IGlass itself) so I was looking at a different solution. I need a way of detecting which window is in focus without any mouse interaction. No left mouse button and the mouse pointer will not on the window at the time.

IGL_Window(my_window).Activate() brings it into focus, I was wondering if there was the equivelant of a similar function that I could search through all windows at see which one is currently active. Something similar to:

If IGL_Window(my_window).Active = true

I'm assuming there isnt, but before I code something I though I'd ask. :D

Sin


amonite(Posted 2006) [#122]
IGL_Window(my_window).Activate() brings it into focus,
Really ? if such is the case that makes me a very happy IGlass user :):) can't wait to test this at home tonight on the app i'm working on ! I've been looking for that command like a mad dog thinking it didn't exist for the Iglass gui...
thx Sin :)


Matt McFarland(Posted 2006) [#123]
I want sliders!!
I also want it to view text files or simple HTML files!!

Like IGL_Browser

So it would let you browse a text file and you could scroll up and down on the right!! that would make it easy to make a help file!!

:D


Sin of Nature(Posted 2006) [#124]
BenyBoy, Welcome :) Been using it in IGlass Studio, a very useful command. Actually, theres quite a few nice little commands not mentioned in the docs if you open up the files inc_window.bmx... etc.

Sin


Sin of Nature(Posted 2006) [#125]
BenyBoy, that command is incorrect above. The command is actually:

IGL_Window(my_window).ActivateWindow

Sorry about that, just noticed last night. :D

Sin


Matt McFarland(Posted 2006) [#126]
I dont know how or why, but basically if you use multiple sound channels in your game to control volume etc and you combine that with iGlass you end up b0rking the sound. Pretty much you'll be playing sounds in incorrect channels (ghost channels, most likeley after clicking on something to make the IGLASS sound system run) I think its because he uses bytes (why? seriously? why?)

All of my sound woes dissapeared after completely removing iGlass sound.

Make you an iGlassed Options menu that controls music, sound, and voice, then add "TEST" buttons to test the volume configurations for the soudn and voice. Have the music playing, so you can adjust it's volume in real time.

You'll notice that if you dont remove iGlass sound commands you'll end up shooting sounds in different "ghost" channels. Next thing you know, you'll be playing sounds in unknown channels that are specified in the IGL_Classe folder. I have no idea what's going on, but after clicking on the values or test buttons on the 3rd to 7th try, the sound no longer plays in its designated channel and it just plays in some ghost channel at full volume.

I fully verified this when I would disable the test button if it's said channel was playing. I also would draw text sayin "sound channel is playing!" and low-and-behold!!! iGlass would shoot the sounds into a ghost channel, and the draw-text command wouldnt fire, neither would the test button get disabled. Those would be specifically ran if the channel was playing.

So why on earth would it play in a different channel if you specifically code it to play in a specific channel? You've got me. At first I thought this was a BMAX 1.16 bug!!! Low-and-behold I could not re-create the problem in regular BMAX. The problem can only be re-created and isolated with YOUVE GUESSED IT!!! iGlass!!!

iGlass borkes sound. Inorder for me to fix the problem, I commented out ALL the sound commands in the IGL_CLASSE .bmx files (all of them)


Filax(Posted 2006) [#127]
I don't see why Iglass sound disturb your system ? i use only
standar bmax command to play them :)not woodoo commands :)

Iglass is not only a source of problem :)

The blitzmax sound driver don't work correctly with some
system (sound 'noisy' on VIA chipset, on mac too etc)

I think that the problem come from channel sytem.


Matt McFarland(Posted 2006) [#128]
Filax you're wrong iGlass **IS** the source of the sound problem. I **only** have sound problems when I use iGlass.


iGlass uses Bytes in sound channel allocation, and that doesnt seem "normal" to me.

Just read my post above it FULLY explains how this problem can be created and what happens. I SPENT 6 HOURS FINDING / FIXING THIS PROBLEM :-@


Filax(Posted 2006) [#129]
Question when use Iglass only ? do you have sound bugs ?


Matt McFarland(Posted 2006) [#130]
oui mon amis...

My sound bug is an iGlass only bug,.. all it is is just iGlass menu that controls sound volume and sound test for 3 seperate sound channels and 3 seperate volumes for them.

When iGlass does its click sound, it b0rkes the soudn channels into something zany.


Filax(Posted 2006) [#131]
Strange i have not :) but it's cool now if you have solved the
problem :)


Matt McFarland(Posted 2006) [#132]
Yeah I had to delete your buggy sound scripts. :)


Filax(Posted 2006) [#133]
Oui enfin bon on va pas non plus en faire tout un plat :) ?

la gestion du son sous bmax est merdique,tu le sais comme moi,
et je ne vois pas trop en quoi un byte ferais merder un son...

Peut etre je devrais réserver des channels supérieurs pour
peut être eviter des overwrites entre les appli de l'utilisateur
et la gui, je sais pas ? quoi qu'il en soit je vais regarder
le truc.


Matt McFarland(Posted 2006) [#134]
parlezvous anglais?
iGlass b0rkes sound...plz fix it filax, thx. :)


Filax(Posted 2006) [#135]
I'll try to solve this problem


Matt McFarland(Posted 2006) [#136]
if u need help from me i will do what i can.


Filax(Posted 2006) [#137]
Yes ! do you have a simple example with bug ?
because in my side i have never problem ?


Matt McFarland(Posted 2006) [#138]
Yes, I will post the bug here. You need a sound test demo :)


Filax(Posted 2006) [#139]
ok ! thanks !


Matt McFarland(Posted 2006) [#140]
Function OptionsMenu()
	Local W_OptionsMenu:IGL_Window
	Local B_Save:IGL_PushButton
	Local B_Cancel:IGL_PushButton
	Local B_TestSound:IGL_PushButton
	Local B_TestVoice:IGL_PushButton
	Local V_Sound:IGL_Value
	Local V_Music:IGL_Value
	Local V_Voice:IGL_Value
	Local C_Difficulty:IGL_Combo
	Local C_Control:IGL_Combo
	Local L_Sound:IGL_Label
	Local L_Difficulty:IGL_Label
	Local L_Control:IGL_Label
	W_OptionsMenu=IGL_Window.Create("Options",250,200,280,250,False,False,False)
	B_Cancel=IGL_PushButton.Create(W_OptionsMenu,"Cancel",20,200,100)
	B_Save=IGL_PushButton.Create(W_OptionsMenu,"Save Changes",150,200,110)
	L_Sound=IGL_Label.Create(W_OptionsMenu,"Sound (Low: Quite / High: Loud)",140,10,2,IGL_BlackColor)
	V_Sound=IGL_Value.Create(W_OptionsMenu,"Sound Volume",140,40,3,PROFILE_SoundVol# * 100,10,0,100)
	V_Voice=IGL_Value.Create(W_OptionsMenu,"Voice Volume",140,70,3,PROFILE_VoiceVol# * 100,10,0,100)
	V_Music=IGL_Value.Create(W_OptionsMenu,"Music Volume",140,100,3,PROFILE_MusicVol# * 100,10,0,100)
	B_TestSound=IGL_PushButton.Create(W_OptionsMenu,"Test",190,36,55)
	B_TestVoice=IGL_PushButton.Create(W_OptionsMenu,"Test",190,66,55)
	L_Difficulty=IGL_Label.Create(W_OptionsMenu,"Difficulty",20,140,1,IGL_BlackColor)
	C_Difficulty=IGL_Combo.Create(W_OptionsMenu,80,140,180)
		C_Difficulty.CreateItem("Easy")
		C_Difficulty.CreateItem("Medium")
		C_Difficulty.CreateItem("Hard")	
	L_Control=IGL_Label.Create(W_OptionsMenu,"Control",20,170,1,IGL_BlackColor)
	C_Control=IGL_Combo.Create(W_OptionsMenu,80,170,180)
		C_Control.CreateItem("Keyboard")
		C_Control.CreateItem("Mouse")
		C_Control.CreateItem("GamePad / Joystick")	
	If PROFILE_Difficulty = 1 Then C_Difficulty.ActivateItemName("Easy")
	If PROFILE_Difficulty = 2 Then C_Difficulty.ActivateItemName("Medium")
	If PROFILE_Difficulty = 3 Then C_Difficulty.ActivateItemName("Hard")
	If PROFILE_Control = 1 Then C_Control.ActivateItemName("Keyboard")	    	    
	If PROFILE_Control = 2 Then C_Control.ActivateItemName("Mouse")	    
	If PROFILE_Control = 3 Then C_Control.ActivateItemName("GamePad / Joystick")	    	    
    Local SavedSoundVol# = PROFILE_SoundVol#
    Local SavedVoiceVol# = PROFILE_VoiceVol#
    Local SavedMusicVol# = PROFILE_MusicVol#
    Local SoundVol:Int=Int(V_Sound.GetValue())
    Local VoiceVol:Int=Int(V_Voice.GetValue())
    Local MusicVol:Int=Int(V_Music.GetValue())


	Repeat
  	 	Cls  	 	
  	 	IGL_RefreshGui()
  	 	PROFILE_SoundVol#=Float(V_Sound.GetValue()) *.010
  	 	PROFILE_VoiceVol#=Float(V_Voice.GetValue()) *.010
  	 	PROFILE_MusicVol#=Float(V_Music.GetValue()) *.010
        SetChannelVolume cMusic,PROFILE_MusicVol#
        If ChannelPlaying(cVoice) = True 
        	B_TestVoice.Disable = True 
        EndIf
        If ChannelPlaying(cEffects5) = True 
        	B_TestSound.Disable = True 
        EndIf
  	 	If ChannelPlaying(cEffects5) = False
			B_TestSound.Disable = False
			If B_TestSound.PressGadget()
		        SetChannelVolume cEffects5,PROFILE_SoundVol#
				PlaySound(sPlayerExplode,cEffects5:TChannel)
	  	 	End If
	  	EndIf
  	 	If ChannelPlaying(cVoice) = False
			B_TestVoice.Disable = False
	  	 	If B_TestVoice.PressGadget()
		        SetChannelVolume cVoice,PROFILE_VoiceVol#
	  	 		PlaySound(sSuperNova,cVoice:TChannel)
	  	 	End If
        EndIf
        If B_Cancel.ClickGadget()
        	PROFILE_SoundVol# = SavedSoundVol#
        	PROFILE_MusicVol# = SavedMusicVol#
        	PROFILE_VoiceVol# = SavedVoiceVol#
       		SetChannelVolume cEffects1,PROFILE_SoundVol#
			SetChannelVolume cEffects2,PROFILE_SoundVol#
			SetChannelVolume cEffects3,PROFILE_SoundVol#
			SetChannelVolume cEffects4,PROFILE_SoundVol#
			SetChannelVolume cEffects5,PROFILE_SoundVol#
			SetChannelVolume cEffects6,PROFILE_SoundVol#
			SetChannelVolume cEffects7,PROFILE_SoundVol#
			SetChannelVolume cEffects8,PROFILE_SoundVol#
			SetChannelVolume cEffects9,PROFILE_SoundVol#
			SetChannelVolume cVoice,PROFILE_VoiceVol#
			SetChannelVolume cMusic,PROFILE_MusicVol#
        	B_Save.KillGadget()
        	B_Cancel.KillGadget()
        	B_TestSound.KillGadget()
        	B_TestVoice.KillGadget()
        	V_Sound.KillGadget()
        	V_Music.KillGadget()
        	V_Voice.KillGadget()
        	C_Difficulty.KillGadget()
        	C_Control.KillGadget()
        	L_Sound.KillGadget()
        	L_Difficulty.KillGadget()
        	L_Control.KillGadget()
        	W_OptionsMenu.KillWindow()
        	MainMenu()
        End If

        If B_Save.ClickGadget()
       		
       		SetChannelVolume cEffects1,PROFILE_SoundVol#
			SetChannelVolume cEffects2,PROFILE_SoundVol#
			SetChannelVolume cEffects3,PROFILE_SoundVol#
			SetChannelVolume cEffects4,PROFILE_SoundVol#
			SetChannelVolume cEffects5,PROFILE_SoundVol#
			SetChannelVolume cEffects6,PROFILE_SoundVol#
			SetChannelVolume cEffects7,PROFILE_SoundVol#
			SetChannelVolume cEffects8,PROFILE_SoundVol#
			SetChannelVolume cEffects9,PROFILE_SoundVol#
			SetChannelVolume cVoice,PROFILE_VoiceVol#
			SetChannelVolume cMusic,PROFILE_MusicVol#
			If C_Difficulty.SelectedItem	= "Easy" 	PROFILE_Difficulty = 1
			If C_Difficulty.SelectedItem	= "Medium" 	PROFILE_Difficulty = 2
			If C_Difficulty.SelectedItem	= "Hard" 	PROFILE_Difficulty = 3
			If C_Control.SelectedItem		= "GamePad / Joystick"	PROFILE_Control = 3
			If C_Control.SelectedItem		= "Keyboard" 			PROFILE_Control = 1
			If C_Control.SelectedItem		= "Mouse" 				PROFILE_Control = 2 
            SavePlayerProfile(PROFILE_Playername$)
        	B_Save.KillGadget()
        	B_Cancel.KillGadget()
        	B_TestSound.KillGadget()
        	B_TestVoice.KillGadget()
        	V_Sound.KillGadget()
        	V_Music.KillGadget()
        	V_Voice.KillGadget()
        	C_Difficulty.KillGadget()
        	C_Control.KillGadget()
        	L_Sound.KillGadget()
        	L_Difficulty.KillGadget()
        	L_Control.KillGadget()
        	W_OptionsMenu.KillWindow()
        	MainMenu()
        End If
	    Flip
	Until KeyHit(KEY_ESCAPE)
	End
End Function


OK! Just make the variables it needs (run in strict) and then put in some sound files and watch the horrible bug occur. Just try to break it by clicking on test alot and clicking on the buttons (the value buttons) - next thing you know, it will be b0rked.


Matt McFarland(Posted 2006) [#141]
How do I use the scroll bars to scroll up and down through my high-score listing?


Filax(Posted 2006) [#142]
look inside Scrollbar.bmx there is a method to inc or dec
scrollbar. IncGadget()

Stupid question for the sound problem : What format to you using ? Wav or Ogg ? because in my asteroid game Ogg file
work without crackling but Wav file are horrible on my system
and i use too multichannel with playing testing !

I say that because your example don't help me really to find
eventual Iglass bug :)


Matt McFarland(Posted 2006) [#143]
filax, I'm using ogg and I dont have any sound issues UNLESS I use YOUR sound system (for the third time!! xD)

Does filaxteroid use specific sound channels? Why not add a sound control to it?


Filax(Posted 2006) [#144]
i'll will try to look bmax channel playing mode to hunt the bug


Matt McFarland(Posted 2006) [#145]
How do you CHECK to see IF a window is active or not?

I want a window to be CHECKED if it is active, if its not active I want to hide it.

ALSO:

Is there anyway to make the Message Window have multiple lines? I tried ~n but to no avail....


Filax(Posted 2006) [#146]
For window look inside Inc_Window.bmx and check the state flag

If MyWindow.State=False then
'Activated
else
'Deactivated
endif


For multi line : Use | Char to create line

MyRequesterMsg=IGL_MessageBox("Message","This is a|message box type|'Yes/No/Cancel'",MyRequesterType,MyRequesterIcon)


NoBoDo(Posted 2006) [#147]
window.state = false when activated and true when deactivated?
Doesn't that seem backward?


Filax(Posted 2006) [#148]
Yes your right :) but french people are strange :)


Sin of Nature(Posted 2006) [#149]
Cheers Filax, that mywindow.state will make my current problem a lot easier to fix :)


Progi1984(Posted 2006) [#150]
Filax, i heard you :p
Don't criticize you and all others french people
lol


tonyg(Posted 2006) [#151]
Filax, I get message 'Identifier IGL_Timer not found' on IGlass 1.54 examples with Bmax 1.18.
Also get...

C:/Program Files/BlitzMax/bin/ld.exe: cannot find C:/Program Files/BlitzMax/mod/pub.mod/igl.mod/igl.debug.win32.x86.a
Build Error: Failed to link C:/Program Files/BlitzMax/tmp/untitled2.debug.exe


if I build modules with igl.mod in pub directory and then run example programs


Filax(Posted 2006) [#152]
ok maybe some changes in this blitzmax version
i'll try to install it and IGlass test


Filax(Posted 2006) [#153]
Problem solved i'll release module this night


Grisu(Posted 2006) [#154]
Nice... :)


Filax(Posted 2006) [#155]
Email sended at : 20h40


tonyg(Posted 2006) [#156]
Filax, Can you resend the file to me in .zip format?


Scott Shaver(Posted 2006) [#157]
it is a zip file just rename it from .jpg to .zip


Sin of Nature(Posted 2006) [#158]
Filax (your going to hate me for finding this): I think I just found a bug in IGlass. I've been working on IGlass Studio and I simply couldnt work out a bug that I thought was caused by me modifying Seyhajin original code. It puzzled me so much that I decided to write a little test app to check to see if it was infact an IGlass bug. I'm afraid it is.

Have a look at the following code:

Include "./IGL_Classe/Inc_IGlass.bmx"

Graphics 800,600,32,0

IGL_InitGUI(1,False)
IGL_InitBackground("./IGL_Demos/Background_01.jpg")

Global MyWindow01:IGL_Window
MyWindow01=IGL_Window.Create("Window 01",180,0,180,150)

Local MyButton0:IGL_PushButton
MyButton0=IGL_PushButton.Create(Null,"Button 0",10,0,160)

Local MyButton1:IGL_PushButton
MyButton1=IGL_PushButton.Create(Null,"Button 1",10,30,160)

While Not KeyHit(KEY_ESCAPE)
Cls
IGL_RefreshGui()
Flip
Wend

IGL_ClearGui()
End

MyButton0 has the y co-ordinate of 0, which means it should be at the top of the screen. Nope, it's 20 pixels out. MyWindow01 created also has the y co-ordinate of 0 and when drawn, it is drawn in the correct position. MyButton0 and MyWindow01 should be vertically aligned and they are not. MyButton1 should be drawn at position y=30 but is infact at position 50. I've discovered that all gadgets except Menu and Window are positioned 20 pixels out if added to the background (null). At first I thought it was to accomodate for the menu gadget, but if you add it, they are still out. It definitely seems to be a bug adding gadgets to the background, unless I'm missing something.

For IGlass Studio, I think I can code past it but thought I'd mention it. By the way, thanks for the update, great support as always.

Sin

Ps. Whats the command to make a code box for forum entries?


tonyg(Posted 2006) [#159]
it is a zip file just rename it from .jpg to .zip

If only it were that simple. No .jpg appeared in my email.
Got the .zip. Can I confirm that it is still IGlass 1.54 and
the versions.txt file hasn't been updated.


Filax(Posted 2006) [#160]
File not updated because it's just a module compilation for
blitzmax 1.18, i confirm it's alway the last 1.5.4 release.

And i confirm i have send a renamed ZIP => JPG file
(if you want a screenshot of my outlook ? :) because
some ISP reject zip files but not JPG file, i have specify
just rename it to ZIP under mail form.

I have only send the module (why send 4,4 mo with full
distrib ?)

If you don't receive it send me an alternate email adress.


Progi1984(Posted 2006) [#161]
Filax > voici une nouvelle adresse e mail, progi1984<at>free.fr

Considère cette adresse comme principale, stp :) Merci !


tonyg(Posted 2006) [#162]
Blimey, I *DID* read the email and would have renamed any jpg file to a .zip file *IF* it was attached.
I'm not saying it was not sent, but it definately was not received. In fact, the email thought there was an attachment but there was no way to download it so
I can only assume the attachment was lost in transport.
No big deal though.
If it happens the next time then I'll look into it further.


Scott Shaver(Posted 2006) [#163]
I think I may have the same problem, my mail client is yahoo web mail. it trys to display the file as a picture because of the .png extension. This makes it hard to save the attachment. Filax, try using another extension like .zipped, one that web clients won't try to interpret.


Filax(Posted 2006) [#164]
I'll try :) but it's an hard work to make all users happy :)


Matt McFarland(Posted 2006) [#165]
I didnt receive any email at my contact@... address :(


Filax(Posted 2006) [#166]
It's ok matt.


Matt McFarland(Posted 2006) [#167]
Filax!! could you please resend it!! I lost it :(


NoBoDo(Posted 2006) [#168]
filax, if you keep sending updates by email you are going to keep having these problems. Where other than from filax do you buy software and have it and all updates sent to you as email attachments? It's a very unprofessional software delivery method, and people who have paid for this software have been asking for something better for a long time now. One of the updates you sent a few months ago even has everybody who bought the software on the "to" line; that is VERY irritating!


Filax(Posted 2006) [#169]
I'm sorry but my delivery method is the only one that i can
do.

This method is good if the user have email with attached file
possibility AND not a fu... antispam. Some users are very
happy to receive automatic updates in our email box.

I'm not a society, i made my possible.And please backup
your software :)

Matt McFarland : Do you receive it ?


SillyPutty(Posted 2006) [#170]
ok i really need an updated iglass, but I only have gmail, how can I get this update ?

I have not used it in a while, but am needing it now, and need the update for 1.18


Filax(Posted 2006) [#171]
Just send me an email i'll reply you the update :)

Look inside my profile for email adress.


Filax(Posted 2006) [#172]
Just send me an email with your registration name, i'll reply
you the update :)

Look inside my profile for email adress.


SillyPutty(Posted 2006) [#173]
sent :)


Filax(Posted 2006) [#174]
check :)


SillyPutty(Posted 2006) [#175]
Got it thanks !! :)

I hope I receive all updates in the future :)


RepeatUntil(Posted 2006) [#176]
Hi Filax,

sorry to bother you, but I have a bug report... When you have a window with buttons (type push) : if you press on a button and the action it triggers take some time (loading level, etc), then you notice that the button *disappear* from the window. Here is a very simple example to show you what I mean. I have put a delay of 1 second instead of CPU processing to simulate the bug. Try to press on the button, and the button will disappear for the time of the delay:
SuperStrict

Include "./IGL_Classe/Inc_IGlass.bmx"

Graphics 800,600,0,0

IGL_InitGUI(1,False)

Global MyWindow01:IGL_Window

MyWindow01=IGL_Window.Create("Window 01",50,50,180,150)

Local MyButton1:IGL_PushButton
MyButton1=IGL_PushButton.Create(MyWindow01,"Test",10,50,160)


While Not KeyHit(KEY_ESCAPE)
	Cls
	
	If MyButton1.ClickGadget() Then
		Delay 1000
	EndIf
	
	IGL_RefreshGui()
	Flip
Wend 

IGL_ClearGui()
End

If I put IGL_RefreshGui() on top of the loop, then it works ok, but this is not a solution for me, since I want all iglass windows to be drawn after all other graphics.

Do you have an explanation? Is this easily fixable??

Merci beaucoup !


Filax(Posted 2006) [#177]
I'm sorry my friend but you can't refresh only one window
or other control individualy.In your example, it's a little
bit normal due to DELAY command (program freeze) and Iglass
freeze too !

Maybe Refresh GUI one time + Flip before loading your level ?


Boiled Sweets(Posted 2006) [#178]
BCF was 'slow' is iGlass slow, i.e. can it be used in game?


RepeatUntil(Posted 2006) [#179]
@Filax: No, I don't think this behaviour is normal. Somewhere in your code, after clicking the button, you stop drawing it. When the program is not interrupted by a delay, this is unnoticable, but in my case, and in the case of others (I already saw this bug report), this is noticable, and not so nice. So I think it's possible to change the logic somewhere, and never stop drawing the button after it was clicked (I think it's during the transition between the 2 states, with different images).

@Boiled Sweet: I use IGlass in my game, and of course are slowing down a bit, but this is very much acceptable. And your game looks better, so the trade-off is good anyway...


Boiled Sweets(Posted 2006) [#180]
Hmm. BCF looked great but even Fliax admitted it slowed down in a game cos it was using the 'slow' 2d drawing of Blitz3d.

We ended up replacing it with Sprite Candy...


Filax(Posted 2006) [#181]
RepeatUntil : Sorry poto , but i stop nothing ???
look inside Iglass.bmx you will see only zone test + drawing.

But you will never look closed loop.


AlexO(Posted 2006) [#182]
I think I noticed this issue also Filax. Maybe I'm missing an image in custom buttons, but when I click a custom button I see the unselected, highlighted, and selected states but then for a frame the button dissapears then next frame it comes back! I'm going to look at the Inc_Button.bmx later tonight and maybe it was an issue with refreshing when the button is clicked...

Great GUI by the way :), I like the ease of use and convienently commented code.


Filax(Posted 2006) [#183]
I'll try to see where is the problem, from your informations :)


Sin of Nature(Posted 2006) [#184]
Filax, I was wondering if you can take a moment to look at a quick problem I'm having.

I know that when a gadget (eg. gadgetid) is added to a Tab, the Gadgetid.TabParent holds the IGL_Tab() in question.

I'm trying to do the other way round. I'm trying to get a list of gadgets who have the tab as its parent from the IGL_Tab gadget itself.

The problem I'm having is that I can see inside your file that TLink:ChildList exists which seems to contain a list child gadgets associated with the Tab (used when destroying the Tab). Everytime I check the size of this list using CountList() function, I always get 0. I noticed that in the IGL_Master file, you use a For-Next loop. Again, I get 0. Am I missing something?


DebugLog("Count Method 1 = "+String(CountList(MyTab0.ChildList)))

local Count = 0
For Local n:Object=EachIn MyTab0.ChildList
Count = Count+1
Next

DebugLog("Count Method 2 = "+String(Count))

The 2 methods I use are above. Method 2 works if I swap is with a window gadget, but not a Tab. I am aware I can simply check through all gadgets and do a comparison with gadgetid.TabParent Vs Tabgadget handle but I was trying to stop looping through every gadget. Am i assuming incorrectly what this ChildList holds?

Any help appreciated.

Iain


RepeatUntil(Posted 2006) [#185]
Hi Filax,

I think I removed a little bug from iglass. In a listBox, if you select an item, then deselect it by clicking anywhere else (but not on another item), then the variable selectedItem$ is not equal to "", but to the previously selected item.

To solve this, in Inc_ListBox.bmx, just add 2 lines:
	Method ActivateItemName(Item:String)
		SelectedItem = ""    ' <----- THIS LINE
		For Local I:IGL_ListBoxItem = EachIn IGL_ListboxItemList
	        ............
	End Method

	Method ActivateItemNumber(Number:Int)
		SelectedItem = ""   ' <-- THIS LINE
		Local Counter:Int=1
                 .......

        EndMethod


I hope you will introduce this easy fix in the next version, so it's not erased with the next version of IGlass...


Filax(Posted 2006) [#186]
Many thanks :) i will insert it !


Fry Crayola(Posted 2006) [#187]
Hi Filax,

I'm interested in purchasing the GUI, but have a few quick questions.

First, is this link - http://www.blitz3dfr.com/phpfrench/content.php?content.46 the most up to date link for purchasing?

Secondly, what is the licensing like? Can I use the GUI in my own games without any extra fees?

Also, when you make updates to the code, how does a user find out about this? Do you email? Is there a newsletter? Is there a site that we can check frequently?

Thanks. The demo is very impressive.


Filax(Posted 2006) [#188]
Hi Fry

- "First, is this link..."
Yes its the good link :) you have also :
http://www.codersworkshop.com/viewshowcase.php?user=filax

- "Secondly, what is the licensing like?..."
Free ! you can make commercial or freeware app :) but you
can't distribute Iglass (total or partial) source code !

- "Also, when you make updates to the code..."
Of course :) When i release Iglass you receive updates on
your mail box :) (but only if you give me valid email adress
when you buy this application)

Thanks :)


Fry Crayola(Posted 2006) [#189]
Sounds great. Let's hope I have no issues with Share*It when I buy (they don't like certain email providers... tsk.)

While we're at it, does Share*It send out the download link automatically, or is it you that sends the links / zipped package?


Filax(Posted 2006) [#190]
It's me :) don't panic when i'll go home i'll send your
package :)


Fry Crayola(Posted 2006) [#191]
I've ordered. I'm strangely excited by this. Is that normal? :D

Anyhow, I stupidly ordered through Share*It and then realised that you also had a Paypal option, which would have allowed me to use my regular gmail address. Ah well.

If you have any problems sending the mail (I don't know what size the attachment is or if the account will have problems with it), my gmail address is in my profile if you need to get in touch.

Thanks.


Filax(Posted 2006) [#192]
"I've ordered. I'm strangely excited by this. Is that normal? :D"

Of course you have buy a Filax product ;)

I'm at home, i have send Iglass :)


Fry Crayola(Posted 2006) [#193]
Initial impressions are certainly very favourable, and I'm also impressed by how easy it is to expand. I've already made a few minor changes such as adding Extra object support to combo boxes (like BlitzMax supports), with no problems.


Fry Crayola(Posted 2006) [#194]
Filax - I've made changes to the Input gadget. Now it supports variable width fonts in the same way as it dealt with the default font you used.

If you like, I'll email it to you, though I should point out that I have not tested it extensively. I've not had any problems with it so far, however.

One thing to note is that I couldn't preserve the Create() function's parameter order. Because you had based the Input's width on the number of characters, I had to change that parameter to a standard Tx to indicate the width of the gadget itself in pixels.

Because of this change, existing IGlass applications won't work properly - their Input boxes will invariably be too small, with 20 character boxes suddenly being 20 pixels long. Even so, I hope it will be of some use to you.


Filax(Posted 2006) [#195]
If you have some modification try to explain them in an email.

Many thanks for fix :)


RepeatUntil(Posted 2006) [#196]
Filax, I found another bug in Iglass. That was very hard for me to understand what was going on.
The code:
Include "IGL_Classe/Inc_IGlass.bmx"
Graphics 800,600,0,0
IGL_InitGUI(1)

Local listBox:IGL_ListBox = IGL_ListBox.Create(Null, 50, 200, 300, 7)
Local button:IGL_PushButton = IGL_PushButton.Create(Null,"Click me",400,250,70)

IGL_MouseState = IGL_MouseNormal
IGL_MasterWindow.ActivateWindow() 
Repeat
	If button.PressGadget() Then Print("Pressed " + MilliSecs())
	If button.ClickGadget() Then Print("Clicked " + MilliSecs() )
	
	listBox.ClearListBox()
	listBox.CreateItem("my test")  ' <== Comment this line and it will work!!

	IGL_RefreshGui()
	
	Flip
  Cls
Until KeyHit(KEY_ESCAPE)

Run the code, and press the button. In the printout, you will see that pressed is correctly detected, but clicked is detected only in 50% of the cases. If you comment the line:
listBox.CreateItem("my test")
Then it works and we are able to detect the clicked state.

To fix this, in Inc_ListBox.bmx, in the function IGL_ListBox.CreateItem, you just have to comment IGL_RefreshGui(), and then the clicked state is always detected. I am not sure if it's a satisfactory fix for you (since maybe there is side effect, and maybe it's the same for all CreateItem functions).

Anyway, could you fix this in the next version, with my method or your method of your choice??? Merci beaucoup !!!


Filax(Posted 2006) [#197]
I do :) this fix is included. Many thanks repeat until :)


Fry Crayola(Posted 2006) [#198]
The "IGL_FPS" variable and the related IGL_RefreshFPS function.

What do they really do? I was alarmed recently to notice that a (small) GUI running at 260FPS on my PC was going at 50FPS on my laptop, which is certainly not what I expected (it's about two thirds as powerful).

I added some simple testing of my own using the Millisecs() function... and found that the actual FPS (assuming Millisecs() is an accurate function) between 500 and 1000.

What's the deal, here? Is my method of checking the FPS completely wrong somehow (1000 / x, where x is the end time - the start time) or is the IGlass function indicating something completely different?


Filax(Posted 2006) [#199]
Hi Fry

here is the FPS counter of Iglass mod :

' ---------------
' FPS Counter var
' ---------------
Global IGL_Frames:Int
Global IGL_RenderTime:Int
Global IGL_Fps:Int

' ------------
' For know FPS
' ------------
Function IGL_RefreshFPS()
IGL_Frames=IGL_Frames+1

If MilliSecs()-IGL_RenderTime=>1000 Then
IGL_Fps=IGL_Frames
IGL_Frames=0
IGL_RenderTime=MilliSecs()
EndIf
End Function

It's a convertion from a blitz3D fps counter, i think there
is no errors ? and i agree too, i find that FPS counter's
with bmax return sometime some strange result :/ Maybe there
is a stuff to do with screen hertz and vsync ?


Fry Crayola(Posted 2006) [#200]
Ah, yes. It's the "Flip" command forcing a wait which indicates the difference. So while IGlass is still running very, very fast (2 ms for what I was doing) it's been artificially held back (to around 20 ms)

Which is excellent news. I was worried there for a while.


Sin of Nature(Posted 2006) [#201]
Hi,
2 bugs in IGlass Found. I mentioned 1 of them previously, but I've got the solution now.

1. Adding gadgets to the background are incorrect by 20 pixels (vertical positioning). Windows are the only gadgets that are positioned correctly. This is because the background is actually treated as a window and the invisible title bar moves the gadgets down.

Solution: Add the following line to the start of your program (after initiating IGlass)
IGL_Window(IGL_MasterWindow).Title_Height = 0

Do not add that line for any other window. It will crash other window gadgets.

2. Adding a frame widget to a tab causes problems if the y position(py) is 6 or less. You'll get the caption but the box disappears???

On a side, note. IGlass Studio is almost done. :) The delay was I've recoded a huge chunk of the core engine.

Sin


Filax(Posted 2006) [#202]
1) Thanks for this fix !

2) I'll take a look ? Maybe a clipping problem ?


RepeatUntil(Posted 2006) [#203]
Hi Filaxounet,

OK, the fix I propose in my last post is not very good!! If you apply it, the listbox is not refreshed correctly, especially the scroll bars.
So Filax, if you have implemented my "fix", go back to your version!! (uncomment IGL_RefreshGUI)
The solution is to code properly and never call CreateItem every loop, but only when needed. I was lazy and I lost a lot of time because of that...