26#include <wx/filedlg.h>
28#include <wx/textctrl.h>
56 return Combo()->GetValue();
64#if defined( __WXMAC__ )
66#elif defined( __WXGTK__ )
76 Combo()->SetSize( rect, wxSIZE_ALLOW_MINUS_ONE );
90 wxTextEntry* textEntry =
static_cast<wxTextEntry*
>(
Combo() );
96 ch =
event.GetUnicodeKey();
103 ch =
event.GetKeyCode();
104 isPrintable = ch >= WXK_SPACE && ch < WXK_START;
111 textEntry->Remove( 0, 1 );
117 const long pos = textEntry->GetLastPosition();
118 textEntry->Remove( pos - 1, pos );
124 textEntry->WriteText(
static_cast<wxChar
>( ch ) );
132 auto evtHandler =
static_cast< wxGridCellEditorEvtHandler*
>( m_control->GetEventHandler() );
135 evtHandler->SetInSetFocus(
true );
137 m_value = aGrid->GetTable()->GetValue( aRow, aCol );
146 const wxString value =
Combo()->GetValue();
162 aGrid->GetTable()->SetValue( aRow, aCol,
m_value );
173void GRID_CELL_TEXT_BUTTON::SetValidator(
const wxValidator& validator )
175 m_validator.reset(
static_cast< wxValidator*
>( validator.Clone() ) );
184 const wxString& aPreselect ) :
185 wxComboCtrl( aParent ),
189 SetButtonBitmaps(
KiBitmap( BITMAPS::small_library ) );
192 Customize( wxCC_IFLAG_HAS_NONSTANDARD_BUTTON );
204 wxString libName = aRawValue.BeforeFirst(
':', &itemName );
211 wxString rawValue = GetValue();
213 if( rawValue.IsEmpty() )
231 wxEvtHandler* aEventHandler )
235 wxGridCellEditor::Create( aParent, aId, aEventHandler );
243 const wxString& aSymbolNetlist,
const wxString& aPreselect ) :
244 wxComboCtrl( aParent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize,
245 wxTE_PROCESS_ENTER ),
250 SetButtonBitmaps(
KiBitmap( BITMAPS::small_library ) );
253 Customize( wxCC_IFLAG_HAS_NONSTANDARD_BUTTON );
265 wxString fpid = GetValue();
301 wxEvtHandler* aEventHandler )
309 Combo()->SetValidator( *m_validator );
313 wxGridCellEditor::Create( aParent, aId, aEventHandler );
321 wxComboCtrl( aParent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize,
322 wxTE_PROCESS_ENTER ),
326 SetButtonBitmaps(
KiBitmap( BITMAPS::www ) );
329 Customize( wxCC_IFLAG_HAS_NONSTANDARD_BUTTON );
340 wxString filename = GetValue();
342 if( !filename.IsEmpty() && filename != wxT(
"~" ) )
352 wxEvtHandler* aEventHandler )
360 Combo()->SetValidator( *m_validator );
364 wxGridCellEditor::Create( aParent, aId, aEventHandler );
372 wxString* aCurrentDir, wxString* aExt =
nullptr,
373 bool aNormalize =
false,
374 wxString aNormalizeBasePath = wxEmptyString ) :
375 wxComboCtrl( aParent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize,
376 wxTE_PROCESS_ENTER ),
384 SetButtonBitmaps(
KiBitmap( BITMAPS::small_folder ) );
387 Customize( wxCC_IFLAG_HAS_NONSTANDARD_BUTTON );
398 wxFileName fn = GetValue();
407 wxFileDialog dlg(
m_dlg,
_(
"Select a File" ), fn.GetPath(), fn.GetFullName(), *
m_ext,
408 wxFD_FILE_MUST_EXIST | wxFD_OPEN );
410 if( dlg.ShowModal() == wxID_OK )
412 wxString filePath = dlg.GetPath();
413 wxString lastPath = dlg.GetDirectory();
414 wxString relPath = wxEmptyString;
420 lastPath =
NormalizePath( dlg.GetDirectory(), &
Pgm().GetLocalEnvVariables(),
439 wxDirDialog dlg(
m_dlg,
_(
"Select Path" ), fn.GetPath(),
440 wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST );
442 if( dlg.ShowModal() == wxID_OK )
444 wxString filePath = dlg.GetPath();
445 wxString relPath = wxEmptyString;
477 wxEvtHandler* aEventHandler )
479 if(
m_ext.IsEmpty() )
490 Combo()->SetValidator( *m_validator );
494 wxGridCellEditor::Create( aParent, aId, aEventHandler );
wxBitmap KiBitmap(BITMAPS aBitmap, int aHeightTag)
Construct a wxBitmap from an image identifier Returns the image from the active theme if the image ha...
Dialog helper object to sit in the inheritance tree between wxDialog and any class written by wxFormB...
void Create(wxWindow *aParent, wxWindowID aId, wxEvtHandler *aEventHandler) override
void Create(wxWindow *aParent, wxWindowID aId, wxEvtHandler *aEventHandler) override
wxString m_normalizeBasePath
void Create(wxWindow *aParent, wxWindowID aId, wxEvtHandler *aEventHandler) override
wxString GetValue() const override
wxComboCtrl * Combo() const
void StartingKey(wxKeyEvent &event) override
void BeginEdit(int aRow, int aCol, wxGrid *aGrid) override
bool EndEdit(int, int, const wxGrid *, const wxString &, wxString *aNewVal) override
void ApplyEdit(int aRow, int aCol, wxGrid *aGrid) override
void SetSize(const wxRect &aRect) override
SEARCH_STACK * m_searchStack
void Create(wxWindow *aParent, wxWindowID aId, wxEvtHandler *aEventHandler) override
Carry a payload from one KIWAY_PLAYER to another within a PROJECT.
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
KIWAY & Kiway() const
Return a reference to the KIWAY that this object has an opportunity to participate in.
A wxFrame capable of the OpenProjectFiles function, meaning it can load a portion of a KiCad project.
virtual bool ShowModal(wxString *aResult=nullptr, wxWindow *aResultantFocusWindow=nullptr)
Show this wxFrame as if it were a modal dialog, with all other instantiated wxFrames disabled until t...
virtual void KiwayMailIn(KIWAY_EXPRESS &aEvent)
Receive KIWAY_EXPRESS messages from other players.
bool Destroy() override
Our version of Destroy() which is virtual from wxWidgets.
virtual KIWAY_PLAYER * Player(FRAME_T aFrameType, bool doCreate=true, wxTopLevelWindow *aParent=nullptr)
Return the KIWAY_PLAYER* given a FRAME_T.
Look for files in a number of paths.
void OnButtonClick() override
void DoSetPopupControl(wxComboPopup *popup) override
TEXT_BUTTON_FILE_BROWSER(wxWindow *aParent, DIALOG_SHIM *aParentDlg, WX_GRID *aGrid, wxString *aCurrentDir, wxString *aExt=nullptr, bool aNormalize=false, wxString aNormalizeBasePath=wxEmptyString)
wxString m_normalizeBasePath
std::string m_symbolNetlist
void OnButtonClick() override
void DoSetPopupControl(wxComboPopup *popup) override
TEXT_BUTTON_FP_CHOOSER(wxWindow *aParent, DIALOG_SHIM *aParentDlg, const wxString &aSymbolNetlist, const wxString &aPreselect)
void DoSetPopupControl(wxComboPopup *popup) override
wxString escapeLibId(const wxString &aRawValue)
void OnButtonClick() override
TEXT_BUTTON_SYMBOL_CHOOSER(wxWindow *aParent, DIALOG_SHIM *aParentDlg, const wxString &aPreselect)
TEXT_BUTTON_URL(wxWindow *aParent, DIALOG_SHIM *aParentDlg, SEARCH_STACK *aSearchStack)
void OnButtonClick() override
void DoSetPopupControl(wxComboPopup *popup) override
SEARCH_STACK * m_searchStack
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
const wxString ExpandEnvVarSubstitutions(const wxString &aString, const PROJECT *aProject)
Replace any environment variable & text variable references with their values.
bool GetAssociatedDocument(wxWindow *aParent, const wxString &aDocName, PROJECT *aProject, SEARCH_STACK *aPaths)
Open a document (file) with the suitable browser.
This file is part of the common library.
wxString NormalizePath(const wxFileName &aFilePath, const ENV_VAR_MAP *aEnvVars, const wxString &aProjectPath)
Normalize a file path to an environmental variable, if possible.
@ FRAME_FOOTPRINT_VIEWER_MODAL
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
wxString UnescapeString(const wxString &aSource)
wxString EscapeString(const wxString &aSource, ESCAPE_CONTEXT aContext)
The Escape/Unescape routines use HTML-entity-reference-style encoding to handle characters which are:...