-
Notifications
You must be signed in to change notification settings - Fork 10
Boot menu now defaults to landscape mode #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: cb
Are you sure you want to change the base?
Conversation
All Console output now restricted to a 600 x 600 pixel square area which can be centered within the screen in either portrait or landscape mode. This makes writing the menu code easier and it does not change even if the orientations are switched.
|
Oh and I forgot to add that my IDE ran astyle on all the modified files so there would appear to be a large number of changes for each file. Most of them don't change anything except move a bracket here, add a tab there etc. You should be able to identify the core areas of change which are mostly in encore_boot() and some routines in lcd.c. Boot menu items are a bit changed because of the limited real estate in landscape. |
|
Hey j4mm3r-- First off, thanks so much for the contribution! I'll add it, but I have a few requests, if possible to fix first...
Anyway, again, nice work-- don't worry about the ide stuff; it's probably just making everything easier for me to read anyway :) When we're all done, I'll probably port this over to the Nook Tablet as well-- if you wanna help, let me know.. Basic functionality is already in and working, but now the NC is ahead of the NT :) |
|
Thinking about it a little more-- Maybe we should have the placement of the boot info/credits as well as the menu options themselves be calculated off the screen resolution/orientation rather than hard-coded? That way, the same menu coding can be used for devices of any resolution without having to re-position all the elements... let me know what you think. |
|
Hi fattire, Thanks for your comments and continued support. I guess the lcd.c change must've been in a hurry, ill sort that out and get it fixed. I think a forward declaration of lcd_drawchars is all that is required to get it to compile. About the other points, well... yes the original intention of the portrait mode was because it was more natural for the nook considering the button placements etc. but then with ICS the default seems to be landscape, I mean the boot animation and also the initial lock screen presented when you boot is all landscape. I guess its a matter of personal preference which orientation is preferred and I also thought of making it configurable by adding a preferences file... but then I was wary of adding more files than there are already. Maybe its time to have a single preferences file instead of several? Then it would also require an update to dalingrin's nook color tweaks tool as well. UI design is a killer for me and it is really hard to come up with a really pleasing layout (What you did before was amazing by the way). In any case, lets do this: I'll try to rework and implement a set of core lcd/console handling functions which can probably also let the code from main.c and menu.c query and get information about the present state and dimensions of the drawing areas. For the stuff like "E 0" and credits etc, what do you say to have a special area of the screen dedicated to these pieces of info and then have an API to print to it? I'm thinking bottom right corner of the screen irrespective of the screen orientation? Lets see, I'll send you a draft of the layout and you tell me what you think. /j4mm4r |
|
So in no particular order..
|
|
Yes lets put it on the XDA thread for more discussion and ideas. Ill take a crack at the NT u-boot code to see what we have there. |
Hi fattire,
Good work on the boot menu so far and I figured landscape mode should be the default on the nook, so I implemented a few things to make it happen.
There are some changes to the console handling stuff and also the bit map drawing routine to enable one to set a custom offset for a square region of the screen which can then be used as a reference to draw everything else within it. In our case we can only afford a max area of 600 x 600, so the rest of the code assumes just that. Hence if you switch to portrait mode (uncomment line 578 in main.c), no changes are required in the rest of the menu code.
I had to rotate all the logos 90 degrees clockwise to get my bmp drawing routine to handle the orientation change automatically.
Let me know what you think and if possible pull these commits into your repo and make it official
/j4mm3r.