wxMax - The Final Push...

BlitzMax Forums/Brucey's Modules/wxMax - The Final Push...

Brucey(Posted 2008) [#1]
Well folks, I've been working hard on tidying up a lot the ToDo list, in an attempt to ready wxMax for a proper release - ie. where you download a .zip, extract it, and you are ready to start using it.

The plan is to create a "binary" release for the various platforms, which will include the source, the static libs + headers, and of course the pre-compiled BlitzMax modules.

And probably a generic "source" release, with which you will be able to use to build your own.

---

Yes, there are some things that are outstanding :
* wxRichTextCtrl
* wxMediaCtrl
... and some of the 3rd-party modules I've included need some TLC before I'd consider them roadworthy.

But I think I've covered about 90% of the rest of wxWidgets, which should allow for a reasonable GUI Application to be constructed :-p


Note too that there are still issues running fullscreen graphics contexts via wxWidgets. But remember that wxMax is primarily for building Apps rather than games. (Hopefully at some point we'll get
those issues fixed).

---

Anyhoo, unless anyone can report anything terrible with the current code-base (how's the propgrid Plash?), I'll start sorting out the release process and things.

I'll most likely do a test release first for some of the more hard-core developers to try out before I throw it to the lions... any interested guinea-pigs?


Brucey(Posted 2008) [#2]
Oh, and I'd like to add XRC support for the next version.


Ole JR(Posted 2008) [#3]
Oh, and I'd like to add XRC support for the next version.


Nice!
Was about to add that on the wishlist, now that wxMax is kind of complete :)


Brucey(Posted 2008) [#4]
At least there are only about 60 or so XMLHandlers to write, plus BlitzMax initialization/wrap code for each, plus the XRC framework to implement.

One wonders why I've waited so long :-)

Still, it should be an interesting little sub-project. I'm still not entirely sure how to go about it. I'm thinking along the lines of having to subclass each handler (eg. wxButtonXmlHandler), and override the DoCreateResource() method, having it call-back into BlitzMax in order to create all the objects properly.

It works in my head... we'll just have to wait and see if it works in the code ;-)


Ole JR(Posted 2008) [#5]
Oh... Didn't know it was that many handlers.


plash(Posted 2008) [#6]
(how's the propgrid Plash?)
The only thing I have found, since you fixed the SetValue methods, is that there is no wxColourProperty.SetValueColour() method.

And I'm still curious if you have tried to get Graphviz working in a wxGLCanvas..


Brucey(Posted 2008) [#7]
there is no wxColourProperty.SetValueColour()

It's part of wxPGProperty - in reality it's calling SetValue(wxVariant), but we don't use those...


Brucey(Posted 2008) [#8]
I'm still curious if you have tried to get Graphviz working in a wxGLCanvas..


How's about this ?


Knocked it together in about 10 mins from a couple of other examples. It wants a bit of a tidy up.
Usual mouse controls... left button selects, scrollwheel zooms, hold right down to move the graph around.

Actually, I'm rather happy with the ease of getting it running on wx. I'm about half-way through building a native wxDC renderer for graphviz too, but this is nice for now.

<EDIT> - For anyone that wants to try this, as well as wxMax, you'll need these modules compiled too.

:o)


Brucey(Posted 2008) [#9]
One thing to note about the graphviz renderer is that it wants to run a pre-render when you first initialize it, which for Max2D means you need to have a current context when you do. Which is why I had to put the call to SetupGraph() in the Render method - it only calls it once.

:o)


plash(Posted 2008) [#10]
Awesome, now I just need to remember exactly what I was going to use it in..


Brucey(Posted 2008) [#11]
Not sorted out your Greek to English translation yet? :-p


plash(Posted 2008) [#12]
SuperStrict

Framework BaH.libcurl
Import BRL.StandardIO

Local curl:TCurlEasy = TCurlEasy.Create()

curl.setOptInt(CURLOPT_FOLLOWLOCATION, 1)
curl.setWriteString()' use the internal string  to store the content

curl.setProgressCallback(progressCallback) ' set the progress callback function

'curl.setOptString(CURLOPT_URL, "blitzmax.com")
curl.setOptString(CURLOPT_URL, "ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=*GREEKWORDHERE*&langpair=el%7Cen")

Local res:Int = curl.perform()

curl.cleanup()

Print curl.toString()

Function progressCallback:Int(data:Object, dltotal:Double, dlnow:Double, ultotal:Double, ulnow:Double)
	Print " ++++ " + dlnow + " bytes"
	Return 0	
End Function


Nope :( still getting "" as my translated text..


Brucey(Posted 2008) [#13]
You need to convert your text to UTF-8 and the escape it ;-)

Then you should get something like this :
{"responseData": {"translatedText":"Hello world!"}, "responseDetails": null, "responseStatus": 200}

Which is the result of el->en doing the above on the text to be translated.

According to the docs, you really need to set the referrer :
curl.setOptString(CURLOPT_REFERER, "some.address.for.the.referer")



plash(Posted 2008) [#14]
EDIT: I don't want to ask questions unrelated to this thread: follow.