slightly more errr... mature things for packing... working on it..
all oo... :) SVN revision: 4356
This commit is contained in:
parent
f7b571fb1b
commit
bc5be0a810
20
src/e.h
20
src/e.h
|
@ -555,6 +555,7 @@ struct _E_Entry
|
|||
int focused;
|
||||
int scroll_pos;
|
||||
int x, y, w, h;
|
||||
int min_size;
|
||||
Ebits_Object obj_base;
|
||||
Ebits_Object obj_cursor;
|
||||
Ebits_Object obj_selection;
|
||||
|
@ -590,8 +591,20 @@ struct _E_Pack_Object_Class
|
|||
void (*resize) (void *object, int w, int h);
|
||||
void (*min) (void *object, int *w, int *h);
|
||||
void (*max) (void *object, int *w, int *h);
|
||||
void (*size) (void *object, int x, int y);
|
||||
};
|
||||
|
||||
#define PACK_HBOX 0
|
||||
#define PACK_VBOX 1
|
||||
#define PACK_TABLE 2
|
||||
#define PACK_ENTRY 3
|
||||
#define PACK_LABEL 4
|
||||
#define PACK_BUTTON 5
|
||||
#define PACK_RADIO 6
|
||||
#define PACK_CHECK 7
|
||||
|
||||
#define PACK_MAX 8
|
||||
|
||||
struct _E_Pack_Object
|
||||
{
|
||||
int type;
|
||||
|
@ -610,7 +623,7 @@ struct _E_Pack_Object
|
|||
};
|
||||
|
||||
#define DO(_object, _method, _args...) \
|
||||
{ if (_object->class._method) _object->class._method(_object, ## _args); }
|
||||
{ if (_object->class._method) _object->class._method(_object->data.object, ## _args); }
|
||||
|
||||
void e_entry_init(void);
|
||||
void e_entry_free(E_Entry *entry);
|
||||
|
@ -619,12 +632,17 @@ void e_entry_handle_keypress(E_Entry *entry, Ev_Key_Down *e);
|
|||
void e_entry_set_evas(E_Entry *entry, Evas evas);
|
||||
void e_entry_show(E_Entry *entry);
|
||||
void e_entry_hide(E_Entry *entry);
|
||||
void e_entry_raise(E_Entry *entry);
|
||||
void e_entry_lower(E_Entry *entry);
|
||||
void e_entry_set_layer(E_Entry *entry, int l);
|
||||
void e_entry_set_clip(E_Entry *entry, Evas_Object clip);
|
||||
void e_entry_unset_clip(E_Entry *entry);
|
||||
void e_entry_move(E_Entry *entry, int x, int y);
|
||||
void e_entry_resize(E_Entry *entry, int w, int h);
|
||||
void e_entry_query_max_size(E_Entry *entry, int *w, int *h);
|
||||
void e_entry_max_size(E_Entry *entry, int *w, int *h);
|
||||
void e_entry_min_size(E_Entry *entry, int *w, int *h);
|
||||
void e_entry_set_size(E_Entry *entry, int w, int h);
|
||||
void e_entry_set_focus(E_Entry *entry, int focused);
|
||||
void e_entry_set_text(E_Entry *entry, const char *text);
|
||||
const char *e_entry_get_text(E_Entry *entry);
|
||||
|
|
67
src/entry.c
67
src/entry.c
|
@ -531,6 +531,28 @@ e_entry_hide(E_Entry *entry)
|
|||
evas_hide(entry->evas, entry->text);
|
||||
}
|
||||
|
||||
void
|
||||
e_entry_raise(E_Entry *entry)
|
||||
{
|
||||
if (entry->obj_base) ebits_raise(entry->obj_base);
|
||||
evas_raise(entry->evas, entry->clip_box);
|
||||
evas_raise(entry->evas, entry->text);
|
||||
if (entry->obj_selection) ebits_raise(entry->obj_selection);
|
||||
if (entry->obj_cursor) ebits_raise(entry->obj_cursor);
|
||||
evas_raise(entry->evas, entry->event_box);
|
||||
}
|
||||
|
||||
void
|
||||
e_entry_lower(E_Entry *entry)
|
||||
{
|
||||
evas_lower(entry->evas, entry->event_box);
|
||||
if (entry->obj_cursor) ebits_lower(entry->obj_cursor);
|
||||
if (entry->obj_selection) ebits_lower(entry->obj_selection);
|
||||
evas_lower(entry->evas, entry->text);
|
||||
evas_lower(entry->evas, entry->clip_box);
|
||||
if (entry->obj_base) ebits_lower(entry->obj_base);
|
||||
}
|
||||
|
||||
void
|
||||
e_entry_set_layer(E_Entry *entry, int l)
|
||||
{
|
||||
|
@ -589,6 +611,51 @@ e_entry_query_max_size(E_Entry *entry, int *w, int *h)
|
|||
if (h) *h = evas_get_text_height(entry->evas, entry->text) + p1t + p1b + p2t + p2b;
|
||||
}
|
||||
|
||||
void
|
||||
e_entry_max_size(E_Entry *entry, int *w, int *h)
|
||||
{
|
||||
int p1l, p1r, p1t, p1b;
|
||||
int p2l, p2r, p2t, p2b;
|
||||
|
||||
p1l = p1r = p1t = p1b = 0;
|
||||
if (entry->obj_base) ebits_get_insets(entry->obj_base, &p1l, &p1r, &p1t, &p1b);
|
||||
p2l = p2r = p2t = p2b = 0;
|
||||
if (entry->obj_cursor) ebits_get_insets(entry->obj_cursor, &p2l, &p2r, &p2t, &p2b);
|
||||
if (w) *w = 8000;
|
||||
if (h) *h = evas_get_text_height(entry->evas, entry->text) + p1t + p1b + p2t + p2b;
|
||||
}
|
||||
|
||||
void
|
||||
e_entry_min_size(E_Entry *entry, int *w, int *h)
|
||||
{
|
||||
int p1l, p1r, p1t, p1b;
|
||||
int p2l, p2r, p2t, p2b;
|
||||
|
||||
p1l = p1r = p1t = p1b = 0;
|
||||
if (entry->obj_base) ebits_get_insets(entry->obj_base, &p1l, &p1r, &p1t, &p1b);
|
||||
p2l = p2r = p2t = p2b = 0;
|
||||
if (entry->obj_cursor) ebits_get_insets(entry->obj_cursor, &p2l, &p2r, &p2t, &p2b);
|
||||
if (w) *w = p1l + p1r + p2l + p2r + entry->min_size;
|
||||
if (h) *h = evas_get_text_height(entry->evas, entry->text) + p1t + p1b + p2t + p2b;
|
||||
}
|
||||
|
||||
void
|
||||
e_entry_set_size(E_Entry *entry, int w, int h)
|
||||
{
|
||||
int p1l, p1r, p1t, p1b;
|
||||
int p2l, p2r, p2t, p2b;
|
||||
|
||||
p1l = p1r = p1t = p1b = 0;
|
||||
if (entry->obj_base) ebits_get_insets(entry->obj_base, &p1l, &p1r, &p1t, &p1b);
|
||||
p2l = p2r = p2t = p2b = 0;
|
||||
if (entry->obj_cursor) ebits_get_insets(entry->obj_cursor, &p2l, &p2r, &p2t, &p2b);
|
||||
if (p1l + p1r + p2l + p2r + w > entry->w)
|
||||
{
|
||||
entry->min_size = w;
|
||||
e_entry_configure(entry);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
e_entry_set_focus(E_Entry *entry, int focused)
|
||||
{
|
||||
|
|
|
@ -47,6 +47,7 @@ main(int argc, char **argv)
|
|||
e_event_filter_init();
|
||||
e_ev_x_init();
|
||||
|
||||
e_pack_object_init();
|
||||
e_fs_init();
|
||||
e_desktops_init();
|
||||
e_border_init();
|
||||
|
|
22
src/pack.c
22
src/pack.c
|
@ -1,10 +1,29 @@
|
|||
#include "e.h"
|
||||
|
||||
E_Pack_Object_Class classes[1];
|
||||
E_Pack_Object_Class classes[PACK_MAX];
|
||||
|
||||
void
|
||||
e_pack_object_init(void)
|
||||
{
|
||||
ZERO(classes, E_Pack_Object_Class, PACK_MAX);
|
||||
classes[PACK_ENTRY] = (E_Pack_Object_Class)
|
||||
{
|
||||
e_entry_new,
|
||||
e_entry_free,
|
||||
e_entry_show,
|
||||
e_entry_hide,
|
||||
e_entry_raise,
|
||||
e_entry_lower,
|
||||
e_entry_set_layer,
|
||||
e_entry_set_evas,
|
||||
e_entry_set_clip,
|
||||
e_entry_unset_clip,
|
||||
e_entry_move,
|
||||
e_entry_resize,
|
||||
e_entry_min_size,
|
||||
e_entry_max_size,
|
||||
e_entry_set_size
|
||||
};
|
||||
}
|
||||
|
||||
E_Pack_Object *
|
||||
|
@ -16,5 +35,6 @@ e_pack_object_new(int type)
|
|||
ZERO(po, E_Pack_Object, 1);
|
||||
po->type = type;
|
||||
po->class = classes[type];
|
||||
po->data.object = po->class.new();
|
||||
return po;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue