OperaExtensionCreator is done…

March 21 I apparently started working on this program, but I didn’t get much done, probably because I couldn’t find any mention of it anywhere. I’m only going by the fact that I had StatusesManager written already in the morning. By March 22 the program was starting to look a bit more presentable.

When I first managed to load a file hierarchy into a TreeView with the help of someone else’s class, it looked like this: This link retired before it was even eligible for a pension.. I had to modify that class, because it always used the Desktop as the root folder. It was a bit harder because I had to work with the Shell32 Interop classes, and those are nothing but interfaces you can’t create an instance of. I spent almost the whole rest of the day sleeping, and only in the evening did I finally pluck up the courage to change those event declarations, so that WatcherEx finally raised events with typed EventArgs instead of just an object that had to be cast.

Once I did that, all I had to do was hook these changed events up to the existing handlers and that was it: the program could now handle every change that happened in the directory. Granted, every time it scanned all the files again and redrew the whole treeview – I’ll have to fix that next time I work on it. Today I also declared the program finished, but only afterwards did I realize that it’s not just a loader for other programs, it can also work as a standalone editor.

So until 8:30 PM I kept working on adding folders and files, including templates, through a context menu, and also on generating an extension skeleton. Then I fell asleep while trying to get SunamoVisualStudio running in VC# 2005 as well. The next day, March 24, I finally solved it and then used SVS to create a new project from the existing code of ManazerObrazkuDoAplikace, added images to OEC, and then just debugged OEC so that it wouldn’t throw an exception – after all, I make plenty of mistakes. Before I published it on This link is now just a memory, just as the name of the blog suggests., I was trying to figure out why the classes from OEC were invisible after I moved them into swf. In the end I solved it by not using hardlinks and instead compiling it straight into the project folder, so that all projects had access to it. In the end, what gave me trouble were the custom ContextMenuStrip menus for different items. So here is what the program can do:

  1. Create a new extension right in the program + optionally a basic skeleton for it.
  2. Save the current file or all files using a shortcut.
  3. Create new files right from the program, for now only with the extensions .js, .xml, .html, .txt. Plus Drag&Drop so you can add things like images.
  4. Image previews with basic metadata about them, plus the ability to edit any file except those known to be binary.
  5. Saving changes to disk (the program is still dumb about this: it asks whether to save even if you load an extension and then load another one without making a single change, it will ask you anyway)
  6. Deleting an entire extension, as well as opening any other one in the Data folder.
  7. Packing the extension into an archive and installing it directly into Opera.
  8. Deleting any file or folder from the extension. You can also delete the whole extension this way, but the root node is kept. If you try to create a file/folder in a deleted extension, the extension is created again along with the file/folder.
  9. As for settings, there are only 2 options
    1. Whether the last extension should load automatically without a dialog
    2. What should happen when files on disk change.

And that’s everything I managed to get done in those 2-3 days. …


I created a new extension

I created a new extension


I created a basic skeleton in it

I created a basic skeleton in it


OEC settings

OEC settings

Categories

Leave a Reply