1. start work on dialog stuff


			
			
				devs/princeamd/enlightenment-0.17-elive
			
			
		
Carsten Haitzler 18 years ago
parent f4f1ad13b4
commit d2ea9aee5d
  1. 3
      TODO
  2. 3
      data/themes/Makefile.am
  3. 1
      data/themes/default.edc
  4. 253
      data/themes/default_dialog.edc
  5. 9
      enlightenment.spec
  6. 4
      src/bin/Makefile.am
  7. 110
      src/bin/e_border.c
  8. 2
      src/bin/e_border.h
  9. 214
      src/bin/e_dialog.c
  10. 35
      src/bin/e_dialog.h
  11. 1
      src/bin/e_includes.h
  12. 25
      src/bin/e_int_menus.c
  13. 18
      src/bin/e_manager.c
  14. 2
      src/bin/e_manager.h
  15. 4
      src/bin/e_object.c
  16. 4
      src/bin/e_object.h
  17. 23
      src/bin/e_test.c
  18. 4
      src/bin/e_zone.c
  19. 4
      src/modules/pager/e_mod_main.c
  20. 1
      src/modules/start/e_mod_main.c

@ -22,9 +22,6 @@ Some of the things (in very short form) that need to be done to E17...
map/unmap event and something else... they still are around in x- just e
hides them and never shows them again
fullscreen. is this correct?
* BUG: client windows list somehow doesn't unref its list of borders in the
free callback set on it. why? is this callback never called? or is the
data pointer on the menu object null for some reason?
* BUG: if you have 2 zones and you fill up zone 2 (right) mostly and then run
a big xev (xev -g 1280x1024) that wont fit it gets placed offscreen to the
right of zone 2

@ -30,7 +30,8 @@ default_cpufreq.edc \
default_ibox.edc \
default_start.edc \
default_winlist.edc \
default_transitions.edc
default_transitions.edc \
default_dialog.edc
default.edj: Makefile $(EXTRA_DIST)
$(EDJE_CC) $(EDJE_FLAGS) \

@ -39,5 +39,6 @@ collections {
#include "default_start.edc"
#include "default_winlist.edc"
#include "default_transitions.edc"
#include "default_dialog.edc"
}

@ -0,0 +1,253 @@
images {
image: "e17_menu_bg.png" COMP;
image: "e17_winlist_top.png" COMP;
image: "e17_winlist_bottom.png" COMP;
image: "e17_button2.png" COMP;
image: "e17_button.png" COMP;
}
group {
name: "widgets/dialog/main";
parts {
part {
name: "base";
mouse_events: 0;
type: RECT;
description {
state: "default" 0.0;
rel1 {
relative: 0.0 1.0;
offset: 1 0;
to_y: "base2";
}
rel2 {
relative: 1.0 1.0;
offset: -2 -2;
}
color: 221 221 221 255;
}
}
part {
name: "base2";
mouse_events: 0;
description {
state: "default" 0.0;
max: 99999 48;
align: 0.5 0.0;
rel1 {
relative: 0.0 0.0;
offset: 1 1;
}
rel2 {
relative: 1.0 1.0;
offset: -2 -2;
}
image {
normal: "e17_menu_bg.png";
}
fill {
smooth: 0;
}
}
}
part {
name: "base3";
mouse_events: 0;
description {
state: "default" 0.0;
rel1 {
relative: 0.0 0.0;
offset: 0 0;
}
rel2 {
relative: 1.0 1.0;
offset: -1 -1;
}
image {
normal: "e17_menu_bg_border.png";
border: 1 1 1 1;
middle: 0;
}
fill {
smooth: 0;
}
}
}
part {
name: "icon_swallow";
type: SWALLOW;
description {
state: "default" 0.0;
align: 0.0 0.5;
color: 0 0 0 0;
rel1 {
relative: 0.0 0.0;
offset: 16 16;
}
rel2 {
relative: 0.0 0.0;
offset: 16 -9;
to_y: "buttons_swallow";
}
}
}
part {
name: "content_swallow";
type: SWALLOW;
description {
state: "default" 0.0;
color: 0 0 0 0;
rel1 {
relative: 1.0 0.0;
offset: 8 16;
to_x: "icon_swallow";
}
rel2 {
relative: 1.0 0.0;
offset: -17 -9;
to_y: "buttons_swallow";
}
}
}
part {
name: "top";
mouse_events: 0;
description {
state: "default" 0.0;
rel1 {
relative: 0.0 0.0;
offset: 1 1;
}
rel2 {
relative: 1.0 0.0;
offset: -2 16;
to_y: "content_swallow";
}
image {
normal: "e17_winlist_top.png";
border: 0 0 0 19;
}
fill {
smooth: 0;
}
}
}
part {
name: "bottom";
mouse_events: 0;
description {
state: "default" 0.0;
rel1 {
relative: 0.0 1.0;
offset: 1 -3;
to_y: "content_swallow";
}
rel2 {
relative: 1.0 1.0;
offset: -2 -2;
}
image {
normal: "e17_winlist_bottom.png";
border: 0 0 4 0;
}
fill {
smooth: 0;
}
}
}
part {
name: "buttons_swallow";
type: SWALLOW;
description {
state: "default" 0.0;
color: 0 0 0 0;
align: 0.5 1.0;
rel1 {
relative: 0.0 1.0;
offset: 16 -9;
}
rel2 {
relative: 1.0 1.0;
offset: -17 -9;
}
}
}
}
}
group {
name: "widgets/dialog/button";
parts {
part {
name: "button_image";
type: IMAGE;
mouse_events: 1;
description {
state: "default" 0.0;
min: 64 32;
image {
normal: "e17_button.png";
border: 8 8 8 8;
}
}
description {
state: "clicked" 0.0;
min: 64 32;
image {
normal: "e17_button2.png";
border: 8 8 8 8;
}
}
}
part {
name: "button_text";
type: TEXT;
effect: SHADOW;
mouse_events: 0;
description {
state: "default" 0.0;
rel1 {
relative: 0.0 0.0;
offset: 6 6;
to: "button_image";
}
rel2 {
relative: 1.0 1.0;
offset: -7 -7;
to: "button_image";
}
color: 0 0 0 255;
color3: 255 255 255 128;
text {
text: "OK";
font: "Edje Vera";
size: 10;
min: 0 0;
align: 0.5 0.5;
}
}
}
}
programs {
program {
name: "button_click";
signal: "mouse,down,1";
source: "button_image";
action: STATE_SET "clicked" 0.0;
target: "button_image";
}
program {
name: "button_unclick";
signal: "mouse,up,1";
source: "button_image";
action: STATE_SET "default" 0.0;
target: "button_image";
}
program {
name: "button_unclick2";
signal: "mouse,clicked";
source: "button_image";
action: SIGNAL_EMIT "click" "";
}
}
}

