#define VBBOOL    1
#define VBMENU    2
#define VBSTRING  3
#define VBINTEGER 4
#define VBLIST    5

/* Apply the changes as the were made to the current object */
VOID SetProperty(int type,Object *actobj,Object *obj, ULONG property)
{ 
  struct VBList *tmpvbl;
  
  switch (type)
  {
    case VBLIST:
      DoMethod((Object *)XGet(obj,MUIA_Popobject_Object),MUIM_List_GetEntry,MUIV_List_GetEntry_Active,&tmpvbl);
      set(actobj,property,atoi(tmpvbl->Key));
      break;
    case VBBOOL:
      set(actobj,property,XGet(obj,MUIA_Cycle_Active));
      break;
    case VBMENU:
      break;
    case VBSTRING:
      break;
    case VBINTEGER:
      break;
  }
}

/* Get the props of the current object and show them in the proplist */
/* actobj is the currently active object in the user's application   */
/* destobj is the object in the object window                        */
VOID GetProperty(int type,Object *actobj,Object *destobj,ULONG property)
{
  int i;
  Object *list;
  struct VBList *x;
  
  switch (type)
  {
    case VBLIST:
      list=(Object *)XGet(destobj,MUIA_Popobject_Object);  
      DoMethod(list,MUIM_List_GetEntry,0,&x);
      for (i=1;atoi(x->Key)!=XGet(actobj,property);i++)
      { DoMethod(list,MUIM_List_GetEntry,i,&x);
        if(x==NULL) break;
      }
        
      if(x!=NULL) set(destobj,MUIA_String_Contents,x->Value);
      break;
    case VBBOOL:
      set(destobj,MUIA_Cycle_Active,XGet(actobj,property));
      break;
    case VBMENU:
      break;
    case VBSTRING:
      break;
    case VBINTEGER:
      break;
  }
}
   

VOID ApplyChanges(Object *actobj)
{
  SetProperty(VBLIST,    actobj, a->BackGround,  MUIA_Background);
  SetProperty(VBMENU,    actobj, a->ContextMenu, MUIA_ContextMenu);
  SetProperty(VBSTRING,  actobj, a->ControlChar, MUIA_ControlChar);
  SetProperty(VBBOOL,    actobj, a->CycleChain,  MUIA_CycleChain);
  SetProperty(VBBOOL,    actobj, a->Disabled,    MUIA_Disabled);
  SetProperty(VBBOOL,    actobj, a->Draggable,   MUIA_Draggable);
  SetProperty(VBBOOL,    actobj, a->Dropable,    MUIA_Dropable);
  SetProperty(VBLIST,    actobj, a->Font,        MUIA_Font);
  SetProperty(VBLIST,    actobj, a->Frame,       MUIA_Frame);
  SetProperty(VBBOOL,    actobj, a->FramePhantomHoriz,MUIA_FramePhantomHoriz);
  SetProperty(VBSTRING,  actobj, a->FrameTitle,  MUIA_FrameTitle);
  SetProperty(VBINTEGER, actobj, a->HelpLine,    MUIA_HelpLine);
  SetProperty(VBSTRING,  actobj, a->HelpNode,    MUIA_HelpNode);
  SetProperty(VBBOOL,    actobj, a->HorizDisappear,MUIA_HorizDisappear);
  SetProperty(VBINTEGER, actobj, a->HorizWeight, MUIA_HorizWeight);
  SetProperty(VBINTEGER, actobj, a->InnerBottom, MUIA_InnerBottom);
  SetProperty(VBINTEGER, actobj, a->InnerLeft,   MUIA_InnerLeft);
  SetProperty(VBINTEGER, actobj, a->InnerRight,  MUIA_InnerRight);
  SetProperty(VBINTEGER, actobj, a->InnerTop,    MUIA_InnerTop);
  SetProperty(VBLIST,    actobj, a->InputMode,   MUIA_InputMode);
  SetProperty(VBINTEGER, actobj, a->MaxHeigth,   MUIA_MaxHeight);
  SetProperty(VBINTEGER, actobj, a->MaxWidth,    MUIA_MaxWidth);
  SetProperty(VBSTRING,  actobj, a->ObjectID,    MUIA_ObjectID);
  SetProperty(VBBOOL,    actobj, a->Selected,    MUIA_Selected);
  SetProperty(VBSTRING,  actobj, a->ShortHelp,   MUIA_ShortHelp);
  SetProperty(VBBOOL,    actobj, a->ShowMe,      MUIA_ShowMe);
  SetProperty(VBBOOL,    actobj, a->ShowSelState,MUIA_ShowSelState);
  SetProperty(VBBOOL,    actobj, a->VertDisappear,MUIA_VertDisappear);
  SetProperty(VBINTEGER, actobj, a->VertWeight,  MUIA_VertWeight);
  SetProperty(VBINTEGER, actobj, a->Weight,      MUIA_Weight);
}

