1 |
/* wptCommonCtl.h - Win32 Imagelist headerfile |
2 |
* Copyright (C) 2003 Andreas Jobs |
3 |
* Copyright (C) 2004, 2005, 2006 Timo Schulz |
4 |
* |
5 |
* This file is part of WinPT. |
6 |
* |
7 |
* WinPT is free software; you can redistribute it and/or |
8 |
* modify it under the terms of the GNU General Public License |
9 |
* as published by the Free Software Foundation; either version 2 |
10 |
* of the License, or (at your option) any later version. |
11 |
* |
12 |
* WinPT is distributed in the hope that it will be useful, |
13 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
15 |
* General Public License for more details. |
16 |
* |
17 |
* You should have received a copy of the GNU General Public License |
18 |
* along with WinPT; if not, write to the Free Software Foundation, |
19 |
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 |
*/ |
21 |
|
22 |
#ifndef WPT_COMMONCTL_H |
23 |
#define WPT_COMMONCTL_H |
24 |
|
25 |
#include <commctrl.h> |
26 |
|
27 |
/* Symbol constants for the toolbar. */ |
28 |
enum km_sym_tid_t { |
29 |
IMI_KEY_NEW=0, |
30 |
IMI_KEY_DELETE, |
31 |
IMI_KEY_PROPS, |
32 |
IMI_KEY_SIGN, |
33 |
IMI_KEY_SEARCH, |
34 |
IMI_KEY_FILE_IMPORT, |
35 |
IMI_KEY_FILE_EXPORT, |
36 |
IMI_KEY_IMPORT, |
37 |
IMI_KEY_EXPORT, |
38 |
IMI_SORT_UPARROW, |
39 |
IMI_SORT_DOWNARROW, |
40 |
IMI_EXIT, |
41 |
IMAGELIST_NUMIMAGES |
42 |
}; |
43 |
|
44 |
/*-- List View --*/ |
45 |
#define KEYLIST_SORT_DESC 0x8000 |
46 |
|
47 |
typedef int (CALLBACK *listview_cmp) (LPARAM lParam1, LPARAM lParam2, |
48 |
LPARAM lParamSort); |
49 |
|
50 |
/* Listview column. */ |
51 |
struct listview_column_s { |
52 |
int pos; /* position of the column. */ |
53 |
int width; /* width of the column. */ |
54 |
char *fieldname; /* name of the column. */ |
55 |
}; |
56 |
typedef struct listview_column_s * listview_column_t; |
57 |
|
58 |
/* Listview control context. */ |
59 |
struct listview_ctrl_s { |
60 |
HWND ctrl; /* the actual listview window. */ |
61 |
int cols; /* number of columns. */ |
62 |
int items; /* number of items. */ |
63 |
HIMAGELIST hil; /* Imagelist context. */ |
64 |
}; |
65 |
typedef struct listview_ctrl_s * listview_ctrl_t; |
66 |
|
67 |
int listview_new (listview_ctrl_t *ctx); |
68 |
void listview_release (listview_ctrl_t ctx); |
69 |
int listview_add_column (listview_ctrl_t ctx, listview_column_t col); |
70 |
int listview_add_item_pos (listview_ctrl_t ctx, int pos); |
71 |
int listview_add_item (listview_ctrl_t ctx, const char *text); |
72 |
int listview_add_item2 (listview_ctrl_t ctx, const char * text, void * magic); |
73 |
void listview_add_sub_item (listview_ctrl_t ctx, int pos, int col, |
74 |
const char *text); |
75 |
int listview_count_items (listview_ctrl_t ctx, int curr_sel); |
76 |
int listview_del_item (listview_ctrl_t ctx, int pos); |
77 |
int listview_del_sel_items (listview_ctrl_t ctx); |
78 |
int listview_del_all_items (listview_ctrl_t ctx); |
79 |
int listview_get_item_state (listview_ctrl_t ctx, int pos); |
80 |
void* listview_get_item2 (listview_ctrl_t ctx, int pos); |
81 |
int listview_set_item2 (listview_ctrl_t ctx, int pos, void *magic); |
82 |
int listview_sort_items (listview_ctrl_t ctx, int sortby, |
83 |
listview_cmp sort_cb); |
84 |
int listview_get_curr_pos (listview_ctrl_t ctx); |
85 |
int listview_get_item_text (listview_ctrl_t ctx, int entry, int pos, |
86 |
char *text, int maxbytes); |
87 |
void listview_set_ext_style (listview_ctrl_t ctx); |
88 |
int listview_set_column_order (listview_ctrl_t ctx, int *array); |
89 |
int listview_del_items (listview_ctrl_t ctx); |
90 |
void listview_select_all (listview_ctrl_t ctx); |
91 |
void listview_deselect_all (listview_ctrl_t ctx); |
92 |
void listview_select_one (listview_ctrl_t ctx, int pos); |
93 |
int listview_find (listview_ctrl_t ctx, const char * str); |
94 |
void listview_scroll (listview_ctrl_t ctx, int oldpos, int newpos); |
95 |
int listview_del_column (listview_ctrl_t ctx, int pos); |
96 |
int listview_add_item_image (listview_ctrl_t ctx, const char *text, int image); |
97 |
void listview_set_image_list (listview_ctrl_t ctx, HICON *ico, DWORD nicons); |
98 |
|
99 |
/*-- Image List --*/ |
100 |
extern HIMAGELIST glob_imagelist; |
101 |
|
102 |
int imagelist_load (HWND hwnd); |
103 |
int imagelist_destroy (void); |
104 |
int imagelist_getindex (int icon); |
105 |
|
106 |
#endif /*WPT_COMMONCTL_H*/ |