summaryrefslogtreecommitdiff
path: root/uitask_windows.go
AgeCommit message (Collapse)Author
2015-12-11LET'S GET THIS FINAL REWRITE EVER STARTEDPietro Gagliardi
2015-02-17Fixed many build errors. Not done yet.Pietro Gagliardi
2015-02-17Tied Table initialization in. Now to test!Pietro Gagliardi
2014-10-27Removed the gouicontainer window class from the Windows backend; it is no ↵Pietro Gagliardi
longer needed.
2014-08-30...in with the new.Pietro Gagliardi
2014-08-30Out with the old...Pietro Gagliardi
2014-07-03Added Post() and implemented it on Windows.Pietro Gagliardi
2014-07-03Removed uitask and made the Window creation functions only callable from the ↵Pietro Gagliardi
main thread. This si the first part in the real major change, which bans all concurrent use of the API and provides a Post() function for communication. I don't like this, but it's the only way. Untested.
2014-07-02Moved it all back; the preemptive multitaksing during an event handler kills ↵Pietro Gagliardi
us on all platforms. Going to have to restrict ALL GUI accss to happening from one t hread, so going to need to drop uitask entirely and have just a start() callback for startup code and a post() function for posting requests to windows (like channel sends but into a perpetual buffer).
2014-07-02Moved everything out of the way pending rewrite.Pietro Gagliardi
2014-07-01Restructured uitask to accept a limited range of actions. Implemented this ↵Pietro Gagliardi
on the Windows backend.
2014-06-30Restored the previous new API. I'm going to change it so that events are ↵Pietro Gagliardi
callbacks rather than using a window handler, but other than that... yeah.
2014-06-30Rolled back all those changes; I'm stupid.Pietro Gagliardi
2014-06-30Converted the Windows backend to make uitask a function that runs the func() ↵Pietro Gagliardi
passed into it, rather than a channel that sends the function to another dispatcher. Windows lets us, since SendMessage() will switch threads if called form another thread. This gets rid of one goroutine and makes things cleaner. Mac OS X has the same optimization avaialble (performSelectorOnMainThread:); GTK+... doesn't seem to...
2014-06-30Reverted everything back to the old API.Pietro Gagliardi
2014-06-28Fixed the build. New API works on Windows! Also removed TODO on dialogs in ↵Pietro Gagliardi
Windows since I can't reproduce the weird behavior anymore; I guess the new code fixes it.
2014-06-28Migrated uitask_windows.go to the new API.Pietro Gagliardi
2014-06-26Allowed tab stops on Windows; see ↵Pietro Gagliardi
http://blogs.msdn.com/b/oldnewthing/archive/2003/10/21/55384.aspx. Fixes #13
2014-06-12Added the scaffolding that will allow us to change uitask on Windows to take ↵Pietro Gagliardi
a func(). Right now it accepts both; this will allow me to do piecewise conversion.
2014-06-10Partial go fmt. Will do the rest over the next few commits. While I'm not ↵Pietro Gagliardi
too happy about it, everyone else uses go fmt, and pull requests will be more convenient if I just do it. (Also do it now, because when I change the Windows backend things are going to change...)
2014-06-09Implemented RepaintAll() on Windows.Pietro Gagliardi
2014-06-03Migrated uitask_windows.go to the new string handling.Pietro Gagliardi
2014-05-30Normalized DefWindowProc() handling across the Windows files; the ↵Pietro Gagliardi
syscall.LazyProc now has the normalized name _defWindowProc and defWindowProc() is a convenience function that calls _defWindowProc properly. This will also be important for the switch to a single window class per Window/Area.
2014-05-29Decided not to use SendMessage() in the Windows uitask() as we're already ↵Pietro Gagliardi
waiting for an event return anyway. Decided not to move the message-only window to an init file, as the message-only window is for uitask().
2014-05-25Finished migrating the Windows code to using the pregenerated constants.Pietro Gagliardi
2014-05-25Removed CW_USEDEFAULT variable definition. It won't compile right now, but ↵Pietro Gagliardi
our cgo-based generator will make sure that isn't a problem.
2014-05-25Changed most instances of var to const in the Windows code. Only one left...Pietro Gagliardi
2014-05-11Consistency change: all Windows API structure field names now match ↵Pietro Gagliardi
case-wise (some were forcibly exported in the past for historical reasons: I originally started package ui by trying to write a Windows API wrapper, but decided to ditch that and just use the Windows API directly from package ui). Also more TODOs.
2014-04-30Added a note to uitask_windows.go that scrolling is a modal loop; that ↵Pietro Gagliardi
solves that mystery from ages ago.
2014-04-28More Windows TODO cleanup/removal and future plans. The message-only window ↵Pietro Gagliardi
in uitask_windows.go now has a title.
2014-04-27More future plans and a clarification in the block comment at the top of ↵Pietro Gagliardi
uitask_windows.go.
2014-04-12Removed the GDI+ dependency on Windows since we no longer use it.Pietro Gagliardi
2014-04-09As it turns out, Windows does have a facility for windows that only serve as ↵Pietro Gagliardi
message dispatches; let's use it for our message handler. (I only found this out while looking up SetParent() for the previous commit).
2014-04-01Fixed the Windows stalling when scrolling an Area problem: messages were ↵Pietro Gagliardi
getting lost because (I assume) scrolling is done in a modal event loop. Alas, we have to change to using a dummy window to handle events. Also altered the respective TODO to document bugs now exposed by this fix.
2014-04-01Removed a stray TODO comment whose purpose is long forgotten.Pietro Gagliardi
2014-04-01Reordered each part of the Windows uitask so that it does things in the same ↵Pietro Gagliardi
order and with the same goroutine setup as the other platforms; this gets rid of a few channels. Also panics on more errors (gets rid of a few more channels) and removed some stray TODOs.
2014-03-29Implemented Area.SetSize() on Windows.Pietro Gagliardi
2014-03-24Added GDI+ to the package's Windows version: DLL loaded, initialized, and ↵Pietro Gagliardi
shut down. It will be used for drawing to Areas because using GDI itself is more complex than it needs to be.
2014-03-12Separated file creation dates from the package comment.Pietro Gagliardi
2014-03-05Have ui.Go() return on main() return on Windows.Pietro Gagliardi
2014-03-01Major code restructure to allow Cocoa to work correctly. Cocoa requires that ↵Pietro Gagliardi
the application loop run on the very first OS thread created, not just an any ordinary thread. To support this, your code must now be run by the UI init code. Windows and Unix builds still work fine; Mac OS X fails for reasons I now have to debug.
2014-02-19Got rid of my Windows input lag problems on Windows (triggered by the switch ↵Pietro Gagliardi
to the concurrent garbage collector sweep routine in the Go runtime) by treating <-uitask as a Windows message itself posted to the message loop thread and not making the message loop a CPU waster.
2014-02-19Moved to a proper package; main() is now a test and go test -c is used to ↵Pietro Gagliardi
build. Once I iron out a bug with Windows event handling, I'll add a README.
2014-02-17Removed all //package ui comments.Pietro Gagliardi
2014-02-15More error/TODO reduction.Pietro Gagliardi
2014-02-11Fixed the PeekMessage() call as per ↵Pietro Gagliardi
http://blogs.msdn.com/b/oldnewthing/archive/2006/02/10/529525.aspx
2014-02-11Fixed the wndproc not responding: turns out I have to have message dispatch ↵Pietro Gagliardi
in the UI thread...
2014-02-11All build errors resolved. Now to test...Pietro Gagliardi
2014-02-11Locked the Windows message loop goroutine to the OS thread.Pietro Gagliardi
2014-02-11Added the Windows message loop.Pietro Gagliardi