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 __MARKETPACKWIDGET_HPP__
00057 #define __MARKETPACKWIDGET_HPP__
00058
00059
00060 #include <gtkmm/eventbox.h>
00061 #include <gtkmm/image.h>
00062 #include <gtkmm/label.h>
00063 #include <gtkmm/box.h>
00064 #include <gtkmm/combobox.h>
00065 #include <gtkmm/button.h>
00066 #include <gtkmm/togglebutton.h>
00067 #include <gtkmm/liststore.h>
00068
00069 #include <openfluid/dllexport.hpp>
00070 #include <openfluid/market/MarketInfos.hpp>
00071
00072
00073 namespace openfluid { namespace guicommon {
00074
00075
00076
00077
00078 class DLLEXPORT MarketPackWidget : public Gtk::EventBox
00079 {
00080
00081 public:
00082 typedef sigc::signal<void> signal_install_modified_t;
00083
00084 private:
00085
00086 openfluid::market::MetaPackageInfo m_MetaPackInfo;
00087
00088 std::string m_EditedBuildOptions;
00089
00090 Gtk::Image* m_EmptyCartImage;
00091 Gtk::Image* m_FullCartImage;
00092
00093 Gtk::Label m_IDLabel;
00094 Gtk::HBox m_FormatHBox;
00095 Gtk::Label m_FormatLabel;
00096 Gtk::ComboBox m_FormatCombo;
00097 Gtk::Button m_ConfigButton;
00098 Gtk::VBox m_DetailsLeftVBox;
00099 Gtk::HBox m_MainHBox;
00100 Gtk::ToggleButton m_InstallToggle;
00101
00102 Gtk::VBox m_DetailsRightVBox;
00103 Gtk::Label m_LicenseLabel;
00104 Gtk::Label m_VersionLabel;
00105
00106
00107 Glib::RefPtr<Gtk::ListStore> m_RefFormatComboBoxModel;
00108
00109 class FormatComboColumns : public Gtk::TreeModel::ColumnRecord
00110 {
00111 public:
00112
00113 Gtk::TreeModelColumn<Glib::ustring> m_FormatName;
00114 Gtk::TreeModelColumn<openfluid::market::MetaPackageInfo::SelectionType> m_SelType;
00115
00116 FormatComboColumns() { add(m_FormatName); add(m_SelType); }
00117 };
00118
00119 FormatComboColumns m_FormatColumns;
00120
00121 void onInstallModified();
00122
00123 void onConfigClicked();
00124
00125 bool onButtonRelease(GdkEventButton* Event);
00126
00127 static std::string replaceByUnknownIfEmpty(const std::string& Str);
00128
00129 static std::string replaceByNoneIfEmpty(const std::string& Str);
00130
00131
00132 protected:
00133 signal_install_modified_t m_signal_install_modified;
00134
00135
00136 public:
00137 MarketPackWidget(const openfluid::market::MetaPackageInfo& MetaPackInfo);
00138
00139 ~MarketPackWidget();
00140
00141 std::string getID() const { return m_MetaPackInfo.ID; };
00142
00143 bool isInstall() const { return m_InstallToggle.get_active(); };
00144
00145 void setInstall(bool Install) { m_InstallToggle.set_active(Install); };
00146
00147 openfluid::market::MetaPackageInfo::SelectionType getPackageFormat() const;
00148
00149 signal_install_modified_t signal_install_modified();
00150
00151 std::string getEditedBuildOptions() const { return m_EditedBuildOptions; };
00152
00153 void updateDisplayedInfos();
00154
00155
00156 };
00157
00158
00159 } }
00160
00161
00162 #endif