ui_extension:ui_extension
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
ui_extension:ui_extension [2005/03/16 19:47] – replied to comment musicmusic | ui_extension:ui_extension [2009/02/16 21:26] – removed musicmusic | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== UI Extensions ====== | ||
- | ===== Introduction ===== | ||
- | ==== What's all this about UI Extensions? ==== | ||
- | A UI Extension generally refers to a component that implements the ui_extension API. They are also commonly refered to as panels. | ||
- | ==== Right, so what's this ui_extension API you mention? ==== | ||
- | Its an API that allows a component (a UI Extension Host) to insert a window created by another component (UI Extension) into one of its windows as a child window. UI Extensions come in two forms: multiple instance extensions, of which allow hosts to make as many instances of its window as they want. Single instance windows only have one instance of its window created at any one time. | ||
- | ===== Developer resources ===== | ||
- | ==== Creating UI Extensions ==== | ||
- | In order to create UI Extension aware components, you will need: | ||
- | * The [[http:// | ||
- | * The [[http:// | ||
- | * Microsoft Visual C++ | ||
- | Also recommended is the current [[http:// | ||
- | |||
- | If you are unaware of how to set up the foobar2000 SDK, and create foobar2000 components, please read the foobar2000 [[http:// | ||
- | |||
- | You should extract the UI Extension archive to the foobar2000\ui_extension sub-directory of your SDK root folder. You should then proceed to insert the ui_extension project into your workspace, and add it as a dependency of your project. | ||
- | |||
- | You should include the header " | ||
- | |||
- | UI Extension hosts must implement the [[http:// | ||
- | |||
- | [[http:// | ||
- | |||
- | Some example components you can look at are:\\ | ||
- | [[http:// | ||
- | [[http:// | ||
- | [[http:// | ||
- | [[http:// | ||
- | [[http:// | ||
- | [[http:// | ||
- | [[http:// | ||
- | ==== Known shortcomings in UI Extension API version 5 ==== | ||
- | * ui_extension_host:: | ||
- | * No method to retrieve whether a component supports multiple instances or not. | ||
- | * A method to create a configuration dialog for a ui_extension instance may be useful. | ||
- | |||
- | ==== Plans for UI Extension 6 ==== | ||
- | * Rename TYPE_LAYOUT to TYPE_SPLITTER | ||
- | * Add a subclass for splitter panels | ||
- | * Add methods for displaying a configuration dialog for UI Extensions | ||
- | * ui_extension_host API will no longer be single instance only | ||
- | * Implement methods in ui_extension_factory to retrieve whether extension is single or multiple instance | ||
- | * Add HWND parameters to ui_extension_host:: | ||
- | |||
- | > What will become of the tabbed panel stack which currently uses the TYPE_LAYOUT flag IIRC? The name " | ||
- | >> Hmm I just thought it fitted in more with the splitter subclass, which I would expect the tabbed panel stack to implement so that you can switch from the splitter types buit into columns ui to the panel stack without loosing config. But the built in splitters are not implemented as ui extensions, so I'll use which ever name you and Phi think makes the most sense in regard to the general scope of ui extensions in this category. --- // |
ui_extension/ui_extension.txt · Last modified: 2008/05/21 22:09 by musicmusic