00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _WINDOWDEF_LIST_WIDGET_H_
00012 #define _WINDOWDEF_LIST_WIDGET_H_
00013
00014 #include <tqlistview.h>
00015
00016 #include <kdialogbase.h>
00017
00018 #include <windows.h>
00019 #include <windowdef_list_widget_ui.h>
00020
00021 namespace KHotKeys
00022 {
00023
00024 class Action_data;
00025 class Action_data_base;
00026 class Windowdef_simple_widget;
00027
00028 class Windowdef_list_item;
00029
00030 class Windowdef_list_widget
00031 : public Windowdef_list_widget_ui
00032 {
00033 Q_OBJECT
00034 public:
00035 Windowdef_list_widget( TQWidget* parent_P = NULL, const char* name_P = NULL );
00036 virtual ~Windowdef_list_widget();
00037 void set_data( const Windowdef_list* data_P );
00038 Windowdef_list* get_data() const;
00039 void set_autodetect( TQObject* obj_P, const char* slot_P );
00040 public slots:
00041 void clear_data();
00042 protected:
00043 Windowdef_list_item* create_listview_item( Windowdef* window_P, TQListView* parent1_P,
00044 TQListViewItem* parent2_P, TQListViewItem* after_P, bool copy_P );
00045 void edit_listview_item( Windowdef_list_item* item_P );
00046 enum type_t { TYPE_WINDOWDEF_SIMPLE };
00047 protected slots:
00048 void new_selected( int type_P );
00049 virtual void copy_pressed();
00050 virtual void delete_pressed();
00051 virtual void modify_pressed();
00052 virtual void current_changed( TQListViewItem* item_P );
00053 protected:
00054 TQObject* autodetect_object;
00055 const char* autodetect_slot;
00056 Windowdef_list_item* selected_item;
00057 };
00058
00059 typedef Windowdef_list_widget Windowdef_list_tab;
00060
00061 class Windowdef_list_item
00062 : public QListViewItem
00063 {
00064 public:
00065 Windowdef_list_item( TQListView* parent_P, Windowdef* window_P );
00066 Windowdef_list_item( TQListViewItem* parent_P, Windowdef* window_P );
00067 Windowdef_list_item( TQListView* parent_P, TQListViewItem* after_P, Windowdef* window_P );
00068 Windowdef_list_item( TQListViewItem* parent_P, TQListViewItem* after_P, Windowdef* window_P );
00069 virtual ~Windowdef_list_item();
00070 virtual TQString text( int column_P ) const;
00071 Windowdef* window() const;
00072 void set_window( Windowdef* window_P );
00073 protected:
00074 Windowdef* _window;
00075 };
00076
00077 class Windowdef_dialog
00078 {
00079 public:
00080 virtual Windowdef* edit_windowdef() = 0;
00081 virtual ~Windowdef_dialog();
00082 };
00083
00084 class Windowdef_simple_dialog
00085 : public KDialogBase, public Windowdef_dialog
00086 {
00087 Q_OBJECT
00088 public:
00089 Windowdef_simple_dialog( Windowdef_simple* window_P, TQObject* obj_P, const char* slot_P );
00090 virtual Windowdef* edit_windowdef();
00091 protected:
00092 virtual void accept();
00093 Windowdef_simple_widget* widget;
00094 Windowdef_simple* window;
00095 };
00096
00097
00098
00099
00100
00101
00102
00103 inline
00104 void Windowdef_list_widget::set_autodetect( TQObject* obj_P, const char* slot_P )
00105 {
00106 autodetect_object = obj_P;
00107 autodetect_slot = slot_P;
00108 }
00109
00110
00111
00112 inline
00113 Windowdef_list_item::Windowdef_list_item( TQListView* parent_P, Windowdef* window_P )
00114 : TQListViewItem( parent_P ), _window( window_P )
00115 {
00116 }
00117
00118 inline
00119 Windowdef_list_item::Windowdef_list_item( TQListViewItem* parent_P, Windowdef* window_P )
00120 : TQListViewItem( parent_P ), _window( window_P )
00121 {
00122 }
00123
00124 inline
00125 Windowdef_list_item::Windowdef_list_item( TQListView* parent_P, TQListViewItem* after_P,
00126 Windowdef* window_P )
00127 : TQListViewItem( parent_P, after_P ), _window( window_P )
00128 {
00129 }
00130
00131 inline
00132 Windowdef_list_item::Windowdef_list_item( TQListViewItem* parent_P, TQListViewItem* after_P,
00133 Windowdef* window_P )
00134 : TQListViewItem( parent_P, after_P ), _window( window_P )
00135 {
00136 }
00137
00138 inline
00139 Windowdef* Windowdef_list_item::window() const
00140 {
00141 return _window;
00142 }
00143
00144 inline
00145 void Windowdef_list_item::set_window( Windowdef* window_P )
00146 {
00147 delete _window;
00148 _window = window_P;
00149 }
00150
00151
00152
00153 inline
00154 Windowdef_dialog::~Windowdef_dialog()
00155 {
00156 }
00157
00158 }
00159
00160 #endif