bool MAPS::OpenMap(HWND hMaps, const char* fileName) { MapNode* newMap = new MapNode; if ( newMap->map.LoadFile(fileName) ) { if ( newMap->map.setHandle( AddMDIChild(hMaps, fileName) ) ) { SetWindowText(newMap->map.getHandle(), fileName); PushNode(newMap); Focus(newMap->map.getHandle()); curr->Scroll(SCROLL_X|SCROLL_Y); curr->Redraw(true); return true; } else { delete newMap; Error("Failed to create MDI Child Window!"); } } else { delete newMap; Error(LastError); } return false; }
void CreateRegexTree(std::string regex) { Node *auxNode; regexTree = NULL; for (int i = 0; i < regex.length(); i++) { auxNode = new Node; auxNode->value = regex[i]; auxNode->left = NULL; auxNode->right = NULL; auxNode->next = NULL; if (regex[i] == '.' || regex[i] == '|') { auxNode->right = PopNode(); auxNode->left = PopNode(); } else if (regex[i] == '*') { auxNode->left = PopNode(); auxNode->right = NULL; } PushNode(auxNode); } }
bool MAPS::NewMap(u16 width, u16 height, u16 tileset, u32 terrain, u32 triggers, HWND hMaps) { MapNode* newMap = new MapNode; if ( newMap->map.CreateNew(width, height, tileset, terrain, triggers) ) { char title[256] = { "Untitled" }; if ( UntitledNumber > 0 ) sprintf_s(title, 256, "Untitled %d", UntitledNumber); if ( newMap->map.setHandle(AddMDIChild(hMaps, title)) ) { curr = &newMap->map; UntitledNumber++; PushNode(newMap); Focus(newMap->map.getHandle()); curr->Redraw(true); return true; } else { delete newMap; Error("Failed to create MDI Child Window!"); } } else { CHKD_ERR("Failed to create scenario file!\n\nError in %s\n\n%s", LastErrorLoc, LastError); Error(LastError); } return false; }
NS_IMETHODIMP inDeepTreeWalker::NextSibling(nsIDOMNode **_retval) { *_retval = nullptr; if (!mCurrentNode) { return NS_OK; } NS_ASSERTION(mStack.Length() > 0, "Should have things in mStack"); if (mStack.Length() == 1) { // No next sibling return NS_OK; } DeepTreeStackItem& parent = mStack.ElementAt(mStack.Length()-2); nsCOMPtr<nsIDOMNode> nextSibling; parent.kids->Item(parent.lastIndex, getter_AddRefs(nextSibling)); if (!nextSibling) { return NS_OK; } // Our mStack's topmost element is our current node. Since we're trying to // change that to the next sibling, pop off the current node, and push // the new one. mStack.RemoveElementAt(mStack.Length() - 1); parent.lastIndex++; PushNode(nextSibling); nextSibling.forget(_retval); return NS_OK; }
NS_IMETHODIMP inDeepTreeWalker::Init(nsIDOMNode* aRoot, uint32_t aWhatToShow) { mRoot = aRoot; mWhatToShow = aWhatToShow; PushNode(aRoot); return NS_OK; }
main() { struct node * HEADL1 = NULL; struct node * HEADL2 = NULL; PushNode(&HEADL1,9); PushNode(&HEADL1,7); PushNode(&HEADL1,5); PushNode(&HEADL1,2); PushNode(&HEADL1,1); PrintList(HEADL1); PushNode(&HEADL2,8); PushNode(&HEADL2,4); PushNode(&HEADL2,3); PrintList(HEADL2); struct node* dummyHEAD = NULL; dummyHEAD = MergeTwoSortedList(HEADL1, HEADL2); PrintList(dummyHEAD); }
NS_IMETHODIMP inDeepTreeWalker::FirstChild(nsIDOMNode **_retval) { *_retval = nullptr; if (!mCurrentNode) { return NS_OK; } DeepTreeStackItem& top = mStack.ElementAt(mStack.Length() - 1); nsCOMPtr<nsIDOMNode> kid; top.kids->Item(0, getter_AddRefs(kid)); if (!kid) { return NS_OK; } top.lastIndex = 1; PushNode(kid); kid.forget(_retval); return NS_OK; }
//moves onto the next element (either a value or list). If the current //element is a list, it will be searched through recursively. Calling this continually //will iterate through all elements in the tree. Returns NULL if no more CLTANode* CLTANodeIterator::NextElement() { //sanity checks ASSERT(GetHead()); //get the current element CLTANode* pCurr = NULL; if(GetElementIndex() < GetHead()->GetNumElements()) { pCurr = GetHead()->GetElement(GetElementIndex()); } else { //pop the stack if we can if(m_nStackPos == 0) { //we can't pop! return NULL; } //pop the node PopNode(); return NextElement(); } //okay, we have successfully found an item, we need to move onto the next one SetElementIndex(GetElementIndex() + 1); //if the current is a list, we need to pop into it if(pCurr->IsList()) { PushNode(pCurr); } return pCurr; }
void CJsonNode::PushNull() { PushNode(new SJsonFixedSizeNodeImpl); }
void CJsonNode::PushBoolean(bool value) { PushNode(new SJsonFixedSizeNodeImpl(value)); }
void CJsonNode::PushNumber(CJsonNode::TNumber value) { PushNode(new SJsonFixedSizeNodeImpl(value)); }
void CJsonNode::PushString(const string& value) { PushNode(new SJsonStringNodeImpl(value)); }