Commit Graph

650 Commits

Author SHA1 Message Date
Pietro Gagliardi c0781a13ae Fixed compile errors. Jesus.
Runtime errors next.
2017-01-20 03:24:06 -05:00
Pietro Gagliardi cac390a821 Wrote much of the new text layout code on Windows. Now to test. 2017-01-19 21:13:03 -05:00
Pietro Gagliardi f7121774e1 Added some TODOs and started the work necessary for the Windows text system migration... which is gonna hurt. 2017-01-17 23:25:26 -05:00
Pietro Gagliardi 3218ba2a43 And migrated the Unix grapheme code for the new attributed string system. 2016-12-03 18:54:19 -05:00
Pietro Gagliardi 526173bf76 Started writing the implementation of uiAttributedString. Updated windows/graphemes.cpp for this new implementation. Also fixed up a bunch of subtle errors and other issues with windows/graphemes.cpp. 2016-12-03 18:34:06 -05:00
Pietro Gagliardi 0d5ff432b3 Rewrote utf16.cpp to use my utf lib. Maybe I should be doing attributed strings safter all, but I might as well optimize too I guess?? 2016-12-03 11:31:11 -05:00
Pietro Gagliardi e3dec183aa Started the process of splitting the table code into a separate branch. 2016-11-27 17:34:40 -05:00
Pietro Gagliardi 8819d9cd58 Fixed the new Windows uiArea functions. 2016-10-25 23:41:37 -04:00
Pietro Gagliardi 9d754bbf2a Implemented the new functions on Windows. Now to test. 2016-10-25 23:24:13 -04:00
Pietro Gagliardi 57fbf78ef3 More removal. 2016-10-22 19:31:57 -04:00
Pietro Gagliardi edd70b9fa5 More uiWindows cleanup. 2016-10-22 18:35:41 -04:00
Pietro Gagliardi f46edd097b uiDrawTextWeightUtraBold. 2016-10-21 16:35:46 -04:00
Pietro Gagliardi e133903809 Merge branch 'master' of github.com:andlabs/libui 2016-10-17 12:41:58 -04:00
Pietro Gagliardi 084ed53e63 Fixed a latent bug in uiFreeInitError() on Windows. 2016-10-15 01:21:04 -04:00
Boris Nagaev 61bcb0d536 cmake: do not reset unused variable _res_suffix 2016-07-10 22:14:55 +03:00
Pietro Gagliardi ef689c10f1 Started table part handling on Windows. 2016-06-30 20:38:12 -04:00
Pietro Gagliardi 9656a81c77 Added uiNewVerticalSeparator(). 2016-06-17 11:02:17 -04:00
Pietro Gagliardi ae14542c9a Improved uiMainSteps(). 2016-06-17 09:22:31 -04:00
Pietro Gagliardi 99545e8775 Fixed up the progressbar changes. 2016-06-16 17:43:04 -04:00
Pietro Gagliardi 798061f7f6 Merge pull request #144 from ProtonMail/progress-bar
Improves progress bar
2016-06-16 16:44:42 -04:00
Pietro Gagliardi 179042025a And implemented on Windows, and more TODOs on top of that. 2016-06-16 14:12:47 -04:00
Pietro Gagliardi 377f46814a Started adding borderless uiWindow support; implemented on Windows. 2016-06-16 11:20:28 -04:00
Pietro Gagliardi aafdb75a98 And implemented the fullscreen stuff on Windows. 2016-06-16 10:30:44 -04:00
emersion 7770b5c850 Adds indeterminate progressbar to windows 2016-06-16 09:32:13 +02:00
Pietro Gagliardi e5064de86b More TODOs. 2016-06-15 23:00:26 -04:00
Pietro Gagliardi 6c56f1e1ce Implemented the window size stuff on Windows. 2016-06-15 22:52:35 -04:00
Pietro Gagliardi c3777da0f4 And added the new uiWindow methods on Windows. 2016-06-15 21:55:42 -04:00
Pietro Gagliardi dda58c9323 Fixed leaking issues with the previous commit. 2016-06-15 12:04:11 -04:00
Pietro Gagliardi ac1a515820 Merge pull request #141 from ProtonMail/ui-form-delete
Adds uiFormDelete()
2016-06-15 12:00:38 -04:00
emersion 3173fc6cdc Fixes windows static library copy 2016-06-15 17:07:52 +02:00
Pietro Gagliardi c8dd546804 I don't know what's up. Fix a leak anyway. 2016-06-14 23:03:40 -04:00
Pietro Gagliardi 4b2d646345 Fixed most of the grid problems. Now we just need to figure why the Assorted page both clips and doesn't position controls correctly... 2016-06-14 23:00:30 -04:00
Pietro Gagliardi 106d4b544a Edging ever closer to getting grids working right on Windows. 2016-06-14 21:55:14 -04:00
Pietro Gagliardi 0a4a8ae4f3 Getting closer. Adding hidden views makes things harder... hm. 2016-06-14 20:57:21 -04:00
Pietro Gagliardi 96ce336a8b Handled hidden controls in uiGrid properly. Spacing, on the other hand... 2016-06-14 19:44:28 -04:00
Pietro Gagliardi 8ae0823eee Implemented hidden controls properly on Windows uiForm. 2016-06-14 18:12:30 -04:00
emersion 52bd3b2c35 Adds uiFormDelete() 2016-06-14 22:41:37 +02:00
Pietro Gagliardi b6cb429d1a Fixed uiBox hidden control nonsense on Windows. FINALLY. 2016-06-14 16:06:39 -04:00
Pietro Gagliardi 997c8aac35 Implemented visibility change detection on Windows. Now to refine the actual implementation of hidden controls. 2016-06-14 15:55:24 -04:00
Pietro Gagliardi fa4542f217 Got rid of the last bit of intmax_t. Now to verify everything. 2016-06-13 22:00:18 -04:00
Pietro Gagliardi 4524ffce5e Removed most of the intmax_ts, which are all MinimumSize()s. 2016-06-13 21:54:15 -04:00
Pietro Gagliardi 8c974e7b77 Started removing intmax_ts, first with uipriv_windows.hpp. 2016-06-13 21:47:04 -04:00
Pietro Gagliardi 75a8ee9bf9 Removed intmax_t from everything else EXCEPT the Windows code. Now it's time for THAT... 2016-06-13 21:37:50 -04:00
Pietro Gagliardi 2affdab837 Removed intmax_t from the rest of the public API. 2016-06-13 21:23:05 -04:00
Pietro Gagliardi 864c6c2511 Finished stripping ui.h of intmax. 2016-06-13 21:20:20 -04:00
Pietro Gagliardi 155299cdb9 More intmax_t removal. 2016-06-13 21:11:59 -04:00
Pietro Gagliardi 440635447d More intmax_t removal. 2016-06-13 21:05:40 -04:00
Pietro Gagliardi 8d48d42201 More intmax_t elminiation. 2016-06-13 20:55:50 -04:00
Pietro Gagliardi b26354d1e7 Started replacement of intmax_t and uintmax_t with int. 2016-06-13 20:46:11 -04:00
Pietro Gagliardi 61a94fde57 Fixed a memory leak in Windows uiForm. NOW OS X. 2016-06-10 22:29:20 -04:00
Pietro Gagliardi 662c9de179 Fixed the Windows grid code. Now it's time for the OS X code (giant bottle of alcohol here). 2016-06-10 21:24:30 -04:00
Pietro Gagliardi 554221fd66 Added Windows uiGrid. Doesn't quite work yet. 2016-06-10 19:34:48 -04:00
Pietro Gagliardi afe27177d5 Implemented uiForm on Windows. 2016-06-08 23:33:32 -04:00
Pietro Gagliardi 9a5bc738c5 Implemented likewise on Windows. 2016-06-06 19:51:46 -04:00
Pietro Gagliardi 812086be1b Improved the appearance of uiSearchEntry on Windows somewhat. 2016-06-05 21:27:44 -04:00
Pietro Gagliardi 15456c8b41 Implemented uiPasswordEntry and uiSearchEntry on Windows. 2016-06-05 21:02:59 -04:00
Pietro Gagliardi eeb20c316b Fixed uiSpinbox events not working on Windows. NOW let's alpha 3.1. 2016-06-05 17:12:10 -04:00
Pietro Gagliardi 538965b4ef Fixed the MinGW ABI stuff again... 2016-06-05 16:07:40 -04:00
Pietro Gagliardi c31699e4cd Pinned down resource numbers now. 2016-06-04 14:36:55 -04:00
Pietro Gagliardi 66fde9ee0c More fixups to the previous commit. 2016-06-04 14:30:43 -04:00
Pietro Gagliardi 7d2f364256 Fixed Windows static linking issues. 2016-06-04 13:57:10 -04:00
Pietro Gagliardi 44b4d24881 Started a new cmake file. Seems to work so far... 2016-06-03 14:56:21 -04:00
Pietro Gagliardi 1903115bbd Pushed all the build files elsewhere. I'm rewriting the CMakeLists files from scratch. 2016-06-03 00:29:31 -04:00
Pietro Gagliardi ee373a94d6 Started the Windows cmake stuff and tried to get it to work on MinGW again. 2016-06-01 21:45:39 -04:00
Pietro Gagliardi 2ed29a7fa0 More stuff. Screw this; releasing as is. 2016-05-29 21:13:03 -04:00
Pietro Gagliardi a226c80993 More TODO resolution and elimination and delegation and explanation. 2016-05-29 19:55:53 -04:00
Pietro Gagliardi 0738eca6e4 More work. 2016-05-29 19:01:48 -04:00
Pietro Gagliardi 56cb25b230 Started Windows TODO resolution. 2016-05-29 13:07:48 -04:00
Pietro Gagliardi e114502605 Tried to set up Windows static linking. 2016-05-29 12:00:55 -04:00
Patrick Walton 5f1e8fa601 Add support for static linking.
Use `make STATIC=1` to build a static library.

