mCtrl  0.10.0
grid.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2010-2015 Martin Mitas
3  *
4  * This library is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation; either version 2.1 of the License, or
7  * (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this library; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 #ifndef MCTRL_GRID_H
20 #define MCTRL_GRID_H
21 
22 #include <mCtrl/_defs.h>
23 #include <mCtrl/_common.h>
24 #include <mCtrl/table.h>
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 
207 
212 BOOL MCTRL_API mcGrid_Initialize(void);
213 
217 void MCTRL_API mcGrid_Terminate(void);
218 
226 
228 #define MC_WC_GRIDW L"mCtrl.grid"
229 
230 #define MC_WC_GRIDA "mCtrl.grid"
231 
239 
241 #define MC_GS_NOTABLECREATE 0x0001
242 
244 #define MC_GS_NOGRIDLINES 0x0002
245 
247 #define MC_GS_DOUBLEBUFFER 0x0004
248 
251 #define MC_GS_OWNERDATA 0x0008
252 
254 #define MC_GS_RESIZABLECOLUMNS 0x0010
255 
256 #define MC_GS_RESIZABLEROWS 0x0020
257 
259 #define MC_GS_FOCUSEDCELL 0x0040
260 
262 #define MC_GS_NOSEL 0x0000
263 
264 #define MC_GS_SINGLESEL 0x0100
265 
266 #define MC_GS_RECTSEL 0x0200
267 
268 #define MC_GS_COMPLEXSEL 0x0300
269 
271 #define MC_GS_SHOWSELALWAYS 0x0400
272 
274 #define MC_GS_COLUMNHEADERNORMAL 0x0000
275 
276 #define MC_GS_COLUMNHEADERNUMBERED 0x1000
277 
278 #define MC_GS_COLUMNHEADERALPHABETIC 0x2000
279 
280 #define MC_GS_COLUMNHEADERNONE 0x3000
281 
282 #define MC_GS_COLUMNHEADERMASK (MC_GS_COLUMNHEADERNORMAL | \
283  MC_GS_COLUMNHEADERNUMBERED | \
284  MC_GS_COLUMNHEADERALPHABETIC | \
285  MC_GS_COLUMNHEADERNONE)
286 
288 #define MC_GS_ROWHEADERNORMAL 0x0000
289 
290 #define MC_GS_ROWHEADERNUMBERED 0x4000
291 
292 #define MC_GS_ROWHEADERALPHABETIC 0x8000
293 
294 #define MC_GS_ROWHEADERNONE 0xC000
295 
296 #define MC_GS_ROWHEADERMASK (MC_GS_ROWHEADERNORMAL | \
297  MC_GS_ROWHEADERNUMBERED | \
298  MC_GS_ROWHEADERALPHABETIC | \
299  MC_GS_ROWHEADERNONE)
300 
309 
311 #define MC_GGF_COLUMNHEADERHEIGHT (1 << 0)
312 
313 #define MC_GGF_ROWHEADERWIDTH (1 << 1)
314 
315 #define MC_GGF_DEFCOLUMNWIDTH (1 << 2)
316 
317 #define MC_GGF_DEFROWHEIGHT (1 << 3)
318 
319 #define MC_GGF_PADDINGHORZ (1 << 4)
320 
321 #define MC_GGF_PADDINGVERT (1 << 5)
322 
331 
333 #define MC_GHT_NOWHERE (1 << 0)
334 
335 #define MC_GHT_ONCOLUMNHEADER (1 << 1)
336 
337 #define MC_GHT_ONROWHEADER (1 << 2)
338 
339 #define MC_GHT_ONHEADER (MC_GHT_ONCOLUMNHEADER | MC_GHT_ONROWHEADER)
340 
341 #define MC_GHT_ONNORMALCELL (1 << 3)
342 
343 #define MC_GHT_ONCELL (MC_GHT_ONHEADER | MC_GHT_ONNORMALCELL)
344 
345 #define MC_GHT_ONCOLUMNDIVIDER (1 << 4)
346 
347 #define MC_GHT_ONROWDIVIDER (1 << 5)
348 
349 #define MC_GHT_ONCOLUMNDIVOPEN (1 << 6)
350 
351 #define MC_GHT_ONROWDIVOPEN (1 << 7)
352 
353 #define MC_GHT_ABOVE (1 << 8)
354 
355 #define MC_GHT_BELOW (1 << 9)
356 
357 #define MC_GHT_TORIGHT (1 << 10)
358 
359 #define MC_GHT_TOLEFT (1 << 11)
360 
368 
376 typedef struct MC_GRECT_tag {
380  WORD wRowFrom;
382  WORD wColumnTo;
384  WORD wRowTo;
385 } MC_GRECT;
386 
391 typedef struct MC_GGEOMETRY_tag {
393  DWORD fMask;
406 } MC_GGEOMETRY;
407 
411 typedef struct MC_GHITTESTINFO_tag {
413  POINT pt;
415  UINT flags;
417  WORD wColumn;
419  WORD wRow;
421 
451 typedef struct MC_GSELECTION_tag {
461 } MC_GSELECTION;
462 
466 typedef struct MC_NMGCACHEHINT_tag {
468  NMHDR hdr;
472  WORD wRowFrom;
474  WORD wColumnTo;
476  WORD wRowTo;
478 
482 typedef struct MC_NMGCUSTOMDRAW_tag {
489  COLORREF clrText;
491  COLORREF clrTextBk;
493 
498 typedef struct MC_NMGDISPINFOW_tag {
500  NMHDR hdr;
502  WORD wColumn;
504  WORD wRow;
508 
513 typedef struct MC_NMGDISPINFOA_tag {
515  NMHDR hdr;
517  WORD wColumn;
519  WORD wRow;
523 
531 typedef struct MC_NMGCOLROWSIZECHANGE_tag {
533  NMHDR hdr;
543 
549 typedef struct MC_NMGFOCUSEDCELLCHANGE_tag {
551  NMHDR hdr;
555  WORD wOldRow;
559  WORD wNewRow;
561 
567 typedef struct MC_NMGSELECTIONCHANGE_tag {
569  NMHDR hdr;
575 
583 
597 #define MC_GM_GETTABLE (MC_GM_FIRST + 0)
598 
612 #define MC_GM_SETTABLE (MC_GM_FIRST + 1)
613 
621 #define MC_GM_GETCOLUMNCOUNT (MC_GM_FIRST + 2)
622 
630 #define MC_GM_GETROWCOUNT (MC_GM_FIRST + 3)
631 
640 #define MC_GM_RESIZE (MC_GM_FIRST + 4)
641 
653 #define MC_GM_CLEAR (MC_GM_FIRST + 5)
654 
664 #define MC_GM_SETCELLW (MC_GM_FIRST + 6)
665 
675 #define MC_GM_SETCELLA (MC_GM_FIRST + 7)
676 
689 #define MC_GM_GETCELLW (MC_GM_FIRST + 8)
690 
703 #define MC_GM_GETCELLA (MC_GM_FIRST + 9)
704 
714 #define MC_GM_SETGEOMETRY (MC_GM_FIRST + 10)
715 
724 #define MC_GM_GETGEOMETRY (MC_GM_FIRST + 11)
725 
743 #define MC_GM_REDRAWCELLS (MC_GM_FIRST + 12)
744 
759 #define MC_GM_SETCOLUMNWIDTH (MC_GM_FIRST + 13)
760 
770 #define MC_GM_GETCOLUMNWIDTH (MC_GM_FIRST + 14)
771 
786 #define MC_GM_SETROWHEIGHT (MC_GM_FIRST + 15)
787 
797 #define MC_GM_GETROWHEIGHT (MC_GM_FIRST + 16)
798 
809 #define MC_GM_HITTEST (MC_GM_FIRST + 17)
810 
818 #define MC_GM_GETCELLRECT (MC_GM_FIRST + 18)
819 
830 #define MC_GM_ENSUREVISIBLE (MC_GM_FIRST + 19)
831 
839 #define MC_GM_SETFOCUSEDCELL (MC_GM_FIRST + 20)
840 
847 #define MC_GM_GETFOCUSEDCELL (MC_GM_FIRST + 21)
848 
856 #define MC_GM_SETSELECTION (MC_GM_FIRST + 22)
857 
888 #define MC_GM_GETSELECTION (MC_GM_FIRST + 23)
889 
897 
933 #define MC_GN_ODCACHEHINT (MC_GN_FIRST + 0)
934 
935 #if 0 /* TODO */
936 #define MC_GN_SETDISPINFOW (MC_GN_FIRST + 1)
937 #define MC_GN_SETDISPINFOA (MC_GN_FIRST + 2)
938 #endif
939 
963 #define MC_GN_GETDISPINFOW (MC_GN_FIRST + 3)
964 
988 #define MC_GN_GETDISPINFOA (MC_GN_FIRST + 4)
989 
999 #define MC_GN_BEGINCOLUMNTRACK (MC_GN_FIRST + 5)
1000 
1010 #define MC_GN_ENDCOLUMNTRACK (MC_GN_FIRST + 6)
1011 
1021 #define MC_GN_BEGINROWTRACK (MC_GN_FIRST + 7)
1022 
1032 #define MC_GN_ENDROWTRACK (MC_GN_FIRST + 8)
1033 
1042 #define MC_GN_COLUMNWIDTHCHANGING (MC_GN_FIRST + 9)
1043 
1052 #define MC_GN_COLUMNWIDTHCHANGED (MC_GN_FIRST + 10)
1053 
1062 #define MC_GN_ROWHEIGHTCHANGING (MC_GN_FIRST + 11)
1063 
1072 #define MC_GN_ROWHEIGHTCHANGED (MC_GN_FIRST + 12)
1073 
1082 #define MC_GN_FOCUSEDCELLCHANGING (MC_GN_FIRST + 13)
1083 
1092 #define MC_GN_FOCUSEDCELLCHANGED (MC_GN_FIRST + 14)
1093 
1102 #define MC_GN_SELECTIONCHANGING (MC_GN_FIRST + 15)
1103 
1112 #define MC_GN_SELECTIONCHANGED (MC_GN_FIRST + 16)
1113 
1121 
1123 #define MC_WC_GRID MCTRL_NAME_AW(MC_WC_GRID)
1124 
1125 #define MC_NMGDISPINFO MCTRL_NAME_AW(MC_NMGDISPINFO)
1126 
1127 #define MC_GM_SETCELL MCTRL_NAME_AW(MC_GM_SETCELL)
1128 
1129 #define MC_GM_GETCELL MCTRL_NAME_AW(MC_GM_GETCELL)
1130 
1131 #define MC_GN_SETDISPINFO MCTRL_NAME_AW(MC_GN_SETDISPINFO)
1132 
1133 #define MC_GN_GETDISPINFO MCTRL_NAME_AW(MC_GN_GETDISPINFO)
1134 
1138 #ifdef __cplusplus
1139 } /* extern "C" */
1140 #endif
1141 
1142 #endif /* MCTRL_GRID_H */
MC_GSELECTION oldSelection
Definition: grid.h:571
Structure describing inner geometry of the grid.
Definition: grid.h:391
#define MCTRL_API
Definition: _defs.h:46
WORD wNewRow
Definition: grid.h:559
NMHDR hdr
Definition: grid.h:533
POINT pt
Definition: grid.h:413
A miscellaneous structure determining a rectangular area in the grid.
Definition: grid.h:376
WORD wColumnTo
Definition: grid.h:474
DWORD fMask
Definition: grid.h:393
COLORREF clrTextBk
Definition: grid.h:491
NMHDR hdr
Definition: grid.h:515
WORD wColumn
Definition: grid.h:417
WORD wRowFrom
Definition: grid.h:472
Structure used by notifications related to focused cell.
Definition: grid.h:549
Structure used by notifications related to selection change.
Definition: grid.h:567
MC_GRECT rcExtents
Definition: grid.h:453
WORD wRowHeaderWidth
Definition: grid.h:397
WORD wRow
Definition: grid.h:419
UINT uDataCount
Definition: grid.h:457
NMHDR hdr
Definition: grid.h:569
WORD wColumn
Definition: grid.h:502
MC_GSELECTION newSelection
Definition: grid.h:573
Structure used by notifications MC_GN_GETDISPINFO and MC_GN_SETDISPINFO (ANSI variant).
Definition: grid.h:513
Structure used by notifications MC_GN_GETDISPINFO and MC_GN_SETDISPINFO (Unicode variant).
Definition: grid.h:498
COLORREF clrText
Definition: grid.h:489
WORD wColumn
Definition: grid.h:517
WORD wColumnTo
Definition: grid.h:382
WORD wDefRowHeight
Definition: grid.h:401
WORD wNewColumn
Definition: grid.h:557
WORD wOldColumn
Definition: grid.h:553
UINT flags
Definition: grid.h:415
WORD wWidthOrHeight
Definition: grid.h:541
WORD wPaddingHorz
Definition: grid.h:403
WORD wColumnFrom
Definition: grid.h:378
WORD wOldRow
Definition: grid.h:555
WORD wPaddingVert
Definition: grid.h:405
Equivalent of NMCUSTOMDRAWINFO from .
Definition: _common.h:108
WORD wRow
Definition: grid.h:519
Structure describing a selection.
Definition: grid.h:451
Structure used by notification MC_GN_ODCACHEHINT.
Definition: grid.h:466
WORD wRowFrom
Definition: grid.h:380
NMHDR hdr
Definition: grid.h:500
Structure used by the standard notification NM_CUSTOMDRAW.
Definition: grid.h:482
Structure for message MC_GM_HITTEST.
Definition: grid.h:411
Structure describing a table cell (ANSI variant).
Definition: table.h:153
NMHDR hdr
Definition: grid.h:551
WORD wRowTo
Definition: grid.h:384
Structure describing a table cell (Unicode variant).
Definition: table.h:131
MC_NMCUSTOMDRAW nmcd
Definition: grid.h:487
MC_TABLECELLA cell
Definition: grid.h:521
WORD wRow
Definition: grid.h:504
BOOL mcGrid_Initialize(void)
MC_GRECT * rcData
Definition: grid.h:460
Table (data model for grid control)
WORD wColumnHeaderHeight
Definition: grid.h:395
WORD wDefColumnWidth
Definition: grid.h:399
MC_TABLECELLW cell
Definition: grid.h:506
Structure used by notifications related to resizing of column and headers.
Definition: grid.h:531
WORD wColumnFrom
Definition: grid.h:470
NMHDR hdr
Definition: grid.h:468
Common definitions.
void mcGrid_Terminate(void)
Common constants and types.
WORD wColumnOrRow
Definition: grid.h:537
WORD wRowTo
Definition: grid.h:476