Changes

Jump to navigation Jump to search
401 bytes removed ,  13:49, 23 July 2008
no edit summary
Line 10: Line 10:  
}}
 
}}
   −
'''libwsmenu''' is a brand new project with the intention of building a wrapper for libwiisprite to easily create menus for homebrew software. It will be hosted at [http://code.google.com/p/libwsmenu/ Google Code]. I would greatly appreciate any feedback on features that should be included, suggestions on implementation or if this even seems like a worthwhile project. Feel free to discuss on the talk page or to me privately at my gmail address, thavilden@.....
+
'''libwsmenu''' is a brand new project with the intention of building a wrapper for libwiisprite to easily create menus for homebrew software. It will be hosted at [http://code.google.com/p/libwsmenu/ Google Code]. I would greatly appreciate any feedback on features that should be included, suggestions on implementation or if this even seems like a worthwhile project. Feel free to discuss on the talk page or to me privately at my gmail address, thavilden@..... I'm working out all the details here so the process can be open for feedback. I really hate when a "standard" sort of comes out without any community input and is lousy because the creator didn't think it through all the way. I fear I might be one of those creators.
       
==Project Info==
 
==Project Info==
 
===Proposed Features===
 
===Proposed Features===
*Main object that takes a one or two dimensional array of function pointers and builds workable menus out of them. Will also need a corresponding array of text or images for each button, button backgrounds, menu background.
+
*Menu object that takes a one or two dimensional array of Button objects, which each contain a function pointer, default button image, hover button image, selected button image, foreground icon and foreground text.
 +
*Menu object will have methods to check if any of the Buttons are being hovered over or selected and then will return or call their pointed function.
 
*Allow copying a menu object, so that one main menu can be created with other sub menus copied therefrom and modified.
 
*Allow copying a menu object, so that one main menu can be created with other sub menus copied therefrom and modified.
*<del>Use wiimote IR input with a default cursor</del> Will just need to use functions that check against info obtained from IR.
   
===Possible issues===
 
===Possible issues===
*I can't think of an easy way to allow a mix of text AND images over buttons on the menu. <del>Unless maybe an "icon" class with an overloaded constructor?</del> Roll that all into Button that can have text and icon at the same time, and if it's missing one, assign a null image or something.
   
*The menu, buttons and all will have to sit in a LayerManager, but LayerManager has no visible option, so where do we put the Menu when not in use? Or is it better to discard the menu from memory and rebuild later? Will look into how this is done on other software. Each menu/function can sit in its own LayerManager and be shoved offscreen when needed. Maybe if the manager is not drawn before a flush it will not appear? Will look into this.
 
*The menu, buttons and all will have to sit in a LayerManager, but LayerManager has no visible option, so where do we put the Menu when not in use? Or is it better to discard the menu from memory and rebuild later? Will look into how this is done on other software. Each menu/function can sit in its own LayerManager and be shoved offscreen when needed. Maybe if the manager is not drawn before a flush it will not appear? Will look into this.
 
*When allowing some other function to access video that does not use libwiisprite (say an emulator) then how do we make sure the path is clear, so to speak?
 
*When allowing some other function to access video that does not use libwiisprite (say an emulator) then how do we make sure the path is clear, so to speak?
*The classes can't be checking the wiimote all willy nilly, so user will have to init wpad and make a call to check called states and all that
+
 
*I've forgotten how to deal with passing arrays and dealing with their sizes. That's why I have reference books though.
  −
*I'm starting to think I might want to use vectors or another data structure if it's going to allow adding and removing buttons.
      
==Class Member Function Outline==
 
==Class Member Function Outline==
Line 39: Line 36:  
*bool Select(u32 x, u32 y);
 
*bool Select(u32 x, u32 y);
 
*void Deselect();
 
*void Deselect();
 +
    
==Development information==
 
==Development information==
 
*devkitpro (libogc/devkitppc/libfat/wiiuse)
 
*devkitpro (libogc/devkitppc/libfat/wiiuse)
*libwiisprite
+
*[[Libwiisprite]]
 
Borrowing heavily from
 
Borrowing heavily from
 
*[[Homebrew_apps/WiiPhysics|WiiPhysics]]
 
*[[Homebrew_apps/WiiPhysics|WiiPhysics]]
49

edits

Navigation menu