bool wxSpinButton::OS2OnScroll( int WXUNUSED(nOrientation), WXWORD WXUNUSED(wParam), WXWORD wPos, WXHWND hControl ) { wxCHECK_MSG(hControl, false, wxT("scrolling what?") ); wxSpinEvent vEvent( wxEVT_SCROLL_THUMBTRACK, m_windowId ); int nVal = (int)wPos; // cast is important for negative values! vEvent.SetPosition(nVal); vEvent.SetEventObject(this); return(HandleWindowEvent(vEvent)); } // end of wxSpinButton::OS2OnScroll
void wxScrollBar::TriggerScrollEvent( wxEventType scrollEvent ) { int position = GetPeer()->GetValue(); int minPos = 0 ; int maxPos = GetPeer()->GetMaximum(); int nScrollInc = 0; if ( scrollEvent == wxEVT_SCROLL_LINEUP ) { nScrollInc = -1; } else if ( scrollEvent == wxEVT_SCROLL_LINEDOWN ) { nScrollInc = 1; } else if ( scrollEvent == wxEVT_SCROLL_PAGEUP ) { nScrollInc = -m_pageSize; } else if ( scrollEvent == wxEVT_SCROLL_PAGEDOWN ) { nScrollInc = m_pageSize; } int new_pos = position + nScrollInc; if (new_pos < minPos) new_pos = minPos; else if (new_pos > maxPos) new_pos = maxPos; if ( nScrollInc ) SetThumbPosition( new_pos ); wxScrollEvent event( scrollEvent, m_windowId ); if ( m_windowStyle & wxHORIZONTAL ) event.SetOrientation( wxHORIZONTAL ); else event.SetOrientation( wxVERTICAL ); event.SetPosition( new_pos ); event.SetEventObject( this ); wxWindow* window = GetParent(); if (window && window->MacIsWindowScrollbar( this )) // this is hardcoded window->MacOnScroll( event ); else HandleWindowEvent( event ); }
void wxListBox::HandleLineEvent( unsigned int n, bool doubleClick ) { wxCommandEvent event( doubleClick ? wxEVT_COMMAND_LISTBOX_DOUBLECLICKED : wxEVT_COMMAND_LISTBOX_SELECTED, GetId() ); event.SetEventObject( this ); if ( HasClientObjectData() ) event.SetClientObject( GetClientObject(n) ); else if ( HasClientUntypedData() ) event.SetClientData( GetClientData(n) ); event.SetString( GetString(n) ); event.SetInt( n ); event.SetExtraLong( 1 ); HandleWindowEvent(event); }
void wxGLCanvas::OnInternalIdle() { if (m_exposed) { wxPaintEvent event( GetId() ); event.SetEventObject( this ); HandleWindowEvent( event ); m_exposed = false; GetUpdateRegion().Clear(); } wxWindow::OnInternalIdle(); }
void wxFileButton::OnDialogOK(wxCommandEvent& ev) { // the wxFileDialog associated with the GtkFileChooserButton has been closed // using the OK button, thus the selected file has changed... if (ev.GetId() == wxID_OK) { // ...update our path UpdatePathFromDialog(m_dialog); // ...and fire an event wxFileDirPickerEvent event(wxEVT_FILEPICKER_CHANGED, this, GetId(), m_path); HandleWindowEvent(event); } }
void wxControlWithItemsBase::SendSelectionChangedEvent(wxEventType eventType) { const int n = GetSelection(); if ( n == wxNOT_FOUND ) return; wxCommandEvent event(eventType, m_windowId); event.SetInt(n); event.SetEventObject(this); event.SetString(GetStringSelection()); InitCommandEventWithItems(event, n); HandleWindowEvent(event); }
void wxTopLevelWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags ) { wxCHECK_RET( m_widget, wxT("invalid frame") ); // deal with the position first int old_x = m_x; int old_y = m_y; if ( !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE) ) { // -1 means "use existing" unless the flag above is specified if ( x != -1 ) m_x = x; if ( y != -1 ) m_y = y; } else // wxSIZE_ALLOW_MINUS_ONE { m_x = x; m_y = y; } if ( m_x != old_x || m_y != old_y ) { gtk_window_move( GTK_WINDOW(m_widget), m_x, m_y ); } const wxSize oldSize(m_width, m_height); if (width >= 0) m_width = width; if (height >= 0) m_height = height; ConstrainSize(); if (m_width < 1) m_width = 1; if (m_height < 1) m_height = 1; if (m_width != oldSize.x || m_height != oldSize.y) { m_deferShowAllowed = true; m_useCachedClientSize = false; int w, h; GTKDoGetSize(&w, &h); gtk_window_resize(GTK_WINDOW(m_widget), w, h); DoGetClientSize(&m_clientWidth, &m_clientHeight); wxSizeEvent event(GetSize(), GetId()); event.SetEventObject(this); HandleWindowEvent(event); } }
// process a WM_COMMAND generated by the buddy text control bool wxSpinCtrl::ProcessTextCommand(WXWORD cmd, WXWORD WXUNUSED(id)) { if ( (cmd == EN_CHANGE) && (!m_blockEvent )) { wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, GetId()); event.SetEventObject(this); wxString val = wxGetWindowText(m_hwndBuddy); event.SetString(val); event.SetInt(GetValue()); return HandleWindowEvent(event); } // not processed return false; }
bool wxSpinCtrl::ProcessTextCommand( WXWORD wCmd, WXWORD WXUNUSED(wId) ) { switch (wCmd) { case SPBN_CHANGE: { wxCommandEvent vEvent( wxEVT_COMMAND_TEXT_UPDATED, GetId() ); vEvent.SetEventObject(this); wxString sVal = wxGetWindowText(m_hWndBuddy); vEvent.SetString(sVal); vEvent.SetInt(GetValue()); return (HandleWindowEvent(vEvent)); } case SPBN_SETFOCUS: case SPBN_KILLFOCUS: { wxFocusEvent vEvent( wCmd == EN_KILLFOCUS ? wxEVT_KILL_FOCUS : wxEVT_SET_FOCUS ,m_windowId ); vEvent.SetEventObject(this); return(HandleWindowEvent(vEvent)); } default: break; } // // Not processed // return false; } // end of wxSpinCtrl::ProcessTextCommand
// Only allow toggle if returns true bool wxToolBarBase::OnLeftClick(int toolid, bool toggleDown) { wxCommandEvent event(wxEVT_TOOL, toolid); event.SetEventObject(this); // we use SetInt() to make wxCommandEvent::IsChecked() return toggleDown event.SetInt((int)toggleDown); // and SetExtraLong() for backwards compatibility event.SetExtraLong((long)toggleDown); // Send events to this toolbar instead (and thence up the window hierarchy) HandleWindowEvent(event); return true; }
void wxSpinCtrl::OnSpinChange( wxSpinEvent& rEventSpin ) { wxCommandEvent vEvent( wxEVT_COMMAND_SPINCTRL_UPDATED ,GetId() ); vEvent.SetEventObject(this); vEvent.SetInt(rEventSpin.GetPosition()); (void)HandleWindowEvent(vEvent); if (rEventSpin.GetSkipped()) { vEvent.Skip(); } } // end of wxSpinCtrl::OnSpinChange
bool wxTopLevelWindowX11::Show(bool show) { if (show) { wxSizeEvent event(GetSize(), GetId()); event.SetEventObject(this); HandleWindowEvent(event); m_needResizeInIdle = false; } bool ret = wxWindowX11::Show(show); return ret; }
bool wxListBoxBase::SendEvent(wxEventType evtType, int item, bool selected) { wxCommandEvent event(evtType, GetId()); event.SetEventObject(this); event.SetInt(item); event.SetString(GetString(item)); event.SetExtraLong(selected); if ( HasClientObjectData() ) event.SetClientObject(GetClientObject(item)); else if ( HasClientUntypedData() ) event.SetClientData(GetClientData(item)); return HandleWindowEvent(event); }
void wxTopLevelWindowX11::OnInternalIdle() { wxWindow::OnInternalIdle(); // Do this only after the last idle event so that // all windows have been updated before a new // round of size events is sent if (m_needResizeInIdle && !wxTheApp->Pending()) { wxSizeEvent event( GetClientSize(), GetId() ); event.SetEventObject( this ); HandleWindowEvent( event ); m_needResizeInIdle = false; } }
bool wxDatePickerCtrl::MSWOnDateTimeChange(const NMDATETIMECHANGE& dtch) { wxDateTime dt; if ( dtch.dwFlags == GDT_VALID ) dt.SetFromMSWSysDate(dtch.st); // filter out duplicate DTN_DATETIMECHANGE events which the native // control sends us when using wxDP_DROPDOWN style if ( (m_date.IsValid() == dt.IsValid()) && (!m_date.IsValid() || dt == m_date) ) return false; m_date = dt; wxDateEvent event(this, dt, wxEVT_DATE_CHANGED); return HandleWindowEvent(event); }
bool wxControl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result) { wxEventType eventType wxDUMMY_INITIALIZE(wxEVT_NULL); NMHDR *hdr = (NMHDR*) lParam; switch ( hdr->code ) { case NM_CLICK: eventType = wxEVT_COMMAND_LEFT_CLICK; break; case NM_DBLCLK: eventType = wxEVT_COMMAND_LEFT_DCLICK; break; case NM_RCLICK: eventType = wxEVT_COMMAND_RIGHT_CLICK; break; case NM_RDBLCLK: eventType = wxEVT_COMMAND_RIGHT_DCLICK; break; case NM_SETFOCUS: eventType = wxEVT_COMMAND_SET_FOCUS; break; case NM_KILLFOCUS: eventType = wxEVT_COMMAND_KILL_FOCUS; break; case NM_RETURN: eventType = wxEVT_COMMAND_ENTER; break; default: return wxWindow::MSWOnNotify(idCtrl, lParam, result); } wxCommandEvent event(wxEVT_NULL, m_windowId); event.SetEventType(eventType); event.SetEventObject(this); return HandleWindowEvent(event); }
bool wxListBox::OS2Command( WXUINT uParam , WXWORD WXUNUSED(wId)) { wxEventType eEvtType; if (uParam == LN_SELECT) { eEvtType = wxEVT_LISTBOX; } else if (uParam == LN_ENTER) { eEvtType = wxEVT_LISTBOX_DCLICK; } else { // // Some event we're not interested in // return false; } wxCommandEvent vEvent( eEvtType ,m_windowId ); vEvent.SetEventObject(this); wxArrayInt aSelections; int n; int nCount = GetSelections(aSelections); if (nCount > 0) { n = aSelections[0]; if (HasClientObjectData()) vEvent.SetClientObject(GetClientObject(n)); else if ( HasClientUntypedData() ) vEvent.SetClientData(GetClientData(n)); vEvent.SetString(GetString(n)); } else { n = -1; } vEvent.SetInt(n); return HandleWindowEvent(vEvent); } // end of wxListBox::OS2Command
bool wxSpinButton::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam, WXWORD pos, WXHWND control) { wxCHECK_MSG( control, false, wxT("scrolling what?") ); if ( wParam != SB_THUMBPOSITION ) { // probable SB_ENDSCROLL - we don't react to it return false; } wxSpinEvent event(wxEVT_SCROLL_THUMBTRACK, m_windowId); event.SetPosition((short)pos); // cast is important for negative values! event.SetEventObject(this); return HandleWindowEvent(event); }
void wxSpinCtrl::OnChar ( wxKeyEvent& rEvent ) { switch (rEvent.GetKeyCode()) { case WXK_RETURN: { wxCommandEvent vEvent( wxEVT_COMMAND_TEXT_ENTER ,m_windowId ); wxString sVal = wxGetWindowText(m_hWndBuddy); InitCommandEvent(vEvent); vEvent.SetString(sVal); vEvent.SetInt(GetValue()); if (HandleWindowEvent(vEvent)) return; break; } case WXK_TAB: // // Always produce navigation event - even if we process TAB // ourselves the fact that we got here means that the user code // decided to skip processing of this TAB - probably to let it // do its default job. // { wxNavigationKeyEvent vEventNav; vEventNav.SetDirection(!rEvent.ShiftDown()); vEventNav.SetWindowChange(rEvent.ControlDown()); vEventNav.SetEventObject(this); if (GetParent()->HandleWindowEvent(vEventNav)) return; } break; } // // No, we didn't process it // rEvent.Skip(); } // end of wxSpinCtrl::OnChar
bool wxListBox::MSWCommand(WXUINT param, WXWORD WXUNUSED(id)) { if ((param == LBN_SELCHANGE) && HasMultipleSelection()) { CalcAndSendEvent(); return true; } wxEventType evtType; int n; if ( param == LBN_SELCHANGE ) { evtType = wxEVT_COMMAND_LISTBOX_SELECTED; n = SendMessage(GetHwnd(), LB_GETCARETINDEX, 0, 0); // NB: conveniently enough, LB_ERR is the same as wxNOT_FOUND } else if ( param == LBN_DBLCLK ) { evtType = wxEVT_COMMAND_LISTBOX_DOUBLECLICKED; n = HitTest(ScreenToClient(wxGetMousePosition())); } else { // some event we're not interested in return false; } // retrieve the affected item if ( n == wxNOT_FOUND ) return false; wxCommandEvent event(evtType, m_windowId); event.SetEventObject(this); if ( HasClientObjectData() ) event.SetClientObject( GetClientObject(n) ); else if ( HasClientUntypedData() ) event.SetClientData( GetClientData(n) ); event.SetString(GetString(n)); event.SetInt(n); return HandleWindowEvent(event); }
bool wxNonOwnedWindow::Show(bool show) { if ( !wxWindow::Show(show) ) return false; if ( m_nowpeer ) m_nowpeer->Show(show); if ( show ) { // because apps expect a size event to occur at this moment wxSizeEvent event(GetSize() , m_windowId); event.SetEventObject(this); HandleWindowEvent(event); } return true ; }
void wxChoice::SendSelectionChangedEvent(wxEventType evt_type) { if (!m_hasVMT) return; if (GetSelection() == -1) return; wxCommandEvent event( evt_type, GetId() ); int n = GetSelection(); event.SetInt( n ); event.SetString( GetStringSelection() ); event.SetEventObject( this ); InitCommandEventWithItems( event, n ); HandleWindowEvent( event ); }
bool wxFrame::HandleMenuSelect(WXEVENTPTR event) { const EventType *palmEvent = (EventType *)event; const int ItemID = palmEvent->data.menu.itemID; if (!m_frameMenuBar) return false; const int item = m_frameMenuBar->ProcessCommand(ItemID); if (item==-1) return false; wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, item); commandEvent.SetEventObject(this); HandleWindowEvent(commandEvent); return true; }
bool wxSlider::SendScrollEvent(WXEVENTPTR event) { const EventType* palmEvent = (EventType*)event; int newPos = ValueInvertOrNot(palmEvent->data.ctlRepeat.value); if ( newPos == m_oldPos ) { // nothing changed since last event return false; } m_oldPos = newPos; // first track event wxScrollEvent eventWx(wxEVT_SCROLL_THUMBTRACK, GetId()); eventWx.SetPosition(newPos); eventWx.SetEventObject(this); return HandleWindowEvent(eventWx); }
void wxComboBox::OnChar( wxKeyEvent &event ) { if ( event.GetKeyCode() == WXK_RETURN ) { // GTK automatically selects an item if its in the list wxCommandEvent eventEnter(wxEVT_TEXT_ENTER, GetId()); eventEnter.SetString( GetValue() ); eventEnter.SetInt( GetSelection() ); eventEnter.SetEventObject( this ); if (!HandleWindowEvent( eventEnter )) { // This will invoke the dialog default action, such // as the clicking the default button. wxWindow *top_frame = m_parent; #if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */ # pragma ivdep # pragma swp # pragma unroll # pragma prefetch # if 0 # pragma simd noassert # endif #endif /* VDM auto patch */ while (top_frame->GetParent() && !(top_frame->IsTopLevel())) top_frame = top_frame->GetParent(); if (top_frame && GTK_IS_WINDOW(top_frame->m_widget)) { GtkWindow *window = GTK_WINDOW(top_frame->m_widget); if (window->default_widget) gtk_widget_activate (window->default_widget); } } // Catch GTK event so that GTK doesn't open the drop // down list upon RETURN. return; } event.Skip(); }
bool wxNonOwnedWindow::Show(bool show) { // NB: this calls wxWindow::Show() and so ensures DoRefreshWindow() is // called on the window -- we'll need that below if ( !wxWindow::Show(show) ) return false; // If this is the first time Show was called, send size event, // so that the frame can adjust itself (think auto layout or single child) if ( !m_sizeSet ) { m_sizeSet = true; wxSizeEvent event(GetSize(), GetId()); event.SetEventObject(this); HandleWindowEvent(event); } // make sure the window is fully painted, with all pending updates, before // DFB WM shows it, otherwise it would attempt to show either empty (= // black) window surface (if shown for the first time) or it would show // window with outdated content; note that the window was already refreshed // in the wxWindow::Show() call above: if ( show ) Update(); // hide/show the window by setting its opacity to 0/full: m_dfbwin->SetOpacity(show ? m_opacity : 0); if ( show ) { wxWindow *focused = FindFocus(); if ( focused && focused->GetTLW() == this ) { // focus is on this frame or its children, apply it to DirectFB SetDfbFocus(); } // else: don't do anything, if this is wxFrame or wxDialog that should // get focus when it's shown, // wxTopLevelWindowDFB::HandleFocusEvent() will do it as soon as // the event loop starts } return true; }
bool wxSpinButton::MSWOnNotify(int WXUNUSED(idCtrl), WXLPARAM lParam, WXLPARAM *result) { NM_UPDOWN *lpnmud = (NM_UPDOWN *)lParam; if (lpnmud->hdr.hwndFrom != GetHwnd()) // make sure it is the right control return false; wxSpinEvent event(lpnmud->iDelta > 0 ? wxEVT_SCROLL_LINEUP : wxEVT_SCROLL_LINEDOWN, m_windowId); event.SetPosition(lpnmud->iPos + lpnmud->iDelta); event.SetEventObject(this); bool processed = HandleWindowEvent(event); *result = event.IsAllowed() ? 0 : 1; return processed; }
void TimeEdit::PasteTime() { if (byFrame) { Paste(); return; } std::string text(GetClipboard()); if (text.empty()) return; AssTime tempTime(text); if (tempTime.GetAssFormated() == text) { SetTime(tempTime); SetSelection(0, GetValue().size()); wxCommandEvent evt(wxEVT_TEXT, GetId()); evt.SetEventObject(this); HandleWindowEvent(evt); } }
void wxGLCanvas::OnInternalIdle() { if (m_exposed) { #ifdef __WXGTK3__ GTKSendPaintEvents(m_cairoPaintContext); cairo_destroy(m_cairoPaintContext); m_cairoPaintContext = NULL; #else wxPaintEvent event( GetId() ); event.SetEventObject( this ); HandleWindowEvent( event ); #endif m_exposed = false; GetUpdateRegion().Clear(); } wxWindow::OnInternalIdle(); }
bool wxPopupWindow::Show(bool show) { if ( !wxWindow::Show(show) ) return false; if ( m_nowpeer && show) m_nowpeer->ShowWithoutActivating(); else if ( m_nowpeer ) m_nowpeer->Show(false); if ( show ) { // because apps expect a size event to occur at this moment wxSizeEvent event(GetSize() , m_windowId); event.SetEventObject(this); HandleWindowEvent(event); } return true; }