Commit Graph

266 Commits

Author SHA1 Message Date
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
Pietro Gagliardi 60d0953fe9 Implemented the Window OnClosing() event on GTK+. It works! 2014-07-08 12:04:51 -04:00
Pietro Gagliardi be56707c51 Defined events. 2014-07-08 11:23:31 -04:00
Pietro Gagliardi 382bf27523 Fixed runtime crashes for now. Whee, we have a window again! 2014-07-08 11:01:29 -04:00
Pietro Gagliardi 8f768d2b91 Fixed other compilation errors and added a test file. Now to figure out why things are failing at runtime... 2014-07-08 10:00:16 -04:00
Pietro Gagliardi c40d950654 Made event handlers more robust. 2014-07-08 00:29:43 -04:00
Pietro Gagliardi d874148760 Fixed most compilation errors and added GTK+ string helper functions to common_unix.go. 2014-07-07 22:46:23 -04:00
Pietro Gagliardi dccf548ffa Added gtk_unix.h from the old ui; removed the line about gdk-pixbuf. Let's hope this builds... 2014-07-07 22:35:27 -04:00
Pietro Gagliardi cddf0417dc Added Go() and the GTK+ uitask functions. 2014-07-07 21:04:44 -04:00
Pietro Gagliardi 0c57837676 Made event handler setters return a Request, implemented stubs on GTK+ so I can build a test, and made documentation consistent. 2014-07-07 16:51:17 -04:00
Pietro Gagliardi c0c38ac8f5 Added the GTK+ implementation of Window, added the Window constructors, and rewrote the GTK+ Button constructor to use Requests. 2014-07-07 15:30:55 -04:00
Pietro Gagliardi 7966d70230 Added Window to the redo. 2014-07-07 15:03:39 -04:00
Pietro Gagliardi 0c5f5a3ac0 Added GetNewButton as a helper function and split the other controls to xcontrols pending their addition. 2014-07-07 13:40:51 -04:00
Pietro Gagliardi 409ecf8ca7 Added beginning of Unix Control reimplementation. 2014-07-07 10:44:46 -04:00
Pietro Gagliardi bf8d2d7efd Started the redo Control system. 2014-07-07 09:43:01 -04:00
Pietro Gagliardi fd183e8bf7 Added the new common uitask code to the redo. 2014-07-06 21:42:11 -04:00
Pietro Gagliardi 65a3c67ebd Added the Request model of the new, concurrent API. 2014-07-06 21:03:58 -04:00