ewol/class_ewol__widget__FileChooser.html
2014-10-18 09:23:18 +02:00

231 lines
15 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>ewol Library</title>
<link rel="stylesheet" href="base.css">
<link rel="stylesheet" href="menu.css">
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="container">
<h1><a href="index.html">ewol library</a></h1>
<h4><a href="http://github.com/heeroyui/ewol/">&nbsp;&nbsp;&nbsp;[ sources ]</a></h4>
<h3>API:</h3> <div id="menu">
<ul class="niveau1">
<li class="sousmenu"><a href="namespace_ewol.html">ewol</a>
<ul class="niveau2">
<li><a href="namespace_ewol__translate.html">translate</a>
</li>
<li><a href="namespace_ewol__key.html">key</a>
</li>
<li><a href="namespace_ewol__widget.html">widget</a>
</li>
<li><a href="namespace_ewol__openGL.html">openGL</a>
</li>
<li class="sousmenu"><a href="namespace_ewol__context.html">context</a>
<ul class="niveau3">
<li><a href="namespace_ewol__context__clipBoard.html">clipBoard</a>
</li>
</ul>
</li>
<li><a href="namespace_ewol__compositing.html">compositing</a>
</li>
<li><a href="namespace_ewol__object.html">object</a>
</li>
<li><a href="namespace_ewol__resource.html">resource</a>
</li>
<li><a href="namespace_ewol__font.html">font</a>
</li>
<li><a href="namespace_ewol__event.html">event</a>
</li>
</ul>
</li>
<li><a href="namespace_MacOs.html">MacOs</a>
</li>
<li><a href="namespace_IOs.html">IOs</a>
</li>
</ul>
</div>
<h3>Documentation:</h3><div id="menu">
<ul class="niveau1"><li><a href="001_bases.html">Bases</a></li>
</ul><ul class="niveau1"><li><a href="faq.html">Faq</a></li>
</ul></div>
<h3>Tutorials:</h3><div id="menu">
<ul class="niveau1"><li><a href="tutorial_000_Build.html">Build</a></li>
</ul><ul class="niveau1"><li><a href="tutorial_001_HelloWord.html">Hello word</a></li>
</ul><ul class="niveau1"><li><a href="tutorial_010_ObjectModel.html">Object model</a></li>
</ul><ul class="niveau1"><li><a href="tutorial_011_ObjectConfig.html">Object config</a></li>
</ul><ul class="niveau1"><li><a href="tutorial_012_ObjectMessage.html">Object message</a></li>
</ul><ul class="niveau1"><li><a href="tutorial_020_FileAccess.html">File access</a></li>
</ul><ul class="niveau1"><li><a href="tutorial_021_Resources.html">Resources</a></li>
</ul><ul class="niveau1"><li><a href="tutorial_030_ConplexeXmlGui.html">Conplexe xml gui</a></li>
</ul><ul class="niveau1"><li><a href="tutorial_050_CreateCustomWidget.html">Create custom widget</a></li>
</ul><ul class="niveau1"><li><a href="tutorial_051_AddWidgetCustumInXML.html">Add widget custum in x m l</a></li>
</ul></div>
<br/><h3>Associate libraries:</h3><div id="menu">
<ul class="niveau1"><li><a href="../ejson/index.html">ejson</a></li>
</ul><ul class="niveau1"><li><a href="../egami/index.html">egami</a></li>
</ul><ul class="niveau1"><li><a href="../ege/index.html">ege</a></li>
</ul><ul class="niveau1"><li><a href="../esvg/index.html">esvg</a></li>
</ul><ul class="niveau1"><li><a href="../etk/index.html">etk</a></li>
</ul><ul class="niveau1"><li><a href="../exml/index.html">exml</a></li>
</ul></div>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</div>
</div>
<div class="container" id="content">
<h1>class: ewol::widget::FileChooser</h1><hr/><h2>Description:</h2>
File Chooser is a simple selector of file for opening, saving, and what you want ...<br/>
As all other pop-up methode ( wost case we can have) the creating is simple , but event back is not all the time simple:<br/>
Fist global static declaration and inclusion:
<pre>
<span class="code-preproc">#include &lt;ewol/widget/meta/FileChooser.h&gt;
</span></pre><br/>
The first step is to create the file chooser pop-up : (never in the constructor!!!)
<pre>
<span class="code-class">std::shared_ptr</span>&lt;<span class="code-class">ewol::widget::FileChooser</span>&gt; tmpWidget = <span class="code-class">ewol::Widget::FileChooser</span>::<span class="code-function-name">create(</span>);
<span class="code-keyword">if </span>(tmpWidget <span class="code-operator">==</span> nullptr) <span class="code-operator">{</span>
<span class="code-function-name">APPL_ERROR(</span><span class="code-text-quote">"Can not open File chooser !!! "</span>);
<span class="code-keyword">return </span>-<span class="code-number">1</span>;
<span class="code-operator">}</span>
<span class="code-comment">// register on the Validate event:
</span>tmpWidget-&gt;signalValidate.<span class="code-function-name">bind(</span>shared_fro<span class="code-member">m_t</span><span class="code-function-name">his(</span>), &::onCallbackOpenFile);
<span class="code-comment">// no need of this event watching ...
</span>tmpWidget-&gt;signalCancel.<span class="code-function-name">bind(</span>shared_fro<span class="code-member">m_t</span><span class="code-function-name">his(</span>), &::onCallbackClosePopUp);
<span class="code-comment">// set the title:
</span> tmpWidget-&gt;<span class="code-function-name">setTitle(</span><span class="code-text-quote">"Open files ..."</span>);
<span class="code-comment">// Set the validate Label:
</span>tmpWidget-&gt;<span class="code-function-name">setValidateLabel(</span><span class="code-text-quote">"Open"</span>);
<span class="code-comment">// simply set a folder (by default this is the home folder)
</span><span class="code-comment">//tmpWidget-&gt;setFolder("/home/me");
</span><span class="code-comment">// add the widget as windows pop-up ...
</span><span class="code-class">std::shared_ptr</span>&lt;<span class="code-class">ewol::widget::Windows</span>&gt; tmpWindows = <span class="code-function-name">getWindows(</span>);
<span class="code-keyword">if </span>(tmpWindows <span class="code-operator">==</span> nullptr) <span class="code-operator">{</span>
<span class="code-function-name">APPL_ERROR(</span><span class="code-text-quote">"Can not get the current windows !!! "</span>);
<span class="code-keyword">return </span>-<span class="code-number">1</span>;
<span class="code-operator">}</span>
tmpWindows-&gt;<span class="code-function-name">popUpWidgetPush(</span>tmpWidget);
</pre><br/>
Now we just need to wait the the open event message.<br/>
<pre>
<span class="code-type">void</span>::<span class="code-function-name">onCallbackOpenFile(</span><span class="code-storage-keyword">const</span> <span class="code-class">std::string</span>&<span class="code-input-function"> _value</span>) <span class="code-operator">{</span>
<span class="code-function-name">APPL_INFO(</span><span class="code-text-quote">"Request open file : '"</span> &lt;&lt;<span class="code-input-function"> _value</span> &lt;&lt; <span class="code-text-quote">"'"</span>);
<span class="code-operator">}</span>
<span class="code-type">void</span>::<span class="code-function-name">onCallbackClosePopUp(</span>) <span class="code-operator">{</span>
<span class="code-function-name">APPL_INFO(</span><span class="code-text-quote">"The File chooser has been closed"</span>);
<span class="code-operator">}</span>
</pre>
This is the best example of a Meta-widget.<br/><br/>
<h2>Constructor and Destructor:</h2>
<pre>
# <a class="code-function" href="#1639">FileChooser</a> ();<br/>+ <span class="code-storage-keyword">virtual</span> <a class="code-function" href="#1644">~FileChooser</a> ();<br/></pre>
<br/>
<h2>Synopsis:</h2>
<pre>
+ <a class="code-type" href="class_ewol__object__Signal.html">ewol::object::Signal</a>&lt;void&gt; <a class="code-member" href="#1637">signalCancel</a>;<br/>+ <a class="code-type" href="class_ewol__object__Signal.html">ewol::object::Signal</a>&lt;std::string&gt; <a class="code-member" href="#1638">signalValidate</a>;<br/># <span class="code-type" >void</span> <a class="code-function" href="#1640">init</a> ();<br/>+ <a class="code-function" href="#1641">DECLARE_WIDGET_FACTORY</a> (FileChooser <span class="code-argument"></span>,<br/> "FileChooser" <span class="code-argument"></span>);<br/>+ <span class="code-type" >void</span> <a class="code-function" href="#1647">setTitle</a> (<span class="code-storage-keyword">const</span> <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> & <span class="code-argument">_label</span>);<br/>+ <span class="code-type" >void</span> <a class="code-function" href="#1649">setValidateLabel</a> (<span class="code-storage-keyword">const</span> <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> & <span class="code-argument">_label</span>);<br/>+ <span class="code-type" >void</span> <a class="code-function" href="#1651">setCancelLabel</a> (<span class="code-storage-keyword">const</span> <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> & <span class="code-argument">_label</span>);<br/>+ <span class="code-type" >void</span> <a class="code-function" href="#1653">setFolder</a> (<span class="code-storage-keyword">const</span> <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> & <span class="code-argument">_folder</span>);<br/>+ <span class="code-type" >void</span> <a class="code-function" href="#1655">setFileName</a> (<span class="code-storage-keyword">const</span> <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> & <span class="code-argument">_filename</span>);<br/>+ <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> <a class="code-function" href="#1657">getCompleateFileName</a> ();<br/>+ <span class="code-type" >void</span> <a class="code-function" href="#1658">updateCurrentFolder</a> ();<br/>+ <span class="code-storage-keyword">virtual</span> <span class="code-type" >void</span> <a class="code-function" href="#1659">onGetFocus</a> ();<br/></pre>
<br/>
<h2>Object Hierarchy:<h2>
<pre>
+std::enable_shared_from_this&lt;Object&gt;<br/>+<a href="class_ewol__object__ParameterList.html">ewol::object::ParameterList</a><br/>+<a href="class_ewol__object__SignalList.html">ewol::object::SignalList</a><br/> +--> +<a href="class_ewol__Object.html">ewol::Object</a><br/> +--> +<a href="class_ewol__Widget.html">ewol::Widget</a><br/> +--> +<a href="class_ewol__widget__Container.html">ewol::widget::Container</a><br/> +--> +<a href="class_ewol__widget__Composer.html">ewol::widget::Composer</a><br/> +--> ewol::widget::FileChooser<br/></pre>
<h2>Detail:</h2>
<a id="1637"/><a id="1638"/><h3>signalCancel</h3><pre>
+ <a class="code-type" href="class_ewol__object__Signal.html">ewol::object::Signal</a>&lt;void&gt; <span class="code-member">signalCancel</span>;<br/></pre>
<br/>
<br/>
<hr/>
<a id="1639"/><h3>signalValidate</h3><pre>
+ <a class="code-type" href="class_ewol__object__Signal.html">ewol::object::Signal</a>&lt;std::string&gt; <span class="code-member">signalValidate</span>;<br/></pre>
<br/>
<br/>
<hr/>
<a id="1640"/><h3>FileChooser</h3><pre>
# <span class="code-function">FileChooser</span> ();<br/></pre>
<br/>
<br/>
<hr/>
<a id="1641"/><h3>init</h3><pre>
# <span class="code-type" >void</span> <span class="code-function">init</span> ();<br/></pre>
<br/>
<br/>
<hr/>
<a id="1644"/><h3>DECLARE_WIDGET_FACTORY</h3><pre>
+ <span class="code-function">DECLARE_WIDGET_FACTORY</span> (FileChooser <span class="code-argument"></span>,<br/> "FileChooser" <span class="code-argument"></span>);<br/></pre>
<br/>
<br/>
<hr/>
<a id="1647"/><h3>~FileChooser</h3><pre>
+ <span class="code-storage-keyword">virtual</span> <span class="code-function">~FileChooser</span> ();<br/></pre>
<br/>
<br/>
<hr/>
<a id="1649"/><h3>setTitle</h3><pre>
+ <span class="code-type" >void</span> <span class="code-function">setTitle</span> (<span class="code-storage-keyword">const</span> <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> & <span class="code-argument">_label</span>);<br/></pre>
<br/>
<br/>
<hr/>
<a id="1651"/><h3>setValidateLabel</h3><pre>
+ <span class="code-type" >void</span> <span class="code-function">setValidateLabel</span> (<span class="code-storage-keyword">const</span> <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> & <span class="code-argument">_label</span>);<br/></pre>
<br/>
<br/>
<hr/>
<a id="1653"/><h3>setCancelLabel</h3><pre>
+ <span class="code-type" >void</span> <span class="code-function">setCancelLabel</span> (<span class="code-storage-keyword">const</span> <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> & <span class="code-argument">_label</span>);<br/></pre>
<br/>
<br/>
<hr/>
<a id="1655"/><h3>setFolder</h3><pre>
+ <span class="code-type" >void</span> <span class="code-function">setFolder</span> (<span class="code-storage-keyword">const</span> <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> & <span class="code-argument">_folder</span>);<br/></pre>
<br/>
<br/>
<hr/>
<a id="1657"/><h3>setFileName</h3><pre>
+ <span class="code-type" >void</span> <span class="code-function">setFileName</span> (<span class="code-storage-keyword">const</span> <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> & <span class="code-argument">_filename</span>);<br/></pre>
<br/>
<br/>
<hr/>
<a id="1658"/><h3>getCompleateFileName</h3><pre>
+ <a class="code-type" href="http://www.cplusplus.com/reference/string/string/">std::string</a> <span class="code-function">getCompleateFileName</span> ();<br/></pre>
<br/>
<br/>
<hr/>
<a id="1659"/><h3>updateCurrentFolder</h3><pre>
+ <span class="code-type" >void</span> <span class="code-function">updateCurrentFolder</span> ();<br/></pre>
<br/>
<br/>
<hr/>
<h3>onGetFocus</h3><pre>
+ <span class="code-storage-keyword">virtual</span> <span class="code-type" >void</span> <span class="code-function">onGetFocus</span> ();<br/></pre>
Event of the focus has been grep by the current widget<br/>
<br/>
<hr/>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-46753803-1', 'heeroyui.github.io');
ga('send', 'pageview');
</script>
</body>
</html>