Commit Graph

160 Commits

Author SHA1 Message Date
Pietro Gagliardi 3dcbb3920d Windows sysData has been adjusted to deal with child controls. Rather than storing the parent window, it is passed as an argument to sysData.make(), which does the child ID allocation. Child IDs are now window-local, getting rid of that restriction. 2014-02-12 21:08:10 -05:00
Pietro Gagliardi e296398eff Formatting change for cSysData itself. 2014-02-12 20:57:30 -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 a9ff388944 Added Window.SetTitle(). Also oops, forgot to mark the window as created. 2014-02-12 18:14:37 -05:00
Pietro Gagliardi 0a9f408129 More TODOs... this time about crashes... oh boy... 2014-02-12 14:15:09 -05:00
Pietro Gagliardi a272436ee6 Whoops, forgot to add button.go itself :| 2014-02-12 13:52:34 -05:00
Pietro Gagliardi da92dd55bd Even more TODOs. 2014-02-12 11:34:36 -05:00
Pietro Gagliardi d3dace0c06 More TODOs. 2014-02-12 11:34:10 -05:00
Pietro Gagliardi 5f587fbf47 Added button events. 2014-02-12 11:32:17 -05:00
Pietro Gagliardi ddfb5c7603 Added buttons. 2014-02-12 11:29:20 -05:00
Pietro Gagliardi 87a99bd675 More TODOs. 2014-02-12 10:58:05 -05:00
Pietro Gagliardi 33a32c4cda Added a TODO list. 2014-02-12 10:54:58 -05:00
Pietro Gagliardi 49d0375975 Added initial window size and the Window.SetTitle() function. 2014-02-12 10:51:27 -05:00
Pietro Gagliardi 3f8fe0e710 Separated initial text from sysData and fixed errors in the previous commits. 2014-02-12 10:43:57 -05:00
Pietro Gagliardi f93bebfeec Added control ID generation. 2014-02-12 10:35:15 -05:00
Pietro Gagliardi e9e2c0f269 Set up restrictions tracking. Added a restriction that a window and its controls are fixed to the window once it has been open. Started accounting for parent windows in controls. 2014-02-12 10:29:56 -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 6da43e8bb7 Fixed the PeekMessage() call as per http://blogs.msdn.com/b/oldnewthing/archive/2006/02/10/529525.aspx 2014-02-11 22:38:46 -05:00
Pietro Gagliardi 08ba4a1074 Fixed the wndproc not responding: turns out I have to have message dispatch in the UI thread... 2014-02-11 22:18:14 -05:00
Pietro Gagliardi ae14253c80 Derp me, more incorrect error checking! But now a window shows, and the process hangs, so progress! 2014-02-11 20:23:49 -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 9bfe67c49d Changed the caching such that the window procedure is held until we added the HWND to the cache. Now we have a mysterious class not regsitered issue... 2014-02-11 19:43:07 -05:00
Pietro Gagliardi bc531d60d7 More of the previous error and not printing panics... derp me. Still not fixed yet though... 2014-02-11 19:34:47 -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 ecb2205e02 More error corrections; not done yet... 2014-02-11 19:09:10 -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 7686c6e599 Added the window creation code. Now let's hope this works... 2014-02-11 18:50:33 -05:00
Pietro Gagliardi aa3e2788f3 Moved some more data structures to common_windows.go and made more things private. 2014-02-11 18:36:13 -05:00
Pietro Gagliardi bbff3d4f62 Locked the Windows message loop goroutine to the OS thread. 2014-02-11 18:32:07 -05:00
Pietro Gagliardi a1344512aa Added the Windows message loop. 2014-02-11 18:31:24 -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
Pietro Gagliardi eeff0d8605 Migrated over the window class and window procedure stuff, set up the standard window class, and wrote the skeleton window procedure. 2014-02-11 17:38:38 -05:00
Pietro Gagliardi b727a972ad Set up initialization on Windows (2/2). 2014-02-11 16:25:27 -05:00
Pietro Gagliardi af22eea889 Set up initialization on Windows (1/2) and fixed a leftover error in sysdata_windows.go. 2014-02-11 16:23:38 -05:00
Pietro Gagliardi 9b19ee7245 Moved things that I haven't migated yet out of the way for now. 2014-02-11 16:17:17 -05:00
Pietro Gagliardi 9794814e93 Started implementing the public API: added the Window and Control types and the skeleton of the Windows implementation. 2014-02-11 16:14:15 -05:00
Pietro Gagliardi 394bf3ed9c Simplifying file structure by combining controls files (2/2). 2014-02-11 15:18:28 -05:00
Pietro Gagliardi cac078b9e9 Simplifying file structure by combining controls files (1/2). 2014-02-11 15:15:22 -05:00
Pietro Gagliardi 42229820d2 Added _windows.go extensions to all the files in preparation for the library writing. 2014-02-11 13:06:12 -05:00
Pietro Gagliardi a488e3ab36 Added the initial planning document for the portable API. 2014-02-11 12:33:32 -05:00
Pietro Gagliardi 271c89bad5 Added window sizing. I think I'm now ready for the wrapper itself. 2014-02-11 09:43:18 -05:00
Pietro Gagliardi 6ae39f57a2 Added window minimum sizes. 2014-02-11 07:50:00 -05:00
Pietro Gagliardi 07f92bb8d9 Added some TODOs. 2014-02-10 23:45:21 -05:00
Pietro Gagliardi 07c791331c Improved program appearance by setting the correct font, colors, and other styles. 2014-02-10 20:48:08 -05:00
Pietro Gagliardi bcc8751c8b Added a checkbox to the example window. 2014-02-10 17:10:47 -05:00
Pietro Gagliardi 2231c33954 Added static controls and added a static label to the example window. 2014-02-10 17:02:54 -05:00