File: ctlListView.cpp

package info (click to toggle)
pgadmin3 1.10.5-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 48,840 kB
  • ctags: 11,568
  • sloc: cpp: 118,148; sh: 4,256; ansic: 1,724; pascal: 1,120; yacc: 927; makefile: 713; lex: 421; perl: 40
file content (107 lines) | stat: -rw-r--r-- 2,604 bytes parent folder | download
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
// RCS-ID:      $Id$
// Copyright (C) 2002 - 2010, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// ctlListView.cpp - enhanced listview control
//
//////////////////////////////////////////////////////////////////////////

#include "pgAdmin3.h"

// wxWindows headers
#include <wx/wx.h>
#include <wx/imaglist.h>

// App headers
#include "ctl/ctlListView.h"
#include "utils/misc.h"


ctlListView::ctlListView(wxWindow *p, int id, wxPoint pos, wxSize siz, long attr)
: wxListView(p, id, pos, siz, attr | wxLC_REPORT)
{
}


long ctlListView::GetSelection()
{
    return GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
}


wxString ctlListView::GetText(long row, long col)
{
    wxListItem item;
    item.SetId(row);
    item.SetColumn(col);
    item.SetMask(wxLIST_MASK_TEXT);
    GetItem(item);
    return item.GetText();
};


void ctlListView::AddColumn(const wxChar *text, int size, int format)
{
    if (size == wxLIST_AUTOSIZE || size == wxLIST_AUTOSIZE_USEHEADER)
    {
        InsertColumn(GetColumnCount(), text, format, size);
    }
    else
    {
        InsertColumn(GetColumnCount(), text, format, ConvertDialogToPixels(wxPoint(size,0)).x);
    }
}


long ctlListView::AppendItem(int icon, const wxChar *val, const wxChar *val2, const wxChar *val3, const wxChar *val4)
{
    long pos=InsertItem(GetItemCount(), val, icon);
    if (val2 && *val2)
        SetItem(pos, 1, val2);
    if (val3 && *val3)
        SetItem(pos, 2, val3);
    if (val4 && *val4)
        SetItem(pos, 3, val4);

    return pos;
}


void ctlListView::CreateColumns(wxImageList *images, const wxString &left, const wxString &right, int leftSize)
{
    int rightSize;
    if (leftSize < 0)
    {
#ifdef __WXMAC__
        leftSize = rightSize = (GetParent()->GetSize().GetWidth() - 20)/2;
#else
        leftSize = rightSize = GetSize().GetWidth()/2;
#endif
    }
    else
    {
        if (leftSize)
            leftSize = ConvertDialogToPixels(wxPoint(leftSize, 0)).x;

#ifdef __WXMAC__
        rightSize = (GetParent()->GetSize().GetWidth() - 20) - leftSize;
#else
        rightSize = GetClientSize().GetWidth()-leftSize;
#endif
    }
    if (!leftSize)
    {
        InsertColumn(0, left, wxLIST_FORMAT_LEFT, GetClientSize().GetWidth());
    }
    else
    {
        InsertColumn(0, left, wxLIST_FORMAT_LEFT, leftSize);
        InsertColumn(1, right, wxLIST_FORMAT_LEFT, rightSize);
    }

    if (images)
        SetImageList(images, wxIMAGE_LIST_SMALL);
}