Commit Graph

427 Commits

Author SHA1 Message Date
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
Pietro Gagliardi 621d75695c More (serious) TODOs. 2016-01-13 14:34:28 -05:00
Pietro Gagliardi 776be61c45 Implemented metrics on Pango. 2016-01-12 23:33:50 -05:00
Pietro Gagliardi f9b6eba7df Implemented the new font stuff on GTK+. 2016-01-12 16:59:13 -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 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
Florent Clairambault cfcbe9859f Tiny warning fix.
Why not switch to -Werror by the way ?
2016-01-01 01:45:32 +01: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 5d47fcab5a Implemented the font family enumerator on GTK+. 2015-12-22 19:17:27 -05:00
Pietro Gagliardi 2ce0c810f1 Added a test of mouse events in a scrolled uiArea. Removed some dead code from the GTK+ uiArea. Now to make the changes to the Windows and OS X backends! 2015-12-17 21:21:29 -05:00
Pietro Gagliardi cc7dd186e5 Fixed runtime issues with uiArea on GTK+. It works! 2015-12-17 19:59:33 -05:00
Pietro Gagliardi 78b714c238 Oh neat, only one compiler error. Now to rewrite the tests. 2015-12-17 19:19:08 -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 8ea3b07aa8 Got rid of the clientWidth and clientHeight variables. 2015-12-17 17:37:58 -05:00
Pietro Gagliardi 473c6c92f0 FINALLY removed areaPrivate from uiArea on GTK+, using uiArea itself for everything. Standardized variable names on that front. Also implemented MouseCrossing() there. 2015-12-17 16:49:59 -05:00
Pietro Gagliardi 1957ff1418 More TODOs. 2015-12-17 16:31:56 -05:00
Pietro Gagliardi ffe9a2db28 Got rid of the GtkScrollable code from GtkDrawingArea for uiArea. Woo! Now we just have to nuke all that from the Cocoa backend and we're good. 2015-12-17 14:48:58 -05:00
Pietro Gagliardi 4e256dfc95 Fixed some oversights in the GTK+ uiArea code. 2015-12-16 18:09:04 -05:00
Pietro Gagliardi 3f9862c472 OUCH. Fixed a MASSIVE bug in the GTK+ implementation of uiWindow: uiWindowSetChild() was DESTROYING the old child, not merely removing it! The other ports don't have this bug. 2015-12-12 15:30:56 -05:00