Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00056 #ifndef __MARKETCLIENTASSISTANT_HPP__
00057 #define __MARKETCLIENTASSISTANT_HPP__
00058
00059 #include <gtkmm.h>
00060 #include <openfluid/market.hpp>
00061
00062 #include <openfluid/dllexport.hpp>
00063 #include <openfluid/guicommon/MarketPackWidget.hpp>
00064 #include <openfluid/guicommon/MarketBuildOptionsDialog.hpp>
00065
00066 namespace openfluid { namespace guicommon {
00067
00068
00069 class DLLEXPORT MarketClientAssistant : public Gtk::Assistant
00070 {
00071
00072 private:
00073
00074
00075 Gtk::VBox m_SelectionPageBox;
00076
00077 Gtk::HBox m_URLBox;
00078 Gtk::Label m_URLLabel;
00079 Gtk::ComboBox m_URLCombo;
00080 Glib::RefPtr<Gtk::ListStore> m_RefURLComboBoxModel;
00081
00082 class URLComboColumns : public Gtk::TreeModel::ColumnRecord
00083 {
00084 public:
00085
00086 Gtk::TreeModelColumn<Glib::ustring> m_Name;
00087 Gtk::TreeModelColumn<Glib::ustring> m_URL;
00088
00089 URLComboColumns() { add(m_Name); add(m_URL); }
00090 };
00091
00092 URLComboColumns m_URLColumns;
00093
00094
00095 Gtk::VBox m_AvailPacksBox;
00096
00097 Gtk::ScrolledWindow m_AvailPacksSWindow;
00098
00099 Gtk::HBox m_ActionButtonsBox;
00100 Gtk::Button m_SelectAllButton;
00101 Gtk::Button m_SelectNoneButton;
00102 Gtk::Button m_CommonBuildConfigButton;
00103
00104 std::list<MarketPackWidget*> mp_AvailPacksWidgets;
00105
00106 void onURLComboChanged();
00107
00108 void onPackageInstallModified();
00109
00110 void onSelectAllClicked();
00111
00112 void onSelectNoneClicked();
00113
00114 void onCommonBuildConfigClicked();
00115
00116
00117
00118 Gtk::VBox m_LicensesPageBox;
00119
00120 Gtk::Label m_LicensesLabel;
00121
00122 Gtk::HBox m_LicensesReviewBox;
00123 Gtk::TreeView m_LicensesTreeView;
00124
00125 Glib::RefPtr<Gtk::ListStore> m_RefLicenseTreeViewModel;
00126
00127 class LicensesTreeViewColumns : public Gtk::TreeModel::ColumnRecord
00128 {
00129 public:
00130
00131 Gtk::TreeModelColumn<Glib::ustring> m_ID;
00132
00133 LicensesTreeViewColumns() { add(m_ID); }
00134 };
00135
00136 LicensesTreeViewColumns m_LicensesColumns;
00137
00138 Glib::RefPtr<Gtk::TreeSelection> m_RefLicensesTreeSelection;
00139
00140 Gtk::TextView m_LicensesTextView;
00141
00142 Glib::RefPtr<Gtk::TextBuffer> m_RefLicenseTextBuffer;
00143
00144
00145 Gtk::ScrolledWindow m_LicensesListSWindow;
00146 Gtk::ScrolledWindow m_LicensesReviewSWindow;
00147
00148 Gtk::RadioButton m_LicensesAcceptRadio;
00149 Gtk::RadioButton m_LicensesDoNotRadio;
00150
00151
00152 void onLicensesTreeviewChanged();
00153
00154 void onLicenseRadioClicked();
00155
00156
00157 Gtk::VBox m_InstallPageBox;
00158
00159 Gtk::TreeView m_InstallTreeView;
00160 Glib::RefPtr<Gtk::TreeView> m_RefInstallTreeView;
00161
00162 Glib::RefPtr<Gtk::ListStore> m_RefInstallTreeViewModel;
00163
00164 class InstallTreeViewColumns : public Gtk::TreeModel::ColumnRecord
00165 {
00166 public:
00167
00168 Gtk::TreeModelColumn<Glib::ustring> m_ID;
00169 Gtk::TreeModelColumn<Glib::ustring> m_Format;
00170 Gtk::TreeModelColumn<Glib::ustring> m_Status;
00171
00172 InstallTreeViewColumns() { add(m_ID); add(m_Format); add(m_Status);}
00173 };
00174
00175 InstallTreeViewColumns m_InstallColumns;
00176
00177
00178 Gtk::ScrolledWindow m_InstallSWindow;
00179 Gtk::ProgressBar m_InstallProgressBar;
00180 Gtk::Button m_ViewLogButton;
00181 Gtk::Alignment m_LogButtonAlign;
00182
00183 void onInstallTimeoutOnce();
00184
00185 void onViewLogClicked();
00186
00187
00188 void setupSelectionPage();
00189 void setupConfirmationPage();
00190 void setupLicensesPage();
00191 void setupDownloadPage();
00192
00193
00194 void onApply();
00195 void onCancel();
00196 void onClose();
00197 void onPrepare(Gtk::Widget* Widget);
00198
00199 void updateAvailPacksTreeview();
00200
00201 void updateInstallTreeview();
00202
00203 void initializeLicencesTreeView();
00204
00205 openfluid::market::MarketClient m_MarketClient;
00206
00207 int m_InstallationTimeout;
00208
00209 public:
00210 MarketClientAssistant();
00211
00212 virtual ~MarketClientAssistant();
00213
00214
00215 };
00216
00217 } }
00218
00219
00220 #endif