Commit Graph

519 Commits

Author SHA1 Message Date
Pietro Gagliardi 329b4f29dd Implemented tab navigation across tabs on Windows. 2015-05-06 18:37:21 -04:00
Pietro Gagliardi c5e5fbd909 Laid the foundation for proper tab navigation in uiTabs. 2015-05-06 18:05:07 -04:00
Pietro Gagliardi d247e76866 Implemented uiTabInsertPageBefore() on Windows. 2015-05-06 14:09:20 -04:00
Pietro Gagliardi 956b78718f Migrated windows/tab.c to ptrarray and fixed the build. 2015-05-06 13:37:23 -04:00
Pietro Gagliardi 8c3ca7fcce Fixed WM_PRINTCLIENT on uiContainers in windows/container.c. It works. 2015-05-06 12:39:06 -04:00
Pietro Gagliardi 047913d1a6 Made paintContainerBackground() in windows/container.c respect the clip rect. 2015-05-06 11:30:09 -04:00
Pietro Gagliardi 74fc1aea45 Split out the parent drawing in windows/container.c into its own function. This is necessary to allow for clipping. 2015-05-06 11:10:28 -04:00
Pietro Gagliardi 7e0d79713b Changed the uiContainer code on Windows to use WM_PRINTCLIENT directly instead of creating the brush each time. Thanks to Barmak Shemirani (http://stackoverflow.com/questions/30066108/brush-origin-patblt-and-mapwindowrect-confusion) for inspiring me with this solution that I should have thought of myself =P 2015-05-06 02:20:08 -04:00
Pietro Gagliardi 526e9b81ea Fixed bin destruction handling on the Windows backend. 2015-05-06 00:52:24 -04:00
Pietro Gagliardi bc2e6d134b Started working on a pointer array implementation. This also means we'll need the C standard library for memcpy()/memmove(), so drop the DisableThreadLibraryCalls() TODO. 2015-05-05 22:55:02 -04:00
Pietro Gagliardi 657cbe2013 Updated a TODO. 2015-05-05 20:57:30 -04:00
Pietro Gagliardi 58540b2b2b Changed from GetWindowRect() in windows/contianer.c to get the parent's client size to GetClientRect(); we're only interested in the size, and WM_PRINTCLIENT is strictly for the client :/ It's still correct as far as I know (the old code used it). 2015-05-05 20:56:07 -04:00
Pietro Gagliardi 9f8d16b26a Revert "Switch to using DeferWindowPos() in Windows resizes. It doesn't optimize anything just yet (because it's still recursively invoked), but it can be optimized later (by not responding to container resizes and only using container updates); and more important, it puts (most of) the resizing invocations in one place."
Decided not to make the code that much more complicated.

This reverts commit f6fdf932e1.
2015-05-05 15:19:55 -04:00
Pietro Gagliardi f6fdf932e1 Switch to using DeferWindowPos() in Windows resizes. It doesn't optimize anything just yet (because it's still recursively invoked), but it can be optimized later (by not responding to container resizes and only using container updates); and more important, it puts (most of) the resizing invocations in one place. 2015-05-05 15:10:37 -04:00
Pietro Gagliardi f35d68907b More flicker work and TODOs. 2015-05-05 14:44:10 -04:00
Pietro Gagliardi 7f56079257 Disabled WM_PRINTCLIENT in uiContainer on Windows for now. 2015-05-05 14:37:25 -04:00
Pietro Gagliardi 4ba82c6eeb Started refactoring uiContainer painting on Windows to be more efficient and handle WM_PRINTCLIENT. 2015-05-05 14:00:55 -04:00
Pietro Gagliardi 93ead4043e Added a wrapper around MapWindowRect() to simplify error handling. This will be needed for future changes to windows/container.c. 2015-05-05 13:12:48 -04:00
Pietro Gagliardi 047d5aaa4d Added error checking to the container painting code. More TODOs. 2015-05-05 13:01:20 -04:00
Pietro Gagliardi 40993b33ab One person reports flicker, one person doesn't... I'll have to investigate myself. 2015-05-05 11:02:32 -04:00
Pietro Gagliardi 84b263ade6 Removed windows/OLDcontainer.c; we finally implemented everything from it. 2015-05-05 09:40:34 -04:00
Pietro Gagliardi 913025c3de More TODOs. 2015-05-05 09:34:43 -04:00
Pietro Gagliardi c0cc7f2df4 Implemented uiContainer transparent background drawing. 2015-05-05 09:10:58 -04:00
Pietro Gagliardi 2d49baa2f1 Seemingly fixed redraw issues with uiContainer on Windows control background painting. Now to paint uiContainer's background itself. 2015-05-05 00:16:25 -04:00
Pietro Gagliardi 2968d48d9e Figured out something workable for control backgrounds on Windows! 2015-05-04 23:06:16 -04:00
Pietro Gagliardi 4e56f2d2b5 Disabled the WM_CTLCOLORxxx handler for now. 2015-05-04 22:04:24 -04:00
Pietro Gagliardi d4245a448d Moved the WM_CTLCOLORxxx handler back into the Windows uiContainer. 2015-05-04 20:36:33 -04:00
Pietro Gagliardi e808b155cc Moved a TODO to the long-term TODO list. 2015-05-04 20:11:58 -04:00
Pietro Gagliardi 0ad6cbb4b5 Removed a now-stale TODO thanks to some past commits. 2015-05-04 20:11:05 -04:00
Pietro Gagliardi 8b8be286ff Made private functions in the various bin source files static. 2015-05-04 17:42:20 -04:00
Pietro Gagliardi b2e9b646a4 Got rid of typedefs in the various newcontrol files for consistency. 2015-05-04 15:51:23 -04:00
Pietro Gagliardi 854d1f49af Made preferredSize function names consistent on Windows. Stale TODO cleanup. 2015-05-04 14:56:26 -04:00
Pietro Gagliardi 7f41a3982f Finished implementing uiTab enable/disable on Windows. 2015-05-04 14:45:18 -04:00
Pietro Gagliardi 5c9751f4d4 Set up a framework on Windows for implementing tab enable/disable. 2015-05-04 14:42:23 -04:00
Pietro Gagliardi 23e3230156 Fixed control enabling on Windows uiWindows. 2015-05-04 14:32:55 -04:00
Pietro Gagliardi 4716781e78 Finished container enable/disable on Windows for now. 2015-05-04 14:05:36 -04:00
Pietro Gagliardi d98a2291cb More enable/disable container stuff. 2015-05-04 11:09:28 -04:00
Pietro Gagliardi b15f5ff1c7 Started implementing container enable/disable on Windows. More TODOs. 2015-05-04 09:53:53 -04:00
Pietro Gagliardi 862f84292f Fixed an error in windows/container.c. 2015-05-03 19:58:37 -04:00
Pietro Gagliardi fd4c559e86 Removed the typename argument from uiAlloc() and uiRealloc(). 2015-05-03 19:52:24 -04:00
Pietro Gagliardi 997db39bb7 Decided not to optimize Windows menu item lookup. 2015-05-03 17:37:36 -04:00
Pietro Gagliardi 23cfcc8c6d Confirmed that tabs are taken into account with TCM_ADJUSTRECT on Windows. 2015-05-03 17:21:48 -04:00
Pietro Gagliardi aa568e51cf Implemented uiControlPreferredSize() on Windows uiTabs. 2015-05-03 17:13:40 -04:00
Pietro Gagliardi fc1044aab9 Quick TODOTODOTODO... resolution. 2015-05-03 16:56:58 -04:00
Pietro Gagliardi 2186192502 Changed c-> to uiControl(c)-> in the various newcontrol files for consistency. 2015-05-03 14:44:46 -04:00
Pietro Gagliardi 51cdb1817e Added WS_EX_CONTROLPARENT to uiContainer on Windows. 2015-05-03 14:12:45 -04:00
Pietro Gagliardi e8600450aa TODO elaboration. 2015-05-03 12:36:35 -04:00
Pietro Gagliardi 61bcfa1a7e Cleaned up and resolved DllMain() TODOs and issues. 2015-05-03 12:34:10 -04:00
Pietro Gagliardi 80c79d31a3 Changed the Windows window-creation code to handle menu wrapping. 2015-05-03 12:15:24 -04:00
Pietro Gagliardi 643ed46b00 Cleaned up windows/container.c resize(). More TODOs. 2015-05-03 11:55:34 -04:00
Pietro Gagliardi dc5b7f4c59 Some TODO resolution in windows/tab.c. Wine bug filed (https://bugs.winehq.org/show_bug.cgi?id=38527); first tab behavior verified with program in wine bug. 2015-05-03 11:47:06 -04:00
Pietro Gagliardi d50701b3a7 TODO consolidation. 2015-05-03 10:21:36 -04:00
Pietro Gagliardi 454b3ecb03 Changed the various OS-side control creation functions to use Make like uiMakeContainer() does instead of New. 2015-05-02 20:51:00 -04:00
Pietro Gagliardi 57bc11d67c TODO consolidation. 2015-05-02 14:58:29 -04:00
Pietro Gagliardi 3260de37b3 BOOL -> int in initAlloc() on Windows. 2015-05-02 12:29:55 -04:00
Pietro Gagliardi a70d56d77c Switched to the Windows API heap functions in windows/alloc.c. 2015-05-02 12:27:53 -04:00
Pietro Gagliardi effb919176 Added DllMain() to the Windows code. 2015-05-01 10:19:44 -04:00
Pietro Gagliardi 5094f08994 Fixed build errors from the previous commit. 2015-05-01 10:16:02 -04:00
Pietro Gagliardi 5ad2bfd6f0 Cleaned up uipriv*.h. 2015-05-01 10:14:11 -04:00
Pietro Gagliardi 122b1b0d2c Some TODO consolidation. 2015-05-01 10:11:22 -04:00
Pietro Gagliardi 7dc7c5a5cd Resolved a minor TODO in windows/menu.c. 2015-04-30 23:34:56 -04:00
Pietro Gagliardi 83f936a637 Fixed menus on Windows to avoid pointers moving underfoot. 2015-04-30 18:30:25 -04:00
Pietro Gagliardi 60a5931207 Added duplicate special menu item protection to the Windows backend. 2015-04-30 18:18:20 -04:00
Pietro Gagliardi 40dee5a693 Added bin destruction OS parent checks. 2015-04-30 17:49:38 -04:00
Pietro Gagliardi dad19a6318 Switched from GetParent() to GetAncestor() on Windows since GetAncestor() has no documented error state. 2015-04-30 17:39:20 -04:00
Pietro Gagliardi 6400a6ea8c TODO consolidation. 2015-04-30 17:34:15 -04:00
Pietro Gagliardi 75b4d28569 Implemented menu destruction on Windows. 2015-04-30 17:05:41 -04:00
Pietro Gagliardi b52aa4cfcb Started Windows menu destruction code and fixed a bug in GTK+ menu destruction. 2015-04-30 16:44:06 -04:00
Pietro Gagliardi 14de9f3cad Fixed bug in Windows uiWindowOnClosing() handler. 2015-04-30 16:41:41 -04:00
Pietro Gagliardi 10345a2c7d Implemented the new uiTab methods on Windows. 2015-04-30 15:50:03 -04:00
Pietro Gagliardi c8695e4ca2 Decided to remove allocation logging. Leak checking can be done with dedicated tools. 2015-04-30 13:37:13 -04:00
Pietro Gagliardi 127f025eee Decided not to bother with destruction blocking for now. 2015-04-30 13:30:00 -04:00
Pietro Gagliardi 63f1f7576e Fixed a dumb typo in windows/tab.c that prevented tab switching from working correctly on Windows. 2015-04-29 23:05:15 -04:00
Pietro Gagliardi a036632795 Re-connected Windows events. More TODOs. 2015-04-29 19:17:26 -04:00
Pietro Gagliardi 8f79f0596f Set hidden flag variables BEFORE updating parent containers. Otherwise, parents won't reposition children correctly on systems where updates happen immediately (like OS X). 2015-04-29 14:25:34 -04:00
Pietro Gagliardi 6c6bce3702 Moved everything back to the top level. 2015-04-29 11:02:38 -04:00
Pietro Gagliardi 0ca0dcaf2d Migrated the Windows basic controls. Rewrite in the new/ folder done! 2015-04-29 10:46:09 -04:00
Pietro Gagliardi 4c280ca42c Removed or moved a bunch of stale files from the old source. All that's left now is to re-add the main controls and recreate the test program. 2015-04-29 10:20:25 -04:00
Pietro Gagliardi 90bb60a435 Moved windows/newcontrol.c and windows/tab.c back. Totally not migrated yet. 2015-04-29 01:34:03 -04:00
Pietro Gagliardi 7c91616af1 More old code file removal. 2015-04-28 13:53:45 -04:00
Pietro Gagliardi bf401201f9 Removed a whole bunch of files from the old source tree. 2015-04-28 13:51:13 -04:00
Pietro Gagliardi ac8e59c004 Hooked up the Windows menu event system and fixed some bugs in it. Still need to define menu events in general... 2015-04-21 18:52:57 -04:00
Pietro Gagliardi dc386a599e Added a framework for handling menu events on Windows. 2015-04-21 18:44:31 -04:00
Pietro Gagliardi b6a2233d0b Adjusted the Windows menu code for the recent changes (see past few commits). 2015-04-20 23:46:02 -04:00
Pietro Gagliardi f303f066e2 Started implementing menus on Windows. 2015-04-20 20:26:21 -04:00
Pietro Gagliardi 21a29a5468 More destruction rules following code. 2015-04-19 22:59:06 -04:00
Pietro Gagliardi 24469a6e7b Added code to check that a control is not destroyed while it has a parent. This isn't enough for uiStack, though... 2015-04-19 22:53:09 -04:00
Pietro Gagliardi 57329ea332 Implemented the desire background behavior for controls in windows/parent.c. Only one thing remains: clipping. 2015-04-18 20:31:32 -04:00
Pietro Gagliardi 9492e0b1c1 Settled WM_PRINTCLIENT for uiParent on Windows. 2015-04-18 20:27:12 -04:00
Pietro Gagliardi 92474f94af Implemented WM_PAINT for uiParent on Windows. It seems to work... 2015-04-18 20:20:47 -04:00
Pietro Gagliardi a2311c4c19 More TODOs. 2015-04-18 18:33:41 -04:00
Pietro Gagliardi cf8871c524 Cleaned up the new control lifetime logic on Windows. 2015-04-18 18:07:57 -04:00
Pietro Gagliardi 55fe50463f Changed Windows onWM_DESTROY to a generic onDestroy handler with a data parameter. This will make decoupling widget destruction from WM_DESTROY (like we did on GTK+ by decoupling from ::destroy) easier. 2015-04-18 18:02:16 -04:00
Pietro Gagliardi 63ccceed4f Implemented uiTabDeletePage() on Windows. I'm really getting unhappy with the way we're implemented right now... 2015-04-18 14:41:28 -04:00
Pietro Gagliardi 492099f85a Implemented lifetime stuff on Windows Tab. Starting to wonder why I'm bothering, or if this is even working. Anyway now I can write uiTabDeletePage()... 2015-04-18 14:19:42 -04:00
Pietro Gagliardi efd94b2528 Continued implementing Windows lifetime code. Now for uiTab. 2015-04-18 14:16:06 -04:00
Pietro Gagliardi 8dcdbd0878 Started the work to settle lifetime issues on the Windows backend. 2015-04-18 14:06:12 -04:00
Pietro Gagliardi 1a76abef21 Implemented uiParentDestroy() on the Windows and Unix backends. These don't actually *use* it yet; that'll come later. (Ultimately, there should only be one path into window destruction, which leads to one path in uiParent destruction and one path in child destruction.) More TODOs. 2015-04-17 15:52:28 -04:00
Pietro Gagliardi 841b5c0c73 Migrated windows/parent.c to the previous commits's changes. 2015-04-17 14:53:56 -04:00
Pietro Gagliardi 9f0729de1c Changed uiParentSetChild() to uiParentSetMainControl(). Backend changes incoming. 2015-04-17 13:43:01 -04:00
Pietro Gagliardi d79acdf876 More Windows backend cleanup. 2015-04-17 11:19:42 -04:00
Pietro Gagliardi c4499416d9 Migrated windows/tab.c. 2015-04-17 11:18:45 -04:00
Pietro Gagliardi 1ed80a8609 Migrated windows/entry.c and windows/label.c. 2015-04-17 11:13:42 -04:00
Pietro Gagliardi 292ea9db7a Migrated windows/checkbox.c. Yes, this might work... 2015-04-17 10:49:14 -04:00
Pietro Gagliardi 5e5df97642 Migrated windows/button.c. This might be better; I don't know yet... 2015-04-17 10:40:52 -04:00
Pietro Gagliardi b91fe0c2ac Some more makefile fixups. 2015-04-16 20:52:47 -04:00
Pietro Gagliardi 3ac3d0a871 Fixed warnings in the Windows backend. That just leaves the Mac OS X one... 2015-04-16 10:03:31 -04:00
Pietro Gagliardi a2b7492b32 Fixed the rest of the Windows build errors. IT STILL WORKS! Now to fix warnings, if any... 2015-04-16 09:59:05 -04:00
Pietro Gagliardi 83cb200582 Fixed some build errors in the Windows backend. 2015-04-16 09:53:44 -04:00
Pietro Gagliardi 0a34d4f894 Converted windows/windows.c. Now to build and test. More TODOs. 2015-04-16 09:44:06 -04:00
Pietro Gagliardi a0b1ec8191 Fixed some errors in the Windows code. 2015-04-16 09:33:21 -04:00
Pietro Gagliardi 2cc7899d89 Converted windows/tab.c. 2015-04-16 09:32:34 -04:00
Pietro Gagliardi 45d6183743 Migrated windows/entry.c and windows/label.c. 2015-04-16 09:20:00 -04:00
Pietro Gagliardi 9b409db3a3 Migrated windows/checkbox.c and made some small fixes to windows/button.c. 2015-04-16 09:08:38 -04:00
Pietro Gagliardi e9c00b6b65 More windows/newcontrol.c migration. 2015-04-16 01:53:23 -04:00
Pietro Gagliardi 6674944c0a Migrated newcontrol.c and button.c on the Windows backend. 2015-04-16 01:52:31 -04:00
Pietro Gagliardi aa802768a4 Started building the make structure. 2015-04-15 19:14:28 -04:00
Pietro Gagliardi d4fb903c07 Moved the uipriv_*.h files to the respective folders. The ui_*.h files stay up here; they'll be moved to IDLs later. 2015-04-15 18:51:04 -04:00
Pietro Gagliardi e69c0c93eb Split all OS backends into their own folders. 2015-04-15 18:49:45 -04:00