@ -1,6 +1,6 @@
Summary: The Enlightenment window manager
Name: enlightenment
Version: 0.17.0_pre10
Version: 0.16.999.011
Release: NOT_RELEASE_1.%(date '+%Y%m%d')
License: BSD
Group: User Interface/Desktops
@ -52,16 +52,17 @@ test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
%defattr(-, root, root)
%doc AUTHORS COPYING COPYING-PLAIN README
%{_bindir}/*
%{_libdir}/libe.so.*
%{_libdir}/%{name}
%{_datadir}/%{name}
%{_datadir}/locale/*
%files devel
%defattr(-, root, root)
%{_includedir}/enlightenment/*.h
%{_includedir}/E.h
%{_includedir}/E_Lib.h
%{_libdir}/libe.a
%{_libdir}/libe.la
%{_libdir}/libe.so.0.0.0
%{_libdir}/libe.so
%changelog

@ -67,7 +67,8 @@ e_grabinput.h \
e_bg.h \
e_remember.h \
e_win.h \
e_pan.h
e_pan.h \
e_dialog.h
enlightenment_SOURCES = \
e_main.c \
@ -124,6 +125,7 @@ e_bg.c \
e_remember.c \
e_win.c \
e_pan.c \
e_dialog.c \
$(ENLIGHTENMENTHEADERS)
enlightenment_LDFLAGS = -export-dynamic @e_libs@ @x_libs@ @dlopen_libs@

@ -490,7 +490,7 @@ e_border_zone_set(E_Border *bd, E_Zone *zone)
ev = calloc(1, sizeof(E_Event_Border_Zone_Set));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_zone_set_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_zone_set_event");
ev->zone = zone;
e_object_ref(E_OBJECT(zone));
ecore_event_add(E_EVENT_BORDER_ZONE_SET, ev, _e_border_event_border_zone_set_free, NULL);
@ -516,7 +516,7 @@ e_border_desk_set(E_Border *bd, E_Desk *desk)
ev = calloc(1, sizeof(E_Event_Border_Desk_Set));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_desk_set_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_desk_set_event");
ev->desk = desk;
e_object_ref(E_OBJECT(desk));
ecore_event_add(E_EVENT_BORDER_DESK_SET, ev, _e_border_event_border_desk_set_free, NULL);
@ -545,7 +545,7 @@ e_border_show(E_Border *bd)
ev = calloc(1, sizeof(E_Event_Border_Show));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_show_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_show_event");
ecore_event_add(E_EVENT_BORDER_SHOW, ev, _e_border_event_border_show_free, NULL);
}
@ -598,7 +598,7 @@ e_border_hide(E_Border *bd, int manage)
ev = calloc(1, sizeof(E_Event_Border_Hide));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_hide_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_hide_event");
ecore_event_add(E_EVENT_BORDER_HIDE, ev, _e_border_event_border_hide_free, NULL);
}
}
@ -647,7 +647,7 @@ e_border_move(E_Border *bd, int x, int y)
ev = calloc(1, sizeof(E_Event_Border_Move));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event");
ecore_event_add(E_EVENT_BORDER_MOVE, ev, _e_border_event_border_move_free, NULL);
}
@ -693,7 +693,7 @@ e_border_resize(E_Border *bd, int w, int h)
ev = calloc(1, sizeof(E_Event_Border_Resize));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
}
@ -748,13 +748,13 @@ e_border_move_resize(E_Border *bd, int x, int y, int w, int h)
mev = calloc(1, sizeof(E_Event_Border_Move));
mev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event");
ecore_event_add(E_EVENT_BORDER_MOVE, mev, _e_border_event_border_move_free, NULL);
rev = calloc(1, sizeof(E_Event_Border_Resize));
rev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
ecore_event_add(E_EVENT_BORDER_RESIZE, rev, _e_border_event_border_resize_free, NULL);
}
@ -772,7 +772,7 @@ e_border_raise(E_Border *bd)
ev = calloc(1, sizeof(E_Event_Border_Raise));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_raise_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_raise_event");
ev->above = NULL;
ecore_event_add(E_EVENT_BORDER_RAISE, ev, _e_border_event_border_raise_free, NULL);
}
@ -792,7 +792,7 @@ e_border_lower(E_Border *bd)
ev = calloc(1, sizeof(E_Event_Border_Lower));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_lower_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_lower_event");
ev->below = NULL;
ecore_event_add(E_EVENT_BORDER_LOWER, ev, _e_border_event_border_lower_free, NULL);
}
@ -812,10 +812,10 @@ e_border_stack_above(E_Border *bd, E_Border *above)
ev = calloc(1, sizeof(E_Event_Border_Raise));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_raise_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_raise_event");
ev->above = above;
e_object_ref(E_OBJECT(above));
e_object_breadcrumb_add(E_OBJECT(above), "border_raise_event.above");
// e_object_breadcrumb_add(E_OBJECT(above), "border_raise_event.above");
ecore_event_add(E_EVENT_BORDER_RAISE, ev, _e_border_event_border_raise_free, NULL);
}
}
@ -833,10 +833,10 @@ e_border_stack_below(E_Border *bd, E_Border *below)
ev = calloc(1, sizeof(E_Event_Border_Lower));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_lower_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_lower_event");
ev->below = below;
e_object_ref(E_OBJECT(below));
e_object_breadcrumb_add(E_OBJECT(below), "border_lower_event.below");
// e_object_breadcrumb_add(E_OBJECT(below), "border_lower_event.below");
ecore_event_add(E_EVENT_BORDER_LOWER, ev, _e_border_event_border_lower_free, NULL);
}
}
@ -1012,7 +1012,7 @@ e_border_shade(E_Border *bd, E_Direction dir)
/* The resize is added in the animator when animation complete */
/* For non-animated, we add it immediately with the new size */
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
}
@ -1101,7 +1101,7 @@ e_border_unshade(E_Border *bd, E_Direction dir)
/* The resize is added in the animator when animation complete */
/* For non-animated, we add it immediately with the new size */
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
}
@ -1384,7 +1384,7 @@ e_border_iconify(E_Border *bd)
ev = E_NEW(E_Event_Border_Iconify, 1);
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_iconify_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_iconify_event");
ecore_event_add(E_EVENT_BORDER_ICONIFY, ev, _e_border_event_border_iconify_free, NULL);
}
@ -1413,7 +1413,7 @@ e_border_uniconify(E_Border *bd)
ev = E_NEW(E_Event_Border_Uniconify, 1);
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_uniconify_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_uniconify_event");
ecore_event_add(E_EVENT_BORDER_UNICONIFY, ev, _e_border_event_border_uniconify_free, NULL);
}
@ -1433,7 +1433,7 @@ e_border_stick(E_Border *bd)
ev = E_NEW(E_Event_Border_Stick, 1);
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_stick_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_stick_event");
ecore_event_add(E_EVENT_BORDER_STICK, ev, _e_border_event_border_stick_free, NULL);
}
@ -1454,7 +1454,7 @@ e_border_unstick(E_Border *bd)
ev = E_NEW(E_Event_Border_Unstick, 1);
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_unstick_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_unstick_event");
ecore_event_add(E_EVENT_BORDER_UNSTICK, ev, _e_border_event_border_unstick_free, NULL);
}
@ -1614,13 +1614,11 @@ e_border_act_move_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev)
void
e_border_act_move_end(E_Border *bd, Ecore_X_Event_Mouse_Button_Up *ev)
{
if (bd->moving)
{
e_zone_flip_win_restore();
bd->moving = 0;
_e_border_move_end(bd);
e_zone_flip_coords_handle(bd->zone, -1, -1);
}
if (!bd->moving) return;
bd->moving = 0;
e_zone_flip_win_restore();
_e_border_move_end(bd);
e_zone_flip_coords_handle(bd->zone, -1, -1);
}
void
@ -1877,11 +1875,7 @@ e_border_ping(E_Border *bd)
void
e_border_move_cancel(void)
{
if (move)
{
move->moving = 0;
_e_border_move_end(move);
}
if (move) _e_border_move_end(move);
}
void
@ -1933,11 +1927,13 @@ _e_border_free(E_Border *bd)
IF_FREE(bd->shape_rects);
bd->shape_rects_num = 0;
/*
if (bd->dangling_ref_check)
{
ecore_timer_del(bd->dangling_ref_check);
bd->dangling_ref_check = NULL;
}
*/
if (bd->kill_timer)
{
ecore_timer_del(bd->kill_timer);
@ -2017,6 +2013,7 @@ _e_border_free(E_Border *bd)
free(bd);
}
/*
static int
_e_border_del_dangling_ref_check(void *data)
{
@ -2028,18 +2025,21 @@ _e_border_del_dangling_ref_check(void *data)
printf("%p, %i, \"%s\" [\"%s\" \"%s\"]\n",
bd, e_object_ref_get(E_OBJECT(bd)), bd->client.icccm.title,
bd->client.icccm.name, bd->client.icccm.class);
e_object_breadcrumb_debug(E_OBJECT(bd));
// e_object_breadcrumb_debug(E_OBJECT(bd));
printf("---\n");
return 1;
}
*/
static void
_e_border_del(E_Border *bd)
{
E_Event_Border_Remove *ev;
/*
if (!bd->dangling_ref_check)
bd->dangling_ref_check = ecore_timer_add(1.0, _e_border_del_dangling_ref_check, bd);
*/
if (!bd->already_unparented)
{
ecore_x_window_reparent(bd->client.win,
@ -2055,7 +2055,7 @@ _e_border_del(E_Border *bd)
/* FIXME Don't ref this during shutdown. And the event is pointless
* during shutdown.. */
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_remove_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_remove_event");
ecore_event_add(E_EVENT_BORDER_REMOVE, ev, _e_border_event_border_remove_free, NULL);
}
@ -3995,7 +3995,7 @@ _e_border_eval(E_Border *bd)
ev = calloc(1, sizeof(E_Event_Border_Icon_Change));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_icon_change_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_icon_change_event");
ecore_event_add(E_EVENT_BORDER_ICON_CHANGE, ev,
_e_border_event_border_icon_change_free, NULL);
}
@ -4467,7 +4467,7 @@ _e_border_eval(E_Border *bd)
ev = calloc(1, sizeof(E_Event_Border_Add));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_add_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_add_event");
ecore_event_add(E_EVENT_BORDER_ADD, ev, _e_border_event_border_add_free, NULL);
/* Recreate state */
@ -5081,7 +5081,7 @@ _e_border_shade_animator(void *data)
ev = calloc(1, sizeof(E_Event_Border_Resize));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
// e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
return 0;
}
@ -6187,7 +6187,7 @@ _e_border_event_border_resize_free(void *data, void *ev)
E_Event_Border_Resize *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_resize_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_resize_event");
e_object_unref(E_OBJECT(e->border));
free(e);
}
@ -6198,7 +6198,7 @@ _e_border_event_border_move_free(void *data, void *ev)
E_Event_Border_Move *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_move_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_move_event");
e_object_unref(E_OBJECT(e->border));
free(e);
}
@ -6209,7 +6209,7 @@ _e_border_event_border_add_free(void *data, void *ev)
E_Event_Border_Add *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_add_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_add_event");
e_object_unref(E_OBJECT(e->border));
free(e);
}
@ -6220,7 +6220,7 @@ _e_border_event_border_remove_free(void *data, void *ev)
E_Event_Border_Remove *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_remove_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_remove_event");
e_object_unref(E_OBJECT(e->border));
free(e);
}
@ -6231,7 +6231,7 @@ _e_border_event_border_show_free(void *data, void *ev)
E_Event_Border_Show *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_show_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_show_event");
e_object_unref(E_OBJECT(e->border));
free(e);
}
@ -6242,7 +6242,7 @@ _e_border_event_border_hide_free(void *data, void *ev)
E_Event_Border_Hide *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_hide_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_hide_event");
e_object_unref(E_OBJECT(e->border));
free(e);
}
@ -6253,7 +6253,7 @@ _e_border_event_border_iconify_free(void *data, void *ev)
E_Event_Border_Iconify *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_iconify_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_iconify_event");
e_object_unref(E_OBJECT(e->border));
free(e);
}
@ -6264,7 +6264,7 @@ _e_border_event_border_uniconify_free(void *data, void *ev)
E_Event_Border_Uniconify *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_uniconify_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_uniconify_event");
e_object_unref(E_OBJECT(e->border));
free(e);
}
@ -6275,7 +6275,7 @@ _e_border_event_border_stick_free(void *data, void *ev)
E_Event_Border_Stick *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_stick_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_stick_event");
e_object_unref(E_OBJECT(e->border));
free(e);
}
@ -6286,7 +6286,7 @@ _e_border_event_border_unstick_free(void *data, void *ev)
E_Event_Border_Unstick *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_unstick_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_unstick_event");
e_object_unref(E_OBJECT(e->border));
free(e);
}
@ -6297,7 +6297,7 @@ _e_border_event_border_zone_set_free(void *data, void *ev)
E_Event_Border_Zone_Set *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_zone_set_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_zone_set_event");
e_object_unref(E_OBJECT(e->border));
e_object_unref(E_OBJECT(e->zone));
free(e);
@ -6309,7 +6309,7 @@ _e_border_event_border_desk_set_free(void *data, void *ev)
E_Event_Border_Desk_Set *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_desk_set_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_desk_set_event");
e_object_unref(E_OBJECT(e->border));
e_object_unref(E_OBJECT(e->desk));
free(e);
@ -6321,11 +6321,11 @@ _e_border_event_border_raise_free(void *data, void *ev)
E_Event_Border_Raise *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_raise_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_raise_event");
e_object_unref(E_OBJECT(e->border));
if (e->above)
{
e_object_breadcrumb_del(E_OBJECT(e->above), "border_raise_event.above");
// e_object_breadcrumb_del(E_OBJECT(e->above), "border_raise_event.above");
e_object_unref(E_OBJECT(e->above));
}
free(e);
@ -6337,11 +6337,11 @@ _e_border_event_border_lower_free(void *data, void *ev)
E_Event_Border_Lower *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_lower_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_lower_event");
e_object_unref(E_OBJECT(e->border));
if (e->below)
{
e_object_breadcrumb_del(E_OBJECT(e->below), "border_lower_event.below");
// e_object_breadcrumb_del(E_OBJECT(e->below), "border_lower_event.below");
e_object_unref(E_OBJECT(e->below));
}
free(e);
@ -6353,7 +6353,7 @@ _e_border_event_border_icon_change_free(void *data, void *ev)
E_Event_Border_Icon_Change *e;
e = ev;
e_object_breadcrumb_del(E_OBJECT(e->border), "border_icon_change_event");
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_icon_change_event");
e_object_unref(E_OBJECT(e->border));
free(e);
}

