00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _ACTION_LIST_WIDGET_H_
00012 #define _ACTION_LIST_WIDGET_H_
00013
00014 #include <tqlistview.h>
00015
00016 #include <actions.h>
00017 #include <kdialogbase.h>
00018
00019 #include <action_list_widget_ui.h>
00020
00021 #include "activate_window_widget.h"
00022
00023 namespace KHotKeys
00024 {
00025
00026 class Action_data;
00027 class Command_url_widget;
00028 class Menuentry_widget;
00029 class Dcop_widget;
00030 class Keyboard_input_widget;
00031
00032 class Action_list_item;
00033
00034 class Action_list_widget
00035 : public Action_list_widget_ui
00036 {
00037 Q_OBJECT
00038 public:
00039 Action_list_widget( TQWidget* parent_P = NULL, const char* name_P = NULL );
00040 virtual ~Action_list_widget();
00041 void set_data( const Action_list* data_P );
00042 Action_list* get_data( Action_data* data_P ) const;
00043 public slots:
00044 void clear_data();
00045 protected:
00046 Action_list_item* create_listview_item( Action* action_P, TQListView* parent1_P,
00047 TQListViewItem* parent2_P, TQListViewItem* after_P, bool copy_P );
00048 void edit_listview_item( Action_list_item* item_P );
00049 enum type_t { TYPE_COMMAND_URL_ACTION, TYPE_MENUENTRY_ACTION, TYPE_DCOP_ACTION,
00050 TYPE_KEYBOARD_INPUT_ACTION, TYPE_ACTIVATE_WINDOW_ACTION };
00051 protected slots:
00052 void new_selected( int type_P );
00053 virtual void copy_pressed();
00054 virtual void delete_pressed();
00055 virtual void modify_pressed();
00056 virtual void current_changed( TQListViewItem* item_P );
00057 protected:
00058 Action_list_item* selected_item;
00059 };
00060
00061 typedef Action_list_widget Action_list_tab;
00062
00063 class Action_list_item
00064 : public QListViewItem
00065 {
00066 public:
00067 Action_list_item( TQListView* parent_P, Action* action_P );
00068 Action_list_item( TQListViewItem* parent_P, Action* action_P );
00069 Action_list_item( TQListView* parent_P, TQListViewItem* after_P, Action* action_P );
00070 Action_list_item( TQListViewItem* parent_P, TQListViewItem* after_P, Action* action_P );
00071 virtual ~Action_list_item();
00072 virtual TQString text( int column_P ) const;
00073 Action* action() const;
00074 void set_action( Action* action_P );
00075 protected:
00076 Action* _action;
00077 };
00078
00079 class Action_dialog
00080 {
00081 public:
00082 virtual Action* edit_action() = 0;
00083 virtual ~Action_dialog();
00084 };
00085
00086 class Command_url_action_dialog
00087 : public KDialogBase, public Action_dialog
00088 {
00089 Q_OBJECT
00090 public:
00091 Command_url_action_dialog( Command_url_action* action_P );
00092 virtual Action* edit_action();
00093 protected:
00094 virtual void accept();
00095 Command_url_widget* widget;
00096 Command_url_action* action;
00097 };
00098
00099 class Menuentry_action_dialog
00100 : public KDialogBase, public Action_dialog
00101 {
00102 Q_OBJECT
00103 public:
00104 Menuentry_action_dialog( Menuentry_action* action_P );
00105 virtual Action* edit_action();
00106 protected:
00107 virtual void accept();
00108 Menuentry_widget* widget;
00109 Menuentry_action* action;
00110 };
00111
00112 class Dcop_action_dialog
00113 : public KDialogBase, public Action_dialog
00114 {
00115 Q_OBJECT
00116 public:
00117 Dcop_action_dialog( Dcop_action* action_P );
00118 virtual Action* edit_action();
00119 protected:
00120 virtual void accept();
00121 Dcop_widget* widget;
00122 Dcop_action* action;
00123 };
00124
00125 class Keyboard_input_action_dialog
00126 : public KDialogBase, public Action_dialog
00127 {
00128 Q_OBJECT
00129 public:
00130 Keyboard_input_action_dialog( Keyboard_input_action* action_P );
00131 virtual Action* edit_action();
00132 protected:
00133 virtual void accept();
00134 Keyboard_input_widget* widget;
00135 Keyboard_input_action* action;
00136 };
00137
00138 class Activate_window_action_dialog
00139 : public KDialogBase, public Action_dialog
00140 {
00141 Q_OBJECT
00142 public:
00143 Activate_window_action_dialog( Activate_window_action* action_P );
00144 virtual Action* edit_action();
00145 protected:
00146 virtual void accept();
00147 Activate_window_widget* widget;
00148 Activate_window_action* action;
00149 };
00150
00151
00152
00153
00154
00155
00156
00157 inline
00158 Action_list_item::Action_list_item( TQListView* parent_P, Action* action_P )
00159 : TQListViewItem( parent_P ), _action( action_P )
00160 {
00161 }
00162
00163 inline
00164 Action_list_item::Action_list_item( TQListViewItem* parent_P, Action* action_P )
00165 : TQListViewItem( parent_P ), _action( action_P )
00166 {
00167 }
00168
00169 inline
00170 Action_list_item::Action_list_item( TQListView* parent_P, TQListViewItem* after_P,
00171 Action* action_P )
00172 : TQListViewItem( parent_P, after_P ), _action( action_P )
00173 {
00174 }
00175
00176 inline
00177 Action_list_item::Action_list_item( TQListViewItem* parent_P, TQListViewItem* after_P,
00178 Action* action_P )
00179 : TQListViewItem( parent_P, after_P ), _action( action_P )
00180 {
00181 }
00182
00183 inline
00184 Action* Action_list_item::action() const
00185 {
00186 return _action;
00187 }
00188
00189 inline
00190 void Action_list_item::set_action( Action* action_P )
00191 {
00192 delete _action;
00193 _action = action_P;
00194 }
00195
00196
00197
00198 inline
00199 Action_dialog::~Action_dialog()
00200 {
00201 }
00202
00203 }
00204
00205 #endif