Commit Graph

266 Commits

Author SHA1 Message Date
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