Esempio n. 1
0
static void
post_insert(struct avl_tree *tree, struct avl_node *node)
{
  struct avl_node *parent = node->parent;

  if (parent == NULL)
    return;

  if (node == parent->left) {
    parent->balance--;

    if (parent->balance == 0)
      return;

    if (parent->balance == -1) {
      post_insert(tree, parent);
      return;
    }

    if (node->balance == -1) {
      avl_rotate_right(tree, parent);
      return;
    }

    avl_rotate_left(tree, node);
    avl_rotate_right(tree, node->parent->parent);
    return;
  }

  parent->balance++;

  if (parent->balance == 0)
    return;

  if (parent->balance == 1) {
    post_insert(tree, parent);
    return;
  }

  if (node->balance == 1) {
    avl_rotate_left(tree, parent);
    return;
  }

  avl_rotate_right(tree, node);
  avl_rotate_left(tree, node->parent->parent);
}
Esempio n. 2
0
void Cdlg_make_torrent::OnDropFiles(HDROP hDropInfo)
{
	int c_files = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);

	for (int i = 0; i < c_files; i++)
	{
		char name[MAX_PATH];
		DragQueryFile(hDropInfo, i, name, MAX_PATH);
		insert(name);
	}
	ETSLayoutDialog::OnDropFiles(hDropInfo);
	post_insert();
}
Esempio n. 3
0
BOOL Cdlg_make_torrent::OnInitDialog()
{
	m_tracker = AfxGetApp()->GetProfileString(m_strRegStore, "tracker");
	m_trackers = AfxGetApp()->GetProfileString(m_strRegStore, "trackers");
	m_use_merkle = AfxGetApp()->GetProfileInt(m_strRegStore, "use_merkle", false);
	ETSLayoutDialog::OnInitDialog();
	CreateRoot(VERTICAL)
		<< (pane(HORIZONTAL, ABSOLUTE_VERT)
			<< item(IDC_NAME_STATIC, NORESIZE)
			<< item(IDC_NAME, GREEDY)
			)
		<< (pane(HORIZONTAL, ABSOLUTE_VERT)
			<< item(IDC_TRACKER_STATIC, NORESIZE)
			<< item(IDC_TRACKER, GREEDY)
			)
		<< (pane(HORIZONTAL, ABSOLUTE_VERT)
			<< item(IDC_TRACKERS_STATIC, NORESIZE)
			<< item(IDC_TRACKERS, GREEDY)
			)
		<< item(IDC_LIST, GREEDY)
		<< (pane(HORIZONTAL, ABSOLUTE_VERT)
			<< item(IDC_SEED_AFTER_MAKING, NORESIZE)
			<< item(IDC_USE_MERKLE, NORESIZE)
			<< itemGrowing(HORIZONTAL)
			<< item(IDC_LOAD_TRACKERS, NORESIZE)
			<< item(IDC_SAVE, NORESIZE)
			)
		;
	UpdateLayout();

	m_list.InsertColumn(0, "Name");
	m_list.InsertColumn(1, "Size", LVCFMT_RIGHT);
	m_list.InsertColumn(2, "");
	m_sort_column = 0;
	m_sort_reverse = false;

	for (t_map::const_iterator i = m_map.begin(); i != m_map.end(); i++)
		m_list.InsertItemData(i->first);
	post_insert();

	return true;
}