@ -371,7 +371,7 @@ struct _E_Border
Ecore_X_Rectangle *shape_rects;
E_Remember *remember;
Ecore_Timer *dangling_ref_check;
// Ecore_Timer *dangling_ref_check;
};
struct _E_Border_Pending_Move_Resize

@ -0,0 +1,214 @@
/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#include "e.h"
typedef struct _E_Dialog_Button E_Dialog_Button;
struct _E_Dialog_Button
{
E_Dialog *dialog;
Evas_Object *obj;
char *label;
char *icon;
void (*func) (void *data, E_Dialog *dia);
void *data;
};
/* local subsystem functions */
static void _e_dialog_free(E_Dialog *dia);
static void _e_dialog_cb_button_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _e_dialog_cb_delete(E_Win *win);
/* local subsystem globals */
/* externally accessible functions */
E_Dialog *
e_dialog_new(E_Container *con)
{
E_Dialog *dia;
E_Manager *man;
Evas_Object *o;
if (!con)
{
man = e_manager_current_get();
if (!man) return NULL;
con = e_container_current_get(man);
if (!con) con = e_manager_container_number_get(man, 0);
if (!con) return NULL;
}
dia = E_OBJECT_ALLOC(E_Dialog, E_DIALOG_TYPE, _e_dialog_free);
if (!dia) return NULL;
dia->win = e_win_new(con);
if (!dia->win)
{
free(dia);
return NULL;
}
dia->win->data = dia;
e_win_name_class_set(dia->win, "E", "_dialog");
o = edje_object_add(e_win_evas_get(dia->win));
dia->bg_object = o;
e_theme_edje_object_set(o, "base/theme/dialog",
"widgets/dialog/main");
evas_object_move(o, 0, 0);
evas_object_show(o);
o = evas_object_textblock_add(e_win_evas_get(dia->win));
dia->text_object = o;
edje_object_part_swallow(dia->bg_object, "content_swallow", o);
evas_object_show(o);
{
char format[1024];
char *fname;
int fsize;
fname = (char *)e_font_default_string_get("default", &fsize);
snprintf(format, sizeof(format),
"font='%s' size=%i wrap=word",
fname, fsize);
evas_object_textblock_format_insert(o, format);
evas_object_textblock_format_insert(o, "color=#000");
evas_object_textblock_format_insert(o, "\n");
evas_object_textblock_text_insert(o, "Here is some text");
evas_object_textblock_format_insert(o, "\n");
evas_object_textblock_text_insert(o, "Here is some more text");
evas_object_textblock_format_insert(o, "\n");
evas_object_textblock_text_insert(o, "And even more text on this line to make it really long for testing");
evas_object_textblock_format_insert(o, "\n");
evas_object_textblock_text_insert(o, "Short");
evas_object_textblock_format_insert(o, "\n");
evas_object_textblock_text_insert(o, "Aaardvaaarks On!");
evas_object_textblock_format_insert(o, "\n");
evas_object_textblock_format_insert(o, "\n");
}
o = e_box_add(e_win_evas_get(dia->win));
dia->box_object = o;
e_box_orientation_set(o, 1);
e_box_homogenous_set(o, 1);
e_box_align_set(o, 0.5, 0.5);
edje_object_part_swallow(dia->bg_object, "buttons_swallow", o);
evas_object_show(o);
return dia;
}
void
e_dialog_button_add(E_Dialog *dia, char *label, char *icon, void (*func) (void *data, E_Dialog *dia), void *data)
{
E_Dialog_Button *db;
Evas_Coord mw, mh;
db = E_NEW(E_Dialog_Button, 1);
db->dialog = dia;
if (label) db->label = strdup(label);
if (icon) db->icon = strdup(icon);
db->func = func;
db->data = data;
db->obj = edje_object_add(e_win_evas_get(dia->win));
e_theme_edje_object_set(db->obj, "base/theme/dialog",
"widgets/dialog/button");
edje_object_signal_callback_add(db->obj, "click", "",
_e_dialog_cb_button_clicked, db);
edje_object_part_text_set(db->obj, "button_text", db->label);
edje_object_size_min_calc(db->obj, &mw, &mh);
e_box_pack_end(dia->box_object, db->obj);
e_box_pack_options_set(db->obj,
1, 1, /* fill */
0, 1, /* expand */
0.5, 0.5, /* align */
mw, mh, /* min */
9999, mh /* max */
);
evas_object_show(db->obj);
dia->buttons = evas_list_append(dia->buttons, db);
}
void
e_dialog_title_set(E_Dialog *dia, char *title)
{
e_win_title_set(dia->win, title);
}
void
e_dialog_text_set(E_Dialog *dia, char *text)
{
}
void
e_dialog_icon_set(E_Dialog *dia, char *icon)
{
}
void
e_dialog_show(E_Dialog *dia)
{
Evas_Coord mw, mh;
Evas_Object *o;
o = dia->text_object;
// evas_object_textblock_format_size_get(o, &mw, &mh);
evas_object_textblock_native_size_get(o, &mw, &mh);
edje_extern_object_min_size_set(o, mw + 2, mh + 2);
edje_object_part_swallow(dia->bg_object, "content_swallow", o);
o = dia->box_object;
e_box_min_size_get(o, &mw, &mh);
edje_extern_object_min_size_set(o, mw, mh);
edje_object_part_swallow(dia->bg_object, "buttons_swallow", o);
edje_object_size_min_calc(dia->bg_object, &mw, &mh);
evas_object_resize(dia->bg_object, mw, mh);
e_win_resize(dia->win, mw, mh);
e_win_size_min_set(dia->win, mw, mh);
e_win_size_max_set(dia->win, mw, mh);
e_win_show(dia->win);
}
/* local subsystem functions */
static void
_e_dialog_free(E_Dialog *dia)
{
while (dia->buttons)
{
E_Dialog_Button *db;
db = dia->buttons->data;
dia->buttons = evas_list_remove_list(dia->buttons, dia->buttons);
IF_FREE(db->label);
IF_FREE(db->icon);
evas_object_del(db->obj);
free(db);
}
if (dia->text_object) evas_object_del(dia->text_object);
if (dia->icon_object) evas_object_del(dia->icon_object);
if (dia->box_object) evas_object_del(dia->box_object);
if (dia->bg_object) evas_object_del(dia->bg_object);
e_object_del(E_OBJECT(dia->win));
free(dia);
}
static void
_e_dialog_cb_button_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)
{
E_Dialog_Button *db;
db = data;
if (db->func)
db->func(db->data, db->dialog);
else
e_object_del(E_OBJECT(db->dialog));
}
static void
_e_dialog_cb_delete(E_Win *win)
{
E_Dialog *dia;
dia = win->data;
e_object_del(E_OBJECT(dia));
}

