00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef GWENHYWFAR_GUI_DIALOG_H
00027 #define GWENHYWFAR_GUI_DIALOG_H
00028
00029
00030 #include <gwenhywfar/inherit.h>
00031 #include <gwenhywfar/list1.h>
00032 #include <gwenhywfar/list2.h>
00033 #include <gwenhywfar/xml.h>
00034 #include <gwenhywfar/db.h>
00035
00036
00037
00047
00048
00049 #ifdef __cplusplus
00050 extern "C" {
00051 #endif
00052
00053
00054 typedef struct GWEN_DIALOG GWEN_DIALOG;
00055 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_DIALOG, GWENHYWFAR_API)
00056 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_DIALOG, GWEN_Dialog, GWENHYWFAR_API)
00057 GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_DIALOG, GWEN_Dialog, GWENHYWFAR_API)
00058
00059
00060 #define GWEN_WIDGET_FLAGS_NONE 0x00000000L
00061 #define GWEN_WIDGET_FLAGS_FILLX 0x80000000L
00062 #define GWEN_WIDGET_FLAGS_FILLY 0x40000000L
00063 #define GWEN_WIDGET_FLAGS_READONLY 0x20000000L
00064 #define GWEN_WIDGET_FLAGS_PASSWORD 0x10000000L
00065 #define GWEN_WIDGET_FLAGS_DEFAULT_WIDGET 0x08000000L
00066
00067 #define GWEN_WIDGET_FLAGS_DECOR_SHRINKABLE 0x04000000L
00068 #define GWEN_WIDGET_FLAGS_DECOR_STRETCHABLE 0x02000000L
00069 #define GWEN_WIDGET_FLAGS_DECOR_MINIMIZE 0x01000000L
00070 #define GWEN_WIDGET_FLAGS_DECOR_MAXIMIZE 0x00800000L
00071 #define GWEN_WIDGET_FLAGS_DECOR_CLOSE 0x00400000L
00072 #define GWEN_WIDGET_FLAGS_DECOR_MENU 0x00200000L
00073
00074 #define GWEN_WIDGET_FLAGS_FIXED_WIDTH 0x00100000L
00075 #define GWEN_WIDGET_FLAGS_FIXED_HEIGHT 0x00080000L
00076 #define GWEN_WIDGET_FLAGS_EQUAL_WIDTH 0x00040000L
00077 #define GWEN_WIDGET_FLAGS_EQUAL_HEIGHT 0x00020000L
00078
00079 #define GWEN_WIDGET_FLAGS_JUSTIFY_LEFT 0x00010000L
00080 #define GWEN_WIDGET_FLAGS_JUSTIFY_RIGHT 0x00008000L
00081 #define GWEN_WIDGET_FLAGS_JUSTIFY_TOP 0x00004000L
00082 #define GWEN_WIDGET_FLAGS_JUSTIFY_BOTTOM 0x00002000L
00083 #define GWEN_WIDGET_FLAGS_JUSTIFY_CENTERX 0x00001000L
00084 #define GWEN_WIDGET_FLAGS_JUSTIFY_CENTERY 0x00000800L
00085
00086 #define GWEN_WIDGET_FLAGS_NO_WORDWRAP 0x00000400L
00087
00088
00089
00090 typedef enum {
00091 GWEN_DialogEvent_TypeInit=0,
00092 GWEN_DialogEvent_TypeFini,
00093 GWEN_DialogEvent_TypeValueChanged,
00094 GWEN_DialogEvent_TypeActivated,
00095 GWEN_DialogEvent_TypeEnabled,
00096 GWEN_DialogEvent_TypeDisabled,
00097 GWEN_DialogEvent_TypeClose,
00098
00099 GWEN_DialogEvent_TypeLast
00100 } GWEN_DIALOG_EVENTTYPE;
00101
00102
00103
00109 enum {
00110 GWEN_DialogEvent_ResultHandled=0,
00111 GWEN_DialogEvent_ResultNotHandled,
00112 GWEN_DialogEvent_ResultAccept,
00113 GWEN_DialogEvent_ResultReject
00114 };
00115
00116
00122 typedef int GWENHYWFAR_CB (*GWEN_DIALOG_SIGNALHANDLER)(GWEN_DIALOG *dlg,
00123 GWEN_DIALOG_EVENTTYPE t,
00124 const char *sender);
00125
00126
00127
00128 GWENHYWFAR_API
00129 GWEN_DIALOG *GWEN_Dialog_new(const char *dialogId);
00130
00131 GWENHYWFAR_API
00132 void GWEN_Dialog_free(GWEN_DIALOG *dlg);
00133
00137 GWENHYWFAR_API
00138 int GWEN_Dialog_ReadXml(GWEN_DIALOG *dlg, GWEN_XMLNODE *node);
00139
00140
00144 GWENHYWFAR_API
00145 int GWEN_Dialog_ReadXmlFile(GWEN_DIALOG *dlg, const char *fname);
00146
00152 GWENHYWFAR_API
00153 const char*GWEN_Dialog_GetId(const GWEN_DIALOG *dlg);
00154
00155
00156 GWENHYWFAR_API
00157 uint32_t GWEN_Dialog_GetGuiId(const GWEN_DIALOG *dlg);
00158
00159
00164 GWENHYWFAR_API
00165 void GWEN_Dialog_AddMediaPath(GWEN_DIALOG *dlg, const char *s);
00166
00167
00179 GWENHYWFAR_API
00180 void GWEN_Dialog_AddMediaPathsFromPathManager(GWEN_DIALOG *dlg,
00181 const char *destlib,
00182 const char *pathName,
00183 const char *relPath);
00184
00185
00194 GWENHYWFAR_API
00195 int GWEN_Dialog_AddSubDialog(GWEN_DIALOG *dlg,
00196 const char *parentWidgetName,
00197 GWEN_DIALOG *subdlg);
00198
00199 GWENHYWFAR_API
00200 int GWEN_Dialog_RemoveWidget(GWEN_DIALOG *dlg, const char *name);
00201
00202
00207 GWENHYWFAR_API
00208 GWEN_DIALOG_SIGNALHANDLER GWEN_Dialog_SetSignalHandler(GWEN_DIALOG *dlg,
00209 GWEN_DIALOG_SIGNALHANDLER fn);
00210
00211
00212
00213
00214
00215 typedef enum {
00216 GWEN_DialogProperty_None=0,
00217
00218 GWEN_DialogProperty_Title,
00219 GWEN_DialogProperty_Value,
00220 GWEN_DialogProperty_MinValue,
00221 GWEN_DialogProperty_MaxValue,
00222 GWEN_DialogProperty_Enabled,
00223 GWEN_DialogProperty_AddValue,
00224 GWEN_DialogProperty_ClearValues,
00225 GWEN_DialogProperty_ValueCount,
00226 GWEN_DialogProperty_ColumnWidth,
00227 GWEN_DialogProperty_Width,
00228 GWEN_DialogProperty_Height,
00229 GWEN_DialogProperty_SelectionMode,
00230 GWEN_DialogProperty_SelectionState,
00231 GWEN_DialogProperty_Focus,
00233 GWEN_DialogProperty_SortDirection,
00234 GWEN_DialogProperty_Sort,
00235 GWEN_DialogProperty_Visibility,
00236 GWEN_DialogProperty_ToolTip,
00237
00238 GWEN_DialogProperty_Unknown=-1
00239 } GWEN_DIALOG_PROPERTY;
00240
00241
00242 typedef enum {
00243 GWEN_Dialog_SelectionMode_None=0,
00244 GWEN_Dialog_SelectionMode_Single,
00245 GWEN_Dialog_SelectionMode_Multi
00246 } GWEN_DIALOG_SELECTION_MODE;
00247
00248
00249 typedef enum {
00250 GWEN_DialogSortDirection_None=0,
00251 GWEN_DialogSortDirection_Up,
00252 GWEN_DialogSortDirection_Down
00253 } GWEN_DIALOG_SORT_DIRECTION;
00254
00255
00264
00283 GWENHYWFAR_API
00284 int GWEN_Dialog_SetIntProperty(GWEN_DIALOG *dlg,
00285 const char *name,
00286 GWEN_DIALOG_PROPERTY prop,
00287 int index,
00288 int value,
00289 int doSignal);
00290
00300 GWENHYWFAR_API
00301 int GWEN_Dialog_GetIntProperty(GWEN_DIALOG *dlg,
00302 const char *name,
00303 GWEN_DIALOG_PROPERTY prop,
00304 int index,
00305 int defaultValue);
00306
00313 GWENHYWFAR_API
00314 int GWEN_Dialog_SetCharProperty(GWEN_DIALOG *dlg,
00315 const char *name,
00316 GWEN_DIALOG_PROPERTY prop,
00317 int index,
00318 const char *value,
00319 int doSignal);
00320
00343 GWENHYWFAR_API
00344 const char *GWEN_Dialog_GetCharProperty(GWEN_DIALOG *dlg,
00345 const char *name,
00346 GWEN_DIALOG_PROPERTY prop,
00347 int index,
00348 const char *defaultValue);
00360 GWENHYWFAR_API
00361 uint32_t GWEN_Dialog_GetWidgetFlags(const GWEN_DIALOG *dlg, const char *name);
00362
00363 GWENHYWFAR_API
00364 void GWEN_Dialog_SetWidgetFlags(GWEN_DIALOG *dlg, const char *name, uint32_t fl);
00365
00366 GWENHYWFAR_API
00367 void GWEN_Dialog_AddWidgetFlags(GWEN_DIALOG *dlg, const char *name, uint32_t fl);
00368
00369 GWENHYWFAR_API
00370 void GWEN_Dialog_SubWidgetFlags(GWEN_DIALOG *dlg, const char *name, uint32_t fl);
00371
00380 GWENHYWFAR_API
00381 int GWEN_Dialog_GetWidgetColumns(const GWEN_DIALOG *dlg, const char *name);
00382
00383
00384
00388 GWENHYWFAR_API
00389 void GWEN_Dialog_SetWidgetColumns(GWEN_DIALOG *dlg, const char *name, int i);
00390
00391
00392
00399 GWENHYWFAR_API
00400 int GWEN_Dialog_GetWidgetRows(const GWEN_DIALOG *dlg, const char *name);
00401
00402
00406 GWENHYWFAR_API
00407 void GWEN_Dialog_SetWidgetRows(GWEN_DIALOG *dlg, const char *name, int i);
00408
00409
00410 GWENHYWFAR_API
00411 const char *GWEN_Dialog_GetWidgetText(const GWEN_DIALOG *dlg, const char *name);
00412
00413 GWENHYWFAR_API
00414 void GWEN_Dialog_SetWidgetText(GWEN_DIALOG *dlg, const char *name, const char *t);
00415
00416
00429 GWENHYWFAR_API
00430 GWEN_DB_NODE *GWEN_Dialog_GetPreferences(const GWEN_DIALOG *dlg);
00431
00440
00444 GWENHYWFAR_API
00445 void GWEN_Dialog_SetI18nDomain(GWEN_DIALOG *dlg, const char *s);
00446
00456 GWENHYWFAR_API
00457 const char *GWEN_Dialog_GetI18nDomain(const GWEN_DIALOG *dlg);
00458
00462 GWENHYWFAR_API
00463 const char *GWEN_Dialog_TranslateString(const GWEN_DIALOG *dlg, const char *s);
00467 #ifdef __cplusplus
00468 }
00469 #endif
00470
00471
00472
00476 #endif