Commit Graph

248 Commits

Author SHA1 Message Date
Pietro Gagliardi e869e1b34e Fixed notification-sending issue on Windows. 2015-04-13 09:31:57 -04:00
Pietro Gagliardi b2de01f46c Found the wine bug; will fix it next 2015-04-13 02:21:20 -04:00
Pietro Gagliardi 8b6508a6fb Fixed some build warnings. 2015-04-13 00:45:34 -04:00
Pietro Gagliardi 5995af00e6 Fixed initial content area size on uiWindows. 2015-04-13 00:44:27 -04:00
Pietro Gagliardi 876971ad41 More TODOs. The problems I noticed earlier only happen on wine, so... 2015-04-13 00:36:30 -04:00
Pietro Gagliardi 07944e8c1d Fixed a small undefined-behavior bug in the parent code. Still not working... 2015-04-13 00:04:43 -04:00
Pietro Gagliardi 2b412296f1 Got rid of struct tabPage (it's just an array of uiParent *s now) and added a uiParentUpdate(). Thought that would fix it, but nope... 2015-04-12 23:20:09 -04:00
Pietro Gagliardi f726b74d32 Fix helper: get rid of direct casts to HWND to make errors more obvious. 2015-04-12 23:14:56 -04:00
Pietro Gagliardi a0bfb65122 Fixed some runtime issues. Not all there... 2015-04-12 23:02:23 -04:00
Pietro Gagliardi 95309affc0 Fixed build issues. Now to fix runtime issues... 2015-04-12 22:57:05 -04:00
Pietro Gagliardi 365e61dad2 Finished the Windows uiParent conversion, I think. Now to test. 2015-04-12 22:39:36 -04:00
Pietro Gagliardi dcf581eb14 Some more uiParent migration. 2015-04-12 20:08:32 -04:00
Pietro Gagliardi bdb0ffd67a Finished writing parent_windows.c. 2015-04-12 19:25:16 -04:00
Pietro Gagliardi 54ba083fe9 Set up the foundation for the new Windows uiParent. 2015-04-12 19:19:06 -04:00
Pietro Gagliardi 74e4238fe7 Set up a unified system for containers, now called parents. 2015-04-12 18:34:54 -04:00
Pietro Gagliardi 425ede5288 Fixed Mac OS X tab page clearing. I'm really going to oneed to restructure the whole container system... 2015-04-12 16:00:09 -04:00
Pietro Gagliardi 142b2db9f5 Implemented uiTab on Mac OS X. It still doesn't quite work yet; switching from one tab and back doesn't show that tab's controls... 2015-04-12 15:46:58 -04:00
Pietro Gagliardi f6a38383a7 Some comment and TODO adjustments. 2015-04-12 14:50:58 -04:00
Pietro Gagliardi bac8bfdbf4 More TODOs. 2015-04-12 12:59:39 -04:00
Pietro Gagliardi c8316ad45c More TODOs. 2015-04-12 12:53:16 -04:00
Pietro Gagliardi d0a1ae5bc9 Made controls transparent to tab backgrounds on Windows. It doesn't quite work right... 2015-04-12 12:38:25 -04:00
Pietro Gagliardi 0ee55d2d2d Implemented uiTab on Windows. 2015-04-12 03:16:11 -04:00
Pietro Gagliardi a001448e63 Added uiTab to the GTK+ backend. 2015-04-12 01:06:42 -04:00
Pietro Gagliardi 499611a3fe Quick update/fix to the test program. 2015-04-12 01:01:56 -04:00
Pietro Gagliardi 8f6acdc8da Fixed a major flaw in the GTK+ implementation I only realized now: by calling gtk_widget_show_all() in uiWindowShow(), we override the user's explicit hide settings! Fix it by calling gtk_widget_show() there (to only show the window), and gtk_widget_show_all() in both the new control constructor (to show the new control initially) and in the container constructor (to show that initially too). 2015-04-12 00:59:32 -04:00
Pietro Gagliardi 5f3eb6fbfa Laid the foundation for tabs. 2015-04-12 00:30:44 -04:00
Pietro Gagliardi bf74614ffc More TODOs. 2015-04-12 00:15:20 -04:00
Pietro Gagliardi 995db0bc28 Implemented uiLabel on Mac OS X. 2015-04-11 23:49:34 -04:00
Pietro Gagliardi bc4818786a Implemented uiLabel on GTK+. More TODOs. 2015-04-11 22:49:41 -04:00
Pietro Gagliardi 03e2f8d6c1 Made the necessary adjustments to the test program to test labels (and futureproof other layout changes); getting and setting text on Windows works. 2015-04-11 22:33:23 -04:00
Pietro Gagliardi f483be3630 Implemented uiLabel on Windows. We need to make a somewhat big change to the test program before we can test getting and setting the label's text, though... 2015-04-11 22:22:19 -04:00
Pietro Gagliardi bdfa1828bb Set up the foundation for uiLabel. 2015-04-11 21:53:49 -04:00
Pietro Gagliardi 7d6f31351d Fixed the stupid 32-bit bug I did that fucking malloc pointer to struct instead of array of struct thing I always do again jesus fucking christ shit 2015-04-11 19:34:38 -04:00
Pietro Gagliardi c80335a5f4 More TODOs. 2015-04-11 18:24:53 -04:00
Pietro Gagliardi 52d28a6196 Implemented show/hide/enable/disable on Mac OS X new controls. 2015-04-11 18:17:46 -04:00
Pietro Gagliardi 1ed1eb8dec Removed a leftover line from the Go version of uiStack that is actually wrong in the C version; I thought it would fix the previous commit but it doesn't... 2015-04-11 17:26:48 -04:00
Pietro Gagliardi a0033784b7 Okay I have no fucking idea what's going on 2015-04-11 17:23:36 -04:00
Pietro Gagliardi a1b4b96bb9 Added the enable/disable/show/hide code to the Windows new control. Something is clobbering stacks; need to debug this... 2015-04-11 15:34:16 -04:00
Pietro Gagliardi 9ea35db265 Implemented show/hide/enable/disable on uiStack and fixed other bugs. It works! 2015-04-11 14:44:40 -04:00
Pietro Gagliardi 0430ca9102 Implemented making invisible children of uiStacks not count when drawing or calculating preferred size. Need to implement the new methods on uiStack itself before we can test. 2015-04-11 14:30:07 -04:00
Pietro Gagliardi b57c885505 Implemented showing, hiding, enabling, and disabling for GTK+ controls. 2015-04-11 14:21:58 -04:00
Pietro Gagliardi da0acba992 Laid the foundation for control showing, hiding, enabling, and disabling. 2015-04-11 14:12:12 -04:00
Pietro Gagliardi d14716c4d3 Renamed some variables in stack.c and added some exposition to make the code make slightly more sense. 2015-04-11 13:51:37 -04:00
Pietro Gagliardi 22e11ca8f3 Cleaned up uiStack's data structures to use the stackControl structure instead of four memory blocks for the control-specific parameters. 2015-04-11 13:45:59 -04:00
Pietro Gagliardi 2602330223 Resolved snwprintf() issues once and for all. Thanks to cousteau, dorp, and kate in irc.freenode.net/##c. 2015-04-11 13:32:25 -04:00
Pietro Gagliardi a34fe03eef Decided to disable the initial parent window on Windows. If this causes problems, I can re-enable it later. More TODOs. 2015-04-11 12:40:09 -04:00
Pietro Gagliardi 812b70f6f0 More exposition. 2015-04-11 10:34:26 -04:00
Pietro Gagliardi 2b6e6c20a3 Decided to keep the current Windows API padding rules. We can change it later if needed. 2015-04-11 10:32:01 -04:00
Pietro Gagliardi 42b8e40816 More TODO resolution. 2015-04-11 09:39:04 -04:00
Pietro Gagliardi 1ab2a81903 Finished the Mac OS X destruction work. 2015-04-11 02:56:16 -04:00
Pietro Gagliardi 4afca8f2c2 More of the previous commit. More TODOs. 2015-04-10 23:24:21 -04:00
Pietro Gagliardi c610c60ea6 Started to implement proper destruction logic for Mac OS X controls. 2015-04-10 23:22:46 -04:00
Pietro Gagliardi 47c89f6aef More TODO resolution and some GTK+ uiWindow inconsistency (and future repeated-event bug waiting to happen) cleanup. 2015-04-10 21:48:50 -04:00
Pietro Gagliardi da3009bfbb More commentary and TODOs. 2015-04-10 21:37:08 -04:00
Pietro Gagliardi a25ffeb334 More TODO resolution. 2015-04-10 21:29:05 -04:00
Pietro Gagliardi 94b621855c Added REAL code for the initial parent of a control on Windows. 2015-04-10 19:56:23 -04:00
Pietro Gagliardi bd05948219 Moved the control IDs TODO to TODO.md as that's a long-term TODO; it depends on how container controls play out. 2015-04-10 18:32:04 -04:00
Pietro Gagliardi d5da551c8c More TODO resolution. 2015-04-10 18:06:01 -04:00
Pietro Gagliardi a788c1b212 Changed the Windows new control system to automatically assign the standard control font if a flag is set in the creation parameters structure. 2015-04-10 17:53:59 -04:00
Pietro Gagliardi f650237614 Cleaned up Windows initialization error handling and migrated it to return the error message directly instead of through uiInitError. 2015-04-10 17:41:09 -04:00
Pietro Gagliardi 3069f38a9c Removed autocorrect from Mac OS X uiEntries. Also moved uiFreeText() to text_darwin.m. 2015-04-10 17:06:59 -04:00
Pietro Gagliardi d326407f05 Decided to kill uiInitError and return the message as a const char * instead. Will need to implement on Windows. 2015-04-10 16:54:06 -04:00
Pietro Gagliardi e49f6f7da8 More TODOs. 2015-04-10 14:31:16 -04:00
Pietro Gagliardi f37b94e73f More TODOs. 2015-04-10 14:29:45 -04:00
Pietro Gagliardi 47fb015afb More TODO resolution and cross-OS behavioral parity fixes. 2015-04-10 14:24:23 -04:00
Pietro Gagliardi a272619581 More TODO resolution and debugging stuff. 2015-04-10 13:39:45 -04:00
Pietro Gagliardi a38024c781 Eliminated direct use of strdup(); introduced uiDarwinNSStringToText() to do that work for us (and abort on failure). 2015-04-10 13:25:09 -04:00
Pietro Gagliardi 5bbaaeefe8 Chose not to use NSCAssert() in alloc_darwin.m. 2015-04-10 13:06:29 -04:00
Pietro Gagliardi 1d29a65a19 Fixed previous commit. 2015-04-10 12:47:02 -04:00
Pietro Gagliardi 5461b50081 Resolved TODOs in debug_windows.c. 2015-04-10 12:44:42 -04:00
Pietro Gagliardi 5f534068f1 More TODO resolutions. Thanks to David Hefferman for help. 2015-04-10 05:11:52 -04:00
Pietro Gagliardi b95335e87e Some TODO resolution; more TODOs. 2015-04-10 03:44:41 -04:00
Pietro Gagliardi 948416d04d Resolved some TODOs (including one resolved a while ago on IRC but not removed until now; thanks various people in irc.freenode.net/#macdev). 2015-04-10 03:11:44 -04:00
Pietro Gagliardi 64b746c9a1 Decided that uiCheckboxSetChecked() should NOT trigger an event. This required changing the GTK+ backend to make it so; the Windows and Mac OS X backends are fine (setting their checkbox state programmatically will not send a signal; thanks to ThunderSnow in irc.freenode.net/#macdev for confirming this for Mac OS X). 2015-04-09 23:48:04 -04:00
Pietro Gagliardi a9115b352c More TODO resolution. 2015-04-09 23:24:18 -04:00
Pietro Gagliardi 50a227058a Changed the allocation logging from a compile-time setting to the first initialization option. 2015-04-09 22:38:11 -04:00
Pietro Gagliardi d9315e6d8f Added uiWindowMargined() and implemented it on all platforms. 2015-04-09 21:11:56 -04:00
Pietro Gagliardi a7281f9034 Added uiStackPadded(). 2015-04-09 20:04:18 -04:00
Pietro Gagliardi 10ea719dc8 Removed direct vtable calls from uiControl. 2015-04-09 19:17:23 -04:00
Pietro Gagliardi e78b625172 Changed onWM_NOTIFY() to only pass the NMHDR * in. The LPARAM is more useful as a NMHDR *, and the WPARAM contains duplicate data (http://blogs.msdn.com/b/oldnewthing/archive/2013/12/04/10473637.aspx). Ideally we wouldn't even have the NMHDR.idFrom (see previous commit message), but oh well :/ 2015-04-09 19:07:41 -04:00
Pietro Gagliardi 7400cda3da Changed onWM_COMMAND() to give our controls only the notification code. We don't want to give the control the ID part of wParam because that's (or that'll be) dynamically assigned based on control parenting and prior controls; we don't want to give the control the LPARAM since that contains the window handle and uiControl already has that. 2015-04-09 18:54:14 -04:00
Pietro Gagliardi 18a58e56fa DlgUnit -> DlgUnits 2015-04-09 18:45:58 -04:00
Pietro Gagliardi e752356037 Migrated the Mac OS X code to the new uiControl/uiSizing system. 2015-04-09 18:39:21 -04:00
Pietro Gagliardi 22db738dd1 Migrated the GTK+ backend to the new uiControl/uiSizing system. 2015-04-09 18:17:04 -04:00
Pietro Gagliardi 1a525dea31 Finished Windows conversion. Works perfectly! 2015-04-09 17:57:08 -04:00
Pietro Gagliardi cba301abbc More Windows conversion. Not done yet. 2015-04-09 17:46:26 -04:00
Pietro Gagliardi 5c06fc512b Migrated the new control logic on Windows to the new uiControl/uiSizing system. 2015-04-09 17:24:26 -04:00
Pietro Gagliardi 46afda5dce Migrated stack.c to the new uiControl. 2015-04-09 16:57:55 -04:00
Pietro Gagliardi 471b3a57e7 Big change time: decided to stop playing around with hiding and made both uiControl and uiSizing public. Also restructured uiSizing to make system-dependent data in another structure. 2015-04-09 16:37:04 -04:00
Pietro Gagliardi 92b43720b6 Decided to split control removal from parent into its own method removeParent() rather than automatically doing it in setParent(). 2015-04-09 16:21:09 -04:00
Pietro Gagliardi 3f05be544c Implemented padding in uiStack. 2015-04-09 15:59:40 -04:00
Pietro Gagliardi 8d64f695e0 Implemented the foundation for padding. 2015-04-09 15:30:24 -04:00
Pietro Gagliardi 8e0cd27605 Laid the foundation for padding. 2015-04-09 15:25:18 -04:00
Pietro Gagliardi d146167321 Implemented uiWindowSetMargined() on GTK+. 2015-04-09 15:18:18 -04:00
Pietro Gagliardi 7c6beec879 Implemented uiWindowSetMargined() on Mac OS X. 2015-04-09 15:10:12 -04:00
Pietro Gagliardi 73f6841272 Implemented uiWindowSetMargined() on Windows. 2015-04-09 13:51:01 -04:00
Pietro Gagliardi 9c2fe78f78 Added uiWindowSetMargined(). 2015-04-09 13:42:42 -04:00
Pietro Gagliardi feefa627dc Implemented all of uiCheckbox on GTK+. 2015-04-09 13:34:27 -04:00
Pietro Gagliardi 8b80b8c05d Implemented uiCheckbox(Set)Checked() on Windows. 2015-04-09 13:10:32 -04:00
Pietro Gagliardi 6d93fce5b5 Implemented uiCheckbox(Set)Checked() on Mac OS X. 2015-04-09 13:01:23 -04:00