Commit Graph

1224 Commits

Author SHA1 Message Date
Pietro Gagliardi edd81e2e48 Switched to using Grand Central Dispatch and Objective-C blocks in the Mac OS X backend. THIS IS PRECEDENT-SETTING. 2014-07-08 16:50:52 -04:00
Pietro Gagliardi b4357db4be Added the beginning of the Mac OS X code. 2014-07-08 16:47:28 -04:00
Pietro Gagliardi 60d0953fe9 Implemented the Window OnClosing() event on GTK+. It works! 2014-07-08 12:04:51 -04:00
Pietro Gagliardi be56707c51 Defined events. 2014-07-08 11:23:31 -04:00
Pietro Gagliardi 382bf27523 Fixed runtime crashes for now. Whee, we have a window again! 2014-07-08 11:01:29 -04:00
Pietro Gagliardi 8f768d2b91 Fixed other compilation errors and added a test file. Now to figure out why things are failing at runtime... 2014-07-08 10:00:16 -04:00
Pietro Gagliardi c40d950654 Made event handlers more robust. 2014-07-08 00:29:43 -04:00
Pietro Gagliardi d874148760 Fixed most compilation errors and added GTK+ string helper functions to common_unix.go. 2014-07-07 22:46:23 -04:00
Pietro Gagliardi dccf548ffa Added gtk_unix.h from the old ui; removed the line about gdk-pixbuf. Let's hope this builds... 2014-07-07 22:35:27 -04:00
Pietro Gagliardi cddf0417dc Added Go() and the GTK+ uitask functions. 2014-07-07 21:04:44 -04:00
Pietro Gagliardi 0c57837676 Made event handler setters return a Request, implemented stubs on GTK+ so I can build a test, and made documentation consistent. 2014-07-07 16:51:17 -04:00
Pietro Gagliardi c0c38ac8f5 Added the GTK+ implementation of Window, added the Window constructors, and rewrote the GTK+ Button constructor to use Requests. 2014-07-07 15:30:55 -04:00
Pietro Gagliardi 7966d70230 Added Window to the redo. 2014-07-07 15:03:39 -04:00
Pietro Gagliardi a7715d01d7 Updated README with notes. 2014-07-07 13:44:52 -04:00
Pietro Gagliardi 0c5f5a3ac0 Added GetNewButton as a helper function and split the other controls to xcontrols pending their addition. 2014-07-07 13:40:51 -04:00
Pietro Gagliardi 409ecf8ca7 Added beginning of Unix Control reimplementation. 2014-07-07 10:44:46 -04:00
Pietro Gagliardi bf8d2d7efd Started the redo Control system. 2014-07-07 09:43:01 -04:00
Pietro Gagliardi fd183e8bf7 Added the new common uitask code to the redo. 2014-07-06 21:42:11 -04:00
Pietro Gagliardi 65a3c67ebd Added the Request model of the new, concurrent API. 2014-07-06 21:03:58 -04:00
Pietro Gagliardi 040102aae7 Summed up project status in README. 2014-07-04 15:55:25 -04:00
Pietro Gagliardi b460466e4b Implemented Post() on Mac OS X. 2014-07-03 11:53:21 -04:00
Pietro Gagliardi 1287ba8968 Implemented Post() on the GTK+ backend. 2014-07-03 11:13:48 -04:00
Pietro Gagliardi 1238936a16 Added Post() and implemented it on Windows. 2014-07-03 11:04:07 -04:00
Pietro Gagliardi f7dedc8cb0 Added the start() function and fixed compilation errors. Everything seems to work... 2014-07-03 10:27:46 -04:00
Pietro Gagliardi 9eb9aa82c0 Removed uitask and made the Window creation functions only callable from the 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-03 10:02:27 -04:00
Pietro Gagliardi 8a81650b3d Moved it all back; the preemptive multitaksing during an event handler kills 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-02 22:53:03 -04:00
Pietro Gagliardi 4dd5ceb11d More new plans. 2014-07-02 20:24:10 -04:00
Pietro Gagliardi 8c5030b7f7 More planning. 2014-07-02 20:14:00 -04:00
Pietro Gagliardi ec58bac4dc More planning and TODOs. 2014-07-02 19:56:10 -04:00
Pietro Gagliardi 6bb6f01871 More updates to the new plan. 2014-07-02 18:00:08 -04:00
Pietro Gagliardi 7130526211 Added the new plan. 2014-07-02 17:57:56 -04:00
Pietro Gagliardi 5d339e656b Moved everything out of the way pending rewrite. 2014-07-02 17:13:40 -04:00
Pietro Gagliardi 2d7e168e6a More TODOs. 2014-07-01 23:03:19 -04:00
Pietro Gagliardi 1f0299bd51 Removed the gtk_main_quit() kludge from uitask_unix.go; this also removes our_idle_callback() and its associated stuff. 2014-07-01 19:42:55 -04:00
Pietro Gagliardi 37051f5c15 Migrated the Mac OS X backend to the new uitask system. 2014-07-01 17:11:08 -04:00
Pietro Gagliardi 2a7152339f Fixed indeterminate progress bars on GTK+. This specific fix also avoids any future panics caused by Go and GTK+ racing by doing the pulsing all on GTK+. 2014-07-01 13:47:23 -04:00
Pietro Gagliardi e04e5f5cad Converted the GTK+ backend to use the new uitask. Indeterminate progressbars no longer work; this will be fixed soon. 2014-07-01 12:09:31 -04:00
Pietro Gagliardi 607e710459 Restructured uitask to accept a limited range of actions. Implemented this on the Windows backend. 2014-07-01 11:55:57 -04:00
Pietro Gagliardi ad2c8d9033 Renamed init.go to uitask.go because that should have been done ages ago. 2014-07-01 11:40:11 -04:00
Pietro Gagliardi abb642071d Made the default action for Window.Closing reject the close request. 2014-07-01 09:44:57 -04:00
Pietro Gagliardi 969700f790 Removed WindowHandler. 2014-07-01 09:33:49 -04:00
Pietro Gagliardi f4963e909b Made Button.Clicked a callback. 2014-07-01 08:51:19 -04:00
Pietro Gagliardi 3565889e15 Made Window.Closing a callback closure. 2014-06-30 23:48:08 -04:00
Pietro Gagliardi ffa1bbe0b9 Restored the previous new API. I'm going to change it so that events are callbacks rather than using a window handler, but other than that... yeah. 2014-06-30 22:48:12 -04:00
Pietro Gagliardi 990d50e9a1 Rolled back all those changes; I'm stupid. 2014-06-30 22:42:48 -04:00
Pietro Gagliardi e8a7dd0b87 Converted the Mac OS X backend to use uitask() instead of uitask chan func(). 2014-06-30 21:21:55 -04:00
Pietro Gagliardi 46ba0049cb Converted the Windows backend to make uitask a function that runs the func() 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-30 20:55:42 -04:00
Pietro Gagliardi 496df12751 Disabled MsgBox() on Windows for the time being; I'm going to restructure uitask to avoid needing to deal with channels and it's the only thing using uimsg now. 2014-06-30 20:36:30 -04:00
Pietro Gagliardi 33155f7496 Reverted everything back to the old API. 2014-06-30 09:57:44 -04:00
Pietro Gagliardi e032807546 Copied all the handler-based stuff to a ZIP file as I'm rolling it all back. 2014-06-30 09:56:48 -04:00