Original Post
I'm a little divided about this, so I thought I'd ask the question here. More than a few of you here are probably familiar with Hex Workshop. It's a feature-rich hex editor for Windows, and one of my favourite tools. I've been using it for over 10 years now. Here's what the interface looks like with the default settings:
Now, to the point. I'm working on a fairly large non-commercial project right now. It's just something I'm doing by myself, but it will be released publicly. This project is a program which allows physical systems to be modelled, run, and debugged, entirely in software (a hardware emulator). As part of this project, I needed to create a custom control to allow memory buffers to be viewed and edited on the fly, within my debugger as the system is running. Essentially, I needed a mini hex editor embedded in my app. Naturally, when I thought of a hex editor, the first thing I thought of was Hex Workshop. I also know most of the people who will be using this app in the immediate future also use Hex Workshop. I wanted to make my editor consistent with the look and feel I was used to, and my users are used to, so I set about creating my own control with a similar look and similar behaviour. Here's what I ended up with:
There really isn't a lot to this. It's a dozen or so pages of win32 code all up to build the control. Hex Workshop has a lot more to it than just its data editor window, but it is of course a significant part, and it does a lot to define the look of the program. I didn't have too many problems with this before I made my control, but now that I've actually done it and I can see just how similar it is, I'm having second thoughts. I did use a different font, font size, and column spacing, which were more appropriate within my program, but the colours for the columns in particular have been directly taken from Hex Workshop. So, to the question then, do you think is this unethical? Should I avoid making my editor look like another one?
Now, to the point. I'm working on a fairly large non-commercial project right now. It's just something I'm doing by myself, but it will be released publicly. This project is a program which allows physical systems to be modelled, run, and debugged, entirely in software (a hardware emulator). As part of this project, I needed to create a custom control to allow memory buffers to be viewed and edited on the fly, within my debugger as the system is running. Essentially, I needed a mini hex editor embedded in my app. Naturally, when I thought of a hex editor, the first thing I thought of was Hex Workshop. I also know most of the people who will be using this app in the immediate future also use Hex Workshop. I wanted to make my editor consistent with the look and feel I was used to, and my users are used to, so I set about creating my own control with a similar look and similar behaviour. Here's what I ended up with:
There really isn't a lot to this. It's a dozen or so pages of win32 code all up to build the control. Hex Workshop has a lot more to it than just its data editor window, but it is of course a significant part, and it does a lot to define the look of the program. I didn't have too many problems with this before I made my control, but now that I've actually done it and I can see just how similar it is, I'm having second thoughts. I did use a different font, font size, and column spacing, which were more appropriate within my program, but the colours for the columns in particular have been directly taken from Hex Workshop. So, to the question then, do you think is this unethical? Should I avoid making my editor look like another one?