Commit Graph

796 Commits

Author SHA1 Message Date
Angelo Haller 79bb0057c8 Add new API functions to get and set the visibility of table headers.
Added API functions:
uiTableHeaderVisible() to determine whether the table header is visible.
uiTableHeaderSetVisible() to set the visibility of the table header.

Implementation provided for unix, darwin, and windows.

Notes: as darwin does not provide an API for hiding or recreating the
table header I opted for saving a reference and restoring that when the
visibility is set back to true. Setting the header to nil to hide it is
the suggested method for hiding the header according to the docs.
2020-09-15 08:41:44 -05:00
Pietro Gagliardi e8daaf659e windows/direct2d: fix ID2D1RenderTarget::GetPixelFormat() and ID2D1RenderTarget::GetSize() typedefs in MinGW-w64 ABI workaround
MinGW-w64 recently added manual workarounds directly into the class via overloads that make existing Direct2D code source-compatible. However, that exposed an error in my definition of the typedefs I was using in my own workaround: both of these methods are const, even in MSVC, but I neglected to include the const qualifier. I'm not sure how this code compiled in the past, but now the overload resolution engine finds no match.

I want to remain compatible with versions of MinGW-w64 old enough to not have their fix, so our fix remains.

Fixes #446.
2019-04-07 21:56:35 -04:00
Pietro Gagliardi 4afebf4d8e Try again again. 2019-04-03 10:20:07 -04:00
Pietro Gagliardi 466f542bd3 Try again. 2019-04-03 10:11:57 -04:00
Pietro Gagliardi 30a8cbf8b1 Fixed VS2017 build for now. 2019-04-03 10:05:00 -04:00
Pietro Gagliardi 257536103f Clean up specification of Windows dependency listp also suggested by TheQwertiest in freenode #mesonbuild. Also more TODOs. 2019-03-29 11:03:07 -04:00
Pietro Gagliardi 7ea8c33547 Removed TODO about bulk Windows libraries as the answer is no; thanks TheQwertiest in freenode #mesonbuild. 2019-03-29 10:46:27 -04:00
Pietro Gagliardi 81e25f76f2 Moved the binary PIC as a TODO and marked merge blockers as MESONTODO. Also removed a stale cmake-era TODO, because the manifest distribution idea it had will eventually be part of the uires tool. 2019-03-27 21:34:09 -04:00
Pietro Gagliardi 6a5fedf3f4 Settled windows/CMakeLists.txt. 2019-03-27 00:59:32 -04:00
Pietro Gagliardi 1b9250e41e Removed include_directories hackery, as suggested by various people in freenode #mesonbuild. 2019-03-25 20:07:22 -04:00
Pietro Gagliardi 467a9102ec Fixed static builds on all platforms. So close to getting all this set up! 2019-03-24 14:11:02 -04:00
Pietro Gagliardi c1dfc0ab5d And got the Windows build working. Woo! 2019-03-24 12:57:25 -04:00
Pietro Gagliardi 2be9a4f3a3 Added the initial Windows meson.build. Windows Meson is having problems running, so we'll have to test this later. 2019-03-23 22:28:17 -04:00
Pietro Gagliardi 6a22c61cd4 More work on winrebarexplorertheme.cpp, including the boilerplate for custom draw. More TODOs in general. 2018-10-11 22:19:10 -04:00
Pietro Gagliardi e2222e414d Sigh MinGW 2018-09-01 20:03:15 -04:00
Pietro Gagliardi db9977a4ee Fixed uiImage on Windows. Phew. Also made it have Windows decide the best parameters, like on other platforms. 2018-09-01 19:09:47 -04:00
Pietro Gagliardi 24df7bc3f2 Cleaned up timers in uiUninit() on GTK+. Update #395. 2018-08-09 04:49:07 -04:00
Pietro Gagliardi ad1641f9ab Cleaned up timers in uiUninit() on Windows. Update #395. 2018-08-09 04:29:16 -04:00
Pietro Gagliardi e0ca00e55b Resolved confusion about the terminology of strides in uiImageAppend(). Also prevents overallocation on some platforms. Thanks to @mischnic and @msink for spotting this. Update #402. 2018-08-05 18:39:29 -04:00
Pietro Gagliardi b60953ed1c More TODOs. 2018-07-28 13:57:20 -04:00
Pietro Gagliardi f3882d6124 Cleaned up color access across platforms. 2018-06-24 14:22:05 -04:00
Pietro Gagliardi acb40964f3 Deduplicated editable logic across platforms. 2018-06-24 11:41:19 -04:00
Pietro Gagliardi fb67c429d8 Made background color columns only settable at creation time; added a uiTableParams struct for the purpose. This should end edits to uitable.h for now (until we're ready to document it). Now to just clean up all the implementations. 2018-06-24 10:28:41 -04:00
Pietro Gagliardi 72c7c05f04 Fixed up AddColumn parameter and private fields names; made them consistent. 2018-06-24 09:52:01 -04:00
Pietro Gagliardi 4dbf1994a6 Deduplicated the default text column parameters across platforms. 2018-06-24 00:45:54 -04:00
Pietro Gagliardi 74ec21f4c7 Turned the direct method calls on uiTableModel into functions to make the call sites look a bit cleaner. More stuff will go into common/tablemodel.c... 2018-06-23 23:35:42 -04:00
Pietro Gagliardi 9a79eed2ac Final cleanup, first part: renamed uiTableData to uiTableValue. 2018-06-23 20:19:30 -04:00
Pietro Gagliardi ac27e24add And even more still. I'm just gonna clean everything up for a merge at this point. 2018-06-23 11:27:02 -04:00
Pietro Gagliardi 888bb450b3 More TODOs. 2018-06-23 11:26:14 -04:00
Pietro Gagliardi 7d17df7121 HRESULT-chained the drawing functions together and fixed bugs in the focus drawing code. 2018-06-22 21:50:04 -04:00
Pietro Gagliardi d0f7cf81c5 And rewired the focus rect. 2018-06-21 23:47:24 -04:00
Pietro Gagliardi c2000ea54d Gave up with CDDS_SUBITEM; it just refuses to play nice with focus rects. Will try drawing focus rects again next commit. 2018-06-21 21:56:24 -04:00
Pietro Gagliardi 4dc7f4c2de Wrote the initial code to draw the focus rect. 2018-06-20 21:11:15 -04:00
Pietro Gagliardi 5854b0f638 Loose ends for editing: drew the proper background for text and committing text works now. 2018-06-20 19:31:21 -04:00
Pietro Gagliardi ccb7005dc6 Properly clipped the edit within the listview. 2018-06-20 18:56:03 -04:00
Pietro Gagliardi f180423096 Integrated tablemetrics.cpp into tableediting.cpp and added resize-on-type. 2018-06-20 18:47:55 -04:00
Pietro Gagliardi 5ae45a1fcb Integrated tablemetrics.cpp with tabledraw.cpp. 2018-06-20 18:03:56 -04:00
Pietro Gagliardi ec07b12295 Split table cell metrics into its own file. We still need to actually integrate this with everything. 2018-06-20 11:05:34 -04:00
Pietro Gagliardi df59eee783 Renamed tableevents.cpp to the more accurate tableediting.cpp. 2018-06-20 10:45:14 -04:00
Pietro Gagliardi bff9d0e311 More work on table edit controls, including: subclassing the edit control to actually handle escape and enter, setting focus on the eidt control, selecting all text in the edit control, and splitting the sizing stuff into a separate function. We'll have to split the rect-gathering code into a separate file before we can add live resize to the edit control... which will probably be useful because then I could just write a function to enumerate focus rects later. 2018-06-20 10:39:27 -04:00
Pietro Gagliardi 25a443f4f2 Handled the finished-editing cases I can right now. It is... mostly good???????????? IListView is very tantalizing now... 2018-06-19 23:07:24 -04:00
Pietro Gagliardi ff4b424ab0 Added WS_CLIPCHILDREN to uiTable to prevent drawing over children. 2018-06-19 07:51:34 -04:00
Pietro Gagliardi 4c107997d2 Round two: fully custom edit sizing code. We're getting somewhere now. Now we'll need to actually manage this thing =P 2018-06-18 23:51:58 -04:00
Pietro Gagliardi 1edb406045 Let's start over with this edit control sizing stuff. 2018-06-18 09:39:14 -04:00
Pietro Gagliardi d81b365396 More edit control stuff. We've almost got it, but it's too wide and the text is still aligned wrong. 2018-06-17 21:22:57 -04:00
Pietro Gagliardi 51f98d1f7b Started implementing the edit control for our table view. 2018-06-17 17:56:45 -04:00
Pietro Gagliardi 799c613a6f Added code for detecting that text is to be edited. Now for actually implementing editing text. 2018-06-17 15:06:45 -04:00
Pietro Gagliardi 6d0b276d6d Started handling table events. This covers checkboxes and buttons. 2018-06-17 11:48:39 -04:00
Pietro Gagliardi 2fb3676a8f More TODOs. 2018-06-17 10:50:24 -04:00
Pietro Gagliardi db2f3352c4 Added dummy code to evaluate LVM_SUBITEMHITTEST. The code will remain, but will be #if'd out. 2018-06-17 09:29:51 -04:00