WideStudio Logo
WideStudio
Programming Guide
WideStudio Index
Table of contents


The sample of the event procedures for WSCvifield



Executing some event procedures by return key

You can execute the specified procedures in the event procedure. Here, the following sample shows executing the procedure which name is "InputFixed".

import mpfc
# A sample of WSEV_KEY_HOOK trigger.
def cbop(object):
  # (A)Get the pressed key.
  key = mpfc.WSGIappKeyboard().getKey();
  # (B)If the key is return..
  if (key == mpfc.WSK_Return):
    # Execute the procedure which name is "InputFixed".
    object.execProcedure("InputFixed");
  return
mpfc.WSGFfunctionRegister("chop",chop)

This procedure sometimes is used to execute some procedure on the end of key input.

Clearing the last input string on starting of next input

Here, you create a procedure which clears the last input string on starting of the next. the procedure clears the string the first key input since the input field instance is focused or clicked by the mouse pointer. The clear process is as follows:

import mpfc
# To contain the last focused input field.
focus_if = None

# (1)A sub-procedure with WSEV_FOCUS_CH
def _focus_ch_(object):
  # (A) Examine whether the instance is focused.
  global focus_if
  if (focus_if != None and
     focus_if.getInstanceName() != object.getInstanceName() and
     object.getFocus() != mpfc.False ):

    # (B)It need to clear the string!
    # Set the clear flag True.
    object.setVariantData("CLEAR TIMING",1);
    # (C)store that the last focused one is.
    focus_if = object;
  return
mpfc.WSGFfunctionRegister("_focus_ch_",_focus_ch_)


#(2)A sub-procedure with WSEV_MOUSE_PRESS
def _btn_press_(object):
  # (D) if clicked by the mouse pointer,
  # it needs to clear the string!
  # Set the clear flag True.
  object.setVariantData("CLEAR TIMING",1);
  object.setProperty("cursorPos",0);
  # (E)store that the last focused one is.
  global focus_if
  focus_if = object;
  return
mpfc.WSGFfunctionRegister("_btn_press_",_btn_press_)


# (3)A sub-procedure with WSEV_KEY_PRESS
def _key_hook_(object):
  # See the clear flag to clear the last input string.
  fl = object.getVariantData("CLEAR TIMING");
  if (fl.getLong() == 1):
    key = mpfc.WSGIappKeyboard().getKey();
    # (G) Clear the string,if the key is not cursor key.
    if (key != mpfc.WSK_Tab and
       key != mpfc.WSK_Up and
       key != mpfc.WSK_Down and
       key != mpfc.WSK_Left and
       key != mpfc.WSK_Right ):
      # (H)Clear...
      object.setProperty("labelString","");
    else:
      return;
  # (I)Set the clear flag False.
  object.setVariantData("CLEAR TIMING",0);
  return
mpfc.WSGFfunctionRegister("_key_hook_",_key_hook_)


# The main-procedure.
# (4)Set the input field instance with WSEV_INITIALIZE trigger.
def ifdclr(object):
  # Setup the sub-procedure(1) with WSEV_FOCUS_CH
  object.addProcedure("ac1","_focus_ch_",mpfc.WSEV_FOCUS_CH);

  # Setup the sub-procedure(2) with WSEV_MOUSE_PRESS
  object.addProcedure("ac2","_btn_press_",mpfc.WSEV_MOUSE_PRESS);

  # Setup the sub-procedure(3) with WSEV_KEY_PRESS
  object.addProcedure("ac3","_key_hook_",mpfc.WSEV_KEY_HOOK);
mpfc.WSGFfunctionRegister("ifdclr",ifdclr)

In the focus_ch event procedure, To examine the instance is focused afresh, It uses the static variable which is stored the last focused instance.


Document Release 3.80 for WideStudio ver 3.80, Jan 2005


WideStudio documents index | Table of contents

Copyright(C) WideStudio Development Team, 1999-2005 Last modified: Jan 05, 2005