Commit Graph

265 Commits

Author SHA1 Message Date
Pietro Gagliardi 3fc2ed8a2a More TODO/future plan shuffling. 2014-04-13 00:45:55 -04:00
Pietro Gagliardi c5b4859311 More TODOs and future plans. Also finally removed the TODO about incorrect Area redraw on Windows. 2014-04-13 00:34:08 -04:00
Pietro Gagliardi c04b9112a5 More TODOs and future plans. 2014-04-12 22:33:51 -04:00
Pietro Gagliardi d4c79539af Fixed Listboxes on Mac OS X having an initial selection. 2014-04-12 22:05:34 -04:00
Pietro Gagliardi 274fa0c292 Fixed Comboboxes on Mac OS X having an initial selection. This also lays the groundwork for adding Combobox/Listbox.Select() as a public function... 2014-04-12 21:49:41 -04:00
Pietro Gagliardi b9e5ef8e4b Verified that the Listbox item text is vertically positioned properly on Mac OS X. 2014-04-12 21:27:15 -04:00
Pietro Gagliardi aef419a83e Documented the thread safety of AreaHandler and Area.SetSize(). 2014-04-12 14:07:31 -04:00
Pietro Gagliardi e713b59bec Removed TODO about Windows -1 conversions, as the Go spec specifically says that signed values are sign-extended to the full size of the type to convert to (and even shows an example of this), so the code we have was correct, not just working out of luck. 2014-04-10 20:52:12 -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 1c11ef2d9c More TODOs. 2014-04-10 19:38:48 -04:00
Pietro Gagliardi a01ffafba0 Fixed Area mouse events being sent when something happens outside the Area itself. 2014-04-10 18:52:43 -04:00
Pietro Gagliardi 1516c0d938 Decided not to make Labels selectable; nothing does it and it's a platform detail. 2014-04-10 16:23:51 -04:00
Pietro Gagliardi 09e92b0eb3 Documented scrollbars on Listbox and Area to the best of my ability, shuffling the appropriate TODOs around. 2014-04-10 16:18:53 -04:00
Pietro Gagliardi 7b8580b12d More TODOs. 2014-04-10 13:35:27 -04:00
Pietro Gagliardi 865a0ec662 "Fixed" the zero-size Combobox drop-down on Windows by having Windows fix it for us (and since we did everything we need to do to get it to fix it for us, it was already fixed!). 2014-04-10 12:53:23 -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 9e185d815e Documented that event channels can be assigned to each other to collapse events. 2014-04-10 11:59:40 -04:00
Pietro Gagliardi 0a54daa7b1 More TODOs and future plans. 2014-04-09 22:37:36 -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 78bb4cdace Fixed Area drawing assuming the first pixel of the *image.NRGBA is at i.Pix[0]. 2014-04-09 18:26:20 -04:00
Pietro Gagliardi bfb259da27 Tried to resolve the use a single window class for each type of custom window TODO; found it was nothing but problems, so moved to future plans. 2014-04-09 13:22:16 -04:00
Pietro Gagliardi e395adb214 Fixed GTK+ windows having the wrong background. 2014-04-09 12:04:04 -04:00
Pietro Gagliardi 69b63dbbb8 Slowed GTK+ indeterminate Progressbars down. 2014-04-08 00:21:12 -04:00
Pietro Gagliardi 14bb9e3621 Removed the TODOs about AppQuit: fixed on OS X, never a problem on Windows, unfixable elsewhere (these are window manager window-local(? apparently...) events so they never hit us; thanks to some people in irc.gimp.net/#gtk+). Also added some notes to the future plans document (related to all that). 2014-04-07 12:49:23 -04:00
Pietro Gagliardi af770340c9 Added details of application termination handling. 2014-04-06 19:14:28 -04:00
Pietro Gagliardi 0524a17920 Added borders to GTK+ Listboxes (thanks to jlindgren in irc.gimp.net/#gtk+); ends that TODO. 2014-04-06 13:25:23 -04:00
Pietro Gagliardi a65012f476 More TODOs. 2014-04-05 23:14:25 -04:00
Pietro Gagliardi 7d02af4e81 Removed the bit about selectable messagebox text from the TODO file: that's a platform-specific thing. 2014-04-05 23:10:07 -04:00
Pietro Gagliardi 30c3ee1b98 Gave Listboxes a border on Mac OS X. That just leaves GTK+: oyxgen-gtk always gives GtkScrollingWindows a border, which misled me earlier... other themes don't. 2014-04-05 22:51:01 -04:00
Pietro Gagliardi 3d04200e8d Split the todo.md file into one for immediate TODOs and one for future work; merged the latter with controlcandidates.md to form a single future stuff list. Also cleaned up all those lists. 2014-04-05 19:38:35 -04:00
Pietro Gagliardi 1449409f61 More TODOs. 2014-04-05 13:32:40 -04:00
Pietro Gagliardi bf1e7aae42 More TODOs. 2014-04-04 18:39:06 -04:00
Pietro Gagliardi be668a965a Fixed Mac OS X Button appearance; turns out it was using the wrong font. Also updated the TODO file to mark this fix and remove other stale/already fixed details. 2014-04-04 14:52:38 -04:00
Pietro Gagliardi 2e617611c5 Adjusted Button and Combobox sizes on Windows to be better... 2014-04-03 21:00:38 -04:00
Pietro Gagliardi 2e72ab689a Updated TODO on dragging in an Area (decided to go with what GTK+ and Windows currently do; dragging was working on Windows all along; now dragging is weird on Mac). 2014-04-03 18:33:57 -04:00
Pietro Gagliardi 773668c35b Fixed the major scrolling corruption on Windows: had to commit the scroll changes before we can get to them in our painting routine =P This doesn't fix ALL the issues; check the (now-updated) TODO. 2014-04-02 23:40:38 -04:00
Pietro Gagliardi a325e9e404 More TODOs. 2014-04-02 21:56:45 -04:00
Pietro Gagliardi 07c8aab1e6 More TODOs. 2014-04-02 19:59:39 -04:00
Pietro Gagliardi 4ac5290771 Fixed Listbox and LineEdit borders on Windows. Also more TODOs. 2014-04-02 19:57:49 -04:00
Pietro Gagliardi 77b5afe824 More TODOs. 2014-04-02 13:48:49 -04:00
Pietro Gagliardi d1c0b9b29d Not using PostThreadMessage() (a few commits back) seems to fix the weird Invalid thread ID. error that happens when running package ui-based programs in wine for the first time (I assume that issue is related to the one that led to the PostThreadMessage() fix). 2014-04-02 10:17:24 -04:00
Pietro Gagliardi 973853c835 Fixed odd Listbox sizing on Windows. (Windows by default sizes List Box controls so that partial items are not visible.) 2014-04-02 10:15:04 -04:00
Pietro Gagliardi cbf439223b Changed the font loading on Windows to always load the control font unless a flag to not load any font is set; when menus and statusbars are added, they need special casing. This also means the preferred size calculations reads controlFont directly (it will need the same change). 2014-04-01 21:24:20 -04:00
Pietro Gagliardi 8cb3991ef9 Fixed Windows control sizing: turns out simply calling GetTextMetrics() was not enough, as the GetDC() functions don't load the control font into the DC; we have to do it ourselves with SelectObject() (according to GetTextMetrics()'s docs on MSDN). Upon re-evaluation, the only things that need custom fonts are menus and statusbars; I don't know if menus can be done with the standard contorls and statusbars change the font of all controls inside... so how fonts are handled in classData needs to change now. 2014-04-01 21:17:27 -04:00
Pietro Gagliardi af95232589 More TODOs. 2014-04-01 20:01:38 -04:00
Pietro Gagliardi 76de7db2c0 Remove TODO about GTK+ and Cocoa errors since we're just assuming errors are mistakes I made in the implementation because at this point that's really what we're left with since on Cocoa doing manual exception handling is discouraged... or something like that. 2014-04-01 19:27:45 -04:00
Pietro Gagliardi df087d0ea5 Fixed the Windows stalling when scrolling an Area problem: messages were 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-01 19:10:30 -04:00
Pietro Gagliardi 2efda7bc39 Separated initial text from sysData.make() on the Mac OS X backend, completing that set of commits. 2014-04-01 17:05:16 -04:00
Pietro Gagliardi 854ec2d17c More TODOs. 2014-04-01 15:54:55 -04:00
Pietro Gagliardi b2f0fe1956 Reordered each part of the Windows uitask so that it does things in the same 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-04-01 15:14:57 -04:00
Pietro Gagliardi 6a7cb73dda Added key events to Mac OS X Areas. Now Area is feature-complete (but buggy) on all platforms :D Also more TODOs. 2014-03-30 19:53:44 -04:00
Pietro Gagliardi 41a7e3dab8 Implemented Area mouse events on Mac OS X. Also fixed a few other things left behind in the previous commits. Also more TODOs. 2014-03-30 17:52:27 -04:00
Pietro Gagliardi b94bd1cc60 More TODOs. 2014-03-29 19:40:45 -04:00
Pietro Gagliardi bafb13dd2f Added Alt+[key] and F10 handling to Windows Area key events. Also more TODOs. 2014-03-29 19:30:08 -04:00
Pietro Gagliardi efdd60375a Documented that the clip area in AreaHandler.Paint() more properly and indicate that it is cleared on each AreaHandler.Paint() call; (try to) implement that on Windows (GTK+ does it for us; noted that as well). 2014-03-29 19:02:09 -04:00
Pietro Gagliardi 652797bd3e More TODOs. 2014-03-29 18:55:50 -04:00
Pietro Gagliardi 85182aec67 More TODOs. 2014-03-29 13:11:19 -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 45cd12cccf Printed the hardware_keycode on GTK+ Area key events... something came up so I think I might be able to do what I originally wanted to do with keyboards... also more TODOs. 2014-03-26 23:13:31 -04:00
Pietro Gagliardi 9533b3d7d4 Added Area mouse events on Windows. Also more TODOs. 2014-03-25 15:06:43 -04:00
Pietro Gagliardi 2b48f7cabf Wrote the code to actually scroll Areas on Windows. 2014-03-25 09:40:14 -04:00
Pietro Gagliardi 136f2262fd More TODOs (and some done TODO elimination). 2014-03-25 07:21:21 -04:00
Pietro Gagliardi 6e4ec82af5 More TODOs. 2014-03-23 21:32:35 -04:00
Pietro Gagliardi e73992ab71 Finally finished getting ready for Area keyboard input; now just need to figure out which keys to support. Also a Wayland-related TODO. 2014-03-22 12:30:58 -04:00
Pietro Gagliardi c628c86597 Updated README with this decision. Also other documents as well. 2014-03-18 11:55:01 -04:00
Pietro Gagliardi 7b95e735d6 More TODOs. 2014-03-16 09:54:37 -04:00
Pietro Gagliardi 0cf3a69ed7 More mouse event planning and TODOs. 2014-03-15 17:14:47 -04:00
Pietro Gagliardi e429b8d6b8 Allowed GTK+ windows to be resized smaller than the size request of the controls within. 2014-03-15 14:27:18 -04:00
Pietro Gagliardi 5fca3a5a2b More TODOs. 2014-03-15 00:57:28 -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 e2ae065579 More Area planning and TODOs. 2014-03-14 13:14:58 -04:00
Pietro Gagliardi 646a001129 More Area planning and TODOs. 2014-03-14 07:18:16 -04:00
Pietro Gagliardi 17688190bb More TODOs. 2014-03-12 21:48:50 -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 9beeeb6371 More TODOs. 2014-03-12 21:41:46 -04:00
Pietro Gagliardi fffec63b51 Whoops, that commit that was to remove the ProgressBar line from todo.md actually removed the wrong line; fixed. 2014-03-12 20:01:30 -04:00
Pietro Gagliardi 55f7a9638e Changed the way uitask is dispatched on GTK+ to make event handling not a CPU hog. 2014-03-12 20:00:29 -04:00
Pietro Gagliardi 1729764db8 Removed indeterminate ProgressBars from todo.md; that's now done. 2014-03-12 19:41:12 -04:00
Pietro Gagliardi 4b0315131a Added indeterminate ProgressBar code on Windows and fixed up a few other things along the way. 2014-03-12 18:53:57 -04:00
Pietro Gagliardi 6ee8d96a6e Added GTK+ indeterminate ProgressBars. 2014-03-12 17:31:13 -04:00
Pietro Gagliardi 038cfd8528 More TODOs. 2014-03-12 14:51:28 -04:00
Pietro Gagliardi ef86d0d15a Gave Listboxes a border on Windows by implementing the subset of LBS_STANDARD we want, not just WS_VSCROLL. This will also allow us to have selection changed events later. 2014-03-12 14:44:31 -04:00
Pietro Gagliardi 46c992f1dc Made message boxes run on uitask on Windows; adjusted some related TODOs. 2014-03-12 12:21:50 -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 92fb9efce9 Removed error returns from Combobox.Delete(), Listbox.Delete(), and sysData.delete(), since they are no longer used. Updated the TODO file to mark this issue closed. 2014-03-11 13:50:02 -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 11ab485dff More TODOs. 2014-03-11 11:48:32 -04:00
Pietro Gagliardi 3213d659ae More TODOs. 2014-03-10 11:12:27 -04:00
Pietro Gagliardi f72d6c9900 Removed now-unused error returns from sysData.show() and sysData.hide(). 2014-03-09 21:56:17 -04:00
Pietro Gagliardi c4d9e6b956 More TODOs. 2014-03-09 21:43:43 -04:00
Pietro Gagliardi 3ff9c7d233 More TODOs. 2014-03-09 21:03:10 -04:00
Pietro Gagliardi 1389fda528 Made Listboxes non-editable in Mac OS X; also more TODOs. 2014-03-09 11:33:05 -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 b253bccadc Updated one of the previous TODOs. 2014-03-08 21:41:30 -05:00
Pietro Gagliardi 3ca17fe6e5 More TODOs. 2014-03-08 17:30:34 -05:00
Pietro Gagliardi d9b0bd3c70 More TODOs. 2014-03-07 20:47:07 -05:00
Pietro Gagliardi 9dc6e6f7b3 Pinned (or marked for later pinninig) behavior of various controls; also improved Space()'s documentation. 2014-03-07 19:28:25 -05:00
Pietro Gagliardi 48fc6fbeab Still more TODOs. 2014-03-07 18:33:51 -05:00
Pietro Gagliardi 0a1e2692ce More TODOs. 2014-03-07 15:08:01 -05:00
Pietro Gagliardi 5a93c83d0d More TODOs. 2014-03-06 22:01:44 -05:00
Pietro Gagliardi dc3d4727af Even more TODO elaboration. 2014-03-06 21:57:51 -05:00
Pietro Gagliardi 2780ab4af4 More TODO elaboration. 2014-03-06 21:57:08 -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 eaaf55621f More TODO cleanup. 2014-03-06 20:12:05 -05:00
Pietro Gagliardi 084cfc57b3 Major overdue cleanup of todo.md. 2014-03-06 19:47:25 -05:00
Pietro Gagliardi f16005c3db Update ui.Go() documentation to show that it will return nil when its main() returns now that that behavior is fully implemented. 2014-03-05 20:11:45 -05: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 11d4f96e77 More TODOs. 2014-03-03 15:47:12 -05:00
Pietro Gagliardi e4c70b2b15 More TODOs. 2014-03-03 15:37:02 -05:00
Pietro Gagliardi 874491a871 Added the scrollbars themselves to the NSScrollView backing the Mac OS X Listboxes. Also added a few TODOs. I think the Mac OS X Listbox implementation is now finished. 2014-03-03 14:57:20 -05:00
Pietro Gagliardi dd2abbacce More TODOs related to the previous commit. 2014-03-03 14:39:33 -05:00
Pietro Gagliardi 674640abe8 Changed how the preferred size of controls is determined to accomodate NSTableView, NSScrollView, and NSProgressIndicator. Updated TODOs to mark other weirdnesses (such as Label text that used to get cropped) that no longer happen because of this. Now for putting Listboxes in NSScrollViews. 2014-03-03 14:37:16 -05:00
Pietro Gagliardi 842815b2e0 Fixed selection grabbing and also append/insert/removal crashes: all were selector name typos. Also some TODOs Now to make this scroll/confine it to a scroll view... 2014-03-03 01:51:54 -05:00
Pietro Gagliardi 77c0198751 Added Mac OS X Labels and a bunch of TODOs. Now for Listboxes... oh boy... 2014-03-02 19:56:54 -05:00
Pietro Gagliardi 38a1b1b203 Fixed incorrect redrawing of Mac OS X windows after resize. Still need to fix the wrong rect issues... 2014-03-02 19:13:26 -05:00
Pietro Gagliardi 4bc35e2db5 Finished the implementation of Combobox on Mac OS X. 2014-03-02 18:38:45 -05:00
Pietro Gagliardi 234b724403 Added the other Combobox modification functions to the Mac OS X backend. Before continuing, I'll get messageboxes working... 2014-03-02 17:44:13 -05:00
Pietro Gagliardi 4599e0d25e More TODOs. 2014-03-01 22:31:28 -05:00
Pietro Gagliardi 859c240a21 Some error message and TODO changes related to the previous commit. 2014-03-01 20:41:30 -05:00
Pietro Gagliardi 10e9f6b927 Fixed non-minimizeable windows in Mac OS X; it was a simple copy-paste fail. 2014-03-01 18:04:09 -05:00
Pietro Gagliardi 5caf0fe84a Cleaned up loose ends with the previous commit and got window close events working on Mac OS X. Woo! 2014-03-01 17:15:26 -05:00
Pietro Gagliardi 4f49935563 Added another important Mac OS X TODO about coordinates. 2014-03-01 15:36:54 -05:00
Pietro Gagliardi a988befc45 Whoops, misspelled -[NSWindow frame] as -[NSWindow _frame]. Fixed; test program works so far! 2014-03-01 15:35:42 -05:00
Pietro Gagliardi 2e869615d3 Documentation and TODO changes. 2014-03-01 15:23:49 -05:00
Pietro Gagliardi 21ec25dd1a More TODOs. 2014-03-01 04:46:42 -05:00
Pietro Gagliardi 69bff124a6 Lock Stack's mutex lock like with all other Controls. 2014-02-25 19:16:26 -05:00
Pietro Gagliardi 06fa3a5174 Added password entry fields; they are the alternate mode of LineEdit. 2014-02-25 15:06:51 -05:00
Pietro Gagliardi 23a40cae26 More TODOs. 2014-02-25 00:34:21 -05:00
Pietro Gagliardi aebf40df6b More TODOs. 2014-02-24 14:56:11 -05:00
Pietro Gagliardi 62d4886253 More TODOs (unrelated to previous commit). 2014-02-24 13:26:04 -05:00
Pietro Gagliardi 3014a5edf1 More TODOs. 2014-02-24 11:35:06 -05:00
Pietro Gagliardi ab0b13a3ab Fixed up todo.md to remove things that are done and add more notes. 2014-02-21 11:35:50 -05:00
Pietro Gagliardi e39a5d928c Fixed the unregistered window class error on 64-bit Windows: turns out it was a difference in Go's int vs. what Windows expected (thanks Microsoft for not using your special types here). Fixed all instances of this, even in unmigrated/. Still does not work in wine... 2014-02-21 02:27:59 -05:00
Pietro Gagliardi 4fe6ccce97 Super ultra important TODO related to previous two commits. 2014-02-19 11:57:18 -05:00
Pietro Gagliardi 00abb00e8b More TODOs. 2014-02-17 02:55:59 -05:00
Pietro Gagliardi 161e874d8a More GTK+ weird behavior TODOs. 2014-02-16 18:42:18 -05:00
Pietro Gagliardi 4fc3cb1d00 Added Checkbox to GTK+. Also added a TODO about crashes. 2014-02-16 18:41:29 -05:00
Pietro Gagliardi 1bcbce4142 Cleaned up the idle callback code. 2014-02-16 17:09:58 -05:00
Pietro Gagliardi f5652737eb More TODOs. 2014-02-16 16:56:25 -05:00
Pietro Gagliardi 21c1ec6f83 Added the beginning of the Unix (GTK+) implementation. 2014-02-16 15:55:51 -05:00
Pietro Gagliardi 8be17f087b More TODOs 2014-02-15 18:15:24 -05:00
Pietro Gagliardi 14aaad6be3 Added Combobox.Delete() and Listbox.Delete() and added some TODOs. 2014-02-15 18:14:43 -05:00
Pietro Gagliardi 430eac563a Added a TODO related to the previous commit. 2014-02-15 16:30:44 -05:00
Pietro Gagliardi 1bb2371e8d More TODO reduction. 2014-02-15 15:38:41 -05:00
Pietro Gagliardi 900ec4e715 More TODOs. 2014-02-15 14:26:37 -05:00
Pietro Gagliardi 063293456d More error handling reduction. 2014-02-15 14:03:46 -05:00
Pietro Gagliardi 532a8f7a16 More TODOs. 2014-02-15 13:12:40 -05:00
Pietro Gagliardi ffe90eb659 Added scrollbars to Listbox. 2014-02-14 22:10:35 -05:00