Commit Graph

202 Commits

Author SHA1 Message Date
Pietro Gagliardi 41030b0a03 Made it so uiContainer on Windows only updates when we ask it to resize, not on every WM_WINDOWPOSCHANGED. More TODOs. 2015-05-10 12:57:13 -04:00
Pietro Gagliardi bcafe6806a Made uiTab on Windows only resize when explicitly asked to rsize, not on every WM_WINDOWPOSCHANGED. This is important for making resizes smooth. 2015-05-10 12:54:11 -04:00
Pietro Gagliardi 24d63adb51 Migrated the Windows backend to the new bin. 2015-05-10 12:48:11 -04:00
Pietro Gagliardi a2cf4908a3 Started cleaning up bin handling. uiBin is now a real type and all of the things you need to do to a bin are its methods. 2015-05-10 12:36:14 -04:00
Pietro Gagliardi 4954d608f4 Got rid of a stray debugging line in windows/button.c. 2015-05-09 21:19:06 -04:00
Pietro Gagliardi 7bdc50c25a Inhibited uiEntryOnChanged() with uiEntrySetText() on Windows. 2015-05-09 21:18:27 -04:00
Pietro Gagliardi 349d54b2f1 More commentary and TODOs about the previous commit(s). 2015-05-09 16:04:54 -04:00
Pietro Gagliardi bd4716c949 Started code for handling WM_QUERYENDSESSION and its console equivalent. 2015-05-09 14:22:51 -04:00
Pietro Gagliardi 5e258c0c48 Implemented the Quit menu item shouldQuit() logic on Windows. 2015-05-09 10:53:38 -04:00
Pietro Gagliardi a6c86cc863 More Windows uninit stuff. 2015-05-08 17:17:03 -04:00
Pietro Gagliardi 3f3191ea7a More Windows uiUninit() implementation. 2015-05-08 15:01:23 -04:00
Pietro Gagliardi 04923399fe Implemented uninitMenus() on Windows. 2015-05-08 14:23:22 -04:00
Pietro Gagliardi 85ca2a0901 Wrote uninitAlloc() on Windows. 2015-05-08 14:05:16 -04:00
Pietro Gagliardi b60f17ee5a Added type names to the memory allocator on Windows. More TODOs. 2015-05-08 10:34:59 -04:00
Pietro Gagliardi 27d6994bdc Implemented stub uiUninit()s. 2015-05-07 22:32:17 -04:00
Pietro Gagliardi 6c9a122a7d Changed the default uiWindowOnClosing() behavior. Decided to keep the int return. 2015-05-07 20:01:17 -04:00
Pietro Gagliardi 34f55321e0 Added a [libui] and a newline to the message printed by complain(). 2015-05-07 19:34:45 -04:00
Pietro Gagliardi ab5975eeb5 More TODOs. 2015-05-07 18:14:21 -04:00
Pietro Gagliardi 727b6871bc Made uiFree(NULL) illegal to spot bugs. 2015-05-07 17:45:55 -04:00
Pietro Gagliardi efbdf14d5f Made all instances of SetWindowPos() and MoveWindow() use the same wrapper functions so they can all use the same flags. Only the SetWindoPos() that sets the initial size of a uiWindow is unaffected (since that is a special case). 2015-05-07 17:40:13 -04:00
Pietro Gagliardi 49595bb18d Set up proper -m flag manipulation for cross-compiling builds. 2015-05-07 16:02:34 -04:00
Pietro Gagliardi 598a499072 Changed ARCH on Windows to be amd64 for a 64-bit build instead of just 64 for consistency with the OS X one. 2015-05-07 15:47:29 -04:00
Pietro Gagliardi 2107595ce7 "Exported" uiSizing fields. 2015-05-07 14:33:46 -04:00
Pietro Gagliardi f74394fbac "Exported" uiSizingSys fields. 2015-05-07 14:22:31 -04:00
Pietro Gagliardi 6e4845f11f Fixed tab order on Windows. 2015-05-07 14:20:31 -04:00
Pietro Gagliardi 38a5341603 Fixed public/private namespace clobbering in the Windows backend and a wrong name in ui_darwin.h. 2015-05-07 12:58:33 -04:00
Pietro Gagliardi 91f7096257 Resolved a TODO; we were already doing the right hting. 2015-05-07 12:25:44 -04:00
Pietro Gagliardi bb617883d1 "Fixed" box padded application bug on Windows; more related TODOs. 2015-05-07 12:24:02 -04:00
Pietro Gagliardi 94da27c9ba Decided not to rewrite the resizing logic in windows/tab.c for now. Adjusted a few comments as well. 2015-05-07 10:14:49 -04:00
Pietro Gagliardi 316657e09e I'm wrong; read-only edit controls on Windows DO get their backgrounds from their parents. Thanks gamax92 for help confirming. 2015-05-07 00:23:35 -04:00
Pietro Gagliardi 6a1661fd91 Implemented read-only uiEntries on Windows. 2015-05-06 22:21:11 -04:00
Pietro Gagliardi 5128fed0af Implemented uiEntryOnChanged() on Windows. 2015-05-06 20:06:16 -04:00
Pietro Gagliardi 5b65c58715 Removed a stale TODO. 2015-05-06 18:56:12 -04:00
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