Commit Graph

366 Commits

Author SHA1 Message Date
Pietro Gagliardi 995fbb2b8f Migrated all Common Controls version 6 initialization on the Windows backend to C. 2014-08-12 12:05:23 -04:00
Pietro Gagliardi 1873b72d49 Got rid of the direct use of WPARAM in Area mouse events on Windows. Whatever happened between then and now, Held works on both Windows and GTK+ now... 2014-08-12 05:11:17 -04:00
Pietro Gagliardi eb504480b1 Fixed the weird crash with calling Do() recursively; woo! 2014-08-11 21:57:20 -04:00
Pietro Gagliardi 166eaeb7db Revert "Revert "Settled race condition TODOs across all platforms... as an unfortunate case :(""
Put this back on master so we can debug.

This reverts commit 67adbd43a1.
2014-08-11 19:38:21 -04:00
Pietro Gagliardi 67adbd43a1 Revert "Settled race condition TODOs across all platforms... as an unfortunate case :("
Things broke when introducing this after the new GC... let's see if this broke under the new GC or not.

This reverts commit b198a4dfec.
2014-08-11 17:18:02 -04:00
Pietro Gagliardi 2c7c8b3a6b More TODOs. 2014-08-11 16:50:45 -04:00
Pietro Gagliardi 7d578d2617 Resolved failure conditions in the GTK+ Table GtkTreeModel implementation. 2014-08-11 14:22:17 -04:00
Pietro Gagliardi b1a2ed827b More future plans. 2014-08-11 14:17:22 -04:00
Pietro Gagliardi b198a4dfec Settled race condition TODOs across all platforms... as an unfortunate case :( 2014-08-11 14:16:23 -04:00
Pietro Gagliardi 5d4fd8169b Settled the Label alignment TODO in label_darwin.go. Also more future plans. 2014-08-11 13:27:17 -04:00
Pietro Gagliardi 219132f2f1 Renamed Mac OS X's container's view field to id to be in sync with the other Mac OS X data structures. 2014-08-11 12:49:39 -04:00
Pietro Gagliardi 55f25afb49 Removed TODOs about initial sizing of Windows and their Controls on Mac OS X; turns out we fixed that problem when we did our container NSView and overrode setFrameSize: :D 2014-08-11 12:40:41 -04:00
Pietro Gagliardi 61cd581ff4 Added a test for window size to test the small window weirdness of Areas on Mac OS X. 2014-08-11 12:21:19 -04:00
Pietro Gagliardi 3ebbae73ec Fixed compilation errors on the Mac OS X side. 2014-08-11 12:00:18 -04:00
Pietro Gagliardi bb8603ed4e Moved Mac OS X modifier flags constants to the Objective-C side for maximum safety. 2014-08-11 11:52:10 -04:00
Pietro Gagliardi 5a67a81e0b Removed a TODO about "other properties" of the Mac OS X Area initializer; I have no idea what those properties would be. 2014-08-11 11:47:28 -04:00
Pietro Gagliardi 80ff6b2048 Renamed areaView to goAreaView in accordance to the other Objective-C class names on the Mac OS X backend. 2014-08-11 11:44:55 -04:00
Pietro Gagliardi be56135451 Removed the need for C.frame() by splitting apart the alignment rect functions on the Mac OS X side. 2014-08-11 11:36:32 -04:00
Pietro Gagliardi 10201ef24f Finished Table cell text layout styles on Mac OS X. 2014-08-11 03:56:07 -04:00
Pietro Gagliardi 4bede4aa8d Split the autocorrect disabling stuff on Mac OS X into its own function and marked the TextArea TODO as a future plan. 2014-08-11 00:17:21 -04:00
Pietro Gagliardi 57cdc83280 Started setting text layout options for Table on Mac OS X. 2014-08-10 23:54:56 -04:00
Pietro Gagliardi a172143fe6 Improved the error reporting facilities of uiinit() on Mac OS X. Not used yet, though... 2014-08-10 22:24:08 -04:00
Pietro Gagliardi 37b1c3309b Stored table column numbers more efficiently on Mac OS X. 2014-08-10 22:10:47 -04:00
Pietro Gagliardi 5ec2c768fa Made a more intelligent Table.preferredSize() for Mac OS X. 2014-08-10 15:56:59 -04:00
Pietro Gagliardi d30956d625 More future plans. 2014-08-10 14:42:58 -04:00
Pietro Gagliardi 5679d02d1e Removed borders from Areas on Mac OS X. 2014-08-10 14:37:34 -04:00
Pietro Gagliardi 4e46975906 Really fixed Mac OS X text box borders this time =P 2014-08-10 14:15:59 -04:00
Pietro Gagliardi 01136cbd86 Fixed text field/label bordering on Mac OS X. 2014-08-10 13:55:46 -04:00
Pietro Gagliardi 65db139be7 More .m file restructuring on the Mac OS X backend. 2014-08-10 13:28:34 -04:00
Pietro Gagliardi 0b3f6570ac Settled NSBitmapImageRep TODOs on the Mac OS X backend. 2014-08-10 13:19:42 -04:00
Pietro Gagliardi 09a1239d94 Removed TODO about nil receiver in uitask_darwin.m by checking for nil anyway. 2014-08-10 08:04:20 -04:00
Pietro Gagliardi f7c17958c1 Removed TODO in area_darwin.m; -[NSView displayRect:] is the answer. 2014-08-09 22:27:57 -04:00
Pietro Gagliardi 9bf415bcaf Removed TODO about duplicate case labels (it's illegal in C too; citing the standards (both C89 and C99) as proof). 2014-08-09 21:49:21 -04:00
Pietro Gagliardi 62938635a2 Started splitting apart xsizing_darwin.m and rearranging objc_darwin.h. 2014-08-09 21:34:56 -04:00
Pietro Gagliardi ea3dd093f7 Changed PrefSize to PreferredSize throughout. 2014-08-09 21:29:37 -04:00
Pietro Gagliardi eec2f985b0 Renamed display() to areaRepaintAll() and resolved a TODO on the Mac OS X side. 2014-08-09 21:27:28 -04:00
Pietro Gagliardi 9217250d5c Removed unnecessary TODO from xsizing_darwin.m. 2014-08-09 10:39:46 -04:00
Pietro Gagliardi 6c1bf7aabd Big change: with the current event model, it's safe to call Area.RepaintAll() (and the future Area.Repaint()) from within AreaHandler.Key() and AreaHandler.Mouse(); get rid of the bool returns from each. The future Area.Repaint() is important; the bool returns repainted the whole Area, which may not be optimal. 2014-08-09 10:33:38 -04:00
Pietro Gagliardi b4a97e871a Settled the placement of functions formerly in sizing_windows.c and updated the winapi_windows.h header file to suit. 2014-08-09 10:26:42 -04:00
Pietro Gagliardi 5198f7202f Finished the previous commit. 2014-08-09 00:28:12 -04:00
Pietro Gagliardi f24e177d99 Mostly fixed Labels on Windows being offset slightly; need to finish the fix by making it not apply to standalone Labels and adding comments. 2014-08-08 23:47:06 -04:00
Pietro Gagliardi 21dbda72e2 Added an optimization to the Tab code on Windows where only the current tab was resized, thinking it would solve flicker issues. It did not, and GTK+ resizes all tabs, so I'm keeping this in mergeback/ for now. 2014-08-08 23:02:25 -04:00
Pietro Gagliardi 0cf86eeb03 Added nested and empty tabs to the test program, and fixed up relevant documentation. 2014-08-08 22:28:58 -04:00
Pietro Gagliardi 8ee7b2b809 Removed borders from Areas on the GTK+ backend. 2014-08-08 20:31:15 -04:00
Pietro Gagliardi ff6c3a7cbe More TODOs. 2014-08-08 20:16:42 -04:00
Pietro Gagliardi 3200a0ca97 More TODO/future plan separation. 2014-08-08 20:14:25 -04:00
Pietro Gagliardi 79ada1bdaa Starting splitting out future plans from the TODOs again; this time: Group. 2014-08-08 20:05:36 -04:00
Pietro Gagliardi e1486f3cd1 Decided to revert the transparency changes; I'll try flicker-free first. 2014-08-08 13:07:38 -04:00
Pietro Gagliardi 6707839e9b Added what should have been the flicker-free code to Windows containers; it doesn't actually work 100%, though (not flicker-free; window backgrounds are now black), so it's #ifdef'd out for now. 2014-08-07 11:27:00 -04:00
Pietro Gagliardi ddbb719918 Made containers transparent on Windows. This is the first of a four-part set (though IDK if it will be four commits) to make both containers and areas both transparent and flicker-free. Also added a Space() tab to the test program to test the transparency. 2014-08-06 21:34:31 -04:00
Pietro Gagliardi 2ea9987c98 Made the tabs of Tab controls on Windows children of the main tab control itself; this will let us be transparent... hopefully. 2014-08-06 20:53:11 -04:00
Pietro Gagliardi d9f9d40294 Disabled Table column autoresizing on Windows for now as it causes weird bugs on Windows XP... 2014-08-06 19:56:14 -04:00
Pietro Gagliardi c4e95a0bbf Decided to set the frame before calling baselineOffsetFromBottom in xsizing_darwin.m, just to be safe. 2014-08-06 11:03:42 -04:00
Pietro Gagliardi e1c3a9fe26 Removed areaPrefSize() from the Mac OS X backend; we now store the Area's size separately and return that for the preferred size instead. 2014-08-06 11:01:37 -04:00
Pietro Gagliardi d307848c8c Removed leftover TODOs: container does handle margins now. 2014-08-06 10:50:07 -04:00
Pietro Gagliardi b3b91c68d0 Implemented reasonable table column autosizing on Windows. 2014-08-06 10:42:26 -04:00
Pietro Gagliardi 3dcdd05562 Removed the NSMakeRect(0, 0, 100, 100) dummy init rect from the Mac OS X backend; NSZeroRect works fine for this after all. Thanks to jer in irc.freenode.net/#macdev. 2014-08-05 22:02:57 -04:00
Pietro Gagliardi 46bb97cb75 Fixed area_windows.c data types. 2014-08-05 21:34:58 -04:00
Pietro Gagliardi b8bf4f28b6 More TODOs. 2014-08-05 20:48:42 -04:00
Pietro Gagliardi 1744b08dd8 Made standalone labels aligned to the top-left on GTK+. 2014-08-05 20:47:56 -04:00
Pietro Gagliardi 03f2873f68 Set vertical alignment of Labels next to Areas on GTK+. 2014-08-05 20:43:56 -04:00
Pietro Gagliardi 045f8859f7 Removed leftover TODO. 2014-08-05 19:01:56 -04:00
Pietro Gagliardi 1badd53681 Renamed textField to textfield; this is just for the private implementation. 2014-08-05 17:46:42 -04:00
Pietro Gagliardi c460c11b65 Added the hollow brush to the list of static data initialized by uiinit() in the Windows backend; this lets other parts of the package use the hollow brush without the need for additional error checking. 2014-08-05 16:30:12 -04:00
Pietro Gagliardi c6674d1e9e Re-added the NSApplication support code for Area on Mac OS X. 2014-08-05 14:40:08 -04:00
Pietro Gagliardi 6b7660a671 Added the Mac OS X implementation of Area... somewhat messily, but eh. 2014-08-05 14:33:25 -04:00
Pietro Gagliardi 6de4565e0c Removed sizer_windows.go now that it is no longer needed. 2014-08-05 13:15:39 -04:00
Pietro Gagliardi 96c81996ba Fixed errors with Area on Windows. Woo! 2014-08-05 12:49:08 -04:00
Pietro Gagliardi 57df87f11d Fixed lots of syntax errors, including one where I forgot a parameter to a Windows API call, oops... the problem is present in the main package being replaced too. :x It will be fixed when I move this redo up. Also added Area initializer to uiinit(). NOW does it work??? 2014-08-05 12:29:37 -04:00
Pietro Gagliardi fada6849c4 Mostly completed writing Area on Windows. Now to fix compiler errors. 2014-08-05 12:17:44 -04:00
Pietro Gagliardi bccfde2c34 Started re-adding Area to the Windows backend: ported the existing code to C. 2014-08-05 12:05:43 -04:00
Pietro Gagliardi c1055ae278 Resolved Mac app bundle startup issues. 2014-08-05 08:23:16 -04:00
Pietro Gagliardi b46167f1e2 Fixed up the implementation of Area on GTK+ and the Area test. Seems to be fine, though for some reason holding down a mouse button doesn't generate a drag in GTK+ 3.10... 2014-08-05 00:34:24 -04:00
Pietro Gagliardi 3e25992f09 Some slight Area cleanup. 2014-08-04 23:32:59 -04:00
Pietro Gagliardi 28764445b9 Re-added Area on the GTK+ backend. Not yet working; need to reconnect signals. 2014-08-04 23:31:11 -04:00
Pietro Gagliardi 95151ce6ea Re-added the events files for Area. 2014-08-04 23:05:31 -04:00
Pietro Gagliardi f035792c1d Re-added area.go. This is the start of re-adding Area. 2014-08-04 22:29:39 -04:00
Pietro Gagliardi 515a605dda Same as three commits ago, but for the GTK+ backend. 2014-08-04 22:21:58 -04:00
Pietro Gagliardi b84cdaf077 More TODOs. 2014-08-04 21:41:42 -04:00
Pietro Gagliardi 12f7c691d3 Same as previous commit, but for showing and hiding containers on Windows. 2014-08-04 21:33:58 -04:00
Pietro Gagliardi 95815841aa Merged cases of C.moveWindow() on Windows containers to one place (container_windows.go) as a method on container. 2014-08-04 21:27:35 -04:00
Pietro Gagliardi 4606f5c2ee Decided to keep tab textures on Windows. 2014-08-04 21:22:43 -04:00
Pietro Gagliardi 23baffe55e Applied the container change to the GTK+ backend. Woo! 2014-08-04 21:08:18 -04:00
Pietro Gagliardi 91f1a34003 Re-added base units calculation to the resizing code now that container stores a HWND again. 2014-08-04 20:10:23 -04:00
Pietro Gagliardi ef513c4337 Completed the migration of the Windows backend to the new container system. 2014-08-04 20:04:16 -04:00
Pietro Gagliardi 9ed4ec5259 Split layout and Window on Windows to use two separate window classes. This is the first half of the two-part migration of the Windows backend to use container. 2014-08-04 19:46:49 -04:00
Pietro Gagliardi 88c01bf695 Began the big sizer cleanup: renamed sizer to container, renamed sizer.go to container.go, did the Mac OS X migration, moved containerctrls.go out of the way by merging its declarations into basicctrls.go, and did a quick cleanup fix to container_darwin.m. 2014-08-04 17:47:39 -04:00
Pietro Gagliardi 74e2214f43 Fixed the broken Mac OS X build and removed some leftover debugging cruft. 2014-08-04 17:33:13 -04:00
Pietro Gagliardi caa64a3dbe Added a credit I missed two commits ago. 2014-08-04 17:31:43 -04:00
Pietro Gagliardi c33786ab96 Fixed an error in the previous commit. 2014-08-04 17:30:18 -04:00
Pietro Gagliardi 6010665415 Converted Window on Mac OS X to use the new container system. Now I can merge container and sizing... 2014-08-04 17:28:53 -04:00
Pietro Gagliardi 84297ad7e1 Cleaned up Mac OS X Tab code from the previous commit. 2014-08-04 17:07:06 -04:00
Pietro Gagliardi 1ba1f475ba Switched Tab on Mac OS X to use a dedicated container type system. This container type will eventually be the new home of all the sizer stuff. Now to remove the dedicated NSTabView stuff... 2014-08-04 17:03:07 -04:00
Pietro Gagliardi 39a2414cf9 Fixed a small error that caused clicking a Checkbox to crash on Mac OS X. 2014-08-04 13:44:48 -04:00
Pietro Gagliardi 0ac40be173 Removed Control.containerShow() and Control.containerHide() and the overall ability to show and hide Controls in general; too much effort to get right. 2014-08-04 13:39:33 -04:00
Pietro Gagliardi 0496cf77b5 Changed Tab on Windows to store each control in a *layout (see previous commit). Now I can throw out containerShow()/containerHide()/Show()/Hide(). This also will let me do the right thing with sizer and dialog base units again, and even get rid of sizer's confusion once and for all! 2014-08-04 13:13:59 -04:00
Pietro Gagliardi 950548563d Split apart the Windows Window code so that the same window class can be used for both top-level windows and tab pages (next commit). This makes things slightly messy in the short term, but this will all be cleaned up soon, and has the advantage of taking care of the sizer mess~ 2014-08-04 11:05:39 -04:00
Pietro Gagliardi 2c107d7057 Converted the new Windows Control code to use interfaces instead of controlbase, just like the GTK+ and Mac OS X backends do now. 2014-08-03 21:52:21 -04:00
Pietro Gagliardi 0fb45ba84d Did the previous commit, but for the Windows backend. 2014-08-03 20:42:45 -04:00
Pietro Gagliardi a4fac48192 Standardized basegetAuxResize() on the GTK+ backend to match the Mac OS X backend and controlbase.sh. 2014-08-03 20:33:19 -04:00