搜索
查看: 900|回复: 0

plus高级选项卡adjust、getPos、oncommand、onselChange 用法

[复制链接]

39

主题

174

帖子

1037

积分

荣誉会员

htmlayout.cn 我的学习笔记

Rank: 8Rank: 8

积分
1037
发表于 2018-5-13 17:09:05 | 显示全部楼层 |阅读模式
1,
adjust()是tabs选项卡自适应, 这样如果你新增了或者删除了某一选项卡,就会自动调用这个函数,来达到一些目的,比如:
1525959683748295.png
这个+号,要一直贴边,这个功能可以利用adjust()实现

先定义这个函数要实现的功能:
  1. headTabs.adjust = function(){
  2.     var x,y,cx,cy = owner.getPos();
  3.       mainForm.plus.setPos(x+cx+2,y);
  4. }
  5. headTabs.adjust();
复制代码

上面的意思是:获取tabs的整个位置信息,x+cx就是整个tabs在maifnorm中的位置,+2之后设置这个【+】号x轴就是这个位置,y轴不变。

设置完成之后,初始化的时候调用一次,以后就可以不管他了,它自己就可以自适应。

2,
批量添加选项卡的代码
  1. headTabs.addStrip = function(title,...){
  2.     return headTabs.add({
  3.         text=title;
  4.         hasCloseButton = true;
  5.     },...)  
  6. }

  7. headTabs.addStrip("TestA","\res\TestA.aardio")
  8. headTabs.addStrip("TestB","\res\TestB.aardio")
  9. headTabs.addStrip("TestC","\res\TestC.aardio")
  10. headTabs.addStrip("TestD","\res\TestD.aardio")
复制代码


3,
getPos() 是获取整个tabs选项卡的位置信息,上面第一条有应用方法

4,
自定义高级选项卡单个选项的功能
  1. tbs.add({
  2.     text="关闭窗口";
  3. })

  4. tbs.oncommand = function(strip,id,event){
  5.     if(strip.text == "关闭窗口" ) winform.close();
  6. }
复制代码

当然你也可以这样用:
  1. tbs.add({
  2.     text="关闭窗口";
  3. })

  4. tbs.onSelchange = function(idx,strip,form){
  5.     if( idx == 2 ){
  6.         winform.close()
  7.     }
  8. }
复制代码


以上!

下面是前两天交的阶段性作业中的部分代码,里面用到了上面一些功能,这里发出来希望能帮到新人。
完整工程下载:
https://pan.baidu.com/s/1nuZYRvN
名字就是:作业v0.2

主界面main.aardio代码如下:
  1. import win.ui;
  2. /*DSG{{*/
  3. mainForm = win.form(text="popdes第一阶段作业";right=1097;bottom=610;bgcolor=8421376)
  4. mainForm.add(
  5. custom={cls="custom";text="custom";left=0;top=35;right=1098;bottom=606;bgcolor=16777215;db=1;dl=1;dr=1;dt=1;z=4};
  6. plus={cls="plus";text="+";left=236;top=1;right=266;bottom=36;bgcolor=128;color=16777215;dl=1;dt=1;font=LOGFONT(h=-21);notify=1;z=3};
  7. plus2={cls="plus";text="TestA";left=0;top=0;right=116;bottom=35;bgcolor=8388736;color=16777215;dl=1;dt=1;font=LOGFONT(h=-21);z=1};
  8. plus3={cls="plus";text="TestB";left=119;top=1;right=235;bottom=36;bgcolor=8388736;color=16777215;dl=1;dt=1;font=LOGFONT(h=-21);z=2}
  9. )
  10. /*}}*/

  11. import win.ui.tabs;
  12. import Mylib;

  13. var headTabs = win.ui.tabs(mainForm.plus2,mainForm.plus3);

  14. headTabs.skin( Mylib.tabsSkin );

  15. headTabs.clear();
  16. headTabs.margin = 5;
  17. headTabs.addStrip = function(title,...){
  18.         return headTabs.add({
  19.                 text=title;
  20.                 hasCloseButton = true;
  21.         },...)       
  22. }

  23. headTabs.addStrip("TestA","\res\TestA.aardio")
  24. headTabs.addStrip("TestB","\res\TestB.aardio")
  25. headTabs.addStrip("TestC","\res\TestC.aardio")
  26. headTabs.addStrip("TestD","\res\TestD.aardio")

  27. headTabs.selIndex = 1;

  28. headTabs.adjust = function(){
  29.     var x,y,cx,cy = owner.getPos();
  30.           mainForm.plus.setPos(x+cx+2,y);
  31. }
  32. headTabs.adjust();

  33. import win.inputBox;
  34. var stipWidth = headTabs.strips[1].width;
  35. mainForm.plus.oncommand = function(id,event){
  36.         var inputForm = win.inputBox(mainForm)
  37.         var retStr = inputForm.doModal();
  38.         if(retStr){
  39.                 if( string.startWith(retStr,"http://",true) ){
  40.                         var x,y,cx,cy = headTabs.getPos();
  41.                     if((mainForm.width-stipWidth) <= (x+cx)){
  42.                         mainForm.msgbox("超出界面了!")
  43.                             return;
  44.                     }
  45.                    
  46.                         headTabs.addStrip("NewPage","\res\default.aardio");
  47.                         headTabs.selIndex = #headTabs.strips;
  48.                         headTabs.forms[#headTabs.strips].openUrl(retStr);
  49.                         var x,y,cx,cy = headTabs.getPos();
  50.                         mainForm.plus.setPos(x+cx+2,y);       
  51.                 }else {
  52.                         mainForm.msgbox("请输入网址以 http:// 开头!")
  53.                 }               
  54.         }
  55.        
  56. }

  57. mainForm.onMouseDown  = function(wParam,lParam){
  58.         mainForm.hitCaption();       
  59. }

  60. //全局访问中转站
  61. mainForm.childGlobalFun = function(name,fun){
  62.         var curForm,idx = headTabs.query( text = name );
  63.         if(curForm){
  64.                         if(curForm[fun]){
  65.                                 var ret,str = call(curForm[fun]);
  66.                                 return str;       
  67.                         }else {
  68.                                 return "调用函数未找到!";
  69.                         }
  70.                        
  71.         }else {
  72.                 return "Tabs名称错误!";
  73.         }
  74.        
  75. }


  76. mainForm.enableDpiScaling();
  77. mainForm.show();

  78. return win.loopMessage();
复制代码

代码太多了,其他界面的请自行去下载查看吧。
! www.HtmLayout.Cn 我的学习笔记
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-15 16:39 , Processed in 0.062500 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表