Commit Graph

511 Commits

Author SHA1 Message Date
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
Pietro Gagliardi 8c4cd789ca Migrated the Mac OS X backend to the new Control setup. 2014-08-03 20:08:25 -04:00
Pietro Gagliardi b6d07237b4 Migrated the GTK+ backend to the new Control system. Added controlParent to deal with interface issues; need to apply this to the Windows backend too. 2014-08-03 16:28:21 -04:00
Pietro Gagliardi fd48be68ee I am a dolt; make Checkbox.Checked() return a bool directly on Windows. 2014-08-03 09:22:15 -04:00
Pietro Gagliardi 6785b48d28 More TODOs. 2014-08-03 09:20:00 -04:00
Pietro Gagliardi 1aea308645 Set up the Control restructure and migrated the Windows implementation over. Lots of repetition, but hopefully more correct and maintainable! 2014-08-03 09:18:35 -04:00
Pietro Gagliardi 585f5f5b62 Applied previous commit's change to the test program. 2014-08-03 09:13:25 -04:00
Pietro Gagliardi ac5c577507 Chagned Checkbox.OnClicked() to Checkbox.OnToggled(). The code restructure will allow this. 2014-08-03 09:12:39 -04:00
Pietro Gagliardi d018953d7e Split all the Control implementations into their own files and renamed the containerctrls implementation files to say tab instead as they only hold Tab. This is the first part of what should hopefully be the final restructuring. 2014-08-02 22:35:58 -04:00
Pietro Gagliardi 1f6bcde3d9 Removed the generic preferredSize() from the Windows backend; all controls are now expected to provide their own on Windows (this is really the only way to go there). NOW I can rework the whole control nonsense... 2014-08-02 12:37:41 -04:00
Pietro Gagliardi cafc9daa72 Implemented Tab.preferredSize() on Windows. 2014-08-02 12:35:36 -04:00
Pietro Gagliardi 668cf5e46e Rewrote the tab height calculation function from the previous commit to consider all tabs, just to be safe. 2014-08-02 12:24:04 -04:00
Pietro Gagliardi 1f6ad99afb Wrote code to get Windows Tabs's tab height; will integrate it later. 2014-08-02 11:05:18 -04:00
Pietro Gagliardi c6e47ba21a Migrated the Label alignment code back into the Mac OS X port. 2014-08-02 09:47:57 -04:00
Pietro Gagliardi 85fb097ab9 Wrote Control.preferredSize() (including Tab.preferredSize()) on Mac OS X. 2014-08-02 08:04:44 -04:00
Pietro Gagliardi 37cf0a20c0 Migrated the Mac OS X backend to sizer. Once I get this control sizing stuff working there and the height of a Tab tab on Windows, I'm going to chuck this whole embedding thing and sacrifice a non-cluttered directory structure for CODE SIMPLICITY. 2014-08-02 07:28:20 -04:00
Pietro Gagliardi 99b6b47a49 Migrated the GTK+ backend to the new sizer system. 2014-08-02 01:14:09 -04:00
Pietro Gagliardi 0356d0fd70 Migrated the Windows backend to use sizer. 2014-08-01 23:36:13 -04:00
Pietro Gagliardi e9b2f9f478 Began cleaning up the sizing/container/control stuff by changing container to sizing. 2014-08-01 23:29:19 -04:00
Pietro Gagliardi 9117da1405 Began migrating all the Mac OS X sizing stuff over. 2014-08-01 23:16:43 -04:00
Pietro Gagliardi cc74f44d58 More TODOs. 2014-08-01 21:49:44 -04:00
Pietro Gagliardi 5ec0082e6a Cleaned up sizing_windows.go now that the important things have been reimplemented. 2014-08-01 21:41:45 -04:00
Pietro Gagliardi 61cf72e44a Added debug chatter to Button.preferredSize() on Windows. 2014-08-01 21:35:56 -04:00
Pietro Gagliardi 3d002cf3a6 Implemented Button.preferredSize() on Windows. 2014-08-01 21:30:41 -04:00
Pietro Gagliardi f7749f3678 Added Table.preferredSize() on Windows. 2014-08-01 21:21:42 -04:00
Pietro Gagliardi 09c1d78126 Added TextField preferredSize() on Windows. 2014-08-01 21:07:49 -04:00
Pietro Gagliardi 3fca111710 Removed previous commit's TODO and added Checkbox preferredSize() on Windows. 2014-08-01 20:56:11 -04:00
Pietro Gagliardi 83eeae1ec2 More TODOs. 2014-08-01 19:42:29 -04:00
Pietro Gagliardi ed38a2cac7 Implemented preferredSize() for Label on Windows. Seems to work... 2014-08-01 19:32:19 -04:00
Pietro Gagliardi e2b8fb81d6 Converted direct usages of C.setWindowText() in the Windows Control code into calls to the equivalent Control methods so the text length can be properly stored. 2014-08-01 19:27:12 -04:00
Pietro Gagliardi 6e78eb94ba More Windows sizing framework code: merged together the MulDiv() instances into wrapper functions and added the basic text length storage into controlbase. 2014-08-01 19:24:57 -04:00
Pietro Gagliardi 785d6ac4fd Added a function to the Windows backend to keep track of text length. This will be important for sizing purposes. 2014-08-01 19:15:03 -04:00
Pietro Gagliardi b31ce95b33 Fixed up more LPCWSTR->LPWSTR conversion, including some code simplification. 2014-08-01 18:30:07 -04:00
Pietro Gagliardi 80828b8a7d Changed LPCWSTR to LPWSTR in the Windows code as the C means const and there are a few cases of const->non-const conversions as a result. 2014-08-01 18:25:59 -04:00
Pietro Gagliardi 7f027bae3c Applied non-standalone Label offsets to the Windows backend. Also more TODOs. 2014-08-01 15:11:09 -04:00
Pietro Gagliardi 9c0aa7be5c Resolved a TODO about label alignment. 2014-08-01 13:14:10 -04:00
Pietro Gagliardi b1902686ca Disambiguated what happens when a regular Label is used in a Standalone context. 2014-07-30 22:45:03 -04:00
Pietro Gagliardi bdc8aac4d6 Added preferred size tests to zz_test.go; these will help for what we're about to do (implement Control.preferredSize() on all other platforms). 2014-07-30 22:42:32 -04:00
Pietro Gagliardi c5917de29c Split out the default definitions of Control.allocate() into a single place. 2014-07-30 20:38:01 -04:00
Pietro Gagliardi 713be62f16 Applied Labels being vertically aligned to the top when next to a Table in the GTK+ backend. 2014-07-30 17:32:10 -04:00
Pietro Gagliardi 3d922c87fa Fixed up attributes of Table on Mac OS X. 2014-07-30 13:10:19 -04:00
Pietro Gagliardi d21bd30583 Moved the Mac OS X function newScrollView() to control_darwin.m and verified its styles against Interface Builder. 2014-07-30 12:50:45 -04:00
Pietro Gagliardi a8b7283a87 Moved the definition of Control itself to control.go and updated some comments. 2014-07-30 12:36:00 -04:00
Pietro Gagliardi c0473db73c Ported the new Control setup to Mac OS X. 2014-07-30 12:34:54 -04:00
Pietro Gagliardi 4740f72efb Applied the new Control system to the GTK+ backend. 2014-07-30 10:21:23 -04:00
Pietro Gagliardi 210102fe95 Set up a new, cleaner model for deriving Control's methods and applied it to the Windows backend. 2014-07-30 02:06:01 -04:00
Pietro Gagliardi 5a51263adc Renamed the controls* and containers* files to basicctrls* and containerctrls*, respectively, in preparation for the widget hierarchy redo. 2014-07-30 00:54:50 -04:00
Pietro Gagliardi 8b1756e952 Re-added Stack. Of course it only works right on GTK+ right now... the other platforms's Control.preferredSize()s aren't implemented yet! 2014-07-29 23:23:45 -04:00
Pietro Gagliardi 9daab20fce Changed Control.setParent() to take the same argument type on all platforms; this is needed for re-adding Stack and Grid. This argument type is defined by each platform. 2014-07-29 23:01:28 -04:00
Pietro Gagliardi f4bb7360d4 Added Label and implemented it on all platforms. 2014-07-29 13:48:31 -04:00
Pietro Gagliardi 8d7f0c9a62 Wrote up the data model for Mac OS X Tables; now Tables work everywhere! 2014-07-29 10:54:52 -04:00
Pietro Gagliardi 4e0436da18 Added the beginning of the Mac OS X Table code. 2014-07-29 10:32:49 -04:00
Pietro Gagliardi b37f32c142 Made column headers resizeable on GTK+ Tables. 2014-07-29 04:30:58 -04:00
Pietro Gagliardi abb77b7a5c Hooked all the GTK+ Table stuff together and got it working. Woo! 2014-07-29 03:43:01 -04:00
Pietro Gagliardi f099d935ea Added build guards to the GTK+ Table code. 2014-07-29 03:11:21 -04:00
Pietro Gagliardi 24f5a91ff4 Wrote the GTK+ Table model code. Mostly working; now it just needs an update mechanism... 2014-07-29 03:07:11 -04:00
Pietro Gagliardi 92539e10e9 Added the beginning of the GTK+ Table model implementation. 2014-07-29 01:53:34 -04:00
Pietro Gagliardi ab8acd99b9 Fixed a small error in the zz_test.go rewrite from a few commits ago. 2014-07-29 01:40:17 -04:00
Pietro Gagliardi a501c5678d Began the implementation of Table on GTK+. 2014-07-29 01:06:56 -04:00
Pietro Gagliardi 74756e3086 Added #include "_cgo_export.h" to table_windows.c. 2014-07-29 00:47:09 -04:00
Pietro Gagliardi 389269bc66 Fixed the test program crashing after a while (prevent the Window and Controls from being garbage-collected from under us). 2014-07-28 23:55:52 -04:00
Pietro Gagliardi 84e04cdae1 Set up some extended styles on Windows Tables for consistency and future features. 2014-07-28 23:47:45 -04:00
Pietro Gagliardi 8fcadffeaf Implemented Table item text grabbing on Windows. 2014-07-28 23:29:06 -04:00
Pietro Gagliardi 3c34f22373 Fixed up borders for currently implemented controls on Windows. 2014-07-28 22:16:45 -04:00
Pietro Gagliardi 5a70accb2f Fixed the Tab wrong control drawing issues on Windows. 2014-07-28 21:10:13 -04:00
Pietro Gagliardi 7cb6ca1243 Began the implementation of Table on Windows. 2014-07-28 20:52:32 -04:00
Pietro Gagliardi e2ef204b70 Quick note about Table.Unlock() and updates. 2014-07-28 18:03:59 -04:00
Pietro Gagliardi 0b82f37bcb Added the basic Table interface. Now to implement it... 2014-07-28 17:59:50 -04:00
Pietro Gagliardi 286704bedd Fixed the proper recursive application of spaced on Windows tabs by having container.resize() also take the origin coordinates as arguments. 2014-07-28 15:02:27 -04:00
Pietro Gagliardi 13bcf728ba Made the previous commit's changes on Windows. If the Stack Overflow question tells me I'm wrong, we can deal with it then. But yay simple sizing code again :D 2014-07-28 14:43:34 -04:00
Pietro Gagliardi bea4df1abf Began final simplification of size code. spaced is now a global variable; either all controls are given spacing now, or none will. beginResize() is a method on container again. Done on GTK+ and Mac OS X for now. I'm going to go ahead and implement this on Windows in a bit, regardless of whether that Stack Overflow question get answered or not, because ugggggggggh I just want to continue working on this project for fuck's sake! 2014-07-28 14:00:01 -04:00
Pietro Gagliardi 3f124a016e Made Tab in the GTK+ backend scrollable (in case there are too many tabs). 2014-07-28 13:18:03 -04:00
Pietro Gagliardi d8785297ff Added a note about GTK+ color selection dialog deprecations for later. 2014-07-27 14:50:49 -04:00
Pietro Gagliardi be8afd43c0 Copied stack.go and grid.go to a temporary restaging area; removed the margin code from both as we no longer need it there. 2014-07-27 10:48:30 -04:00
Pietro Gagliardi e679f8c9e4 Actually implemented margins in the right place — in container.resize() itself, not just in the actual containers (as the old Stack and Grid code do). I'll need to remove them from Stack and Grid when I merge them back in... 2014-07-27 10:42:59 -04:00
Pietro Gagliardi d34ffa326c Made the sizing recursive chain idempotent and added a -spaced option to the test program to test spacing. 2014-07-26 14:11:03 -04:00
Pietro Gagliardi 22989c13da Removed sizing.endResize(); it's not really used at this point. 2014-07-26 11:21:21 -04:00
Pietro Gagliardi b5d8b4f3de Adjusted autocompletion settings for TextField on Mac OS X. 2014-07-26 11:18:34 -04:00
Pietro Gagliardi 2c810e7165 Verified Mac OS X control appearance and fonts with Interface Builder. 2014-07-26 10:05:18 -04:00
Pietro Gagliardi e8df54cb82 Implemented TextField on Mac OS X. 2014-07-26 09:20:33 -04:00
Pietro Gagliardi 348b3f7032 Implemented TextField on GTK+. 2014-07-26 08:52:33 -04:00
Pietro Gagliardi 4c4235465e Made TextFields properly horizontally scrollable on Windows. 2014-07-26 07:02:19 -04:00
Pietro Gagliardi 4515849e22 Implemented TextField on Windows. 2014-07-26 06:57:11 -04:00
Pietro Gagliardi 52e75e6cce Renamed LineEdit to TextField. 2014-07-26 06:43:59 -04:00
Pietro Gagliardi 3db16ffcf6 More TODOs. 2014-07-26 05:55:01 -04:00
Pietro Gagliardi ee5c6ff846 Implemented Tab on Mac OS X. Woo! I'll need to add justification for what I'm doing with the whole recursive call thing; when I get confirmation from the GTK+ camp I will. 2014-07-25 23:11:41 -04:00
Pietro Gagliardi 41f3ef292f Cleaned up sizing a bit. Being able to know how big something will be ahead of time would be better. 2014-07-25 22:13:09 -04:00
Pietro Gagliardi c676a2d9b7 Implemented Tab on GTK+. I really don't like the way sizing works now... 2014-07-25 20:47:08 -04:00
Pietro Gagliardi 3d5e8feba4 Implemented the various parenting and sizing changes on the Mac OS X backend; also moved a line in window_windows.go around for consistency. 2014-07-25 20:10:09 -04:00
Pietro Gagliardi d1702d33e0 Updated the GTK+ backend to have the new parenting and sizing changes. Now to implement Tab! ...though I should probably implement the changes on Mac OS X first. 2014-07-25 19:44:32 -04:00
Pietro Gagliardi 010c97d686 Adjusted sizing data to act as the base container type; this is needed for proper resizing on both GTK+ and Mac OS X. 2014-07-25 19:28:34 -04:00
Pietro Gagliardi 4680e35300 Simplified the control nesting model by removing Control.unparent() and requiring all Windows to have a Control at construct time; implemented such on Windows. 2014-07-25 17:34:45 -04:00
Pietro Gagliardi d03b8f4b7c Removed extern from C function definitions in containers_windows.c. 2014-07-25 16:06:53 -04:00
Pietro Gagliardi 506ab20582 More TODOs. 2014-07-25 15:59:09 -04:00
Pietro Gagliardi 9ea22218ff Implemented Tab on Windows. 2014-07-25 15:58:24 -04:00
Pietro Gagliardi d515bd74c6 Added the framework for tabs, added necessary assistant routines for tabs, and implemented those assistant routines on the Windows backend. 2014-07-25 12:45:56 -04:00
Pietro Gagliardi 5e9b60a795 Re-added LineEdit interface. Honestly I'm not too thrilled with how the unparent/reparent system is turning out; removing it failed, however... 2014-07-24 17:24:25 -04:00
Pietro Gagliardi a2eb69cbf6 Fixed compilation errors on Mac OS X. Reparenting works; redrawing, however... 2014-07-23 17:09:08 -04:00
Pietro Gagliardi 300835a1b4 Implemented Checkbox on Mac OS X. Also untested; will test next. 2014-07-22 23:32:32 -04:00
Pietro Gagliardi f21fdfd7dc Oops, forgot to fill in a name in a comment in the previous commit. Fixed. 2014-07-22 18:33:44 -04:00
Pietro Gagliardi 3b5c9738fd Implemented the Control parent/unparent redraw provisions on the GTK+ backend. 2014-07-22 18:12:21 -04:00
Pietro Gagliardi e9c6d96d2d Added provisions for proper window redraw on Window.SetParent() and implemented them on Mac OS X; still untested. 2014-07-22 17:45:29 -04:00
Pietro Gagliardi e989c953fa Moved Window.SetControl() into window.go pending addition of fake resize events. 2014-07-22 00:07:41 -04:00
Pietro Gagliardi de92b822a7 More TODOs. 2014-07-21 22:03:18 -04:00
Pietro Gagliardi 58db287ca2 Fixed the RemoveWindowSubclass() crash in Windows Checkboxes. 2014-07-21 21:37:06 -04:00
Pietro Gagliardi 451536f6a5 Mostly added Checkbox to the Windows backend; it doesn't show up right away and it crashes in WM_NCDESTROY... 2014-07-21 21:34:52 -04:00
Pietro Gagliardi d57d2aa2de Added Checkbox on the GTK+ backend, added a checkbox to the test program, and fixed a small error in the GTK+ widgetbase.parent() that kept the new widget hidden. 2014-07-21 21:07:14 -04:00
Pietro Gagliardi 54c999bc42 Switched from gtk_init() to the version that lets us catch and report any errors it encounters. 2014-07-21 16:08:22 -04:00
Pietro Gagliardi d60d176472 Actually, switch back to GtkLayout, as GtkFixed has the side effect of not allowing truly arbitrary resizes. 2014-07-21 10:48:56 -04:00
Pietro Gagliardi d319d9f4ac Switched the GTK+ layout control from GtkLayout back to GtkFixed; the size-allocate thing overrides the size-request issue I had earlier that prompted the switch away. 2014-07-21 10:45:37 -04:00
Pietro Gagliardi 7d3504e25b Implemented initial window size on the GTK+ backend. 2014-07-21 10:37:15 -04:00
Pietro Gagliardi 26065e45cf Disabled Checkbox for now; more stuff to do first. 2014-07-21 10:32:32 -04:00
Pietro Gagliardi ea5936855f Re-added Checkbox's interface specification (with th Request changes applied) and removed Combobox; I'm going to implement things in a different order now. 2014-07-21 09:51:05 -04:00
Pietro Gagliardi 55db438d63 Resolved ambiguous WINAPI issues on Windows. 2014-07-21 09:43:37 -04:00
Pietro Gagliardi cb96b8c6fd Added common_darwin.go; moved toBOOL() there. 2014-07-20 21:26:26 -04:00
Pietro Gagliardi 88a51068db Re-added Mac OS X versioning macros and compiler/linker options. 2014-07-20 21:22:10 -04:00
Pietro Gagliardi ecdb7bc09d Removed leftover TODO in window_darwin.go. 2014-07-20 17:30:22 -04:00
Pietro Gagliardi 11daae4a63 Resolved the NSWindowDelegate issue and added an explicit NSApplicationDelegate specifier just to be safe; thanks to Zorg__ in irc.freenode.net/#macdev for explaining (it's an issue with NSApp specifically). 2014-07-20 17:27:56 -04:00
Pietro Gagliardi 6da105da56 Resolved NSMakeRect() argument casting TODO in sizing_darwin.m. 2014-07-20 14:56:25 -04:00
Pietro Gagliardi 672efd5246 Implemented Window.Close() on Mac OS X, settling both that TODO and the one about making sure Window.Close() works as documented on all platforms. 2014-07-20 13:01:46 -04:00
Pietro Gagliardi 5fa0950112 Verified that Window.Close() works as documented on GTK+. 2014-07-19 23:36:11 -04:00
Pietro Gagliardi fa5b2012d0 Oops, NewButton() should return Button, not the backend type. Fixed. 2014-07-19 16:47:19 -04:00
Pietro Gagliardi 214dc6cd5c Ah, fixed the stalling: logic error in the test program itself. 2014-07-19 10:16:00 -04:00
Pietro Gagliardi 627abfd593 Fixed issuing in the new system. Now to figure out why it stalls... 2014-07-19 10:10:52 -04:00
Pietro Gagliardi e73e7ab733 Fixed more conversion kinks. Now for a major change... 2014-07-19 10:07:42 -04:00
Pietro Gagliardi 32061353a1 Updated the test program to be Request-less. Now to test... 2014-07-19 09:58:57 -04:00
Pietro Gagliardi 104337188f Removed Request completely, also updating the uitask files. Also renamed xperform to doissue for consistency. 2014-07-19 09:57:01 -04:00
Pietro Gagliardi 48c5055eb9 Started dropping the whole request/response system because it fell apart... time to make a ui.Do(func(){ ... }) 2014-07-19 09:44:32 -04:00
Pietro Gagliardi 47c0f573a9 Fixed a slight channel leak in event.fire(). 2014-07-18 22:56:30 -04:00
Pietro Gagliardi 08f5c42639 Added a test case for Window.Close(). 2014-07-18 22:30:07 -04:00
Pietro Gagliardi abb5b0c1d7 Decided not to use removeFromSuperviewWithoutNeedingRedraw at mikeash in irc.freenode.net/#macdev's suggestion (he basically said the documentation's description of the difference is "gibberish" and that I shouldn't need it). Let's just hope that stays the case... 2014-07-18 21:20:21 -04:00
Pietro Gagliardi 2c3c200df8 Settled TODO about cairo version macros. 2014-07-18 20:46:51 -04:00
Pietro Gagliardi 847690bb10 Fixed window resizing in GTK+ acting wonky AND several related TODOs to boot! 2014-07-18 19:36:29 -04:00
Pietro Gagliardi 58673a614c Made the previous commit more robust. 2014-07-18 15:19:55 -04:00
Pietro Gagliardi b56f60c04c Fixed control positioning on initial window show on Mac OS X. 2014-07-18 15:16:41 -04:00
Pietro Gagliardi 6bc4425915 Scrapped Window.SetSize() and Window.Center() (for now?). 2014-07-18 14:07:12 -04:00
Pietro Gagliardi 351c7cd9b2 Added the standard control fonts to the Mac OS X backend. The GTK+ backend is fine as it stands. 2014-07-18 11:47:48 -04:00
Pietro Gagliardi f64f2781ce Added (and applied) standard Windows fonts. 2014-07-18 11:20:18 -04:00
Pietro Gagliardi 489ce0a053 Added #include "_cgo_export.h" to files that needed it and fixed a cast error in controls_windows.c that that revealed. Anyway buttons work now on all platforms, woo :D 2014-07-18 00:29:15 -04:00
Pietro Gagliardi d2f09a0222 Fixed all the remaining compiler errors. C conversion works! 2014-07-18 00:22:21 -04:00
Pietro Gagliardi 7c6fa3b2fd Fixed assorted typos in some of the new C files. 2014-07-17 23:56:16 -04:00
Pietro Gagliardi b174ed985c Added include guards to winapi_windows.h because of cgo including the file multiple times. 2014-07-17 23:52:07 -04:00
Pietro Gagliardi e2be30c6e4 Changed the GTK+ files so they would not compile on Windows; this is needed now that the Windows build uses cgo too. 2014-07-17 23:50:14 -04:00
Pietro Gagliardi 501b6a3a34 Fixed Go compiler errors in the new Windows code; round 1. 2014-07-17 23:48:44 -04:00
Pietro Gagliardi 70e45bef57 Removed Windows constant generation code as we will no longer need it. 2014-07-17 23:45:52 -04:00
Pietro Gagliardi 6a5a28d917 Migrated common_windows.go to C. Now to nuke unneeded files and fix compiler errors... 2014-07-17 23:45:12 -04:00
Pietro Gagliardi d8f302f157 Some Unicode-related fixups and additions in the new Windows code. 2014-07-17 23:14:22 -04:00
Pietro Gagliardi 0dc1538002 Migrated window_windows.go to C. 2014-07-17 23:11:16 -04:00
Pietro Gagliardi 29b80f7542 Migrated sizing_windows.go to C. 2014-07-17 22:47:04 -04:00
Pietro Gagliardi 2c025a97ef Migrated init_windows.go to C. 2014-07-17 22:33:03 -04:00
Pietro Gagliardi 7e40e9fe28 Migrated controls_windows.go to C. 2014-07-17 22:16:32 -04:00
Pietro Gagliardi 8fee588a1d Migrated comctl32_windows.go to C. 2014-07-17 20:05:47 -04:00
Pietro Gagliardi 0adac4d3ca Began the drudgery of converting all the Windows code to use cgo, because I'm not going to wait to debug this smashed stack. 2014-07-17 19:36:24 -04:00
Pietro Gagliardi 257fd8f07c Added the code for the subclassing. And it smashes the stack. Wonderful... 2014-07-17 18:36:44 -04:00
Pietro Gagliardi 51a3c0e379 Migrated the comctl32.dll code and added all the window subclassing stuff. Starting to consider just doing what I'm doing with the Mac OS X backend and just using cgo... 2014-07-17 18:04:51 -04:00
Pietro Gagliardi 19f7b2946a Laid down the framework for control events on Windows. The only problem left is that we need to use functions from comctl32.dll, so it's time to bring that blob of code back. 2014-07-17 15:10:26 -04:00