Jump to content

Mac OS X SourceList

Recommended Posts

Hi, I'm publishing this if anyone is interested in it.

(yes I'm trying to write a Finder clone, but it will take a very long time)





I'm not publishing this as a Preview in Comunity Applications, because I don't know if I'll ever finish this.


Ok, what once was just a SourceList control has become into an almost complete (visually speaking) Finder clone.

Here are some more recent screenshots:






Link to post

Ok, some details:

The sidebar (technically a SourceList, as mentioned in Apple Human Interface Guidelines) (very recomendable lecture to anyone writing Mac emulation software, BTW). The sidebar is an owner draw ListBox :P I tried with a TreeView, but I couldn't figure how to put variable height nodes on it (to separate among source item sets.

Now I added an owner draw TListView. The idea is to use it for icon view and list view. For column view I'll probably use multiple instances of a TListBox. For Cover Flow view it'll probably be Flying Cow + a TListView.

Link to post

Wow, thats so cool. Will it work with vista?

and just to make sure im not seeing things, your going to make it have Coverflow?!?!

After a bit of searching and research, i have found your Flying Cow app. i dont know how to use it but now i know what your talking about. This Finder clone will be amazing if you do complete it. your a genius.

Link to post

This man is unstoppable!!


Nice to see someone like you, keep going the emu scene alive.

I would very much like to in some sense, can help, but I am only an observer rooting for the development of the project.

If you get something like that, on stable, that together with Flyng Cow, can be run as well as the stack docklet was, is a very welcome addition for those who wish to have an emulation of the OS-X at least competent.

Who knows, you could share your progress with the staff of the Cairo Team, for whom you know, get some kind of hint that interest.

What do you think?

Success in the project Mat.


Link to post

Ok, more updates (redownload the first post please):

Now you can select any Device, Share(ing host), or Place.

Also you can browse among folders.



Release date:

Release? huh? :D

Ok, beta version:

As I said before, I'm not sure if I'll ever finish this app.

Ok ok, if I find myself not finishing the app for some reason (I don't mean solving bugs, I mean implementing a functional app) then I'll just post the sources (with source code documentation of course).

Link to post
Ok, now the app is functional.

I'll just stop development here.


BTW added an icon and changed buttons in the toolbar, even though they are not functional yet.

Mate, damn, but you are one of a kind.

I have dropped this into parallels and tested it on a Mac, and its functionality is lightning fast - even running in an XP portal.

Cheers on behalf of all of us here AND for sharing your considerable talent

Link to post

I say I'll stop development of this because I should try to finish other stuff such as Stacks Docklet first.

But I can't resist make some minor changes to this thing from time to time :)

BTW last version didn't search on typing, new one does (just uploaded).


Made some bugfixes. Added... mmm... can't remember.


I'm on long weekend (holiday Monday). So I'm having a short three days vacation, hahaha. I got to connect to an unprotected wifi network with my notebook so I'm able to post this update :P

I've added Quick Look :P though it's still unfinished.

Let's see: if I can get this thing complete with list and multicolumn and flying cow view, I'll post it into Community Applications :)


I recently installed Icon Tweaker and LeopardXP Blue icon theme, and found Finger XP didn't load the customized icons.

So after some info digging, I found I had to check some registry values first (HKLMSoftwareMicrosoftWindowsCurrentVersionExplorerShell Icons).

In short, FingerXP now supports Icon Tweaker ;)

Also changed quick look skin to something more Apple'ish (transparencies plus round borders).


Two more changes:

- Now "shared" section is loaded async. You'll notice this if your machine is in a big or slow network.

- QuickLook borders pop out more nicely when watching small images.


Enhanced QuickLook. Now it will pop up smoother with big JPEG images.


Added list view. Problems:

- Buggy when used with keyboard.

- Can't expand folders (yet).


Optimized some code. Now folder content shows faster.

Next step: modularize the different folder views, to be able to add more views easily.


Fixed bugs in list view mode.

Ok, modularized all view modes! This was painful task! But code is so much cleaner, I'm sincerely happy with this. :)


BIG update: the list view now behaves like real Mac: you can expand folders inside the view! Just click the arrows ;)


Now .pngs for quicklook and arrows are stored as resources inside .exe file. This makes distribution cleaner. Anyone wanting to tweak the bitmaps just needs a resource hacker ;) (I recommend XN Resource Editor)


Found a bug when testing in another machine:

The computer in question had "Hide extensions of known file types" enabled in explorer Folder options.

This interfered with thumbnails and QuickLook in FingerXP.

Ok, I've solved it. Now FingerXP works correctly even if that option is enabled.


Added multicolumn view!!!!

Just in case anyone gets confused about it's usage:

- Double clicking a folder will open exclusively the folder in the view.

- Just clicking a folder once, will add a new column with that folder.

