-
Notifications
You must be signed in to change notification settings - Fork 2
/
iPhoneDesktop.js
122 lines (105 loc) · 3.8 KB
/
iPhoneDesktop.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Ext.ns('simfla.ux.plugins');
simfla.ux.plugins.divide = function ( numerator, denominator ) {
var remainder = numerator % denominator;
var quotient = ( numerator - remainder ) / denominator;
return quotient
}
simfla.ux.plugins.iPhoneDesktop = Ext.extend(Ext.util.Observable, {
init: function(cmp){
this.cmp = cmp;
cmp.on('render', this.initDesktop, this);
},
initDesktop: function() {
var me = this, lastButton, firstButton;
me.cmp.mon(me.cmp.el, {
scope: me,
taphold : me.editDesktop,
doubletap : me.endEditDesktop
});
//Assume 4 x 4 layout
if (me.buttons){
var numberOfPanels = simfla.ux.plugins.divide(me.buttons.length,16) + 1;
for (var i = 1; i <= numberOfPanels; i++) {
//Create Main Panel
me.cmp.add({
xtype: 'panel',
padding: 10,
id: 'panel' + i.toString(),
layout: {
type: 'vbox',
align: 'stretch'
},
items: [{
xtype: 'panel',
id: 'panel' + i.toString() + 'R1',
flex: 1,
layout: {
type: 'hbox',
align: 'stretch'
}
},{
xtype: 'panel',
id: 'panel' + i.toString() + 'R2',
flex: 1,
layout: {
type: 'hbox',
align: 'stretch'
}
},{
xtype: 'panel',
id: 'panel' + i.toString() + 'R3',
flex: 1,
layout: {
type: 'hbox',
align: 'stretch'
}
},{
xtype: 'panel',
id: 'panel' + i.toString() + 'R4',
flex: 1,
layout: {
type: 'hbox',
align: 'stretch'
}
}]
});
//Add Buttons to Panel
lastButton = (i * 16) - 1;
firstButton = lastButton - 15;
for (var b = firstButton, row = 1, rb = 0; b <= lastButton; b++) {
var rowPanel = Ext.getCmp('panel' + i.toString() + 'R' + row.toString());
var currentbutton = me.buttons[b];
if (rowPanel) {
if(currentbutton) {
rowPanel.add({flex:1, items: [currentbutton]});
}else{
rowPanel.add({flex:1});
}
}
rb++;
if (rb > 3) {
rb = 0;
row ++;
}
}
}
}
},
editDesktop: function() {
var me = this;
if (me.buttons) {
for(var i = 0; i < me.buttons.length; i++){
me.buttons[i].plugins[0].cmp.startEdit(me.buttons[i].plugins[0].cmp);
}
}
},
endEditDesktop: function() {
var me = this;
if (me.buttons) {
for(var i = 0; i < me.buttons.length; i++){
me.buttons[i].plugins[0].cmp.endEdit(me.buttons[i].plugins[0].cmp);
}
}
}
});
Ext.preg('iphonedesktop', simfla.ux.plugins.iPhoneDesktop);