@ -0,0 +1,35 @@
/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#ifdef E_TYPEDEFS
typedef struct _E_Dialog E_Dialog;
#else
#ifndef E_DIALOG_H
#define E_DIALOG_H
#define E_DIALOG_TYPE 0xE0b01012
struct _E_Dialog
{
E_Object e_obj_inherit;
E_Win *win;
Evas_Object *bg_object;
Evas_Object *box_object;
Evas_Object *text_object;
Evas_Object *icon_object;
Evas_List *buttons;
void *data;
};
EAPI E_Dialog *e_dialog_new (E_Container *con);
EAPI void e_dialog_button_add (E_Dialog *dia, char *label, char *icon, void (*func) (void *data, E_Dialog *dia), void *data);
EAPI void e_dialog_title_set (E_Dialog *dia, char *title);
EAPI void e_dialog_text_set (E_Dialog *dia, char *text);
EAPI void e_dialog_icon_set (E_Dialog *dia, char *icon);
EAPI void e_dialog_show (E_Dialog *dia);
#endif
#endif

@ -55,3 +55,4 @@
#include "e_remember.h"
#include "e_win.h"
#include "e_pan.h"
#include "e_dialog.h"

@ -289,14 +289,6 @@ _e_int_menus_main_del_hook(void *obj)
e_object_del(E_OBJECT(dat->lost_clients));
free(dat);
}
else
{
printf("%%$%%@%%#^#^#$^#$\n"
"%%$%%@%%#^#^#$^#$\n"
" main menu object data is NULL!\n"
"%%$%%@%%#^#^#$^#$\n"
"%%$%%@%%#^#^#$^#$\n");
}
}
static void
@ -567,7 +559,7 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m)
e_menu_item_label_set(mi, _("No name!!"));
/* ref the border as we implicitly unref it in the callback */
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "clients_menu");
// e_object_breadcrumb_add(E_OBJECT(bd), "clients_menu");
e_menu_item_callback_set(mi, _e_int_menus_clients_item_cb, bd);
if (!bd->iconic) e_menu_item_toggle_set(mi, 1);
a = e_app_window_name_class_title_role_find(bd->client.icccm.name,
@ -585,6 +577,7 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m)
e_menu_item_icon_edje_set(mi, s, "windows");
IF_FREE(s);
e_menu_item_callback_set(mi, _e_int_menus_clients_cleanup_cb, zone);
e_object_free_attach_func_set(E_OBJECT(m), _e_int_menus_clients_free_hook);
e_object_data_set(E_OBJECT(m), borders);
}
@ -597,21 +590,13 @@ _e_int_menus_clients_free_hook(void *obj)
m = obj;
borders = e_object_data_get(E_OBJECT(m));
if (borders == NULL)
{
printf("########################################################\n");
printf("########################################################\n");
printf("clients menu free cb called and object data is NULL!\n");
printf("########################################################\n");
printf("########################################################\n");
}
while (borders)
{
E_Border *bd;
bd = borders->data;
borders = evas_list_remove_list(borders, borders);
e_object_breadcrumb_del(E_OBJECT(bd), "clients_menu");
// e_object_breadcrumb_del(E_OBJECT(bd), "clients_menu");
e_object_unref(E_OBJECT(bd));
}
}
@ -831,7 +816,7 @@ _e_int_menus_lost_clients_pre_cb(void *data, E_Menu *m)
e_menu_item_label_set(mi, _("No name!!"));
/* ref the border as we implicitly unref it in the callback */
e_object_ref(E_OBJECT(bd));
e_object_breadcrumb_add(E_OBJECT(bd), "lost_clients_menu");
// e_object_breadcrumb_add(E_OBJECT(bd), "lost_clients_menu");
e_menu_item_callback_set(mi, _e_int_menus_lost_clients_item_cb, bd);
a = e_app_window_name_class_title_role_find(bd->client.icccm.name,
bd->client.icccm.class,
@ -857,7 +842,7 @@ _e_int_menus_lost_clients_free_hook(void *obj)
bd = borders->data;
borders = evas_list_remove_list(borders, borders);
e_object_breadcrumb_del(E_OBJECT(bd), "lost_clients_menu");
// e_object_breadcrumb_del(E_OBJECT(bd), "lost_clients_menu");
e_object_unref(E_OBJECT(bd));
}
}

