Helios-Layout.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603
  1. define("helios/Helios-Layout", ["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st", "amber_vm/globals", "helios/Helios-Core", "amber_core/Web", "amber_core/Kernel-Objects"], function(smalltalk,nil,_st, globals){
  2. smalltalk.addPackage('Helios-Layout');
  3. smalltalk.packages["Helios-Layout"].transport = {"type":"amd","amdNamespace":"helios"};
  4. smalltalk.addClass('HLContainer', globals.HLWidget, ['splitter'], 'Helios-Layout');
  5. smalltalk.addMethod(
  6. smalltalk.method({
  7. selector: "renderOn:",
  8. protocol: 'rendering',
  9. fn: function (html){
  10. var self=this;
  11. return smalltalk.withContext(function($ctx1) {
  12. var $1,$2;
  13. $1=_st(html)._div();
  14. _st($1)._class_("tool_container");
  15. $2=_st($1)._with_(self._splitter());
  16. return self}, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html},globals.HLContainer)})},
  17. args: ["html"],
  18. source: "renderOn: html\x0a\x09html div \x0a \x09class: 'tool_container'; \x0a with: self splitter",
  19. messageSends: ["class:", "div", "with:", "splitter"],
  20. referencedClasses: []
  21. }),
  22. globals.HLContainer);
  23. smalltalk.addMethod(
  24. smalltalk.method({
  25. selector: "splitter",
  26. protocol: 'accessing',
  27. fn: function (){
  28. var self=this;
  29. var $1;
  30. $1=self["@splitter"];
  31. return $1;
  32. },
  33. args: [],
  34. source: "splitter\x0a\x09^ splitter",
  35. messageSends: [],
  36. referencedClasses: []
  37. }),
  38. globals.HLContainer);
  39. smalltalk.addMethod(
  40. smalltalk.method({
  41. selector: "splitter:",
  42. protocol: 'accessing',
  43. fn: function (aSplitter){
  44. var self=this;
  45. self["@splitter"]=aSplitter;
  46. return self},
  47. args: ["aSplitter"],
  48. source: "splitter: aSplitter\x0a\x09splitter := aSplitter",
  49. messageSends: [],
  50. referencedClasses: []
  51. }),
  52. globals.HLContainer);
  53. smalltalk.addMethod(
  54. smalltalk.method({
  55. selector: "with:",
  56. protocol: 'instance creation',
  57. fn: function (aSplitter){
  58. var self=this;
  59. return smalltalk.withContext(function($ctx1) {
  60. var $2,$3,$1;
  61. $2=self._new();
  62. _st($2)._splitter_(aSplitter);
  63. $3=_st($2)._yourself();
  64. $1=$3;
  65. return $1;
  66. }, function($ctx1) {$ctx1.fill(self,"with:",{aSplitter:aSplitter},globals.HLContainer.klass)})},
  67. args: ["aSplitter"],
  68. source: "with: aSplitter\x0a\x09^ self new \x0a \x09splitter: aSplitter; \x0a yourself",
  69. messageSends: ["splitter:", "new", "yourself"],
  70. referencedClasses: []
  71. }),
  72. globals.HLContainer.klass);
  73. smalltalk.addClass('HLSplitter', globals.Widget, ['firstWidget', 'secondWidget', 'firstPane', 'secondPane', 'splitter'], 'Helios-Layout');
  74. smalltalk.addMethod(
  75. smalltalk.method({
  76. selector: "cssClass",
  77. protocol: 'accessing',
  78. fn: function (){
  79. var self=this;
  80. return "splitter";
  81. },
  82. args: [],
  83. source: "cssClass\x0a\x09^ 'splitter'",
  84. messageSends: [],
  85. referencedClasses: []
  86. }),
  87. globals.HLSplitter);
  88. smalltalk.addMethod(
  89. smalltalk.method({
  90. selector: "firstWidget",
  91. protocol: 'accessing',
  92. fn: function (){
  93. var self=this;
  94. var $1;
  95. $1=self["@firstWidget"];
  96. return $1;
  97. },
  98. args: [],
  99. source: "firstWidget\x0a\x09^ firstWidget",
  100. messageSends: [],
  101. referencedClasses: []
  102. }),
  103. globals.HLSplitter);
  104. smalltalk.addMethod(
  105. smalltalk.method({
  106. selector: "firstWidget:",
  107. protocol: 'accessing',
  108. fn: function (aWidget){
  109. var self=this;
  110. self["@firstWidget"]=aWidget;
  111. return self},
  112. args: ["aWidget"],
  113. source: "firstWidget: aWidget\x0a\x09firstWidget := aWidget",
  114. messageSends: [],
  115. referencedClasses: []
  116. }),
  117. globals.HLSplitter);
  118. smalltalk.addMethod(
  119. smalltalk.method({
  120. selector: "isHeliosSplitter",
  121. protocol: 'testing',
  122. fn: function (){
  123. var self=this;
  124. return true;
  125. },
  126. args: [],
  127. source: "isHeliosSplitter\x0a\x09^ true",
  128. messageSends: [],
  129. referencedClasses: []
  130. }),
  131. globals.HLSplitter);
  132. smalltalk.addMethod(
  133. smalltalk.method({
  134. selector: "panesCssClass",
  135. protocol: 'rendering',
  136. fn: function (){
  137. var self=this;
  138. return "panes";
  139. },
  140. args: [],
  141. source: "panesCssClass\x0a\x09^ 'panes'",
  142. messageSends: [],
  143. referencedClasses: []
  144. }),
  145. globals.HLSplitter);
  146. smalltalk.addMethod(
  147. smalltalk.method({
  148. selector: "renderOn:",
  149. protocol: 'rendering',
  150. fn: function (html){
  151. var self=this;
  152. return smalltalk.withContext(function($ctx1) {
  153. var $1,$3,$4,$5,$6,$7,$2;
  154. $1=_st(html)._div();
  155. $ctx1.sendIdx["div"]=1;
  156. _st($1)._class_(self._panesCssClass());
  157. $ctx1.sendIdx["class:"]=1;
  158. $2=_st($1)._with_((function(){
  159. return smalltalk.withContext(function($ctx2) {
  160. $3=_st(html)._div();
  161. $ctx2.sendIdx["div"]=2;
  162. _st($3)._class_("pane");
  163. $ctx2.sendIdx["class:"]=2;
  164. $4=_st($3)._with_(self._firstWidget());
  165. $ctx2.sendIdx["with:"]=2;
  166. self["@firstPane"]=$4;
  167. self["@firstPane"];
  168. $5=_st(html)._div();
  169. $ctx2.sendIdx["div"]=3;
  170. self["@splitter"]=_st($5)._class_(self._cssClass());
  171. $ctx2.sendIdx["class:"]=3;
  172. self["@splitter"];
  173. $6=_st(html)._div();
  174. _st($6)._class_("pane");
  175. $7=_st($6)._with_(self._secondWidget());
  176. self["@secondPane"]=$7;
  177. return self["@secondPane"];
  178. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})}));
  179. $ctx1.sendIdx["with:"]=1;
  180. self._setupSplitter();
  181. return self}, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html},globals.HLSplitter)})},
  182. args: ["html"],
  183. source: "renderOn: html\x0a\x09html div class: self panesCssClass; with: [\x0a\x09\x09firstPane := html div class: 'pane'; with: self firstWidget.\x0a \x09splitter := html div class: self cssClass.\x0a \x09secondPane := html div class: 'pane'; with: self secondWidget ].\x0a \x0a\x09self setupSplitter",
  184. messageSends: ["class:", "div", "panesCssClass", "with:", "firstWidget", "cssClass", "secondWidget", "setupSplitter"],
  185. referencedClasses: []
  186. }),
  187. globals.HLSplitter);
  188. smalltalk.addMethod(
  189. smalltalk.method({
  190. selector: "resize",
  191. protocol: 'rendering',
  192. fn: function (){
  193. var self=this;
  194. return self},
  195. args: [],
  196. source: "resize",
  197. messageSends: [],
  198. referencedClasses: []
  199. }),
  200. globals.HLSplitter);
  201. smalltalk.addMethod(
  202. smalltalk.method({
  203. selector: "secondWidget",
  204. protocol: 'accessing',
  205. fn: function (){
  206. var self=this;
  207. var $1;
  208. $1=self["@secondWidget"];
  209. return $1;
  210. },
  211. args: [],
  212. source: "secondWidget\x0a\x09^ secondWidget",
  213. messageSends: [],
  214. referencedClasses: []
  215. }),
  216. globals.HLSplitter);
  217. smalltalk.addMethod(
  218. smalltalk.method({
  219. selector: "secondWidget:",
  220. protocol: 'accessing',
  221. fn: function (aWidget){
  222. var self=this;
  223. self["@secondWidget"]=aWidget;
  224. return self},
  225. args: ["aWidget"],
  226. source: "secondWidget: aWidget\x0a\x09secondWidget := aWidget",
  227. messageSends: [],
  228. referencedClasses: []
  229. }),
  230. globals.HLSplitter);
  231. smalltalk.addMethod(
  232. smalltalk.method({
  233. selector: "setupSplitter",
  234. protocol: 'rendering',
  235. fn: function (){
  236. var self=this;
  237. return self},
  238. args: [],
  239. source: "setupSplitter",
  240. messageSends: [],
  241. referencedClasses: []
  242. }),
  243. globals.HLSplitter);
  244. smalltalk.addMethod(
  245. smalltalk.method({
  246. selector: "with:with:",
  247. protocol: 'instance creation',
  248. fn: function (aWidget,anotherWidget){
  249. var self=this;
  250. return smalltalk.withContext(function($ctx1) {
  251. var $2,$3,$1;
  252. $2=self._new();
  253. _st($2)._firstWidget_(aWidget);
  254. _st($2)._secondWidget_(anotherWidget);
  255. $3=_st($2)._yourself();
  256. $1=$3;
  257. return $1;
  258. }, function($ctx1) {$ctx1.fill(self,"with:with:",{aWidget:aWidget,anotherWidget:anotherWidget},globals.HLSplitter.klass)})},
  259. args: ["aWidget", "anotherWidget"],
  260. source: "with: aWidget with: anotherWidget\x0a\x09^ self new\x0a \x09\x09firstWidget: aWidget;\x0a secondWidget: anotherWidget;\x0a yourself",
  261. messageSends: ["firstWidget:", "new", "secondWidget:", "yourself"],
  262. referencedClasses: []
  263. }),
  264. globals.HLSplitter.klass);
  265. smalltalk.addClass('HLHorizontalSplitter', globals.HLSplitter, [], 'Helios-Layout');
  266. smalltalk.addMethod(
  267. smalltalk.method({
  268. selector: "cssClass",
  269. protocol: 'accessing',
  270. fn: function (){
  271. var self=this;
  272. return smalltalk.withContext(function($ctx1) {
  273. var $2,$1;
  274. $2=($ctx1.supercall = true, globals.HLHorizontalSplitter.superclass.fn.prototype._cssClass.apply(_st(self), []));
  275. $ctx1.supercall = false;
  276. $1=_st($2).__comma(" horizontal");
  277. return $1;
  278. }, function($ctx1) {$ctx1.fill(self,"cssClass",{},globals.HLHorizontalSplitter)})},
  279. args: [],
  280. source: "cssClass\x0a\x09^ super cssClass, ' horizontal'",
  281. messageSends: [",", "cssClass"],
  282. referencedClasses: []
  283. }),
  284. globals.HLHorizontalSplitter);
  285. smalltalk.addMethod(
  286. smalltalk.method({
  287. selector: "panesCssClass",
  288. protocol: 'accessing',
  289. fn: function (){
  290. var self=this;
  291. return smalltalk.withContext(function($ctx1) {
  292. var $2,$1;
  293. $2=($ctx1.supercall = true, globals.HLHorizontalSplitter.superclass.fn.prototype._panesCssClass.apply(_st(self), []));
  294. $ctx1.supercall = false;
  295. $1=_st($2).__comma(" horizontal");
  296. return $1;
  297. }, function($ctx1) {$ctx1.fill(self,"panesCssClass",{},globals.HLHorizontalSplitter)})},
  298. args: [],
  299. source: "panesCssClass\x0a\x09^ super panesCssClass, ' horizontal'",
  300. messageSends: [",", "panesCssClass"],
  301. referencedClasses: []
  302. }),
  303. globals.HLHorizontalSplitter);
  304. smalltalk.addMethod(
  305. smalltalk.method({
  306. selector: "resize",
  307. protocol: 'actions',
  308. fn: function (){
  309. var self=this;
  310. return smalltalk.withContext(function($ctx1) {
  311. self._resize_(_st(_st(self["@splitter"])._asJQuery())._css_("top"));
  312. return self}, function($ctx1) {$ctx1.fill(self,"resize",{},globals.HLHorizontalSplitter)})},
  313. args: [],
  314. source: "resize\x0a\x09self resize: (splitter asJQuery css: 'top')",
  315. messageSends: ["resize:", "css:", "asJQuery"],
  316. referencedClasses: []
  317. }),
  318. globals.HLHorizontalSplitter);
  319. smalltalk.addMethod(
  320. smalltalk.method({
  321. selector: "resize:",
  322. protocol: 'actions',
  323. fn: function (anInteger){
  324. var self=this;
  325. var container,size,offset,percentage;
  326. return smalltalk.withContext(function($ctx1) {
  327. var $1,$3,$2,$6,$7,$5,$4,$8,$10,$9,$11,$14,$13,$12;
  328. $1=_st(self["@firstPane"])._asJQuery();
  329. $ctx1.sendIdx["asJQuery"]=1;
  330. container=_st($1)._parent();
  331. $3=_st(self["@firstPane"])._asJQuery();
  332. $ctx1.sendIdx["asJQuery"]=2;
  333. $2=_st($3)._offset();
  334. offset=_st($2)._top();
  335. size=_st(container)._height();
  336. $6=size;
  337. $7=_st(anInteger).__minus(offset);
  338. $ctx1.sendIdx["-"]=2;
  339. $5=_st($6).__minus($7);
  340. $ctx1.sendIdx["-"]=1;
  341. $4=_st($5).__slash(size);
  342. percentage=_st($4).__star((100));
  343. percentage=(80)._min_(_st(percentage)._max_((20)));
  344. $8=_st(self["@firstPane"])._asJQuery();
  345. $ctx1.sendIdx["asJQuery"]=3;
  346. $10=_st(percentage)._asString();
  347. $ctx1.sendIdx["asString"]=1;
  348. $9=_st($10).__comma("%");
  349. $ctx1.sendIdx[","]=1;
  350. _st($8)._css_put_("bottom",$9);
  351. $ctx1.sendIdx["css:put:"]=1;
  352. $11=_st(self["@splitter"])._asJQuery();
  353. $ctx1.sendIdx["asJQuery"]=4;
  354. $14=(100).__minus(percentage);
  355. $ctx1.sendIdx["-"]=3;
  356. $13=_st($14)._asString();
  357. $ctx1.sendIdx["asString"]=2;
  358. $12=_st($13).__comma("%");
  359. $ctx1.sendIdx[","]=2;
  360. _st($11)._css_put_("top",$12);
  361. $ctx1.sendIdx["css:put:"]=2;
  362. _st(_st(self["@secondPane"])._asJQuery())._css_put_("top",_st(_st((100).__minus(percentage))._asString()).__comma("%"));
  363. return self}, function($ctx1) {$ctx1.fill(self,"resize:",{anInteger:anInteger,container:container,size:size,offset:offset,percentage:percentage},globals.HLHorizontalSplitter)})},
  364. args: ["anInteger"],
  365. source: "resize: anInteger\x0a\x09| container size offset percentage |\x0a \x0a container := firstPane asJQuery parent.\x0a\x09offset := firstPane asJQuery offset top.\x0a size := container height.\x0a\x09\x0a\x09percentage := (size - (anInteger - offset)) / size * 100.\x0a\x09percentage := 80 min: (percentage max: 20).\x0a\x09\x0a firstPane asJQuery css: 'bottom' put: percentage asString, '%'.\x0a\x09\x0a\x09splitter asJQuery css: 'top' put: (100 - percentage) asString, '%'.\x0a\x09secondPane asJQuery css: 'top' put: (100 - percentage) asString, '%'",
  366. messageSends: ["parent", "asJQuery", "top", "offset", "height", "*", "/", "-", "min:", "max:", "css:put:", ",", "asString"],
  367. referencedClasses: []
  368. }),
  369. globals.HLHorizontalSplitter);
  370. smalltalk.addMethod(
  371. smalltalk.method({
  372. selector: "setupSplitter",
  373. protocol: 'rendering',
  374. fn: function (){
  375. var self=this;
  376. return smalltalk.withContext(function($ctx1) {
  377. var $1;
  378. $1=_st(self["@splitter"])._asJQuery();
  379. $ctx1.sendIdx["asJQuery"]=1;
  380. _st($1)._draggable_(globals.HashedCollection._newFromPairs_(["axis","y","containment",_st(_st(self["@splitter"])._asJQuery())._parent(),"helper","clone","start",(function(e,ui){
  381. return smalltalk.withContext(function($ctx2) {
  382. return self._startResizing_(_st(ui)._helper());
  383. }, function($ctx2) {$ctx2.fillBlock({e:e,ui:ui},$ctx1,1)})}),"drag",(function(e,ui){
  384. return smalltalk.withContext(function($ctx2) {
  385. return self._resize_(_st(_st(ui)._offset())._top());
  386. }, function($ctx2) {$ctx2.fillBlock({e:e,ui:ui},$ctx1,2)})})]));
  387. return self}, function($ctx1) {$ctx1.fill(self,"setupSplitter",{},globals.HLHorizontalSplitter)})},
  388. args: [],
  389. source: "setupSplitter\x0a\x09splitter asJQuery draggable: #{ \x0a \x09'axis' -> 'y'. \x0a 'containment' -> splitter asJQuery parent.\x0a 'helper' -> 'clone'.\x0a 'start' -> [ :e :ui | self startResizing: ui helper ].\x0a 'drag' -> [ :e :ui | self resize: ui offset top ] }",
  390. messageSends: ["draggable:", "asJQuery", "parent", "startResizing:", "helper", "resize:", "top", "offset"],
  391. referencedClasses: []
  392. }),
  393. globals.HLHorizontalSplitter);
  394. smalltalk.addMethod(
  395. smalltalk.method({
  396. selector: "startResizing:",
  397. protocol: 'actions',
  398. fn: function (aSplitter){
  399. var self=this;
  400. return smalltalk.withContext(function($ctx1) {
  401. _st(aSplitter)._width_(_st(_st(self["@splitter"])._asJQuery())._width());
  402. return self}, function($ctx1) {$ctx1.fill(self,"startResizing:",{aSplitter:aSplitter},globals.HLHorizontalSplitter)})},
  403. args: ["aSplitter"],
  404. source: "startResizing: aSplitter\x0a\x09aSplitter width: splitter asJQuery width",
  405. messageSends: ["width:", "width", "asJQuery"],
  406. referencedClasses: []
  407. }),
  408. globals.HLHorizontalSplitter);
  409. smalltalk.addClass('HLVerticalSplitter', globals.HLSplitter, [], 'Helios-Layout');
  410. smalltalk.addMethod(
  411. smalltalk.method({
  412. selector: "cssClass",
  413. protocol: 'accessing',
  414. fn: function (){
  415. var self=this;
  416. return smalltalk.withContext(function($ctx1) {
  417. var $2,$1;
  418. $2=($ctx1.supercall = true, globals.HLVerticalSplitter.superclass.fn.prototype._cssClass.apply(_st(self), []));
  419. $ctx1.supercall = false;
  420. $1=_st($2).__comma(" vertical");
  421. return $1;
  422. }, function($ctx1) {$ctx1.fill(self,"cssClass",{},globals.HLVerticalSplitter)})},
  423. args: [],
  424. source: "cssClass\x0a\x09^ super cssClass, ' vertical'",
  425. messageSends: [",", "cssClass"],
  426. referencedClasses: []
  427. }),
  428. globals.HLVerticalSplitter);
  429. smalltalk.addMethod(
  430. smalltalk.method({
  431. selector: "panesCssClass",
  432. protocol: 'accessing',
  433. fn: function (){
  434. var self=this;
  435. return smalltalk.withContext(function($ctx1) {
  436. var $2,$1;
  437. $2=($ctx1.supercall = true, globals.HLVerticalSplitter.superclass.fn.prototype._panesCssClass.apply(_st(self), []));
  438. $ctx1.supercall = false;
  439. $1=_st($2).__comma(" vertical");
  440. return $1;
  441. }, function($ctx1) {$ctx1.fill(self,"panesCssClass",{},globals.HLVerticalSplitter)})},
  442. args: [],
  443. source: "panesCssClass\x0a\x09^ super panesCssClass, ' vertical'",
  444. messageSends: [",", "panesCssClass"],
  445. referencedClasses: []
  446. }),
  447. globals.HLVerticalSplitter);
  448. smalltalk.addMethod(
  449. smalltalk.method({
  450. selector: "resize",
  451. protocol: 'actions',
  452. fn: function (){
  453. var self=this;
  454. return smalltalk.withContext(function($ctx1) {
  455. self._resize_(_st(_st(self["@splitter"])._asJQuery())._css_("left"));
  456. return self}, function($ctx1) {$ctx1.fill(self,"resize",{},globals.HLVerticalSplitter)})},
  457. args: [],
  458. source: "resize\x0a\x09self resize: (splitter asJQuery css: 'left')",
  459. messageSends: ["resize:", "css:", "asJQuery"],
  460. referencedClasses: []
  461. }),
  462. globals.HLVerticalSplitter);
  463. smalltalk.addMethod(
  464. smalltalk.method({
  465. selector: "resize:",
  466. protocol: 'actions',
  467. fn: function (anInteger){
  468. var self=this;
  469. var container,size,offset,percentage;
  470. return smalltalk.withContext(function($ctx1) {
  471. var $1,$3,$2,$6,$7,$5,$4,$8,$10,$9,$11,$14,$13,$12;
  472. $1=_st(self["@firstPane"])._asJQuery();
  473. $ctx1.sendIdx["asJQuery"]=1;
  474. container=_st($1)._parent();
  475. $3=_st(self["@firstPane"])._asJQuery();
  476. $ctx1.sendIdx["asJQuery"]=2;
  477. $2=_st($3)._offset();
  478. offset=_st($2)._left();
  479. size=_st(container)._width();
  480. $6=size;
  481. $7=_st(anInteger).__minus(offset);
  482. $ctx1.sendIdx["-"]=2;
  483. $5=_st($6).__minus($7);
  484. $ctx1.sendIdx["-"]=1;
  485. $4=_st($5).__slash(size);
  486. percentage=_st($4).__star((100));
  487. percentage=(80)._min_(_st(percentage)._max_((20)));
  488. $8=_st(self["@firstPane"])._asJQuery();
  489. $ctx1.sendIdx["asJQuery"]=3;
  490. $10=_st(percentage)._asString();
  491. $ctx1.sendIdx["asString"]=1;
  492. $9=_st($10).__comma("%");
  493. $ctx1.sendIdx[","]=1;
  494. _st($8)._css_put_("right",$9);
  495. $ctx1.sendIdx["css:put:"]=1;
  496. $11=_st(self["@splitter"])._asJQuery();
  497. $ctx1.sendIdx["asJQuery"]=4;
  498. $14=(100).__minus(percentage);
  499. $ctx1.sendIdx["-"]=3;
  500. $13=_st($14)._asString();
  501. $ctx1.sendIdx["asString"]=2;
  502. $12=_st($13).__comma("%");
  503. $ctx1.sendIdx[","]=2;
  504. _st($11)._css_put_("left",$12);
  505. $ctx1.sendIdx["css:put:"]=2;
  506. _st(_st(self["@secondPane"])._asJQuery())._css_put_("left",_st(_st((100).__minus(percentage))._asString()).__comma("%"));
  507. return self}, function($ctx1) {$ctx1.fill(self,"resize:",{anInteger:anInteger,container:container,size:size,offset:offset,percentage:percentage},globals.HLVerticalSplitter)})},
  508. args: ["anInteger"],
  509. source: "resize: anInteger\x0a\x09| container size offset percentage |\x0a \x0a container := firstPane asJQuery parent.\x0a\x09offset := firstPane asJQuery offset left.\x0a size := container width.\x0a\x09\x0a\x09percentage := (size - (anInteger - offset)) / size * 100.\x0a\x09percentage := 80 min: (percentage max: 20).\x0a\x09\x0a firstPane asJQuery css: 'right' put: percentage asString, '%'.\x0a\x09\x0a\x09splitter asJQuery css: 'left' put: (100 - percentage) asString, '%'.\x0a\x09secondPane asJQuery css: 'left' put: (100 - percentage) asString, '%'",
  510. messageSends: ["parent", "asJQuery", "left", "offset", "width", "*", "/", "-", "min:", "max:", "css:put:", ",", "asString"],
  511. referencedClasses: []
  512. }),
  513. globals.HLVerticalSplitter);
  514. smalltalk.addMethod(
  515. smalltalk.method({
  516. selector: "setupSplitter",
  517. protocol: 'rendering',
  518. fn: function (){
  519. var self=this;
  520. return smalltalk.withContext(function($ctx1) {
  521. var $1;
  522. $1=_st(self["@splitter"])._asJQuery();
  523. $ctx1.sendIdx["asJQuery"]=1;
  524. _st($1)._draggable_(globals.HashedCollection._newFromPairs_(["axis","x","containment",_st(_st(self["@splitter"])._asJQuery())._parent(),"helper","clone","start",(function(e,ui){
  525. return smalltalk.withContext(function($ctx2) {
  526. return self._startResizing_(_st(ui)._helper());
  527. }, function($ctx2) {$ctx2.fillBlock({e:e,ui:ui},$ctx1,1)})}),"drag",(function(e,ui){
  528. return smalltalk.withContext(function($ctx2) {
  529. return self._resize_(_st(_st(ui)._offset())._left());
  530. }, function($ctx2) {$ctx2.fillBlock({e:e,ui:ui},$ctx1,2)})})]));
  531. return self}, function($ctx1) {$ctx1.fill(self,"setupSplitter",{},globals.HLVerticalSplitter)})},
  532. args: [],
  533. source: "setupSplitter\x0a\x09splitter asJQuery draggable: #{ \x0a \x09'axis' -> 'x'. \x0a 'containment' -> splitter asJQuery parent.\x0a 'helper' -> 'clone'.\x0a 'start' -> [ :e :ui | self startResizing: ui helper ].\x0a 'drag' -> [ :e :ui | self resize: (ui offset left) ] }",
  534. messageSends: ["draggable:", "asJQuery", "parent", "startResizing:", "helper", "resize:", "left", "offset"],
  535. referencedClasses: []
  536. }),
  537. globals.HLVerticalSplitter);
  538. smalltalk.addMethod(
  539. smalltalk.method({
  540. selector: "startResizing:",
  541. protocol: 'actions',
  542. fn: function (aSplitter){
  543. var self=this;
  544. return smalltalk.withContext(function($ctx1) {
  545. _st(aSplitter)._height_(_st(_st(self["@splitter"])._asJQuery())._height());
  546. return self}, function($ctx1) {$ctx1.fill(self,"startResizing:",{aSplitter:aSplitter},globals.HLVerticalSplitter)})},
  547. args: ["aSplitter"],
  548. source: "startResizing: aSplitter\x0a\x09aSplitter height: splitter asJQuery height",
  549. messageSends: ["height:", "height", "asJQuery"],
  550. referencedClasses: []
  551. }),
  552. globals.HLVerticalSplitter);
  553. smalltalk.addMethod(
  554. smalltalk.method({
  555. selector: "isHeliosSplitter",
  556. protocol: '*Helios-Layout',
  557. fn: function (){
  558. var self=this;
  559. return false;
  560. },
  561. args: [],
  562. source: "isHeliosSplitter\x0a\x09^ false",
  563. messageSends: [],
  564. referencedClasses: []
  565. }),
  566. globals.Object);
  567. });