Kylie

Kylie is a web browser.
Download

Kylie Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Ulric Eriksson
  • Publisher web site:
  • http://siag.nu/sdbgrey/

Kylie Tags


Kylie Description

Kylie is a web browser. Kylie is a web browser. It does text, images, tables and soon forms. It doesn't know css, frames or scripting. And it's neither fast nor cute. That's why it is version 0.0.x.ParsingThe HTML parser in MwHtmlParser.c creates a linked list of all thenodes: wordparts, whitespace and special tags.Newline immediately before end tag is ignored. Newline immediately afterstart tag is ignored.Composite objects (currently limited to TABLE, ROW and CELL, butframes belong there too) branch the list so it actually becomes a tree.DisplayingWhen the widget gets the list back, it lays out the boxes by assigningwidth and height and placing them in a line from left to right. Ifthere is too little space left for another box, start over on a newline.In a second pass the objects are drawn which are located in thecurrently visible part of the window.Two callbacks in the widget, begin_a andend_a, handle and tags. The coordinates are put in thea_href or a_name tables depending on their HREF or NAME values.Composite objects are displayed by recursively drawing the listof children.NavigationThere are two linked lists for backwards and forwards navigation.Each time we visit a link, the current url is added to the backwardslists and the forwards list is cleared, *except* when we visit thelink by clicking the back button. In that case the current url isadded to the forwards list instead.Type 1 fontsIf Mowitz was compiled with t1lib support, Kylie can take advantageof it out of the box. The standard fonts.txt file is used for fontmanagement. Antialias is not supported.IOThe IO is split into different modules with narrow interfaces. Themodules are:io.c: Register protocol drivers, normalize urls, cache documents. External linkage: load_url.http.c: Fetch documents over http. The only symbol with external linkage is load_http, which should *only* be called from io.c.file.c: Fetch local file or predefined "documents". External linkage: load_file and load_about.FTP is currently not implemented.None of this belongs in the widget code. The widget should onlyhave the bare minimum required to render stuff in a window.The widget will probably eventually move over to Mowitz.It should suffice to have url resource that is a string to giveto a loader function.This function can also be set through a resource and defaults toa function which loads the file from the local file system usingthe url as filename.Everything else belongs in the application.ImagesThe file image.c contains a small, stack-oriented library of functionswhich can perform a variety of operations on images. The only thingwe're using it for at the moment is to load images, usually withthe help of external applications such as the netpbm kit.An advantage to this approach is that we can display many types ofimages. In the future we will also be able to manipulate images inmore ways than we are using now.The disadvantage is that it is relatively slow. This is mainly dueto the fact that we have to convert between the library's internalformat, image, and the format X understands, XImage. It should bepossible to help the situation somewhat by caching the XImage; thecurrent cache implementation only caches the image.What's New in This Release:· Implemented < select > < option >, < optgroup > and < textarea >.· Speeded up object_between and add_object_box radically.· Fixed the combo box so it stores history instead of crashing.· Added a 30 second timeout to the connect() call in http.c.· Display an error message rather than crashing when a document can't be loaded. Create widgets for (some) form controls.· Suppress garbage (i.e. extra spaces or words) between < table > and first < tr >.· Documented table code (in README).


Kylie Related Software