static int Gtk3Gui_WGroupBox_Setup(GWEN_WIDGET *w) { GtkWidget *g; GtkWidget *gContent; const char *s; GWEN_WIDGET *wParent; wParent=GWEN_Widget_Tree_GetParent(w); s=GWEN_Widget_GetText(w, 0); g=gtk_frame_new(s); gContent=gtk_box_new(GTK_ORIENTATION_VERTICAL, GTK3_GUI_DIALOG_DEFAULT_BOX_SPACING); gtk_container_add(GTK_CONTAINER(g), gContent); GWEN_Widget_SetImplData(w, GTK3_DIALOG_WIDGET_REAL, (void*) g); GWEN_Widget_SetImplData(w, GTK3_DIALOG_WIDGET_CONTENT, (void*) gContent); GWEN_Widget_SetSetIntPropertyFn(w, Gtk3Gui_WGroupBox_SetIntProperty); GWEN_Widget_SetGetIntPropertyFn(w, Gtk3Gui_WGroupBox_GetIntProperty); GWEN_Widget_SetSetCharPropertyFn(w, Gtk3Gui_WGroupBox_SetCharProperty); GWEN_Widget_SetGetCharPropertyFn(w, Gtk3Gui_WGroupBox_GetCharProperty); GWEN_Widget_SetAddChildGuiWidgetFn(w, Gtk3Gui_WGroupBox_AddChildGuiWidget); if (wParent) GWEN_Widget_AddChildGuiWidget(wParent, w); return 0; }
const char *getCharProperty(GWEN_DIALOG_PROPERTY prop, int index, const char *defaultValue) { QWidget *qw; QString str; qw=(QWidget*) GWEN_Widget_GetImplData(_widget, QT4_DIALOG_WIDGET_REAL); assert(qw); switch(prop) { case GWEN_DialogProperty_Title: str=qw->windowTitle(); if (str.isEmpty()) return defaultValue; else { GWEN_Widget_SetText(_widget, QT4_DIALOG_STRING_TITLE, str.toUtf8()); return GWEN_Widget_GetText(_widget, QT4_DIALOG_STRING_TITLE); } break; default: break; } DBG_WARN(GWEN_LOGDOMAIN, "Function is not appropriate for this type of widget (%s)", GWEN_Widget_Type_toString(GWEN_Widget_GetType(_widget))); return defaultValue; };
int addChildGuiWidget(GWEN_WIDGET *wChild) { QTabWidget *qw; QWidget *qChild; const char *s; QString text; qw=(QTabWidget*) GWEN_Widget_GetImplData(_widget, QT4_DIALOG_WIDGET_REAL); assert(qw); if (GWEN_Widget_GetType(wChild)!=GWEN_Widget_TypeTabPage) { DBG_ERROR(GWEN_LOGDOMAIN, "You can only add TabPages to a TabBook"); return GWEN_ERROR_INVALID; } qChild=getQWidget(wChild); assert(qChild); s=GWEN_Widget_GetText(wChild, 0); if (s) text=QString::fromUtf8(s); qw->addTab(qChild, text); return 0; }
int Gtk2Gui_WTextEdit_Setup(GWEN_WIDGET *w) { GtkWidget *g; const char *s; uint32_t flags; GWEN_WIDGET *wParent; gulong changed_handler_id; flags=GWEN_Widget_GetFlags(w); wParent=GWEN_Widget_Tree_GetParent(w); s=GWEN_Widget_GetText(w, 0); /* create widget */ g=gtk_text_view_new(); if (s && *s) gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(g)), s, -1); GWEN_Widget_SetImplData(w, GTK2_DIALOG_WIDGET_REAL, (void *) g); GWEN_Widget_SetImplData(w, GTK2_DIALOG_WIDGET_CONTENT, (void *) g); GWEN_Widget_SetSetIntPropertyFn(w, Gtk2Gui_WTextEdit_SetIntProperty); GWEN_Widget_SetGetIntPropertyFn(w, Gtk2Gui_WTextEdit_GetIntProperty); GWEN_Widget_SetSetCharPropertyFn(w, Gtk2Gui_WTextEdit_SetCharProperty); GWEN_Widget_SetGetCharPropertyFn(w, Gtk2Gui_WTextEdit_GetCharProperty); changed_handler_id=g_signal_connect(gtk_text_view_get_buffer(GTK_TEXT_VIEW(g)), "changed", G_CALLBACK(Gtk2Gui_WTextEdit_Changed_handler), w); if (wParent) GWEN_Widget_AddChildGuiWidget(wParent, w); return 0; }
static int Gtk3Gui_WLabel_Setup(GWEN_WIDGET *w) { GtkWidget *g; const char *s; GWEN_WIDGET *wParent; GWEN_BUFFER *tbuf; wParent=GWEN_Widget_Tree_GetParent(w); s=GWEN_Widget_GetText(w, 0); tbuf=GWEN_Buffer_new(0, 128, 0, 1); if (s && *s) Gtk3Gui_GetRawText(s, tbuf); g=gtk_label_new(GWEN_Buffer_GetStart(tbuf)); GWEN_Buffer_free(tbuf); GWEN_Widget_SetImplData(w, GTK3_DIALOG_WIDGET_REAL, (void*) g); GWEN_Widget_SetImplData(w, GTK3_DIALOG_WIDGET_CONTENT, (void*) g); GWEN_Widget_SetSetIntPropertyFn(w, Gtk3Gui_WLabel_SetIntProperty); GWEN_Widget_SetGetIntPropertyFn(w, Gtk3Gui_WLabel_GetIntProperty); GWEN_Widget_SetSetCharPropertyFn(w, Gtk3Gui_WLabel_SetCharProperty); GWEN_Widget_SetGetCharPropertyFn(w, Gtk3Gui_WLabel_GetCharProperty); if (wParent) GWEN_Widget_AddChildGuiWidget(wParent, w); return 0; }
virtual int setup() { QLabel *qw; uint32_t flags; GWEN_WIDGET *wParent; QSizePolicy::Policy hpolicy=QSizePolicy::Minimum; QSizePolicy::Policy vpolicy=QSizePolicy::Minimum; const char *s; QString text; flags=GWEN_Widget_GetFlags(_widget); wParent=GWEN_Widget_Tree_GetParent(_widget); s=GWEN_Widget_GetText(_widget, 0); if (s) text=QT4_Gui::extractHtml(s); qw=new QLabel(text); qw->setWordWrap(true); /* handle flags */ if (flags & GWEN_WIDGET_FLAGS_FILLX) hpolicy=QSizePolicy::Expanding; if (flags & GWEN_WIDGET_FLAGS_FILLY) vpolicy=QSizePolicy::Expanding; qw->setSizePolicy(hpolicy, vpolicy); GWEN_Widget_SetImplData(_widget, QT4_DIALOG_WIDGET_REAL, (void*) qw); if (wParent) GWEN_Widget_AddChildGuiWidget(wParent, _widget); return 0; }
static GWENHYWFAR_CB int Gtk2Gui_WTabBook_AddChildGuiWidget(GWEN_WIDGET *w, GWEN_WIDGET *wChild) { GtkWidget *g; GtkWidget *gChild; const char *s; g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL)); assert(g); gChild=GTK_WIDGET(GWEN_Widget_GetImplData(wChild, GTK2_DIALOG_WIDGET_REAL)); assert(gChild); s=GWEN_Widget_GetText(wChild, 0); gtk_notebook_append_page(GTK_NOTEBOOK(g), gChild, (s && *s)?gtk_label_new(s):NULL); return 0; }
static int Gtk3Gui_WLineEdit_Setup(GWEN_WIDGET *w) { GtkWidget *g; const char *s; uint32_t flags; GWEN_WIDGET *wParent; gulong deleted_text_handler_id; gulong inserted_text_handler_id; gboolean text_is_visible; flags=GWEN_Widget_GetFlags(w); text_is_visible = (flags & GWEN_WIDGET_FLAGS_PASSWORD) == 0; wParent=GWEN_Widget_Tree_GetParent(w); s=GWEN_Widget_GetText(w, 0); /* create widget */ g=gtk_entry_new(); if (s && *s) gtk_entry_set_text(GTK_ENTRY(g), s); gtk_entry_set_visibility(GTK_ENTRY(g), text_is_visible); GWEN_Widget_SetImplData(w, GTK3_DIALOG_WIDGET_REAL, (void*) g); GWEN_Widget_SetImplData(w, GTK3_DIALOG_WIDGET_CONTENT, (void*) g); GWEN_Widget_SetSetIntPropertyFn(w, Gtk3Gui_WLineEdit_SetIntProperty); GWEN_Widget_SetGetIntPropertyFn(w, Gtk3Gui_WLineEdit_GetIntProperty); GWEN_Widget_SetSetCharPropertyFn(w, Gtk3Gui_WLineEdit_SetCharProperty); GWEN_Widget_SetGetCharPropertyFn(w, Gtk3Gui_WLineEdit_GetCharProperty); deleted_text_handler_id=g_signal_connect(gtk_entry_get_buffer(GTK_ENTRY(g)), "deleted-text", G_CALLBACK (Gtk3Gui_WLineEdit_Deleted_text_handler), w); inserted_text_handler_id=g_signal_connect(gtk_entry_get_buffer(GTK_ENTRY(g)), "inserted-text", G_CALLBACK (Gtk3Gui_WLineEdit_Inserted_text_handler), w); if (wParent) GWEN_Widget_AddChildGuiWidget(wParent, w); return 0; }
static GWENHYWFAR_CB const char *Gtk2Gui_WTextEdit_GetCharProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, const char *defaultValue) { GtkWidget *g; g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL)); assert(g); switch (prop) { case GWEN_DialogProperty_Value: { GtkTextBuffer *tb; GtkTextIter startIter; GtkTextIter endIter; gchar *s; tb=gtk_text_view_get_buffer(GTK_TEXT_VIEW(g)); assert(tb); gtk_text_buffer_get_start_iter(tb, &startIter); gtk_text_buffer_get_end_iter(tb, &endIter); s=gtk_text_buffer_get_text(tb, &startIter, &endIter, FALSE); if (s) { GWEN_Widget_SetText(w, GTK2_DIALOG_STRING_VALUE, s); g_free(s); return GWEN_Widget_GetText(w, GTK2_DIALOG_STRING_VALUE); } return defaultValue; } default: break; } DBG_WARN(GWEN_LOGDOMAIN, "Function is not appropriate for this type of widget (%s)", GWEN_Widget_Type_toString(GWEN_Widget_GetType(w))); return defaultValue; }
virtual int setup() { QTextEdit *qw; uint32_t flags; GWEN_WIDGET *wParent; QSizePolicy::Policy hpolicy=QSizePolicy::Minimum; QSizePolicy::Policy vpolicy=QSizePolicy::Minimum; const char *s; QString text; QT4_GuiDialog *qtDialog; flags=GWEN_Widget_GetFlags(_widget); wParent=GWEN_Widget_Tree_GetParent(_widget); s=GWEN_Widget_GetText(_widget, 0); if (s) text=QString::fromUtf8(s); qw=new QTextEdit(text); /* handle flags */ if (flags & GWEN_WIDGET_FLAGS_FILLX) hpolicy=QSizePolicy::Expanding; if (flags & GWEN_WIDGET_FLAGS_FILLY) vpolicy=QSizePolicy::Expanding; qw->setSizePolicy(hpolicy, vpolicy); GWEN_Widget_SetImplData(_widget, QT4_DIALOG_WIDGET_REAL, (void*) qw); qtDialog=dynamic_cast<QT4_GuiDialog*>(getDialog()); assert(qtDialog); qw->connect(qw, SIGNAL(returnPressed()), qtDialog->getMainWindow(), SLOT(slotActivated())); if (wParent) GWEN_Widget_AddChildGuiWidget(wParent, _widget); return 0; }