예제 #1
0
void wxSTEditorTreeCtrl::OnTreeCtrl(wxTreeEvent &event)
{
    wxTreeItemId id = event.GetItem();

    if (!id || (m_steNotebook == NULL))
        return;

    wxSTETreeItemData* data = (wxSTETreeItemData*)GetItemData(id);

    if (event.GetEventType() == wxEVT_COMMAND_TREE_ITEM_ACTIVATED)
    {
        if (data && (data->m_page_num >= 0) && (data->m_page_num < (int)m_steNotebook->GetPageCount()))
            m_steNotebook->SetSelection(data->m_page_num);
        else
            event.Skip();
    }
    else if (event.GetEventType() == wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP)
    {
        if (data)
            event.SetToolTip(data->m_fileName.GetFullPath());
    }
    else if (event.GetEventType() == wxEVT_COMMAND_TREE_ITEM_MENU)
    {
        if (data)
            PopupMenu(m_popupMenu, event.GetPoint());
    }
}
예제 #2
0
void RegTreeCtrl::OnItemExpanding(wxTreeEvent& event)
{
    TreeNode *pNode = GetNode(event);
    bool bExpanding = event.GetEventType() == wxEVT_TREE_ITEM_EXPANDING;

    // expansion might take some time
    wxSetCursor(*wxHOURGLASS_CURSOR);
    wxLogStatus(wxT("Working..."));
    wxYield();  // to give the status line a chance to refresh itself
    m_restoreStatus = true;   // some time later...

    if ( pNode->IsKey() )
    {
        if ( bExpanding )
        {
            // expanding: add subkeys/values
            if ( !pNode->OnExpand() )
                return;
        }
        else
        {
            // collapsing: clean up
            pNode->OnCollapse();
        }
    }
}
예제 #3
0
void wxRemotelyScrolledTreeCtrl::OnExpand(wxTreeEvent& event)
{
    AdjustRemoteScrollbars();
    event.Skip();
    
    // If we don't have this, we get some bits of lines still remaining
    if (event.GetEventType() == wxEVT_COMMAND_TREE_ITEM_COLLAPSED)
        Refresh();
    
    // Pass on the event
    if (m_companionWindow)
        m_companionWindow->GetEventHandler()->ProcessEvent(event);
}
예제 #4
0
//---------------------------------------------------------
void CData_Source_Files::On_TreeEvent(wxTreeEvent &event)
{
	//-----------------------------------------------------
	if     ( event.GetEventType() == wxEVT_COMMAND_TREE_ITEM_ACTIVATED )
	{
		g_pWKSP->Open(m_pControl->GetFilePath());
	}

	//-----------------------------------------------------
	else if( event.GetEventType() == wxEVT_COMMAND_TREE_ITEM_MENU )
	{
		wxMenu	Menu;

		CMD_Menu_Add_Item(&Menu, false, ID_CMD_DATASOURCE_REFRESH);

		PopupMenu(&Menu);

		return;
	}

	//-----------------------------------------------------
	event.Skip();
}
예제 #5
0
void RegTreeCtrl::OnBeginDrag(wxTreeEvent& event)
{
    m_copyOnDrop = event.GetEventType() == wxEVT_TREE_BEGIN_DRAG;

    TreeNode *pNode = GetNode(event);
    if ( pNode->IsRoot() || pNode->Parent()->IsRoot() )
    {
        wxLogStatus(wxT("This registry key can't be %s."),
            m_copyOnDrop ? wxT("copied") : wxT("moved"));
    }
    else
    {
        wxLogStatus(wxT("%s item %s..."),
            m_copyOnDrop ? wxT("Copying") : wxT("Moving"),
            pNode->FullName());

        m_draggedItem = pNode;

        event.Allow();
    }
}
예제 #6
0
void wxExGenericDirCtrl::OnTree(wxTreeEvent& event)
{
  wxArrayString files;
  GetPaths(files);

  if (files.empty()) 
  {
    event.Skip();
    return;
  }

  if (event.GetEventType() == wxEVT_COMMAND_TREE_ITEM_MENU)
  {
    const wxExFileName filename(files[0]);
  
    wxExMenu menu; // uses AppendVCS
    
    if (filename.FileExists())
    {
      menu.Append(ID_TREE_OPEN, _("&Open"));
      menu.AppendSeparator();
    }
    
    menu.Append(ID_TREE_COPY,
      wxGetStockLabel(wxID_COPY), wxEmptyString, wxART_COPY);

    if (wxExVCS::DirExists(filename))
    {
      menu.AppendSeparator();
      menu.AppendVCS(filename);
    }

    if (filename.GetLexer().GetScintillaLexer() == "makefile")
    {
      menu.AppendSeparator();
      menu.Append(ID_TREE_RUN_MAKE, "&Make");
    }

    menu.AppendSeparator();
    menu.Append(ID_TOOL_REPORT_FIND, 
      wxExEllipsed(m_Frame->GetFindInCaption(ID_TOOL_REPORT_FIND)));

    menu.Append(ID_TOOL_REPORT_REPLACE, 
      wxExEllipsed(m_Frame->GetFindInCaption(ID_TOOL_REPORT_REPLACE)));
      
    PopupMenu(&menu);
  }
  else if (event.GetEventType() == wxEVT_COMMAND_TREE_ITEM_ACTIVATED)
  {
    const wxFileName fn(files[0]);
    
    if (!fn.FileExists() && fn.DirExists())
    {
      if (!GetTreeCtrl()->IsExpanded(event.GetItem()))
      {
        ExpandAndSelectPath(files[0]);
      }
      else
      {
        CollapsePath(files[0]);
      }
    }
    else
    {
      wxExOpenFiles(m_Frame, files, 0, wxDIR_FILES); // only files in this dir
    }
  }
  else if (event.GetEventType() ==  wxEVT_COMMAND_TREE_SEL_CHANGED)
  {
    wxExLogStatus(wxFileName(files[0]), STAT_FULLPATH);
  }
  else
  {
    wxFAIL;
  }
}