Commit Graph

380 Commits

Author SHA1 Message Date
K. Lange
b8aecc7a37 rline: officially adopt rline_exp as the only rline, and bring in some improvements from kuroko 2021-01-01 18:08:30 +09:00
K. Lange
db23c987a9 Pull in Kuroko (as a submodule, but with build integration) 2021-01-01 17:19:44 +09:00
K. Lange
79bdb6fc02 png: replace icons 2020-06-12 18:12:33 +09:00
K. Lange
802ae6a616 sdf: switch font format from bmp to png 2020-05-30 16:37:10 +09:00
K. Lange
431a6aaf2a png: support more color types; fix idat sequencing 2020-05-30 16:36:31 +09:00
K. Lange
1c0e741c99 inflate: fix missing byte read for compression type in gzip deflater 2020-05-05 00:07:02 +09:00
K. Lange
22ded9bdce inflate: gzip multibyte values are LE... 2020-04-24 21:52:58 +09:00
K. Lange
7dfb9c34ce png: replace several BMP assets with PNGs 2020-04-24 14:30:12 +09:00
K. Lange
e5996aa4b4 graphics: remove unneeded ALPHA_EMBEDDED's in libs 2020-04-23 20:55:27 +09:00
K. Lange
3cacd56bce bmp: Set ALPHA_EMBEDDED on load 2020-04-23 20:15:56 +09:00
K. Lange
c68cd7e1e8 graphics: make jpg/png support seamless with load_sprite 2020-04-23 18:44:07 +09:00
K. Lange
8e74bee6d0 png: First pass at a PNG decoder
(only 8bpp rgba, non-interlaced for now)
2020-04-21 17:11:20 +09:00
K. Lange
8f7cda92fa inflate: Add DEFLATE decompressor and gunzip util 2020-04-21 11:23:26 +09:00
K. Lange
8c2cf93b1d menu: Add method to force redraw a visible menu 2020-03-29 13:23:28 +09:00
K. Lange
bd92f00a40 json: add rudimentary JSON parser library 2020-03-28 22:20:20 +09:00
K. Lange
2cddc37a67 list: add convenience function to get item by index 2020-03-28 22:19:52 +09:00
K. Lange
2fbf92329d graphics: actually that seems to indicate A is after RGB 2020-03-27 23:03:54 +09:00
K. Lange
d6ed670213 graphics: support swapped byte order in bitmaps 2020-03-27 22:56:18 +09:00
K. Lange
83c7c37f8f rline: replace syntax highlighter with new bim highlighter engine 2019-12-24 13:21:34 +09:00
K. Lange
00493418a3 terminal: support bracketed paste mode 2019-12-20 20:56:06 +09:00
K. Lange
1abba60e76 terminal: implement IL/DL in vga terminal; experiment with scrollable regions 2019-12-19 13:45:20 +09:00
K. Lange
dd180b33c0 sdf: handle input string as utf8 2019-12-05 19:13:16 +09:00
K. Lange
0d162680ff terminal: support SGR-style mouse for extended coordinates 2019-12-04 13:16:03 +09:00
K. Lange
54ec34837b graphics: load_sprite should return a status code 2019-08-09 06:44:42 +09:00
K. Lange
d585dacb8e termemu: support ^[7 / ^[8 2019-06-30 22:43:19 +09:00
K. Lange
7fdaca463f CVE-2019-12937 2019-06-25 20:35:45 +09:00
K. Lange
ef149df1e2 lib: put SSE intrinsics behind an ifdef 2019-03-19 10:14:17 +09:00
K. Lange
c4ffc28b1f menu: smarter context menu spawning 2019-01-07 14:04:55 +09:00
K. Lange
e3a966232d rline: fix backspace in legacy line editor 2019-01-05 23:21:44 +09:00
K. Lange
8680381ecc graphics: basic tga loading support so we can see our own screenshots 2019-01-03 19:36:33 +09:00
K. Lange
d2e40a3d0d yutani: missing clip region recalculation in reinit 2019-01-03 18:00:46 +09:00
K. Lange
352bef7882 jpeg: fix bad rounding of image sizes to 8x8 cells 2019-01-02 19:48:02 +09:00
K. Lange
08576160f3 graphics: fix box blur to work with strides 2018-12-26 21:30:11 +09:00
K. Lange
b325df2cbc graphics: subregion should inherit clips 2018-12-26 21:29:45 +09:00
K. Lange
92e0203075 esh: parser fix up for single-character variables 2018-12-26 20:20:04 +09:00
K. Lange
ae55558935 esh: add $# and fix syntax support 2018-12-26 20:05:22 +09:00
K. Lange
0e76932477 graphics: fix gradient pattern blue channel 2018-12-23 17:15:49 +09:00
K. Lange
536d25567b graphics: actually probably faster without those branches 2018-12-20 21:39:37 +09:00
K. Lange
805c43f059 graphics: fix missing continue in sse alphablit 2018-12-20 21:29:59 +09:00
K. Lange
29b7881d13 jpeg: use sse intrinsincs 2018-12-20 21:07:35 +09:00
K. Lange
de26980af2 jpeg: even faster with more premultiplications 2018-12-20 19:01:49 +09:00
K. Lange
245fa0a092 jpeg: further precomputations 2018-12-20 18:54:13 +09:00
K. Lange
fab3091cc1 jpeg: use a precalculated cosine table, which is about twice as fast 2018-12-18 19:33:21 +09:00
K. Lange
54e9044161 libc: add more toaru-specific syscall wrappers 2018-12-10 18:47:18 +09:00
K. Lange
0293e83c3b libs: add README describing what each is for 2018-12-07 17:31:25 +09:00
K. Lange
20f3d83e92 yutani: track keyboard modifiers with mouse events 2018-12-07 11:05:21 +09:00
K. Lange
dfb176abe5 libc: sin: lerp table lookup 2018-12-06 18:31:18 +09:00
K. Lange
bac479e309 jpeg: close file when finished 2018-12-05 20:29:50 +09:00
K. Lange
950c15ccf4 jpeg: try to document what the jpeg decoder does 2018-12-05 20:00:29 +09:00
K. Lange
6f33b2ff97 jpeg: malloc-less implementation 2018-12-05 18:12:11 +09:00
K. Lange
75514b83fd jpeg: that was MIT 2018-12-05 13:05:55 +09:00
K. Lange
e2a27ab74c jpeg: don't trace 2018-12-05 13:01:59 +09:00
K. Lange
d0d5861e0a jpeg: new jpeg library 2018-12-05 13:00:36 +09:00
K. Lange
1ff5f56225 rline_exp: \r before \n to ensure we scroll 2018-12-03 11:50:52 +09:00
K. Lange
625bdb6f96 terminal: fix some bad cursor visibility 2018-12-03 11:31:16 +09:00
K. Lange
5a6655e442 sdf: fixup alphablending 2018-12-02 22:22:06 +09:00
K. Lange
8f865eeb4a rline_exp: ensure everything is drawn before returning 2018-12-01 21:35:11 +09:00
K. Lange
7259cff253 graphics: none of this is really helping anything 2018-12-01 17:42:49 +09:00
K. Lange
6d8c1f8d7a graphics: bilinear filter needs some serious speed improvement 2018-12-01 17:36:07 +09:00
K. Lange
415655f9ac graphics: fix up some bad alpha blending in certain sprite rendering functions 2018-12-01 17:12:49 +09:00
K. Lange
c6dfe69bba decorations: restore the original font size for decorations 2018-11-30 21:50:42 +09:00
K. Lange
6fb381247a graphics: subregions 2018-11-28 20:39:57 +09:00
K. Lange
a6a5bc60f5 graphics: vertical gradient pattern in graphics lib 2018-11-24 22:22:55 +09:00
K. Lange
3dc166607d button: allow for disabled buttons 2018-11-24 14:10:49 +09:00
K. Lange
e8fad60a10 button: icon buttons should also shift when pressed 2018-11-24 13:22:31 +09:00
K. Lange
8c2ba2641e button: fix rendering issue and support icons buttons 2018-11-24 13:18:57 +09:00
K. Lange
ba8a2bf1a9 graphics: try for some optimizations 2018-11-23 15:32:51 +09:00
K. Lange
1473151fa7 button: start working on widget libraries (this should probably be a ttk widget library...) 2018-11-22 10:43:30 +09:00
K. Lange
f8791b157e graphics: fix potential bad free of sprite->masks 2018-11-19 21:03:54 +09:00
K. Lange
d96bc4f2cb sdf: expose stroke options 2018-11-19 21:03:35 +09:00
K. Lange
77a665c0d5 graphics: new functions; fix premultiply in rounded rectangle 2018-11-19 20:08:49 +09:00
K. Lange
08518780f3 graphics: add rounded rectangle with pattern function 2018-11-18 13:20:26 +09:00
K. Lange
d1ff49e70b sdf: add oblique, bold oblique fonts 2018-11-14 17:16:11 +09:00
K. Lange
0f683d32de markup: wip markup parser and rendering 2018-11-12 20:24:42 +09:00
K. Lange
72aaed2eef msk: allow for and properly merge multiple remote manifests 2018-11-12 09:26:30 +09:00
K. Lange
2accf6e314 rline_exp: handle reduced terminal size better 2018-11-06 17:33:50 +09:00
K. Lange
6c88956fa4 job control 2018-10-26 20:34:15 +09:00
K. Lange
c76722a4c4 rline_exp: slightly more reasonable shell cmd hl 2018-10-17 12:55:41 +09:00
K. Lange
4d5e977a24 rline_exp: indicate when input field overflows to the left 2018-10-12 17:10:58 +09:00
K. Lange
f7eb386d81 decorations: single pixel exposed edges on tiled windows 2018-10-11 09:53:55 +09:00
K. Lange
9703594bf3 decor-fancy: remove the 1-px border around tiled decorations
I want to add some additional hints to the decorator so that
tiled windows can have a border on their exposed side, eg.
a left-tiled window will have a border on the right. Then
the compositor will size them to account for adding that one
pixel border - which is kinda specific to this design, but
I think it'll work out okay. Other decoration themes will
either have to follow suit, or I can have the decorator
advertise how it wants it decoration bounds to work in regards
to a tiled window.
2018-10-11 08:31:28 +09:00
K. Lange
d6fe16c406 rline_exp: disable highlighting of space at eol
it just doesn't look good with tab completion adding spaces
2018-10-10 21:36:16 +09:00
K. Lange
994150501a rline_exp: fix bad signs causing crashes with unicode history, tab complete 2018-10-10 11:01:56 +09:00
K. Lange
1870bdbdc2 rline_exp: ^K, ^U, visual indicator for ^V 2018-10-05 22:46:56 +09:00
K. Lange
3721644339 rline_exp: VINTR should raise, use right key 2018-10-05 22:21:10 +09:00
K. Lange
719d27166d Allow compositor to load Cairo backend later at runtime 2018-10-02 18:58:03 +09:00
K. Lange
8ac5ee4fb9 free context passed to rline functions in rline_exp 2018-09-30 18:42:08 +09:00
K. Lange
2cde2456f3 Lazy redraw in rline_exp means pasting in shell is fast 2018-09-29 14:03:57 +09:00
K. Lange
f2024aa274 Properly support strides 2018-09-29 01:13:47 +09:00
K. Lange
aaa8b4f81e Freetype in decorations 2018-09-24 15:06:42 +09:00
K. Lange
1d53039483 freetype text needs some horizontal padding 2018-09-24 12:29:16 +09:00
K. Lange
c77e71a277 Freetype support for menus 2018-09-24 12:22:00 +09:00
K. Lange
24517f53fa make sure right prompt gets drawn when drawing oversized line 2018-09-21 19:12:12 +09:00
K. Lange
0c4bd30242 Experimental slow sprite rotation 2018-09-17 20:35:40 +09:00
K. Lange
05ac83f96a sh syntax backslash escapes [bim+rline_exp] 2018-09-17 16:39:31 +09:00
K. Lange
75c26ed850 As should rline when doing rev search 2018-09-17 13:21:37 +09:00
K. Lange
c678b6562d Fix up some libs to work better under linux 2018-09-17 12:58:38 +09:00
K. Lange
8b849a8f4f rline doesn't use _xlog 2018-09-17 12:23:57 +09:00
K. Lange
f5bf985dc4 Change partial line indicator to left-facing arrow 2018-09-17 12:21:51 +09:00
K. Lange
cc4baaff0d Steal an idea from fish to handle output without a trailing linefeed 2018-09-17 07:01:15 +09:00
K. Lange
06a7ca8cd9 Add anti-aliased line drawer (slow, but effective) 2018-09-15 19:52:25 +09:00
K. Lange
85db6525a8 hacked up support for python syntax highlighting in rline_exp 2018-09-15 17:52:01 +09:00
K. Lange
2b4e787b6f Tweak ansi theme colors for rline_exp 2018-09-14 22:48:06 +09:00
K. Lange
f769259cbe Add ^V and tab widths to rline_exp 2018-09-14 20:06:46 +09:00
K. Lange
44cdeaef06 Fix odd history scrolling with oversized lines 2018-09-14 12:39:18 +09:00
K. Lange
1b030089e7 Fix rendering glitch when resizing terminal in rline_exp 2018-09-14 09:28:37 +09:00
K. Lange
6d98aa6494 Fixup heading comments 2018-09-13 18:44:30 +09:00
K. Lange
d9dcb94059 Cleanup and document rline_exp 2018-09-13 18:42:19 +09:00
K. Lange
a3d55b1b88 Patch in rline_reverse_search for rline_exp 2018-09-13 14:42:42 +09:00
K. Lange
b97bc4ff0a Support history in experimental line editor 2018-09-13 14:31:33 +09:00
K. Lange
b25aa946e5 Improvements to experimental line editor 2018-09-13 12:54:00 +09:00
K. Lange
b7c642c273 Experimental rline replacement with syntax highlighting 2018-09-12 22:50:22 +09:00
K. Lange
21b3fdf242 Fix sse blitting when bounds are weird 2018-09-12 13:38:58 +09:00
K. Lange
c161bce0ac Render fullscreen windows without shadow gap 2018-09-12 13:22:34 +09:00
K. Lange
14a63ba154 Advertise fullscreen-ness of windows and collect it automatically as a decorator flag 2018-09-12 13:22:25 +09:00
K. Lange
6e6675dd0a Restructure decorations so bounds can be window-specific (for fullscreen) 2018-09-12 12:53:08 +09:00
K. Lange
d5aab96199 Rudimentary (incomplete) alternate screen support 2018-08-28 20:08:58 +09:00
K. Lange
2e50a84bc7 Allow NULL callbacks for rline 2018-08-28 09:28:53 +09:00
K. Lange
ead924b110 support home/end from normal escape sequence 2018-08-16 12:01:09 +09:00
K. Lange
f97222ff03 Cleanup docs for yutani client lib 2018-08-15 14:50:20 +09:00
K. Lange
8680e66f65 Library copyright/vim tags cleanup 2018-08-15 10:23:41 +09:00
K. Lange
5b5462fb72 Library cleanup 2018-08-14 17:24:25 +09:00
K. Lange
44c8f093f0 draw_rectangle 2018-08-12 20:03:27 +09:00
K. Lange
fbfecde4be Allow windows to be dragged by menu bars 2018-08-07 19:18:22 +09:00
K. Lange
ae6532607a Add libc wrappers for some syscalls, remove unused syscall.h imports 2018-08-02 13:13:27 +09:00
K. Lange
3f39c0ad61 Remove term-set and support for special terminal font escapes 2018-08-02 11:16:08 +09:00
K. Lange
ee03956a86 Fix bad submenu hilight 2018-08-02 04:06:37 +09:00
K. Lange
ccf29a98d9 Handle ^[[1,5D from vte, though not well 2018-08-01 09:44:26 +09:00
K. Lange
30e2c8d940 Fix some handling of failed display server connections 2018-08-01 09:20:57 +09:00
K. Lange
03d6199af7 Decorator can handle checking for menus 2018-07-24 09:20:11 +09:00
K. Lange
b0a154a07e Fix up submenu hilighting 2018-07-23 19:32:58 +09:00
K. Lange
5f7b7c9f38 Render windows as focused when they have menus, like we used to in python 2018-07-22 01:24:22 +09:00
K. Lange
1686884fb5 rounded rectangle colors were in wrong order 2018-07-21 23:42:21 +09:00
K. Lange
62cc35da3f Make sure to use alpha from color in sdf text 2018-07-21 23:03:21 +09:00
K. Lange
5ae01e206d Fix premultiplying on rounded rectangles 2018-07-21 23:00:26 +09:00
K. Lange
b26104c156 Keyboard interaction between menubar entries 2018-07-21 18:32:00 +09:00
K. Lange
0e45293ced Merge menubar into menu 2018-07-21 17:56:10 +09:00
K. Lange
255b750b62 Add method to update menu entry title 2018-07-20 23:08:12 +09:00
K. Lange
1830bd63ac escape should close all menus 2018-07-20 22:37:31 +09:00
K. Lange
9efc3c1bf3 Quickly switch focus back to previous menu on keyboard action 2018-07-20 22:32:06 +09:00
K. Lange
95ad690212 Minor keyboard menu control adjustment 2018-07-20 22:24:05 +09:00
K. Lange
43829e163a Add initial keyboard support for menus 2018-07-20 22:15:46 +09:00
K. Lange
7cd46127a9 Add imperfect, but sufficient, rounded rectangle routine 2018-07-20 21:26:01 +09:00
K. Lange
89d107374c provide dlfcn in libc 2018-07-19 19:04:17 +09:00
K. Lange
416ae2d1a3 Move internal yutani stuff to a separate header 2018-06-23 18:51:48 +09:00
K. Lange
1381116048 Add submenu tick 2018-06-20 11:17:27 +09:00
K. Lange
cba3b2e804 Fix arbitrary submenus and add 'Set Zoom...' to terminal 2018-06-18 22:04:08 +09:00
K. Lange
5ae86c9213 incomplete textregion library 2018-06-09 17:32:24 +09:00
K. Lange
3c0a8c8e1d minor tweaks 2018-06-09 16:42:41 +09:00
K. Lange
52e395427e Change background color of fallback decoration theme 2018-06-09 16:40:11 +09:00
K. Lange
74e4ee5f56 Add basic numpad support 2018-06-08 15:11:41 +09:00
K. Lange
f710c872b8 make menu bar less picky about clicks 2018-05-22 18:42:05 +09:00
K. Lange
49850c0067 Try not to put menus off screen 2018-05-21 19:52:00 +09:00
K. Lange
d6afa06c80 Menu bar in a separate library 2018-05-20 16:47:35 +09:00
K. Lange
8442d4494c Expose more methods from menu library 2018-05-20 12:37:22 +09:00
K. Lange
eacdd97287 Handle nested menus extending past display width 2018-05-20 11:22:15 +09:00
K. Lange
50b21b080d Cleanup and fixes 2018-05-19 19:43:00 +09:00
K. Lange
910973bec7 *experimental* nested menus support 2018-05-19 19:05:27 +09:00
K. Lange
16200d76f1 Allow apps to opt out of a maximize button 2018-05-19 16:05:17 +09:00
K. Lange
4ff96e4bdf Store large clipboard selections in a file 2018-05-15 14:54:22 +09:00
K. Lange
ee1aeb89b2 Clipboard in compositor 2018-05-15 14:39:07 +09:00
K. Lange
d03c02e6ae Bound SDF text rendering properly 2018-05-11 22:59:12 +09:00
K. Lange
ffa4bd7360 Add login, sudo, user session, auth lib, etc. 2018-05-10 22:33:32 +09:00
K. Lange
b6d6d8900e include pthread in libc 2018-05-09 21:26:45 +09:00
K. Lange
da909e4f79 Add confreader library 2018-05-08 23:04:49 +09:00
K. Lange
8ccbcb001c Allow switching rendering mode in terminal on the fly 2018-05-08 17:16:58 +09:00
K. Lange
4c873f9fde Remove traces from sdf 2018-05-08 17:05:57 +09:00
K. Lange
d67021d7b8 Store SDF fonts in shared memory regions 2018-05-08 17:03:13 +09:00
K. Lange
4818a8cc43 Add more monospace font options and support 8-bit grayscale bitmaps 2018-05-08 15:41:12 +09:00
K. Lange
db4337f17b Improvements to SDF impl., and support in terminal 2018-05-08 11:27:44 +09:00
K. Lange
4beac973ef Store kerning overrides for SDF fonts in a config file 2018-05-07 17:49:06 +09:00
K. Lange
5cf95b4fc0 Fix alpha handling resulting in no images with 24-bit bmp 2018-05-04 13:16:22 +09:00
K. Lange
557f578574 Don't use my given name in copyright headers; update everything to 2018 because why not 2018-05-01 17:12:56 +09:00
K. Lange
037f055549 Send WINDOW_CLOSE instead of SESSION_END on Alt+F4 and handle that as a close signal 2018-04-27 22:38:36 +09:00
K. Lange
8516e44a20 Remove debug prints from decorations 2018-04-27 22:25:05 +09:00
K. Lange
f8d2b8d3a3 Experimental decorator menu stuff 2018-04-27 22:14:08 +09:00
K. Lange
5129394b07 Handle more stuff automatically in yutani 2018-04-27 22:13:42 +09:00
K. Lange
0e65e6559c Menu library improvements 2018-04-27 21:30:51 +09:00
K. Lange
b1c86b448d Automatically track window movement in the client 2018-04-27 21:30:21 +09:00
K. Lange
4ac2f3d4a2 Fix separators crashing on click because they had no activate method 2018-04-25 21:44:17 +09:00
K. Lange
5004ea8c5d Fix icon cache using wrong data for 48x48 icons 2018-04-25 19:51:50 +09:00
K. Lange
0037a2e84a Remove unused header 2018-04-25 17:42:14 +09:00
K. Lange
95542acded Remove the old API and don't make the new one static inline 2018-04-25 17:41:30 +09:00
K. Lange
0c4b4e3344 Have yutani messages built on the stack instead of malloc/free 2018-04-25 17:30:28 +09:00
K. Lange
8e07883088 Enable and resolve several warnings 2018-04-25 14:03:29 +09:00
K. Lange
2de4d9bae2 Menu windows shouldn't zoom in, only fade 2018-04-24 21:41:19 +09:00
K. Lange
216239f601 Adapt menu library into panel 2018-04-24 21:32:39 +09:00
K. Lange
86134cca5d At least attempt to handle focus loss 2018-04-24 21:19:06 +09:00
K. Lange
34d1a58be7 Menus as a library (WIP) 2018-04-24 20:58:41 +09:00
K. Lange
e1d67ec921 new graphics method interp_colors 2018-04-24 20:27:15 +09:00
K. Lange
a7cd9eb54b Icon cache library 2018-04-24 20:25:42 +09:00
K. Lange
5dd763780a Unify list, tree, hashmap implementations with userspace/kernel 2018-04-24 19:28:50 +09:00
K. Lange
3552b72cdc Remove guassian blur (third-party code) 2018-04-21 21:50:59 +09:00
K. Lange
0b2b0dc299 Kerning adjustments 2018-04-21 20:55:19 +09:00
K. Lange
07fd0519dd Add text back to the simple decoration theme using SDF 2018-04-21 20:15:30 +09:00
K. Lange
96e3db9089 Lock on creating caches so we work better across threads 2018-04-21 20:14:11 +09:00
K. Lange
556ff8e343 Add maximize as an action
- Remove the deprecated timer request API.
- Add a new "Special Request" API for things like "maximize" / "minimize"
  etc. that takes an optional window ID. Expects no response, useful for
  one-off triggers like this.
- Add maximize button to fancy decoration theme and general support in
  decoration library.
2018-04-21 19:24:55 +09:00
K. Lange
f9196a3181 Cache scaled SDF mipmaps for faster rendering 2018-04-21 17:24:55 +09:00
K. Lange
629a4f373f text passed to sdf should be const 2018-04-21 16:28:57 +09:00
K. Lange
64f2fa083e Why are we not premultiplying our ARGB bitmaps... 2018-04-21 16:28:38 +09:00