@ -338,6 +338,24 @@ e_manager_lower(E_Manager *man)
ecore_x_window_lower(man->win);
}
E_Manager *
e_manager_current_get(void)
{
Evas_List *l;
E_Manager *man;
int x, y;
if (!managers) return NULL;
for (l = managers; l; l = l->next)
{
man = l->data;
ecore_x_pointer_xy_get(man->win, &x, &y);
if (E_INSIDE(x, y, man->x, man->y, man->w, man->h))
return man;
}
return managers->data;
}
E_Container *
e_manager_container_number_get(E_Manager *man, int num)
{

@ -37,8 +37,8 @@ EAPI void e_manager_resize(E_Manager *man, int w, int h);
EAPI void e_manager_move_resize(E_Manager *man, int x, int y, int w, int h);
EAPI void e_manager_raise(E_Manager *man);
EAPI void e_manager_lower(E_Manager *man);
EAPI E_Manager *e_manager_current_get(void);
EAPI E_Container *e_manager_container_current_get(E_Manager *man);
EAPI E_Container *e_manager_container_number_get(E_Manager *man, int num);
EAPI void e_managers_keys_grab(void);

@ -80,11 +80,13 @@ void
e_object_free(E_Object *obj)
{
E_OBJECT_CHECK(obj);
/*
if (obj->crumbs)
{
printf("EEEK obj type %x has crumbs still! ->\n", obj->type);
e_object_breadcrumb_debug(obj);
}
*/
if (obj->free_att_func) obj->free_att_func(obj);
obj->magic = E_OBJECT_MAGIC_FREED;
obj->cleanup_func(obj);
@ -257,6 +259,7 @@ e_object_del_attach_func_set(E_Object *obj, void (*func) (void *obj))
obj->del_att_func = func;
}
/*
void
e_object_breadcrumb_add(E_Object *obj, char *crumb)
{
@ -290,6 +293,7 @@ e_object_breadcrumb_debug(E_Object *obj)
for (l = obj->crumbs; l; l = l->next)
printf("CRUMB: %s\n", l->data);
}
*/
#ifdef OBJECT_PARANOIA_CHECK
/* local subsystem functions */

@ -70,7 +70,7 @@ struct _E_Object
void (*del_att_func) (void *obj);
void *data;
unsigned char deleted : 1;
Evas_List *crumbs;
// Evas_List *crumbs;
};
EAPI void *e_object_alloc (int size, int type, E_Object_Cleanup_Func cleanup_func);
@ -88,9 +88,11 @@ EAPI void *e_object_data_get (E_Object *obj);
EAPI void e_object_free_attach_func_set(E_Object *obj, void (*func) (void *obj));
EAPI void e_object_del_attach_func_set (E_Object *obj, void (*func) (void *obj));
/*
EAPI void e_object_breadcrumb_add (E_Object *obj, char *crumb);
EAPI void e_object_breadcrumb_del (E_Object *obj, char *crumb);
EAPI void e_object_breadcrumb_debug (E_Object *obj);
*/
#endif
#endif

