This project should be very simple for someone with related experience with GDI+/DirectDraw. I leave the implementation
entirely to the coder, but you must implement the following specification exactly as described, unless a flaw in the
design is found. If a flaw is found, the differences will be mediated and fees will be adjusted if necessary. Please
take the time to read through this specification, and feel free to ask me any questions should they arise. I look
forward to developing a business relationship with you & happy bidding.
Requirements:
- The object must be re-sizable within the editing environment according to scale:
- In increments of character width if in Text mode, in increments of pixel element width if in Graphic mode.
- Must be written in C# or C++ in the form of an ActiveX object.
- Must be written efficiently and must be fast and flicker free (implementation of double buffering should suffice,
- and should be very simply done in .NET); I am open to other more efficient drawing methods as well.
- If you have already made a solution that accomplishes the goals of my specification, it must meet or exceed the
- criteria specified here, and the full source code must be available.
-- I require that the coder communicate with me at least once a day, 5 days a week regarding progress, additions or any problems that come about.
-- Further additions and enhancements that extend beyond this specification may be added and a larger fee may be negotiated.
-- Explain to me how you will go about executing the project to gain preference in bidding.
-- PLEASE LOOK AT THE CHANGES TO THE SPECIFICATION IN THE PLATFORM AND DELIVERABLES SECTION AND ALTER YOUR BIDS ACCORDINGLY --
## Deliverables
Font file format: The header of the Font file will consist of a single byte, 4 bits representing the numerical pixel
width of the font, the remaining 4 bits representing the numerical pixel height of the font. The
ON/OFF state of all pixel elements in the character will be stored in binary form. The font set
must support ASCII 32-126, and extended ASCII 128-254 (as seen in the image associated with this bid request).
The ASCII value 0 will print a solid block (all pixel elements within the character element are lit).
Fonts must be available in 3 sizes: Small, Medium, Large. If a standard font format could be used
and displayed correctly, this is preferred. If a proprietary format is developed, the respective
font sizes should be agreed upon and must display correctly. Small should be the smallest possible,
Medium should be normal sized, Large should be over sized.
Events: [NOTE: These events must use the custom naming seen here, events which return the position of the ]
[ mouse must recognise what mode the screen is in (Text or Graphic) and based on this return ]
[ the pixel element position or the character element position, not the actual pixel position.]
- Standard events: onMouseMove(), onMouseOver(), onMouseDown(), onMouseUp(), onMouseClick(), onMouseDblClick(),
onMouseHover(), onMouseOut(), onMouseIn(), onMouseWheel(), onKeyUp(), onKeyDn(), onKeyPress(),
onResize(), onGotFocus(), onLostFocus() [Most of these events are inherited by the control].
Please see the document associated with this bid request for a specification of Methods and Properties which must be implemented.
-- UPDATE: --
## AllowInput property would dictate whether or not onKey*() ##
## events are raised and what if buffering/editing is performed. ##
## On this note, a EchoInput property should be added. If this ##
## EchoInput property is enabled, changes will be printed to ##
## screen automatically [Text mode only]. ##
## Arrows should have the effect of moving the cursor around. ##
## Unless needed Enter should act like all other key presses. ##
## Note: All key presses in onKey* events are KeyAscii only. ##
## I do not think the padding is needed. Enter would make ##
## the line split and cursor move to the beggining of the ##
## next line. ##
## Del and Backspace should have the effect of clearing the ##
## corresponding char based on the position of the cursor ##
## (like most editing facilities). Backspace should of course ##
## alter the position of the cursor, and Del would alter the ##
## positioning of all text that comes after the cursor. ##
## WriteLine() need not support multi line printing. CR+LF ##
## should be ignored. ##
## WriteLine() in graphic mode should print a series of chars ##
## starting at the x, y pixel position. ##
## Scrollbar should be drawn in pixels to match the rest of the control. ##
## The scrollbar is not considered part of the character width of the display. ##
Standard terms:
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
## In light of these issues I realise that I need all of the ##
## editing facilities built into the TextBox control supported ##
## here. Please modify your bid to reflect these changes. ##
## The control in Text mode should act just like a Multi-line ##
## TextBox, unless it is resized into a single character line. ##
## In text mode, resizing the control should have the same ##
## effect on the contained text as it does in the TextBox ##
## control. Word-wrap must be supported. There should be ##
## a 'Text' property which behaves like the TextBox control. ##
## Scrolling up/down using a scrollbar drawn on the control ##
## must be supported. Side-scrolling need not be supported. ##
## This scrollbar should look like what you would find on the ##
## editing facilities found on older Palm pilot LCD screens. ##
## Scrolling UP/Down using a mouse wheel must be supported. ##