void ThreadSearchLoggerList::OnDeleteListItem(wxCommandEvent& /*event*/)
{
    // Finds selected item index
    long index = m_pListLog->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
    if ( index != -1 )
    {
        long start = index;
        long end = index;
        if ( IsLineResultLine(index) )
        {
            if ( (index > 0) && !IsLineResultLine(index - 1) &&
                 ((index == m_pListLog->GetItemCount() - 1) || !IsLineResultLine(index + 1)) )
            {
                start--;
            }
        }
        else
        {
            index++;
            while ( (index < m_pListLog->GetItemCount()) && IsLineResultLine(index) )
            {
                end = index;
                index++;
            }
        }

        for (int i = end; i >= start; i--)
        {
            DeleteListItem(i);
        }
    }
}
void FriendListItemManager::OnUserInfoChange(const std::list<nim::UserNameCard> &uinfos)
{
	for (auto info : uinfos)
	{
		std::string accid = info.GetAccId();
		if (UserService::GetInstance()->GetUserType(accid) == nim::kNIMFriendFlagNormal)
		{
			FriendItem* item = dynamic_cast<FriendItem*>(friend_list_->FindSubControl(nbase::UTF8ToUTF16(accid)));
			if (item != NULL)
			{
				if (info.ExistValue(nim::kUserNameCardKeyName))
				{
					//nim::UserNameCard all_info;
					//UserService::GetInstance()->GetUserInfo(info.GetAccId(), all_info);
					DeleteListItem(accid);
					AddListItem(accid);
				}
				else
					item->Init(false, accid);
			}
			else if(accid != LoginManager::GetInstance()->GetAccount()
				&& !MuteBlackService::GetInstance()->IsInBlackList(accid))
				AddListItem(accid);
		}
	}
}
void FriendListItemManager::OnBlackListChange(const std::string& id, bool is_black)
{
	if (is_black)
		DeleteListItem(id);
	else if (UserService::GetInstance()->GetUserType(id) == nim::kNIMFriendFlagNormal)
		AddListItem(id);
}
Пример #4
0
static void CPROC DestroyListBox( PSI_CONTROL pc )
{
	ValidatedControlData( PLISTBOX, LISTBOX_CONTROL, plb, pc );
	if( plb )
	{
		plb->flags.bDestroying = TRUE;
		UnmakeImageFile( plb->ListSurface );
		while( plb->items )
			DeleteListItem( pc, (PLISTITEM)plb->items );
	}
}
Пример #5
0
int FillControlsList( PSI_CONTROL control, int nLevel, CTEXTSTR basename, CTEXTSTR priorname )
{
	CTEXTSTR name;
	PCLASSROOT data = NULL;
	PVARTEXT pvt = NULL;
	int added = 0;
	PLISTITEM pli;
	if( priorname )
	{
		pli = AddListItemEx( control, nLevel, priorname );
	}
	for( name = GetFirstRegisteredName( basename, &data );
		 name;
		  name = GetNextRegisteredName( &data ) )
	{
		pvt = VarTextCreate();
		vtprintf( pvt, WIDE("%s/%s"), basename, name );
		if( priorname &&
			( strcmp( name, WIDE( "button_create" ) ) == 0 ) )
		{
			// okay then add this one...
			//snprintf( newname, sizeof( newname ), WIDE("%s/%s"), basename, name );
			//if( NameHasBranches( &data ) )
			{
				// eat the first two parts - intershell/controls/
				// create the control name as that...
				CTEXTSTR controlpath = strchr( basename, '/' );
				if( controlpath )
				{
					controlpath++;
					controlpath = strchr( controlpath, '/' );
					if( controlpath )
						controlpath++;
				}
				//AddLink( &g.extra_types, StrDup( basename ) );
				added++;
				SetItemData( pli, (uintptr_t)StrDup( controlpath ) );
				break;
			}
		}
		else
		{
			if( NameHasBranches( &data ) )
			{
				added += FillControlsList( control, nLevel+1, GetText( VarTextPeek( pvt ) ), name );
			}
		}
	}
	if( !added )
		DeleteListItem( control, pli );
	VarTextDestroy( &pvt );
	return added;
}
Пример #6
0
PSI_PROC( void, ResetList )( PSI_CONTROL pc )
{
	ValidatedControlData( PLISTBOX, LISTBOX_CONTROL, plb, pc );
	if( plb )
	{
		plb->flags.bDestroying = 1; // fake it...
		while( plb->items )
			DeleteListItem( pc, (PLISTITEM)plb->items );

		plb->flags.bDestroying = 0; // okay we're not really ...
		SmudgeCommon( pc );
	}
}
Пример #7
0
static void CPROC MoveElementRemove( uintptr_t psv, PSI_CONTROL control )
{
	PMACRO_BUTTON button = (PMACRO_BUTTON)psv;
	PSI_CONTROL list = GetNearControl( control, LIST_MACRO_ELEMENTS );
	PLISTITEM pli = GetSelectedItem( list );
	PMACRO_ELEMENT pme = (PMACRO_ELEMENT)GetItemData( pli );
	if( pme )
	{
		DeleteListItem( list, pli );
		UnlinkThing( pme );
		 DestroyButton( pme->button );
		Release( pme );
		FillList( list, button );
	}
}
void FriendListItemManager::OnFriendListChange(FriendChangeType change_type, const std::string& accid)
{
	if (change_type == kChangeTypeAdd)
	{
		if (accid != LoginManager::GetInstance()->GetAccount()
			&& UserService::GetInstance()->GetUserType(accid) == nim::kNIMFriendFlagNormal
			&& !MuteBlackService::GetInstance()->IsInBlackList(accid))
		{
			AddListItem(accid);
		}
	}
	else if (change_type == kChangeTypeDelete)
	{
		DeleteListItem(accid);
	}
}
void CInitDlg::OnNMRClickLiInitdlg(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
	// TODO:  在此添加控件通知处理程序代码
	*pResult = 0;
	
	m_nSelectedItem = -1;
	LPNMITEMACTIVATE lpNMItemActivate = (LPNMITEMACTIVATE)pNMHDR;
	if (lpNMItemActivate != NULL)
	{
		m_nSelectedItem = lpNMItemActivate->iItem;
	}
	if (m_nSelectedItem == -1)
	{
		return;
	}
	m_list_init.SetItemState(m_nSelectedItem, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);

	CMenu menu, *pSubMenu;
	menu.LoadMenu(IDR_INITDLG_POP_MENU);
	pSubMenu = menu.GetSubMenu(0);
	CPoint point1;        //存储鼠标位置的临时变量//
	GetCursorPos(&point1);//得到光标处//
	UINT nItem1 = pSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RETURNCMD | TPM_TOPALIGN, point1.x, point1.y, GetParent());//确保右键点击在哪菜单出现在哪,并返回所选的菜单项//

	switch (nItem1)
	{
	case ID_AA_MODIFY:  //右键菜单:修改//
		ModifyListItem(); 
		break;
	case ID_AA_DELETE:
		DeleteListItem(m_nSelectedItem);
		break;
	case  ID_AA_MOVEUP:
		MoveUpItem();
		break;
	case ID_AA_MOVEDOWN:
		MoveDownItem();
		break;
	default:
		break;
	}
	MyOnPaint();
}
Пример #10
0
int		UpdateList( int panelHandle )
{
	int			iIndex		=	0;
	
	DeleteListItem ( panelHandle, PANEL_COMMAND_NAME_LIST , 0 , -1 );
	
	for ( iIndex = 0 ; iIndex < giNumberOfItems; iIndex++ )
	{
		if ( strlen(gvtListOfCommands[iIndex].szCommandName) == 0 )
			break;
		
		InsertListItem( panelHandle , PANEL_COMMAND_NAME_LIST ,  -1 , gvtListOfCommands[iIndex].szCommandName , iIndex );   
	}	 
	
	giNumberOfItems = iIndex;
	
	InsertListItem( panelHandle , PANEL_COMMAND_NAME_LIST ,  -1 , "..." , iIndex );   
	
	return 0;
}
Пример #11
0
void OBSBasic::RemoveSceneItemFromSource(const char* name)
{
	std::string str_name = name;
	auto delayDelete = [=](){
		obs_source_t * source = obs_get_source_by_name(str_name.c_str());
		for (int i = 0; i < ui->sources->count(); i++) {
			QListWidgetItem *listItem = ui->sources->item(i);

			OBSSceneItem item = GetOBSRef<OBSSceneItem>(listItem);
			obs_source_t * item_source = obs_sceneitem_get_source(item);
			if (source == item_source) {
				DeleteListItem(ui->sources, listItem);
				obs_source_release(source);
				obs_sceneitem_remove(item);
				return;
			}
		}

		obs_source_release(source);
	};

	base::GetUIMessageLoop()->PostTask(FROM_HERE, base::Lambda(delayDelete));
}
Пример #12
0
int DoChannelAdditionCallback(int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
{
    channelPtr chan, newchan;
    int i, n, checked, err, pts;

    if (event == EVENT_COMMIT)
    {
        GetNumCheckedItems (chanops.p, CHANOPS_1_CHANNELS, &n);
        if (n < 2)
        {
            MessagePopup ("Channel Addition Message",
                          "Cannot perform addition w/ less than 2 channels");
            return 0;
        }

        err = FALSE;
        newchan = NULL;
        for (i = 0; i < channelG.channels.nItems; i++)
        {
            IsListItemChecked (panel, CHANOPS_1_CHANNELS, 0, &checked);
            DeleteListItem (panel, CHANOPS_1_CHANNELS, 0, 1);
            if (checked)
            {
                chan = channellist_GetItem (i);
                if (newchan)
                {
                    if (newchan->pts < chan->pts) pts = newchan->pts;
                    else pts = chan->pts;
                    err = Add1D (newchan->readings, chan->readings, pts,
                                 newchan->readings);
                    if (!err)
                        Fmt (newchan->note, "%s[a]<+\n%s", chan->label);
                    else
                    {
                        MessagePopup ("Channel Addition Message",
                                      "Error during calculation -- operation cancelled");
                        break;
                    }
                }
                else
                {
                    newchan = channel_Create();
                    if (newchan && channel_AllocMem (newchan, chan->pts))
                    {
                        Copy1D (chan->readings, chan->pts, newchan->readings);
                        Fmt (newchan->label, "Addition Result");
                        Fmt (newchan->note, "%s", chan->label);
                    }
                    else
                    {
                        util_OutofMemory ("Channel Addition Message");
                        err = TRUE;
                        break;
                    }
                }
            }
            GetNumCheckedItems (panel, CHANOPS_1_CHANNELS, &n);
            if (n == 0) break;
        }
        if (!err)
        {
            Fmt (newchan->note, "%s[a]<\n");
            channellist_AddChannel (newchan);
        }
        else if (newchan)
        {
            if (newchan->readings) free (newchan->readings);
            free (newchan);
        }

        
        DiscardPanel (chanops.p);
    }
    return 0;
}
Пример #13
0
void DelPdptrStructure(void* pdptr)
{
	DeleteListItem(pdptr, pFirstPS, sizeof(PAE_PAGING_STRUCTURE));
}