Some language ecosystems, like those of Rust, have a convention of
static linking in order to make binaries easier to distribute. In those
environments, this feature helps libui fit in more easily.

In order to prevent internal symbols from linking, we first create an
intermediate object file with `ld -r` and strip private symbols from it
before using `ar` to create the library.
2016-05-28 14:46:02 -07:00
Pietro Gagliardi ac652f0690 Did most of the work for grapheme cluster boundary based text layout characters on GTK+. 2016-05-25 01:52:53 -04:00
Pietro Gagliardi 474d3fb1d5 Oops, forgot to free something in the previous commit. 2016-05-25 01:10:47 -04:00
Pietro Gagliardi 47632fe560 Switched text layout attributes to grapheme-based indices on Windows, just like on OS X. 2016-05-25 01:08:55 -04:00
Pietro Gagliardi ff1971d8d6 More longterming. 2016-05-24 23:13:44 -04:00
Pietro Gagliardi a9e731ed59 Added uiMainStep() and implemented it on Windows. 2016-05-24 22:14:05 -04:00
Pietro Gagliardi 45edacf8ca Consolidated GetAncestor() calls again. 2016-05-24 21:18:29 -04:00
Pietro Gagliardi 095e08bc79 Added uiEditableCombobox on Windows. 2016-05-24 10:06:24 -04:00
Pietro Gagliardi 61185072f7 More TODO -> LONGTERM migration. Also made it so uiSpinbox and uiSlider merely swap min and max if min is larger. 2016-05-22 20:11:52 -04:00
Pietro Gagliardi ab0a9102b4 Added a user bug for calling SetParent() on a uiWindow. 2016-05-22 20:02:47 -04:00
Pietro Gagliardi a641a7eda8 Some TODO cleanup. Started changing long-term TODOs to say LONGTERM instead. 2016-05-22 18:37:53 -04:00
Pietro Gagliardi 878778c683 Implemented WM_PRINTCLIENT for uiArea and the Direct2D scratch windows. 2016-05-22 16:16:20 -04:00
Pietro Gagliardi 585872839d Made uiColorButton on Windows draw with actual alpha values. 2016-05-22 16:07:31 -04:00
Pietro Gagliardi 531f8ea19c Finally wrote makeDCRenderTarget() for the Windows backend. Now to use it. 2016-05-22 15:59:23 -04:00
Pietro Gagliardi 313ce47833 Started non-wrapping multiline entries. Implemented on Windows. 2016-05-22 13:56:36 -04:00
Pietro Gagliardi f3dad94039 Added CRLF translation to uiMultilineEntry on Windows. More TODOs. 2016-05-22 13:42:37 -04:00
Pietro Gagliardi d060744f87 Some TODO resolution. 2016-05-22 13:09:13 -04:00
Pietro Gagliardi 5a4b6aa6f0 Switched from using M_PI to a named constant uiPi. 2016-05-22 12:00:44 -04:00
Pietro Gagliardi 1d8ea79e45 Removed uiControlVerifyDestroy(); we could have just had it in uiFreeControl(). 2016-05-22 01:07:25 -04:00
Pietro Gagliardi a8fe3004a3 Fixed uiRadioButtons rendering on Windows. 2016-05-21 22:17:29 -04:00
Pietro Gagliardi de1571cd1f And implemented the opacity slider. We're done with this dialog! 2016-05-18 00:46:14 -04:00
Pietro Gagliardi 341f8373d3 Implemented the previewer. That just leaves the opacity slider! 2016-05-18 00:20:41 -04:00
Pietro Gagliardi 22a1525d24 Implemented the grid-drawing function. Now we can write the other two views. 2016-05-17 22:55:35 -04:00
Pietro Gagliardi b226288584 Implemented the H slider. 2016-05-17 20:46:28 -04:00
Pietro Gagliardi bc69da86af Implemented the hex entry. That just leaves the other Direct2D views! 2016-05-17 17:41:38 -04:00
Pietro Gagliardi 70635858bd Implemented the integer entries. 2016-05-17 17:00:00 -04:00
Pietro Gagliardi d42864c696 Implemented the other double entry fields and drawing alpha on the SV chooser. 2016-05-17 16:46:47 -04:00
Pietro Gagliardi 571faf9582 Implemented mouse control of the SV area; updated the color button immediately after a change. 2016-05-17 14:44:57 -04:00
Pietro Gagliardi 9654ca793d Changed the color dialog to edit HSV instead of RGB. This fixes issues with conversion that we had in the previous commit. The real question: will this break entering RGB values? 2016-05-17 13:52:56 -04:00
Pietro Gagliardi d892a8f710 Started making the color dialog editable. I'm going to have to store HSV and alpha instead of RGB and alpha... 2016-05-17 13:44:14 -04:00
Pietro Gagliardi 7c34acc2b7 And an itoutf16() too, because why not. Okay, NOW for updating the labels. 2016-05-17 12:44:43 -04:00
Pietro Gagliardi 8a1fe1f48a And added a proper invalidateRect(). 2016-05-17 12:41:41 -04:00
Pietro Gagliardi 473e0c9b69 Actually first let's do event handling. This adds a ftoutf16() function we can use here. 2016-05-17 12:35:44 -04:00
Pietro Gagliardi 027bb6782b Drew the marker on the color panel. Now for the hue slider. 2016-05-17 12:18:36 -04:00
Pietro Gagliardi 3128e58c5b Started drawing the SV chooser part of the Windows color dialog. 2016-05-16 23:54:28 -04:00
Pietro Gagliardi 2c160bb5eb Started work on the color dialog itself; positioned controls correctly to start. 2016-05-16 19:28:30 -04:00
Pietro Gagliardi 4b4a5c335f Laid out the Windows color dialog. 2016-05-16 17:07:30 -04:00
Pietro Gagliardi 6e7a74928d More TODOs. 2016-05-16 14:00:37 -04:00
Pietro Gagliardi 475326b111 Started implementing uiColorButton on Windows. This implements the color button itself. 2016-05-16 13:59:11 -04:00
Pietro Gagliardi 1db3027619 Finished the re-disabling of all windows on Windows dialogs. 2016-05-15 19:38:45 -04:00
Pietro Gagliardi 1d08521cb7 Started reimplementing the old dialog helper stuff. Now that we're C++ on Windows, we can do this directly in window.cpp and save time. 2016-05-15 19:22:15 -04:00
Pietro Gagliardi aafb27cb2c Finished the complain() migration. 2016-05-13 23:29:41 -04:00
Pietro Gagliardi 8067dc76b7 Got rid of most of Windows's complain()s. 2016-05-13 22:53:56 -04:00
Pietro Gagliardi 6d2d977363 Cleaned up the debugging infrastructure on Windows (we stopped using the strsafe functions so there's no useful failure case anymore) and implemented the new one. 2016-05-13 22:05:02 -04:00
Pietro Gagliardi 15b370bc36 Started migrating out implbug() in the windows backend. I'm gonna need a cstrf() to go along with wstrf(). 2016-05-13 21:07:48 -04:00
Pietro Gagliardi a4f9d08281 Began replacing complain() with the more appropriate implbug() and userbug(). 2016-05-13 18:27:08 -04:00
Pietro Gagliardi 94587b660f Some TODO resolution and stale TODO removal. 2016-05-13 17:54:10 -04:00
Pietro Gagliardi 03337f61f1 Fixed Visual Studio 2015 builds. 2016-05-13 15:13:41 -04:00
Pietro Gagliardi ac3ee981b3 More TODO work. 2016-05-06 16:12:56 -04:00
Pietro Gagliardi 9e0ff2e000 Some TODO resolution in the Windows backend. 2016-05-06 16:06:55 -04:00
Pietro Gagliardi 4444b79c30 Migrated windows/drawmatrix.cpp to use d2d1helper.hpp. 2016-05-06 11:44:48 -04:00
Pietro Gagliardi 4b3084c2fe Fixed up windows/drawtext.cpp. 2016-05-06 10:31:01 -04:00
Pietro Gagliardi 725a97faba More TODOs. 2016-05-05 21:57:20 -04:00
Pietro Gagliardi 02fbb5a559 A lot more drawing migration on Windows. With that done, though, we can finally do this... 2016-05-05 21:49:50 -04:00
Pietro Gagliardi 515c8398c0 Started doing the whole split apart thing to the Windows backend. 2016-05-05 20:23:52 -04:00
Pietro Gagliardi 97ab0b36e0 A few more positioning bugs fixed and TODOs. I guess we can merge this now! (The redraw bugs will have to wait.) 2016-04-29 17:41:17 -04:00
Pietro Gagliardi 974413bbe3 Quick typo in tabpage.cpp fixed. 2016-04-29 17:35:48 -04:00
Pietro Gagliardi bd2840255d Fixed the few runtime errors there were. It works! There's a bit of a drawing issue on some controls, though... 2016-04-29 17:33:56 -04:00
Pietro Gagliardi 1a77e9f301 Fixed all compiiler errors. Now for runtime errors! 2016-04-29 17:08:31 -04:00
Pietro Gagliardi fa88467609 Migrated the rest of the controls. Ready for this build to completely fall apart? 2016-04-29 14:12:01 -04:00
Pietro Gagliardi 1956270ed1 More conversions. Almost done! 2016-04-29 13:50:08 -04:00
Pietro Gagliardi 840e21456c Migrated checkbox.cpp and combobox.cpp. 2016-04-29 12:49:42 -04:00
Pietro Gagliardi abf9e202ef Got rid of child.cpp. Yay. :D 2016-04-29 12:22:06 -04:00
Pietro Gagliardi affa6a7080 Converted QueueRelayout to MinimumSizeChanged. 2016-04-29 12:20:41 -04:00
Pietro Gagliardi f16f287b97 Migrated button.cpp. Allowed NULL out parameters in the uiWindowsSizing functions. 2016-04-29 12:18:46 -04:00
Pietro Gagliardi 4600bca8d3 Migrated box.cpp. Now we can migrate the other controls, since we have a better idea of what we're doing. 2016-04-29 10:48:39 -04:00
Pietro Gagliardi 26b22b2da3 Migrated group.cpp. 2016-04-28 22:33:32 -04:00
Pietro Gagliardi d68e11eac1 Verified (see misctestprogs) that WM_GETMINMAXINFO *is* sufficient to constrain the container size during SetWindowPos(), even if the size doesn't change. More TODOs. 2016-04-28 17:48:40 -04:00
Pietro Gagliardi 9f12fbff89 Migrated tab.cpp to the new system and fixed a few bugs. 2016-04-28 17:36:07 -04:00
Pietro Gagliardi 447aa75dc6 Reworked container.cpp a bit to suit the new propagation system. 2016-04-28 17:19:06 -04:00
Pietro Gagliardi 3baa94476d Adjusted uiWindow to use the new system for propagating minimum size changes. 2016-04-28 17:11:32 -04:00
Pietro Gagliardi c457d9bf00 Started a newer, better system for propagating layout changes. This relies on WM_GETMINMAXINFO, at least... 2016-04-28 16:59:26 -04:00
Pietro Gagliardi 56853c5d86 Cleaned up some control ID stuff. 2016-04-27 17:51:33 -04:00
Pietro Gagliardi 8b42c22caf More TODOs. 2016-04-27 14:55:36 -04:00
Pietro Gagliardi 16aaeb5c26 Some TODO resolution; some more TODOs. 2016-04-27 14:25:52 -04:00
Pietro Gagliardi 38f501c092 Migrated tab.cpp. This might work just fine. 2016-04-27 14:21:05 -04:00
Pietro Gagliardi 009403e1ec Migrated tabpage.cpp. 2016-04-27 12:41:30 -04:00
Pietro Gagliardi f83e39e033 Decided something for how to actually perform a resize for a child control. This solidifies one-HWND-per-control. 2016-04-27 12:18:58 -04:00
Pietro Gagliardi 4866168ecf Quick bugfix in childMinimumSizeChanged for uiWindow. 2016-04-27 01:25:36 -04:00
Pietro Gagliardi 40672cc5c4 More TODOs. 2016-04-27 01:06:35 -04:00
Pietro Gagliardi 3563dd74e7 Finished migrating window.cpp. A few utility functions came along for the ride. Maybe child.cpp won't be needed...? 2016-04-27 00:54:22 -04:00