Tidying Things Up
This week, I have been doing some research on Children's books to see what the best ideas would be in terms of font, color scheme, etc. I was also able to advance in my project by adding necessary buttons, clearing up errors, and attempting a smoothing algorithm.
RESEARCHING CHILDREN'S BOOKS:
I found out that many fonts used in children's books are not distracting, large, and easy-to-read fonts. The best being monospaced fonts, as children with dyslexia are able to read those easier than curvy/fun fonts. I originally had Cooper Black (bolded) as my font, but decided to change to Courier New (bolded), which gives it a cleaner look. I also changed the backgrounds for tracking.h and bookSelection.h to have the same image because this is less distracting than changing the images, and I selected a very simple, blue gradient background for the actual reading of the book. I figured this would be easiest for children who have attention disorders, that way they can only focus on the words I put on the page, along with the intended photos.
COLOR SCHEME AND REMOVING SELECTION OF TEXT
I made a few more cosmetic changes, such as changing the color scheme of the turn page button to blue and making it bigger. I also was able to remove the selection and accidental highlighting of textboxes that I wanted to remain as pure text by calling the mouseDown event:
private: System::Void textBox1_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
HideCaret((HWND)textBox1->Handle.ToPointer());
}
SMOOTHING ALGORITHM (ATTEMPT...)
I attempted to implement a smoothing algorithm, but for some reason, it does not seem to be calling it. The purpose of this smoothing algorithm is that if my cursor (controlled by my eyes) makes it within a certain distance of a textbox, it will automatically move the cursor to that textbox's location. I tried various ranges and sleep times, however, I was unable to see it working. This is my code for that:
public: System::Void OnMouseMove(HWND hwnd) //smoothing algorithm
{
POINT cursorPos;
GetCursorPos(&cursorPos);
//this does not appear to be getting called
for each (Control ^ c in this->Controls)
{
if (c->GetType() == System::Windows::Forms::TextBox::typeid)
{
if (abs(cursorPos.x - c->Location.X == 10000) || abs(cursorPos.y - c->Location.Y == 1000))
{
SetCursorPos(c->Location.X, c->Location.Y);
Sleep(50);
}
}//end of if
}//end of for each
//END OF ADDED CODE!
BOOK SELECTION MAIN MENU STRIP AND BACK TO TRACKING.H
I also updated my book selection form, so that the user can go back and change their tracking settings. Before I did not even have a close window, so I would click "close" via tracking.h and could not change my tracking settings. I also was able to get the main menu strip back, which was very beneficial for maximizing, minimizing, and closing pages.
RESOLUTION OF .NET FRAMEWORK ERROR
Finally, I figured out my .NET framework error. Before it was saying that the handle for readBook.h could not be referenced. I was banging my head against this error for a while, but turns out it was caused by my animations for turning the screen. Once I put an if-else statement for when to animate page turning, that error went away.
I am pleased with my progress this week, but still have a ways to go before Capstone Presentations (in a little less than 2 weeks). What I would like to continue working on this upcoming week is:
Making my code more reusable
Writing more books
Adding a back button to readBook.h
Dialogic Reading (will most likely do this using an array, and then having the user "quiz" themselves at the end of each page or every other page).
Continuation of my smoothing algorithm