|
UniWidgets
1.2.0
|
00001 #ifndef _USENSORJOURNAL_H 00002 #define _USENSORJOURNAL_H 00003 // ------------------------------------------------------------------------- 00004 #include <gtkmm.h> 00005 #include <time.h> 00006 #include <uwidgets/UEventBox.h> 00007 // #include <USignals.h> 00008 // #include <uwidgets/KineticScroll.h> 00009 #include <plugins.h> 00010 #include <global_macros.h> 00011 // ------------------------------------------------------------------------- 00012 class msgItem; 00014 class SensorColumnRecord : public Gtk::TreeModel::ColumnRecord 00015 { 00016 public: 00017 00018 SensorColumnRecord() 00019 { 00020 add(value_string); 00021 add(time_string); 00022 add(text_message); 00023 add(id_string); 00024 add(name_string); 00025 add(node_string); 00026 add(unet_string); 00027 add(aps_group); 00028 add(time); 00029 add(bgcolor); 00030 add(fgcolor); 00031 add(stype); 00032 add(mark); 00033 add(watch); 00034 } 00035 00036 Gtk::TreeModelColumn<long> value_string; 00037 Gtk::TreeModelColumn<Glib::ustring> time_string; 00038 Gtk::TreeModelColumn<Glib::ustring> text_message; 00039 Gtk::TreeModelColumn<long> id_string; 00040 Gtk::TreeModelColumn<Glib::ustring> name_string; 00041 Gtk::TreeModelColumn<Glib::ustring> node_string; 00042 Gtk::TreeModelColumn<Glib::ustring> unet_string; 00043 Gtk::TreeModelColumn<Glib::ustring> aps_group; 00044 Gtk::TreeModelColumn<time_t> time; 00045 Gtk::TreeModelColumn<Gdk::Color> bgcolor; 00046 Gtk::TreeModelColumn<Gdk::Color> fgcolor; 00047 Gtk::TreeModelColumn<UniversalIO::IOType> stype; 00048 Gtk::TreeModelColumn<bool> mark; 00049 Gtk::TreeModelColumn<bool> watch; 00050 }; 00051 // ------------------------------------------------------------------------- 00057 class USensorJournal : public UEventBox 00058 { 00059 public: 00060 USensorJournal(); 00061 explicit USensorJournal(GtkmmBaseType::BaseObjectType* gobject); 00062 virtual ~USensorJournal(); 00063 00064 virtual void set_connector(const ConnectorRef& connector) throw(); 00065 virtual void on_connect() throw(); 00066 virtual void on_disconnect() throw(); 00067 00068 protected: 00069 00070 /* Handlers */ 00071 virtual void on_realize(); 00072 void on_treeview_row_activated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* column); 00073 void on_change_browse(); 00074 bool on_button_press_event(GdkEventButton* event); 00075 bool on_my_event(GdkEvent* event); 00076 bool on_my_log_event(GdkEvent* event); 00077 00078 void on_menu_watch_generic(); 00079 void on_menu_unwatch_generic(); 00080 void on_menu_clear_all_generic(); 00081 void on_menu_mark_generic(bool state = true); 00082 void on_menu_unmarkall_generic(); 00083 void add_watching_for(UniSetTypes::ObjectId id); 00084 void del_watching_for(UniSetTypes::ObjectId id); 00085 void clear_logs(UniSetTypes::ObjectId id = UniSetTypes::DefaultObjectId); 00086 bool on_foreach(const Gtk::TreeIter& it); 00087 std::string get_time(); 00088 00089 typedef std::map<UniSetTypes::ObjectId,Gtk::TreeModel::iterator > SensorStoreMap; 00090 SensorStoreMap SensorStore; 00091 00092 Gtk::TreeView tree_view_; 00093 Glib::RefPtr<Gtk::TreeStore> tree_model_ref_; 00094 Glib::RefPtr<Gtk::TreeModelFilter> tree_model_filter_; 00095 Gtk::Entry browse; 00096 Gtk::VBox vbox; 00097 Gtk::Table parameters; 00098 Gtk::CheckButton chk_id; 00099 Gtk::CheckButton chk_name; 00100 Gtk::CheckButton chk_text; 00101 Gtk::CheckButton chk_aps; 00102 Gtk::CheckButton chk_reglet; 00103 Gtk::CheckButton chk_di; 00104 Gtk::CheckButton chk_do; 00105 Gtk::CheckButton chk_ai; 00106 Gtk::CheckButton chk_ao; 00107 Gtk::VPaned vpan; 00108 Gtk::TreeView tree_view_log_; 00109 Glib::RefPtr<Gtk::ListStore> tree_model_log_ref_; 00110 // Glib::Property<Glib::ustring> property_shmid; /*!< свойство: идентификатор SM */ 00111 Gtk::ProgressBar progress; 00112 00113 SensorColumnRecord columns_; 00115 Gtk::ScrolledWindow scrolled_window_; 00116 Gtk::ScrolledWindow scrolled_window_log_; 00118 Gtk::Menu m_Menu_Popup; 00119 Gtk::Menu m_Menu_Popup_Logs; 00120 00121 private: 00122 00123 void constructor(); 00124 // void update_row(UniSetTypes::ObjectId id, UniSetTypes::ObjectId node, long value); 00125 bool update_rows(); 00126 00127 // void treeviewcolumn_validated_on_cell_data(Gtk::CellRenderer* renderer, const Gtk::TreeModel::iterator& iter); 00128 void on_editing_started(Gtk::CellEditable* editable, const Glib::ustring& path_string); 00129 void on_editing_canceled(); 00130 void on_my_editing_done(); 00131 void on_my_edited(const Glib::ustring& path_string, const Glib::ustring& new_text); 00132 void on_modify(const Gtk::TreeModel::iterator& iter,Glib::ValueBase& value,int column ); 00133 bool on_rows_visible(const Gtk::TreeModel::iterator& iter ); 00134 bool on_check_row_type(const Gtk::TreeModel::iterator& iter ); 00135 bool find_in_string(const Glib::ustring& str1); 00136 // void on_row_changed(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter); 00137 // void on_row_filtered_changed(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter); 00138 void on_value_changed(const Gtk::SpinButton* pSpin, const Glib::ustring &path_strin); 00139 void on_set_sensor(const Glib::ustring& path_string, long value ); 00140 00141 void on_id_title_changed(); 00142 void on_name_title_changed(); 00143 void on_value_title_changed(); 00144 void on_time_title_changed(); 00145 void on_text_title_changed(); 00146 void on_aps_title_changed(); 00147 00148 void on_id_width_changed(); 00149 void on_name_width_changed(); 00150 void on_value_width_changed(); 00151 void on_time_width_changed(); 00152 void on_aps_width_changed(); 00153 00154 UniSetTypes::ObjectId block_id; 00155 sigc::connection value_change_connection_; 00156 bool value_changed_; 00157 00158 DISALLOW_COPY_AND_ASSIGN(USensorJournal); 00159 /*Properties*/ 00160 ADD_PROPERTY( property_id_title, Glib::ustring); 00161 ADD_PROPERTY( property_name_title, Glib::ustring); 00162 ADD_PROPERTY( property_value_title, Glib::ustring); 00163 ADD_PROPERTY( property_time_title, Glib::ustring); 00164 ADD_PROPERTY( property_text_title, Glib::ustring); 00165 ADD_PROPERTY( property_aps_title, Glib::ustring); 00166 ADD_PROPERTY( property_info_color, Gdk::Color); 00167 ADD_PROPERTY( property_warn_color, Gdk::Color); 00168 ADD_PROPERTY( property_alarm_color, Gdk::Color); 00169 ADD_PROPERTY( property_attention_color, Gdk::Color); 00171 ADD_PROPERTY( property_id_width, long); 00172 ADD_PROPERTY( property_name_width, long) 00173 ADD_PROPERTY( property_value_width, long); 00174 ADD_PROPERTY( property_time_width, long); 00175 ADD_PROPERTY( property_aps_width, long); 00176 ADD_PROPERTY( property_text_width, long); 00177 ADD_PROPERTY( property_local_mode, bool); 00178 00179 }; 00180 #endif
1.7.6.1