Commit Graph

635 Commits

Author SHA1 Message Date
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
Pietro Gagliardi 78b49ae04d Started reworking window.cpp to get a feel for what's going to happen. This is a mess... 2016-04-26 22:44:40 -04:00
Pietro Gagliardi dd1d5c871e Migrated the container stuff. 2016-04-26 22:17:42 -04:00
Pietro Gagliardi 8f4678a1f0 Removed the resize timer from windows/utilwin.cpp. 2016-04-26 22:09:13 -04:00
Pietro Gagliardi 227c3b3ec1 Split the public functions out of winutil.cpp to organize things. Renamed uiWindowsEnsureSetParent() to uiWindowsEnsureSetParentHWND() to denote its intended use. 2016-04-26 22:06:12 -04:00
Pietro Gagliardi 37e83d133b Started the migration. Got rid of a bunch of cruft, including the old delayed resize logic (except for timers; will have to get that back out). 2016-04-26 19:57:13 -04:00
Pietro Gagliardi dda30cdb3c Started the new uiControl infrastructure. 2016-04-24 19:22:21 -04:00
Pietro Gagliardi cf51ec823f Got rid of toplevelOwning(); I didn't like that one. 2016-04-24 18:23:00 -04:00
Pietro Gagliardi bc0a1d43c9 Applied the new type system to the Windows backend and fixed some more C++ stupidity related to it. 2016-04-24 17:38:48 -04:00
Pietro Gagliardi f60178798f Removed common type code. 2016-04-24 15:08:48 -04:00
Pietro Gagliardi 7b0f930185 Removed all the type function declarations from all the controls. More TODOs. 2016-04-24 15:04:36 -04:00
Pietro Gagliardi e90da765e3 Fixed a simple typo. IT WORKS! Also shortened one of the debug log messages. 2016-04-24 00:54:31 -04:00
Pietro Gagliardi 1f90366edd strsafe is a crock that does not follow its own documentation. Switch to the equivalent vcrt functions instead. 2016-04-24 00:50:19 -04:00
Pietro Gagliardi d258ac1d1d Fixed the other compiler and linker errors. We have a build! But does it work? If it does it's time to really tune this rewrite down. 2016-04-24 00:33:42 -04:00
Pietro Gagliardi c53e1c0b7d More fixes. Halfway through the alphabet now. 2016-04-23 22:29:54 -04:00
Pietro Gagliardi 158db39b68 More fixes. 2016-04-23 22:23:07 -04:00
Pietro Gagliardi 5236aa5855 More compiler error fixes. 2016-04-23 22:15:33 -04:00
Pietro Gagliardi 47aff78aae More compiler error fixes. Warning fixes will come later. 2016-04-23 21:38:51 -04:00
Pietro Gagliardi e0a8c8ce60 More fixes. 2016-04-23 21:25:56 -04:00
Pietro Gagliardi 2e352db4aa Fixed the wide string nonsense once and for all. Didn't need to switch to char at all! 2016-04-23 20:26:37 -04:00
Pietro Gagliardi 050cc3aa16 Fixed some things so far. It looks like I can't have __FILE__, etc. turned into wide strings because the way to do so works *ahead of time* :| Have to restructure debug.cpp. 2016-04-23 17:31:59 -04:00
Pietro Gagliardi ee6fa439f7 And updated the makefiles. Let's test! 2016-04-23 16:55:34 -04:00
Pietro Gagliardi cef1f90634 Oh right, also changed this to me in control implementations. Forgot that. NOW we can fix up the makefiles and test. 2016-04-23 16:52:53 -04:00
Pietro Gagliardi 0200af0301 Oh I forgot a few things. First, the other .cpp_ files. 2016-04-23 16:49:46 -04:00
Pietro Gagliardi 0307e11bf2 Migrated ui_windows.h. Now to fix up the makefiles and test. 2016-04-23 16:47:44 -04:00
Pietro Gagliardi e916c2f5fc Migrated uipriv_windows.h. Mostly. 2016-04-23 15:46:39 -04:00
Pietro Gagliardi 0e24e16bda Converted the uiArea files to C++. Now to fill in the header files... 2016-04-23 15:39:51 -04:00
Pietro Gagliardi 686e1ee58b "Migrated" menu.c. That just leaves the uiArea code and patching up holes in the header files, then we can test the build and further refine everything. 2016-04-23 15:26:57 -04:00
Pietro Gagliardi 2c097f5587 Mostly migrated draw.c. 2016-04-23 12:47:15 -04:00
Pietro Gagliardi a8b6cab2ab Did a proper migration of d2dscratch.c. 2016-04-23 11:50:47 -04:00
Pietro Gagliardi fbef804608 Quick and dirty C++ conversions of box.c, tab.c, and window.c. I feel like I need another rewrite... 2016-04-23 11:22:46 -04:00
Pietro Gagliardi ff096410a8 More migrations. 2016-04-22 22:20:02 -04:00
Pietro Gagliardi f829a06a7c Migrated child.c. Ugh... 2016-04-22 21:36:19 -04:00
Pietro Gagliardi 805e5f9811 Migrated spinbox.cpp. Now for the containers I guess... 2016-04-22 20:47:29 -04:00
Pietro Gagliardi 5d954712ea Migrated datetimepicker.c. 2016-04-22 20:40:16 -04:00
Pietro Gagliardi 955203bfb8 Migrated container.c and radiobuttons.c. 2016-04-22 20:37:28 -04:00
Pietro Gagliardi 6ec5f4800d Migrated simple controls to C++. 2016-04-22 20:14:12 -04:00
Pietro Gagliardi b514ba7cb0 Got rid of UtilText and UtilSetText. 2016-04-22 20:04:30 -04:00
Pietro Gagliardi b49091b897 Migrated label.c and separator.c. 2016-04-22 20:03:10 -04:00
Pietro Gagliardi 1ada1b346c Migrated resize.c. 2016-04-22 19:51:33 -04:00
Pietro Gagliardi 027d1f15ee Migrated parent.c. 2016-04-22 18:11:20 -04:00
Pietro Gagliardi 9e90475e11 Migrated stddialogs.c. 2016-04-22 17:49:14 -04:00
Pietro Gagliardi 02b5285aa0 Some more filter procedure rewriting, preparing for the future dialog message hack attempt. 2016-04-22 14:56:09 -04:00
Pietro Gagliardi 960533ab1f Abstracted out the message filter stuff so we can add a dialog message filter to allow tab navigation anywhere next. 2016-04-22 14:36:21 -04:00
Pietro Gagliardi 6124d45c62 Migrated main.c. 2016-04-22 14:06:22 -04:00
Pietro Gagliardi 0e85afb3ff Migrated utilwin.c. 2016-04-22 13:52:02 -04:00
Pietro Gagliardi 7a4c73ff92 Migrated init.c. 2016-04-22 13:31:33 -04:00
Pietro Gagliardi 57fbea1f3e Added utf16dup(). Completely forgot about this. 2016-04-22 13:01:55 -04:00
Pietro Gagliardi 277fa5d6bd Migrated control.c, I think. Changing the current way uiControl works will wait for another branch. 2016-04-22 12:44:18 -04:00
Pietro Gagliardi dafdaa4de4 Migrated text.c. 2016-04-21 23:29:44 -04:00
Pietro Gagliardi 63ce320021 Migrated util.c. 2016-04-21 23:05:10 -04:00
Pietro Gagliardi f3cf43da21 Migrated debug.cpp. 2016-04-21 21:57:36 -04:00
Pietro Gagliardi 9c9dc9a23e Added line ending manipulation routines now, just to be sure. 2016-04-21 18:10:30 -04:00
Pietro Gagliardi eb48bc1732 Wrote up a utf16 with conversion and allocating-sprintf() functions. Changed the way deubgging will work. 2016-04-21 18:03:52 -04:00
Pietro Gagliardi 35b2b490bb Changed complain() for bugs in libui and control implementations to implbug(). 2016-04-21 16:29:34 -04:00
Pietro Gagliardi 3b4eeee7bb Whops, left some stuff over in events.cpp. Also added a comment. 2016-04-21 15:01:05 -04:00
Pietro Gagliardi a8e897c1ec Started rewriting ui_windows.h and uipriv_windows.h(pp). 2016-04-21 12:55:09 -04:00
Pietro Gagliardi 82b1b363f2 Quick fix in events.cpp. 2016-04-21 12:22:02 -04:00
Pietro Gagliardi 99aba5a3b8 Got rid of all the template cruft and other nonsense from events.cpp. 2016-04-21 12:20:37 -04:00
Pietro Gagliardi df190dc368 Templatized this. I feel dirty. 2016-04-21 11:22:34 -04:00
Pietro Gagliardi 87c2c4f3f7 "Moved" events.c to C++. 2016-04-20 22:10:04 -04:00
Pietro Gagliardi b9384c0e32 Quick fixes to the previous commit. 2016-04-20 20:21:57 -04:00
Pietro Gagliardi 6b7b5de743 Migrated alloc.c to C++. This is working already :v 2016-04-20 20:20:10 -04:00
Pietro Gagliardi 55116199ac Pruned, organized, and formatted winapi.hpp. 2016-04-20 19:51:30 -04:00
Pietro Gagliardi a7ff1e7c78 Moved the files that are already C++ out of the way so we can migrate them later and separate them from the already-migrated files. 2016-04-20 19:41:14 -04:00
Pietro Gagliardi 09c1a62a8e Moved most of the headers to C++. 2016-04-20 19:39:20 -04:00
Pietro Gagliardi 655e05463d Implemented the new font button stuff on Windows. 2016-04-20 14:17:55 -04:00
Pietro Gagliardi 721269b3eb Implemented colored text on OS X and Windows. 2016-04-19 18:45:16 -04:00
Pietro Gagliardi 5b74b2752e Decided to use character offsets instead of byte offsets for text layout attributes. This removes the shaky code from the OS X and Windows backends to compute a list of character offsets for byte offsets. The equivalent code for GTK+ to convert chars to bytes will be much more solid; it will be written next. 2016-04-19 14:39:33 -04:00
Pietro Gagliardi a1d0e669c8 Added some helpers for actually returning a font from the font button on Windows. Similar helpers are needed on other platforms. 2016-04-18 19:18:29 -04:00
Pietro Gagliardi 861b5f22df Finished changing the Windows font dialog and uiFontButton to manipulate IDWriteFonts directly. 2016-04-18 17:14:33 -04:00
Pietro Gagliardi b19a8c9c46 Okay, I made a mistake: we want uiFontButton to return uiDrawFonts, not uiDrawFontDescriptors. Started the work to change the Windows one likewise. 2016-04-18 15:31:52 -04:00
Pietro Gagliardi ccfa3d41a3 More work on the initial font and showing styles. I have a feeling my current approach is a mistake. 2016-04-18 13:32:48 -04:00
Pietro Gagliardi 4d025172fe And brought the new font out of the font dialog and into the font button. We should be good now... 2016-04-18 01:12:25 -04:00
Pietro Gagliardi dcbbced23b Implemented loading of the font dialog font. Now to save it too. 2016-04-18 00:56:13 -04:00
Pietro Gagliardi 97aad9a039 Added support routines for migrating DirectWrite attributes. 2016-04-18 00:41:17 -04:00
Pietro Gagliardi 7cf8420682 Hooked the Windows font button and font dialog together at last. More TODOs. Now we just need to actually convert everything to DirectWrite and implement the label. 2016-04-17 22:09:18 -04:00
Pietro Gagliardi 40d673fb01 Implemented the correct behavior for the initial display of the size combobox of the font dialog. At this point we can move straight to manipulating the uiDrawFontDescriptors. 2016-04-17 21:11:55 -04:00
Pietro Gagliardi 0e75a6f950 Properly implemented the size combobox. We're so close! 2016-04-17 20:10:14 -04:00
Pietro Gagliardi 39ea7e269f Implemented nearest style matches when changing families. Wow we're actually almost done here! 2016-04-17 19:37:03 -04:00
Pietro Gagliardi 156fae7bbb Implemented events and type-to-select for the Style combobox. 2016-04-17 19:22:37 -04:00
Pietro Gagliardi aa6778acbe Implemented type-to-search in the font dialog. 2016-04-17 19:03:34 -04:00
Pietro Gagliardi edef521ded Quick TODO resolution. 2016-04-17 16:49:50 -04:00
Pietro Gagliardi d45fdb4a3d Migrated the font dialog from drawing its own sample text to having a D2D scratch control do it. 2016-04-17 13:06:45 -04:00
Pietro Gagliardi 3bb2a0ab21 Added a Direct2D scratch control that will be used by the font and color dialogs we will implement. 2016-04-17 11:53:24 -04:00
Pietro Gagliardi cc7675ab5a More font dialog work: split out all the combobox manipulation functions into their own function, made the current selection part of the structure, made the font families item data to the family combobox, and changed the font face string function to use the dedicated font face string method (thanks Windows 7 ChooseFont sample program). 2016-04-17 01:34:05 -04:00
Pietro Gagliardi 46db0b30ee Oh fixed the font dialog not showing all styles thing; stupid me forgot that a IDWriteFontFamily is also a IDWriteFontList. 2016-04-16 22:46:39 -04:00
Pietro Gagliardi 9a1367c0bc More font dialog work. Ugh if only I could just use the Windows 7 sample code one... 2016-04-16 22:15:19 -04:00
Pietro Gagliardi f3ae17793d Quick compilation fixes. I really don't know what I'm doing right now. 2016-04-16 19:25:21 -04:00
Pietro Gagliardi ecbdddb703 More sample work. Ugh this is a mess I should just use Direct2D after all. 2016-04-16 19:07:17 -04:00
Pietro Gagliardi 351fc59b9f Started work on previewing samples of fonts in the new font dialog. This adds all the boilerplate, including sample positioning. Also tightens up the dialog a bit. Now just to implement the actual drawing. 2016-04-16 17:58:45 -04:00
Pietro Gagliardi 23ec771c86 Removed uiFontDescriptor.SmallCaps; on Windows this has to be applied to layouts. 2016-04-15 14:23:16 -04:00
Pietro Gagliardi cedb5394b4 Removed the small caps checkbox from the new font dialog. It turns out that the small caps in DirectWrite is applied to a text layout, not a part of a font like it is elsewhere. Do we even still need the custom font dialog? 2016-04-15 13:57:26 -04:00
Pietro Gagliardi 0ad767721d More font dialog stuff. 2016-04-15 13:18:06 -04:00
Pietro Gagliardi fa94298015 Split the function to extract the correct string of an IDWriteLocalizedStrings instance out into its own function. I'm not sure if I'll need the informational strings out of a font (need to see what the strings actually say first), but in case I do, this will help. 2016-04-15 10:15:05 -04:00
Pietro Gagliardi 0bc140cd46 Dropped uiDrawTextGravity. That has to do with vertical text, which we can both abstract into a higher level API and can't do yet because DirectWrite simply does not support vertical text on Windows 7 for reasons that escape logical thought. 2016-04-15 00:24:27 -04:00
Pietro Gagliardi 8ac3c53e0f More fontdialog.cpp work. This is gonna kill me... 2016-04-14 22:40:01 -04:00
Pietro Gagliardi d3c4b0cf4d More work on fontdialog.cpp. 2016-04-14 22:25:32 -04:00
Pietro Gagliardi 97d35571c1 Started writing a replacement for the standard ChooseFont() dialog that uses DirectWrite instead of GDI. 2016-04-14 21:35:50 -04:00
Pietro Gagliardi 88e797e2be Split the DirectWrite boilerplate to another C++ file so we can write a new font dialog with it, maybe. 2016-04-14 19:57:58 -04:00
Pietro Gagliardi edd9b2f133 "Implemented" uiFontButton on Windows. 2016-04-14 17:12:13 -04:00
Pietro Gagliardi 7f2194c383 Typo fixes in the previous commit. 2016-01-24 21:50:10 -05:00
Pietro Gagliardi ab0230b428 Added a function for scrolling uiAreas. Implemented on OS X; stubbed elsewhere. 2016-01-24 21:41:34 -05:00
Pietro Gagliardi a3344f0341 Two important changes to the Windows build:
1) cvtres is no longer used directly. MSDN says to send the .res files to link.exe; that runs cvtres for us (at least it seems to, accoring to Google results for error LNK1158). It'll also avoid some of the weird warnings in cvtres, like CVT4001.

