Commit Graph

3284 Commits

Author SHA1 Message Date
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 2c7bccb3a8 Fixed bin destruction on Mac OS X. 2015-05-06 01:38:32 -04:00
Pietro Gagliardi a15bb12ad1 Implemented proper bin destruction on the GTK+ backend. 2015-05-06 01:31:06 -04:00
Pietro Gagliardi 732d13aa09 More big TODOs. 2015-05-06 00:54:57 -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 cc56e2cece Implemented clearing realloc() on the OS X backend. 2015-05-04 20:07:34 -04:00
Pietro Gagliardi ed9539de94 Fixed an error in the previous few commits. 2015-05-04 20:02:00 -04:00
Pietro Gagliardi 7b04df6c98 More TODOs. 2015-05-04 19:56:06 -04:00
Pietro Gagliardi cf44574bbb Redid the GTK+ allocator to be simpler to prepare for the OS X code. 2015-05-04 19:55:39 -04:00
Pietro Gagliardi 58954ed201 Fixed up realloc() to zero extra memory on GTK+. Thanks to Rena (irc.badnik.net) and hyphenated (irc.freenode.net/#go-nuts) for confirming my memset() and spotting errors. 2015-05-04 19:26: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 00d27ef83b More long-term TODO moving. 2015-05-04 17:39:50 -04:00
Pietro Gagliardi b9597028fb Moved some OS X TODOs to the long-term list. 2015-05-04 17:33:05 -04:00
Pietro Gagliardi e571a73247 Made an executive decision about the behavior of uiControlShow() on uiWindows. 2015-05-04 17:23:01 -04:00
Pietro Gagliardi 68a1cfb199 More TODOs. Sigh... 2015-05-04 16:34:03 -04:00
Pietro Gagliardi 1c62c04786 Partially fixed box updating issues by actually monitoring parent containers in uiBox. 2015-05-04 16:25:43 -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 80b82b7698 Got rid of the typedef struct box box; and typedef struct boxControl boxControl; from box.c, for consistency. 2015-05-04 15:37:03 -04:00
Pietro Gagliardi bdbf72e69f Removed memory management TODOs; that's already in TODO.md under array.c. 2015-05-04 15:10:03 -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 c6229271cc Implemented tab disabling on OS X. 2015-05-04 14:53:23 -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 e59aeb19ca Added a disabled uiTab test. It works fine on GTK+ (as expected) but the feature needs to be implemented on Windows and OS X. 2015-05-04 14:14:12 -04:00
Pietro Gagliardi 4716781e78 Finished container enable/disable on Windows for now. 2015-05-04 14:05:36 -04:00
Pietro Gagliardi 3ead59424d I am wrong there's nothing wrong with what we're doing now because only the immediate parent calls uiControlSysFunc(uiXxxSysFuncContainerDisable). 2015-05-04 13:55:57 -04:00
Pietro Gagliardi d98a2291cb More enable/disable container stuff. 2015-05-04 11:09:28 -04:00
Pietro Gagliardi 37140cf6f0 Completed the nested box test. 2015-05-04 11:07:23 -04:00
Pietro Gagliardi 31dc99899d Set up a framework for testing nested enables and disables. 2015-05-04 10:34:16 -04:00