15#include "gtk3_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 GTK3_DIALOG_WIDGET_REAL 0
35#define GTK3_DIALOG_WIDGET_CONTENT 1
36#define GTK3_DIALOG_WIDGET_DATA 2
38#define GTK3_DIALOG_STRING_TITLE 0
39#define GTK3_DIALOG_STRING_VALUE 1
77 GTK3_GUI_DIALOG *xdlg;
94 GTK3_GUI_DIALOG *xdlg;
113 GTK3_GUI_DIALOG *xdlg;
115 xdlg=(GTK3_GUI_DIALOG *) p;
117 if (xdlg->mainWidget)
118 gtk_widget_destroy(xdlg->mainWidget);
127 GTK3_GUI_DIALOG *xdlg;
133 return xdlg->mainWidget;
177 const char *defaultValue)
186 GTK3_GUI_DIALOG *xdlg;
187 GWEN_WIDGET_TREE *wtree;
202 w=GWEN_Widget_Tree_GetFirst(wtree);
215 gtk_window_set_type_hint(GTK_WINDOW(gw), GDK_WINDOW_TYPE_HINT_DIALOG);
216 gtk_window_set_position(GTK_WINDOW(gw), GTK_WIN_POS_CENTER_ON_PARENT);
218 xdlg->mainWidget=GTK_WIDGET(gw);
220 tll=gtk_window_list_toplevels();
223 GtkWindow *topLevel=
NULL;
225 for (element = tll; element; element = g_list_next(element)) {
226 GtkWindow *win = GTK_WINDOW(element->data);
227 if (gtk_window_is_active(win)) {
236 gtk_window_get_title(topLevel));
237 gtk_window_set_transient_for(gw, topLevel);
251 GTK3_GUI_DIALOG *xdlg;
262 xdlg->response=result;
263 if (g_main_loop_is_running(xdlg->loop))
264 g_main_loop_quit(xdlg->loop);
272 GTK3_GUI_DIALOG *xdlg;
289 GTK3_GUI_DIALOG *xdlg;
305 GTK3_GUI_DIALOG *xdlg;
319 GTK3_GUI_DIALOG *xdlg;
333 xdlg->unmap_handler =
339 xdlg->delete_handler =
345 xdlg->destroy_handler =
351 xdlg->loop=g_main_loop_new(
NULL, FALSE);
353 g_main_loop_run(xdlg->loop);
357 ctx=g_main_loop_get_context(xdlg->loop);
358 while (g_main_context_pending(ctx))
359 g_main_context_iteration(ctx, FALSE);
361 g_main_loop_unref(xdlg->loop);
363 if (!xdlg->destroyed) {
364 g_signal_handler_disconnect(g, xdlg->unmap_handler);
365 g_signal_handler_disconnect(g, xdlg->delete_handler);
366 g_signal_handler_disconnect(g, xdlg->destroy_handler);
369 return xdlg->response;
473 wChild=GWEN_Widget_Tree_GetFirstChild(w);
481 wChild=GWEN_Widget_Tree_GetNext(wChild);
501 while ((p=strchr(p,
'<'))) {
506 if (toupper(*t)==
'H') {
508 if (toupper(*t)==
'T') {
510 if (toupper(*t)==
'M') {
512 if (toupper(*t)==
'L') {
514 if (toupper(*t)==
'>') {
528 while ((p2=strchr(p2,
'<'))) {
533 if (toupper(*t)==
'/') {
535 if (toupper(*t)==
'H') {
537 if (toupper(*t)==
'T') {
539 if (toupper(*t)==
'M') {
541 if (toupper(*t)==
'L') {
543 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.
static void run_destroy_handler(GWEN_UNUSED GtkWindow *window, gpointer data)
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)
int Gtk3Gui_WCheckBox_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WComboBox_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WDialog_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WGridLayout_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WGroupBox_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WHLayout_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WHLine_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WHSpacer_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WLabel_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WLineEdit_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WListBox_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WProgressBar_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WSpinBox_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WStack_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WTabBook_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WTextBrowser_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WTextEdit_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WVLayout_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WVLine_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WVSpacer_Setup(GWEN_WIDGET *w)
void Gtk3Gui_Dialog_Unextend(GWEN_DIALOG *dlg)
void GWENHYWFAR_CB Gtk3Gui_Dialog_FreeData(GWEN_UNUSED void *bp, void *p)
GWENHYWFAR_CB int Gtk3Gui_Dialog_SetIntProperty(GWEN_UNUSED GWEN_DIALOG *dlg, GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int value, int doSignal)
int GTK3_Gui_Dialog_Run(GWEN_DIALOG *dlg, int untilEnd)
static void run_destroy_handler(GWEN_UNUSED GtkWindow *window, gpointer data)
GWENHYWFAR_CB const char * Gtk3Gui_Dialog_GetCharProperty(GWEN_UNUSED GWEN_DIALOG *dlg, GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, const char *defaultValue)
GWENHYWFAR_CB int Gtk3Gui_Dialog_GetIntProperty(GWEN_UNUSED GWEN_DIALOG *dlg, GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int defaultValue)
int Gtk3Gui_Dialog_Setup(GWEN_DIALOG *dlg, GWEN_UNUSED GtkWidget *parentWindow)
int Gtk3Gui_Dialog_SetupTree(GWEN_WIDGET *w)
#define GTK3_DIALOG_WIDGET_REAL
void Gtk3Gui_Dialog_Extend(GWEN_DIALOG *dlg)
GtkWidget * Gtk3Gui_Dialog_GetMainWidget(const GWEN_DIALOG *dlg)
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 Gtk3Gui_ApplyFlags(GtkWidget *g, uint32_t flags)
int Gtk3Gui_GetRawText(const char *text, GWEN_BUFFER *tbuf)
void Gtk3Gui_Dialog_Leave(GWEN_DIALOG *dlg, int result)
GWENHYWFAR_CB int Gtk3Gui_Dialog_SetCharProperty(GWEN_UNUSED GWEN_DIALOG *dlg, GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, const char *value, int doSignal)
#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)
int Gtk3Gui_WHSplitter_Setup(GWEN_WIDGET *w)
int Gtk3Gui_WVSplitter_Setup(GWEN_WIDGET *w)