Commit Graph

20 Commits

Author SHA1 Message Date
Pietro Gagliardi 962a84e056 Fixed Mac OS X control placement flipping. This is done by passing the height of the window around setRect() calls to avoid polling the content view frame each time. 2014-03-03 17:44:03 -05:00
Pietro Gagliardi e39a5d928c Fixed the unregistered window class error on 64-bit Windows: turns out it was a difference in Go's int vs. what Windows expected (thanks Microsoft for not using your special types here). Fixed all instances of this, even in unmigrated/. Still does not work in wine... 2014-02-21 02:27:59 -05:00
Pietro Gagliardi fb82e651a4 Moved to a proper package; main() is now a test and go test -c is used to build. Once I iron out a bug with Windows event handling, I'll add a README. 2014-02-19 11:41:10 -05:00
Pietro Gagliardi 1f08c874e0 Made event dispatch asynchronous to avoid deadlocks; right now events that cannot be dispatched get dropped. 2014-02-18 09:57:19 -05:00
Pietro Gagliardi 0595135d9a Fixed the GTK+ crashes (I think) by making resizes synchronous. Since all control resizes happen on the UI thread anyway, we don't need to dispatch back; just call the resizing functions directly. Windows gets this fix too for consistency (and also because it gets rid of the only asynchronous oddity in the system). 2014-02-17 01:40:53 -05:00
Pietro Gagliardi a400ec6666 Fixed the resizing deadlock. 2014-02-13 11:42:21 -05:00
Pietro Gagliardi 5626b9e35c Added sizing of windows and the main window control. It presently deadlocks; I'll need to redo my mutexes... 2014-02-13 05:28:26 -05:00
Pietro Gagliardi 3d2df2334e Fixed compiler errors. New code structure success! 2014-02-12 21:33:24 -05:00
Pietro Gagliardi 403ca88316 Whoops, class registration now has to go through the UI task. 2014-02-12 21:11:21 -05:00
Pietro Gagliardi 98d56767a3 Each control may only need one event, so combine them all into a single channel whose use depends on the sysData itself. Also we won't need to save the parentWindow anymore, as the change to the make() function will take care of that for us. 2014-02-12 20:55:05 -05:00
Pietro Gagliardi 4b16716e61 Restructuring the codebase to make things neater. First off: each window now has its own class; the sysData knows about children. This updates the window class to become a generator and rewrites the WndProc as well. 2014-02-12 20:51:07 -05:00
Pietro Gagliardi 5f587fbf47 Added button events. 2014-02-12 11:32:17 -05:00
Pietro Gagliardi 0f373195de Changed the sysData cache so that if we didn't fill it in yet, getSysData() returns nil instead of panicking, and the standard window procedure jumps directly to the default handler. Not what I originally wanted to do, but whatever, it finally works! 2014-02-11 22:41:55 -05:00
Pietro Gagliardi 88363e131c Got rid of the reverse HWND->sysData lookup for now, to see if there's a mistake elsewhere. Now we're up to a panic... with Success... 2014-02-11 20:14:19 -05:00
Pietro Gagliardi cee78198e4 It appears the result of syscall.StringToUTF16Ptr() is only temporary, so removed all that. Now the program just hangs... 2014-02-11 19:52:39 -05:00
Pietro Gagliardi a4182c606b Whoops, copy-paste fail somehow changed init error checks. Now it starts... and hangs before creating a window... 2014-02-11 19:27:58 -05:00
Pietro Gagliardi 73fa611b37 All build errors resolved. Now to test... 2014-02-11 19:18:03 -05:00
Pietro Gagliardi 09a42e0c34 Added the init and testing main functions and started fixing errors. Let's fix the rest and hope it works... 2014-02-11 18:57:03 -05:00
Pietro Gagliardi b918496ae4 Filled in the standard window procedure. 2014-02-11 18:22:39 -05:00
Pietro Gagliardi c6a8a4d2f7 (see previous commit; part 2) 2014-02-11 17:39:41 -05:00