void ExposedList::Update() { if (!IsExposed()) return; ExposedObjC::Update(); if (listData.IsEmpty()) { SC_StringArray temp; temp.Alloc(1); temp += "<< no data >>"; scrolledList.SetListText(temp); exposedMS.enteredIndexValue = offsetVal; currListData.DeAlloc(); } else { // has list changed ? if (!(currListData == listData)) { // update if different scrolledList.SetListText(listData); currListData = listData; } if (exposedMS.enteredIndexIsSingle) { int currIndx = exposedMS.enteredIndexValue - offsetVal; if (currIndx < 0) currIndx = 0; if (currIndx >= listData.Size()) currIndx = listData.Size() - 1; scrolledList.SetSingleSelection(currIndx); scrolledList.SetSelectionVisible(); exposedMS.enteredIndexValue = currIndx + offsetVal; } else { SC_IntArray currIndex(exposedMS.enteredIndexArray); int maxIndex = listData.Size(); int nOK = 0; int i; for (i = 0; i < currIndex.Size(); i++) if ((currIndex[i] - offsetVal) < maxIndex) { currIndex[nOK++] = currIndex[i] - offsetVal; } currIndex.SetSize(nOK); scrolledList.SetMultipleSelection(currIndex); for (i = 0; i < nOK; i++) exposedMS.enteredIndexArray[i] = currIndex[i] + offsetVal; exposedMS.enteredIndexArray.SetSize(nOK); } } SetAllSensitive(); }
void wxStatusBarUniv::DoDraw(wxControlRenderer *renderer) { // get the fields rect wxCoord borderBetweenFields; wxRect rect = GetTotalFieldRect(&borderBetweenFields); // prepare the DC wxDC& dc = renderer->GetDC(); dc.SetFont(GetFont()); dc.SetTextForeground(GetForegroundColour()); // do draw the fields int flags = IsEnabled() ? 0 : (int)wxCONTROL_DISABLED; for ( int n = 0; n < m_nFields; n++ ) { rect.width = m_widthsAbs[n]; if ( IsExposed(rect) ) { wxTopLevelWindow *parentTLW = wxDynamicCast(GetParent(), wxTopLevelWindow); // the size grip may be drawn only on the last field and only if we // have the corresponding style and even then only if we really can // resize this frame if ( n == m_nFields - 1 && HasFlag(wxST_SIZEGRIP) && GetParent()->HasFlag(wxRESIZE_BORDER) && parentTLW && !parentTLW->IsMaximized() ) { flags |= wxCONTROL_SIZEGRIP; } int style; if (m_statusStyles) style = m_statusStyles[n]; else style = wxSB_NORMAL; m_renderer->DrawStatusField(dc, rect, m_statusText[n], flags, style); } rect.x += rect.width + borderBetweenFields; } }
void Parser::ProcessNextToken(int token, const char *text) { //printf(" * Loop %s [%s]\n", get_token_name(ID_FROM_TOKEN(token)), text); switch(token) { case T_LEFTBRACE: { mBraceDepth++; FlushDerived(); ClearFlag(FLAG_UNOPENED); break; } case T_COMMA: { FlushDerived(); break; } case T_COLON_COLON: { SetFlag(FLAG_COLON_COLON); break; } case T_FRIEND: { SetFlag(FLAG_FRIEND); break; } case T_ENUM: { SetFlag(FLAG_ENUM|FLAG_UNOPENED); break; } case T_MM_IGNORE_START: { mIgnore = 1; break; } case T_MM_IGNORE_END: { mIgnore = 0; break; } case T_RIGHTBRACE: { mBraceDepth--; if(!IsSet(FLAG_ENUM)) { PopScope(); ProcessStatement(); } break; } case T_CLASS: case T_STRUCT: case T_NAMESPACE: { Scope *pScope = new Scope; pScope->braceDepth = mBraceDepth; pScope->isClass = (token != T_NAMESPACE); pScope->mpName = NULL; pScope->isExposed = IsSet(FLAG_NEXT_IS_EXPOSED); mScopes.push_back(pScope); SetFlag(pScope->isClass ? FLAG_CLASS|FLAG_UNOPENED : FLAG_NAMESPACE); ClearFlag(FLAG_NEXT_IS_EXPOSED); break; } case T_BOOL: case T_CHAR: case T_DOUBLE: case T_FLOAT: case T_INT: case T_LONG: case T_SHORT: case T_VOID: case T_WCHART: { Identifier *pIdentifier = new Identifier; pIdentifier->mpName = strdup(text); pIdentifier->isKeyword = true; if(IsSet(FLAG_NEXT_IS_CONST)) { pIdentifier->isConst = true; ClearFlag(FLAG_NEXT_IS_CONST); } mIdentifiers.push_back(pIdentifier); break; } case T_IDENTIFIER: { if(IsSet(FLAG_NAMESPACE|FLAG_CLASS)) { int size = mScopes.size(); if(size > 0) { Scope *pScope = mScopes[size-1]; pScope->mpName = strdup(text); if(IsSet(FLAG_CLASS)) { if(IsExposed()) { mpGenerator->AddClass(text); //(GetFullScopeName()); } } ClearFlag(FLAG_NAMESPACE|FLAG_CLASS); } } else if(IsExposed()) { if(!IsSet(FLAG_PAREN)) { if(IsSet(FLAG_COLON_COLON)) { int size = mIdentifiers.size(); if(size > 0) { Identifier *pIdentifier = mIdentifiers[size-1]; char temp[2048]; sprintf(temp, "%s::%s", pIdentifier->mpName, text); free(pIdentifier->mpName); pIdentifier->mpName = strdup(temp); } ClearFlag(FLAG_COLON_COLON); } else { Identifier *pIdentifier = new Identifier; pIdentifier->mpName = strdup(text); pIdentifier->isBracketed = IsSet(FLAG_BRACKET); if(IsSet(FLAG_NEXT_IS_CONST)) { pIdentifier->isConst = true; ClearFlag(FLAG_NEXT_IS_CONST); } mIdentifiers.push_back(pIdentifier); } } } break; } case T_STAR: { int size = mIdentifiers.size(); if(size > 0) { Identifier *pIdentifier = mIdentifiers[size-1]; pIdentifier->starCount++; } break; } case T_LEFTPAREN: { SetFlag(FLAG_PAREN); break; } case T_MM_EXPOSE: case T_MM_EXPOSED: { SetFlag(FLAG_NEXT_IS_EXPOSED); break; } case T_LESS: { mBracketCount++; SetFlag(FLAG_BRACKET); break; } case T_GREATER: { mBracketCount--; if(mBracketCount == 0) { ClearFlag(FLAG_BRACKET); } break; } case T_CONST: { int size = mIdentifiers.size(); if(size > 0) { Identifier *pIdentifier = mIdentifiers[size-1]; pIdentifier->isConst = true; } else { SetFlag(FLAG_NEXT_IS_CONST); } break; } case T_SEMICOLON: { if(IsSet(FLAG_ENUM)) { for(unsigned int i=0; i<mIdentifiers.size(); i++) { Identifier *pIdentifier = mIdentifiers[i]; mpGenerator->AddEnum(pIdentifier->mpName, GetFullScopeName()); } mIdentifiers.clear(); ClearFlag(FLAG_ENUM|FLAG_PAREN); } else { ProcessStatement(); } break; } } }