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/23 14:55] – (old revision restored) 127.0.0.1ui_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 =====
 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.
Line 10: Line 12:
 The foobar200 SDK can be downloaded from the [[http://foobar2000.org/download.html#SDK|foobar2000 homepage]]. The foobar200 SDK can be downloaded from the [[http://foobar2000.org/download.html#SDK|foobar2000 homepage]].
 === The UI Extension SDK === === The UI Extension SDK ===
-The UI Extension SDK can be downloaded from its [[http://music.everywebhost.com/#Columns|webpage]].+The UI Extension SDK can be downloaded from its [[http://music.morbo.org/ui_extension.php|webpage]].
 === Microsoft Visual C++ === === Microsoft Visual C++ ===
 Information on Visual C++ can be found from its [[http://msdn.microsoft.com/visualc/productinfo/|homepage]].  Information on Visual C++ can be found from its [[http://msdn.microsoft.com/visualc/productinfo/|homepage]]. 
  
-The optimising Microsoft Visual C++ 2003 (7.1) is currently the prefered compiler because of its better support for templating. Microsoft Visual C++ 6.0 will also work.+Microsoft Visual C++ 2003 and 6.0 will both currently work.
  
-The Microsoft Visual C++ 2003 compiler is freely available in the [[http://msdn.microsoft.com/visualc/vctoolkit2003/|Visual C++ 2003 toolkit]], and so are some .libs not included with the toolkit (namely msvcrt.lib) with the [[http://msdn.microsoft.com/netframework/downloads/updates/default.aspx#.NET%20Framework%201.1%20Downloads|.NET Framework SDK 1.1]]. You can use these to set up the MSVC7.1 compiler with the MSVC6 IDE if you wish. Be warned though, the MSVC6 debugger is not compatible with the MSVC7.1 compiler's pdb files. Alternate freely available debuggers you can use are the [[http://www.microsoft.com/whdc/devtools/debugging/default.mspx|Debugging Tools for Windows]], or [[http://lab.msdn.microsoft.com/express/visualc/|Microsoft Visual C++ 2005 Express]]. Also, be warned of [[http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=a5c0e762-4af6-4d86-bc4b-987d4cb1eedc|this bug]] in the current version of the MSVC7.1 compiler. 
 === Platform SDK === === Platform SDK ===
-Not usually required, but highly recommended is the current [[http://www.microsoft.com/msdownload/platformsdk/sdkupdate/|Microsoft 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 ==== ==== Developing UI Extension aware components ====
Line 25: Line 26:
 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.
Line 44: Line 43:
   * 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 ==== +==== Changes for UI Extension 6 ====
-  * Rename TYPE_LAYOUT to TYPE_SPLITTER+
   * 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
Line 51: Line 49:
   * Implement methods in ui_extension_factory 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 
-> What will become of the tabbed panel stack which currently uses the TYPE_LAYOUT flag IIRC? The name "splitter" doesn't seem to fit there, perhaps the flag should be renamed to TYPE_CONTAINER instead.\\ --- //[[holger.stenger@gmx.de|foosion]] 2005/03/16 21:34// +  * Added APIs for embedding standard Columns UI spectrum analyser in your own window 
->> Hmm I just thought it fitted in more with the splitter subclasswhich 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 extensionsso 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--- //musicmusic 2005/03/16 21:38//+  * Added APIs for new customisable buttons toolbar (including default bitmapspushed state, and drop-downs) 
 +  * Rename TYPE_LAYOUT to TYPE_CONTAINER 
 +  * More..
ui_extension/ui_extension.1111589732.txt.gz · Last modified: 2007/08/25 22:58 (external edit)