1. RE: wxEuphoria
- Posted by Matt Lewis <matthewwalkerlewis at yahoo.com> Nov 25, 2004
- 608 views
> Downloaded latest lib from your site - works like a charm now. > > Good job. Thanks. > Can you post on your web site to do's - I would like to get involved > (in my meagre capacity) if that's ok with you. > > Just looking at the code to see if I can make the libs cross > platform without change. > > ex25.exw causes machine level exception - investigating. I'll see what I can do about the todos. For now, take a look in the docs under TODO: Controls * wxWizard Database * wxDB * wxDBConnectInf * wxDBTable Dialogs Files * wxDir * Various functions not inside classes (copy, delete, etc) Networking * wxFTP * wxHTTP * wxIPV4Address * wxSocket * wxSocketClient * wxSocketInputStream * wxSocketModule * wxSocketOutputStream * wxSocketServer * wxSocketState * wxSocketStream * wxURL Printing * wxPrinter * wxPrinterDC > wxIDE.ew won't load the database (have installed required libs) > - investigating. OK, let me know. It's not a big deal, since it's stuff for the GUI editor, which really doesn't work yet. Matt Lewis __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
2. RE: wxEuphoria
- Posted by Matt Lewis <matthewwalkerlewis at yahoo.com> Feb 23, 2004
- 558 views
Kenneth Rhodes wrote: > > > Congratulations Matt! :) :) :) > > I can't help but feel that the release of a truly > cross platform GUI library is a momentous event. > > If only Derek, Judith, et al would drop win32 for wxEu > - would you? > > Once again, Matt, thanks for pulling it off! > Thanks. All feedback is welcome and encouraged. And especially please let me know which classes you'd like me to focus on next (or wrap them yourself and send it to me :), otherwise you're stuck waiting until *I* find the class interesting. :) Matt PS I still use win32lib a lot...
3. RE: wxEuphoria
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Feb 10, 2003
- 583 views
It should have been in the first dll file. I'll put it up there. Matt Lewis > -----Original Message----- > From: pampeano at rocketmail.com [mailto:pampeano at rocketmail.com] > Subject: Re: wxEuphoria > > > > Hi Matt, > Your demo works fine on Win XP. Nice job. > When u use Pat's splitter you have to include "split.dat" file > generated by the splitter, because it contains info to unsplit the > file. > > Best Regards, > Guillermo Bonvehi > AKA: KNiXEUR - Caballero Rojo > > --- Matthew Lewis <matthewwalkerlewis at YAHOO.COM> wrote: > > > > > > I finally got wxWindows (v2.29)--as a DLL--working with Euphoria. > > I've > > ported the fractal demo that comes with the wxWindows source. It's > > up on my > > page: > > > > http://www14.brinkster.com/matthewlewis/projects.html > > > > There are 3 files: > > wxEuphoria.zip -- My source code > > wx22_9d1.zip -- DLL file 1 > > wx22_9d2.zip -- DLL file 2 > > > > Unfortunately, Brinkster doesn't allow files greater than 1Mb (at > > least for > > us cheapskates with the free accounts). Also, my bandwidth is > > limited to > > 16Mb per day, so if you experience trouble, it may be that the limit > > has > > been reached. I split the DLL using PatRat's splitter utility. In > > order to > > get the DLL assembled, you'll need to unzip everything into a > > directory, and > > then run install.ex. > > > > I've included a copy of fptr.e with the code. This new copy is > > required in > > case others have the version that's been with EuCOM. I've > cleaned it > > up a > > bit and added some things, made it easier to use. I'll probably be > > releasing it on its own here, soon. > > > > But now I need to make some decisions, and ask for some > help. :) Jim > > Brown, > > I think you volunteered for helping on the port to Linux, right. :) > > Beyond > > that, there are a lot of things to think about before the library > > gets > > coded. > > > > I'm currently leaning towards doing things in a win32lib'ish manner, > > rather > > than a wxWindows/C++ manner (which is how the demo is written), by > > which I > > mean: > > > > win32lib: > > include win32lib.ew > > -- create stuff > > -- event handlers, etc > > WinMain() > > > > wxWindows: > > include wxEuphoria.e > > -- event handlers, etc > > procedure init() > > -- create stuff > > end procedure > > WxMain() -- your init routine is called from here > > > > David C, you probably have some thoughts about this. In this > > respect, I > > think wxBasic works sorta like win32lib (big surprise :). > Of course, > > there > > will be lots of other details, like how to manage event handling, > > and, > > obviously, making it all really cross platform. > > > > Matt Lewis > > TOPICA - Start your own email discussion group. FREE!
4. RE: wxEuphoria
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Feb 11, 2003
- 585 views
> From: jbrown1050 at hotpop.com [mailto:jbrown1050 at hotpop.com] > Linux does C calls the cdecl way, not sure about C++ calls (I > didnt finish > compling wxWindows yet (its been 16 hours so far) so I didn't > get to test it > yet). I suspect that all calls will be done using cdecl, passing 'this' as the first parameter. The thiscall thing seems to be MSVC specific. > Just Some Notes: > > for cplusplus.e, > > dlopen(x, or_bits(#001, #100)) is the same as LoadLibrary(x) > dlclose(x) is the same as FreeLibrary(x) > dlsym(x, y) is the same as GetProcAddress(x, y) > > in wxEuphoria.e, > > user32, xPeekMessage, etc. seem not to be needed. Why were > they there in the > first place? At some point, I was attempting to make my own message loop. They never got deleted. There's really a lot that needs to be done to make it cross platform. First, I think we're going to have to figure out how to import stuff under linux. In windows, I can do it by ordinal (and can get a list of undecorated names using Dependency Walker), but I don't think you can do this using linux. And, of course, there's the issue of calling conventions. > those are the only 2 files i've looked at, besides fptr.e > > and, afai can tell, fptr.e's thiscall routines should work just fine > ... I think. > However, I have not had the chance to test it yet, as I've ready said. I suspect that you'll crash and burn using thiscall. :) Matt Lewis
5. RE: wxEuphoria
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Feb 12, 2003
- 570 views
> From: jbrown1050 at hotpop.com [mailto:jbrown1050 at hotpop.com] > I just translated some C++ code into asm. I don't understand > it however. :[ > As far as I can tell, it appears to be cdecl ... not entirely sure > however. > > Maybe I'll have g++ translate the code into preprocessed C. > That should > be easier to read. Yes, from everything I've seen (not a whole lot), everything in linux should be cdecl, so that should be pretty simple. I've started separating out code that's windows specific, so that a user would simply include wxWin.e or wxLinux.e. There may also be certain classes that will be OS specific, but we'll just have to wait and see. Rather than using call_thiscall directly, I've put call_member() in wxWin.e which calls call_thiscall(). In wxLinux.e, it would be call_cdecl(). > > At some point, I was attempting to make my own message > loop. They never got > > deleted. > > Oh. What was the point of that? jw. It seemed like wxWindows might have been crashing when it's internal message loop was called, so I tried to do it myself. > In linux, the command 'nm' gets the list of symbols exported > by a shared library. > Not sure about ordinal however. I don't think Linux uses the concept of ordinals. We'll just have to figure out what the undecorated names are. I also created a file, wxDefsMsw.e, where I've wrapped the ordinals into constants, so they'll be easier to import as needed. I expect we'd take the output of 'nm' and do the same. Matt Lewis
6. RE: wxEuphoria
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Feb 13, 2003
- 576 views
> From: jbrown1050 at hotpop.com [mailto:jbrown1050 at hotpop.com] > Well, nm gets the list of names from an executable and prints > the names out, > along with the symbol's type and value. It has a demangle > option, so the asm > names are converted back to readable C++ names. > > We'd probably have to compare outputs of nm on the wxWindows > .so file, once > with demangling and once without, and then import the > functions in wxEuphoria > via the mangled names, as you have already guessed. If I can, > I'll try to > write a function that can automaticly demangle the names > directly, thus > avoiding the need to compare such a huge list of names for > wxEuphoria with nm > .. twice. That's exactly what we'll need. What I did will the dll was to copy the unmangled names into Excel, and assigned them each the proper ordinal, and used that for reference. Then I put that into a text file, and wrote a little program to wrap the ordinals for me. I've now got a file that's slightly over 1Mb of constant declarations. At some point, I'll need to break them up somehow, but I'm not sure how to do that when we'll have a similar list for the Linux version. I've been working on making it into a real library. Hopefully I'll have something worth looking at in a few days. Matt Lewis
7. RE: wxEuphoria
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Feb 13, 2003
- 575 views
> From: jbrown1050 at hotpop.com [mailto:jbrown1050 at hotpop.com] > You are right. I taken another look (or to be more accurate, > many many many > many many many many many many more looks ... i really need to > brush up on my > asm) at the code produced by g++ (the asm code, as the preprocess > option just creates code w/o the #include's and #define's and such). > > The asm code for the C class, uses cdecl all the way, and the > first parameter, > would appear to be the 'this' pointer. (I see the first > parameter as "-8(%ebp)" > however ... not sure what that is, its AT&T syntax of course....) I forgot to mention that you'll want to turn threading off. Look in setup.h. I got errors when I compiled with threads. Change: #define wxUSE_THREADS 1 to #define wxUSE_THREADS 0 (or just comment out, I can't remember exactly how I did it) Here's how I'm planning to separate Windows and Linux code. First, I plan to group related classes together in their own include files, and to make them modular. For instance, wxFrame and wxWindow will be in wxWindow.e. But there will be two additional include files for each .e file: a .ew and .eu. The user will actually include the .ew/.ew files, so only the platform independant code can be put into the .e files. All the import data is stored in the .ew file, so we won't have to worry about a 1meg include file for Hello World. I've also put a _Platform constant in each .ew file so that it's possible to automatically identify when someone accidentally mixes windows and linux include files. I've only done this conversion for wxWindow and wxFrame so far, but here's what the beginning of wxFractal.exw now looks like: -- wxFractal.exw -- Matt Lewis without warning include wxEuphoria.ew include wxWindow.ew include wxMenu.e include wxGraphics.e object void constant frame = create( wxFrame, {0, -1, "Fractal Mountains for wxWindows", -1, -1, 640, 480} ), canvas = create( wxWindow, {frame}), menu = new_wxMenu( ), menu_bar = new_wxMenuBar(), -- end sample It's a lot clearer, and the program flow is just like that of a win32lib app. Matt Lewis
8. RE: wxEuphoria
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Feb 13, 2003
- 599 views
> From: jbrown1050 at hotpop.com [mailto:jbrown1050 at hotpop.com] > Oh. Well, if I get errors I'll do it that way as well ... I'm > using wxX11 with > wxUniversal. (I'm thinking I might have wanted the wxGTK one > instead tho.) > For now, I'm gonna wait for the compile to actually FINISH. > (Been going on for > a few day now. :[ ) Whew! And I got impatient after a half hour. What are the specs on the box where you're compiling? > Yes. Sounds like a good idea to me. > > As for the possibility of classes being dependant on > platform, I'd doubt it, > in any case I'm using wxX11 (which provides only the most > low-level primitives > needed, such as windows and graphics drawing) with > wxUniversal (which emulates > all controls with the low-level drawing primitives from > another wxWindows > library). Hence, if classes are platform-dependant, then I'll > have the lowest > common denominator lib. > (Obviously, wxX11 needs wxUniversal, since raw Xlib provides > no widgets at all, > however wxGTK and wxMSW can be compiled with wxUniversal iirc.) Most of the platform dependent things are the constants used to import the functions. I wasn't aware that you could compile without using GTK--not that I looked into it very much. I just opened the MSVC workspace file and let her rip. Matt Lewis
9. RE: wxEuphoria
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Feb 13, 2003
- 583 views
> From: jbrown1050 at hotpop.com [mailto:jbrown1050 at hotpop.com] > Oh. Jw, are you using wxGTK under Windows, or the native > wxWindows port (which > uses the Windows GUI directly via the WinAPI) ? Native wxWindows. Adding wxGTK seemed like adding too much overhead. Matt Lewis
10. RE: wxEuphoria
- Posted by Matt Lewis <matthew.w.lewis at saic.com> Mar 09, 2004
- 586 views
Well, I'll go ahead and reply. I put the bleeding edge up at http://wxeuphoria.sourceforge.net (follow the bleeding edge link) Matt Lewis wrote: > > > I'm still a week or two from release of v0.2.0, but I've been > considering releasing a bleeding edge version, and wanted to see if > others would find it useful. Basically, I plan to post source only, so > you'll have to download the wxWidgets source (and apply my patch) and > build the library yourself. > > For those who don't know what I'm talking about: > > http://wxeuphoria.sourceforge.net > > Matt Lewis > > PS I've progressed beyond the last news item that I posted, after > successfully battling gcc most of this weekend. >
11. RE: wxEuphoria
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Mar 10, 2003
- 577 views
> From: David Cuny [mailto:dcuny at LANSET.COM] > Matt Lewis wrote: > > > I've put my latest work on wxEuphoria up on my web page: > > Great! Any chance I might be able to get the source? I've > been wanting to make > a wxWindows DLL for my wrappers, but I'm an idiot when it > comes to creating > DLLs - especialy for wxWindows, where the init stuff is > buried in macros. > > I'm not really worried about name mangling, since the > wrappers take care of > that. I just want to know how to set up the DLL. > > Thanks, and congratulations.! Frankly, creating the DLL was the easiest part, you just have to have MSVC. :) They've got a dll workspace file that compiles straight away. I think the only thing I changed was to turn threading off in setup.h. Then I've used Dependency Viewer to work out the mangled vs unmangled names. I've actually been importing by ordinal, although I'm in the process of changing to straight names, and making that whole process more automated. The Euphoria source is all there on my page. I basically followed what happens in wxEntry, and got rid of all the calls that caused crashes. :) Here is the initialization code from wxEuphoria.e (it's somewhat scattered in the code): global atom myApp_this void = call_cdecl( wxEntryStart, {0,0}) myApp_this = new_instance( wxApp, 0, {}) poke4( wxTheApp, myApp_this ) global procedure wxMain( atom topWindow ) set_event_handler( topWindow, get_id(topWindow), wxEVT_CLOSE_WINDOW, routine_id("OnCloseWindow") ) void = call_thiscall( wxFrame_Show, topWindow, {1}) void = call_member( wxApp_MainLoop, myApp_this, {} ) topWindow = call_member( wxApp_GetTopWindow, myApp_this, {} ) if topWindow then if call_member( wxObject_IsKindOf, topWindow, { sm_classwxFrame }) or call_member( wxObject_IsKindOf, topWindow, { sm_classwxWindow }) then void = call_member( wxWindow_Close, topWindow, {1} ) void = call_member( wxApp_DeletePendingObjects, myApp_this, {} ) else wx_free( topWindow ) void = call_member( wxApp_SetTopWindow, myApp_this, {0}) end if end if end procedure Matt Lewis