00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _ACTIONS_LISTVIEW_WIDGET_H_
00012 #define _ACTIONS_LISTVIEW_WIDGET_H_
00013
00014 #include <khlistview.h>
00015
00016 #include <action_data.h>
00017
00018 #include <actions_listview_widget_ui.h>
00019
00020 class TQDragObject;
00021
00022 namespace KHotKeys
00023 {
00024
00025 class Action_listview_item;
00026 class Action_data_base;
00027
00028 class Actions_listview_widget
00029 : public Actions_listview_widget_ui
00030 {
00031 Q_OBJECT
00032 public:
00033 Actions_listview_widget( TQWidget* parent_P = NULL, const char* name_P = NULL );
00034 Action_listview_item* current_action() const;
00035 void set_current_action( Action_listview_item* item );
00036 Action_data_base* current_action_data() const;
00037 void set_action_data( Action_data_base* data_P, bool recent_action_P = false );
00038 void action_name_changed( const TQString& name_P );
00039 void clear();
00040 void build_up();
00041 void new_action( Action_data_base* data_P );
00042 void delete_action();
00043 private:
00044 Action_listview_item* create_item( TQListViewItem* parent_P, TQListViewItem* after_P, Action_data_base* data_P );
00045 void build_up_recursively( Action_data_group* parent_P,
00046 Action_listview_item* item_parent_P );
00047 Action_listview_item* recent_item;
00048 Action_listview_item* saved_current_item;
00049 private slots:
00050 void item_moved( TQListViewItem* item_P, TQListViewItem* was_after_P, TQListViewItem* after_P );
00051 void current_changed( TQListViewItem* item_P );
00052 signals:
00053 void current_action_changed();
00054 };
00055
00056 class Actions_listview
00057 : public KHListView
00058 {
00059 Q_OBJECT
00060 public:
00061 Actions_listview( TQWidget* parent_P = NULL, const char* name_P = NULL );
00062 Actions_listview_widget* widget();
00063 private:
00064 Actions_listview_widget* _widget;
00065 };
00066
00067
00068 class Action_listview_item
00069 : public QListViewItem
00070 {
00071 public:
00072 virtual TQString text( int column_P ) const;
00073 Action_data_base* data() const;
00074 void set_data( Action_data_base* data_P );
00075 Action_listview_item( TQListView* parent_P, TQListViewItem* after_P,
00076 Action_data_base* data_P );
00077 Action_listview_item( TQListViewItem* parent_P, TQListViewItem* after_P,
00078 Action_data_base* data_P );
00079 protected:
00080 Action_data_base* _data;
00081 };
00082
00083
00084
00085
00086
00087
00088
00089 inline
00090 Action_listview_item* Actions_listview_widget::current_action() const
00091 {
00092 return saved_current_item;
00093 }
00094
00095 inline
00096 Action_data_base* Actions_listview_widget::current_action_data() const
00097 {
00098 return current_action() != NULL ? current_action()->data() : NULL;
00099 }
00100
00101 inline
00102 void Actions_listview_widget::clear()
00103 {
00104 actions_listview->clear();
00105 recent_item = 0;
00106 saved_current_item = 0;
00107 }
00108
00109
00110
00111 inline
00112 Actions_listview_widget* Actions_listview::widget()
00113 {
00114 return _widget;
00115 }
00116
00117
00118
00119 inline
00120 Action_listview_item::Action_listview_item( TQListView* parent_P, TQListViewItem* after_P,
00121 Action_data_base* data_P )
00122 : TQListViewItem( parent_P, after_P ), _data( data_P )
00123 {
00124 if( dynamic_cast< Action_data_group* >( data_P ))
00125 setExpandable( true );
00126 }
00127
00128 inline
00129 Action_listview_item::Action_listview_item( TQListViewItem* parent_P, TQListViewItem* after_P,
00130 Action_data_base* data_P )
00131 : TQListViewItem( parent_P, after_P ), _data( data_P )
00132 {
00133 if( dynamic_cast< Action_data_group* >( data_P ))
00134 setExpandable( true );
00135 }
00136
00137 inline
00138 Action_data_base* Action_listview_item::data() const
00139 {
00140 return _data;
00141 }
00142
00143 inline
00144 void Action_listview_item::set_data( Action_data_base* data_P )
00145 {
00146 _data = data_P;
00147 }
00148
00149 }
00150
00151 #endif