User Tools

Site Tools


pracro:devas_corner

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
pracro:devas_corner [2010/08/02 14:20] devapracro:devas_corner [2010/08/10 11:13] deva
Line 5: Line 5:
 <?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
 <macro name="test_resume" version="1.0"> <macro name="test_resume" version="1.0">
-  <script> 
-    function foo() 
-      -- this: current widget (widget that triggered the event) 
-      -- this.value: current value 
-      -- this.name: current name 
-      -- this.type: current type (eg. 'checkbox') 
  
-      this.setChecked(true)+  <resume> 
 +    <script src="regexp.lua"/> 
 +    <script> 
 +      -- inline code 
 +      if(regexp('.+', '')) 
 +      then 
 +        return 'a string' 
 +      else 
 +        return 'another string' 
 +      end 
 +    </script> 
 +  </resume>
  
-      foo = getWidgetByName('test2')+  <scripts> 
 +    <script> 
 +      function foo(
 +        -- this: current widget (widget that triggered the event)
  
-      if ( foo && foo.type == 'lineedit'+        this:setChecked(true) 
-      then + 
-         foo.setValue('bleh')+        foo = widget('test2'
 + 
 +        if ( foo && foo:type() == 'lineedit'
 +        then 
 +          foo:setValue('bleh') 
 +        end
       end       end
-    end +    </script> 
-  </script>+  </scripts>
   <widgets caption="Test Resume"   <widgets caption="Test Resume"
           layout="vbox">           layout="vbox">
Line 32: Line 45:
 The script tag can either consist of inline code, or be a reference to a serverside file, that will be inserted in-place by the server before it is sent to the client. The script tag can either consist of inline code, or be a reference to a serverside file, that will be inserted in-place by the server before it is sent to the client.
 <code xml> <code xml>
-<script> +<scripts> 
---example +  <script src="foo.lua"/
-</script> +  <script> 
-<script file="foo.lua"/>+    --example 
 +  </script> 
 +</scripts>
 </code> </code>
  
Line 46: Line 61:
  
 ====Event Handlers==== ====Event Handlers====
-''onChange'': triggered whenever the value of the widget is changed, either programmatically or by the user.\\ +  * ''onChange'': triggered whenever the value of the widget is changed, either programmatically or by the user. 
-''onUserChange'': triggered whenever the value of the widget is changed by the user.\\+  ''onUserChange'': triggered whenever the value of the widget is changed by the user. 
 +  * and many more
  
 +
 +====The Widget Object====
 +When in a lua function, invoked by an event handler, the calling object (the object invoking the event) will be made available through the value 'this'.
 +Other object can be retrieved using the ''getWidget('name')'' function.
 +<code lua>
 +function foo()
 +   if (this.value == 'bar')
 +   then
 +      this.setValue('dut')
 +   end
 +
 +   bas = getWidget('mywdg')
 +   if (bas && bas.value == 'bar' )
 +   then
 +      bas.setValue('dims')
 +   end
 +end
 +</code>
 +A small number of methods are common to all widget types. These include are:
 +  * ''setValue(string)'', ''value()''
 +  * ''setValid(boolean)'', ''valid()''
 +  * ''setVisible(boolean)'', ''visible()''
 +  * ''setEnabled(boolean)'', ''enabled()''
 +  * ''type()''
 +  * ''name()''
 +Others are specific to certain widget types, such as (and many more):
 +  * ''setChekced(boolean)'', ''checked()'' (checkbox)
  
 =====New protocol===== =====New protocol=====
Line 170: Line 213:
 A macro in resume mode is marked with a distinct colour when committed.\\ A macro in resume mode is marked with a distinct colour when committed.\\
 A macro already committed, and reopened, is to be opened in edit mode, ie. it is to assume the old values from the commit. A macro already committed, and reopened, is to be opened in edit mode, ie. it is to assume the old values from the commit.
- 
- 
pracro/devas_corner.txt · Last modified: 2011/01/14 14:49 by deva