Commit Graph

45 Commits

Author SHA1 Message Date
Pietro Gagliardi fa4094adeb Added Area.RepaintAll() (requested by aybabtme on the Gopher Academy Slack) and implemented it on Mac OS X. 2014-06-09 22:11:08 -04:00
Pietro Gagliardi 641d11c6fe Implemented the new MsgBox()/MsgBoxError() behavior on Windows. 2014-06-08 08:50:52 -04:00
Pietro Gagliardi 7ee05f8263 Added the concept of transience to MsgBox() and MsgBoxError(). Individual implementations will come next. 2014-06-04 23:12:56 -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 a1150fb9ea Added a test of MsgBox() event modality to the standard Area test. 2014-06-02 17:04:39 -04:00
Pietro Gagliardi 370649ec51 Decided to drop the whole handled thing with Area events and just continue the event chain if needed. Same for MousEvent; will have to document that. This is just the test program for now. 2014-06-01 23:34:26 -04:00
Pietro Gagliardi e4c27a4a72 Fixed weird Area time label truncation on Windows; more TODOs and future plans related to that. 2014-04-13 16:46:22 -04:00
Pietro Gagliardi 6f0d114a8b Changed from using image.NRGBA to image.RGBA (premultiplied alpha) in Area.Paint() since it'll be easier to work with on Windows after applying what Treeki/Ninjifox suggested I do instead of what I am doing now. 2014-04-11 16:13:18 -04:00
Pietro Gagliardi d6abf79932 Added bounds checking to NewArea() and Area.SetSize() such that an Area must have a valid size. 2014-04-10 20:42:01 -04:00
Pietro Gagliardi 013e8707da Removed unnecessary space if the secondaryText argument to MsgBox***() is an empty string. This doesn't change much on Mac OS X; it always shows the informational text field, showing an empty string by default. On GTK+ it seems to get rid of the bold over the primary text; I'm going to assume this is intentional (it looks that way on GTK+ 2; the HIG docs have outdated screenshots...). 2014-04-10 12:35:37 -04:00
Pietro Gagliardi 8259e6d1f8 Added a test for the extremities of the Area's actual drawing area to make sure all pixels are shown on all platforms. That seems to be the case right now... Also more TODOs. 2014-04-09 20:44:07 -04:00
Pietro Gagliardi f7817f6987 Added (untested; VM issues) code to handle Mac OS X Quit Dock menu items and other related stuff that may happen in the future. Will drop the TODO after I can test it. 2014-04-06 23:33:27 -04:00
Pietro Gagliardi fa880a71cc Added a println() to the main test window to signal that window closing has happened. This is used for ensuring that closing programs from a task switcher works as expected (that is, that the appropriate w.Closing event is triggered if an individual window is asked to be closed, and something else if an application as a whole is...). 2014-04-02 10:27:41 -04:00
Pietro Gagliardi 07a877fa6e Updated the GTK+ implementation and test programs to reflect the new KeyEvent setup. 2014-03-29 12:33:36 -04:00
Pietro Gagliardi ab6e7121e4 Added a flag to AreaHandler.Key()/Mouse() to indicate that a repaint is needed after that event has been handled. (Having Repaint() as a method deadlocked for the same reason resizing deadlocked before.) 2014-03-27 20:31:23 -04:00
Pietro Gagliardi 4a1d259f5c Added the beginning of a keyboard input test to be written. Also more TODOs. 2014-03-27 18:31:23 -04:00
Pietro Gagliardi 9533b3d7d4 Added Area mouse events on Windows. Also more TODOs. 2014-03-25 15:06:43 -04:00
Pietro Gagliardi bbccf96981 Fixed the shrinking not working: the Cairo clip rect apparently can fall outside the actual size of the widget. (I did notice this before.) 2014-03-23 21:31:29 -04:00
Pietro Gagliardi a41f582866 Added Area resizing. Everything mostly works, but not making things smaller... 2014-03-23 20:54:11 -04:00
Pietro Gagliardi d1376e035d Added the GTK+ implementation of Area keyboard events. Seems to work fine for now... 2014-03-23 17:12:30 -04:00
Pietro Gagliardi c180703373 Er oh the crash was because I was still using the lock-friendly code. Will still apply the change to memory allocation because memory reuse. 2014-03-17 21:02:11 -04:00
Pietro Gagliardi e5425036e0 Put the Label that changed each second in the main test. 2014-03-17 14:14:29 -04:00
Pietro Gagliardi 4adf1ae5cd Removed the mutexes from Labels and Areas because I'm at my wits end about settling the deadlock between window resizing and setting a Label's text. 2014-03-17 13:37:51 -04:00
Pietro Gagliardi 7c3647712b Updated the test program to the new AreaHandler interface. The deadlock still happens... just not so easily... so it's elsewhere... 2014-03-16 21:52:50 -04:00
Pietro Gagliardi 356ed25b52 Added a time display to the Area test for testing deadlocks that will happen when Area becomes more feature-filled... it appears one has now appeared when resizing the window... 2014-03-16 11:24:30 -04:00
Pietro Gagliardi 6ef6dd8eba Added a test of the mouse event handling. 2014-03-15 22:38:06 -04:00
Pietro Gagliardi e3770fa8de Added a slightly more meaningful test: draw an Image in an area. 2014-03-15 00:55:30 -04:00
Pietro Gagliardi a61b43f50c Hacked around the cairo issue for now; hooked everything together and fixed a few things. Added the Area test to the test program. Now to just hook up the draw event. 2014-03-14 23:06:51 -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 6ee8d96a6e Added GTK+ indeterminate ProgressBars. 2014-03-12 17:31:13 -04:00
Pietro Gagliardi 2fb7056be4 Standardized message boxes so they appear similarly on all platforms. This shafts Windows because primary/secondary text message boxes were only added in Windows Vista, but at least MSDN provides discourse. 2014-03-12 12:14:24 -04:00
Pietro Gagliardi 1e338afc4a Split NewListbox() into NewListbox() (single-selection) and NewMultiSelListbox() (multiple selection); fixed the documentaiton for the Listbox constructor(s) to talk about Listbox and not Combobox, and added some TODOs. 2014-03-11 20:44:04 -04:00
Pietro Gagliardi cdd535cc71 Made Stack.SetStretchy() panic on invalid index, ending that group of functions. Also added the tests for those functions who did not have tests already written. 2014-03-11 17:37:04 -04:00
Pietro Gagliardi c43583fe20 Handle out of range on Listbox.Delete(). The Mac OS X exception behavior I previously noted has bene resolved: what happens after exception handling is undefined :| 2014-03-11 13:37:19 -04:00
Pietro Gagliardi 699f786cd5 Fixed compiler errors in the previous few commits. 2014-03-10 11:06:07 -04:00
Pietro Gagliardi f4506277b9 Added bounds checks for Listbox.InsertBefore(). This stupid 32-bit Mac bug keeps Listbox.Delete() unchecked for now... 2014-03-09 10:51:01 -04:00
Pietro Gagliardi 3e47b00eda Added bounds checks for Combobox.InsertBefore() and Combobox.Delete(). 2014-03-09 10:41:07 -04:00
Pietro Gagliardi a67eaaf9ba Added a flag to the test program to evaluate illegal deletions on Mac OS X, necessary before I make it panic myself. 2014-03-08 21:59:03 -05:00
Pietro Gagliardi 3aa59d4ab9 Added Combobox/Listbox.Len() and its GTK+ implementation. 2014-03-08 16:42:57 -05:00
Pietro Gagliardi 20dcc48bee Changed Combobox.Append() and Listbox.Append() to accept multiple strings in one call. 2014-03-07 15:01:42 -05:00
Pietro Gagliardi d6f289bc86 Split NewStack() into NewHorizontalStack() and NewVerticalStack(). Unexported Orientation and its values accordingly. 2014-03-06 20:30:13 -05:00
Pietro Gagliardi 40a9dc55c9 Changed the ".." import in the test binary to a proper "github.com/andlabs/ui" import. (This means I finally moved my working environment out of a folder src/wingo and into the proper src/github.com/andlabs/ui.) 2014-03-04 23:10:48 -05:00
Pietro Gagliardi 6c33892831 Added flags to show the auxiliary test windows in the test program, to make working with just the main window easier. 2014-03-03 15:55:38 -05:00
Pietro Gagliardi 0333f799d9 Added a Listbox preferredSize test window to the main test program, as it appears I'm going to have to change how sysData.preferredSize() works on Mac OS X to acommodate NSTableView, NSScrollView, and NSProgressIndicator... 2014-03-03 13:58:20 -05:00
Pietro Gagliardi be5458c0a3 Major code restructure to allow Cocoa to work correctly. Cocoa requires that 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-03-01 15:18:29 -05:00