loleaflet/src/control/Control.JSDialogBuilder.js |   53 +++++++++++++++++++++++
 1 file changed, 53 insertions(+)

New commits:
commit b0faa3cf59cb58586fb6adfed33bd494d673897c
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Wed Mar 4 15:50:29 2020 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Tue Apr 28 10:14:44 2020 +0200

    jsdialog: tabcontrol widget
    
    Change-Id: Ibe72a382e767869f94db4f8b475dfe2169fcc702
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/93028
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>

diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js 
b/loleaflet/src/control/Control.JSDialogBuilder.js
index 9f500751f..8fe8c9c17 100644
--- a/loleaflet/src/control/Control.JSDialogBuilder.js
+++ b/loleaflet/src/control/Control.JSDialogBuilder.js
@@ -122,6 +122,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
                this._controlHandlers['frame'] = this._frameHandler;
                this._controlHandlers['panel'] = this._panelHandler;
                this._controlHandlers['calcfuncpanel'] = 
this._calcFuncListPanelHandler;
+               this._controlHandlers['tabcontrol'] = this._tabsControlHandler;
                this._controlHandlers['paneltabs'] = this._panelTabsHandler;
                this._controlHandlers['container'] = this._containerHandler;
                this._controlHandlers['window'] = this._containerHandler;
@@ -598,6 +599,58 @@ L.Control.JSDialogBuilder = L.Control.extend({
                };
        },
 
+       _tabsControlHandler: function(parentContainer, data, builder) {
+               if (data.tabs) {
+                       var tabsContainer = L.DomUtil.create('div', 'ui-tabs 
mobile-wizard ui-widget');
+                       tabsContainer.id = data.id;
+                       var contentsContainer = L.DomUtil.create('div', 
'ui-tabs-content mobile-wizard ui-widget', parentContainer);
+
+                       var tabs = [];
+                       var contentDivs = [];
+                       var labels = [];
+                       for (var tabIdx = 0; tabIdx < data.tabs.length; 
tabIdx++) {
+                               var item = data.tabs[tabIdx];
+
+                               var title = builder._cleanText(item.text);
+
+                               var tab = L.DomUtil.create('div', 'ui-tab 
mobile-wizard', tabsContainer);
+                               tab.id = data.tabs[tabIdx].name;
+                               if (data.selected == data.tabs[tabIdx].id)
+                                       $(tab).addClass('selected');
+                               tabs[tabIdx] = tab;
+
+                               var label = L.DomUtil.create('span', 
'ui-tab-content mobile-wizard unolabel', tab);
+                               label.innerHTML = title;
+                               labels[tabIdx] = title;
+
+                               var contentDiv = L.DomUtil.create('div', 
'ui-content level-' + builder._currentDepth + ' mobile-wizard', 
contentsContainer);
+                               contentDiv.title = title;
+
+                               $(contentDiv).hide();
+                               contentDivs[tabIdx] = contentDiv;
+                       }
+
+                       if (builder.wizard) {
+                               builder.wizard.setTabs(tabsContainer);
+
+                               for (var t = 0; t < tabs.length; t++) {
+                                       // to get capture of 't' right has to 
be a sub fn.
+                                       var fn = function(id) {
+                                               return function() {
+                                                       
builder._createTabClick(builder, id, tabs, contentDivs, labels)();
+                                                       
builder.callback('tabcontrol', 'selecttab', tabsContainer, id, builder);
+                                               };
+                                       };
+                                       $(tabs[t]).click(fn(t));
+                               }
+                       } else {
+                               console.debug('Builder used outside of mobile 
wizard: please implement the click handler');
+                       }
+               }
+
+               return true;
+       },
+
        _panelTabsHandler: function(parentContainer, data, builder) {
                var tabsContainer = L.DomUtil.create('div', 'ui-tabs 
mobile-wizard ui-widget');
                var contentsContainer = L.DomUtil.create('div', 
'ui-tabs-content mobile-wizard ui-widget', parentContainer);
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to