Commit Graph

448 Commits

Author SHA1 Message Date
Pietro Gagliardi be56ec3626 Removed the vertical forms attribute. This is a compatiblity nightmare. 2017-02-24 01:23:47 -05:00
Pietro Gagliardi c111239b0d More TODOs. 2017-02-20 22:25:49 -05:00
Pietro Gagliardi 75c2c80534 And adding the background attributes. We're done with the Pango one! Now for the Windows one... yay. 2017-02-20 22:24:02 -05:00
Pietro Gagliardi 4ba4e4ba23 More attribute implementation. 2017-02-20 20:41:14 -05:00
Pietro Gagliardi 4a1642cea2 Fixed improper breaks in Unix attribute handling. 2017-02-20 19:51:00 -05:00
Pietro Gagliardi d4b38cd3b7 And switched attributes on on GTK+. We have a problem with attributes that span bytes. 2017-02-20 19:28:19 -05:00
Pietro Gagliardi d7a44a5168 Added uiAttribute handling code to the GTK+ backend. Not finished yet; not used yet. 2017-02-20 17:11:52 -05:00
Pietro Gagliardi ea473a3411 Ugh of course I screwed up the malloc() test. Fixed a crash on GTK+ since I guess OS X malloc() autofills to 0? 2017-02-20 15:14:53 -05:00
Pietro Gagliardi 210c4507ca Implemented uiDrawTextLayoutParams and alignment on GTK+. 2017-02-11 21:25:41 -05:00
Pietro Gagliardi 1a8f7ad405 Reimplemented uiFontButton on GTK+. 2017-02-11 14:45:58 -05:00
Pietro Gagliardi b5b0fae052 And implemented uiDrawCaret() on GTK+. 2017-02-10 16:53:08 -05:00
Pietro Gagliardi b52600d9cd Preparation for adding uiDrawCaret(). 2017-02-10 16:16:43 -05:00
Pietro Gagliardi 0e5be32299 And cleaned up the GTK+ code. 2017-02-10 15:49:36 -05:00
Pietro Gagliardi d53bc88f50 And filled in the new functions on GTK+. Not quite right yet... 2017-02-08 21:19:49 -05:00
Pietro Gagliardi 01b6a16af6 And handled caret behavior on GTK+. 2017-02-07 19:14:51 -05:00
Pietro Gagliardi 3d8bf01972 And implemented the hit-testing functions on GTK+. 2017-02-06 10:30:26 -05:00
Pietro Gagliardi c539362c15 Implemented the Pango hit test functions. Now to test. 2017-02-06 10:11:45 -05:00
Pietro Gagliardi d8316790a0 More notes. 2017-01-21 10:21:39 -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 6ccf436206 Implemented Pango text metrics and expanded the drawtext basic page to draw metrics. Works on both Pango and OS X; DirectWrite comes next. 2017-01-20 16:36:44 -05:00
Pietro Gagliardi 5444f76bd3 Started implementing the new text layout stuff on GTK+. The drawtext example works. 2017-01-17 21:06:45 -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 dd339699cd Oops, I forgot to remove the uiImage code from the GTK+ port when splitting uiTable into a branch. Fixed the build for now. Fixes #238. 2016-11-30 09:21:37 -05:00
Pietro Gagliardi 18b103c988 Fully reintegrated the table code. 2016-11-27 17:44:52 -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 211b11b80f Fixed a threading issue in uiQueueMain() on GTK+. 2016-10-31 13:38:38 -04:00
Pietro Gagliardi 22caa5e502 Implemented the window drag stuff on GTK+. It works! 2016-10-25 00:34:12 -04:00
Pietro Gagliardi fc243aed00 Cleaned up debugging code and added the main loop bugfix to the README. 2016-10-24 17:47:23 -04:00
Pietro Gagliardi 0c209a8277 Whoops, bugged that last one bad (yet it worked fine in X11 for some reason????). Fixed. 2016-10-24 15:44:02 -04:00
Pietro Gagliardi 3f1540b84a And got rid of message pumping in unix/window.c. Woo! Gotta clean it up a bit first though... 2016-10-24 14:39:10 -04:00
Pietro Gagliardi e17e69f2ad Let's experiment with making uiWindowSetSize() not require an event loop. 2016-10-23 22:02:07 -04:00
Pietro Gagliardi 57fbf78ef3 More removal. 2016-10-22 19:31:57 -04:00
Pietro Gagliardi f46edd097b uiDrawTextWeightUtraBold. 2016-10-21 16:35:46 -04:00
Pietro Gagliardi 3286c9b572 Merge branch 'master' of github.com:andlabs/libui 2016-08-10 22:08:45 -04:00
Neel Chauhan 7324683ba2 Fix "cannot find -ldl" linking error with FreeBSD 2016-08-10 20:37:42 -04:00
Pietro Gagliardi e20ce4e188 Some TODO resolution. 2016-06-29 19:20:43 -04:00
Pietro Gagliardi 9164e521e2 Changed the button cell renderer on GTK+ to actually work on 3.20. Thanks to baedert in irc.gimp.net/#gtk+ for suggestions. This actually has slightly fewer bugs! 2016-06-29 17:25:05 -04:00
Pietro Gagliardi 4fabbd18cf Split future symbols into a new file and added one we need to fix our button cell renderer on 3.20. 2016-06-29 15:33:30 -04:00
Pietro Gagliardi 6b0028d084 Added uiTable value setting and events on GTK+. 2016-06-28 22:36:56 -04:00
Pietro Gagliardi f484f568f6 Finished up and plugged in cellrendererbutton. 2016-06-28 13:09:44 -04:00
Pietro Gagliardi 575f4f3053 Added a button cell renderer. No events yet. Now to test. 2016-06-28 12:00:35 -04:00
Pietro Gagliardi 8b04f2062a More GTK+ uiTable work. 2016-06-27 19:12:08 -04:00
Pietro Gagliardi cf3182f4d2 Put images on uiTables. We're going to have to swizzle on OS X after all :( 2016-06-27 16:11:15 -04:00
Pietro Gagliardi af0dbd3a0e Fixed a bunch of bugs in GTK+ table.c. 2016-06-27 12:24:14 -04:00
Pietro Gagliardi 40e943eb43 Fixed compile issues. Now to fix other issues. Yay! 2016-06-27 12:01:36 -04:00
Pietro Gagliardi 99a3462eb4 Added GTK+ images. Will hook it up to tables later. 2016-06-27 11:38:11 -04:00
Pietro Gagliardi f7e5c7dd25 Finished the initial implemenetation of uiTable on GTK+. 2016-06-27 09:30:22 -04:00
Pietro Gagliardi f354d48bfd Started the GTK+ implementation of uiTable. 2016-06-26 23:17:34 -04:00
Pietro Gagliardi 2d4f6eb2b8 Stop uiProgressBar pulsing on destroy on GTK+. Fixes #163. 2016-06-21 12:39:53 -04:00
Pietro Gagliardi 10480db895 Call gtk_widget_destroy() instead of g_object_unref() when destroying uiWindows. Fixes #165. 2016-06-21 12:15:38 -04:00
Pietro Gagliardi 9656a81c77 Added uiNewVerticalSeparator(). 2016-06-17 11:02:17 -04:00
Pietro Gagliardi fca6edd5a2 More TODOs. 2016-06-17 09:24:15 -04:00
Pietro Gagliardi ae14542c9a Improved uiMainSteps(). 2016-06-17 09:22:31 -04:00
Pietro Gagliardi cc4c5f7bd5 Tried to see if we can fix up uiMainSteps() to not need parameters after all. Now to actually apply it. 2016-06-17 09:16:30 -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 c001c164f1 Implemented uiMainSteps() on GTK+. 2016-06-16 13:59:35 -04:00
Pietro Gagliardi 256a452fbd Implemented borderless windows on GTK+. 2016-06-16 11:34:19 -04:00
Pietro Gagliardi 132d925b70 Implemented the fullscreen stuff on GTK+. 2016-06-16 10:03:35 -04:00
Pietro Gagliardi 88bb697bbd Implemented the new uiWindow stuff on GTK+. 2016-06-16 00:45:23 -04:00
Pietro Gagliardi 48c13c738a Fixed the GTK+ window code. 2016-06-15 20:45:10 -04:00
emersion 983a53d3c3 Replaces uiProgressBar(Set)Indeterminate() by value=-1 2016-06-15 23:17:23 +02:00
Pietro Gagliardi f98318fb3a Started implementing the new uiWindows stuff on GTK+. 2016-06-15 16:45:49 -04:00
emersion 560cca5bc9 Adds uiProgressBar(Set)Indeterminate for unix 2016-06-15 21:51:08 +02:00
emersion e07a7b3d05 Adds uiProgressBarValue() in unix 2016-06-15 18:51:12 +02:00
Pietro Gagliardi ac1a515820 Merge pull request #141 from ProtonMail/ui-form-delete
Adds uiFormDelete()
2016-06-15 12:00:38 -04:00
emersion 52bd3b2c35 Adds uiFormDelete() 2016-06-14 22:41:37 +02:00
Pietro Gagliardi 6e5cf97623 Tied uiForm label visibility on GTK+ to the visibility of the control. This is the only visibility change needed on GTK+, fortunately. 2016-06-14 11:31:10 -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 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 41ec54cb47 Started a new controlgallery. Fixed some glitches in OS X uiForm. 2016-06-12 19:08:08 -04:00
Pietro Gagliardi 4b149ddfef Implemented uiGrid on GTK+. 2016-06-09 18:57:58 -04:00
Pietro Gagliardi 4b2858b53a Implemented uiForm on GTK+. 2016-06-08 18:19:41 -04:00
Pietro Gagliardi 3e1258cc62 Implemented the new radio button stuff on OS X. 2016-06-06 20:12:17 -04:00
Pietro Gagliardi 5accda32e5 Added new uiRadioButtons functions and implemented them on GTK+. More TODOs. 2016-06-06 18:56:58 -04:00
Pietro Gagliardi 3d5d1408c7 Implemented uiPasswordEntry and uiSearchEntry on GTK+. 2016-06-05 20:54:16 -04:00
Pietro Gagliardi 5c01a8dec3 Re-added the Unix stuff. 2016-06-03 21:14:55 -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 e4a66b786e Fixed static builds, added GTK+ builds, and cleaned out things in general for cmake. 2016-06-01 20:21:10 -04:00
Pietro Gagliardi f2e8dab465 Merge pull request #69 from pcwalton/static
Add support for static linking.
2016-05-29 04:50:48 -04:00
Pietro Gagliardi 6e94671782 More TODO resolution and LONGTERM relegation. 2016-05-28 21:17:54 -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 0d6dac5c5a Migrated from GTK+ 3.4 to 3.10 and from OS X 10.7 to 10.8. 2016-05-28 13:06:16 -04:00
mogucpp 01e126f9cc fix header name 2016-05-26 09:17:34 +08:00
Pietro Gagliardi 5272e749c0 Fixed grapheme stuff on GTK+. 2016-05-25 15:07:32 -04: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 ff1971d8d6 More longterming. 2016-05-24 23:13:44 -04:00
Pietro Gagliardi 8bf24cb791 Implemented uiMainStep() on GTK+. 2016-05-24 22:29:33 -04:00
Pietro Gagliardi e8cedf502f Split uiCombobox on GTK+. 2016-05-24 01:35:05 -04:00
Pietro Gagliardi e3bcf31764 More TODO resolution. 2016-05-23 00:41:56 -04:00
Pietro Gagliardi 0e5e37f98b Fixed multilne entry changed events on GTK+. 2016-05-22 23:14:33 -04:00
Pietro Gagliardi 4ab0d9c1f6 More TODO resolution. 2016-05-22 22:57:18 -04:00
Pietro Gagliardi a99a81f584 Answered matrix scaling stuff. https://www.willamette.edu/~gorr/classes/GeneralGraphics/Transforms/transforms2d.htm#Combining 2016-05-22 22:52:29 -04:00
Pietro Gagliardi b66be0bf2d Stale TODO removal. Expanded page 9 to also show the positions of the second line. 2016-05-22 20:49:16 -04:00
Pietro Gagliardi 9b4a13e9b3 Some more TODO resolution in the GTK+ backend. 2016-05-22 20:35:40 -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 b957558ef4 Even more TODO resolution in uiDateTimePicker on GTK+. 2016-05-22 19:40:56 -04:00
Pietro Gagliardi f0011d6227 Started resolving TODOs in the GTK+ backend, marking some LONGTERM. In particular, uiDateTimePicker no longer will be localized, as there doesn't seem to be a way to get that info out. 2016-05-22 19:17:42 -04:00
Pietro Gagliardi 07cd03452d Implemented non-wrapping multiline entries in GTK+ and started implementing them in OS X. 2016-05-22 14:20:54 -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 1c2acf59a3 Implemented uiControlDestroy() for uiRadioButtons on GTK+. Fixes #40. 2016-05-21 22:42:55 -04:00
Pietro Gagliardi 5891b764cb Forgot to take a reference on GtkWindows; this led to weird GObject warnings on the command line when closing a window. Update #40. 2016-05-21 22:36:21 -04:00
Pietro Gagliardi 0ede964a3d TODO updates. 2016-05-16 09:58:16 -04:00
Pietro Gagliardi b47689090e Implemented uiColorButton on GTK+. 2016-05-15 23:18:11 -04:00
Pietro Gagliardi 6a81921c1a More TODOs. 2016-05-15 19:26:58 -04:00
Pietro Gagliardi c82942a81b More TODO stuff. 2016-05-15 19:15:00 -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 0205f2e5ca Got rid of complain() on GTK+. 2016-05-13 21:00:12 -04:00
Pietro Gagliardi 94587b660f Some TODO resolution and stale TODO removal. 2016-05-13 17:54:10 -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 4e53551e06 Split unix/draw.c into a bunch of smaller files. 2016-05-05 18:23:54 -04:00
Pietro Gagliardi eff0532760 Some TODO resolution/stale TODO elimination. 2016-05-05 17:58:26 -04:00
Pietro Gagliardi faeae31acc Cleaned up unix/box.c and made it not use struct child or ptrArray. 2016-05-05 14:04:07 -04:00
Pietro Gagliardi f10c760b00 More TODOs. 2016-05-04 23:41:25 -04:00
Pietro Gagliardi 440e8fa47f Integrated the GTK+ date/time picker. FINALLY! 2016-05-04 23:35:11 -04:00
Pietro Gagliardi a11e939b34 Wrote the finishing touches on the dptwidget.c needed for the final date-time picker. 2016-05-04 23:28:46 -04:00
Pietro Gagliardi 4e11b6efe1 Fixed build errors. It works! (Except for radiobuttons now needing a destroy; that'll come later.) Next up... Windows. Yay... 2016-04-25 20:34:12 -04:00
Pietro Gagliardi d65a263bb4 Whoops, forgot unix/area.c. Now let's try. 2016-04-25 20:19:57 -04:00
Pietro Gagliardi 3f16e28d1b Finished the conversions. Let's hope it works! 2016-04-25 20:15:02 -04:00
Pietro Gagliardi 289ca0ed78 More conversion work, including getting rid of a few now-unnecessary function declarations. 2016-04-25 20:09:20 -04:00
Pietro Gagliardi 01912877ce Converted the basic GTK+ controls. Now for the containers. 2016-04-25 20:00:25 -04:00
Pietro Gagliardi 85ee2e93dd More ui_unix.h and unix/control.c work. NOW we're ready to migrate the controls. 2016-04-25 19:45:05 -04:00
Pietro Gagliardi dda30cdb3c Started the new uiControl infrastructure. 2016-04-24 19:22:21 -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 96e8f1f8ea Did the rest of the object changes on GTK+. 2016-04-24 16:59:46 -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 e6effa042d Implemented the new fontbutton routines on GTK+. 2016-04-20 13:59:59 -04:00
Pietro Gagliardi 8493bc3c5d Fixed the GTK+ SetColor() issues. It works! 2016-04-20 01:14:46 -04:00
Pietro Gagliardi 78772ca62d Fixed most compiler errors and warnings. 2016-04-19 23:58:36 -04:00
Pietro Gagliardi 6b6d6861c1 Wrote the SetColor() for GTK+. Now to test. 2016-04-19 23:52:44 -04:00
Pietro Gagliardi 6fdbd8d68f Implemented the chars-to-bytes algorithm on the GTK+ code. Now to finally add attributes to uiDrawTextLayout! 2016-04-19 14:57:15 -04:00
Pietro Gagliardi c2d165af94 Implemented the uiDrawTextFont direct from system font-making functions on other platforms. 2016-04-19 11:23:05 -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 84fc5dafaa More TODOs. 2016-04-18 10:22:36 -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 042b08f31c Implemented uiFontButton on GTK+. 2016-04-14 15:55:04 -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 febb37700a "Fixed" the FreeBSD build. 2016-01-22 13:08:36 -05:00
Pietro Gagliardi b0621a6b1f Implemented the new multiline text stuff on GTK+. 2016-01-16 15:59:34 -05:00
Pietro Gagliardi 9442ebd53a More TODOs. 2016-01-13 15:59:45 -05:00
Pietro Gagliardi 6394446461 Fixed text rendring on GTK+. 2016-01-13 15:48:39 -05:00