[Gambas-devel] Windows stuff
Brandon Bergren
bdragon at ...185...
Fri Mar 11 02:25:35 CET 2005
On Thu, 10 Mar 2005, Brandon Bergren wrote:
>
>
> On Thu, 10 Mar 2005, Rob wrote:
>
>> On Thursday 10 March 2005 18:43, Brandon Bergren wrote:
>>> I managed to get a dll to provide GDI windowing in Cygwin, finally.
>> [...]
>>> Anyway, if everything goes well, I might be able to get the GTK
>>> component to compile against a MINGW style GTK.
>>
>> What I'm getting from this is that you may be close to getting
>> gambas-cygwin working against gtk-win32 via some presumably twisted
>> IPC. I didn't know you could even do that :) What are the benefits
>> over, say, displaying on cygwin's X server in seamless mode?
>>
No, not twisted IPC, twisted run-time-library-loading. It isn't simple
like it is on Linux.
The benefit is that it is about 200x faster to do GDI native versus X on
windows.
Actually, it worked ok without using most of the tricks I was thinking
about. GTK apparently was able to fudge its own handle.
>> Rob
>>
>
> Heh heh, closer than even I thought.
>
> OMG IT FRICKING WORKS!!!
>
> gb.gtk win32 NATIVE is WORKING!!!
>
sorry, got really excited. ;P
> (more in a few minutes, still recovering from just watching everything come
> together in one moment)
>
> --Brandon
Ok, here's my followup.
I just got the gob of gb.gtk code to compile in dev-cpp. -- I.E.
completely native. The DLL doesn't link against anything but windows libs.
The only stuff currently disabled is:
Plugin stuff -- There isn't glue code in gtk for windows. Should be easy,
probabaly possible to make a single file glue to drop in that doesn't
require a gtk recompile. Really, since windows isn't picky about security
like X, making most of the Plugin/Socket stuff nullop should just work(tm)
TrayIcon -- Platform dependent crap. Daniel: Would you accept windows
patches? :)
CWatcher -- I had to remove the filewatcher hook. Watching file
descriptors on Windows is DIFFERENT. Daniel: Why do you need to override
the default watch hook?
and the event loop doesn't have a sleep in it. (but it still doesn't
take a bunch of CPU time... I don't know why...)
I tested the Notepad example so far. It crashes when you save, but the
rest seems to work OK.
Here's the console output, if anyone can tell me what is happening here,
I'd like to know.
DataObject Shell IDList Array Preferred DropEffect Shell Object Offsets
FileName FileNameW Ole Private Data
(gbx2): GLib-CRITICAL **: g_convert: assertion `str != NULL' failed
FNotepad.?.0: #43: Access forbidden
WARNING: circular references detected
FNotepad (1)
WARNING: CCONTAINER_width not yet implemented
WARNING: CCONTAINER_height not yet implemented
WARNING: gButton::setCancel() not yet implemented
Of course, it's probabaly having something to do with one of the bits that
doesn't work properly.
I also had to stub two unimplemented functions (Daniel, why isn't this a
compile error for you?)
Well, that's about it, screenshots will follow soon.
--Brandon
More information about the Devel
mailing list