Pietro Gagliardi
c720e8147b
Figured out what's going on. No clue how to fix it.
2017-01-20 20:57:20 -05:00
Pietro Gagliardi
87b7d5b4b7
Decided to remove uiDrawTextLayoutByteIndexToGraphemeRect(); the Range one later on handles it. Now we can do the hit testing functions!
2017-01-20 19:34:16 -05:00
Pietro Gagliardi
fc7fcd9f05
And implemented metrics stuff on Windows.
2017-01-20 18:09:06 -05:00
Pietro Gagliardi
2d09f22932
Added a debugging guide for Windows. Will have to investigate this more, because I can't find any information online that suggests Direct2D should not respect clipping when drawing text :S Also more TODOs.
2017-01-20 12:46:00 -05:00
Pietro Gagliardi
88ea7c4665
Fixed runtime errors. Yay it works on all platforms now! Also more TODOs. Now the real work is getting the rest of the functionality in.
2017-01-20 04:34:15 -05:00
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
52d88d3f36
Re-added the table code. Need to patch together everything else, but.
2016-11-27 17:36: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
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
Pietro Gagliardi
5d40eff32a
Added Windows 7 compatibility to the manifest.
2015-12-31 19:58:03 -05:00
Pietro Gagliardi
c5d4813dec
Stubbed out the text drawing functions on Windows too.
2015-12-31 12:30:53 -05:00
Pietro Gagliardi
6a5997cc1a
More notes.
2015-12-23 15:22:01 -05:00
Pietro Gagliardi
5698d84cf3
More text rendering stuff. And given how it appears I have to render DirectWrite data into a Direct2D path geometry, I might be a little bit too much in over my head here...
2015-12-23 15:19:40 -05:00
Pietro Gagliardi
9efb452b2e
Implemented the font family listing on Windows.
2015-12-22 20:01:53 -05:00
Pietro Gagliardi
5267489f0b
Now entering Valhalla.
2015-12-22 16:00:51 -05:00
Pietro Gagliardi
a1d2c2b9fd
Oh that's fucking wonderful, dwrite.h is C++-only. This is gonna make things extra wonderful...
2015-12-22 15:51:16 -05:00
Pietro Gagliardi
e63f73e240
TODO elaboration.
2015-12-22 01:06:18 -05:00
Pietro Gagliardi
51d7cabfd9
More TODOs.
2015-12-22 01:02:06 -05:00
Pietro Gagliardi
0b68fc6931
More TODOs.
2015-12-22 00:43:48 -05:00
Pietro Gagliardi
f04bbe1bdc
Laid the foundation for text rendering into uiAreas on Windows. GTK+ and Cocoa backends need no special setup (we can start using Pango and Core Text respectively without extra initialization). Not sure when I'll actually add the APIs to draw text, but hopefully it's soon because I really really really need to start working on what I was actually going to USE this library for, and text rendering is the last major prerequisite.
2015-12-22 00:35:52 -05:00
Pietro Gagliardi
af374ed859
Implemented redrawing on scrolling and adjusting scrolling on resizing and actually implemented scrolled drawing correctly on uiArea on Windows.
2015-12-19 14:43:34 -05:00
Pietro Gagliardi
13fa2e213d
Took scrolling into account on uiArea with drawing (untested) and mouse events (tested). This is the preliminary work for moving scrolling from pixels to DIPs. But first, a test of scrolled drawing.
2015-12-18 22:06:48 -05:00
Pietro Gagliardi
adc72c9d0b
Implemented the other areautil.c functions.
2015-12-18 21:38:27 -05:00
Pietro Gagliardi
5e90cbcb93
Started a windows/areautil.c for miscellaneous functions, mostly (completely for now) having to do with coordinates and sizes. Right now it only has renderTargetGetSize().
2015-12-18 21:15:40 -05:00
Pietro Gagliardi
444a7d3045
Fixed mouse capture behavior. It's not as clean as it could be, but it'll do.
2015-12-18 19:38:21 -05:00
Pietro Gagliardi
4b114f2764
Started the implementation of mouse crossing on Windows.
2015-12-18 18:06:45 -05:00
Pietro Gagliardi
ce042eb12a
Added an expository comment to windows/area.c.
2015-12-18 15:05:49 -05:00
Pietro Gagliardi
4edcddce14
Fixed the ID2D1RenderTarget::GetSize() madness a *SECOND* time. Urgh. Also removed a now-irrelevant TODO.
2015-12-18 15:04:37 -05:00
Pietro Gagliardi
6d06e15390
More Windows uiArea migration and compiler error fixes. Now to figure out what happened with GetSize again...
2015-12-18 14:21:35 -05:00
Pietro Gagliardi
e76b34b670
Split windows/area.c into a bunch of files to make it much more manageable. Also did half of the migration to the new uiArea system.
2015-12-18 12:00:46 -05:00
Pietro Gagliardi
e390730e6f
Reestablished the Windows build. Also fixed a small bug in windows/area.c. Now to re-establish the test!
2015-12-11 19:49:14 -05:00
Pietro Gagliardi
70886e4ade
Moved the old build files away. Yes that's right folks, we're redoing the build system *again*! Isn't that *fun*?
2015-12-10 18:49:50 -05:00
Pietro Gagliardi
919e5f09cd
Double-correction of previous commit.
2015-12-09 15:38:24 -05:00
Pietro Gagliardi
5f530c5bf7
More MinGW stuff.
2015-12-09 15:36:56 -05:00
Pietro Gagliardi
be6555d885
More MinGW removal stuff.
2015-12-09 15:31:14 -05:00
Pietro Gagliardi
5e26720f18
Removed $ARCH from the build.
2015-12-09 13:49:13 -05:00
Pietro Gagliardi
0307e74e90
Added uiMultilineEntry on Windows. Fixed a misuse of std::condition_variable in the uiQueueMain test program.
2015-12-06 14:38:13 -05:00
Pietro Gagliardi
3394142357
Some TODO expansion. This was the active tab on my browser the whole time and I didn't even notice!
2015-12-05 20:37:29 -05:00