Commit Graph

39 Commits

Author SHA1 Message Date
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 f4963e909b Made Button.Clicked a callback. 2014-07-01 08:51:19 -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 c8ae74cf26 Implemented the new events in the portable code. 2014-06-28 01:57:07 -04:00
Pietro Gagliardi ea6200a432 Began the migration to the new API. Removed locks from the public control APIs; they won't be needed anymore. 2014-06-28 01:05:06 -04:00
Pietro Gagliardi 1eeadc000a Made the new sizing system work on Windows. 2014-06-25 23:21:57 -04:00
Pietro Gagliardi 057f0eaf53 Migrated existing controls to the new sizing system. 2014-06-25 22:17:26 -04:00
Pietro Gagliardi 39f0c352fb Added the necessary work to make new regular Labels work on the other platforms. 2014-06-25 11:58:13 -04:00
Pietro Gagliardi 1e66637cd2 More go fmt. 2014-06-10 14:59:39 -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 24342eb05d Restored the locks everywhere except on resizing calculations. I'll run under the assumption that uitask cannot process any requests while a resize occurs, which means preferredSize() and Stack/Grid.setRect() are inherently safe... let's hope I'm right... 2014-03-18 11:50:56 -04:00
Pietro Gagliardi 64d5eb541e Changed the new resizing code so that it uses the same allocated slice per window instead of making a new one to store all the resize requests each time. 2014-03-17 21:09:03 -04:00
Pietro Gagliardi 19227080da Changed window resizes so that the actual Control.setRect() functions appended to an array of requests that the resize() function set all at once instead of having each done individually. This will be necessary for what I think will be a solution to the deadlocks. It doesn't work right now; I'm assuming it's allocating too much memory. I know how to fix this, but I'm committing what I have so far to be safe. 2014-03-17 20:42:36 -04:00
Pietro Gagliardi 0e8680c04f Dumped the mutex locks from the other controls and elaborated/asked for help in the README. 2014-03-17 14:09:09 -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 ce571bad52 Removed error returns from Control.preferredSize() since errors are not going to be returned anymore. 2014-03-09 19:44:41 -04:00
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 cd73e42850 Documentation fixups. 2014-02-25 15:43:12 -05:00
Pietro Gagliardi 53db57745f Added Control.preferredSize() and preferredSize() for all the standard Controls. 2014-02-24 10:56:35 -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 23f6a07c7f Buffered the event channels, as per skelterjohn's suggestion; I thought this would fix the faults I now get, but it doesn't... 2014-02-18 10:53:15 -05:00
Pietro Gagliardi 558c618fbf Gave all relevant controls matching SetText()/Text() pairs. Also added a TODO for Checkbox related to checked state. 2014-02-15 15:51:06 -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 168b6eb112 Handled all controls's created field. 2014-02-14 20:41:36 -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 3d2df2334e Fixed compiler errors. New code structure success! 2014-02-12 21:33:24 -05:00
Pietro Gagliardi 40dc20be0d Whoops, forgot to turn Button.sysData.clicked into Button.sysData.event. 2014-02-12 21:26:18 -05:00
Pietro Gagliardi 5bc4c49afa Modified Button for the new changes. Now I just need to actually create the window class and edit main()... 2014-02-12 21:25:25 -05:00
Pietro Gagliardi a272436ee6 Whoops, forgot to add button.go itself :| 2014-02-12 13:52:34 -05:00