2) (and more important, but it depended on 1) Command-line switches are now passed using - instead of /. This is because some versions of MinGW are buggy and treat anything that starts with a / as a MSYS filename that needs to be converted to a Windows pathname.

Update #16.
2016-01-19 16:40:00 -05:00
Pietro Gagliardi cb8323bee6 Decided that yes, for a single line the leading should not be included. 2016-01-16 18:22:27 -05:00
Pietro Gagliardi 32cc648e13 Diagnosed the root cause of an issue in a TODO; still need to fix it. 2016-01-16 16:48:10 -05:00
Pietro Gagliardi eb6e10350d Implemented the multiline stuff on Windows. Oh boy this is so broken everywhere... 2016-01-16 16:42:33 -05:00
Pietro Gagliardi 06fa877058 Updated an error message. 2016-01-14 03:29:08 -05:00
Pietro Gagliardi 454fabaf2b Implemented metrics on Windows and fixed Unicode conversion in uiDrawNewTextLayout(). 2016-01-13 00:54:52 -05:00
Pietro Gagliardi 09458c794a Ported the new drawing system to Windows. 2016-01-12 18:14:48 -05:00
Pietro Gagliardi 0ec7d91e22 Filled in the text coordinate conversion functions on Windows. 2016-01-09 18:22:51 -05:00
Pietro Gagliardi ef54b99b93 Fixed text rendering on Windows. Woo, it all works so far! 2016-01-09 02:23:01 -05:00
Pietro Gagliardi a826fd7516 Wrote the text drawing code on Windows. Now to build and test. 2016-01-09 01:07:48 -05:00
Pietro Gagliardi 6a15e23897 Set up saner handling of sonames at build time. 2016-01-05 11:51:36 -05:00
Florent Clairambault e24c8f6440 Merge remote-tracking branch 'upstream/master' 2016-01-02 13:27:08 +01:00
Florent Clairambault c204e47b72 Various fixes around makefiles
* $PREFIX is uppercase (I have no idea why I put it lowercase before).
* "install" rules is OS specific and moved to new OS specific files. So that they can be included last.
* "examples" rule defines the list of examples to execute.
* Travis launches the "test" rule.
2016-01-01 23:19:14 +01:00