2016-05-02 22:01:55 +02:00
/** @file
2011-07-20 10:33:24 +02:00
* @ author Edouard DUPIN
2012-11-25 11:55:06 +01:00
* @ copyright 2010 , Edouard DUPIN , all right reserved
* @ license GPL v3 ( see license file )
2011-07-20 10:33:24 +02:00
*/
2016-10-03 22:01:55 +02:00
# include <appl/debug.hpp>
# include <appl/global.hpp>
# include <appl/Gui/MainWindows.hpp>
2018-08-24 23:56:19 +02:00
# include <appl/widget/BufferList.hpp>
# include <appl/widget/BufferTree.hpp>
2016-10-03 22:01:55 +02:00
# include <appl/Gui/TextViewer.hpp>
# include <appl/Gui/Search.hpp>
2011-07-20 10:33:24 +02:00
2016-10-03 22:01:55 +02:00
# include <ewol/widget/Button.hpp>
# include <ewol/widget/CheckBox.hpp>
# include <ewol/widget/Sizer.hpp>
# include <ewol/widget/Label.hpp>
# include <ewol/widget/Entry.hpp>
# include <ewol/widget/List.hpp>
# include <ewol/widget/ContextMenu.hpp>
# include <ewol/widget/PopUp.hpp>
# include <ewol/widget/Spacer.hpp>
# include <ewol/widget/Slider.hpp>
# include <ewol/widget/Menu.hpp>
# include <ewol/widget/meta/FileChooser.hpp>
# include <ewol/widget/meta/Parameter.hpp>
# include <ewol/widget/Manager.hpp>
# include <ewol/object/Object.hpp>
# include <ewol/context/Context.hpp>
# include <ewol/widget/meta/StdPopUp.hpp>
# include <appl/Gui/WorkerSaveFile.hpp>
# include <appl/Gui/WorkerSaveAllFile.hpp>
# include <appl/Gui/WorkerCloseFile.hpp>
# include <appl/Gui/WorkerCloseAllFile.hpp>
2012-01-13 13:06:15 +01:00
2013-11-23 18:30:52 +01:00
namespace appl {
2017-08-28 00:09:10 +02:00
etk : : String getVersion ( ) {
2016-03-17 22:52:51 +01:00
return APPL_VERSION ;
2013-05-25 10:59:50 +02:00
}
}
2012-07-24 13:01:40 +02:00
2016-10-03 22:01:55 +02:00
# include <ewol/widget/Label.hpp>
# include <ewol/widget/Spacer.hpp>
2012-07-24 13:01:40 +02:00
2013-12-13 21:50:40 +01:00
class ParameterAboutGui : public ewol : : widget : : Sizer {
2012-07-24 13:01:40 +02:00
public :
2014-08-07 23:41:48 +02:00
ParameterAboutGui ( ) {
addObjectType ( " appl::ParameterAboutGui " ) ;
}
void init ( ) {
2016-03-10 22:37:37 +01:00
propertyMode . setDirectCheck ( ewol : : widget : : Sizer : : modeVert ) ;
ewol : : widget : : Sizer : : init ( ) ;
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < ewol : : widget : : Spacer > mySpacer ;
2012-07-24 13:01:40 +02:00
2014-08-07 23:41:48 +02:00
mySpacer = ewol : : widget : : Spacer : : create ( ) ;
2018-06-19 22:31:29 +02:00
if ( mySpacer = = null ) {
2013-10-07 22:04:21 +02:00
APPL_ERROR ( " Can not allocate widget == > display might be in error " ) ;
2012-07-24 13:01:40 +02:00
} else {
2016-02-15 22:04:10 +01:00
mySpacer - > propertyExpand . set ( bvec2 ( true , true ) ) ;
2013-10-07 22:04:21 +02:00
subWidgetAdd ( mySpacer ) ;
2012-07-24 13:01:40 +02:00
}
2017-08-28 00:09:10 +02:00
etk : : String tmpLabel = " <left> " ;
2013-05-25 10:59:50 +02:00
tmpLabel + = " <b>Editeur De N'ours</b> : v: " ;
2013-10-07 22:04:21 +02:00
tmpLabel + = appl : : getVersion ( ) ;
2012-12-28 18:07:56 +01:00
tmpLabel + = " <br/> " ;
tmpLabel + = " <b>Website</b> : https://github.com/HeeroYui/edn<br/> " ;
tmpLabel + = " <b>License</b> : GPL v3<br/> " ;
tmpLabel + = " <b>Copyright</b> : 2010 Edouard DUPIN<br/> " ;
tmpLabel + = " <br/> " ;
tmpLabel + = " dependency librairies :<br/> " ;
tmpLabel + = " libPng, ogg-tremor, portaudio, libZip<br/> " ;
tmpLabel + = " tinyXml, freetype, agg2.4, etk<br/> " ;
tmpLabel + = " </left> " ;
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < ewol : : widget : : Label > myLabel = ewol : : widget : : Label : : create ( ) ;
2018-06-19 22:31:29 +02:00
if ( myLabel = = null ) {
2013-10-07 22:04:21 +02:00
APPL_ERROR ( " Can not allocate widget == > display might be in error " ) ;
2012-07-24 13:01:40 +02:00
} else {
2016-03-10 22:37:37 +01:00
myLabel - > propertyValue . set ( tmpLabel ) ;
2016-02-15 22:04:10 +01:00
myLabel - > propertyExpand . set ( bvec2 ( true , false ) ) ;
2013-10-07 22:04:21 +02:00
subWidgetAdd ( myLabel ) ;
2012-07-24 13:01:40 +02:00
}
} ;
2014-05-15 21:37:39 +02:00
~ ParameterAboutGui ( ) {
2013-10-09 22:00:24 +02:00
} ;
2012-07-24 13:01:40 +02:00
} ;
2014-05-15 21:37:39 +02:00
MainWindows : : MainWindows ( ) {
2013-11-20 21:57:00 +01:00
addObjectType ( " appl::MainWindows " ) ;
2014-08-07 23:41:48 +02:00
}
void MainWindows : : init ( ) {
ewol : : widget : : Windows : : init ( ) ;
2012-04-23 10:15:43 +02:00
APPL_DEBUG ( " CREATE WINDOWS ... " ) ;
2016-03-10 22:37:37 +01:00
ewol : : widget : : SizerShared mySizerVert ;
ewol : : widget : : SizerShared mySizerVert2 ;
ewol : : widget : : SizerShared mySizerHori ;
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < appl : : TextViewer > myTextView ;
ememory : : SharedPtr < appl : : TextViewer > myTextView2 ;
2018-08-24 23:56:19 +02:00
appl : : widget : : BufferListShared myBufferList ;
appl : : widget : : BufferTreeShared myBufferTree ;
2016-03-10 22:37:37 +01:00
ewol : : widget : : MenuShared myMenu ;
2012-01-13 13:06:15 +01:00
2013-11-07 21:08:57 +01:00
// load buffer manager:
2014-08-07 23:41:48 +02:00
m_bufferManager = appl : : BufferManager : : create ( ) ;
2015-05-21 21:21:01 +02:00
m_viewerManager = appl : : ViewerManager : : create ( ) ;
2013-11-07 21:08:57 +01:00
2016-03-10 22:37:37 +01:00
mySizerVert = ewol : : widget : : Sizer : : create ( ) ;
2016-02-15 22:04:10 +01:00
mySizerVert - > propertyName . set ( " plop 1111111 " ) ;
2016-03-10 22:37:37 +01:00
mySizerVert - > propertyMode . set ( ewol : : widget : : Sizer : : modeVert ) ;
2013-10-07 22:04:21 +02:00
setSubWidget ( mySizerVert ) ;
2016-03-10 22:37:37 +01:00
mySizerHori = ewol : : widget : : Sizer : : create ( ) ;
2016-02-15 22:04:10 +01:00
mySizerHori - > propertyName . set ( " plop 222222222 " ) ;
2016-03-10 22:37:37 +01:00
mySizerHori - > propertyMode . set ( ewol : : widget : : Sizer : : modeHori ) ;
2013-10-07 22:04:21 +02:00
mySizerVert - > subWidgetAdd ( mySizerHori ) ;
2018-08-24 23:56:19 +02:00
if ( false ) {
myBufferList = appl : : widget : : BufferList : : create ( ) ;
myBufferList - > propertyName . set ( " plop 3333333 " ) ;
myBufferList - > propertyExpand . set ( bvec2 ( false , true ) ) ;
myBufferList - > propertyFill . set ( bvec2 ( true , true ) ) ;
//myBufferList->propertyMinSize.set(gale::Dimension(vec2(300,2), gale::distance::pixel));
mySizerHori - > subWidgetAdd ( myBufferList ) ;
} else {
myBufferTree = appl : : widget : : BufferTree : : create ( ) ;
myBufferTree - > propertyName . set ( " plop 3333333 " ) ;
myBufferTree - > propertyExpand . set ( bvec2 ( false , true ) ) ;
myBufferTree - > propertyFill . set ( bvec2 ( true , true ) ) ;
myBufferTree - > propertyMinSize . set ( gale : : Dimension ( vec2 ( 300 , 2 ) , gale : : distance : : pixel ) ) ;
mySizerHori - > subWidgetAdd ( myBufferTree ) ;
}
2016-03-10 23:48:07 +01:00
ewol : : widget : : SpacerShared mySpacer = ewol : : widget : : Spacer : : create ( ) ;
mySpacer - > propertyName . set ( " appl-Buffer-viewer-separator " ) ;
mySpacer - > propertyColor . set ( etk : : color : : black ) ;
2016-04-29 23:16:07 +02:00
mySpacer - > propertyMinSize . set ( gale : : Dimension ( vec2 ( 2 , 2 ) , gale : : distance : : pixel ) ) ;
2016-03-10 23:48:07 +01:00
mySpacer - > propertyExpand . set ( bvec2 ( false , true ) ) ;
mySpacer - > propertyFill . set ( bvec2 ( true , true ) ) ;
mySpacer - > propertyHide . set ( true ) ;
mySizerHori - > subWidgetAdd ( mySpacer ) ;
2016-03-10 22:37:37 +01:00
mySizerVert2 = ewol : : widget : : Sizer : : create ( ) ;
mySizerVert2 - > propertyMode . set ( ewol : : widget : : Sizer : : modeVert ) ;
2013-10-07 22:04:21 +02:00
mySizerHori - > subWidgetAdd ( mySizerVert2 ) ;
2016-02-15 22:04:10 +01:00
mySizerVert2 - > propertyName . set ( " appl-view-code-sizer " ) ;
2012-07-19 18:13:21 +02:00
// main buffer Area :
2013-12-20 00:43:31 +01:00
# if defined(__TARGET_OS__Android)
2014-11-14 23:57:29 +01:00
int32_t sizeText = 16 ;
2013-12-20 00:43:31 +01:00
# else
2014-11-14 23:57:29 +01:00
int32_t sizeText = 11 ;
2013-12-20 00:43:31 +01:00
# endif
2016-03-10 22:37:37 +01:00
myTextView2 = appl : : TextViewer : : create ( " font-size " , sizeText ) ;
2016-02-15 22:04:10 +01:00
myTextView2 - > propertyName . set ( " appl-text-viewer2 " ) ;
myTextView2 - > propertyExpand . set ( bvec2 ( true , true ) ) ;
myTextView2 - > propertyFill . set ( bvec2 ( true , true ) ) ;
myTextView2 - > propertyHide . set ( true ) ;
2014-11-14 23:57:29 +01:00
mySizerVert2 - > subWidgetAdd ( myTextView2 ) ;
2016-03-10 23:48:07 +01:00
mySpacer = ewol : : widget : : Spacer : : create ( ) ;
mySpacer - > propertyName . set ( " appl-text-separator " ) ;
mySpacer - > propertyColor . set ( etk : : color : : black ) ;
2016-04-29 23:16:07 +02:00
mySpacer - > propertyMinSize . set ( gale : : Dimension ( vec2 ( 2 , 2 ) , gale : : distance : : pixel ) ) ;
2016-03-10 23:48:07 +01:00
mySpacer - > propertyExpand . set ( bvec2 ( true , false ) ) ;
mySpacer - > propertyFill . set ( bvec2 ( true , true ) ) ;
mySpacer - > propertyHide . set ( true ) ;
mySizerVert2 - > subWidgetAdd ( mySpacer ) ;
2016-03-10 22:37:37 +01:00
myTextView = appl : : TextViewer : : create ( " font-size " , sizeText ) ;
2016-02-15 22:04:10 +01:00
myTextView - > propertyName . set ( " appl-text-viewer1 " ) ;
myTextView - > propertyExpand . set ( bvec2 ( true , true ) ) ;
myTextView - > propertyFill . set ( bvec2 ( true , true ) ) ;
2013-10-30 21:16:38 +01:00
mySizerVert2 - > subWidgetAdd ( myTextView ) ;
2014-11-14 23:57:29 +01:00
2016-03-10 22:37:37 +01:00
// search area:
2014-08-25 22:44:42 +02:00
m_widgetSearch = appl : : widget : : Search : : create ( ) ;
2017-03-06 22:03:34 +01:00
m_widgetSearch - > propertyExpand . set ( bvec2 ( true , false ) ) ;
m_widgetSearch - > propertyFill . set ( bvec2 ( true , true ) ) ;
2014-08-25 22:44:42 +02:00
mySizerVert2 - > subWidgetAdd ( m_widgetSearch ) ;
2012-07-19 18:13:21 +02:00
2016-03-10 22:37:37 +01:00
mySizerHori = ewol : : widget : : Sizer : : create ( ) ;
2016-02-15 22:04:10 +01:00
mySizerHori - > propertyName . set ( " plop 555555 " ) ;
2016-03-10 22:37:37 +01:00
mySizerHori - > propertyMode . set ( ewol : : widget : : Sizer : : modeHori ) ;
2013-10-07 22:04:21 +02:00
mySizerVert - > subWidgetAdd ( mySizerHori ) ;
2012-02-16 23:29:48 +01:00
2014-08-07 23:41:48 +02:00
myMenu = ewol : : widget : : Menu : : create ( ) ;
2016-02-15 22:04:10 +01:00
myMenu - > propertyName . set ( " appl-menu-interface " ) ;
2013-10-07 22:04:21 +02:00
mySizerHori - > subWidgetAdd ( myMenu ) ;
2016-03-10 22:37:37 +01:00
int32_t idMenuFile = myMenu - > addTitle ( " _T{File} " ) ;
myMenu - > add ( idMenuFile , " _T{New} " , " " , " menu:new " ) ;
2017-03-06 22:03:34 +01:00
myMenu - > addSpacer ( idMenuFile ) ;
2017-03-07 21:42:24 +01:00
myMenu - > add ( idMenuFile , " _T{Open} " , " THEME:GUI:Load.svg " , " menu:open " ) ;
myMenu - > add ( idMenuFile , " _T{Close} " , " THEME:GUI:Close.svg " , " menu:close " ) ;
2016-03-10 22:37:37 +01:00
myMenu - > add ( idMenuFile , " _T{Close (all)} " , " " , " menu:close-all " ) ;
2017-03-07 21:42:24 +01:00
myMenu - > add ( idMenuFile , " _T{Save} " , " THEME:GUI:Save.svg " , " menu:save " ) ;
2016-03-10 22:37:37 +01:00
myMenu - > add ( idMenuFile , " _T{Save As ...} " , " " , " menu:save-as " ) ;
2017-03-06 22:03:34 +01:00
myMenu - > addSpacer ( idMenuFile ) ;
2017-03-07 21:42:24 +01:00
myMenu - > add ( idMenuFile , " _T{Properties} " , " THEME:GUI:Parameter.svg " , " menu:property " ) ;
2017-03-06 22:03:34 +01:00
myMenu - > addSpacer ( idMenuFile ) ;
2017-01-30 22:29:19 +01:00
myMenu - > add ( idMenuFile , " _T{Exit} " , " " , " menu:exit " ) ;
2016-03-10 22:37:37 +01:00
int32_t idMenuEdit = myMenu - > addTitle ( " _T{Edit} " ) ;
myMenu - > add ( idMenuEdit , " _T{Goto line ...} " , " " , " menu:goto-line " ) ;
2017-03-06 22:03:34 +01:00
myMenu - > addSpacer ( ) ;
2016-03-10 22:37:37 +01:00
int32_t idMenuSearch = myMenu - > addTitle ( " _T{Search} " ) ;
2017-03-07 21:42:24 +01:00
myMenu - > add ( idMenuSearch , " _T{Search} " , " THEME:GUI:Search.svg " , " menu:search " ) ;
myMenu - > add ( idMenuSearch , " _T{Replace} " , " THEME:GUI:Replace.svg " , " menu:replace " ) ;
2017-03-06 22:03:34 +01:00
myMenu - > addSpacer ( idMenuSearch ) ;
2016-03-10 22:37:37 +01:00
myMenu - > add ( idMenuSearch , " _T{Find (previous)} " , " " , " menu:find:previous " ) ;
myMenu - > add ( idMenuSearch , " _T{Find (next)} " , " " , " menu:find:next " ) ;
myMenu - > add ( idMenuSearch , " _T{Find (all)} " , " " , " menu:find:all " ) ;
myMenu - > add ( idMenuSearch , " _T{Un-Select} " , " " , " menu:find:none " ) ;
int32_t idMenugDisplay = myMenu - > addTitle ( " _T{Display} " ) ;
myMenu - > add ( idMenugDisplay , " _T{Color Black} " , " " , " menu:color:color/black/ " ) ;
myMenu - > add ( idMenugDisplay , " _T{Color White} " , " " , " menu:color:color/white/ " ) ;
myMenu - > add ( idMenugDisplay , " _T{Shape square} " , " " , " menu:shape:shape/square/ " ) ;
myMenu - > add ( idMenugDisplay , " _T{Shape round} " , " " , " menu:shape:shape/round/ " ) ;
2017-03-06 22:03:34 +01:00
myMenu - > addSpacer ( idMenugDisplay ) ;
2016-03-10 22:37:37 +01:00
myMenu - > add ( idMenugDisplay , " _T{Reload openGl Shader} " , " " , " menu:reloadShape " ) ;
2017-03-06 22:03:34 +01:00
myMenu - > addSpacer ( idMenugDisplay ) ;
2016-03-10 22:37:37 +01:00
myMenu - > add ( idMenugDisplay , " _T{Split} " , " " , " menu:split:enable " ) ;
myMenu - > add ( idMenugDisplay , " _T{Unsplit} " , " " , " menu:split:disable " ) ;
myMenu - > add ( idMenugDisplay , " _T{Vertical} " , " " , " menu:split:vert " ) ;
myMenu - > add ( idMenugDisplay , " _T{Horizontal} " , " " , " menu:split:hori " ) ;
2016-07-19 22:03:39 +02:00
myMenu - > signalSelect . connect ( sharedFromThis ( ) , & MainWindows : : onCallbackMenuEvent ) ;
2016-03-10 22:37:37 +01:00
m_widgetLabelFileName = ewol : : widget : : Label : : create ( ) ;
m_widgetLabelFileName - > propertyValue . set ( " FileName " ) ;
2016-02-15 22:04:10 +01:00
m_widgetLabelFileName - > propertyName . set ( " appl-widget-display-name " ) ;
m_widgetLabelFileName - > propertyExpand . set ( bvec2 ( true , false ) ) ;
m_widgetLabelFileName - > propertyFill . set ( bvec2 ( true , false ) ) ; ;
2013-10-07 22:04:21 +02:00
mySizerHori - > subWidgetAdd ( m_widgetLabelFileName ) ;
2012-11-25 11:55:06 +01:00
// add generic shortcut ...
2014-08-25 22:44:42 +02:00
shortCutAdd ( " ctrl+o " , " menu:open " ) ;
shortCutAdd ( " ctrl+n " , " menu:new " ) ;
2012-11-25 11:55:06 +01:00
2014-08-25 22:44:42 +02:00
shortCutAdd ( " ctrl+s " , " menu:save " ) ;
shortCutAdd ( " ctrl+shift+s " , " menu:save-all " ) ;
2012-11-25 11:55:06 +01:00
2014-08-25 22:44:42 +02:00
shortCutAdd ( " ctrl+q " , " menu:close " ) ;
shortCutAdd ( " ctrl+shift+q " , " menu:close-all " ) ;
2012-11-25 11:55:06 +01:00
2014-08-25 22:44:42 +02:00
shortCutAdd ( " ctrl+l " , " menu:goto-line " ) ;
2012-11-25 11:55:06 +01:00
2014-08-25 22:44:42 +02:00
shortCutAdd ( " ctrl+f " , " menu:search " ) ;
shortCutAdd ( " F12 " , " menu:reloade-shader " ) ;
2017-01-30 22:29:19 +01:00
shortCutAdd ( " alt+F4 " , " menu:exit " ) ;
2016-02-19 23:33:00 +01:00
// TODO : auto-connect on shortcut event ==> maybe do beter later ...
2016-07-19 22:03:39 +02:00
signalShortcut . connect ( sharedFromThis ( ) , & MainWindows : : onCallbackShortCut ) ;
m_bufferManager - > signalSelectFile . connect ( sharedFromThis ( ) , & MainWindows : : onCallbackselectNewFile ) ;
2012-01-13 13:06:15 +01:00
}
2014-05-15 21:37:39 +02:00
MainWindows : : ~ MainWindows ( ) {
2014-05-20 21:35:41 +02:00
2012-01-13 13:06:15 +01:00
}
2017-08-28 00:09:10 +02:00
void MainWindows : : onCallbackShortCut ( const etk : : String & _value ) {
2014-08-25 22:44:42 +02:00
APPL_WARNING ( " Event from ShortCut : " < < _value ) ;
onCallbackMenuEvent ( _value ) ;
}
2017-08-28 00:09:10 +02:00
void MainWindows : : onCallbackMenuEvent ( const etk : : String & _value ) {
2014-08-25 22:44:42 +02:00
APPL_WARNING ( " Event from Menu : " < < _value ) ;
if ( _value = = " menu:new " ) {
2018-06-19 22:31:29 +02:00
if ( m_bufferManager ! = null ) {
2014-08-25 22:44:42 +02:00
m_bufferManager - > createNewBuffer ( ) ;
2013-11-07 21:08:57 +01:00
}
2017-01-30 22:29:19 +01:00
} else if ( _value = = " menu:exit " ) {
gale : : getContext ( ) . stop ( ) ;
2014-08-25 22:44:42 +02:00
} else if ( _value = = " menu:open " ) {
displayOpen ( ) ;
} else if ( _value = = " menu:close " ) {
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < appl : : WorkerCloseFile > worker = appl : : WorkerCloseFile : : create ( ) ;
2014-09-15 07:21:22 +02:00
worker - > startAction ( " " ) ;
2014-08-25 22:44:42 +02:00
} else if ( _value = = " menu:close-all " ) {
appl : : WorkerCloseAllFile : : create ( ) ;
} else if ( _value = = " menu:save " ) {
appl : : WorkerSaveFile : : create ( " " , false ) ;
} else if ( _value = = " menu:save-all " ) {
appl : : WorkerSaveAllFile : : create ( ) ;
} else if ( _value = = " menu:save-as " ) {
appl : : WorkerSaveFile : : create ( " " , true ) ;
} else if ( _value = = " menu:property " ) {
displayProperty ( ) ;
} else if ( _value = = " menu:search " ) {
2018-06-19 22:31:29 +02:00
if ( m_widgetSearch = = null ) {
2013-11-07 21:08:57 +01:00
return ;
2012-04-29 15:19:36 +02:00
}
2016-02-24 22:31:46 +01:00
if ( m_widgetSearch - > propertyHide . get ( ) = = true ) {
2016-02-15 22:04:10 +01:00
m_widgetSearch - > propertyHide . set ( false ) ;
2014-08-25 22:44:42 +02:00
m_widgetSearch - > selectSearch ( ) ;
} else {
2015-05-21 21:21:01 +02:00
if ( m_widgetSearch - > isSelectSearch ( ) ) {
2016-02-15 22:04:10 +01:00
m_widgetSearch - > propertyHide . set ( true ) ;
2018-06-19 22:31:29 +02:00
if ( m_viewerManager ! = null ) {
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < appl : : TextViewer > tmp = m_viewerManager - > getViewerSelected ( ) ;
2018-06-19 22:31:29 +02:00
if ( tmp ! = null ) {
2015-05-21 21:21:01 +02:00
tmp - > keepFocus ( ) ;
}
}
} else {
m_widgetSearch - > selectSearch ( ) ;
}
2014-08-25 22:44:42 +02:00
}
} else if ( _value = = " menu:replace " ) {
2018-06-19 22:31:29 +02:00
if ( m_widgetSearch = = null ) {
2014-08-25 22:44:42 +02:00
return ;
2013-11-07 21:08:57 +01:00
}
2016-02-24 22:31:46 +01:00
if ( m_widgetSearch - > propertyHide . get ( ) = = true ) {
2016-02-15 22:04:10 +01:00
m_widgetSearch - > propertyHide . set ( false ) ;
2014-08-25 22:44:42 +02:00
m_widgetSearch - > selectReplace ( ) ;
2013-11-15 23:42:00 +01:00
} else {
2015-05-21 21:21:01 +02:00
if ( m_widgetSearch - > isSelectReplace ( ) ) {
2016-02-15 22:04:10 +01:00
m_widgetSearch - > propertyHide . set ( true ) ;
2018-06-19 22:31:29 +02:00
if ( m_viewerManager ! = null ) {
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < appl : : TextViewer > tmp = m_viewerManager - > getViewerSelected ( ) ;
2018-06-19 22:31:29 +02:00
if ( tmp ! = null ) {
2015-05-21 21:21:01 +02:00
tmp - > keepFocus ( ) ;
}
}
} else {
m_widgetSearch - > selectReplace ( ) ;
}
2013-11-15 23:42:00 +01:00
}
2014-08-25 22:44:42 +02:00
} else if ( _value = = " menu:find:previous " ) {
APPL_TODO ( " Event from Menu : " < < _value ) ;
} else if ( _value = = " menu:find:next " ) {
APPL_TODO ( " Event from Menu : " < < _value ) ;
} else if ( _value = = " menu:find:all " ) {
APPL_TODO ( " Event from Menu : " < < _value ) ;
} else if ( _value = = " menu:find:none " ) {
APPL_TODO ( " Event from Menu : " < < _value ) ;
} else if ( _value = = " menu:color:color/black/ "
| | _value = = " menu:color:color/white/ " ) {
2017-08-28 00:09:10 +02:00
etk : : theme : : setName ( " COLOR " , etk : : String ( _value , 11 ) ) ;
EWOL_ERROR ( " Select Shape or Color : 'COLOR'=' " < < etk : : String ( _value , 11 ) < < " ' " ) ;
2013-11-20 21:57:00 +01:00
ewol : : getContext ( ) . getResourcesManager ( ) . reLoadResources ( ) ;
ewol : : getContext ( ) . forceRedrawAll ( ) ;
2014-08-25 22:44:42 +02:00
} else if ( _value = = " menu:shape:shape/square/ "
| | _value = = " menu:shape:shape/round/ " ) {
2017-08-28 00:09:10 +02:00
EWOL_ERROR ( " Select Shape or Color : 'GUI'=' " < < etk : : String ( _value , 11 ) < < " ' " ) ;
etk : : theme : : setName ( " GUI " , etk : : String ( _value , 11 ) ) ;
2014-01-18 14:34:33 +01:00
ewol : : getContext ( ) . getResourcesManager ( ) . reLoadResources ( ) ;
ewol : : getContext ( ) . forceRedrawAll ( ) ;
2014-08-25 22:44:42 +02:00
} else if ( _value = = " menu:reloadShape " ) {
2013-11-15 23:42:00 +01:00
ewol : : getContext ( ) . getResourcesManager ( ) . reLoadResources ( ) ;
ewol : : getContext ( ) . forceRedrawAll ( ) ;
2014-11-14 23:57:29 +01:00
} else if ( _value = = " menu:split:enable " ) {
2016-02-11 21:45:21 +01:00
propertySetOnWidgetNamed ( " appl-text-viewer2 " , " hide " , " false " ) ;
2016-03-10 23:48:07 +01:00
propertySetOnWidgetNamed ( " appl-text-separator " , " hide " , " false " ) ;
2014-11-14 23:57:29 +01:00
} else if ( _value = = " menu:split:disable " ) {
2016-02-11 21:45:21 +01:00
propertySetOnWidgetNamed ( " appl-text-viewer2 " , " hide " , " true " ) ;
2016-03-10 23:48:07 +01:00
propertySetOnWidgetNamed ( " appl-text-separator " , " hide " , " true " ) ;
2014-11-14 23:57:29 +01:00
} else if ( _value = = " menu:split:vert " ) {
2016-02-11 21:45:21 +01:00
propertySetOnWidgetNamed ( " appl-view-code-sizer " , " mode " , " vert " ) ;
2016-03-10 23:48:07 +01:00
propertySetOnWidgetNamed ( " appl-text-separator " , " expand " , " true,false " ) ;
2014-11-14 23:57:29 +01:00
} else if ( _value = = " menu:split:hori " ) {
2016-02-11 21:45:21 +01:00
propertySetOnWidgetNamed ( " appl-view-code-sizer " , " mode " , " hori " ) ;
2016-03-10 23:48:07 +01:00
propertySetOnWidgetNamed ( " appl-text-separator " , " expand " , " false,true " ) ;
2016-04-19 22:05:42 +02:00
} else if ( _value = = " menu:reloade-shader " ) {
ewol : : getContext ( ) . getResourcesManager ( ) . reLoadResources ( ) ;
ewol : : getContext ( ) . forceRedrawAll ( ) ;
2014-08-25 22:44:42 +02:00
} else {
APPL_ERROR ( " Event from Menu UNKNOW : ' " < < _value < < " ' " ) ;
2013-11-15 23:42:00 +01:00
}
2014-08-25 22:44:42 +02:00
}
/* TODO :
2013-11-14 23:44:55 +01:00
} else if ( _msg . getMessage ( ) = = mainWindowsRequestSaveFile ) { // return after a choice of close...
if ( m_bufferManager - > exist ( _msg . getData ( ) ) = = false ) {
APPL_ERROR ( " Try to save an non-existant file : " < < _msg . getData ( ) ) ;
return ;
}
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < appl : : Buffer > tmpBuffer = m_bufferManager - > get ( _msg . getData ( ) ) ;
2018-06-19 22:31:29 +02:00
if ( tmpBuffer = = null ) {
2013-11-14 23:44:55 +01:00
APPL_ERROR ( " Error to get the buffer : " < < _msg . getData ( ) ) ;
return ;
}
if ( tmpBuffer - > hasFileName ( ) = = false ) {
APPL_ERROR ( " Will never arrive " ) ;
saveAsPopUp ( tmpBuffer ) ;
} else {
2013-11-15 23:42:00 +01:00
if ( tmpBuffer - > storeFile ( ) = = false ) {
APPL_ERROR ( " Error when loading the file " < < _msg . getData ( ) ) ;
displayErrorMessage ( " Error when loading the file <br/><i> " + _msg . getData ( ) + " </i> " ) ;
}
2013-11-14 23:44:55 +01:00
}
} else if ( _msg . getMessage ( ) = = mainWindowsRequestSaveFileAs ) { // return after a choice of close...
if ( m_bufferManager - > exist ( _msg . getData ( ) ) = = false ) {
APPL_ERROR ( " Try to save an non-existant file : " < < _msg . getData ( ) ) ;
return ;
}
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < appl : : Buffer > tmpBuffer = m_bufferManager - > get ( _msg . getData ( ) ) ;
2018-06-19 22:31:29 +02:00
if ( tmpBuffer = = null ) {
2013-11-14 23:44:55 +01:00
APPL_ERROR ( " Error to get the buffer : " < < _msg . getData ( ) ) ;
return ;
}
saveAsPopUp ( tmpBuffer ) ;
} else if ( _msg . getMessage ( ) = = mainWindowsRequestcloseFileNoCheck ) { // return after a choice of close...
if ( m_bufferManager - > exist ( _msg . getData ( ) ) = = false ) {
APPL_ERROR ( " Try to save an non-existant file : " < < _msg . getData ( ) ) ;
return ;
}
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < appl : : Buffer > tmpBuffer = m_bufferManager - > get ( _msg . getData ( ) ) ;
2018-06-19 22:31:29 +02:00
if ( tmpBuffer = = null ) {
2013-11-14 23:44:55 +01:00
APPL_ERROR ( " Error to get the buffer : " < < _msg . getData ( ) ) ;
return ;
}
// note: just remove ==> no check : normal case ...
2014-08-07 23:41:48 +02:00
//tmpBuffer->removeObject();
EWOL_TODO ( " call remove buffer ... " ) ;
2012-07-24 13:01:40 +02:00
}
2014-08-25 22:44:42 +02:00
*/
void MainWindows : : displayOpen ( ) {
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < ewol : : widget : : FileChooser > tmpWidget = ewol : : widget : : FileChooser : : create ( ) ;
2018-06-19 22:31:29 +02:00
if ( tmpWidget = = null ) {
2014-08-25 22:44:42 +02:00
APPL_ERROR ( " Can not open File chooser !!! " ) ;
return ;
}
2016-03-10 22:37:37 +01:00
tmpWidget - > propertyLabelTitle . set ( " _T{Open files ...} " ) ;
tmpWidget - > propertyLabelValidate . set ( " _T{Open} " ) ;
2018-06-19 22:31:29 +02:00
if ( m_bufferManager = = null ) {
2014-08-25 22:44:42 +02:00
APPL_ERROR ( " can not call unexistant buffer manager ... " ) ;
return ;
}
// Get a ref on the buffer selected (if null, no buffer was selected ...)
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < appl : : Buffer > tmpBuffer = m_bufferManager - > getBufferSelected ( ) ;
2018-06-19 22:31:29 +02:00
if ( tmpBuffer ! = null ) {
2014-08-25 22:44:42 +02:00
etk : : FSNode tmpFile = tmpBuffer - > getFileName ( ) ;
2016-02-15 22:04:10 +01:00
tmpWidget - > propertyPath . set ( tmpFile . getNameFolder ( ) ) ;
2014-08-25 22:44:42 +02:00
}
// apply widget pop-up ...
popUpWidgetPush ( tmpWidget ) ;
2016-07-19 22:03:39 +02:00
tmpWidget - > signalValidate . connect ( sharedFromThis ( ) , & MainWindows : : onCallbackPopUpFileSelected ) ;
2014-08-25 22:44:42 +02:00
}
void MainWindows : : displayProperty ( ) {
// Request the parameter GUI
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < ewol : : widget : : Parameter > tmpWidget = ewol : : widget : : Parameter : : create ( ) ;
2018-06-19 22:31:29 +02:00
if ( tmpWidget = = null ) {
2014-08-25 22:44:42 +02:00
APPL_ERROR ( " Can not allocate widget == > display might be in error " ) ;
2016-07-19 22:03:39 +02:00
return ;
2014-08-25 22:44:42 +02:00
}
2016-07-19 22:03:39 +02:00
#if 0
2017-08-28 00:09:10 +02:00
etk : : String menuDescription = " <title>Properties</title> \n " ;
2016-07-19 22:03:39 +02:00
menuDescription + = " <group title='_T{Editor}'> \n " ;
menuDescription + = " <menu title='_T{Editor Interface}' short-title='Editor' widget='appl-text-viewer'> \n " ;
menuDescription + = " </group> \n " ;
menuDescription + = " <group title='_T{Gui}'> \n " ;
menuDescription + = " <menu title='Font selection' short-title='Font' widget=''> \n " ;
menuDescription + = " <menu title='Color selection' short-title='Color' widget=''> \n " ;
menuDescription + = " <menu title='Theme selection' short-title='Theme' widget=''> \n " ;
menuDescription + = " </group> \n " ;
tmpWidget - > setMenu ( menuDescription ) ;
# else
tmpWidget - > propertyLabelTitle . set ( " _T{Properties} " ) ;
popUpWidgetPush ( tmpWidget ) ;
tmpWidget - > menuAddGroup ( " _T{Editor} " ) ;
ememory : : SharedPtr < ewol : : Widget > tmpSubWidget = globals : : ParameterGlobalsGui : : create ( ) ;
tmpWidget - > menuAdd ( " _T{Editor} " , " " , tmpSubWidget ) ;
2018-06-19 22:31:29 +02:00
tmpWidget - > menuAdd ( " _T{Font & Color} " , " " , null ) ;
tmpWidget - > menuAdd ( " _T{Highlight} " , " " , null ) ;
2016-07-19 22:03:39 +02:00
tmpWidget - > menuAddGroup ( " _T{General} " ) ;
2018-06-19 22:31:29 +02:00
tmpWidget - > menuAdd ( " _T{Display} " , " " , null ) ;
2016-07-19 22:03:39 +02:00
tmpSubWidget = ParameterAboutGui : : create ( ) ;
tmpWidget - > menuAdd ( " _T{About} " , " " , tmpSubWidget ) ;
# endif
2011-07-21 18:03:41 +02:00
}
2014-08-25 22:44:42 +02:00
2017-08-28 00:09:10 +02:00
void MainWindows : : onCallbackselectNewFile ( const etk : : String & _value ) {
2014-09-12 21:36:20 +02:00
APPL_INFO ( " onCallbackselectNewFile( " < < _value < < " ) " ) ;
2018-06-19 22:31:29 +02:00
if ( m_bufferManager = = null ) {
2014-08-25 22:44:42 +02:00
APPL_ERROR ( " can not call unexistant buffer manager ... " ) ;
return ;
}
2016-03-10 22:37:37 +01:00
m_connectionSave . disconnect ( ) ;
m_connectionModify . disconnect ( ) ;
m_connectionSaveName . disconnect ( ) ;
2014-08-25 22:44:42 +02:00
onCallbackTitleUpdate ( ) ;
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < appl : : Buffer > tmpp = m_bufferManager - > getBufferSelected ( ) ;
2018-06-19 22:31:29 +02:00
if ( tmpp ! = null ) {
2016-03-10 22:37:37 +01:00
m_connectionSave = tmpp - > signalIsSave . connect ( this , & MainWindows : : onCallbackTitleUpdate ) ;
m_connectionModify = tmpp - > signalIsModify . connect ( this , & MainWindows : : onCallbackTitleUpdate ) ;
m_connectionSaveName = tmpp - > signalChangeName . connect ( this , & MainWindows : : onCallbackTitleUpdate ) ;
2014-08-25 22:44:42 +02:00
}
}
2017-08-28 00:09:10 +02:00
void MainWindows : : onCallbackPopUpFileSelected ( const etk : : String & _value ) {
2014-09-12 21:36:20 +02:00
APPL_INFO ( " onCallbackPopUpFileSelected( " < < _value < < " ) " ) ;
2014-08-25 05:55:06 +02:00
APPL_DEBUG ( " Request opening the file : " < < _value ) ;
m_bufferManager - > open ( _value ) ;
}
void MainWindows : : onCallbackTitleUpdate ( ) {
2014-09-12 21:36:20 +02:00
APPL_INFO ( " onCallbackTitleUpdate() " ) ;
2018-06-19 22:31:29 +02:00
if ( m_bufferManager = = null ) {
2014-08-25 05:55:06 +02:00
APPL_ERROR ( " can not call unexistant buffer manager ... " ) ;
return ;
}
// select a new Buffer ==> change title:
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < appl : : Buffer > tmpp = m_bufferManager - > getBufferSelected ( ) ;
2018-06-19 22:31:29 +02:00
if ( tmpp = = null ) {
2016-03-16 23:09:36 +01:00
propertyTitle . set ( " Edn " ) ;
2018-06-19 22:31:29 +02:00
if ( m_widgetLabelFileName ! = null ) {
2016-02-15 22:04:10 +01:00
m_widgetLabelFileName - > propertyValue . set ( " " ) ;
2014-08-25 05:55:06 +02:00
}
} else {
2017-08-28 00:09:10 +02:00
etk : : String nameFileSystem = etk : : FSNode ( tmpp - > getFileName ( ) ) . getFileSystemName ( ) ;
propertyTitle . set ( etk : : String ( " Edn : " ) + ( tmpp - > isModify ( ) = = true ? " * " : " " ) + nameFileSystem ) ;
2018-06-19 22:31:29 +02:00
if ( m_widgetLabelFileName ! = null ) {
2016-02-15 22:04:10 +01:00
m_widgetLabelFileName - > propertyValue . set ( nameFileSystem + ( tmpp - > isModify ( ) = = true ? " * " : " " ) ) ;
2014-08-25 05:55:06 +02:00
}
}
}
2011-07-20 10:33:24 +02:00
2016-07-19 22:03:39 +02:00
void MainWindows : : saveAsPopUp ( const ememory : : SharedPtr < appl : : Buffer > & _buffer ) {
2018-06-19 22:31:29 +02:00
if ( _buffer = = null ) {
APPL_ERROR ( " Call With null input... " ) ;
2013-11-14 23:44:55 +01:00
return ;
}
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < appl : : WorkerSaveFile > tmpObject = appl : : WorkerSaveFile : : create ( " buffer-name " , _buffer - > getFileName ( ) ) ;
2013-11-14 23:44:55 +01:00
}
2016-07-19 22:03:39 +02:00
void MainWindows : : closeNotSavedFile ( const ememory : : SharedPtr < appl : : Buffer > & _buffer ) {
2018-06-19 22:31:29 +02:00
if ( _buffer = = null ) {
APPL_ERROR ( " Call With null input... " ) ;
2013-11-14 23:44:55 +01:00
return ;
}
2016-07-19 22:03:39 +02:00
ememory : : SharedPtr < ewol : : widget : : StdPopUp > tmpPopUp = ewol : : widget : : StdPopUp : : create ( ) ;
2018-06-19 22:31:29 +02:00
if ( tmpPopUp = = null ) {
2013-11-14 23:44:55 +01:00
APPL_ERROR ( " Can not create a simple pop-up " ) ;
return ;
}
2016-03-16 23:09:36 +01:00
tmpPopUp - > propertyTitle . set ( " <bold>_T{Close un-saved file:}</bold> " ) ;
tmpPopUp - > propertyComment . set ( " _T{The file named:} <i> \" " + _buffer - > getFileName ( ) + " \" </i> _T{is curently modify.} <br/>_T{If you don't saves these modifications,<br/>they will be definitly lost...} " ) ;
2018-06-19 22:31:29 +02:00
ememory : : SharedPtr < ewol : : widget : : Button > bt = null ;
2013-11-14 23:44:55 +01:00
if ( _buffer - > hasFileName ( ) = = true ) {
2016-03-10 22:37:37 +01:00
bt = tmpPopUp - > addButton ( " _T{Save} " , true ) ;
2018-06-19 22:31:29 +02:00
if ( bt ! = null ) {
2013-11-14 23:44:55 +01:00
// TODO : The element is removed before beeing pressed
2016-07-19 22:03:39 +02:00
// TODO : bt->signalPressed.connect(sharedFromThis(), mainWindowsRequestSaveFile, _buffer->getFileName());
// TODO : bt->signalPressed.connect(sharedFromThis(), mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
2013-11-14 23:44:55 +01:00
}
}
2016-03-10 22:37:37 +01:00
bt = tmpPopUp - > addButton ( " _T{Save As} " , true ) ;
2018-06-19 22:31:29 +02:00
if ( bt ! = null ) {
2016-07-19 22:03:39 +02:00
// TODO : bt->signalPressed.connect(sharedFromThis(), mainWindowsRequestSaveFileAs, _buffer->getFileName());
//bt->signalPressed.connect(sharedFromThis(), mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
2013-11-14 23:44:55 +01:00
// TODO : Request the close when saved ...
}
2016-03-10 22:37:37 +01:00
bt = tmpPopUp - > addButton ( " _T{Close} " , true ) ;
2018-06-19 22:31:29 +02:00
if ( bt ! = null ) {
2016-07-19 22:03:39 +02:00
// TODO : bt->signalPressed.connect(sharedFromThis(), mainWindowsRequestcloseFileNoCheck, _buffer->getFileName());
2013-11-14 23:44:55 +01:00
}
2016-03-10 22:37:37 +01:00
tmpPopUp - > addButton ( " _T{Cancel} " , true ) ;
2016-02-15 22:04:10 +01:00
tmpPopUp - > propertyCloseOutEvent . set ( true ) ;
2013-11-14 23:44:55 +01:00
popUpWidgetPush ( tmpPopUp ) ;
}