Commit Graph

54 Commits

Author SHA1 Message Date
Pietro Gagliardi 1238936a16 Added Post() and implemented it on Windows. 2014-07-03 11:04:07 -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 5d339e656b Moved everything out of the way pending rewrite. 2014-07-02 17:13:40 -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 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 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 33155f7496 Reverted everything back to the old API. 2014-06-30 09:57:44 -04:00
Pietro Gagliardi affc65a5a4 Fixed the build. New API works on Windows! Also removed TODO on dialogs in Windows since I can't reproduce the weird behavior anymore; I guess the new code fixes it. 2014-06-28 16:37:55 -04:00
Pietro Gagliardi 02d6a03ba3 Decided to make dialogs code-modal; will figure out how to get the behavior I want on Mac OS X - http://stackoverflow.com/questions/24468620/how-do-i-create-a-nested-run-loop-after-nsalert-beginsheetmodalforwindow-tha - Now to see if Windows works... 2014-06-28 16:02:50 -04:00
Pietro Gagliardi cd116033a3 Adjusted window.go to make safe functions actually safe. 2014-06-28 15:40:06 -04:00
Pietro Gagliardi 3fbf746682 Added rewrite of most of the dialog system for the new API. The Windows API is, however, getting in the way... 2014-06-28 09:37:31 -04:00
Pietro Gagliardi a894c3fc6d Documented the new Window.Closing behavior. 2014-06-28 02:16:52 -04:00
Pietro Gagliardi c8ae74cf26 Implemented the new events in the portable code. 2014-06-28 01:57:07 -04:00
Pietro Gagliardi d13e398e90 Migrated window.go and sysdata.go to the new API. Controls will need to be migrated as well. 2014-06-28 01:22:40 -04:00
Pietro Gagliardi 1eeadc000a Made the new sizing system work on Windows. 2014-06-25 23:21:57 -04:00
Pietro Gagliardi e4992dbcb2 Began the work for moving everything to the new control sizing system. 2014-06-25 22:07:37 -04:00
Pietro Gagliardi 0e620c4d34 Fixed window.go from the previous commit to improve documentation and change function behavior. 2014-06-11 09:51:00 -04:00
papplampe 4fa35b2239 added Center function to window 2014-06-11 11:41:31 +02:00
Pietro Gagliardi 43b3f1c2a8 Partial go fmt. Will do the rest over the next few commits. While I'm not 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-10 09:55:14 -04:00
Pietro Gagliardi 427a0f3a74 Big change to Window: split Open()'s functionality into Create() and Open(); they no longer return errors. 2014-06-03 23:08:51 -04:00
Pietro Gagliardi 59870e80f0 Quick changes: turned "Window has been opened" to "Window has been created" since I'm going to separate creating and opening (Open() will call Create()). 2014-06-03 22:54:28 -04:00
Pietro Gagliardi 9e185d815e Documented that event channels can be assigned to each other to collapse events. 2014-04-10 11:59:40 -04:00
Pietro Gagliardi 2647d28f2b Removed the initText parameter from sysData.make() and changed all invocations to call sysData.setText() separately; this avoids the need to check if sysData.setText() is valid. Also implemented that on GTK+. 2014-04-01 16:43:56 -04:00
Pietro Gagliardi 34ce16d586 Separated file creation dates from the package comment. 2014-03-12 21:55:45 -04:00
Pietro Gagliardi 26c6b97ce1 Removed ui.Event(); all event channels are initialized with their objects now. 2014-03-12 21:47:39 -04:00
Pietro Gagliardi a68bdec2fd Removed error returns from [all controls].SetText() and Window.SetTitle(). 2014-03-10 10:45:15 -04:00
Pietro Gagliardi 3ed9c0b75d Removed error returns from Window.Show() and Window.Hide(). Also properly locked the Window's mutex lock in both functions. 2014-03-09 21:47:22 -04:00
Pietro Gagliardi 45e0779790 Split sysData.show() into separate show() and firstShow() to accomodate Windows's differing rules for first-time window show; this will also allow me to remove the error returns from sysData.show() and sysData.hide() (later). 2014-03-09 21:40:14 -04:00
Pietro Gagliardi b166c0f114 And the uitask message fixed was the issue all along. Now it works. 2014-02-24 14:16:05 -05:00
Pietro Gagliardi d08ad65c4c Potential fix: show the window before getting control preferred sizes; need to make setRect() locking first. 2014-02-24 14:05:38 -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 b1b05c2b1f Removed all //package ui comments. 2014-02-17 18:01:32 -05:00
Pietro Gagliardi 1be9c1a105 Removed another TODO in window.go related to resizing. Also a note I forgot to say a few commits ago: setWindowSize() also keeps the OS-decided window position. 2014-02-15 13:12:46 -05:00
Pietro Gagliardi 99feed7628 Removed setting the initial width and height in sysData.make() (this gets rid of the dummy 300x300 sizes from the controls) and added an explicit sysData.setWindowSize() to Window.Open() to ensure everything's sized properly. 2014-02-15 13:07:46 -05:00
Pietro Gagliardi a65e5d8743 Fixed build errors in the previous commits. 2014-02-15 12:45:17 -05:00
Pietro Gagliardi 2c97007551 Resolved some of window.go's TODOs. 2014-02-15 12:04:01 -05:00
Pietro Gagliardi 3a69fa9f2d Window-related TODOs. 2014-02-14 23:19:35 -05:00
Pietro Gagliardi 9403224eb0 Windows no longer need to be Controls after I reworked the parent-child system so that children do not need ot know what their parents are. 2014-02-14 11:13:10 -05:00
Pietro Gagliardi 80f43a613a Renamed Control.apply() to Control.make(). 2014-02-14 11:12:08 -05:00
Pietro Gagliardi 8407bfb0cb Changed manual sysData construction to use a helper function instead. 2014-02-14 11:02:59 -05:00
Pietro Gagliardi 91113a32bf Removed Control.setParent() as the parent/child hierarchy is now unidirectional. 2014-02-13 11:45:10 -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 942490e1aa Adjusted Control and Window for the new system. 2014-02-12 21:23:53 -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 ddfb5c7603 Added buttons. 2014-02-12 11:29:20 -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