Hobby-hacking Eric

2006-01-19

So yesterday it occured to me that I should shelve some of my GUI implementation ideas, namely, putting all the gui stuff into their own seperate files, completely apart from core darcs and letting it all have its own namespace.

The darcs code has this interesting idea that certain commands should have a -gui flag, and that when you pass this flag to a command, like darcs whatsnew -gui then it pops up a little graphical window. I guess this would be a useful thing to have. I'll have to work out how all this resource fork stuff on the Mac works out, whether it'd be possible to have the darcs binary do the graphical stuff outside of this whole appbundle thingy, but meh, just a technical detail right?

At some point I will have to create a seperate Main module just for a graphical darcs. This would be for the double-clickable version of darcs on a Mac or a Windows box. When you call this version of darcs, the first thing it should present you is either the control centre for your most recent repository or a file selection dialogue asking you to select a repository. But this alternate main module need to involve moving a bunch of code around like I first imagined.

The main idea then is that I want to respect the old code and the old ideas. Try to make my patches minimal and non-invasive. So what I'm working on now is the following
  1. get the gui code to compile - not to work, just get it so that when you do ./configure --with-wx and run make, ghc doesn't yell at you for all the dust the code's been collecting
  2. import my tree-control stuff into whatsnew so that at least that piece of the gui works
  3. figure out how this should work out patch-wise; do i want to submit a patch which comments out the stuff I'm not ready to work on yet just so it compiles? Should i wait till I get everything somewhat working again?
  4. edit the makefile, make sure macosx-apps is called on the darcs binary
  5. figure out if there is any way to make the graphical stuff work on a standalone darcs executable without a surrounding bundle


No comments:

Blog Archive