/* * Copyright 2005-2007 Gerald Schmidt. * * This file is part of Xml Copy Editor. * * Xml Copy Editor is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * Xml Copy Editor is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Xml Copy Editor; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef STYLEDIALOG_H #define STYLEDIALOG_H #define XHTML_START "XML Copy Editor report" #define XHTML_END "" #include #include #include #include #include #include "housestyle.h" #include "contexthandler.h" #include "housestylewriter.h" enum { ID_STYLE_TABLE = wxID_HIGHEST + 100, ID_STYLE_COMBO_RULESET, ID_STYLE_COMBO_FILTER, ID_STYLE_REPORT, ID_MENU_IGNORE_ONCE, ID_MENU_IGNORE_ALL, ID_MENU_CHANGE_ONCE, ID_MENU_CHANGE_ALL, ID_MENU_NEW_SUGGESTION, ID_MENU_APPLY_SUGGESTION_ALL, // disabled unless table contains items ID_STYLE_EDIT, ID_STYLE_WEB_REPORT, ID_STYLE_WEB_SUMMARY, ID_STYLE_IGNORE_ALL, ID_STYLE_CHANGE_ALL, }; struct SortData { int column; wxListCtrl *table; }; class StyleDialog : public wxDialog { public: StyleDialog ( wxWindow *parent, wxIcon icon, const std::string& bufferParameterUtf8, const wxString& fileNameParameter, const wxString& ruleSetDirectoryParameter, const wxString& filterDirectoryParameter, const wxString& browserParameter, const wxString& ruleSetPresetParameter, const wxString& filterPresetParameter, bool readOnlyParameter = false, wxPoint position = wxDefaultPosition, wxSize size = wxSize ( 720, 540 ) ); ~StyleDialog(); void OnColumnClick ( wxListEvent& event ); void OnItemRightClick ( wxListEvent& event ); void OnItemActivated ( wxListEvent& event ); void OnReport ( wxCommandEvent& event ); void OnStyleEdit ( wxCommandEvent& event ); void OnStyleWebReport ( wxCommandEvent& event ); void OnStyleWebSummary ( wxCommandEvent& event ); void OnStyleChangeAll ( wxCommandEvent& event ); void OnStyleIgnoreAll ( wxCommandEvent& event ); void OnMenuChangeOnce ( wxCommandEvent& event ); void OnMenuChangeAll ( wxCommandEvent& event ); void OnMenuIgnoreOnce ( wxCommandEvent& event ); void OnMenuIgnoreAll ( wxCommandEvent& event ); void OnCancel ( wxCommandEvent& event ); void OnMenuNewSuggestion ( wxCommandEvent& event ); void OnMenuApplySuggestionAll ( wxCommandEvent& event ); void OnUpdateTableRange ( wxUpdateUIEvent& event ); void styleSetIgnoreAll ( bool ignore ); std::string getEditedString(); wxString getRuleSetPreset() { return ruleSetPreset; } wxString getFilterPreset() { return filterPreset; } wxPoint getPosition(); wxSize getSize(); private: int indexForContextMenu; wxPoint framePosition; wxSize frameSize; wxComboBox *ruleSetCombo, *filterCombo; wxListCtrl *table; wxStatusBar *status; std::string bufferUtf8; std::set tempFiles; wxString fileName, ruleSetDirectory, filterDirectory, browser; wxString ruleSetPreset, filterPreset; vector matchVector; bool readOnly; bool isIgnore ( int item ); void setIgnore ( int item, bool ignore ); std::string flatWhiteSpace ( std::string& s ); static bool elementAndOffsetCompareFunction ( ContextMatch m1, ContextMatch m2 ); static bool reportCompareFunction ( ContextMatch m1, ContextMatch m2 ); static int wxCALLBACK MyCompareFunction ( long item1, long item2, long sortData ); void getAllMatches ( vector &v ); void getSelectedMatches ( vector &v ); void updateSizeInformation(); static wxString getTextByColumn ( wxListCtrl *table, long index, int col ); DECLARE_EVENT_TABLE() }; #endif