void ProjectExplorerWindow::OnTreeItemContextMenu(wxTreeEvent& event)
{

    m_tree->SelectItem(event.GetItem(), true);

    if (m_contextMenu != NULL)
    {

        ItemData* itemData = GetDataForItem(event.GetItem());

        // If this is a file, display the context menu.
        if (itemData != NULL && itemData->file != NULL && itemData->symbol == NULL)
        {
            wxTreeEvent copy(event);
            copy.SetInt(0);
            copy.SetEventType(wxEVT_TREE_CONTEXT_MENU);
            AddPendingEvent(copy);
        }
        //Is a basic directory
        else if (itemData == NULL)
        {
          wxTreeEvent copy(event);
          copy.SetInt(1);
          copy.SetEventType(wxEVT_TREE_CONTEXT_MENU);
          AddPendingEvent(copy);
        }

    }

}
Beispiel #2
0
void wxCheckedListCtrl::OnActivateEvent(wxListEvent& event)
{
    long item = event.GetItem().GetId();
    if (item == wxNOT_FOUND || !IsEnabled(item))
    {
        // skip this item
        event.Skip();
        return;
    }

    wxListEvent ev(wxEVT_NULL, GetId());
    ev.m_itemIndex = item;

    // send the check event
    if (IsChecked(item))
    {
        ev.SetEventType(wxEVT_COMMAND_LIST_ITEM_UNCHECKED);
        Check(item, FALSE);
        AddPendingEvent(ev);
    } else {
        ev.SetEventType(wxEVT_COMMAND_LIST_ITEM_CHECKED);
        Check(item, TRUE);
        AddPendingEvent(ev);
    }
    event.Skip();
}
Beispiel #3
0
void nwxGrid::OnEditorEnd(wxGridEvent &e)
{
  if(m_nEditorOn)
  {
    m_nEditorOn--;

    int nRow = e.GetRow();
    int nCol = e.GetCol();
    // memory leak on following line
    wxGridCellEditor *pEdit = GetCellEditor(nRow, nCol);
    wxControl *pControl = (pEdit == NULL) ? NULL : pEdit->GetControl();
    wxTextCtrl *pText = 
      (pControl == NULL)
      ? NULL
      : wxDynamicCast(pControl,wxTextCtrl);
    if(pText != NULL)
    {
      wxString s;
      s = pText->GetValue();
      if(s == m_sEditorStartValue || s != m_sValue)
      {
        // value hasn't changed but we still want to force a 
        // CELL_CHANGED event
        wxGridEvent ee(e);
        ee.SetEventType(wxEVT_GRID_CELL_CHANGED);
        AddPendingEvent(ee);
      }
      if(pEdit != NULL)
      {
        pEdit->DecRef();
      }
    }
  }
  e.Skip();
}
Beispiel #4
0
bool wxLuaDebuggerCServer::StartServer()
{
    wxCHECK_MSG(m_serverSocket == NULL, false, wxT("Debugger server socket already created"));

    m_shutdown = false;
    m_serverSocket = new wxLuaCSocket();
    m_serverSocket->m_name = wxString::Format(wxT("wxLuaDebuggerCServer::m_serverSocket (%ld)"), (long)wxGetProcessId());

    if (m_serverSocket->Listen(m_port_number))
    {
        wxCHECK_MSG(m_pThread == NULL, false, wxT("Debugger server thread already created"));

        if (!m_shutdown)
        {
            m_pThread = new wxLuaDebuggerCServer::LuaThread(this);

            return ((m_pThread != NULL) &&
                    (m_pThread->Create() == wxTHREAD_NO_ERROR) &&
                    (m_pThread->Run()    == wxTHREAD_NO_ERROR));
        }
    }
    else
    {
        wxLuaDebuggerEvent debugEvent(wxEVT_WXLUA_DEBUGGER_ERROR, this);
        debugEvent.SetMessage(m_serverSocket->GetErrorMsg(true));
        AddPendingEvent(debugEvent);

        delete m_serverSocket;
        m_serverSocket = NULL;
        m_shutdown = true;
    }

    return false;
}
Beispiel #5
0
void
raiseMovementEvent(
  wxWindow &Control,
  std::shared_ptr<StateAccessToken> &Access,
  std::function<seec::cm::MovementResult (seec::cm::ProcessState &State)> Mover)
{
  auto const Handler = Control.GetEventHandler();
  if (!Handler) {
    wxLogDebug("raiseMovementEvent: wxWindow does not have an event handler.");
    return;
  }
  
  if (!Access) {
    wxLogDebug("raiseMovementEvent: no access provided.");
    return;
  }
  
  auto LockAccess = Access->getAccess();
  if (!LockAccess) { // Token is out of date.
    wxLogDebug("raiseMovementEvent: access token is outdated.");
    return;
  }
  
  ProcessMoveEvent Ev {
    SEEC_EV_PROCESS_MOVE,
    Control.GetId(),
    std::move(Mover)
  };
  
  Ev.SetEventObject(&Control);
  
  LockAccess.release();
  
  Handler->AddPendingEvent(Ev);
}
Beispiel #6
0
void CMuleNotebook::OnMouseButtonRelease(wxMouseEvent &event)
{
	if (GetImageList() == NULL) {
		// This Mulenotebook has no images on tabs, so nothing to do.
		event.Skip();
		return;
	}

	long xpos, ypos;
	event.GetPosition(&xpos, &ypos);

	long flags = 0;
	int tab = HitTest(wxPoint(xpos,ypos),&flags);

	if ((tab != -1) &&  (((flags == wxNB_HITTEST_ONICON) && event.LeftUp()) ||
			((flags == wxNB_HITTEST_ONLABEL) && event.MiddleUp()))) {
		// User did click on a 'x' or middle click on the label
#if MULE_NEEDS_DELETEPAGE_WORKAROUND
		/*	WORKAROUND: Instead of calling DeletePage, we need to wait for the
		 *	mouse release signal to reach Gtk. Inconsistent with normal wxEvent
		 *	behaviour the button release handler in wxWidgets don't evaluate
		 *	the result of the signal handling. */
		wxNotebookEvent evt( wxEVT_COMMAND_MULENOTEBOOK_DELETE_PAGE, GetId(), tab );
		evt.SetEventObject(this);
		AddPendingEvent( evt );
#else
		DeletePage(tab);
#endif // MULE_NEEDS_DELETEPAGE_WORKAROUND
	} else {
		// Is not a 'x'. Send this event up.
		event.Skip();
	}
}
Beispiel #7
0
void tcOOBView::OnLButtonDown(wxMouseEvent& event) 
{
    wxPoint point = event.GetPosition();

    wxRealPoint p(double(point.x), double(point.y));

    if (CategoryShowHideClick(p))
    {
        return;
    }

    if (tsOOBInfo* info = 
        ButtonContainingPoint(p))
    {
        long new_key = info->mnID;
        if (new_key != mnSelectedKey)
        {
            wxCommandEvent command(wxEVT_COMMAND_BUTTON_CLICKED, ID_NEWHOOK) ;    
            command.SetEventObject(this);
            command.SetExtraLong(new_key);
            AddPendingEvent(command);
        }
        mnSelectedKey = new_key;

        tcSound::Get()->PlayEffect("ShortBeep");

        mbMouseDrag = true;
        msFormationChangeInfo.mnFollowerKey = info->mnID;
    }
}
Beispiel #8
0
void tcOOBView::OnLButtonDClick(wxMouseEvent& event)
{
    wxPoint point = event.GetPosition();

    if (tsOOBInfo* info = 
        ButtonContainingPoint(wxRealPoint((float)point.x,(float)point.y)))
    {
        long new_key = info->mnID;
        if (new_key != -1)
        {
            long flags = 0;
            if (event.ShiftDown()) flags += 1;
            if (event.ControlDown()) flags += 2;
            if (event.AltDown()) flags += 4;

            wxCommandEvent command(wxEVT_COMMAND_BUTTON_CLICKED, ID_DCLICKHOOK) ;    
            command.SetEventObject(this);
            command.SetExtraLong(flags);
            AddPendingEvent(command);
        }
        mnSelectedKey = new_key;

        tcSound::Get()->PlayEffect("ShortBeep");
    }
}
Beispiel #9
0
void EventNotifier::PostReloadExternallyModifiedEvent(bool prompt)
{
    if(_eventsDiabled)
        return;
    wxCommandEvent event( prompt ? wxEVT_CMD_RELOAD_EXTERNALLY_MODIFIED : wxEVT_CMD_RELOAD_EXTERNALLY_MODIFIED_NOPROMPT );
    AddPendingEvent( event );
}
Beispiel #10
0
void ClangPlugin::OnClangReparseFinished( wxEvent& event )
{
//#ifdef CLANGPLUGIN_TRACE_FUNCTIONS
    fprintf(stdout,"%s\n", __PRETTY_FUNCTION__);
//#endif
    ClangProxy::ReparseJob* pJob = static_cast<ClangProxy::ReparseJob*>(event.GetEventObject());
    if ( HasEventSink(clEVT_DIAGNOSTICS_UPDATED ) )
    {
        ClangProxy::GetDiagnosticsJob job( cbEVT_CLANG_ASYNCTASK_FINISHED, idClangGetDiagnostics, pJob->GetTranslationUnitId(), pJob->GetFilename() );
        m_Proxy.AppendPendingJob(job);
    }
    ClangEvent evt( clEVT_REPARSE_FINISHED, pJob->GetTranslationUnitId(), pJob->GetFilename());
    ProcessEvent(evt);
#if 0
    if (pJob->m_TranslId != this->m_TranslUnitId)
    {
        std::cout<<" Reparse finished but another file was loaded"<<std::endl;
        return;
    }
    if (m_ReparseNeeded)
    {
        fprintf(stdout,"%s: Reparsing again, was modified while we were busy...\n", __PRETTY_FUNCTION__);
        wxCommandEvent evt(cbEVT_COMMAND_REPARSE, idReparse);
        AddPendingEvent(evt);
    }
    else
    {
        //m_DiagnosticTimer.Stop();
        //m_DiagnosticTimer.Start(DIAGNOSTIC_DELAY, wxTIMER_ONE_SHOT);
    }
#endif
}
/////////////////////
// Ask to stop later
void AudioPlayer::RequestStop() {
	wxCommandEvent event(wxEVT_STOP_AUDIO, 1000);
    event.SetEventObject(this);
	wxMutexGuiEnter();
	AddPendingEvent(event);
	wxMutexGuiLeave();
}
Beispiel #12
0
void EventNotifier::PostFileSavedEvent(const wxString& filename)
{
    clCommandEvent event( wxEVT_FILE_SAVED );
    event.SetString( filename );
    event.SetFileName( filename );
    AddPendingEvent( event );
}
Beispiel #13
0
void NetPlayDialog::StopGame()
{
  wxCommandEvent stop_event{ DOLPHIN_EVT_STOP_SOFTWARE, GetId() };
  stop_event.SetEventObject(this);

  AddPendingEvent(stop_event);
}
Beispiel #14
0
void CamArtProvider::ArtLoad(BOOL newbitmaps, BOOL defer)
{
	// If we already have an event pending, don't generate a new one
	if (m_GetBitmapEventPending && !newbitmaps) return;

	if (newbitmaps && m_pMissingImage && m_pHash && !m_pHash->empty())
	{
		ResIDWithFlagsToBitmapPtr::iterator current;

		for( current = m_pHash->begin(); current != m_pHash->end(); ++current )
		{
			// we don't need to worry about memory management as deleting the
			// bitmaps are CamResource::'s responsibility
			if (current->second.m_pImage == m_pMissingImage)
				m_pMissingImage = NULL; // mark as required to be loaded on the event
		}
	}

	// Send ourselves a deferred event
	m_GetBitmapEventPending = TRUE;
	wxCamArtProviderEvent event (wxEVT_CAMARTPROVIDER_GETBITMAP, 0, defer);
	if (defer)
		AddPendingEvent(event);
	else
		ProcessEvent(event);	
}
Beispiel #15
0
void wxZEditNode::AskRefresh()
{
    wxSizeEvent event;
    event.SetEventObject(this);
    event.SetEventType(14000);
    AddPendingEvent(event);
}
CWidgetActiveTransfer::CWidgetActiveTransfer(wxWindow* pParent, BSLHOST hHost, BSLTRANSFER hTransfer) :
CWidgetBase(pParent, ID_WIDGETACTIVETRANSFER)
{
    CBSLClient* pState = wxGetApp().GetState();
    CBSLTransfer bslTransfer;

    m_pButtonBar = NULL;
    m_pButtonBarSizer = NULL;

    m_hHost = hHost;
    m_hTransfer = hTransfer;

    // Create Controls
    CreateControls(true, true, false);

    // Update control state.
    pState->GetTransfer(m_hTransfer, &bslTransfer);
    SetWidgetName(bslTransfer.GetName());
    UpdateControls(bslTransfer);
    UpdateControlsButtonBar(bslTransfer);
    ToggleVisibility(bslTransfer);

    // Give time for all the controls to figure out their layout and render
    // properly.
    wxCommandEvent evt(wxEVT_WIDGETACTIVETRANSFER_INIT);
    AddPendingEvent(evt);
}
void CBOINCListCtrl::PostDrawProgressBarEvent() {
    if (m_bProgressBarEventPending) return;
    
    CDrawProgressBarEvent newEvent(wxEVT_DRAW_PROGRESSBAR, this);
    AddPendingEvent(newEvent);
    m_bProgressBarEventPending = true;
}
Beispiel #18
0
void StocksListCtrl::OnEditStocks(wxCommandEvent& /*event*/)
{
    if (m_selected_row < 0) return;

    wxListEvent evt(wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxID_ANY);
    AddPendingEvent(evt);
}
Beispiel #19
0
void InfoPanel::EmitTitleChangeEvent(const wxString& new_title)
{
  wxCommandEvent event{DOLPHIN_EVT_CHANGE_ISO_PROPERTIES_TITLE, GetId()};
  event.SetEventObject(this);
  event.SetString(new_title);
  AddPendingEvent(event);
}
Beispiel #20
0
void EventNotifier::PostFileRemovedEvent(const wxArrayString& files)
{
    if(_eventsDiabled)
        return;
    clCommandEvent filesRemovedEvent(wxEVT_PROJ_FILE_REMOVED);
    filesRemovedEvent.SetStrings( files );
    AddPendingEvent( filesRemovedEvent );
}
void CGMSKClientFrame::showHeader(CHeaderData* header)
{
	wxASSERT(header != NULL);

	CHeaderEvent event(header, HEADER_EVENT);

	AddPendingEvent(event);
}
Beispiel #22
0
void TrackStatusHandler::pipelinePosChanged(Pipeline* const pipeline, unsigned int pos, unsigned int len) throw() {
    // NOTE: this function is called from a gst thread.
    wxCommandEvent evt(NAVI_EVENT_POS_CHANGED);
    StreamPositionData* d = new StreamPositionData(pos, len);
    evt.SetClientObject(d);
    AddPendingEvent(evt);
    // this will in turn call doUpdateSlider.
}
Beispiel #23
0
void CDVToolReaderFrame::showMessage(CMessageData* message)
{
	wxASSERT(message != NULL);

	CMessageEvent event(message, MESSAGE_EVENT);

	AddPendingEvent(event);
}
void CGMSKClientFrame::showBusy(CBusyData* busy)
{
	wxASSERT(busy != NULL);

	CBusyEvent event(busy, BUSY_EVENT);

	AddPendingEvent(event);
}
/**
* Close dialog and send message to un-pause game
*/
void tcGameOutcomePopup::ContinueGame(wxCommandEvent& event)
{
    wxCommandEvent command(wxEVT_COMMAND_BUTTON_CLICKED, ID_SETPAUSE);
    command.SetExtraLong(0); // 0 is un-pause, 1 to pause
    AddPendingEvent(command);

    DestroyWindow();
}
Beispiel #26
0
void NetPlayDialog::BootGame(const std::string& filename)
{
  wxCommandEvent play_event{ DOLPHIN_EVT_BOOT_SOFTWARE, GetId() };
  play_event.SetString(StrToWxStr(filename));
  play_event.SetEventObject(this);

  AddPendingEvent(play_event);
}
void CGMSKClientFrame::showMessage(CMessageData* message)
{
	wxASSERT(message != NULL);

	CMessageEvent event(message, MESSAGE_EVENT);

	AddPendingEvent(event);
}
void CDummyRepeaterFrame::showMessage(CDummyRepeaterMessageData* message)
{
	wxASSERT(message != NULL);

	CDummyRepeaterMessageEvent event(message, MESSAGE_EVENT);

	AddPendingEvent(event);
}
Beispiel #29
0
void PathConfigPane::OnNANDRootChanged(wxCommandEvent& event)
{
  Config::SetBase(Config::MAIN_FS_PATH, WxStrToStr(m_nand_root_dirpicker->GetPath()));

  wxCommandEvent update_event{DOLPHIN_EVT_UPDATE_LOAD_WII_MENU_ITEM, GetId()};
  update_event.SetEventObject(this);
  AddPendingEvent(update_event);
}
Beispiel #30
0
void tcOptionsView::OnLButtonDown(wxMouseEvent& event)
{
	bool bButtonClicked;
	int nOption, nValue;

	if (!mbActive) 
	{
		event.Skip();
		return;
	}

    wxPoint pos = event.GetPosition();
    if (OnLButtonDownSlider(pos))
    {
        return;
    }


	int startMapMode = mpOptions->mnMapMode;

	// TranslatePoint(point); // adjust for flipped up/down 
	bButtonClicked = ButtonContainingPoint(pos, nOption, nValue);
	if (bButtonClicked) 
	{
		if ((nOption >= int(mpOptions->maOptionInfo.size()))||
			(nValue >= mpOptions->maOptionInfo[nOption].mnStateCount)) 
		{
				WTL("tcOptionsView::OnLButtonDown error");
				return;
			} 
			mpOptions->maOptionInfo[nOption].mnValue = nValue;
			if (mpOptions->maOptionInfo[nOption].associatedInt != NULL) 
			{
				*mpOptions->maOptionInfo[nOption].associatedInt = nValue;
			}
			mpOptions->Serialize(false); // create new options file

			tcSound::Get()->PlayEffect("MutedBeep");
	}
	else
	{
		/* Now this uses tcXmlWindow button bar to switch back to start
		// switch back to start view if no buttons clicked (for now)
		wxCommandEvent command(wxEVT_COMMAND_BUTTON_CLICKED, ID_STARTVIEW) ;    
		command.SetEventObject(this);
		AddPendingEvent(command);
		*/
	}

	if (mpOptions->mnMapMode != startMapMode)
	{
		wxCommandEvent command(wxEVT_COMMAND_BUTTON_CLICKED, ID_REFRESHMAPS);    
		command.SetEventObject(this);
		
		AddPendingEvent(command);
    }

}