I think that's how Mac OS X works (but can't remember.... I'll check that next Monday at my job's iMac).


Buttons of icon / list / multicolumn view now have pressed states.


Control Panel works better now. Avoided an access violation problem when some fuc*** stup*** IExtractIcon implementations try to fill a NULL pointer to small icon. So now I just put a valid variable there, then I destroy the small icon because I don't need it.


FingerXP now treats Shell Link files (.lnk aka shortcuts) specially:

- If shortcut destination is a folder, open it inside Finger XP.

- If not, just execute the shortcut as usual.


Fixed a bug when trying to quick look a picture inside a .zip file (now it just doesn't quick look... oh wait, it should at least quick look an icon, hahaha).

When in icons view mode, if more than 70% of folder files are pictures, then icons will be shown 128 x 128 instead of 64 x 64. ;)

Navigation with keyboard is now much easier. Proper focus is given to icons, list items, columns items. Now you can search by typing in multi-column mode too.


BIG update: the Prev and Next buttons now work!


Now vertical scrollbar in columns are always visible, as in Mac OS X.

It was a little of a pain to do that, because SetWindowLong (ListBox.Handle, ..., ... Or LBS_DISABLENOSCROLL Or WS_VSCROLL) didn't work. Finally I came with this:

// Base the new listbox on Delphi's one
TMyListBox = class(TListBox)
procedure CreateParams (var Params : TCreateParams); override;

{ TMyListBox }

procedure TMyListBox.CreateParams(var Params: TCreateParams);
inherited CreateParams (Params);
// Tell Delphi to take into account these flags when creating the listbox:
// LBS_DISABLENOSCROLL tells Windows to never hide the scrollbars
// WS_VSCROLL means we want vertical scrollbar
// WS_HSCROLL means we don't want horizontal scrollbar

Then I replaced TListBox.Create(nil) with TMyListBox.Create(nil). You can also make it into a palette component, I guess, if you need to insert it into your form with the UI editor as usual.


Now Prev and Next button have disabled states. Just like Finder.


Now all buttons have pressed state. Try pressing with mouse button, then releasing it :P (buttons: prev, next; icons, list, columns, coverflow; quicklook)

Link to post
  • 2 weeks later...

...aand how did i miss this?

Matonga, thanks for posting your progress notes and even getting a little technical sometimes. It's truly a pleasure to read :)

Is there any chance you could add the ability to doubleclick the empty space of a window to go up one directory? I've grown so~ used to navigating this way fast in explorer, I'm sad that I can't in FingerXP.


Also, would it be possible to add the ability to, in Column view, scroll the window <----------> using the middle mouse wheel? Pretty pleease ^^


Also, when selecting files by dragging the box over them. I see the flicker of the standard windows dotted line box. Maybe you'd consider adding something like a tinted overlay selection box while selecting files via click & dragging?

So to summarize:

1. Request: Doubleclick margin of window to go up 1 level.

2. Request: In Column view, scroll window's open columns <---> using middle mouse wheel button.

3. Request: In Column view, give arrows more space before end of file name.

4. Suggestion: When selecting multiple files using left-click & drag, replace the dotted line with hightlight overlay.

5. Obeservation: My Icon size and Font size seems to be larger than FingerXP finds comfortable, consequently, layout seems squeezed in areas.

6. Obeservation: In Column mode, the navigation buttons at first did not follow the folder navigations, but now it seems to update, but I'm not sure if it's correct. I'll try and perform some tests and report back.

I know this is a pre-pre release, but damn if I'm not excited, and so forgive my hefty requests and observations so early in the apps development. I wont take it the wrong way if you've more pressing things to work on and real life. of course :) This is just my way of saying thanks and offering ideas for features I'd hope you'd think were useful enough to add (and I'd like as well :P)

Thanks again, and in anything you contribute to the community, I'm very content as is!

ps. the speed with which this thing navigates network folders is top notch. well done!

Link to post

This is so cooll! It's very buggy so far, but still it's come a long way and it's looking great.

If you double click something in Column view the program crashes, and the normal error message pops up: Test1.exe has encountered a problem and needs to close, blah blah. I can't click Don't Send with the error report, the mouse is non responsive. And I can't close it with task manager because the mouse doesn't work there either. I've got to restart to get rid of it.

Thanks again for this great app!!

Link to post
  • 2 weeks later...
  • 3 weeks later...

Mat, your app is not Vista(with my Windows Vista Home Premium SP1) friendly :( I just can use the icon view and column view :( When I use the list view, this message appears me : Access violation at address in module 'kernel32.dll'.Read of address 0000001. And when I use the cover flow, the app just freezes. Help.

Link to post
  • 3 months later...

Please sign in to comment

You will be able to leave a comment after signing in

Sign In Now
  • Create New...