User Tools

Site Tools


ui_extension:ui_extension

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ui_extension:ui_extension [2005/03/14 19:10] – added plans for ui extension 6 musicmusicui_extension:ui_extension [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
 ====== UI Extensions ====== ====== UI Extensions ======
 +**Warning: This page is terribly out-dated**
 +
 ===== Introduction ===== ===== 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. 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.+The UI Extension API 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 ===== ===== Developer resources =====
-==== Creating UI Extensions ====+==== Prerequistes for developing UI Extension aware components ====
 In order to create UI Extension aware components, you will need: In order to create UI Extension aware components, you will need:
-  * The [[http://foobar2000.org/download.html#SDK|foobar2000 SDK]] +=== The foobar2000 SDK === 
-  The [[http://music.everywebhost.com/#Columns|UI Extension SDK]] +The foobar200 SDK can be downloaded from the [[http://foobar2000.org/download.html#SDK|foobar2000 homepage]]. 
-  Microsoft Visual C+++=== The UI Extension SDK === 
 +The UI Extension SDK can be downloaded from its [[http://music.morbo.org/ui_extension.php|webpage]]. 
 +=== Microsoft Visual C++ === 
 +Information on Visual C++ can be found from its [[http://msdn.microsoft.com/visualc/productinfo/|homepage]]. 
  
-Also recommended is the current [[http://www.microsoft.com/msdownload/platformsdk/sdkupdate/|Microsoft Platform SDK]].+Microsoft Visual C++ 2003 and 6.0 will both currently work.
  
-If you are unaware of how to set up the foobar2000 SDK, and create foobar2000 components, please read the foobar2000 [[http://foobar.morbo.org/FAQ.html#FAQ_d1|FAQ]] first. Reading the [[http://www.hydrogenaudio.org/forums/index.php?showtopic=18138|plugin development tutorial]] is also worthwhile.+=== Platform SDK === 
 +Not usually required, but recommended is the current [[http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en|Microsoft Platform SDK]]. Beware, the current version of the Platform SDK is not compatible with MSVC6. 
 + 
 +==== Developing UI Extension aware components ==== 
 +If you are unaware of how to set up the foobar2000 SDK, and create foobar2000 components, please read the foobar2000 [[http://foobar.org/FAQ.html#FAQ_d1|FAQ]] first. Reading the [[http://www.hydrogenaudio.org/forums/index.php?showtopic=18138|plugin development tutorial]] is also worthwhile.
  
 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 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_with_helpers.h" as appropriate in your code.+You should include the header "../ui_extension.h" as appropriate in your code.
  
-UI Extension hosts must implement the [[http://music.everywebhost.com/ui_extension/classui__extension__host.html|ui_extension_host]] interface, whilst panels should implement the [[http://music.everywebhost.com/ui_extension/classui__extension.html|ui_extension]] interface.+UI Extension hosts must implement the [[http://music.morbo.org/ui_extension/classui__extension__host.html|ui_extension_host]] interface, whilst panels should implement the [[http://music.morbo.org/ui_extension/classui__extension.html|ui_extension]] interface.
  
-[[http://music.everywebhost.com/ui_extension/index.html|View doxygen generated documentation of the interfaces]]+[[http://music.morbo.org/ui_extension/index.html|View doxygen generated documentation of the interfaces]]
  
 Some example components you can look at are:\\ Some example components you can look at are:\\
-[[http://music.everywebhost.com/#Columns|Album list panel]]\\ +[[http://music.morbo.org/panels.php|Album list panel]]\\ 
-[[http://music.everywebhost.com/#Columns|ASCII playback buttons]]\\ +[[http://music.morbo.org/panels.php|ASCII playback buttons]]\\
-[[http://www.stud.uni-karlsruhe.de/~uzbs/fb2k/html/#history|History]]\\ +
-[[http://www.stud.uni-karlsruhe.de/~uzbs/fb2k/html/#simple_spectrum|Simple spectrum panel]]\\+
 [[http://www.hydrogenaudio.org/forums/index.php?showtopic=29363|Track info panel]]\\ [[http://www.hydrogenaudio.org/forums/index.php?showtopic=29363|Track info panel]]\\
-[[http://music.everywebhost.com/#Columns|Static control panel]]\\ +[[http://music.morbo.org/ui_extension.php|Static control panel]]\\ 
-[[http://music.everywebhost.com/#Columns|Extended search panel]]\\+[[http://music.morbo.org/ui_extension.php|Extended search panel]]\\
 ==== Known shortcomings in UI Extension API version 5 ==== ==== Known shortcomings in UI Extension API version 5 ====
   * ui_extension_host::override_status_text, ui_extension_host::restore_status_text have no HWND parameter. This hinders the functionality of panel-hosts.   * ui_extension_host::override_status_text, ui_extension_host::restore_status_text have no HWND parameter. This hinders the functionality of panel-hosts.
   * No method to retrieve whether a component supports multiple instances or not.   * 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.   * 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+==== Changes for UI Extension 6 ====
   * Add a subclass for splitter panels   * Add a subclass for splitter panels
   * Add methods for displaying a configuration dialog for UI Extensions   * Add methods for displaying a configuration dialog for UI Extensions
   * ui_extension_host API will no longer be single instance only   * ui_extension_host API will no longer be single instance only
-  * Implement methods in ui_extension_fcatory to retrieve whether extension is single or multiple instance+  * Implement methods in ui_extension_factory to retrieve whether extension is single or multiple instance
   * Add HWND parameters to ui_extension_host::override_status_text and ui_extension_host::restore_status_text functions   * Add HWND parameters to ui_extension_host::override_status_text and ui_extension_host::restore_status_text functions
 +  * Changed way adding items to host menu works
 +  * Added APIs for embedding standard Columns UI spectrum analyser in your own window
 +  * Added APIs for new customisable buttons toolbar (including default bitmaps, pushed state, and drop-downs)
 +  * Rename TYPE_LAYOUT to TYPE_CONTAINER
 +  * More..
ui_extension/ui_extension.1110827449.txt.gz · Last modified: 2007/08/25 22:58 (external edit)