void CUICarBodyWnd::TakeAll() { u32 cnt = m_pUIOthersBagList->ItemsCount(); u16 tmp_id = 0; if(m_pInventoryBox){ tmp_id = (smart_cast<CGameObject*>(m_pOurObject))->ID(); } for(u32 i=0; i<cnt; ++i) { CUICellItem* ci = m_pUIOthersBagList->GetItemIdx(i); for(u32 j=0; j<ci->ChildsCount(); ++j) { PIItem _itm = (PIItem)(ci->Child(j)->m_pData); if(m_pOthersObject) TransferItem (_itm, m_pOthersObject, m_pOurObject, false); else{ move_item (m_pInventoryBox->ID(), tmp_id, _itm->object().ID()); //. Actor()->callback(GameObject::eInvBoxItemTake)( m_pInventoryBox->lua_game_object(), _itm->object().lua_game_object() ); } } PIItem itm = (PIItem)(ci->m_pData); if(m_pOthersObject) TransferItem (itm, m_pOthersObject, m_pOurObject, false); else{ move_item (m_pInventoryBox->ID(), tmp_id, itm->object().ID()); //. Actor()->callback(GameObject::eInvBoxItemTake)(m_pInventoryBox->lua_game_object(), itm->object().lua_game_object() ); } } }
void CMyTreeCtrl::OnButtonUp() { if (m_bDragging) { KillTimer( m_nTimerIDScroll ); ASSERT(m_pimagelist != NULL); m_pimagelist->DragLeave(this); m_pimagelist->EndDrag(); delete m_pimagelist; m_pimagelist = NULL; if (m_hitemDrag != m_hitemDrop && !IsChildNodeOf(m_hitemDrop, m_hitemDrag) && GetParentItem(m_hitemDrag) != m_hitemDrop) { TransferItem(m_hitemDrag, m_hitemDrop); DeleteItem(m_hitemDrag); } else MessageBeep(0); m_bDragging = FALSE; ReleaseCapture(); SelectDropTarget(NULL); } }
void CMyTreeCtrl::OnButtonUp() { if (m_bDragging) { ASSERT(m_pimagelist != NULL); m_pimagelist->DragLeave(this); m_pimagelist->EndDrag(); delete m_pimagelist; m_pimagelist = NULL; if (m_hitemDrag != m_hitemDrop && !IsChildNodeOf(m_hitemDrop, m_hitemDrag) && GetParentItem(m_hitemDrag) != m_hitemDrop && GetParentItem(m_hitemDrag) != NULL && GetParentItem(m_hitemDrop) == NULL ) { m_hitemDragParent = GetParentItem(m_hitemDrag); GetParent()->SendMessage(TV_PREDROP,(unsigned int)m_hitemDrag,(long)m_hitemDrop); TransferItem(m_hitemDrag, m_hitemDrop); DeleteItem(m_hitemDrag); GetParent()->PostMessage(TV_POSTDROP,(unsigned int)m_hitemDragParent,NULL); m_bItemChanged = TRUE; } else MessageBeep(0); ReleaseCapture(); m_bDragging = FALSE; SelectDropTarget(NULL); KillTimer(1000); } }
BOOL CMyTreeCtrl::TransferItem(HTREEITEM hitemDrag, HTREEITEM hitemDrop) { TV_INSERTSTRUCT tvstruct; TCHAR sztBuffer[50]; HTREEITEM hNewItem, hFirstChild; // avoid an infinite recursion situation tvstruct.item.hItem = hitemDrag; tvstruct.item.cchTextMax = 49; tvstruct.item.pszText = sztBuffer; tvstruct.item.mask = TVIF_CHILDREN | TVIF_HANDLE | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT; GetItem(&tvstruct.item); // get information of the dragged element tvstruct.hParent = hitemDrop; tvstruct.hInsertAfter = TVI_SORT; tvstruct.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT; hNewItem = InsertItem(&tvstruct); while ((hFirstChild = GetChildItem(hitemDrag)) != NULL) { TransferItem(hFirstChild, hNewItem); // recursively transfer all the items DeleteItem(hFirstChild); // delete the first child and all its children } return TRUE; }
bool CUICarBodyWnd::OnItemDbClick(CUICellItem* itm) { CUIDragDropListEx* old_owner = itm->OwnerList(); CUIDragDropListEx* new_owner = (old_owner==m_pUIOthersBagList)?m_pUIOurBagList:m_pUIOthersBagList; if(m_pOthersObject) { if( TransferItem ( CurrentIItem(), (old_owner==m_pUIOthersBagList)?m_pOthersObject:m_pOurObject, (old_owner==m_pUIOurBagList)?m_pOthersObject:m_pOurObject, (old_owner==m_pUIOurBagList) ) ) { CUICellItem* ci = old_owner->RemoveItem(CurrentItem(), false); new_owner->SetItem (ci); } }else { if(false && old_owner==m_pUIOurBagList) return true; bool bMoveDirection = (old_owner==m_pUIOthersBagList); u16 tmp_id = (smart_cast<CGameObject*>(m_pOurObject))->ID(); move_item ( bMoveDirection?m_pInventoryBox->ID():tmp_id, bMoveDirection?tmp_id:m_pInventoryBox->ID(), CurrentIItem()->object().ID()); //. Actor()->callback (GameObject::eInvBoxItemTake)(m_pInventoryBox->lua_game_object(), CurrentIItem()->object().lua_game_object() ); } SetCurrentItem (NULL); return true; }
int M3UStreamDownload(STREAM *ManifestCon, const char *URL, const char *Title) { STREAM *Con=NULL; char *Tempstr=NULL, *BasePath=NULL, *Line=NULL; const char *ptr; ListNode *Segments, *Curr; int result; double BytesRead=0; Segments=ListCreate(); ptr=strrchr(URL, '/'); if (ptr) { BasePath=CopyStrLen(BasePath, URL, ptr - URL); Line=STREAMReadLine(Line,ManifestCon); while (Line) { StripLeadingWhitespace(Line); StripTrailingWhitespace(Line); if (*Line != '#') { Tempstr=MCopyStr(Tempstr, BasePath, "/", Line, NULL); ListAddItem(Segments, CopyStr(NULL, Tempstr)); } Line=STREAMReadLine(Line,ManifestCon); } OpenOutputFiles(Title, URL, &BytesRead); Tempstr=SetStrLen(Tempstr,BUFSIZ); Curr=ListGetNext(Segments); while (Curr) { Con=ConnectAndRetryUntilDownload(Curr->Item, 0, 0); if (Con) { TransferItem(Con, Title, URL, "m3u8-stream", 0, 0, &BytesRead, FALSE); STREAMClose(Con); } Curr=ListGetNext(Curr); } CloseOutputFiles(); } ListDestroy(Segments, DestroyString); DestroyString(Tempstr); DestroyString(BasePath); DestroyString(Line); }
int DownloadStream(char *URL, char *Title, ListNode *Items, int Flags) { STREAM *Con=NULL, *S=NULL; ListNode *Curr; char *Tempstr=NULL, *ptr; char *Token=NULL; int Port; double len=0, ApproxDocSize=0, BytesRead=0; Curr=ListGetNext(Items); if (Flags & (FLAG_TEST | FLAG_TEST_SITES) ) { if (Flags & FLAG_TEST) fprintf(stderr,"TEST MODE: would have downloaded '%s' url=%s\n",Title,Curr->Item); if (Curr) return(TRUE); return(FALSE); } OpenOutputFiles(Title,URL,&BytesRead); while (Curr) { if (strncmp((char *) Curr->Item,"http:",5)==0) Tempstr=CopyStr(Tempstr,(char *) Curr->Item); else { Tempstr=CopyStr(Tempstr,URL); ptr=strrchr(Tempstr,'/'); if (ptr) *ptr='\0'; Tempstr=MCatStr(Tempstr,"/",(char *) Curr->Item,NULL); } Con=ConnectAndRetryUntilDownload(Tempstr, 0, 0); if (Con) { ptr=STREAMGetValue(Con,"HTTP:content-length"); if (ptr) len=atof(ptr); if (ApproxDocSize==0) ApproxDocSize=ListSize(Items) * len; TransferItem(Con, Title, Curr->Item, "", len, ApproxDocSize, &BytesRead, BytesRead==0); STREAMClose(Con); } Curr=ListGetNext(Curr); } CloseOutputFiles(); DestroyString(Tempstr); DestroyString(Token); return(TRUE); }
void CUndo::OnEditUndo() { if (m_pSymTextEdit && m_pSymTextEdit->IsDirty()) // if editing text, and edits have been made... CheckPointText(NULL, m_pSymTextEdit); // Unselect the current symbol // This must be done before working with the undo list below m_pDocWindow->SymbolUnselect(true/*bClearPointer*/); CUndoItem* pItem = GetListItem(m_dqUndoItemList); if (!pItem) return; CAGSym* pSym = pItem->GetUndoItem(); if (pSym || pItem->GetUndoCommand() == IDC_DOC_PAGENAV) { switch (pItem->GetUndoCommand()) { case IDC_DOC_ADDIMAGE: case IDC_DOC_ADDAPHOTO: case IDC_DOC_ADDTEXTBOX: case IDC_DOC_ADDSHAPE: case IDC_DOC_ADDCALENDAR: case IDC_DOC_PASTE: { m_pDocWindow->UndoAdd(pSym); break; } case IDC_DOC_CUT: case IDC_DOC_DELETE: { m_pDocWindow->UndoDelete(pSym); break; } case IDC_CONVERT_TO_JPG: { CAGSym* pSymCopy = (CAGSym*)pItem->GetItemValue(); m_pDocWindow->UndoAdd(pSymCopy); m_pDocWindow->UndoDelete(pSym); break; } case IDC_DOC_MIRROR: { m_pDocWindow->UndoMirrorFlip(pSym, true/*bFlipX*/, false/*bFlipy*/); break; } case IDC_DOC_FLIP: { m_pDocWindow->UndoMirrorFlip(pSym, false/*bFlipX*/, true/*bFlipy*/); break; } case IDC_DOC_ROTATECW: { m_pDocWindow->UndoRotate(pSym, false/*bCW*/); break; } case IDC_DOC_ROTATECCW: { m_pDocWindow->UndoRotate(pSym, true/*bCW*/); break; } case IDC_DOC_TRANSFORM: case IDC_DOC_POSCENTER: case IDC_DOC_POSCENTERH: case IDC_DOC_POSCENTERV: case IDC_DOC_POSLEFT: case IDC_DOC_POSRIGHT: case IDC_DOC_POSTOP: case IDC_DOC_POSTOPLEFT: case IDC_DOC_POSTOPRIGHT: case IDC_DOC_POSBOTTOM: case IDC_DOC_POSBOTTOMLEFT: case IDC_DOC_POSBOTTOMRIGHT: { CAGMatrix CurrentMatrix = pSym->GetMatrix(); m_pDocWindow->UndoTransform(pSym, pItem->GetItemMatrix()); pItem->SetItemMatrix(CurrentMatrix); break; } case IDC_DOC_FILLCOLORCHANGE: { CAGSymGraphic* pGraphicSym = (CAGSymGraphic*)pSym; COLORREF Color = pGraphicSym->GetFillColor(); m_pDocWindow->UndoColor(pSym, pItem->GetItemValue(), false/*bLineColor*/); pItem->SetItemValue(Color); break; } case IDC_DOC_FILLCOLORCHANGE2: { CAGSymGraphic* pGraphicSym = (CAGSymGraphic*)pSym; COLORREF Color = pGraphicSym->GetFillColor2(); m_pDocWindow->UndoColor(pSym, pItem->GetItemValue(), false/*bLineColor*/, true/*FillColor2*/); pItem->SetItemValue(Color); break; } case IDC_DOC_LINECOLORCHANGE: { CAGSymGraphic* pGraphicSym = (CAGSymGraphic*)pSym; COLORREF Color = pGraphicSym->GetLineColor(); m_pDocWindow->UndoColor(pSym, pItem->GetItemValue(), true/*bLineColor*/); pItem->SetItemValue(Color); break; } case IDC_DOC_LINEWIDTHCHANGE: { CAGSymGraphic* pGraphicSym = (CAGSymGraphic*)pSym; int nWidth = pGraphicSym->GetLineWidth(); m_pDocWindow->UndoLineWidth(pSym, pItem->GetItemValue(), pItem->GetItemValue2()); pItem->SetItemValue(nWidth); break; } case IDC_DOC_FILLTYPECHANGE: { CAGSymGraphic* pGraphicSym = (CAGSymGraphic*)pSym; FillType Fill = pGraphicSym->GetFillType(); m_pDocWindow->UndoFillType(pSym, pItem->GetItemValue()); pItem->SetItemValue((int)Fill); break; } case IDC_DOC_DESTRECTCHANGE: { RECT CurrentDestRect = pSym->GetDestRect(); m_pDocWindow->UndoDestRect(pSym, pItem->GetItemRect()); pItem->SetItemRect(CurrentDestRect); break; } case IDC_DOC_CROP: { CAGSymImage* pImage = (CAGSymImage*)pSym; RECT CurrentCropRect = pImage->GetCropRect(); m_pDocWindow->UndoCropRect(pSym, pItem->GetItemRect()); pItem->SetItemRect(CurrentCropRect); break; } case IDC_DOC_BACKONE: case IDC_DOC_FORWARDONE: case IDC_DOC_BRINGTOFRONT: case IDC_DOC_PUSHTOBACK: { m_pDocWindow->UndoLayer(pSym, -pItem->GetItemValue()); break; } case IDC_DOC_TEXT_EDIT_END: { m_pDocWindow->UndoTextEdit(pItem); break; } case IDC_DOC_LOCKED: { m_pDocWindow->UndoLocked(pSym); break; } case IDC_DOC_HIDDEN: { m_pDocWindow->UndoHidden(pSym); break; } case IDC_DOC_TRANSPARENT: { m_pDocWindow->UndoTransparent(pSym); break; } case IDC_DOC_PAGENAV: { int nLastPage = pItem->GetItemValue(); int nPage = pItem->GetItemValue2(); m_pDocWindow->UndoPageTurn(nLastPage); break; } } } // Select the modified symbol m_pDocWindow->SymbolSelect(pSym); TransferItem(m_dqUndoItemList, m_dqRedoItemList); }