Exemplo n.º 1
0
TANY W_CALLBACK KpiVBXValuePropIN(OBJECTID self, LPSTR ap)
{
    WORD wType = OBJECT_TYPE(self);
    ATOMID idWidget = KppGetItemName(wType, self);
    HWND hWnd = KpsGetWindowFromWidget(idWidget);
    TANY res;

    res.type = T_ATOM;
    
    if (IsWindow(hWnd))
    {
        LPVBXINFO lpVBXInfo = GetVBXInfo(hWnd);
        LPMODEL lpModel = GetControlModel(lpVBXInfo);

        if (!lpVBXInfo->hCtl || !lpModel)
            return res;
        if (OBJECT_TYPE(self) == OBJECT)
            self = Kpp_Get_Super(OBJECT, self);
        
        res.data.atom = SetValueProp(CLASS, self, lpModel);
    }
    else
        res.data.atom = lpIDs->idNull;
    
    return res;
}        
Exemplo n.º 2
0
static CLBRITEM FindNextInLevel(float fRow, LPBRTABLE lpLevel,
                                WORD wSize, BOOL bUp, LPBRTABLE lpParentLevel,
                                float fTopRow, float fBottomRow,
                                OBJECTID idFocus, BRDATA lpBrData,
                                LEVEL_TYPE level)
{
    CLBRITEM lpItem, lpNode = NULL;
    float fNextRow = bUp ? 0 : FLT_MAX;
    OBJECTID idSelParent = Kpp_Get_Super(OBJECT_TYPE(BrSelection.idObj), 
                                         BrSelection.idObj);
    
    for (lpItem = (CLBRITEM) lpLevel;
	 lpItem && NEXT_BRITEM(lpItem) != END_OF_LEVEL;
         lpItem = (CLBRITEM) MOVE_TO_NEXT_ITEM(lpItem, wSize))
    {
        float fItemRow = GET_Y_REL(lpItem);
        OBJECTID idObj = ITEMID_BRITEM(lpItem);
        WORD wType = OBJECT_TYPE(idObj);
        OBJECTID idParent = Kpp_Get_Super(wType, idObj);

        if (bUp && fItemRow < fRow && fItemRow > fNextRow ||
            !bUp && fItemRow > fRow && fItemRow < fNextRow &&
            (fItemRow - fTopRow > (float) -1.0 &&
             fBottomRow - fItemRow > (float) 0.0 ||
             idParent == idSelParent))
        {
            CLBRITEM lpUpItem, lpParent = NULL;
                  
            for (lpUpItem = (CLBRITEM) lpParentLevel; 
                 lpUpItem && NEXT_BRITEM(lpUpItem) != END_OF_LEVEL;
                 lpUpItem = (CLBRITEM) MOVE_TO_NEXT_ITEM(lpUpItem, wSize))
                if (ITEMID_BRITEM(lpUpItem) == idParent)
                {
                    lpParent = lpUpItem;
                    break;
                }
    
            if (lpParent && 
                (ARE_INSTANCES_VISIBLE(BRITEM_FLAGS(lpParent)) &&
                 wType == OBJECT ||
                 ARE_SUBCLASSES_VISIBLE(BRITEM_FLAGS(lpParent)) &&
                 wType == CLASS) &&
                (idFocus == lpIDs->idRootClass ||
                 Kpp_Is_AKindOf(TYPE_BRITEM(lpItem), ITEMID_BRITEM(lpItem),
                                idFocus)))
            {
                lpNode = lpItem;
                if (BrSelection.idObj != ITEMID_BRITEM(lpItem))
                    fNextRow = fItemRow;
            }
        }
    }
    
    return lpNode;
}
Exemplo n.º 3
0
static enum pc_location
classify_pc (unsigned long pc,
	     SCHEME_OBJECT ** r_block_addr,
	     unsigned int * r_index)
{
#ifdef CC_SUPPORT_P
  if (PC_ALIGNED_P (pc))
    {
      if (HEAP_ADDRESS_P ((SCHEME_OBJECT *) pc))
	{
	  SCHEME_OBJECT * block_addr = (find_heap_address (pc));
	  if (block_addr == 0)
	    return (pcl_unknown);
	  if (r_block_addr != 0)
	    (*r_block_addr) = block_addr;
	  return (pcl_heap);
	}
      if (ADDRESS_IN_CONSTANT_P ((SCHEME_OBJECT *) pc))
	{
	  SCHEME_OBJECT * block_addr = (find_constant_address (pc));
	  if (block_addr == 0)
	    return (pcl_unknown);
	  if (r_block_addr != 0)
	    (*r_block_addr) = block_addr;
	  return (pcl_constant);
	}
      if (ADDRESS_UCODE_P (pc))
	{
	  int index = (pc_to_builtin_index (pc));
	  if (index >= 0)
	    {
	      if (r_index != 0)
		(*r_index) = index;
	      return (pcl_builtin);
	    }
	  index = (pc_to_utility_index (pc));
	  if (index >= 0)
	    {
	      if (r_index != 0)
		(*r_index) = index;
	      return (pcl_utility);
	    }
	  if ((OBJECT_TYPE (GET_PRIMITIVE)) == TC_PRIMITIVE)
	    return (pcl_primitive);
	}
    }
#else
  if ((ADDRESS_UCODE_P (pc))
      && ((OBJECT_TYPE (GET_PRIMITIVE)) == TC_PRIMITIVE))
    return (pcl_primitive);
#endif
  return (pcl_unknown);
}
Exemplo n.º 4
0
int PEXPORT KpcCountSubClasses(OBJECTID idClass)
{
    if (OBJECT_TYPE(idClass) == CLASS)
        return (int) KppCountSubClasses(idClass, IMMEDIATE);

    return kpc_error();
}
Exemplo n.º 5
0
ATOMID PEXPORT KpcResetSlotOption(OBJECTID idObj, ATOMID slot, ATOMID option)
{
    ATOMID res = kpc_reset_slot_option(NULL, OBJECT_TYPE(idObj), idObj, slot,
                                       option);

    return res ? res : kpc_error();
}
Exemplo n.º 6
0
LISTID PEXPORT _psl(OBJECTID idObj, ATOMID slot, LISTID idList)
{
    if (!Kpp_Set_SlotValue(OBJECT_TYPE(idObj), idObj, slot, idList, EXPLIST))
        return (LISTID) kpc_error();

    return idList;
}
Exemplo n.º 7
0
static BOOL multi_ap(va_list ap, char *types)
{
    if (types)
    {
        switch (types[0]) {
          case T_OBJECT:
              if (types[2])
                  return TRUE;
              else
              {
                  OBJECTID idObj = va_arg(ap, OBJECTID);
                  ATOMID idSlot = va_arg(ap, ATOMID);

                  return Kpp_GetOption(OBJECT_TYPE(idObj), idObj,
                                       idSlot, OPT_CARD);
              }
          case T_ANY:
          {
              TANY u = va_arg(ap, TANY);

              return u.type == T_LIST;
          }
          default:
              return types[1] != '\0';
        }
    }
    else
        return FALSE;
}
Exemplo n.º 8
0
ATOMID CEXPORT KpcMakeSlot(OBJECTID idObj, ATOMID name, HANDLE hResInst, 
                           char *types, ...)
{
    va_list ap;
    WORD wType = OBJECT_TYPE(idObj);
    BOOL bRemote = KppIsRemoteObject(wType, idObj);
    ITEMID idSlot;
    
    if (bRemote)
        idSlot = KppKrpMakeSlotCB(idObj, name, lpIDs->idNull, EXPATOM);
    else
        idSlot = Kpp_Make_Slot(wType, idObj, name);
    
    if (!idSlot)
        return NULL;

    va_start(ap, types);
    
    if (types)
    {
        if (multi_ap(ap, types))
            Kpp_SetOption(wType, idObj, name, OPT_CARD, OPT_MULTI);

        kpc_set_value(wType, idObj, name, hResInst, types, ap);
        va_end(ap);
    }

    return name;
}
Exemplo n.º 9
0
static CLBRITEM FindTopInLevel(OBJECTID idObj, LPBRTABLE lpLevel, WORD wSize,
                               BOOL bInstVisible, BOOL bClassVisible, 
                               float fTopRow, float fBottomRow,
                               BRDATA lpBrData, LEVEL_TYPE lLevel)
{
    int top = 32767;
    CLBRITEM lpItem, lpNode = NULL;
    
    for (lpItem = (CLBRITEM) lpLevel;
	 lpItem && NEXT_BRITEM(lpItem) != END_OF_LEVEL;
         lpItem = (CLBRITEM) MOVE_TO_NEXT_ITEM(lpItem, wSize))
	if (IsChildItem((LPBRTABLE) lpItem, idObj, OBJECT_TYPE(idObj)))
        {
            float fChildRow = GET_Y_REL(lpItem);
            RECT rect;

            GetItemRect(lpBrData, (LPBRTABLE) lpItem, lLevel, &rect);
            
            if (rect.top < top &&
                (TYPE_BRITEM(lpItem) == OBJECT && bInstVisible ||
                 TYPE_BRITEM(lpItem) == CLASS && bClassVisible) &&
                fChildRow - fTopRow > (float) -1.0 &&
                fBottomRow - fChildRow > (float) 0.0)
            {
                top = rect.top;
                lpNode = lpItem;
            }
        }

    return lpNode;
}
Exemplo n.º 10
0
long EXPORT RenameSelectionProc(HWND hWnd, WORD wMsg, 
                                    WORD wParam, long lParam)
{
    switch (wMsg) {
      case WM_GETDLGCODE:
          return DLGC_WANTALLKEYS;
          
      case WM_KEYDOWN:
      case WM_CHAR:
          if (wParam != VK_RETURN && wParam != VK_UP & wParam != VK_DOWN)
              break;
          
          SetFocus(GetParent(hWnd));
          return TRUE;
          
      case WM_KILLFOCUS:
      {
          HWND hParent = GetParent(hWnd);
          
          GetWindowText(hWnd, return_buffer, RET_BUFFER_LEN);
          ShowWindow(hWnd, SW_HIDE);
          SendMessage(hParent, WM_PAINT, 0, 0L);
          Kpp_RenameItem(OBJECT_TYPE(BrSelection.idObj), BrSelection.idObj, 
                         KppAddAtom(return_buffer));
          if (wParam)
              MoveAroundBrowser(hParent, wParam, 0, NULLID);
          
          break;
      }
    }
    
    return CallWindowProc(lpOrigEditProc, hWnd, wMsg, wParam, lParam);
}
Exemplo n.º 11
0
BOOL DeleteSelectedItem(LPBRTABLE lpItem, LPSTR lpData)
{
    OBJECTID idObj = ITEMID_BRITEM(lpItem);
    WORD wType = OBJECT_TYPE(idObj);
    
#ifndef RUNTIME
    BOOL bConfirm = LOWORD(lpData);

    if (BRITEM_FLAGS(lpItem) & SELECTED_ITEM &&
        (bConfirm ? KpeDeleteItem(HIWORD(lpData), wType, idObj)
                  : Kpp_DeleteCO(wType, idObj)))
    {
        BrSelection.wCount--;
        if (idObj == BrSelection.idObj)
            BrSelection.idObj = NULLID;
        
        return TRUE;
    }
#else    
    if (BRITEM_FLAGS(lpItem) & SELECTED_ITEM &&
         Kpp_DeleteCO(wType, idObj))
    {
        BrSelection.wCount--;
        if (idObj == BrSelection.idObj)
            BrSelection.idObj = NULLID;
        
        return TRUE;
    }
#endif    
    return FALSE;
}
Exemplo n.º 12
0
ATOMID PEXPORT KpcRenameSlot(OBJECTID idObj, ATOMID slot, ATOMID name)
{
    if (Kpp_Rename_Slot(OBJECT_TYPE(idObj), idObj, slot, name))
        return name;
    
    return kpc_error();
}
Exemplo n.º 13
0
TANY PEXPORT KpcGetSlotOption(OBJECTID idObj, ATOMID slot, ATOMID option)
{
    BOOL bList = (option == lpIDs->idPossValue ||
                  option == lpIDs->idPossClass ||
                  option == lpIDs->idWidgets);
    ATOMID idValue = kpc_get_slot_option(NULL, OBJECT_TYPE(idObj), idObj,
                                         slot, option);
    TANY res;
    
    if (!idValue)
    {
        kpc_error();
        return NULTANY;
    }

    if (bList)
    {
        res.type = T_LIST;
        res.data.list = idValue;
    }
    else
    {
        res.type = T_ATOM;
        res.data.atom = idValue;
    }
    
    return res;
}
Exemplo n.º 14
0
int PEXPORT KpcCountAllInstances(OBJECTID idClass)
{
    if (OBJECT_TYPE(idClass) == CLASS)
        return (int) KppCountInstances(idClass, ALL);
    
    return kpc_error();
}
Exemplo n.º 15
0
static long lb_selmeth(char *text)
{
    char *sp = strchr(text, ':');
    ATOMID idObjName, idName;
    OBJECTID idObj;
    LPOBJECT lpObj;
    
    sp[0] = '\0';
    
    idObjName = KppAddAtom(text);
    idName = KppAddAtom(sp + 1);
    idObj = KppGetItemFromName(OBJCLA, idObjName, (LPSTR *) &lpObj);
    
    if (idObj && !(FLAGS(lpObj) & REMOTE))
    {
        WORD wType = OBJECT_TYPE(idObj);
        METHODID idMethod = KppGetElemPair(METHODS(lpObj), idName);
        
        KppReleaseItem(wType, idObj);
    
        return MAKELONG(idObj, idMethod);
    }
    
    return 0L;
}
Exemplo n.º 16
0
BOOL PEXPORT KppDeleteBuffer(OBJECTID idObject, ATOMID idSlot)
{
    ATOMID       idBuffer;
    GLOBALHANDLE hBuffer;
    
    idBuffer = Kpp_Get_SlotValue (OBJECT_TYPE(idObject), idObject, idSlot);
    if (!idBuffer)
        return ERROR;
    
    if (!KappaGetInt (idBuffer, hBuffer))
        return ERROR;
    
    GLOBALUNLOCK (hBuffer);
    GLOBALFREE (hBuffer);

    return kpc_reset_value (OBJECT_TYPE (idObject), idObject, idSlot);
}
Exemplo n.º 17
0
static ATOMID GetApSV(va_list *ap, char **types)
{
    OBJECTID idObj = va_arg(*ap, OBJECTID);
    ATOMID idSlot = va_arg(*ap, ATOMID);
    
    ++(*types);
    return Kpp_Get_SlotValue(OBJECT_TYPE(idObj), idObj, idSlot);
}
Exemplo n.º 18
0
OBJECTID PEXPORT KpcGetOwner(OBJECTID idObj, ATOMID slot)
{
    OBJECTID idOwner = Kpp_Get_SlotOwner(OBJECT_TYPE(idObj), idObj, slot);
    
    if (!idOwner)
        return kpc_error();
    
    return idOwner;
}
Exemplo n.º 19
0
BOOL PEXPORT KpcDeleteHierarchy(ATOMID idName)
{
    WORD wType;
    OBJECTID idClass = KppGetObjectId(idName, &wType);
    
    BOOL bRes = kpc_delete_hierarchy(OBJECT_TYPE(idClass), idClass);
    
    return bRes ? TRUE : kpc_error();
}
Exemplo n.º 20
0
BOOL PEXPORT KpcResetValue(OBJECTID idObj, ATOMID slot)
{
    WORD wType = OBJECT_TYPE(idObj);
    
    if (!Kpp_Get_LocalSlot(wType, idObj, slot))
        return FALSE;

    return kpc_reset_value(wType, idObj, slot) || kpc_error();
}
Exemplo n.º 21
0
LISTID PEXPORT KpcSetNthElem(OBJECTID idObj, ATOMID slot, int i, ATOMID value)
{
    WORD wType = OBJECT_TYPE(idObj);
    LISTID idList = Kpp_Get_SlotListValue(wType, idObj, slot);
    BOOL bBAChange = kpc_check_for_monitor(wType, idObj, slot, &idList);
    LISTID res = kpc_set_nth_elem(idList, wType, idObj, slot, i, value,
                                  bBAChange);

    return res ? res : kpc_error();
}
Exemplo n.º 22
0
ATOMID PEXPORT KpcMakeSlotF(OBJECTID idObj, ATOMID name)
{
    WORD wType = OBJECT_TYPE(idObj);
    ITEMID idSlot = Kpp_Make_Slot(wType, idObj, name);

    if (idSlot == NULLID)
        return NULL;

    return name;
}
Exemplo n.º 23
0
LISTID PEXPORT KpcRemoveFromList(OBJECTID idObj, ATOMID slot, ATOMID value)
{
    WORD wType = OBJECT_TYPE(idObj);
    LISTID idList = Kpp_Get_SlotListValue(wType, idObj, slot);
    BOOL bBAChange = kpc_check_for_monitor(wType, idObj, slot, &idList);
    int i = KppGetElemPos(idList, value);
    LISTID res = kpc_remove_nth_elem(idList, wType, idObj, slot, i, 
                                     bBAChange);

    return res ? res : kpc_error();
}
Exemplo n.º 24
0
LPSTR PEXPORT KpcGetSlotComment(char *buf, OBJECTID idObj, ATOMID slot)
{
    ATOMID comment = Kpp_Get_SlotDesc(OBJECT_TYPE(idObj), idObj, slot);

    if (comment && comment != lpIDs->idNull)
        KppGetAtomName(comment, buf, RET_BUFFER_LEN);
    else
        buf[0] = '\0';

    return buf;
}
Exemplo n.º 25
0
LPSTR PEXPORT KpcGetMethodComment(char *buf, OBJECTID idObj, ATOMID name)
{
    ATOMID comment = Kpp_Get_MethodDesc(OBJECT_TYPE(idObj), idObj, name);

    if (!comment)
        buf[0] = '\0';
    else
        KppGetAtomName(comment, buf, RET_BUFFER_LEN);

    return buf;
}
Exemplo n.º 26
0
LISTID PEXPORT KpcGetInstanceList(OBJECTID idClass,
                                  OBJECTID idObj, ATOMID slot)
{
    if (OBJECT_TYPE(idClass) == CLASS)
    {
        LISTID  idNewList = kpc_get_instance_list(idClass);
        
        if (idNewList)
        {
            WORD wRes = Kpp_Set_SlotValue(OBJECT_TYPE(idObj), idObj, 
                                          slot, idNewList, EXPLIST);

            return wRes ? idNewList : kpc_error();
        }

        return kpc_error();
    }

    return KpcObjError(hInstThisDll, IDE_MUSTBECLASS, idClass);
}
Exemplo n.º 27
0
OBJECTID PEXPORT KpcMakeClass(ATOMID name, OBJECTID idClass)
{
    if (!idClass)
        idClass = lpIDs->idRootClass;
  
    if (OBJECT_TYPE(idClass) == CLASS)
    {
        OBJECTID class = Kpp_MakeClass(name, idClass);
        
        return class ? class : kpc_error();
    }
Exemplo n.º 28
0
int PEXPORT KpcGetDepth(OBJECTID idClass)
{
    if (OBJECT_TYPE(idClass) == CLASS)
    {
        WORD wCount = 0;
    
        KppGetClassDepth(idClass, (LPSTR) &wCount);
        return (int) wCount;
    }

    return kpc_error();
}
Exemplo n.º 29
0
OBJECTID PEXPORT KpcGetParent(OBJECTID idObj)
{
    WORD wType = OBJECT_TYPE(idObj);
    OBJECTID idClass;
    
    if (KppIsRemoteObject(wType, idObj))
        idClass = KppKrpGetParentCB(idObj);
    else
        idClass = Kpp_Get_Super(wType, idObj);
    
    return idClass ? idClass : kpc_error();
}
Exemplo n.º 30
0
ATOMID PEXPORT KpcSetSlotOptionF(OBJECTID idObj, 
                                 ATOMID slot, ATOMID option, ATOMID idValue)
{
    ATOMID idRes;
    
    if (option == lpIDs->idMultiple || option == lpIDs->idSingle)
        idValue = NULLID;
    
    idRes = kpc_set_slot_option(NULL, 
        OBJECT_TYPE(idObj), idObj, slot, option, idValue);
        
    return idRes ? idRes : kpc_error();
}