Commit Graph

200 Commits

Author SHA1 Message Date
Pietro Gagliardi 2870f3239d More TODOs. 2016-04-24 13:32:20 -04:00
Pietro Gagliardi 712be2608e Got rid of the type checking stuff from ui.h. 2016-04-24 13:31: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 cfa1b6bf0a Added uiFontButtonFont() and uiFontButtonOnChanged(); implemented on OS X. 2016-04-20 13:40:54 -04:00
Pietro Gagliardi 7a568f6bf4 Added the first text layout attribute: foreground color. Now to implement. 2016-04-19 15:38:24 -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 23ec771c86 Removed uiFontDescriptor.SmallCaps; on Windows this has to be applied to layouts. 2016-04-15 14:23:16 -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 423719b21f Started adding uiFontButton. Duplicated Page 9 to Page 10 to test it. 2016-04-14 12:54:37 -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 b5292e4e80 More TODOs. 2016-01-15 20:19:56 -05:00
Pietro Gagliardi c0db113367 Started adding support for multiline uiDrawTextLayouts and extracting the extents from them. 2016-01-14 20:02:01 -05:00
Pietro Gagliardi d6063394ee Implemented the metrics stuff on OS X and improved the test a bit. 2016-01-12 22:07:24 -05:00
Pietro Gagliardi a082469cf8 Started working on text metrics support. 2016-01-12 21:52:45 -05:00
Pietro Gagliardi 980f5a7419 Some more text API changes. 2016-01-10 21:02:40 -05:00
Pietro Gagliardi 2342f191f4 More TODOs. Big TODOs. 2016-01-09 20:58:52 -05:00
Pietro Gagliardi 9b1b7ce365 More TODOs. 2016-01-09 18:36:21 -05:00
Pietro Gagliardi ca514d94d1 Set up a proper, formal layout and attirbute system. No attributes right now, but initial font style is in. Implemented it on GTK+. 2016-01-07 18:37:43 -05:00
Pietro Gagliardi 6f10fcaee7 Trivial change: Windows sizing stuff gone. 2016-01-04 16:13:54 -05:00
Pietro Gagliardi 353afcd464 Added the Language field to the text styles list. 2015-12-24 22:31:32 -05:00
Pietro Gagliardi 6ef404c2dd Implemented the basic uiDrawText() function on GTK+. It looks like I missed some PangoAttributes; I'll add those in next. 2015-12-24 19:48:57 -05:00
Pietro Gagliardi 280ef464f6 Started work on text rendering. Right now, features match Pango; they will be stripped as needed. Also I never committed test/page8.c; whoops. 2015-12-24 18:05:16 -05:00
Pietro Gagliardi 5d47fcab5a Implemented the font family enumerator on GTK+. 2015-12-22 19:17:27 -05:00
Pietro Gagliardi 9987c98dcd Began the work to list font families. This is the first of the text rendering work. 2015-12-22 19:01:56 -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 e167b08fdb Finished reimplementing the GTK+ uiArea. Now to build. Then to rewrite the tests... 2015-12-17 19:16:30 -05:00
Pietro Gagliardi e9247858d4 Forgot a parameter in uiAreaHandler.MouseCrossed(). 2015-12-17 14:20:17 -05:00
Pietro Gagliardi 4e015cf4d6 More parameter updating. 2015-12-17 13:54:54 -05:00
Pietro Gagliardi 12a94404aa Set up a new infrastruture which allows both scrolling and non-scrolling areas AND mouse entered/exited events. 2015-12-17 13:50:07 -05:00
Pietro Gagliardi 2705f93305 Added uiMultilineEntry, wrote it on GTK+, and wrote the uiQueueMain() test. It works on Unix. 2015-12-06 01:18:32 -05:00
Pietro Gagliardi 994d43c00e More TODOs. 2015-12-05 18:42:28 -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 d12974eef1 More TODOs. 2015-12-04 21:11:43 -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 0bcd620a62 Started a change which will allow a parent of the standard dialogs to be specified. 2015-11-27 23:23:54 -05:00
Pietro Gagliardi 4d3d80736b Fixed stupid STUPID **STUPID** C and C++ language bullshit. 2015-11-17 20:01:01 -05:00
Pietro Gagliardi a9316a04b0 Added C++ extern guards. 2015-11-16 10:55:44 -05:00
Pietro Gagliardi 5e29d07d20 Moved all the table stuff out of the way. I need to decide what I'm going to do with it. 2015-11-16 10:52:19 -05:00
Pietro Gagliardi 5d26b9b059 Finished the uiTable test and fixed errors. 2015-10-19 10:52:36 -04:00
Pietro Gagliardi 056db88de0 More uiTable work. I'm not too happy anymore... 2015-10-18 18:55:06 -04:00
Pietro Gagliardi 66cd3542bc Reworked the table model system a bit. 2015-10-18 18:05:38 -04:00
Pietro Gagliardi 4577cb79a1 Started the GTK+ implementation of uiTable and added uiTableSubscriptions. This is a mess already :D 2015-10-18 13:59:38 -04:00
Pietro Gagliardi 60accb0676 Set up the API for tables. 2015-10-18 11:21:56 -04:00
Pietro Gagliardi 8119a69572 Implemented dashing on Windows. 2015-10-16 10:46:26 -04:00
Pietro Gagliardi 1cadb85bd0 Added line dashing and implemented it on GTK+. 2015-10-16 10:09:41 -04:00
Pietro Gagliardi 6849b01f73 Switched coordinates to floating-point drawing space and implemented such on GTK+. 2015-10-14 08:49:06 -04:00
Pietro Gagliardi a504bcee40 More TODOs. 2015-10-13 22:17:25 -04:00
Pietro Gagliardi 2cbbc6c69d Removed the DPI fields from uiAreaDrawParams. We no longer worry about DPI. 2015-10-13 19:44:16 -04:00
Pietro Gagliardi cc827919b8 Added uiDrawClip() and implemented it on GTK+. 2015-10-13 11:16:06 -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 46e3fee40d Added a center point to scaling transforms. Fixed rotations on GTK+. 2015-10-12 01:43:12 -04:00
Pietro Gagliardi 15c00330d6 Added a parameter for negative arcs. 2015-10-11 21:15:08 -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 87680a6470 Built the framework for matrices and transformations and implemented it on the GTK+ backend. Tests to come next. 2015-10-11 11:13:01 -04:00
Pietro Gagliardi 87e51487f6 More drawing tests. 2015-10-10 13:01:48 -04:00
Pietro Gagliardi 0ebb5b914b More TODOs. 2015-10-09 23:19:21 -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 fc502b178b More drawing tests. There is defintely something wrong with arcs. 2015-10-09 17:32:26 -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 581cbaecc9 Added uiComboboxSetSelected(), which we need for the uiArea drawing tests. Will implement next. 2015-10-09 13:47:02 -04:00
Pietro Gagliardi ef04c18856 Merged the GTK+ uiArea implementation with its backend. Now we just have to move the test program. 2015-10-08 18:24:09 -04:00
Pietro Gagliardi cb58ced9d9 Started merging uiArea back into main. ui.h merged. 2015-10-08 18:03:24 -04:00
Pietro Gagliardi 26e90f0b51 Started uiCombobox querying and events. Needed for the uiArea tests. 2015-10-08 14:23:04 -04:00
Pietro Gagliardi 54332b90fb Finally merged out the redo folder. 2015-09-02 13:48:06 -04:00
Pietro Gagliardi 2f785c9a09 Converted ui.h to a pgidl file. 2015-04-15 18:41:04 -04:00
Pietro Gagliardi 4d6571e807 Changed uiStackAdd() to uiStackAppend() and uiStackRemove() to uiStackDelete(); this will be the naming system other containers will follow. 2015-04-14 19:37:41 -04:00
Pietro Gagliardi 4313f745e1 More TODOs. 2015-04-14 13:04:51 -04:00
Pietro Gagliardi 204f450ff8 More parent planning and related API changes. I now have a better handle over what I want after last night: p.SetChild() is only called by w.SetChild() and the various uiTab and uiGroup methods; everything else should call Control.SetParent(). Some renaming is needed. 2015-04-14 09:41:52 -04:00
Pietro Gagliardi 79f0650fee Added uiStackRemove(), the first removal function in package ui! That took long enough... Now I can piece together all the control and parent logic... 2015-04-13 13:43:29 -04:00
Pietro Gagliardi 524a8c88bb Fixed build issues. Now to fix runtime issues... 2015-04-12 22:57:05 -04:00
Pietro Gagliardi f7b3e06147 Some more uiParent migration. 2015-04-12 20:08:32 -04:00
Pietro Gagliardi 5c6d2533ac Set up the foundation for the new Windows uiParent. 2015-04-12 19:19:06 -04:00
Pietro Gagliardi 2209039a6b Set up a unified system for containers, now called parents. 2015-04-12 18:34:54 -04:00
Pietro Gagliardi 4a1d80dcae Laid the foundation for tabs. 2015-04-12 00:30:44 -04:00
Pietro Gagliardi 80c17ebf71 Set up the foundation for uiLabel. 2015-04-11 21:53:49 -04:00
Pietro Gagliardi 37975ae082 Laid the foundation for control showing, hiding, enabling, and disabling. 2015-04-11 14:12:12 -04:00
Pietro Gagliardi 6277c34337 Decided to kill uiInitError and return the message as a const char * instead. Will need to implement on Windows. 2015-04-10 16:54:06 -04:00
Pietro Gagliardi 6f5b5dc4e4 Decided that uiCheckboxSetChecked() should NOT trigger an event. This required changing the GTK+ backend to make it so; the Windows and Mac OS X backends are fine (setting their checkbox state programmatically will not send a signal; thanks to ThunderSnow in irc.freenode.net/#macdev for confirming this for Mac OS X). 2015-04-09 23:48:04 -04:00
Pietro Gagliardi 4e03a117da Changed the allocation logging from a compile-time setting to the first initialization option. 2015-04-09 22:38:11 -04:00
Pietro Gagliardi 759feeb7a1 Added uiWindowMargined() and implemented it on all platforms. 2015-04-09 21:11:56 -04:00
Pietro Gagliardi 5c2ead2fea Added uiStackPadded(). 2015-04-09 20:04:18 -04:00
Pietro Gagliardi d84df8f38f Finished Windows conversion. Works perfectly! 2015-04-09 17:57:08 -04:00
Pietro Gagliardi 6d600f08cd Big change time: decided to stop playing around with hiding and made both uiControl and uiSizing public. Also restructured uiSizing to make system-dependent data in another structure. 2015-04-09 16:37:04 -04:00
Pietro Gagliardi 1575a0dc7c Implemented padding in uiStack. 2015-04-09 15:59:40 -04:00
Pietro Gagliardi 4c13ac57d5 Added uiWindowSetMargined(). 2015-04-09 13:42:42 -04:00
Pietro Gagliardi f5745325b2 Implemented uiCheckbox(Set)Checked() on Mac OS X. 2015-04-09 13:01:23 -04:00
Pietro Gagliardi 3d3d84c146 Added uiCheckboxChecked() and uiCheckboxSetChecked(). 2015-04-09 12:52:34 -04:00
Pietro Gagliardi 69b794c0b0 Implemented uiCheckbox on Windows. Fixed build issues in the test program. 2015-04-09 12:32:59 -04:00
Pietro Gagliardi c2d98a8b0e Added uiCheckboxOnToggled(). 2015-04-09 12:26:59 -04:00
Pietro Gagliardi 8d30e1df39 Added a checkbox to the test program. It won't do anything just yet... 2015-04-09 12:14:18 -04:00
Pietro Gagliardi ba66d7308a Re-enabled the text manipulation code in the test program. 2015-04-09 02:43:49 -04:00
Pietro Gagliardi 9f645e3ad3 Decided to call it uiEntry for now. 2015-04-08 23:22:59 -04:00
Pietro Gagliardi ae31cbc089 Decided not to take the suggestions of some TODOs in ui.h. 2015-04-08 19:53:15 -04:00
Pietro Gagliardi df4c5f270c Started work on ensuring things get cleaned up. Added a destroy() method to uiControl and implemented most of the work for Windows. 2015-04-08 00:43:35 -04:00
Pietro Gagliardi 6370c7d063 Added uiStack. Not yet tested; need to do a few things first. 2015-04-07 18:53:09 -04:00
Pietro Gagliardi 978e9b5e94 Added uiControlHandle() and fixed other uiButton issues. 2015-04-07 04:12:03 -04:00
Pietro Gagliardi 5b36956ecb Wrote up the initial uiButton implementation. It (mostly; just needs text and for that I need to add a uiControlHandle()) works! 2015-04-07 04:02:21 -04:00
Pietro Gagliardi a09430113f Fixed build issues. Now I just need to hook resizing into uiWindow and implement a control and we'll be set... 2015-04-07 03:12:34 -04:00
Pietro Gagliardi fc19f776c4 Started doing the C rewrite. Defined the basic initialization and main loop and window API and implemented them on GTK+. 2015-04-06 12:20:51 -04:00