1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// ddColumnKindIcon.h - Figure container for kind of Column Images
//
//////////////////////////////////////////////////////////////////////////
#ifndef DDCOLUMNKINDICON_H
#define DDCOLUMNKINDICON_H
#include "hotdraw/figures/hdAbstractMenuFigure.h"
class ddColumnFigure;
enum ddColumnType
{
pk = 321,
uk,
none,
noaction //no action kind means column type don't have right now a useful value
};
enum
{
MNU_DDCTPKEY = 321,
MNU_DDCTUKEY
};
class ddColumnKindIcon : public hdAbstractMenuFigure
{
public:
ddColumnKindIcon(ddColumnFigure *owner);
~ddColumnKindIcon();
virtual void OnGenericPopupClick(wxCommandEvent &event, hdDrawingView *view = NULL);
virtual void createMenu(wxMenu &mnu);
virtual void basicDraw(wxBufferedDC &context, hdDrawingView *view);
virtual void basicDrawSelected(wxBufferedDC &context, hdDrawingView *view);
virtual void toggleColumnKind(ddColumnType type, hdDrawingView *view = NULL, bool interaction = true);
virtual int getWidth();
virtual int getHeight();
bool isNone();
bool isPrimaryKey();
bool isForeignKey();
void disableUniqueKey();
void disablePrimaryKey();
void enablePrimaryKey();
ddColumnFigure *getOwnerColumn();
bool isUniqueKey();
bool isUniqueKey(int uniqueIndex);
int getUniqueConstraintIndex();
void setUniqueConstraintIndex(int i);
void setRightIconForColumn();
void setPrimaryKey(bool value);
void setUkIndex(int ukIdx);
protected:
private:
ddColumnFigure *ownerColumn;
wxBitmap *iconToDraw;
wxBitmap icon;
int ukIndex;
bool isPk;
//multiple Uk management at table
void syncUkIndexes();
bool uniqueConstraintManager(bool ukCol, hdDrawingView *view = NULL, bool interaction = true);
};
#endif
|