Dialog filling tweaks.

SVN revision: 24936
This commit is contained in:
Kim Woelders 2006-08-20 13:53:55 +00:00
parent 2db4729fde
commit 28f6c25b08
2 changed files with 36 additions and 22 deletions

View File

@ -222,6 +222,11 @@ static int DialogItemCheckButtonGetState(DItem * di);
static void DialogUpdate(Dialog * d); static void DialogUpdate(Dialog * d);
static void DialogAddFooter(Dialog * d, DItem * parent,
int flags, DialogCallbackFunc * cb);
static void DialogAddHeader(Dialog * d, DItem * parent,
const char *img, const char *txt);
static Ecore_List *dialog_list = NULL; static Ecore_List *dialog_list = NULL;
static char dialog_update_pending = 0; static char dialog_update_pending = 0;
@ -730,17 +735,30 @@ _DialogClose(Dialog * d)
EwinHide(d->ewin); EwinHide(d->ewin);
} }
static void DialogAddHeader(DItem * parent, const char *img,
const char *txt);
static void DialogAddFooter(Dialog * d, int flags,
DialogCallbackFunc * cb);
void void
DialogShowSimple(const DialogDef * dd, void *data) DialogShowSimple(const DialogDef * dd, void *data)
{ {
DialogShowSimpleWithName(dd, dd->name, data); DialogShowSimpleWithName(dd, dd->name, data);
} }
void
DialogFill(Dialog * d, DItem * parent, const DialogDef * dd, void *data)
{
DItem *content;
if (Conf.dialogs.headers && (dd->header_image || dd->header_text))
DialogAddHeader(d, parent, dd->header_image, _(dd->header_text));
content = DialogAddItem(parent, DITEM_TABLE);
if (!content)
return;
dd->fill(d, content, data);
if (dd->func)
DialogAddFooter(d, parent, dd->flags, dd->func);
}
void void
DialogShowSimpleWithName(const DialogDef * dd, const char *name, void *data) DialogShowSimpleWithName(const DialogDef * dd, const char *name, void *data)
{ {
@ -766,17 +784,7 @@ DialogShowSimpleWithName(const DialogDef * dd, const char *name, void *data)
if (!table) if (!table)
return; return;
if (Conf.dialogs.headers && (dd->header_image || dd->header_text)) DialogFill(d, table, dd, data);
DialogAddHeader(table, dd->header_image, _(dd->header_text));
table = DialogAddItem(d->item, DITEM_TABLE);
if (!table)
return;
dd->fill(d, table, data);
if (dd->func)
DialogAddFooter(d, dd->flags, dd->func);
DialogShow(d); DialogShow(d);
} }
@ -932,13 +940,13 @@ DialogAddItem(DItem * dii, int type)
} }
static void static void
DialogAddHeader(DItem * parent, const char *img, const char *txt) DialogAddHeader(Dialog * d __UNUSED__, DItem * parent, const char *img,
const char *txt)
{ {
DItem *table, *di; DItem *table, *di;
/* FIXME - Center table horizontally */ /* FIXME - Center table horizontally */
table = DialogAddItem(parent, DITEM_TABLE); table = DialogAddItem(parent, DITEM_TABLE);
DialogItemSetColSpan(table, 1);
DialogItemTableSetOptions(table, 2, 0, 0, 0); DialogItemTableSetOptions(table, 2, 0, 0, 0);
DialogItemSetAlign(table, 512, 0); DialogItemSetAlign(table, 512, 0);
@ -952,12 +960,16 @@ DialogAddHeader(DItem * parent, const char *img, const char *txt)
} }
static void static void
DialogAddFooter(Dialog * d, int flags, DialogCallbackFunc * cb) DialogAddFooter(Dialog * d, DItem * parent __UNUSED__, int flags,
DialogCallbackFunc * cb)
{ {
DItem *di; DItem *table, *di;
di = DialogAddItem(d->item, DITEM_SEPARATOR); di = DialogAddItem(parent, DITEM_SEPARATOR);
DialogItemSetColSpan(di, d->item->item.table.num_columns);
table = DialogAddItem(parent, DITEM_TABLE);
DialogItemTableSetOptions(table, 1, 0, 0, 0);
DialogItemSetAlign(table, 512, 0);
if (flags & 4) if (flags & 4)
{ {

View File

@ -90,6 +90,8 @@ void DialogItemTableEmpty(DItem * di);
void DialogShowSimple(const DialogDef * dd, void *data); void DialogShowSimple(const DialogDef * dd, void *data);
void DialogShowSimpleWithName(const DialogDef * dd, void DialogShowSimpleWithName(const DialogDef * dd,
const char *name, void *data); const char *name, void *data);
void DialogFill(Dialog * d, DItem * parent, const DialogDef * dd,
void *data);
void DialogAddButton(Dialog * d, const char *text, void DialogAddButton(Dialog * d, const char *text,
DialogCallbackFunc * func, char doclose, DialogCallbackFunc * func, char doclose,