Commit Graph

342 Commits

Author SHA1 Message Date
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
Pietro Gagliardi c5eef23930 More TODOs. 2015-12-05 20:31:57 -05:00
Pietro Gagliardi 88f9c7ea19 Quick comment update for previous commit. 2015-12-04 23:49:04 -05:00
Pietro Gagliardi f77955aefb Added uiQueueMain() (basically g_idle_add()) and implemented it on all platforms except Haiku. A test to come. After this we can start rewriting the Go package ui at long last. 2015-12-04 23:42:03 -05:00
Pietro Gagliardi 8084041139 Removed uiAreaHandler.RedrawOnResize(); Direct2D requires us to always redraw on resize (see previous commit). Added windows/amd64 to the example makefiles and updated them to use libui.xxx instead of new.xxx. 2015-12-04 21:04:51 -05:00
Pietro Gagliardi c2100a19be Implemented some changes to uiArea on Windows, thanks to instructions from Rick Brewster. Removing uiAreaHandler.RedrawOnResize() comes next. 2015-12-04 20:45:31 -05:00
Pietro Gagliardi d1c93a9956 Made relayouts on Windows faster by preventing an accidental requeue of a window that's being processed in the event that a layout change changes the minimum size (such as switching tabs). 2015-12-04 19:34:51 -05:00
Pietro Gagliardi d9343c0b4b More TODOs. 2015-11-30 09:12:56 -05:00
Pietro Gagliardi bf35167d40 More TODOs. 2015-11-28 16:36:08 -05:00
Pietro Gagliardi e6e264408f Implemented dialog parenting on Windows. Eliminated the dialog helper. uiArea still works (and still responds to key events), but IsDialogMessage() isn't being called for the active window anymore... 2015-11-28 10:53:48 -05:00
Pietro Gagliardi 7646e8303d Fixed a small bug in the uiArea message filter. 2015-11-27 23:00:57 -05:00
Pietro Gagliardi 09129229fd Fixed assorted MSVC uiArea issues. 2015-11-27 22:44:42 -05:00
Pietro Gagliardi 14887ad7e3 Fixed a logical error in the uiArea message filter. 2015-11-27 21:53:17 -05:00
Pietro Gagliardi 3a5a4557ab Switch uiArea from using a custom message pump to using a message filter for input handling. This allows us to rewrite the dialog system to avoid needing to block ALL windows and set a proper parent window. 2015-11-27 21:45:30 -05:00
Pietro Gagliardi f5a2759b09 Dropped utarray in favor of our ptrArray. This should get rid of our strdup woes. 2015-11-27 20:38:21 -05:00
Pietro Gagliardi 99176a1d10 Disabled compiler warnings for system headers on MSVC. Removed /Wp64; it's a no-op on VS2013 (our minimum supported version). 2015-11-27 20:07:23 -05:00
Pietro Gagliardi d29d36a6cd Fixed assorted build errors in the MSVC build. It works! And MinGW-w64 will need isolation awareness... 2015-11-27 19:59:46 -05:00
Pietro Gagliardi abd99a325b Integrated the Common Controls 6 manifest into libui.dll. While it does work, themes don't work, and I wonder if it's because of isolation awareness. Time to write an nmakefile! 2015-11-27 13:35:24 -05:00
Pietro Gagliardi b8be92bc45 More notes. 2015-11-27 12:35:23 -05:00
Pietro Gagliardi bd354fd651 More TODOs. 2015-11-27 12:21:40 -05:00
Pietro Gagliardi f93d9a4c91 More WPF foundations/boilerplate work. 2015-11-25 14:38:40 -05:00
Pietro Gagliardi 980b93381b Fixed alpha transparency on Haiku, or so it seems. Assorted other notes too. 2015-11-23 19:12:11 -05:00
Pietro Gagliardi c40e80d5a5 Added C++ to the build and started writing the actual Haiku code. I think this isg oing to have to require a GCC 4 hybrid... 2015-11-17 11:49:23 -05:00
Pietro Gagliardi 858ff1d64f Quick makefile change. 2015-10-17 10:22:43 -04:00
Pietro Gagliardi c9b241a7b6 More makefile work. 2015-10-17 10:20:31 -04:00
Pietro Gagliardi 260a7f4879 More makefile fixes. 2015-10-16 23:33:53 -04:00
Pietro Gagliardi f19d3cd0c7 More makefile work. 2015-10-16 22:49:54 -04:00
Pietro Gagliardi 790edf0df8 Assembled a new make system. Not quite working the way I'd like yet, but definitely a start. 2015-10-16 20:55:09 -04:00
Pietro Gagliardi ab97e26efc Moved all the common stuff in a new folder common/. This is part of the makefile simplification. 2015-10-16 18:31:14 -04:00
Pietro Gagliardi 982bc989cd Cleaned up the makefile a bit. 2015-10-16 18:14:05 -04:00
Pietro Gagliardi b4cbf79cbb Implemented dashing on OS X. 2015-10-16 11:05:08 -04:00
Pietro Gagliardi 8119a69572 Implemented dashing on Windows. 2015-10-16 10:46:26 -04:00
Pietro Gagliardi 2b4ba6ad16 Implemented mouse event coordinates and proper render target size getting on Windows. 2015-10-14 09:31:31 -04:00
Pietro Gagliardi b5ac921988 Implemented clipping on Windows. Phew! 2015-10-13 13:20:25 -04:00
Pietro Gagliardi 2fd6ba8081 Switched from usin ptrarray to maintaining an array of structures to store context state on Windows. This is neeed because an ID2D1DrawingStateBlock does not store the clipping information (in fact, the clipping does not work quite the way we would like it...). 2015-10-13 10:47:54 -04:00
Pietro Gagliardi c6cdabe20d Preparation for proper, extensible state tracking and clipping on Windows. 2015-10-12 21:11:42 -04:00
Pietro Gagliardi dac5eea07a Fixed transforms on Windows. 2015-10-12 12:16:44 -04:00
Pietro Gagliardi 5f2a8474d9 Attempted to get things working on Windows. Result: argggggggggggggggggggggggggggh I need to write a matrix test suite. 2015-10-12 10:30:36 -04:00
Pietro Gagliardi 46e3fee40d Added a center point to scaling transforms. Fixed rotations on GTK+. 2015-10-12 01:43:12 -04:00
Pietro Gagliardi 0989454106 Implemented negative arcs on Windows. 2015-10-11 22:14:27 -04:00
Pietro Gagliardi b09cdb5137 Made 90° point toward y=+∞. 2015-10-11 20:24:06 -04:00
Pietro Gagliardi 0ae3ef918d Implemented the matrix stuff on Windows. Also fixed the signature of uiDrawMatrixSkew(). 2015-10-11 12:36:48 -04:00
Pietro Gagliardi f3a2635f8c Fixed circles in Windows once and for all. 2015-10-11 07:51:14 -04:00
Pietro Gagliardi 6fe77e12f9 More urgent TODOs. Groan... 2015-10-10 21:04:54 -04:00
Pietro Gagliardi 5b37dc9fbe Fully fixed arcs on the Windows backend, for real this time. 2015-10-10 10:48:10 -04:00
Pietro Gagliardi 22b38accee Got the Windows backend's arc code mostly working. It's still 360° arcs that cause problems... 2015-10-10 09:23:44 -04:00
Pietro Gagliardi 73d77ef38b Capped sweeps at 2π radians. 2015-10-09 22:00:41 -04:00
Pietro Gagliardi 2c7ed07747 Changed the arc functions to take a start angle and a sweep amount instead of a start angle and an end angle. This makes it easier to reason about sweeps > 2π radians. 2015-10-09 21:51:43 -04:00
Pietro Gagliardi 7075bea0f5 Added uiAreaQueueRedrawAll() and implemented on all platforms. NOW we can focus exclusively on the test suite. 2015-10-09 15:27:57 -04:00
Pietro Gagliardi 5da68c64b3 Implemented uiComboboxSetSelected() on OS X and Windows; fixed editable combobox minimum widths on OS X. 2015-10-09 14:39:26 -04:00
Pietro Gagliardi 1d4e341583 Fixed a memory leak in the Windows uiArea. 2015-10-09 12:41:01 -04:00
Pietro Gagliardi b0492cbde8 Fixed up more bits of uiArea on Windows. 2015-10-09 11:49:57 -04:00
Pietro Gagliardi e4e72e55bb Merged the Windows uiArea back into the main library. 2015-10-09 11:17:58 -04:00
Pietro Gagliardi e27781cce7 Integrated the test into the main packge. I'll need to handle a few corner cases here... 2015-10-08 19:20:06 -04:00
Pietro Gagliardi eb96d5edb0 Implemented the new combobox stuff on Windows. 2015-10-08 15:42:58 -04:00
Pietro Gagliardi 9dbc8a1ba2 Started writing the Uniscribe gunk. This is a mess... 2015-09-14 22:42:07 -04:00
Pietro Gagliardi c5e4c3a92d Fixed some bugs in the Windows uiArea code. 2015-09-08 12:11:01 -04:00
Pietro Gagliardi dab88e74f2 Fixed uiGroup children positioning on Windows. 2015-09-02 21:29:16 -04:00
Pietro Gagliardi eb7372f7c4 Fixed a memory leak. 2015-09-02 19:46:10 -04:00
Pietro Gagliardi 8df022f806 Fixed up uiSpinbox now that we can do it without having an extra container in the way. 2015-09-02 19:35:34 -04:00
Pietro Gagliardi 7abf662076 More TODOs. 2015-09-02 18:29:14 -04:00
Pietro Gagliardi 80a5f1ac29 More uiRadioButtons work. 2015-09-02 18:26:48 -04:00
Pietro Gagliardi a96e76a4b5 More TODOs. 2015-09-02 16:43:20 -04:00
Pietro Gagliardi 35a4098a35 Made the uiWindow grow when necessary. 2015-09-02 16:26:54 -04:00
Pietro Gagliardi 3f1b72721e Implemented uiTab minimum size and uiWindow resize restriction. 2015-09-02 16:02:06 -04:00