1 //////////////////////////////////////////////////////////////////////////
2 //
3 // pgAdmin III - PostgreSQL Tools
4 //
5 // Copyright (C) 2002 - 2016, The pgAdmin Development Team
6 // This software is released under the PostgreSQL Licence
7 //
8 // dlgIndex.h - Index property
9 //
10 //////////////////////////////////////////////////////////////////////////
11 
12 
13 #ifndef __DLG_INDEXPROP
14 #define __DLG_INDEXPROP
15 
16 #include "dlg/dlgProperty.h"
17 
18 
19 class pgIndex;
20 class pgIndexBase;
21 
22 #define btnAddCol       CTRL_BUTTON("btnAddCol")
23 #define btnRemoveCol    CTRL_BUTTON("btnRemoveCol")
24 
25 class dlgIndexBase : public dlgCollistProperty
26 {
27 public:
28 	dlgIndexBase(pgaFactory *factory, frmMain *frame, const wxString &resName, pgIndexBase *index, pgTable *parentNode);
29 	dlgIndexBase(pgaFactory *factory, frmMain *frame, const wxString &resName, ctlListView *colList);
30 
31 	void OnSelectComboCol(wxCommandEvent &ev);
32 	void OnSelectListCol(wxListEvent &ev);
33 	void OnSelectCol();
34 	void CheckChange();
35 	pgObject *GetObject();
36 	int Go(bool modal);
37 
38 protected:
39 	pgIndexBase *index;
40 
41 private:
42 	DECLARE_EVENT_TABLE()
43 };
44 
45 
46 class dlgIndex : public dlgIndexBase
47 {
48 public:
49 	dlgIndex(pgaFactory *factory, frmMain *frame, pgIndex *index, pgTable *parentNode);
50 
51 	int Go(bool modal);
52 	void CheckChange();
53 	wxString GetColumns();
54 	wxString GetSql();
55 	pgObject *CreateObject(pgCollection *collection);
56 
57 private:
58 #ifdef __WXMAC__
59 	void OnChangeSize(wxSizeEvent &ev);
60 #endif
61 
62 	void OnSelectType(wxCommandEvent &ev);
63 	void OnDescChange(wxCommandEvent &ev);
64 	void OnAddCol(wxCommandEvent &ev);
65 	void OnRemoveCol(wxCommandEvent &ev);
66 
67 	wxString m_previousType;
68 
69 	DECLARE_EVENT_TABLE()
70 };
71 
72 
73 #endif
74