@ -282,6 +282,29 @@ _e_test_internal(E_Container *con)
}
}
#elif 0
static void
_e_test_dialog_del(void *obj)
{
E_Dialog *dia;
dia = obj;
printf("dialog delete hook!\n");
}
static void
_e_test_internal(E_Container *con)
{
E_Dialog *dia;
dia = e_dialog_new(con);
e_object_del_attach_func_set(E_OBJECT(dia), _e_test_dialog_del);
e_dialog_title_set(dia, "A Test Dialog");
e_dialog_button_add(dia, "OK", NULL, NULL, NULL);
e_dialog_button_add(dia, "Apply", NULL, NULL, NULL);
e_dialog_button_add(dia, "Cancel", NULL, NULL, NULL);
e_dialog_show(dia);
}
#elif 0
#else
static void
_e_test_internal(E_Container *con)

@ -807,7 +807,6 @@ _e_zone_cb_timer(void *data)
E_Event_Pointer_Warp *ev;
int x, y;
printf("_e_zone_cb_timer()\n");
ev = E_NEW(E_Event_Pointer_Warp, 1);
if (!ev) return 0;
@ -834,14 +833,11 @@ _e_zone_cb_timer(void *data)
}
break;
case E_DIRECTION_RIGHT:
printf("clip right...\n");
if (E_ZONE_FLIP_RIGHT(zone))
{
printf("ummm...\n");
current = e_desk_at_xy_get(zone, zone->desk_x_current + 1, zone->desk_y_current);
if (current)
{
printf("show new desk\n");
e_desk_show(current);
ecore_x_pointer_warp(zone->container->win, 2, y);
ev->curr.y = y;

@ -606,7 +606,7 @@ _pager_window_new(Pager_Desk *pd, E_Border *border)
pw->border = border;
e_object_ref(E_OBJECT(border));
e_object_breadcrumb_add(E_OBJECT(border), "pager_module");
// e_object_breadcrumb_add(E_OBJECT(border), "pager_module");