IGlass GUI for blitzmax - VI
BlitzMax Forums/BlitzMax Programming/IGlass GUI for blitzmax - VI
| ||
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 |
| ||
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 :) |
| ||
*says with full curiousity and not rhetorically* Who are you Scott and what do you have to do with Iglass? :) I heart IGlass.. |
| ||
sorry filax :( I have changed my email addy erick.grove _at_ gmail.com |
| ||
Hi Deux :) what your order registered email ? i dont find Eric Deux in my database :) |
| ||
*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. |
| ||
Filax My Name is Erick Grove :) ericgrove _at_ tiscali.co.za |
| ||
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. |
| ||
??? 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 ? |
| ||
haven't people been complaining about a horrible slowdown since 1.12 came out? probably having to do with the auto garbage collection? |
| ||
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. |
| ||
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? |
| ||
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. |
| ||
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 ? |
| ||
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 . |
| ||
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. |
| ||
Ok ... I search another solution. |
| ||
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 ! |
| ||
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. |
| ||
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. |
| ||
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 |
| ||
In windowed mode ? the mouse ? |
| ||
Full screen and I am refering to the IGlass mouse. |
| ||
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... |
| ||
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? |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
I believe you don't panic :) But the problem is : When gadget are on the same window it's a Z order problem ! |
| ||
hey filax, did you get my updated email addy ? Do you have another solution to get updates, for us registered users ? |
| ||
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 |
| ||
My name is Erick Grove I changed my email addy to erick.grove _at_ gmail.com my email was ericgrove@... Thanks |
| ||
Thanks for 1.54 Filax. Much appreciated. |
| ||
Deux : You email adress was correctly updated, don't panic :) Tonyg : Nothing ! it's a little bit normal :) |
| ||
Thanks, but i have still not gotten updates in quite a while. |
| ||
???? I have send an email there is 3 hours ? do you receive ? |
| ||
Fast update, thanks. Great support. :) Sin |
| ||
It's quick update :) only to make IGass compatible bmax 1.14 |
| ||
no, no emails at all, i bet gmail is blocking it :( |
| ||
can you give me another adress ? like hotmail ? |
| ||
ok filax try this one erick.grove _ at_ hotmail.com |
| ||
Do you receive ? if it's good i'll use this adress for the future. |
| ||
nope, nothing. ARGH |
| ||
???????? What can i do ?! i'll send you a temporary link.. |
| ||
yes please. |
| ||
Email send to : ericgrove@... Reply me when it done. |
| ||
Eric ... I'm tired with your email !!! :) MY ISP say : ericgrove@... The following TO addresses are unknown (check them then return the message): |
| ||
dude, I gave you the email above :) erick.grove_at_hotmail.com replace the _at_ with @ |
| ||
lol :) i do !! |
| ||
Still no email :( |
| ||
I think you have a problem ... I don't know what can i do ! |
| ||
filax can I forward it to him from the update I received? |
| ||
Yes if you want ! If you are able to send an email to him... :) |
| ||
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@... ? |
| ||
I tried both your hotmail and gmail accounts, take a look |
| ||
your mail came through to my gmail account no problem. Thanks Scott. :) |
| ||
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... |
| ||
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 :) |
| ||
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. |
| ||
never mind I figured it outFunction ConsoleAdd(msg:String) consoleList.CreateItem(msg,"") consoleList.ActivateItemNumber(consoleList.TotalItemNumber); consoleList.Scrollbar_Vertical.Value = consoleList.Scrollbar_Vertical.Maximum; End Function |
| ||
Sean...how do you create a website with a username and password access for members? |
| ||
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/ |
| ||
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. |
| ||
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? |
| ||
When will be the future version of iglass ? what do you prepare ? Quand sera la nouvelle version de IGlass ? que nous prépare tu ? |
| ||
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 ! |
| ||
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. |
| ||
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. |
| ||
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. |
| ||
@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 :) !! |
| ||
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. |
| ||
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". |
| ||
medi : If i understand you want to make your game under an Iglass window ? i'm right ? |
| ||
*** 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. |
| ||
never mind it is the False I was passing in ans the parent that caused the problem. |
| ||
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. |
| ||
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. |
| ||
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. |
| ||
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. |
| ||
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. |
| ||
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! |
| ||
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. |
| ||
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. |
| ||
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. |
| ||
Thanks to both of you Filax and Scott for the help! Feel better Scott! |
| ||
Filax, please send updated iGlass to contact@... tonechild address is deleted!!!! |
| ||
Ok Matt :) |
| ||
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 |
| ||
Filax, Please consider adding the following: 1) Right click button events 2) Text boxes Thanks, C. |
| ||
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. |
| ||
2) Text boxes IGlass doesn't have text boxes? |
| ||
Iglass have input textbox, but not multiline edit box. |
| ||
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 |
| ||
I work on a Mac and have an iGlass license so I can help out when you are ready. |
| ||
Thanks muchly Scott. :) |
| ||
Enjoy guys ! :) |
| ||
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! |
| ||
Found the problem. I lost my copy of 1.54! So I emailed Filax for a new copy. Sorry to pull a stupid maneuver! |
| ||
Iglass work perfectly with 1.16 |
| ||
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! |
| ||
glad to help you :) |
| ||
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? |
| ||
Graphic Card ? Computer to slow ? Blitzmax ? Gfx Drivers ? I don't use magic lines of codes :) but only blitzmax 2D commands. |
| ||
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. :) |
| ||
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) |
| ||
Cheers Scott, just found it myself. :D |
| ||
:) Thanks scott for support :))) |
| ||
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. |
| ||
what version is iglass up to? i'm on 1.5.4???? |
| ||
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 |
| ||
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:) |
| ||
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 |
| ||
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 ? |
| ||
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 |
| ||
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 |
| ||
Thanks, will add that. :D Sin |
| ||
I hope that help you :) |
| ||
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 |
| ||
filax: i emailed ya with a new email addy that should allow attachments now (please don't post that addy on the forums) Thanks. |
| ||
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. |
| ||
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 |
| ||
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 :) |
| ||
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 |
| ||
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 |
| ||
BenyBoy, that command is incorrect above. The command is actually: IGL_Window(my_window).ActivateWindow Sorry about that, just noticed last night. :D Sin |
| ||
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) |
| ||
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. |
| ||
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 :-@ |
| ||
Question when use Iglass only ? do you have sound bugs ? |
| ||
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. |
| ||
Strange i have not :) but it's cool now if you have solved the problem :) |
| ||
Yeah I had to delete your buggy sound scripts. :) |
| ||
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. |
| ||
parlezvous anglais? iGlass b0rkes sound...plz fix it filax, thx. :) |
| ||
I'll try to solve this problem |
| ||
if u need help from me i will do what i can. |
| ||
Yes ! do you have a simple example with bug ? because in my side i have never problem ? |
| ||
Yes, I will post the bug here. You need a sound test demo :) |
| ||
ok ! thanks ! |
| ||
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. |
| ||
How do I use the scroll bars to scroll up and down through my high-score listing? |
| ||
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 :) |
| ||
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? |
| ||
i'll will try to look bmax channel playing mode to hunt the bug |
| ||
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.... |
| ||
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) |
| ||
window.state = false when activated and true when deactivated? Doesn't that seem backward? |
| ||
Yes your right :) but french people are strange :) |
| ||
Cheers Filax, that mywindow.state will make my current problem a lot easier to fix :) |
| ||
Filax, i heard you :p Don't criticize you and all others french people lol |
| ||
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 |
| ||
ok maybe some changes in this blitzmax version i'll try to install it and IGlass test |
| ||
Problem solved i'll release module this night |
| ||
Nice... :) |
| ||
Email sended at : 20h40 |
| ||
Filax, Can you resend the file to me in .zip format? |
| ||
it is a zip file just rename it from .jpg to .zip |
| ||
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? |
| ||
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. |
| ||
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. |
| ||
Filax > voici une nouvelle adresse e mail, progi1984<at>free.fr Considère cette adresse comme principale, stp :) Merci ! |
| ||
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. |
| ||
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. |
| ||
I'll try :) but it's an hard work to make all users happy :) |
| ||
I didnt receive any email at my contact@... address :( |
| ||
It's ok matt. |
| ||
Filax!! could you please resend it!! I lost it :( |
| ||
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! |
| ||
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 ? |
| ||
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 |
| ||
Just send me an email i'll reply you the update :) Look inside my profile for email adress. |
| ||
Just send me an email with your registration name, i'll reply you the update :) Look inside my profile for email adress. |
| ||
sent :) |
| ||
check :) |
| ||
Got it thanks !! :) I hope I receive all updates in the future :) |
| ||
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 ! |
| ||
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 ? |
| ||
BCF was 'slow' is iGlass slow, i.e. can it be used in game? |
| ||
@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... |
| ||
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... |
| ||
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. |
| ||
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. |
| ||
I'll try to see where is the problem, from your informations :) |
| ||
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 |
| ||
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... |
| ||
Many thanks :) i will insert it ! |
| ||
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. |
| ||
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 :) |
| ||
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? |
| ||
It's me :) don't panic when i'll go home i'll send your package :) |
| ||
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. |
| ||
"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 :) |
| ||
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. |
| ||
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. |
| ||
If you have some modification try to explain them in an email. Many thanks for fix :) |
| ||
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 !!! |
| ||
I do :) this fix is included. Many thanks repeat until :) |
| ||
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? |
| ||
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 ? |
| ||
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. |
| ||
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 |
| ||
1) Thanks for this fix ! 2) I'll take a look ? Maybe a clipping problem ? |
| ||
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... |