1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*!********************************************************************
Audacity: A Digital Audio Editor
ProjectsListDialog.h
Dmitry Vedenko
**********************************************************************/
#pragma once
#include <memory>
#include "wxPanelWrapper.h"
class AudacityProject;
class wxButton;
class wxGrid;
class wxGridTableBase;
class wxStaticText;
class wxTextCtrl;
class wxGridRangeSelectEvent;
class wxGridEvent;
class wxCommandEvent;
class wxTimer;
namespace audacity::cloud::audiocom::sync
{
class ProjectsListDialog final : public wxDialogWrapper
{
public:
ProjectsListDialog(wxWindow* parent, AudacityProject* project);
~ProjectsListDialog() override;
private:
class ProjectsTableData;
#if wxUSE_ACCESSIBILITY
class ProjectListAccessible;
#endif
void SetupHandlers();
void OnBeforeRefresh();
void OnRefreshCompleted(bool success);
void FormatPageLabel();
void OnOpen();
void OnOpenAudioCom();
void OnGridSelect(wxGridRangeSelectEvent& event);
void OnSelectCell(wxGridEvent& event);
void OnSearchTextChanged();
void OnSearchTextSubmitted();
AudacityProject* mProject { nullptr };
wxTextCtrl* mSearchCtrl { nullptr };
wxGrid* mProjectsTable { nullptr };
ProjectsTableData* mProjectsTableData { nullptr };
wxStaticText* mPageLabel { nullptr };
wxButton* mPrevPageButton { nullptr };
wxButton* mNextPageButton { nullptr };
wxButton* mOpenButton { nullptr };
wxButton* mOpenAudioCom { nullptr };
wxString mLastSearchValue;
std::unique_ptr<wxTimer> mSearchTimer;
#if wxUSE_ACCESSIBILITY
ProjectListAccessible* mAccessible { nullptr };
#endif
bool mInRangeSelection { false };
};
} // namespace audacity::cloud::audiocom::sync
|