Commit Graph

266 Commits

Author SHA1 Message Date
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
Pietro Gagliardi 1a712d4064 Implemented button clicking on GTK+. 2014-07-17 12:14:38 -04:00
Pietro Gagliardi e4b379f84a Added button click events to the Mac OS X backend. 2014-07-17 12:02:39 -04:00
Pietro Gagliardi 659bc03f17 Migrated control sizing code for Mac OS X. 2014-07-17 11:24:58 -04:00
Pietro Gagliardi 819caea422 Re-added the Windows sizing code. 2014-07-16 22:31:48 -04:00
Pietro Gagliardi a253f39d68 Ported over the sizing framework from the old package and implemented it on the GTK+ backend. 2014-07-16 21:30:19 -04:00
Pietro Gagliardi 1953f2d748 Added Button and control adding to the Mac OS X backend. 2014-07-16 13:25:09 -04:00
Pietro Gagliardi d154a2d74d Added basic control showing to the Windows backend. 2014-07-15 22:44:27 -04:00
Pietro Gagliardi d6a8a72662 Fixed a flaw in the SetControl() for GTK+ Window: it forgot to unparent old children. 2014-07-15 22:34:12 -04:00
Pietro Gagliardi 0ddc060410 Refined zregen.sh to accept argumetns and not run the 64-bit generator if the 32-bit one failed. 2014-07-15 22:30:42 -04:00
Pietro Gagliardi 09ed472138 Added the beginninig of the Windows Control code. 2014-07-15 22:29:45 -04:00
Pietro Gagliardi 5ebd89984a Added parenting/unparenting of controls to the GTK+ backend and the test program. 2014-07-15 20:48:16 -04:00
Pietro Gagliardi 474436e9f6 Implemented window resize handling on Mac OS X. Now for actually setting child controls and resizing them. 2014-07-15 14:04:20 -04:00
Pietro Gagliardi c61666b6b4 Implemented resize event detection on Windows. 2014-07-15 12:09:46 -04:00
Pietro Gagliardi b3cba4bfb1 Added window resize handling to the GTK+ backend. 2014-07-14 22:54:57 -04:00
Pietro Gagliardi daafb7aef8 Added the widget container to the GTK+ code. 2014-07-14 16:32:45 -04:00
Pietro Gagliardi 0e7589af47 Implemented Stop() on Mac OS X. 2014-07-13 21:31:13 -04:00
Pietro Gagliardi 0eded3f774 Implemented Stop() on GTK+. 2014-07-13 20:31:08 -04:00
Pietro Gagliardi acc604a820 Some comment cleanup. 2014-07-13 20:28:15 -04:00
Pietro Gagliardi 244061d878 Changed the semantics of uitask() to allow it to handle recursive main loops properly; important for Stop() to work correctly on non-Windows systems. 2014-07-13 20:26:16 -04:00
Pietro Gagliardi f36451d26e Added Stop() and implemented it on Windows. 2014-07-13 01:14:55 -04:00
Pietro Gagliardi 5bc9a75f0a Pinned down event behavior of Windows.Close(). 2014-07-12 16:17:06 -04:00
Pietro Gagliardi 903f8e9b22 Added zconstants regeneration script. 2014-07-12 16:15:28 -04:00
Pietro Gagliardi 530810deda Implemented Window.Close() on Windows. 2014-07-12 16:15:10 -04:00
Pietro Gagliardi 1cdc6bad27 More TODOs. 2014-07-12 12:59:47 -04:00
Pietro Gagliardi cfb9bcc625 Fixed the Windows code. Now to implement closing properly. 2014-07-12 12:59:12 -04:00
Pietro Gagliardi b944b6d4d8 Finished writing initial Windows implementation. Now to find out why it doesn't work... 2014-07-12 11:29:54 -04:00
Pietro Gagliardi c55386f929 Added function generation to zwinconstgen.go. cgo uses DWARF to get function parameters, so we'll just specify them manually ourselves; see funcnames_windows.go. 2014-07-11 23:34:39 -04:00
Pietro Gagliardi 06c2f1b051 More zwinconstgen.go work. 2014-07-11 12:33:28 -04:00
Pietro Gagliardi 732a6db368 More zwinconstgen.go output refinement. 2014-07-11 12:16:49 -04:00
Pietro Gagliardi 294cb8d166 More refinement of struct output in zwinconstgen.go. 2014-07-11 12:10:37 -04:00
Pietro Gagliardi 0260b7c867 Added a handler for embedded structure values in zwinconstgen.go. 2014-07-11 11:57:04 -04:00
Pietro Gagliardi 36e8393b46 Added an attempt at overriding HWND, etc. in the zwinconstgen.go type generation; will test now. 2014-07-11 11:50:45 -04:00
Pietro Gagliardi 14913e042e Fixed up output of zwinconstgen.go to some extent. 2014-07-11 10:58:00 -04:00
Pietro Gagliardi c71e80f192 Improved the structure type output of zwinconstgen.go. 2014-07-11 10:52:27 -04:00
Pietro Gagliardi 3596ae7b96 Converted zwinconstgen.go to use a template to generate its output. 2014-07-11 10:47:56 -04:00
Pietro Gagliardi 1f883c5b40 Added basic struct parsing to zwinconstgen.go. 2014-07-11 10:29:52 -04:00
Pietro Gagliardi 114c4050eb Fixed compiler errors in zwinconstgen.go output. 2014-07-11 10:02:55 -04:00
Pietro Gagliardi a54e3e67de Added beginning of Windows init code. 2014-07-11 09:55:13 -04:00
Pietro Gagliardi 4eb9e26525 Actually never mind I'm dumb there's no Windows files yet 2014-07-10 21:43:19 -04:00
Pietro Gagliardi cf64176fe0 Moved winconstgen.go into a tools/ folder because blah more than one package found. 2014-07-10 21:42:16 -04:00
Pietro Gagliardi ff1a5d73a1 Fixed compilation errors in zwinconstgen.go. 2014-07-10 21:10:40 -04:00
Pietro Gagliardi a72500c6f8 Added the beginning of a modified winconstgen.go that'll be more thorough than the old one (includes structures and functions) and treats all names like hacknames. THe defaultCCs CL will need to be resolved somehow... 2014-07-09 10:37:11 -04:00
Pietro Gagliardi 44811e5351 Implemented window closing on Mac OS X. This drops the "single delegate object for everything" setup but keeping that map and holding its lock is already meh so. 2014-07-08 17:44:08 -04:00
Pietro Gagliardi edd81e2e48 Switched to using Grand Central Dispatch and Objective-C blocks in the Mac OS X backend. THIS IS PRECEDENT-SETTING. 2014-07-08 16:50:52 -04:00
Pietro Gagliardi b4357db4be Added the beginning of the Mac OS X code. 2014-07-08 16:47:28 -04:00