summaryrefslogtreecommitdiff
path: root/iup/src/iup_dialog.h
blob: a127111c41b762acc5ab497de00bcdb61026f024 (plain)
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
/** \file
 * \brief Dialog Public and Private Declarations
 *
 * See Copyright Notice in "iup.h"
 */
 
#ifndef __IUP_DIALOG_H 
#define __IUP_DIALOG_H

#ifdef __cplusplus
extern "C" {
#endif


/* PUBLIC */

/* Shows the dialog in the given position and disable interaction with other dialogs.
 * The element must be already mapped.
 * Must return IUP_ERROR or IUP_NOERROR.
 * Called only from IupPopup. */
int iupDialogPopup(Ihandle* ih, int x, int y);

/* Shows the dialog in the given position.
 * The dialog must be already mapped.
 * Must return IUP_ERROR or IUP_NOERROR.
 * Called only from IupShow and IupShowXY. */
int iupDialogShowXY(Ihandle* ih, int x, int y);

/* Hides the dialog.
 * Called only from IupHide. */
void iupDialogHide(Ihandle* ih);

/* Returns a unique number to be as child id. */
int iupDialogGetChildId(Ihandle* ih);
char* iupDialogGetChildIdStr(Ihandle* ih);

/* Returns the size of the decoration */
void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu);

/* Returns the native parent. Can be PARENTDIALOG or NATIVEPARENT attributes. Parent must be mapped. */
InativeHandle* iupDialogGetNativeParent(Ihandle* ih);

/* Updates the dialog initial position from internal attributes.
   Used mostly by the native pre-defined dialogs. */
void iupDialogUpdatePosition(Ihandle* ih);


/*********************************************************************/
                        /* PRIVATE */
/*********************************************************************/

#ifdef _IUPDLG_PRIVATE

/* retrieve the decorations size that offsets the window size of the client size. */
void iupDialogGetDecorSize(Ihandle* ih, int *decorwidth, int *decorheight);

struct _IcontrolData 
{
  int show_state,     /* save the state to be used used in SHOW_CB */
      first_show,     /* boolean flag to indicate that the dialog was shown for the first time */
      ignore_resize,  /* flag to ignore the next resize */
      popup_level,    /* popup level of the dialog if IupPopup used */
      child_id,       /* serial number used by child controls */
      cmd_show;       /* parameters for ShowWindow in Windows driver */
  Ihandle* menu;
};


/******************************/
/* Driver dependent functions */
/******************************/

void iupdrvDialogInitClass(Iclass* iclass);

void iupdrvDialogGetPosition(InativeHandle* handle, int *x, int *y);
void iupdrvDialogSetVisible(Ihandle* ih, int visible);
int iupdrvDialogSetPlacement(Ihandle* ih);
void iupdrvDialogSetPosition(Ihandle *ih, int x, int y);
void iupdrvDialogUpdateSize(Ihandle* ih);
void iupdrvDialogGetSize(InativeHandle* handle, int *w, int *h);
int iupdrvDialogIsVisible(Ihandle* ih);

#endif

#ifdef __cplusplus
}
#endif

#endif