15#include "gtk2_gui_dialog_p.h"
18#include <gwenhywfar/inherit.h>
19#include <gwenhywfar/debug.h>
20#include <gwenhywfar/gui_be.h>
21#include <gwenhywfar/i18n.h>
23#include <gwenhywfar/text.h>
24#include <gwenhywfar/mdigest.h>
25#include <gwenhywfar/debug.h>
26#include <gwenhywfar/directory.h>
31#define I18N(msg) GWEN_I18N_Translate(PACKAGE, msg)
34#define GTK2_DIALOG_WIDGET_REAL 0
35#define GTK2_DIALOG_WIDGET_CONTENT 1
36#define GTK2_DIALOG_WIDGET_DATA 2
38#define GTK2_DIALOG_STRING_TITLE 0
39#define GTK2_DIALOG_STRING_VALUE 1
75 GTK2_GUI_DIALOG *xdlg;
92 GTK2_GUI_DIALOG *xdlg;
111 GTK2_GUI_DIALOG *xdlg;
113 xdlg=(GTK2_GUI_DIALOG *) p;
115 if (xdlg->mainWidget)
116 gtk_widget_destroy(xdlg->mainWidget);
125 GTK2_GUI_DIALOG *xdlg;
131 return xdlg->mainWidget;
175 const char *defaultValue)
184 GTK2_GUI_DIALOG *xdlg;
185 GWEN_WIDGET_TREE *wtree;
200 w=GWEN_Widget_Tree_GetFirst(wtree);
213 gtk_window_set_type_hint(GTK_WINDOW(gw), GDK_WINDOW_TYPE_HINT_DIALOG);
214 gtk_window_set_position(GTK_WINDOW(gw), GTK_WIN_POS_CENTER_ON_PARENT);
216 xdlg->mainWidget=GTK_WIDGET(gw);
218 tll=gtk_window_list_toplevels();
221 GtkWindow *topLevel=
NULL;
223 for (element = tll; element; element = g_list_next(element)) {
224 GtkWindow *win = GTK_WINDOW(element->data);
225 if (gtk_window_is_active(win)) {
234 gtk_window_get_title(topLevel));
235 gtk_window_set_transient_for(gw, topLevel);
249 GTK2_GUI_DIALOG *xdlg;
260 xdlg->response=result;
261 if (g_main_loop_is_running(xdlg->loop))
262 g_main_loop_quit(xdlg->loop);
270 GTK2_GUI_DIALOG *xdlg;
287 GTK2_GUI_DIALOG *xdlg;
303 GTK2_GUI_DIALOG *xdlg;
317 GTK2_GUI_DIALOG *xdlg;
331 xdlg->unmap_handler =
337 xdlg->delete_handler =
343 xdlg->destroy_handler =
349 xdlg->loop=g_main_loop_new(
NULL, FALSE);
351 g_main_loop_run(xdlg->loop);
355 ctx=g_main_loop_get_context(xdlg->loop);
356 while (g_main_context_pending(ctx))
357 g_main_context_iteration(ctx, FALSE);
359 g_main_loop_unref(xdlg->loop);
361 if (!xdlg->destroyed) {
362 g_signal_handler_disconnect(g, xdlg->unmap_handler);
363 g_signal_handler_disconnect(g, xdlg->delete_handler);
364 g_signal_handler_disconnect(g, xdlg->destroy_handler);
367 return xdlg->response;
465 wChild=GWEN_Widget_Tree_GetFirstChild(w);
473 wChild=GWEN_Widget_Tree_GetNext(wChild);
493 while ((p=strchr(p,
'<'))) {
498 if (toupper(*t)==
'H') {
500 if (toupper(*t)==
'T') {
502 if (toupper(*t)==
'M') {
504 if (toupper(*t)==
'L') {
506 if (toupper(*t)==
'>') {
520 while ((p2=strchr(p2,
'<'))) {
525 if (toupper(*t)==
'/') {
527 if (toupper(*t)==
'H') {
529 if (toupper(*t)==
'T') {
531 if (toupper(*t)==
'M') {
533 if (toupper(*t)==
'L') {
535 if (toupper(*t)==
'>') {
int GWEN_Buffer_AppendBytes(GWEN_BUFFER *bf, const char *buffer, uint32_t size)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
#define DBG_INFO(dbg_logger, format,...)
#define DBG_NOTICE(dbg_logger, format,...)
#define DBG_ERROR(dbg_logger, format,...)
GWEN_WIDGET_TREE * GWEN_Dialog_GetWidgets(const GWEN_DIALOG *dlg)
GWEN_DIALOG_GETINTPROPERTY_FN GWEN_Dialog_SetGetIntPropertyFn(GWEN_DIALOG *dlg, GWEN_DIALOG_GETINTPROPERTY_FN fn)
GWEN_DIALOG * GWEN_Dialog_GetParentDialog(const GWEN_DIALOG *dlg)
GWEN_DIALOG_SETINTPROPERTY_FN GWEN_Dialog_SetSetIntPropertyFn(GWEN_DIALOG *dlg, GWEN_DIALOG_SETINTPROPERTY_FN fn)
GWEN_DIALOG_GETCHARPROPERTY_FN GWEN_Dialog_SetGetCharPropertyFn(GWEN_DIALOG *dlg, GWEN_DIALOG_GETCHARPROPERTY_FN fn)
GWEN_DIALOG_SETCHARPROPERTY_FN GWEN_Dialog_SetSetCharPropertyFn(GWEN_DIALOG *dlg, GWEN_DIALOG_SETCHARPROPERTY_FN fn)
#define GWEN_WIDGET_FLAGS_FILLY
#define GWEN_WIDGET_FLAGS_FILLX
struct GWEN_DIALOG GWEN_DIALOG
#define GWEN_ERROR_INVALID
#define GWEN_ERROR_NOT_FOUND
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
int Gtk2Gui_WCheckBox_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WComboBox_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WDialog_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WGridLayout_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WGroupBox_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WHLayout_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WHLine_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WHSpacer_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WLabel_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WLineEdit_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WListBox_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WProgressBar_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WSpinBox_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WStack_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WTabBook_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WTextBrowser_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WTextEdit_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WVLayout_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WVLine_Setup(GWEN_WIDGET *w)
int Gtk2Gui_WVSpacer_Setup(GWEN_WIDGET *w)
int Gtk2Gui_Dialog_SetupTree(GWEN_WIDGET *w)
GWENHYWFAR_CB const char * Gtk2Gui_Dialog_GetCharProperty(GWEN_UNUSED GWEN_DIALOG *dlg, GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, const char *defaultValue)
#define GTK2_DIALOG_WIDGET_REAL
int Gtk2Gui_GetRawText(const char *text, GWEN_BUFFER *tbuf)
static void run_destroy_handler(GWEN_UNUSED GtkWindow *window, gpointer data)
void Gtk2Gui_Dialog_Unextend(GWEN_DIALOG *dlg)
GtkWidget * Gtk2Gui_Dialog_GetMainWidget(const GWEN_DIALOG *dlg)
int GTK2_Gui_Dialog_Run(GWEN_DIALOG *dlg, int untilEnd)
GWENHYWFAR_CB int Gtk2Gui_Dialog_SetIntProperty(GWEN_UNUSED GWEN_DIALOG *dlg, GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int value, int doSignal)
GWENHYWFAR_CB int Gtk2Gui_Dialog_GetIntProperty(GWEN_UNUSED GWEN_DIALOG *dlg, GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int defaultValue)
static void run_unmap_handler(GWEN_UNUSED GtkWindow *window, gpointer data)
static gint run_delete_handler(GWEN_UNUSED GtkWindow *window, GWEN_UNUSED GdkEventAny *event, gpointer data)
void Gtk2Gui_Dialog_Extend(GWEN_DIALOG *dlg)
int Gtk2Gui_Dialog_Setup(GWEN_DIALOG *dlg, GWEN_UNUSED GtkWidget *parentWindow)
void Gtk2Gui_Dialog_Leave(GWEN_DIALOG *dlg, int result)
GWENHYWFAR_CB int Gtk2Gui_Dialog_SetCharProperty(GWEN_UNUSED GWEN_DIALOG *dlg, GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, const char *value, int doSignal)
void GWENHYWFAR_CB Gtk2Gui_Dialog_FreeData(GWEN_UNUSED void *bp, void *p)
#define GWEN_INHERIT_UNLINK(bt, t, element)
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
#define GWEN_INHERIT(bt, t)
#define GWEN_INHERIT_GETDATA(bt, t, element)
#define GWEN_FREE_OBJECT(varname)
#define GWEN_NEW_OBJECT(typ, varname)