VOID UpdateObjectsWindow(Object *obj)
{
  GetProperty(VBLIST,    obj, a->BackGround,  MUIA_Background);
  GetProperty(VBMENU,    obj, a->ContextMenu, MUIA_ContextMenu);
  GetProperty(VBSTRING,  obj, a->ControlChar, MUIA_ControlChar);
  GetProperty(VBBOOL,    obj, a->CycleChain,  MUIA_CycleChain);
  GetProperty(VBBOOL,    obj, a->Disabled,    MUIA_Disabled);
  GetProperty(VBBOOL,    obj, a->Draggable,   MUIA_Draggable);
  GetProperty(VBBOOL,    obj, a->Dropable,    MUIA_Dropable);
  GetProperty(VBLIST,    obj, a->Font,        MUIA_Font);
  GetProperty(VBLIST,    obj, a->Frame,       MUIA_Frame);
  GetProperty(VBBOOL,    obj, a->FramePhantomHoriz,MUIA_FramePhantomHoriz);
  GetProperty(VBSTRING,  obj, a->FrameTitle,  MUIA_FrameTitle);
  GetProperty(VBINTEGER, obj, a->HelpLine,    MUIA_HelpLine);
  GetProperty(VBSTRING,  obj, a->HelpNode,    MUIA_HelpNode);
  GetProperty(VBBOOL,    obj, a->HorizDisappear,MUIA_HorizDisappear);
  GetProperty(VBINTEGER, obj, a->HorizWeight, MUIA_HorizWeight);
  GetProperty(VBINTEGER, obj, a->InnerBottom, MUIA_InnerBottom);
  GetProperty(VBINTEGER, obj, a->InnerLeft,   MUIA_InnerLeft);
  GetProperty(VBINTEGER, obj, a->InnerRight,  MUIA_InnerRight);
  GetProperty(VBINTEGER, obj, a->InnerTop,    MUIA_InnerTop);
  GetProperty(VBLIST,    obj, a->InputMode,   MUIA_InputMode);
  GetProperty(VBINTEGER, obj, a->MaxHeigth,   MUIA_MaxHeight);
  GetProperty(VBINTEGER, obj, a->MaxWidth,    MUIA_MaxWidth);
  GetProperty(VBSTRING,  obj, a->ObjectID,    MUIA_ObjectID);
  GetProperty(VBBOOL,    obj, a->Selected,    MUIA_Selected);
  GetProperty(VBSTRING,  obj, a->ShortHelp,   MUIA_ShortHelp);
  GetProperty(VBBOOL,    obj, a->ShowMe,      MUIA_ShowMe);
  GetProperty(VBBOOL,    obj, a->ShowSelState,MUIA_ShowSelState);
  GetProperty(VBBOOL,    obj, a->VertDisappear,MUIA_VertDisappear);
  GetProperty(VBINTEGER, obj, a->VertWeight,  MUIA_VertWeight);
  GetProperty(VBINTEGER, obj, a->Weight,      MUIA_Weight);

}  

