Next thing about Leu was the clipboard, originally I only planed to make a simple solution, where only the texts get copied. But when I thought about, the Amiga clipboard is perfect to use as multiformat clipboard, as windows has. The clipboard on Amiga systems is in principle just a IFF file and there you can put in everything you want. You can put in a Text (e.g. IFF-FTXT) or an Image (e.g. IFF-IILBM) or a sound (e.g. IFF_8SVX). And because IFF is tag based its also possible to put more then one format at the time into.
So I started to write a own clipboard routine for Leu, which takes the selected cells and put them to Clipboard as OpenOffice XML (like the ods file) and as standard text as tab separated list.
And this works rather nicely as you can see:
I also added a little requester to set the number of Cols and Rows
If you want to download the latest version go to the Leu Page
I tried Leu on a real A1200 with 68030/50 Mhz and a 32 color AGA screen. It worked but the idea to redraw everything if you type something in, was not very smart. (To show the changed calculation results)
I changed that to a function which checks which cells are changing because of this cell enter, in principle which formula depend on this cell. And it’s working quiet well. Time for a little video
I noticed the colors are still very buggy on big endian systems, I have to care about that again later, in the saved file the colors are swaped, I must debug that. Should be not too hard, I fixed that already once at the loading of files.
As it was the case with borders, I took the LibreOffice color requester as GUI blueprint for my Leu color chooser, Basically it’s the same as for the borders. The only difference, you need two of them, one for background one for text (in principle a one more for border color, but I left that out for now.)
Leu also got a own Page now where always the newest version can be found and some central information about it. For now I will not keep a history for it, because still changing too much things.
To get a little bit away from the converting business, which is a bit boring to be honest, I started with some basic formatting options in the GUI. Font and alignment are rather easy, just some buttons which set the property of the all selected cells. A little bit more complicated are the border settings, especially because there you need a special input element.
I tried with buttons but it took very much space and the names on them are not really useful. Like in usual spreadsheet applications it is better to just show the result with a little graphic. It’s the first time I used the TMUIBitmap object, very handy and easy to use.
Besides that I created a combobox like element, when you click onto the button a new borderless window open with the different border buttons inside and if you select one, or click somewhere else the window automatically close again. Not very difficult with the MUIClass-system.
First, I want say thanks to all people send me texts or code snippets how to read TurboCalc TCD files some where very helpful. Sadly in none of them the functions are nicely explained so in the end it came to just straight forward try out with the Manual and write for every function a line in the file to check the result in Leu. But finally the most functions which are available in Leu can be converted from TurboCalc. I’m not sure if it makes sense to make a TurboCalc writer, because it’s a dead program, nice but dead. Writing is hard because you need to know everything about the file, and some of the comments in the text files suggest that TurboCalc is very picky when the tags are not in the correct order or somehow divert from the ideal format.
On a special wish I also implemented a possibility to inline edit the cells, without changing to the edit box. Until now you can only insert a new contents, and not use the mouse to set the cursor. When you can grab the mouse you can also set the cursor in the edit field.
What I’m not really getting, is why the people are excited about that program, it’s not like there is no spreadsheet program, there is TurboCalc, ok it’s old but fairly nice working and there is Ignition, I never used that but from screen shots it looks rather decent. At least much more advanced than this piece of crap 😛
Maybe the people are just happy, that someone codes something. Speaking of which here is the latest Version: 0.05 with edit feature, finally an Icon and TCD function loading.
Notice it can also export the table as HTML or as Wikitable. (just use the endings “.html” or “.wikitable_pipes” .wikitable_wikimedia”). Ok that will be more useful, when I introduced stuff to change colors, borders and fonts.
I played a lot with TurboCalc and it’s files, and checked the fileformat. I still have some very old files from around 1995-1997. An finally a little bit stuff is working.
The second file is my timetable of 2nd semester in university, I printed it out to hang at the door. (yeah, I had color printer back in the days, a termo-transfer printer) As you can see the properties and colors comes nicely to Leu even the Formula, I need to try more functions to see how to convert them to the Leu functions. Of course it’s also possible to save that file again as Libre Office file and load it there. That’s how it looks like in LibreOffice
The Leu application had a big bug under MorphOS, it was impossible to use the scrollbars as long there was part of the grid underneath. The click always went directly to the grid, so the scrollbar never got it. This did not happen under AROS Zune or Amiga MUI 3.8, so it must be something special of the MorphOS MUI implementation.
After a pointer of jacadcaps at morph.zone the solution was rather easy. When you register in MUIM_Setup which events you want to be notified of there is a new flag MUI_EHF_GUIMODE for TMUI_EventHandlerNode.ehn_flags, introduced in MUI 4 which tells MUI to NOT notifiy you about events happen in a part of your element which is hidden. For example if your element is on a Tab control but your page is not visible at the moment, or like in our case, the element is partly hidden by the scrollbox. This behavior was the default behavior for old MUI 3.x on Amiga as far I can see. Beside, I see uses for such feature, it should be extremely seldom, that you want to be notified about clicks on your non visible part. For me it is very odd to make this seldom needed to old versions incompatible behavior as the new default, and not, as I would suggest create a Flag which turns on the new way for event handling. Btw. even in this case I would expect some kind of marker in the event that this was triggered on a hidden part. You have nearly no way to know that somewhere in the tree above you some element could cause that.
But in the end, the most important part is I know it now and it also explains some strange behavior I had in the LCL (clicks on sleeping windows, clicks on not visible tabs) which should all be fixed by that.
I also did a new compilation of Leu, this version now already has a open and save requester, it should be able to open xls, xlsx, ods and maybe csv files (if you change the pattern I preconfigured). The output format you define by the extension, I tried xls, xlsx, ods, csv and html and all seems to work as expected.
The summary of the long weekend, very funny tool already, Excel (xls, xlsx) and Open/LibreOffice (ods) loading works nicely, it already draws right, left and center aligned, with background and colors, also the calculation works as it should be and I implemented the multiple Worksheets selector. It’s much faster now, because it only redraws the cells which were changed (especially when dragging the cell border or selecting cells)
So I made a little “Release”, it’s just everything hammered together, still VERY buggy! for sure. just call “Leu <your file>” if you call without a file you get an empty playground where you can type your own stuff into, but formats and so on are not available.
Long time before some people started to port OpenOffice/LibreOffice to Amiga OS4 (sadly only OS4). I saw some screenshots but that is also already a long time ago, seems that is a bit of a too big fish to fry.
Maybe a smarter way would be to just implement something like LibreOffice which can read files from LibreOffice. I gave it a go, and it was not that complicated as I thought it would be, at least if you are using the right language (FreePascal) and the right GUI set (MUIClass). The biggest problem is no usable table component in MUI (at least I know of, for all systems available). I had to implement one from scratch.
And this being FreePascal, of course it works on all Amiga Systems (not only OS4). I implemented only some styles/options (no font size and font name) but color and font styles are there, also left,center and right alignment. It even calculates cells. Funny tool, one could make a real LibreOffice Calc Viewer out of this.